<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>165139</bug_id>
          
          <creation_ts>2016-11-29 06:54:53 -0800</creation_ts>
          <short_desc>[MediaStream] Sync video preview layer and parent layer sizes</short_desc>
          <delta_ts>2016-11-30 11:20:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>jer.noble</cc>
    
    <cc>thiago.lacerda</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254258</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-29 06:54:53 -0800</bug_when>
    <thetext>Resize video preview layer when its parent layer size changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254262</commentid>
    <comment_count>1</comment_count>
      <attachid>295593</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-29 07:30:14 -0800</bug_when>
    <thetext>Created attachment 295593
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254263</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 07:31:07 -0800</bug_when>
    <thetext>Attachment 295593 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:656:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:660:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254475</commentid>
    <comment_count>3</comment_count>
      <attachid>295593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-29 14:31:01 -0800</bug_when>
    <thetext>Comment on attachment 295593
Proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=295593&amp;action=review

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:100
&gt; +    AVVideoSourcePreview* _parent;

Nit: * is on the wrong side.

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:101
&gt; +    BOOL _haveObserver;

This is OK as-is. Would using the present tense, _hasObserver, read better?

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:117
&gt; +    PlatformLayer* platformLayer() const final { return m_previewBackgroundLayer.get(); }

It is an unwritten convention to that const functions should return pointers to const objects. When returning a non-const pointer the function should not be const. The motivation behind this idiom is that the object pointed by the non-const pointer can be mutated, which could have implications to the behavior of the class. Humans not well versed in the C++ concept of const typically consider const functions to convey that an instance of a class will not be modified by the call. Returning a non-const pointer circumvents this notion.

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:640
&gt; +        [_parent-&gt;platformLayer() addObserver:self forKeyPath:@&quot;bounds&quot; options:0 context:0];

We should pass nullptr instead of 0 for context.

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:644
&gt; +- (void)observeValueForKeyPath:keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context

Nit: Missing a space after &quot;void&quot;.

&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:656
&gt; +        if ([keyPath isEqual:@&quot;bounds&quot;] &amp;&amp; object == _parent-&gt;platformLayer())

We repeatedly hardcode the string literal &quot;bounds&quot; throughout this patch. I suggest that we extract it into a constant and reference this constant throughout the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254643</commentid>
    <comment_count>4</comment_count>
      <attachid>295593</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-29 19:12:54 -0800</bug_when>
    <thetext>Comment on attachment 295593
Proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=295593&amp;action=review

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:100
&gt;&gt; +    AVVideoSourcePreview* _parent;
&gt; 
&gt; Nit: * is on the wrong side.

OK

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:101
&gt;&gt; +    BOOL _haveObserver;
&gt; 
&gt; This is OK as-is. Would using the present tense, _hasObserver, read better?

Changed.

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:117
&gt;&gt; +    PlatformLayer* platformLayer() const final { return m_previewBackgroundLayer.get(); }
&gt; 
&gt; It is an unwritten convention to that const functions should return pointers to const objects. When returning a non-const pointer the function should not be const. The motivation behind this idiom is that the object pointed by the non-const pointer can be mutated, which could have implications to the behavior of the class. Humans not well versed in the C++ concept of const typically consider const functions to convey that an instance of a class will not be modified by the call. Returning a non-const pointer circumvents this notion.

Sounds like this should be codified in our style guidelines. 

This isn&apos;t new to this patch, and changing it will requires a change a number of other classes so I will address this in another patch.

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:640
&gt;&gt; +        [_parent-&gt;platformLayer() addObserver:self forKeyPath:@&quot;bounds&quot; options:0 context:0];
&gt; 
&gt; We should pass nullptr instead of 0 for context.

OK

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:644
&gt;&gt; +- (void)observeValueForKeyPath:keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context
&gt; 
&gt; Nit: Missing a space after &quot;void&quot;.

Fixed.

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:656
&gt;&gt; +        if ([keyPath isEqual:@&quot;bounds&quot;] &amp;&amp; object == _parent-&gt;platformLayer())
&gt; 
&gt; We repeatedly hardcode the string literal &quot;bounds&quot; throughout this patch. I suggest that we extract it into a constant and reference this constant throughout the patch.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254664</commentid>
    <comment_count>5</comment_count>
      <attachid>295698</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-29 20:14:06 -0800</bug_when>
    <thetext>Created attachment 295698
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254665</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 20:15:12 -0800</bug_when>
    <thetext>Attachment 295698 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:647:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:651:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254739</commentid>
    <comment_count>7</comment_count>
      <attachid>295714</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-30 04:10:35 -0800</bug_when>
    <thetext>Created attachment 295714
YAUP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254740</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 04:13:18 -0800</bug_when>
    <thetext>Attachment 295714 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:647:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:651:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254862</commentid>
    <comment_count>9</comment_count>
      <attachid>295714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 11:20:52 -0800</bug_when>
    <thetext>Comment on attachment 295714
YAUP.

Clearing flags on attachment: 295714

Committed r209141: &lt;http://trac.webkit.org/changeset/209141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254863</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 11:20:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295593</attachid>
            <date>2016-11-29 07:30:14 -0800</date>
            <delta_ts>2016-11-29 20:14:06 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>resize_preview_layer_patch_4.txt</filename>
            <type>text/plain</type>
            <size>7076</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTExLTI5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
