<?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>130427</bug_id>
          
          <creation_ts>2014-03-18 15:08:18 -0700</creation_ts>
          <short_desc>[iOS][WebKit2] Mark layer contents as being opaque if they are</short_desc>
          <delta_ts>2014-03-18 18:52:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991907</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 15:08:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/15540434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991971</commentid>
    <comment_count>1</comment_count>
      <attachid>227141</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 18:12:27 -0700</bug_when>
    <thetext>Created attachment 227141
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991972</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 18:15:08 -0700</bug_when>
    <thetext>Attachment 227141 did not pass style-queue:


ERROR: Source/WebKit2/Shared/mac/RemoteLayerBackingStore.h:66:  The parameter name &quot;layer&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 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>991973</commentid>
    <comment_count>3</comment_count>
      <attachid>227141</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 18:17:36 -0700</bug_when>
    <thetext>Comment on attachment 227141
patch

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

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm:793
&gt; +            if (const RemoteLayerBackingStore* backingStore = layerProperties.backingStore.get())

we should log something if it goes away too...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991974</commentid>
    <comment_count>4</comment_count>
      <attachid>227141</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-18 18:20:42 -0700</bug_when>
    <thetext>Comment on attachment 227141
patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:91
&gt; +    virtual bool willPaintOpaqueAtNonIntegralScale(const GraphicsLayer*) const { return false; }

This sounds like it only applies to the next paint. Maybe paintsOpaquelyAtNonIntegralScales?

&gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStore.h:84
&gt; +    RetainPtr&lt;CGImageRef&gt; image() const;

Does this actually need to return a RetainPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991975</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 18:26:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 227141 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227141&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:91
&gt; &gt; +    virtual bool willPaintOpaqueAtNonIntegralScale(const GraphicsLayer*) const { return false; }
&gt; 
&gt; This sounds like it only applies to the next paint. Maybe paintsOpaquelyAtNonIntegralScales?

Sure.

&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStore.h:84
&gt; &gt; +    RetainPtr&lt;CGImageRef&gt; image() const;
&gt; 
&gt; Does this actually need to return a RetainPtr?

I think so? It creates a fresh CGImage from the ShareableBitmap. Maybe I should rename it createImageForFrontBuffer() or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991979</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 18:52:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/165863</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227141</attachid>
            <date>2014-03-18 18:12:27 -0700</date>
            <delta_ts>2014-03-18 18:20:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>opaque.diff</filename>
            <type>text/plain</type>
            <size>17749</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMzUyMjBmLi41MzQ1YTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU11bV2ViS2l0Ml0gTWFyayBsYXllciBjb250ZW50cyBhcyBiZWluZyBvcGFx
dWUgaWYgdGhleSBhcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMDQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU1NDA0MzQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50Ojp3aWxsUGFpbnRPcGFxdWVBdE5vbkludGVncmFsU2NhbGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzT3BhcXVlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6d2lsbFBhaW50T3BhcXVlQXROb25JbnRlZ3JhbFNjYWxlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIHIxNTk0NjMgc3Rv
cHBlZCB1cyBmcm9tIHNldHRpbmcgbGF5ZXJzIG9wYXF1ZSBpZiB0aGV5IHdlcmUgYmVpbmcgcGFp
bnRlZAorICAgICAgICBhdCBub24taW50ZWdyYWwgc2NhbGUuIFRoaXMgbWFrZXMgc2Vuc2UgZm9y
IGNvbXBvc2l0aW5nIGxheWVycywgd2hpY2gKKyAgICAgICAgYXJlIHBhaW50ZWQgYnkgYXJiaXRy
YXJ5IGVsZW1lbnRzLCBidXQgdGhlIG1haW4gZnJhbWUncyBSZW5kZXJWaWV3CisgICAgICAgIHdp
bGwgYWx3YXlzIHBhaW50IGl0cyBlbnRpcmUgY29udGVudHMuIFRvIHJlc3RvcmUgdGhlIG9wYXF1
ZSBjb250ZW50cworICAgICAgICBvcHRpbWl6YXRpb24gdG8gdGhlIG1haW4gZnJhbWUncyB0aWxl
cywgZG9uJ3QgZGUtb3BhcXVpZnkgbGF5ZXJzCisgICAgICAgIGJlbG9uZ2luZyB0byB0aGUgbWFp
biBmcmFtZSdzIFJlbmRlclZpZXcuCisKIDIwMTQtMDMtMTcgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlZUVF0gRXh0ZW5kaW5nIFdlYlZUVCBSZW5k
ZXJpbmcgd2l0aCBSZWdpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggMWE1N2FhZS4uNjg0ODgzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiAxOyB9CiAKICAgICB2aXJ0dWFsIGZsb2F0
IGNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0IHsgcmV0dXJuIDE7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFBhaW50T3BhcXVlQXRO
b25JbnRlZ3JhbFNjYWxlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDUxMDBmNTUuLjQ4NDU2Y2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtMTY1NSw3ICsxNjU1LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVw
ZGF0ZUNvbnRlbnRzT3BhcXVlKGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKICAgICBib29sIGNvbnRl
bnRzT3BhcXVlID0gbV9jb250ZW50c09wYXF1ZTsKICAgICBpZiAoY29udGVudHNPcGFxdWUpIHsK
ICAgICAgICAgZmxvYXQgY29udGVudHNTY2FsZSA9IGNsYW1wZWRDb250ZW50c1NjYWxlRm9yU2Nh
bGUobV9yb290UmVsYXRpdmVTY2FsZUZhY3RvciAqIHBhZ2VTY2FsZUZhY3RvciAqIGRldmljZVNj
YWxlRmFjdG9yKCkpOwotICAgICAgICBpZiAoIWlzSW50ZWdyYWwoY29udGVudHNTY2FsZSkpCisg
ICAgICAgIGlmICghaXNJbnRlZ3JhbChjb250ZW50c1NjYWxlKSAmJiAhbV9jbGllbnQtPndpbGxQ
YWludE9wYXF1ZUF0Tm9uSW50ZWdyYWxTY2FsZSh0aGlzKSkKICAgICAgICAgICAgIGNvbnRlbnRz
T3BhcXVlID0gZmFsc2U7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhOGFjMWFkLi45NTIxMTQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjI1
Nyw2ICsyMjU3LDExIEBAIGZsb2F0IFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNTY2FsZU11
bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVyCiAgICAgcmV0dXJuIGNvbXBv
c2l0b3IoKS5jb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKGxheWVyKTsKIH0KIAor
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OndpbGxQYWludE9wYXF1ZUF0Tm9uSW50ZWdyYWxTY2Fs
ZShjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc01haW5GcmFt
ZVJlbmRlclZpZXdMYXllcjsKK30KKwogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmRpZENvbW1p
dENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKIHsKICAg
ICBjb21wb3NpdG9yKCkuZGlkRmx1c2hDaGFuZ2VzRm9yTGF5ZXIobV9vd25pbmdMYXllciwgbGF5
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmlu
ZGV4IDdiZjU0YWYuLmY2NDViZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE3Nyw2ICsxNzcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
ZmxvYXQgY29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFBhaW50T3BhcXVl
QXROb25JbnRlZ3JhbFNjYWxlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsK
KwogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGdldEN1cnJlbnRUcmFuc2Zv
cm0oY29uc3QgR3JhcGhpY3NMYXllciosIFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTdkYzE0OC4uYmZkNWJjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ5IEBACisyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1NdW1dlYktpdDJdIE1hcmsgbGF5ZXIgY29udGVudHMgYXMgYmVp
bmcgb3BhcXVlIGlmIHRoZXkgYXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzA0MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1NTQwNDM0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6aXNPcGFxdWUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUpOgorICAgICAgICAoUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmU6OmVuc3VyZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkZWNvZGUpOgor
ICAgICAgICAoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAoUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcik6CisgICAgICAg
IE1vdmUgdGhlIGNvZGUgdG8gc2V0IGEgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgYXMgYSBDQUxh
eWVyJ3MgY29udGVudHMKKyAgICAgICAgZnJvbSBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXIgdG8gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgKG1vc3RseQorICAgICAgICBhcyBhIHdheSB0
byBrZWVwIHRoZSBVU0UoSU9TVVJGQUNFKSAjaWZzIGluIG9uZSBwbGFjZSkuCisgICAgICAgIFJl
bW92ZSB0aGUgc3VyZmFjZSgpIGdldHRlciwgYmVjYXVzZSBpdCdzIG5vIGxvbmdlciBuZWVkZWQs
IGFuZCBtYWtlCisgICAgICAgIGltYWdlKCkgcHJpdmF0ZSBhcyBpdCBjYW4gYmUgbm93LgorCisg
ICAgICAgIEFkZCBhbiBpc09wYXF1ZSBhcmd1bWVudCB0byBlbnN1cmVCYWNraW5nU3RvcmUsIGVu
Y29kZS9kZWNvZGUgaXQsIGFuZAorICAgICAgICBhZGQgYSBnZXR0ZXIuIElmIGlzT3BhcXVlIGlz
IHRydWUgd2hlbiBhcHBseWluZyBiYWNraW5nIHN0b3JlIHRvIHRoZQorICAgICAgICBDQUxheWVy
IG9uIHRoZSBVSSBwcm9jZXNzIHNpZGUsIHNldCBDQUxheWVyLmNvbnRlbnRzT3BhcXVlIHRvIGxl
dCBDQSBrbm93LgorCisgICAgICAgIE1ha2Ugb3BhcXVlIGJpdG1hcHMgaWYgbm90IHVzaW5nIGFj
Y2VsZXJhdGVkIGRyYXdpbmcuIEZvciB0aGUgSU9TdXJmYWNlCisgICAgICAgIGNhc2UsIHdlIGNh
bid0IG1ha2Ugb3BhcXVlIElPU3VyZmFjZXMsIGJ1dCB0ZWxsaW5nIENBIHRoYXQgd2UgaGF2ZSBm
aWxsZWQKKyAgICAgICAgdGhlIHdob2xlIGJpdG1hcCBzdGlsbCBlbmFibGVzIHNpbWlsYXIgb3B0
aW1pemF0aW9ucy4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVy
dHlBcHBsaWVyLm1tOgorICAgICAgICAoV2ViS2l0OjphcHBseVByb3BlcnRpZXNUb0xheWVyKToK
KyAgICAgICAgUmVzZXQgY29udGVudHNPcGFxdWUgaWYgdGhlIGxheWVyIGxvc2VzIGl0cyBiYWNr
aW5nIHN0b3JlLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVhbTo6b3Bl
cmF0b3I8PCk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5ZXJzKToKKyAgICAgICAg
QWRkIGEgYml0IG1vcmUgbG9nZ2luZyBhYm91dCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSdzIG9w
YXF1ZW5lc3MKKyAgICAgICAgYW5kIGFjY2VsZXJhdGVkbmVzcy4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0T3BhcXVlKToKKyAgICAgICAgSW52YWxpZGF0ZSB0aGUgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUgaWYgbGF5ZXIgb3BhcXVlbmVzcyBjaGFuZ2VzLgorCiAyMDE0
LTAzLTE3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE1v
dmUgY29udmVydFRvUmFuZ2UoKSBoZWxwZXIgdG8gY3Jvc3MtcGxhdGZvcm0gV2ViUGFnZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUuaAppbmRleCBkMWZjZGE0Li5hNDBlYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0zNCw2ICszNCw4IEBACiAj
aW5jbHVkZSA8SU9TdXJmYWNlL0lPU3VyZmFjZS5oPgogI2VuZGlmCiAKK09CSkNfQ0xBU1MgQ0FM
YXllcjsKKwogLy8gRklYTUU6IE1ha2UgUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCBPYmplY3Rp
dmUtQyBzbyB3ZSBjYW4gaW5jbHVkZSBXZWJMYXllci5oIGhlcmUgYW5kIHNoYXJlIHRoZSB0eXBl
ZGVmLgogbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBWZWN0b3I8V2ViQ29yZTo6RmxvYXRS
ZWN0LCA1PiBSZXBhaW50UmVjdExpc3Q7CkBAIC00NywyMyArNDksMjIgQEAgY2xhc3MgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUgewogcHVibGljOgogICAgIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
KCk7CiAKLSAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZShQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUq
LCBXZWJDb3JlOjpJbnRTaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcp
OworICAgIHZvaWQgZW5zdXJlQmFja2luZ1N0b3JlKFBsYXRmb3JtQ0FMYXllclJlbW90ZSosIFdl
YkNvcmU6OkludFNpemUsIGZsb2F0IHNjYWxlLCBib29sIGFjY2VsZXJhdGVzRHJhd2luZywgYm9v
bCBpc09wYXF1ZSk7CiAKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0KTsKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheSgpOwogCiAgICAgYm9vbCBkaXNwbGF5
KCk7CiAKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UoKSBjb25zdDsKLSNpZiBVU0Uo
SU9TVVJGQUNFKQotICAgIFJldGFpblB0cjxJT1N1cmZhY2VSZWY+IHN1cmZhY2UoKSBjb25zdCB7
IHJldHVybiBtX2Zyb250U3VyZmFjZTsgfQotI2VuZGlmCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgZmxvYXQgc2NhbGUoKSBjb25zdCB7
IHJldHVybiBtX3NjYWxlOyB9CiAgICAgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdCB7
IHJldHVybiBtX2FjY2VsZXJhdGVzRHJhd2luZzsgfQorICAgIGJvb2wgaXNPcGFxdWUoKSBjb25z
dCB7IHJldHVybiBtX2lzT3BhcXVlOyB9CiAKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGxh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcjsgfQogCisgICAgdm9pZCBhcHBseUJhY2tpbmdT
dG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpOworCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYpOwogCkBAIC03OCwxMyArNzksMTUg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gISFtX2Zyb250QnVmZmVyOwogICAgIH0KIHByaXZh
dGU6Ci0KICAgICB2b2lkIGRyYXdJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Q0dJbWFnZVJlZiBmcm9udEltYWdlKTsKIAorICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFn
ZSgpIGNvbnN0OworCiAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBtX2xheWVyOwogCiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsKKyAgICBib29sIG1f
aXNPcGFxdWU7CiAKICAgICBXZWJDb3JlOjpSZWdpb24gbV9kaXJ0eVJlZ2lvbjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0K
aW5kZXggZGViODYzNC4uNGZmZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1w
b3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5o
IgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0IDxRdWFydHpDb3Jl
L1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViTGF5ZXIuaD4KIApAQCAtMzgsNyArMzksNyBAQAogI2ltcG9ydCA8
bWFjaC9tYWNoX3BvcnQuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKSAm
JiBfX2hhc19pbmNsdWRlKDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQ
cml2Lmg+KQorI2lmIF9faGFzX2luY2x1ZGUoPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRp
b25TZXJ2aWNlc1ByaXYuaD4pCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0
aW9uU2VydmljZXNQcml2Lmg+CiAjZW5kaWYKIApAQCAtNDksMjMgKzUwLDMzIEBAIENHQ29udGV4
dFJlZiBDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGUoSU9TdXJmYWNlUmVmLCBzaXplX3QsIHNpemVf
dCwgc2l6ZV90LCBzaXplCiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdl
KENHQ29udGV4dFJlZik7CiB9CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxRdWFydHpDb3JlL0NBTGF5
ZXJQcml2YXRlLmg+KQorI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyUHJpdmF0ZS5oPgorI2Vu
ZGlmCisKK0BpbnRlcmZhY2UgQ0FMYXllciAoRGV0YWlscykKK0Bwcm9wZXJ0eSBCT09MIGNvbnRl
bnRzT3BhcXVlOworQGVuZAorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpSZW1vdGVMYXllckJhY2tp
bmdTdG9yZSgpCiAgICAgOiBtX2xheWVyKG51bGxwdHIpCisgICAgLCBtX2lzT3BhcXVlKGZhbHNl
KQogewogfQogCi12b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbnN1cmVCYWNraW5nU3Rv
cmUoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllciwgSW50U2l6ZSBzaXplLCBmbG9hdCBzY2Fs
ZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcpCit2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjplbnN1cmVCYWNraW5nU3RvcmUoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllciwgSW50U2l6
ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJvb2wgaXNPcGFx
dWUpCiB7Ci0gICAgaWYgKG1fbGF5ZXIgPT0gbGF5ZXIgJiYgbV9zaXplID09IHNpemUgJiYgbV9z
Y2FsZSA9PSBzY2FsZSAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRlc0RyYXdp
bmcpCisgICAgaWYgKG1fbGF5ZXIgPT0gbGF5ZXIgJiYgbV9zaXplID09IHNpemUgJiYgbV9zY2Fs
ZSA9PSBzY2FsZSAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRlc0RyYXdpbmcg
JiYgbV9pc09wYXF1ZSA9PSBpc09wYXF1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sYXll
ciA9IGxheWVyOwogICAgIG1fc2l6ZSA9IHNpemU7CiAgICAgbV9zY2FsZSA9IHNjYWxlOwogICAg
IG1fYWNjZWxlcmF0ZXNEcmF3aW5nID0gYWNjZWxlcmF0ZXNEcmF3aW5nOworICAgIG1faXNPcGFx
dWUgPSBpc09wYXF1ZTsKIAogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgbV9mcm9udFN1cmZhY2Ug
PSBudWxscHRyOwpAQCAtNzgsNiArODksNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtX3NpemU7CiAgICAgZW5jb2RlciA8PCBtX3NjYWxlOwogICAgIGVuY29kZXIgPDwgbV9h
Y2NlbGVyYXRlc0RyYXdpbmc7CisgICAgZW5jb2RlciA8PCBtX2lzT3BhcXVlOwogCiAjaWYgVVNF
KElPU1VSRkFDRSkKICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpIHsKQEAgLTEwNSw2ICsx
MTcsOSBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlbW90ZUxheWVyQgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0Lm1fYWNjZWxlcmF0ZXNEcmF3aW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pc09wYXF1ZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKwogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgaWYgKHJlc3VsdC5tX2FjY2VsZXJh
dGVzRHJhd2luZykgewogICAgICAgICBJUEM6Ok1hY2hQb3J0IG1hY2hQb3J0OwpAQCAtMjUwLDcg
KzI2NSw3IEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkoKQogI2VuZGlm
CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZnJvbnRJbWFnZSA9IGltYWdlKCk7Ci0gICAg
bV9mcm9udEJ1ZmZlciA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGV4cGFuZGVk
U2NhbGVkU2l6ZSwgU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhKTsKKyAgICBtX2Zyb250
QnVmZmVyID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoZXhwYW5kZWRTY2FsZWRT
aXplLCBtX2lzT3BhcXVlID8gU2hhcmVhYmxlQml0bWFwOjpOb0ZsYWdzIDogU2hhcmVhYmxlQml0
bWFwOjpTdXBwb3J0c0FscGhhKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
PiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CiAgICAg
ZHJhd0luQ29udGV4dCgqY29udGV4dCwgZnJvbnRJbWFnZS5nZXQoKSk7CiAgICAgCkBAIC0zNDcs
MyArMzYyLDE4IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVudW1lcmF0ZVJlY3Rz
QmVpbmdEcmF3bihDR0NvbnRleHRSZWYgY29udGV4dCwgdm9pCiAgICAgICAgIGJsb2NrKHJlY3RU
b0RyYXcpOwogICAgIH0KIH0KKwordm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlC
YWNraW5nU3RvcmVUb0xheWVyKENBTGF5ZXIgKmxheWVyKQoreworI2lmIFVTRShJT1NVUkZBQ0Up
CisgICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpKQorICAgICAgICBsYXllci5jb250ZW50cyA9
IChpZCltX2Zyb250U3VyZmFjZS5nZXQoKTsKKyAgICBlbHNlCisgICAgICAgIGxheWVyLmNvbnRl
bnRzID0gKGlkKWltYWdlKCkuZ2V0KCk7CisjZWxzZQorICAgIEFTU0VSVCghYWNjZWxlcmF0ZXNE
cmF3aW5nKCkpOworICAgIGxheWVyLmNvbnRlbnRzID0gKGlkKWltYWdlKCkuZ2V0KCk7CisjZW5k
aWYKKworICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0gbV9pc09wYXF1ZTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBs
aWVyLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0
eUFwcGxpZXIubW0KaW5kZXggYjM2MmM3NS4uZGQyZTcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIu
bW0KQEAgLTMxLDExICszMSwxOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9CbG9ja0V4Y2VwdGlvbnMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2Nyb2xsYmFyVGhlbWVNYWMuaD4KKwogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPFVJ
S2l0L1VJVmlldy5oPgogI2VuZGlmCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworI2lmIF9f
aGFzX2luY2x1ZGUoPFF1YXJ0ekNvcmUvQ0FMYXllclByaXZhdGUuaD4pCisjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBTGF5ZXJQcml2YXRlLmg+CisjZW5kaWYKKworQGludGVyZmFjZSBDQUxheWVyIChE
ZXRhaWxzKQorQHByb3BlcnR5IEJPT0wgY29udGVudHNPcGFxdWU7CitAZW5kCiAKICNpZiBQTEFU
Rk9STShJT1MpCiBAaW50ZXJmYWNlIFVJVmlldyAoV0tVSVZpZXdVdGlsaXRpZXMpCkBAIC01Niw2
ICs2Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGVuZAogI2VuZGlmCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIFJldGFp
blB0cjxDR0NvbG9yUmVmPiBjZ0NvbG9yRnJvbUNvbG9yKENvbG9yIGNvbG9yKQpAQCAtMTcyLDE4
ICsxODEsMTIgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICps
YXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3QKICAgICAgICAgbGF5ZXIudGltZU9m
ZnNldCA9IHByb3BlcnRpZXMudGltZU9mZnNldDsKIAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5n
ZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tpbmdTdG9yZUNo
YW5nZWQpIHsKLSAgICAgICAgaWYgKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlKiBiYWNraW5nU3Rv
cmUgPSBwcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS5nZXQoKSkgewotI2lmIFVTRShJT1NVUkZBQ0Up
Ci0gICAgICAgICAgICBpZiAoYmFja2luZ1N0b3JlLT5hY2NlbGVyYXRlc0RyYXdpbmcoKSkKLSAg
ICAgICAgICAgICAgICBsYXllci5jb250ZW50cyA9IChpZCliYWNraW5nU3RvcmUtPnN1cmZhY2Uo
KS5nZXQoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsYXllci5jb250ZW50
cyA9IChpZCliYWNraW5nU3RvcmUtPmltYWdlKCkuZ2V0KCk7Ci0jZWxzZQotICAgICAgICAgICAg
QVNTRVJUKCFiYWNraW5nU3RvcmUtPmFjY2VsZXJhdGVzRHJhd2luZygpKTsKLSAgICAgICAgICAg
IGxheWVyLmNvbnRlbnRzID0gKGlkKWJhY2tpbmdTdG9yZS0+aW1hZ2UoKS5nZXQoKTsKLSNlbmRp
ZgotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlKiBi
YWNraW5nU3RvcmUgPSBwcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZS5nZXQoKSkKKyAgICAgICAgICAg
IGJhY2tpbmdTdG9yZS0+YXBwbHlCYWNraW5nU3RvcmVUb0xheWVyKGxheWVyKTsKKyAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBsYXllci5jb250ZW50cyA9IG5pbDsKKyAgICAgICAgICAgIGxh
eWVyLmNvbnRlbnRzT3BhcXVlID0gTk87CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAocHJv
cGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpG
aWx0ZXJzQ2hhbmdlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmluZGV4IGUwY2VjM2IuLmE5OWJkM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbi5tbQpAQCAtNTM0LDYgKzUzNCw3IEBAIHB1YmxpYzoKICAgICBSZW1vdGVMYXllclRy
ZWVUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KEZsb2F0UmVjdCk7CiAgICAgUmVtb3RlTGF5ZXJUcmVl
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChjb25zdCBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEPiYgbGF5ZXJzKTsKICAgICBSZW1vdGVMYXllclRyZWVUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICBSZW1vdGVMYXll
clRyZWVUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KGNvbnN0IFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
JiBiYWNraW5nU3RvcmUpOwogCiAgICAgdm9pZCBpbmNyZWFzZUluZGVudCgpIHsgKyttX2luZGVu
dDsgfQogICAgIHZvaWQgZGVjcmVhc2VJbmRlbnQoKSB7IC0tbV9pbmRlbnQ7IEFTU0VSVChtX2lu
ZGVudCA+PSAwKTsgfQpAQCAtNjY4LDYgKzY2OSwxOCBAQCBSZW1vdGVMYXllclRyZWVUZXh0U3Ry
ZWFtJiBSZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtOjpvcGVyYXRvcjw8KGNvbnN0IFZlY3RvcjxH
cgogICAgIHJldHVybiB0czsKIH0KIAorUmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYgUmVtb3Rl
TGF5ZXJUcmVlVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChjb25zdCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZSYgYmFja2luZ1N0b3JlKQoreworICAgIFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRz
ID0gKnRoaXM7CisgICAgdHMgPDwgYmFja2luZ1N0b3JlLnNpemUoKTsKKyAgICB0cyA8PCAiIHNj
YWxlPSIgPDwgYmFja2luZ1N0b3JlLnNjYWxlKCk7CisgICAgaWYgKGJhY2tpbmdTdG9yZS5pc09w
YXF1ZSgpKQorICAgICAgICB0cyA8PCAiIG9wYXF1ZSI7CisgICAgaWYgKGJhY2tpbmdTdG9yZS5h
Y2NlbGVyYXRlc0RyYXdpbmcoKSkKKyAgICAgICAgdHMgPDwgIiBhY2NlbGVyYXRlZCI7CisgICAg
cmV0dXJuIHRzOworfQorCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW06OndyaXRlSW5k
ZW50KCkKIHsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1faW5kZW50OyArK2kpCkBAIC03NzYs
OCArNzg5LDEwIEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2VkTGF5ZXJzKFJlbW90ZUxheWVyVHJl
ZVRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVMYXllclRyCiAgICAgICAgIGlmIChsYXllclBy
b3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
VGltZU9mZnNldENoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVydHk8ZG91YmxlPih0cywg
InRpbWVPZmZzZXQiLCBsYXllclByb3BlcnRpZXMudGltZU9mZnNldCk7CiAKLSAgICAgICAgaWYg
KGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpCYWNraW5nU3RvcmVDaGFuZ2VkKQotICAgICAgICAgICAgZHVtcFByb3BlcnR5PElu
dFNpemU+KHRzLCAiYmFja2luZ1N0b3JlIiwgbGF5ZXJQcm9wZXJ0aWVzLmJhY2tpbmdTdG9yZSA/
IGxheWVyUHJvcGVydGllcy5iYWNraW5nU3RvcmUtPnNpemUoKSA6IEludFNpemUoKSk7CisgICAg
ICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6QmFja2luZ1N0b3JlQ2hhbmdlZCkgeworICAgICAgICAgICAgaWYgKGNv
bnN0IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBsYXllclByb3BlcnRp
ZXMuYmFja2luZ1N0b3JlLmdldCgpKQorICAgICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTxSZW1v
dGVMYXllckJhY2tpbmdTdG9yZT4odHMsICJiYWNraW5nU3RvcmUiLCAqYmFja2luZ1N0b3JlKTsK
KyAgICAgICAgfQogCiAgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRp
ZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RmlsdGVyc0NoYW5nZWQpCiAgICAgICAg
ICAgICBkdW1wUHJvcGVydHk8RmlsdGVyT3BlcmF0aW9ucz4odHMsICJmaWx0ZXJzIiwgbGF5ZXJQ
cm9wZXJ0aWVzLmZpbHRlcnMgPyAqbGF5ZXJQcm9wZXJ0aWVzLmZpbHRlcnMgOiBGaWx0ZXJPcGVy
YXRpb25zKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IGE4Y2YyMDcuLjQ5
YzY0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBA
QCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQmFja2luZ1N0b3JlKCkKICAgICBp
ZiAoIW1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
cHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmVuc3VyZUJhY2tpbmdTdG9yZSh0aGlzLCBleHBhbmRl
ZEludFNpemUobV9wcm9wZXJ0aWVzLnNpemUpLCBtX3Byb3BlcnRpZXMuY29udGVudHNTY2FsZSwg
bV9hY2NlbGVyYXRlc0RyYXdpbmcpOworICAgIG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmVu
c3VyZUJhY2tpbmdTdG9yZSh0aGlzLCBleHBhbmRlZEludFNpemUobV9wcm9wZXJ0aWVzLnNpemUp
LCBtX3Byb3BlcnRpZXMuY29udGVudHNTY2FsZSwgbV9hY2NlbGVyYXRlc0RyYXdpbmcsIG1fcHJv
cGVydGllcy5vcGFxdWUpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVl
ZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogcmVjdCkKQEAgLTMwNCw2ICszMDQsOCBAQCB2b2lk
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0T3BhcXVlKGJvb2wgdmFsdWUpCiB7CiAgICAgbV9w
cm9wZXJ0aWVzLm9wYXF1ZSA9IHZhbHVlOwogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok9wYXF1ZUNoYW5nZWQpOworCisg
ICAgdXBkYXRlQmFja2luZ1N0b3JlKCk7CiB9CiAKIEZsb2F0UmVjdCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OmJvdW5kcygpIGNvbnN0Cg==
</data>
<flag name="review"
          id="251373"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>