U3luYyB2aWRlbyBwcmV2aWV3IGxheWVyIGFuZCBwYXJlbnQgbGF5ZXIgc2l6ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENBTGF5ZXIgYXV0by1yZXNp
emluZyBkb2Vzbid0IHdvcmsgb24gaU9TLCBzbyBtYW51YWxseSByZWl6ZSB0aGUgdmlkZW8gY2Fw
dHVyZSBwcmV2aWV3IGxheWVyCisgICAgICAgIHdoZW5ldmVyIHRoZSBiYWNrZ3JvdW5kIGxheWVy
J3MgYm91bmRzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQ
cmV2aWV3OjpBVlZpZGVvU291cmNlUHJldmlldyk6IENyZWF0ZSBsYXllciBvYnNlcnZlci4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQcmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3Vu
ZHNDaGFuZ2VkKTogU3luYyBwcmV2aWV3IGxheWVyIGFuZCBiYWNrZ3JvdW5kCisgICAgICAgICAg
bGF5ZXIgc2l6ZXMuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvU291cmNlUHJldmlldzo6aW52
YWxpZGF0ZSk6IEludmFsaWRhdGUgYW5kIGNsZWFyIG9ic2VydmVyLgorICAgICAgICAoLVtXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBpbml0V2l0aFBhcmVudDpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgc2V0UGFyZW50Ol0pOiBB
ZGQgS1ZPIGJvdW5kcyBvYnNlcnZlci4KKyAgICAgICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJl
U291cmNlT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKTogQ2FsbAorICAgICAgICBwYXJlbnQgd2hlbiAiYm91bmRzIiBjaGFuZ2VzLgorICAg
ICAgICAoLVtXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhY3Rpb25Gb3JLZXk6
XSk6IFJldHVybiBuaWwgdG8gZGlzYWJsZSBhbGwgYW5pbWF0aW9ucy4KKwogMjAxNi0xMS0yOSAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB3
aW4vZ3RrIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNp
b24gMjA5MDIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQAog
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSAiV2ViQ29yZVRocmVhZC5oIgor
I2luY2x1ZGUgIldlYkNvcmVUaHJlYWRSdW4uaCIKKyNlbmRpZgorCiAjaW1wb3J0ICJDb3JlTWVk
aWFTb2Z0TGluay5oIgogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKIApAQCAtODksMTIg
Kzk0LDI4IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXIKICNkZWZp
bmUgQVZDYXB0dXJlU2Vzc2lvblByZXNldDMyMHgyNDAgZ2V0QVZDYXB0dXJlU2Vzc2lvblByZXNl
dDMyMHgyNDAoKQogI2RlZmluZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0TG93IGdldEFWQ2FwdHVy
ZVNlc3Npb25QcmVzZXRMb3coKQogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGludGVy
ZmFjZSBXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciA6IE5TT2JqZWN0PENBTGF5
ZXJEZWxlZ2F0ZT4geworICAgIEFWVmlkZW9Tb3VyY2VQcmV2aWV3KiBfcGFyZW50OworICAgIEJP
T0wgX2hhdmVPYnNlcnZlcjsKK30KKworLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KEFWVmlkZW9Tb3Vy
Y2VQcmV2aWV3ICopcGFyZW50OworLSAodm9pZClzZXRQYXJlbnQ6KEFWVmlkZW9Tb3VyY2VQcmV2
aWV3ICopcGFyZW50OworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZP
YmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2
b2lkKiljb250ZXh0OworLSAoaWQ8Q0FBY3Rpb24+KWFjdGlvbkZvcktleTooTlNTdHJpbmcgKilr
ZXk7CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVZWaWRlb1NvdXJjZVBy
ZXZpZXc6IHB1YmxpYyBBVk1lZGlhU291cmNlUHJldmlldyB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxBVk1lZGlhU291cmNlUHJldmlldz4gY3JlYXRlKEFWQ2FwdHVyZVNlc3Npb24gKiwg
QVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqLCBBVlZpZGVvQ2FwdHVyZVNvdXJjZSopOwogCisgICAg
dm9pZCBiYWNrZ3JvdW5kTGF5ZXJCb3VuZHNDaGFuZ2VkKCk7CisgICAgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJldmlld0JhY2tncm91bmRM
YXllci5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIEFWVmlkZW9Tb3VyY2VQcmV2aWV3KEFWQ2Fw
dHVyZVNlc3Npb24gKiwgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqLCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZSopOwogCkBAIC0xMDQsMTMgKzEyNSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGF1c2Uo
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFZvbHVtZShkb3VibGUpIGNvbnN0IGZpbmFsIHsg
fTsKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmluYWw7Ci0gICAgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJldmlld0JhY2tncm91bmRM
YXllci5nZXQoKTsgfQotICAgIAorCiAgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCkgY29uc3Q7CiAK
ICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXJUeXBlPiBtX3ByZXZpZXdM
YXllcjsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV9wcmV2aWV3QmFja2dyb3VuZExh
eWVyOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VUeXBlZGVmPiBtX2RldmljZTsKKyAg
ICBSZXRhaW5QdHI8V2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXI+IG1fb2JqY09i
c2VydmVyOwogfTsKIAogUmVmUHRyPEFWTWVkaWFTb3VyY2VQcmV2aWV3PiBBVlZpZGVvU291cmNl
UHJldmlldzo6Y3JlYXRlKEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Npb24sIEFWQ2FwdHVyZURldmlj
ZVR5cGVkZWYqIGRldmljZSwgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIHBhcmVudCkKQEAgLTEyMCw2
ICsxNDEsNyBAQCBSZWZQdHI8QVZNZWRpYVNvdXJjZVByZXZpZXc+IEFWVmlkZW9Tb3VyCiAKIEFW
VmlkZW9Tb3VyY2VQcmV2aWV3OjpBVlZpZGVvU291cmNlUHJldmlldyhBVkNhcHR1cmVTZXNzaW9u
ICpzZXNzaW9uLCBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIEFWVmlkZW9DYXB0dXJl
U291cmNlKiBwYXJlbnQpCiAgICAgOiBBVk1lZGlhU291cmNlUHJldmlldyhwYXJlbnQpCisgICAg
LCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKIHsKICAgICBtX2RldmljZSA9IGRl
dmljZTsKICAgICBtX3ByZXZpZXdMYXllciA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlVmlkZW9Q
cmV2aWV3TGF5ZXJJbnN0YW5jZSgpIGluaXRXaXRoU2Vzc2lvbjpzZXNzaW9uXSk7CkBAIC0xMjks
MjQgKzE1MSwyOCBAQCBBVlZpZGVvU291cmNlUHJldmlldzo6QVZWaWRlb1NvdXJjZVByZXZpCiAK
ICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5jb250ZW50c0dyYXZpdHkgPSBrQ0FHcmF2aXR5UmVz
aXplOwogICAgIG1fcHJldmlld0xheWVyLmdldCgpLmFuY2hvclBvaW50ID0gQ0dQb2ludFplcm87
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hdXRvcmVzaXpp
bmdNYXNrID0ga0NBTGF5ZXJXaWR0aFNpemFibGUgfCBrQ0FMYXllckhlaWdodFNpemFibGU7Ci0j
ZW5kaWYKIAogICAgIG1fcHJldmlld0JhY2tncm91bmRMYXllciA9IGFkb3B0TlMoW1tDQUxheWVy
IGFsbG9jXSBpbml0XSk7CiAgICAgbV9wcmV2aWV3QmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUg
PSBAIkFWVmlkZW9Tb3VyY2VQcmV2aWV3IHBhcmVudCBsYXllciI7CiAgICAgbV9wcmV2aWV3QmFj
a2dyb3VuZExheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0eSA9IGtDQUdyYXZpdHlSZXNpemVBc3Bl
Y3Q7CiAgICAgbV9wcmV2aWV3QmFja2dyb3VuZExheWVyLmdldCgpLmFuY2hvclBvaW50ID0gQ0dQ
b2ludFplcm87CiAgICAgbV9wcmV2aWV3QmFja2dyb3VuZExheWVyLmdldCgpLm5lZWRzRGlzcGxh
eU9uQm91bmRzQ2hhbmdlID0gWUVTOwotI2lmICFQTEFURk9STShJT1MpCi0gICAgbV9wcmV2aWV3
QmFja2dyb3VuZExheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6
YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKLSNlbmRpZgogCiAgICAgW21fcHJldmlld0Jh
Y2tncm91bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdMYXllci5nZXQoKV07CisKKyAgICBb
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50OnRoaXNdOworfQorCit2b2lkIEFWVmlkZW9T
b3VyY2VQcmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3VuZHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAo
bV9wcmV2aWV3QmFja2dyb3VuZExheWVyICYmIG1fcHJldmlld0xheWVyKQorICAgICAgICBbbV9w
cmV2aWV3TGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOm1fcHJldmlld0JhY2tncm91bmRMYXllci5nZXQo
KS5ib3VuZHNdOwogfQogCiB2b2lkIEFWVmlkZW9Tb3VyY2VQcmV2aWV3OjppbnZhbGlkYXRlKCkK
IHsKKyAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50Om5pbF07CisgICAgbV9vYmpj
T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIG1fcHJldmlld0xheWVyID0gbnVsbHB0cjsKICAgICBt
X3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogICAgIG1fZGV2aWNlID0gbnVsbHB0
cjsKQEAgLTU4Nyw0ICs2MTMsNjIgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c3VwcG9y
dHNTaXplQQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK0BpbXBsZW1lbnRhdGlvbiBXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlcgorCistIChpZClpbml0V2l0aFBhcmVudDoo
QVZWaWRlb1NvdXJjZVByZXZpZXcgKilwYXJlbnQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRd
OworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9wYXJlbnQgPSBw
YXJlbnQ7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzZXRQYXJlbnQ6KEFWVmlk
ZW9Tb3VyY2VQcmV2aWV3ICopcGFyZW50Cit7CisgICAgaWYgKF9wYXJlbnQgJiYgX2hhdmVPYnNl
cnZlciAmJiBfcGFyZW50LT5wbGF0Zm9ybUxheWVyKCkpIHsKKyAgICAgICAgX2hhdmVPYnNlcnZl
ciA9IGZhbHNlOworICAgICAgICBbX3BhcmVudC0+cGxhdGZvcm1MYXllcigpIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyJdOworICAgIH0KKworICAgIF9wYXJlbnQgPSBw
YXJlbnQ7CisKKyAgICBpZiAoX3BhcmVudCAmJiBfcGFyZW50LT5wbGF0Zm9ybUxheWVyKCkpIHsK
KyAgICAgICAgX2hhdmVPYnNlcnZlciA9IHRydWU7CisgICAgICAgIFtfcGFyZW50LT5wbGF0Zm9y
bUxheWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOjAg
Y29udGV4dDowXTsKKyAgICB9Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpr
ZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2Ug
Y29udGV4dDoodm9pZCopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKwor
ICAgIGlmICghX3BhcmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFtbY2hhbmdlIHZh
bHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29sVmFs
dWVdKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgV2ViVGhyZWFk
UnVuKF4geworICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbDpAImJvdW5kcyJdICYmIG9iamVj
dCA9PSBfcGFyZW50LT5wbGF0Zm9ybUxheWVyKCkpCisgICAgICAgICAgICBfcGFyZW50LT5iYWNr
Z3JvdW5kTGF5ZXJCb3VuZHNDaGFuZ2VkKCk7CisgICAgfSk7CisjZWxzZQorICAgIGlmIChba2V5
UGF0aCBpc0VxdWFsOkAiYm91bmRzIl0gJiYgb2JqZWN0ID09IF9wYXJlbnQtPnBsYXRmb3JtTGF5
ZXIoKSkKKyAgICAgICAgX3BhcmVudC0+YmFja2dyb3VuZExheWVyQm91bmRzQ2hhbmdlZCgpOwor
I2VuZGlmCit9CisKKy0gKGlkPENBQWN0aW9uPilhY3Rpb25Gb3JLZXk6KE5TU3RyaW5nICopa2V5
Cit7CisgICAgVU5VU0VEX1BBUkFNKGtleSk7CisKKyAgICAvLyBEaXNhYmxlIGFsbCBhbmltYXRp
b25zLgorICAgIHJldHVybiBuaWw7Cit9CitAZW5kCisKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295698</attachid>
            <date>2016-11-29 20:14:06 -0800</date>
            <delta_ts>2016-11-30 04:10:35 -0800</delta_ts>
            <desc>Updated patch.</desc>
            <filename>resize_preview_layer_patch_5.txt</filename>
            <type>text/plain</type>
            <size>8218</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTExLTI5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
U3luYyB2aWRlbyBwcmV2aWV3IGxheWVyIGFuZCBwYXJlbnQgbGF5ZXIgc2l6ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENBTGF5ZXIgYXV0by1yZXNp
emluZyBkb2Vzbid0IHdvcmsgb24gaU9TLCBzbyBtYW51YWxseSByZWl6ZSB0aGUgdmlkZW8gY2Fw
dHVyZSBwcmV2aWV3IGxheWVyCisgICAgICAgIHdoZW5ldmVyIHRoZSBiYWNrZ3JvdW5kIGxheWVy
J3MgYm91bmRzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQ
cmV2aWV3OjpBVlZpZGVvU291cmNlUHJldmlldyk6IENyZWF0ZSBsYXllciBvYnNlcnZlci4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQcmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3Vu
ZHNDaGFuZ2VkKTogU3luYyBwcmV2aWV3IGxheWVyIGFuZCBiYWNrZ3JvdW5kCisgICAgICAgICAg
bGF5ZXIgc2l6ZXMuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvU291cmNlUHJldmlldzo6aW52
YWxpZGF0ZSk6IEludmFsaWRhdGUgYW5kIGNsZWFyIG9ic2VydmVyLgorICAgICAgICAoLVtXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBpbml0V2l0aFBhcmVudDpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgc2V0UGFyZW50Ol0pOiBB
ZGQgS1ZPIGJvdW5kcyBvYnNlcnZlci4KKyAgICAgICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJl
U291cmNlT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKTogQ2FsbAorICAgICAgICBwYXJlbnQgd2hlbiAiYm91bmRzIiBjaGFuZ2VzLgorICAg
ICAgICAoLVtXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhY3Rpb25Gb3JLZXk6
XSk6IFJldHVybiBuaWwgdG8gZGlzYWJsZSBhbGwgYW5pbWF0aW9ucy4KKwogMjAxNi0xMS0yOCAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgSFRN
TE1lZGlhRWxlbWVudDo6dXBkYXRlVm9sdW1lIHNob3VsZCB1cGRhdGVJc1BsYXlpbmdNZWRpYQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24gMjA5MDg0KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCwxNSBAQAogI2ltcG9ydCAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVByZXZp
ZXcuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2ltcG9ydCAi
V2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRp
b24vQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIAorI2lmIFBMQVRG
T1JNKElPUykKKyNpbmNsdWRlICJXZWJDb3JlVGhyZWFkLmgiCisjaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZFJ1bi5oIgorI2VuZGlmCisKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW1w
b3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCkBAIC03OSw3ICs4NSw3IEBAIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXIKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDk2MHg1NDAsIE5TU3RyaW5nICopCiBTT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQ2NDB4NDgwLCBO
U1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNz
aW9uUHJlc2V0MzUyeDI4OCwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDMyMHgyNDAsIE5TU3RyaW5nKikKK1NPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDMyMHgyNDAsIE5T
U3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Np
b25QcmVzZXRMb3csIE5TU3RyaW5nICopCiAKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblByZXNl
dDEyODB4NzIwIGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQxMjgweDcyMCgpCkBAIC04OSwxNCAr
OTUsMjggQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cgogI2RlZmlu
ZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MzIweDI0MCBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0
MzIweDI0MCgpCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3cgZ2V0QVZDYXB0dXJl
U2Vzc2lvblByZXNldExvdygpCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitAaW50ZXJm
YWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8Q0FMYXll
ckRlbGVnYXRlPiB7CisgICAgQVZWaWRlb1NvdXJjZVByZXZpZXcgKl9wYXJlbnQ7CisgICAgQk9P
TCBfaGFzT2JzZXJ2ZXI7Cit9CisKKy0gKHZvaWQpc2V0UGFyZW50OihBVlZpZGVvU291cmNlUHJl
dmlldyAqKXBhcmVudDsKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoo
dm9pZCAqKWNvbnRleHQ7CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVZW
aWRlb1NvdXJjZVByZXZpZXc6IHB1YmxpYyBBVk1lZGlhU291cmNlUHJldmlldyB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxBVk1lZGlhU291cmNlUHJldmlldz4gY3JlYXRlKEFWQ2FwdHVy
ZVNlc3Npb24gKiwgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqLCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZSopOworICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYVNvdXJjZVByZXZpZXc+IGNyZWF0ZShBVkNh
cHR1cmVTZXNzaW9uKiwgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiosIEFWVmlkZW9DYXB0dXJlU291
cmNlKik7CisKKyAgICB2b2lkIGJhY2tncm91bmRMYXllckJvdW5kc0NoYW5nZWQoKTsKKyAgICBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcmV2
aWV3QmFja2dyb3VuZExheWVyLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRlb1NvdXJj
ZVByZXZpZXcoQVZDYXB0dXJlU2Vzc2lvbiAqLCBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICosIEFW
VmlkZW9DYXB0dXJlU291cmNlKik7CisgICAgQVZWaWRlb1NvdXJjZVByZXZpZXcoQVZDYXB0dXJl
U2Vzc2lvbiosIEFWQ2FwdHVyZURldmljZVR5cGVkZWYqLCBBVlZpZGVvQ2FwdHVyZVNvdXJjZSop
OwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKQEAgLTEwNCwxMyArMTI0LDEyIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwYXVzZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGRvdWJsZSkgY29uc3QgZmluYWwgeyB9OwogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBm
aW5hbDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9wcmV2aWV3QmFja2dyb3VuZExheWVyLmdldCgpOyB9Ci0gICAgCiAgICAgdm9pZCBz
ZXRQYXVzZWQoYm9vbCkgY29uc3Q7CiAKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2
aWV3TGF5ZXJUeXBlPiBtX3ByZXZpZXdMYXllcjsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXll
cj4gbV9wcmV2aWV3QmFja2dyb3VuZExheWVyOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZp
Y2VUeXBlZGVmPiBtX2RldmljZTsKKyAgICBSZXRhaW5QdHI8V2ViQ29yZUFWVmlkZW9DYXB0dXJl
U291cmNlT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogfTsKIAogUmVmUHRyPEFWTWVkaWFTb3Vy
Y2VQcmV2aWV3PiBBVlZpZGVvU291cmNlUHJldmlldzo6Y3JlYXRlKEFWQ2FwdHVyZVNlc3Npb24g
KnNlc3Npb24sIEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgQVZWaWRlb0NhcHR1cmVT
b3VyY2UqIHBhcmVudCkKQEAgLTEyMCwzMyArMTM5LDQwIEBAIFJlZlB0cjxBVk1lZGlhU291cmNl
UHJldmlldz4gQVZWaWRlb1NvdXIKIAogQVZWaWRlb1NvdXJjZVByZXZpZXc6OkFWVmlkZW9Tb3Vy
Y2VQcmV2aWV3KEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Npb24sIEFWQ2FwdHVyZURldmljZVR5cGVk
ZWYqIGRldmljZSwgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIHBhcmVudCkKICAgICA6IEFWTWVkaWFT
b3VyY2VQcmV2aWV3KHBhcmVudCkKKyAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pKQogewogICAgIG1f
ZGV2aWNlID0gZGV2aWNlOwogICAgIG1fcHJldmlld0xheWVyID0gYWRvcHROUyhbYWxsb2NBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllckluc3RhbmNlKCkgaW5pdFdpdGhTZXNzaW9uOnNlc3Npb25d
KTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZW
aWRlb0NhcHR1cmVTb3VyY2UgcHJldmlldyBsYXllciI7Ci0jZW5kaWYKLQogICAgIG1fcHJldmll
d0xheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0eSA9IGtDQUdyYXZpdHlSZXNpemU7CiAgICAgbV9w
cmV2aWV3TGF5ZXIuZ2V0KCkuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLSNpZiAhUExBVEZP
Uk0oSU9TKQotICAgIG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FM
YXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKLSNlbmRpZgorICAgIFtt
X3ByZXZpZXdMYXllci5nZXQoKSBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXll
ckRlbGVnYXRlIHNoYXJlZF1dOwogCiAgICAgbV9wcmV2aWV3QmFja2dyb3VuZExheWVyID0gYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKLSAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5
ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb1NvdXJjZVByZXZpZXcgcGFyZW50IGxheWVyIjsKICAg
ICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jh
dml0eVJlc2l6ZUFzcGVjdDsKICAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYW5j
aG9yUG9pbnQgPSBDR1BvaW50WmVybzsKICAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0
KCkubmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UgPSBZRVM7Ci0jaWYgIVBMQVRGT1JNKElPUykK
LSAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYXV0b3Jlc2l6aW5nTWFzayA9IGtD
QUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRTaXphYmxlOworICAgIFttX3ByZXZp
ZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NB
TGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKKworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ByZXZpZXdM
YXllci5nZXQoKS5uYW1lID0gQCJBVlZpZGVvQ2FwdHVyZVNvdXJjZSBwcmV2aWV3IGxheWVyIjsK
KyAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb1NvdXJj
ZVByZXZpZXcgcGFyZW50IGxheWVyIjsKICNlbmRpZgogCiAgICAgW21fcHJldmlld0JhY2tncm91
bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdMYXllci5nZXQoKV07CisKKyAgICBbbV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50OnRoaXNdOworfQorCit2b2lkIEFWVmlkZW9Tb3VyY2VQ
cmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3VuZHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9wcmV2
aWV3QmFja2dyb3VuZExheWVyICYmIG1fcHJldmlld0xheWVyKQorICAgICAgICBbbV9wcmV2aWV3
TGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOm1fcHJldmlld0JhY2tncm91bmRMYXllci5nZXQoKS5ib3Vu
ZHNdOwogfQogCiB2b2lkIEFWVmlkZW9Tb3VyY2VQcmV2aWV3OjppbnZhbGlkYXRlKCkKIHsKKyAg
ICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50Om5pbF07CisgICAgbV9vYmpjT2JzZXJ2
ZXIgPSBudWxscHRyOwogICAgIG1fcHJldmlld0xheWVyID0gbnVsbHB0cjsKICAgICBtX3ByZXZp
ZXdCYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogICAgIG1fZGV2aWNlID0gbnVsbHB0cjsKQEAg
LTU4Nyw0ICs2MTMsNDYgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c3VwcG9ydHNTaXpl
QQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK0BpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZW
aWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlcgorCitzdGF0aWMgTlNLZXlWYWx1ZUNoYW5nZUtleSBj
b25zdCBLZXlWYWx1ZUJvdW5kc0NoYW5nZUtleSA9IEAiYm91bmRzIjsKKworLSAodm9pZClzZXRQ
YXJlbnQ6KEFWVmlkZW9Tb3VyY2VQcmV2aWV3ICopcGFyZW50Cit7CisgICAgaWYgKF9wYXJlbnQg
JiYgX2hhc09ic2VydmVyICYmIF9wYXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSkgeworICAgICAgICBf
aGFzT2JzZXJ2ZXIgPSBmYWxzZTsKKyAgICAgICAgW19wYXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6S2V5VmFsdWVCb3VuZHNDaGFuZ2VLZXldOwor
ICAgIH0KKworICAgIF9wYXJlbnQgPSBwYXJlbnQ7CisKKyAgICBpZiAoX3BhcmVudCAmJiBfcGFy
ZW50LT5wbGF0Zm9ybUxheWVyKCkpIHsKKyAgICAgICAgX2hhc09ic2VydmVyID0gdHJ1ZTsKKyAg
ICAgICAgW19wYXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBh
dGg6S2V5VmFsdWVCb3VuZHNDaGFuZ2VLZXkgb3B0aW9uczowIGNvbnRleHQ6bnVsbHB0cl07Cisg
ICAgfQorfQorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0aCBvZk9iamVj
dDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQg
Kiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCisgICAgaWYgKCFfcGFy
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNL
ZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1ZV0pCisgICAgICAg
IHJldHVybjsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBXZWJUaHJlYWRSdW4oXiB7CisgICAg
ICAgIGlmIChba2V5UGF0aCBpc0VxdWFsOktleVZhbHVlQm91bmRzQ2hhbmdlS2V5XSAmJiBvYmpl
Y3QgPT0gX3BhcmVudC0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICAgICAgX3BhcmVudC0+YmFj
a2dyb3VuZExheWVyQm91bmRzQ2hhbmdlZCgpOworICAgIH0pOworI2Vsc2UKKyAgICBpZiAoW2tl
eVBhdGggaXNFcXVhbDpLZXlWYWx1ZUJvdW5kc0NoYW5nZUtleV0gJiYgb2JqZWN0ID09IF9wYXJl
bnQtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgX3BhcmVudC0+YmFja2dyb3VuZExheWVyQm91
bmRzQ2hhbmdlZCgpOworI2VuZGlmCit9CisKK0BlbmQKKwogI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295714</attachid>
            <date>2016-11-30 04:10:35 -0800</date>
            <delta_ts>2016-11-30 11:20:52 -0800</delta_ts>
            <desc>YAUP.</desc>
            <filename>resize_preview_layer_patch_6.txt</filename>
            <type>text/plain</type>
            <size>8209</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE2LTExLTI5ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
U3luYyB2aWRlbyBwcmV2aWV3IGxheWVyIGFuZCBwYXJlbnQgbGF5ZXIgc2l6ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENBTGF5ZXIgYXV0by1yZXNp
emluZyBkb2Vzbid0IHdvcmsgb24gaU9TLCBzbyBtYW51YWxseSByZWl6ZSB0aGUgdmlkZW8gY2Fw
dHVyZSBwcmV2aWV3IGxheWVyCisgICAgICAgIHdoZW5ldmVyIHRoZSBiYWNrZ3JvdW5kIGxheWVy
J3MgYm91bmRzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQ
cmV2aWV3OjpBVlZpZGVvU291cmNlUHJldmlldyk6IENyZWF0ZSBsYXllciBvYnNlcnZlci4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWVmlkZW9Tb3VyY2VQcmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3Vu
ZHNDaGFuZ2VkKTogU3luYyBwcmV2aWV3IGxheWVyIGFuZCBiYWNrZ3JvdW5kCisgICAgICAgICAg
bGF5ZXIgc2l6ZXMuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvU291cmNlUHJldmlldzo6aW52
YWxpZGF0ZSk6IEludmFsaWRhdGUgYW5kIGNsZWFyIG9ic2VydmVyLgorICAgICAgICAoLVtXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBpbml0V2l0aFBhcmVudDpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgc2V0UGFyZW50Ol0pOiBB
ZGQgS1ZPIGJvdW5kcyBvYnNlcnZlci4KKyAgICAgICAgKC1bV2ViQ29yZUFWVmlkZW9DYXB0dXJl
U291cmNlT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKTogQ2FsbAorICAgICAgICBwYXJlbnQgd2hlbiAiYm91bmRzIiBjaGFuZ2VzLgorICAg
ICAgICAoLVtXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhY3Rpb25Gb3JLZXk6
XSk6IFJldHVybiBuaWwgdG8gZGlzYWJsZSBhbGwgYW5pbWF0aW9ucy4KKwogMjAxNi0xMS0yOCAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgSFRN
TE1lZGlhRWxlbWVudDo6dXBkYXRlVm9sdW1lIHNob3VsZCB1cGRhdGVJc1BsYXlpbmdNZWRpYQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24gMjA5MDg0KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCwxNSBAQAogI2ltcG9ydCAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVByZXZp
ZXcuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2ltcG9ydCAi
V2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRp
b24vQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIAorI2lmIFBMQVRG
T1JNKElPUykKKyNpbmNsdWRlICJXZWJDb3JlVGhyZWFkLmgiCisjaW5jbHVkZSAiV2ViQ29yZVRo
cmVhZFJ1bi5oIgorI2VuZGlmCisKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW1w
b3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogCkBAIC03OSw3ICs4NSw3IEBAIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXIKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDk2MHg1NDAsIE5TU3RyaW5nICopCiBTT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQ2NDB4NDgwLCBO
U1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNz
aW9uUHJlc2V0MzUyeDI4OCwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRh
dGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDMyMHgyNDAsIE5TU3RyaW5nKikKK1NPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvblByZXNldDMyMHgyNDAsIE5T
U3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Np
b25QcmVzZXRMb3csIE5TU3RyaW5nICopCiAKICNkZWZpbmUgQVZDYXB0dXJlU2Vzc2lvblByZXNl
dDEyODB4NzIwIGdldEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQxMjgweDcyMCgpCkBAIC04OSwxNCAr
OTUsMjggQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cgogI2RlZmlu
ZSBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MzIweDI0MCBnZXRBVkNhcHR1cmVTZXNzaW9uUHJlc2V0
MzIweDI0MCgpCiAjZGVmaW5lIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXRMb3cgZ2V0QVZDYXB0dXJl
U2Vzc2lvblByZXNldExvdygpCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitAaW50ZXJm
YWNlIFdlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIDogTlNPYmplY3Q8Q0FMYXll
ckRlbGVnYXRlPiB7CisgICAgQVZWaWRlb1NvdXJjZVByZXZpZXcgKl9wYXJlbnQ7CisgICAgQk9P
TCBfaGFzT2JzZXJ2ZXI7Cit9CisKKy0gKHZvaWQpc2V0UGFyZW50OihBVlZpZGVvU291cmNlUHJl
dmlldyAqKXBhcmVudDsKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoo
dm9pZCAqKWNvbnRleHQ7CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVZW
aWRlb1NvdXJjZVByZXZpZXc6IHB1YmxpYyBBVk1lZGlhU291cmNlUHJldmlldyB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZlB0cjxBVk1lZGlhU291cmNlUHJldmlldz4gY3JlYXRlKEFWQ2FwdHVy
ZVNlc3Npb24gKiwgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqLCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZSopOworICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYVNvdXJjZVByZXZpZXc+IGNyZWF0ZShBVkNh
cHR1cmVTZXNzaW9uKiwgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiosIEFWVmlkZW9DYXB0dXJlU291
cmNlKik7CisKKyAgICB2b2lkIGJhY2tncm91bmRMYXllckJvdW5kc0NoYW5nZWQoKTsKKyAgICBQ
bGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcmV2
aWV3QmFja2dyb3VuZExheWVyLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRlb1NvdXJj
ZVByZXZpZXcoQVZDYXB0dXJlU2Vzc2lvbiAqLCBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICosIEFW
VmlkZW9DYXB0dXJlU291cmNlKik7CisgICAgQVZWaWRlb1NvdXJjZVByZXZpZXcoQVZDYXB0dXJl
U2Vzc2lvbiosIEFWQ2FwdHVyZURldmljZVR5cGVkZWYqLCBBVlZpZGVvQ2FwdHVyZVNvdXJjZSop
OwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKQEAgLTEwNCwxMyArMTI0LDEyIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwYXVzZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGRvdWJsZSkgY29uc3QgZmluYWwgeyB9OwogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBm
aW5hbDsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9wcmV2aWV3QmFja2dyb3VuZExheWVyLmdldCgpOyB9Ci0gICAgCiAgICAgdm9pZCBz
ZXRQYXVzZWQoYm9vbCkgY29uc3Q7CiAKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2
aWV3TGF5ZXJUeXBlPiBtX3ByZXZpZXdMYXllcjsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXll
cj4gbV9wcmV2aWV3QmFja2dyb3VuZExheWVyOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZp
Y2VUeXBlZGVmPiBtX2RldmljZTsKKyAgICBSZXRhaW5QdHI8V2ViQ29yZUFWVmlkZW9DYXB0dXJl
U291cmNlT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogfTsKIAogUmVmUHRyPEFWTWVkaWFTb3Vy
Y2VQcmV2aWV3PiBBVlZpZGVvU291cmNlUHJldmlldzo6Y3JlYXRlKEFWQ2FwdHVyZVNlc3Npb24g
KnNlc3Npb24sIEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgQVZWaWRlb0NhcHR1cmVT
b3VyY2UqIHBhcmVudCkKQEAgLTEyMCwzMyArMTM5LDQwIEBAIFJlZlB0cjxBVk1lZGlhU291cmNl
UHJldmlldz4gQVZWaWRlb1NvdXIKIAogQVZWaWRlb1NvdXJjZVByZXZpZXc6OkFWVmlkZW9Tb3Vy
Y2VQcmV2aWV3KEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Npb24sIEFWQ2FwdHVyZURldmljZVR5cGVk
ZWYqIGRldmljZSwgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIHBhcmVudCkKICAgICA6IEFWTWVkaWFT
b3VyY2VQcmV2aWV3KHBhcmVudCkKKyAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJD
b3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdF0pKQogewogICAgIG1f
ZGV2aWNlID0gZGV2aWNlOwogICAgIG1fcHJldmlld0xheWVyID0gYWRvcHROUyhbYWxsb2NBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllckluc3RhbmNlKCkgaW5pdFdpdGhTZXNzaW9uOnNlc3Npb25d
KTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZW
aWRlb0NhcHR1cmVTb3VyY2UgcHJldmlldyBsYXllciI7Ci0jZW5kaWYKLQogICAgIG1fcHJldmll
d0xheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0eSA9IGtDQUdyYXZpdHlSZXNpemU7CiAgICAgbV9w
cmV2aWV3TGF5ZXIuZ2V0KCkuYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKLSNpZiAhUExBVEZP
Uk0oSU9TKQotICAgIG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FM
YXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKLSNlbmRpZgorICAgIFtt
X3ByZXZpZXdMYXllci5nZXQoKSBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXll
ckRlbGVnYXRlIHNoYXJlZF1dOwogCiAgICAgbV9wcmV2aWV3QmFja2dyb3VuZExheWVyID0gYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKLSAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5
ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb1NvdXJjZVByZXZpZXcgcGFyZW50IGxheWVyIjsKICAg
ICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jh
dml0eVJlc2l6ZUFzcGVjdDsKICAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYW5j
aG9yUG9pbnQgPSBDR1BvaW50WmVybzsKICAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0
KCkubmVlZHNEaXNwbGF5T25Cb3VuZHNDaGFuZ2UgPSBZRVM7Ci0jaWYgIVBMQVRGT1JNKElPUykK
LSAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYXV0b3Jlc2l6aW5nTWFzayA9IGtD
QUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRTaXphYmxlOworICAgIFttX3ByZXZp
ZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NB
TGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKKworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ByZXZpZXdM
YXllci5nZXQoKS5uYW1lID0gQCJBVlZpZGVvQ2FwdHVyZVNvdXJjZSBwcmV2aWV3IGxheWVyIjsK
KyAgICBtX3ByZXZpZXdCYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb1NvdXJj
ZVByZXZpZXcgcGFyZW50IGxheWVyIjsKICNlbmRpZgogCiAgICAgW21fcHJldmlld0JhY2tncm91
bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdMYXllci5nZXQoKV07CisKKyAgICBbbV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50OnRoaXNdOworfQorCit2b2lkIEFWVmlkZW9Tb3VyY2VQ
cmV2aWV3OjpiYWNrZ3JvdW5kTGF5ZXJCb3VuZHNDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9wcmV2
aWV3QmFja2dyb3VuZExheWVyICYmIG1fcHJldmlld0xheWVyKQorICAgICAgICBbbV9wcmV2aWV3
TGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOm1fcHJldmlld0JhY2tncm91bmRMYXllci5nZXQoKS5ib3Vu
ZHNdOwogfQogCiB2b2lkIEFWVmlkZW9Tb3VyY2VQcmV2aWV3OjppbnZhbGlkYXRlKCkKIHsKKyAg
ICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0UGFyZW50Om5pbF07CisgICAgbV9vYmpjT2JzZXJ2
ZXIgPSBudWxscHRyOwogICAgIG1fcHJldmlld0xheWVyID0gbnVsbHB0cjsKICAgICBtX3ByZXZp
ZXdCYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogICAgIG1fZGV2aWNlID0gbnVsbHB0cjsKQEAg
LTU4Nyw0ICs2MTMsNDYgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c3VwcG9ydHNTaXpl
QQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK0BpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZW
aWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZlcgorCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBLZXlW
YWx1ZUJvdW5kc0NoYW5nZUtleSA9IEAiYm91bmRzIjsKKworLSAodm9pZClzZXRQYXJlbnQ6KEFW
VmlkZW9Tb3VyY2VQcmV2aWV3ICopcGFyZW50Cit7CisgICAgaWYgKF9wYXJlbnQgJiYgX2hhc09i
c2VydmVyICYmIF9wYXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSkgeworICAgICAgICBfaGFzT2JzZXJ2
ZXIgPSBmYWxzZTsKKyAgICAgICAgW19wYXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSByZW1vdmVPYnNl
cnZlcjpzZWxmIGZvcktleVBhdGg6S2V5VmFsdWVCb3VuZHNDaGFuZ2VLZXldOworICAgIH0KKwor
ICAgIF9wYXJlbnQgPSBwYXJlbnQ7CisKKyAgICBpZiAoX3BhcmVudCAmJiBfcGFyZW50LT5wbGF0
Zm9ybUxheWVyKCkpIHsKKyAgICAgICAgX2hhc09ic2VydmVyID0gdHJ1ZTsKKyAgICAgICAgW19w
YXJlbnQtPnBsYXRmb3JtTGF5ZXIoKSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6S2V5VmFs
dWVCb3VuZHNDaGFuZ2VLZXkgb3B0aW9uczowIGNvbnRleHQ6bnVsbHB0cl07CisgICAgfQorfQor
CistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0aCBvZk9iamVjdDooaWQpb2Jq
ZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0
Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCisgICAgaWYgKCFfcGFyZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1ZV0pCisgICAgICAgIHJldHVybjsK
KworI2lmIFBMQVRGT1JNKElPUykKKyAgICBXZWJUaHJlYWRSdW4oXiB7CisgICAgICAgIGlmIChb
a2V5UGF0aCBpc0VxdWFsOktleVZhbHVlQm91bmRzQ2hhbmdlS2V5XSAmJiBvYmplY3QgPT0gX3Bh
cmVudC0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICAgICAgX3BhcmVudC0+YmFja2dyb3VuZExh
eWVyQm91bmRzQ2hhbmdlZCgpOworICAgIH0pOworI2Vsc2UKKyAgICBpZiAoW2tleVBhdGggaXNF
cXVhbDpLZXlWYWx1ZUJvdW5kc0NoYW5nZUtleV0gJiYgb2JqZWN0ID09IF9wYXJlbnQtPnBsYXRm
b3JtTGF5ZXIoKSkKKyAgICAgICAgX3BhcmVudC0+YmFja2dyb3VuZExheWVyQm91bmRzQ2hhbmdl
ZCgpOworI2VuZGlmCit9CisKK0BlbmQKKwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>