<?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>80329</bug_id>
          
          <creation_ts>2012-03-05 14:45:46 -0800</creation_ts>
          <short_desc>[V8] Fix object scope for inline event attribute handlers</short_desc>
          <delta_ts>2012-03-09 12:13:00 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571059</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-05 14:45:46 -0800</bug_when>
    <thetext>[V8] Use an interceptor to do the lookup of references in inline event attribute handlers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571069</commentid>
    <comment_count>1</comment_count>
      <attachid>130208</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-05 14:55:47 -0800</bug_when>
    <thetext>Created attachment 130208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571097</commentid>
    <comment_count>2</comment_count>
      <attachid>130208</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-05 15:25:31 -0800</bug_when>
    <thetext>Comment on attachment 130208
Patch

The logic all looks correct to me. Someone more familiar with the V8 code should probably r+ this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571101</commentid>
    <comment_count>3</comment_count>
      <attachid>130208</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-05 15:30:38 -0800</bug_when>
    <thetext>Comment on attachment 130208
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        With this change we introduce an interceptor object in a single with statement instead of using three
&gt; +        nested with statements. This interceptor knows how to correctly lookup the right variable reference.

Is this faster or more correct?  I&apos;m not sure I understand why we&apos;re making this change.  (I don&apos;t doubt that there&apos;s a good reason---I&apos;d just like to understand.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571109</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-05 15:39:36 -0800</bug_when>
    <thetext>It&apos;s more correct. Also, more importantly, it will allow us to start gathering metrics of how sites use this in order to identify what changes we can safely make to the platform. We want to minimize this &quot;feature&quot; as much as possible since it hampers our ability to add new methods to HTMLElement and Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571111</commentid>
    <comment_count>5</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-05 15:47:45 -0800</bug_when>
    <thetext>Yes this is more correct. Sorry I should have pointed to the Chrome bugs:

http://code.google.com/p/chromium/issues/detail?id=80911
http://code.google.com/p/chromium/issues/detail?id=80912</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571140</commentid>
    <comment_count>6</comment_count>
      <attachid>130208</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 16:17:15 -0800</bug_when>
    <thetext>Comment on attachment 130208
Patch

Attachment 130208 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11839034

New failing tests:
inspector/debugger/debugger-scripts.html
tables/hittesting/filltable-rtl.html
tables/hittesting/filltable-outline.html
tables/hittesting/filltable-emptycells.html
fast/forms/form-action.html
tables/hittesting/filltable-levels.html
tables/hittesting/filltable-stress.html
fast/events/no-blur-on-page-leave.html
fast/forms/lazy-event-listener-scope-chain.html
fast/harness/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571150</commentid>
    <comment_count>7</comment_count>
      <attachid>130208</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-05 16:24:48 -0800</bug_when>
    <thetext>Comment on attachment 130208
Patch

Looks reasonable.  It looks like you have some test failures to work through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571260</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-05 17:34:28 -0800</bug_when>
    <thetext>Yeah, I have to add one more level of indirection to get reassignment to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574497</commentid>
    <comment_count>9</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-08 19:10:52 -0800</bug_when>
    <thetext>An interceptor does not work because we get the wrong this pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574506</commentid>
    <comment_count>10</comment_count>
      <attachid>130955</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-08 19:25:32 -0800</bug_when>
    <thetext>Created attachment 130955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574565</commentid>
    <comment_count>11</comment_count>
      <attachid>130955</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-08 20:52:38 -0800</bug_when>
    <thetext>Comment on attachment 130955
Patch

Attachment 130955 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11903345

New failing tests:
inspector/debugger/debugger-scripts.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575062</commentid>
    <comment_count>12</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-09 12:12:44 -0800</bug_when>
    <thetext>Committed r110315: &lt;http://trac.webkit.org/changeset/110315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575063</commentid>
    <comment_count>13</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-09 12:13:00 -0800</bug_when>
    <thetext>This will need a rebaseline.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130208</attachid>
            <date>2012-03-05 14:55:47 -0800</date>
            <delta_ts>2012-03-08 19:25:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80329-20120305145546.patch</filename>
            <type>text/plain</type>
            <size>13526</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxOTRmOGVmYjgyNWNi
NjVkMDE0NDhjNTk3Yjk2YTAxY2E2NTFkYS4uZDQxZjgzYjZhMjNmNDFjMWQwMTEzM2RhMDRhMThh
ZmEyOTY2N2IzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTA1ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBVc2UgYW4gaW50
ZXJjZXB0b3IgdG8gZG8gdGhlIGxvb2t1cCBvZiByZWZlcmVuY2VzIGluIGlubGluZSBldmVudCBh
dHRyaWJ1dGUgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwMzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSB3ZSBpbnRyb2R1Y2UgYW4gaW50ZXJjZXB0b3Igb2Jq
ZWN0IGluIGEgc2luZ2xlIHdpdGggc3RhdGVtZW50IGluc3RlYWQgb2YgdXNpbmcgdGhyZWUKKyAg
ICAgICAgbmVzdGVkIHdpdGggc3RhdGVtZW50cy4gVGhpcyBpbnRlcmNlcHRvciBrbm93cyBob3cg
dG8gY29ycmVjdGx5IGxvb2t1cCB0aGUgcmlnaHQgdmFyaWFibGUgcmVmZXJlbmNlLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC5odG1sCisK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExpc3RlbmVyOjpjYWxsTGlzdGVuZXJGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExpc3RlbmVyOjppbnRlcmNlcHRv
ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TGF6eUV2
ZW50TGlzdGVuZXI6OmdldExvb2t1cEludGVyY2VwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoVjhMYXp5RXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExpc3RlbmVyOjpldmVudFBhcmFt
ZXRlck5hbWUpOgorCiAyMDEyLTAzLTAyICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBUUkFDRV9FVkVOVCBmcm9t
IENDUXVhZEN1bGxlcjo6Y3VsbE9jY2x1ZGVkUXVhZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaAppbmRleCBjOGY1MzUyN2ZlOGE4ZjJh
NGM1ODg0NjJlMmIzOThhMTJkZGNhNTE1Li42NDk3MTA5YmFmMmJkYmU1YzQ2MTZiYzE0NDMzN2Mx
ZDEzOGE1OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRl
blByb3BlcnR5TmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVu
UHJvcGVydHlOYW1lLmgKQEAgLTQ0LDcgKzQ0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IFYoc2xlZXBGdW5jdGlvbikgXAogICAgIFYodG9TdHJpbmdTdHJpbmcpIFwKICAgICBWKGV2ZW50
KSBcCi0gICAgVihzdGF0ZSkKKyAgICBWKHN0YXRlKSBcCisgICAgVihoaWRkZW5UaGlzKSBcCisg
ICAgVihldmVudFBhcmFtZXRlck5hbWUpCiAKIAogICAgIGNsYXNzIFY4SGlkZGVuUHJvcGVydHlO
YW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50
TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0
ZW5lci5jcHAKaW5kZXggNDI3YTQ1MzA1MmJhYTdjZDIxOWI3MWViOWJmMjY1MjM2MTIzNzUwMy4u
YWQzNmIyODI5ZTY0NDE2MTAzM2Q4MjgxYWE3YWEyMjg5NzQ2MTViMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTMyLDEy
ICszMiwyMSBAQAogI2luY2x1ZGUgIlY4TGF6eUV2ZW50TGlzdGVuZXIuaCIKIAogI2luY2x1ZGUg
IkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3Jt
RWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNp
bmNsdWRlICJWOERPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOERvY3VtZW50LmgiCisjaW5jbHVk
ZSAiVjhIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5o
IgorI2luY2x1ZGUgIlY4Tm9kZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJX
b3JsZENvbnRleHRIYW5kbGUuaCIKIAorI2luY2x1ZGUgPHY4Lmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MywxNyArNzIsMTAxIEBA
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNhbGxMaXN0ZW5lckZ1
bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvCiAgICAgaWYgKGhhbmRsZXJGdW5jdGlvbi5Jc0VtcHR5
KCkgfHwgcmVjZWl2ZXIuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpW
YWx1ZT4oKTsKIAotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzFdID0geyBq
c0V2ZW50IH07CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxvb2t1cEludGVyY2VwdG9yID0g
Z2V0TG9va3VwSW50ZXJjZXB0b3IocmVjZWl2ZXIpOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHBhcmFtZXRlcnNbMl0gPSB7IGpzRXZlbnQsIGxvb2t1cEludGVyY2VwdG9yIH07CiAKICAg
ICBpZiAoVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZShjb250ZXh0KSkgewogICAg
ICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpLT5mcmFt
ZSgpOwogICAgICAgICBpZiAoZnJhbWUtPnNjcmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhBYm91
dFRvRXhlY3V0ZVNjcmlwdCkpCi0gICAgICAgICAgICByZXR1cm4gcHJveHktPmNhbGxGdW5jdGlv
bihoYW5kbGVyRnVuY3Rpb24sIHJlY2VpdmVyLCAxLCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgICAg
IHJldHVybiBwcm94eS0+Y2FsbEZ1bmN0aW9uKGhhbmRsZXJGdW5jdGlvbiwgcmVjZWl2ZXIsIDIs
IHBhcmFtZXRlcnMpOwogICAgIH0KIAogICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigp
OwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMYXp5RXZlbnRMaXN0ZW5lcjo6aW50ZXJj
ZXB0b3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworCisgICAgdjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGludGVyY2VwdG9yID0gaW5mby5Ib2xkZXIoKTsKKyAgICBpZiAoaW50
ZXJjZXB0b3IuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHRoaXNWYWx1ZSA9IGludGVyY2VwdG9y
LT5HZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlkZGVuVGhpcygpKTsKKyAg
ICBpZiAodGhpc1ZhbHVlLklzRW1wdHkoKSB8fCAhdGhpc1ZhbHVlLT5Jc09iamVjdCgpKQorICAg
ICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKworICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiB0aGlzT2JqZWN0ID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpDYXN0KHRoaXNW
YWx1ZSk7CisgICAgaWYgKHRoaXNPYmplY3QuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKworICAgIGlmICghVjhET01XcmFwcGVyOjppc1ZhbGlk
RE9NT2JqZWN0KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKKworICAgIC8vIERvbid0IGludGVyY2VwdCBldmVudC9ldnQuCisgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gZXZlbnRQYXJhbWV0ZXJOYW1lID0gaW50ZXJjZXB0b3ItPkdldEhpZGRl
blZhbHVlKFY4SGlkZGVuUHJvcGVydHlOYW1lOjpldmVudFBhcmFtZXRlck5hbWUoKSk7CisgICAg
aWYgKGV2ZW50UGFyYW1ldGVyTmFtZS5Jc0VtcHR5KCkgfHwgIWV2ZW50UGFyYW1ldGVyTmFtZS0+
SXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisK
KyAgICBpZiAobmFtZS0+RXF1YWxzKHY4OjpMb2NhbDx2ODo6U3RyaW5nPjo6Q2FzdChldmVudFBh
cmFtZXRlck5hbWUpKSkKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisKKyAgICBpZiAodGhpc09iamVjdC0+SGFzKG5hbWUpKQorICAgICAgICByZXR1cm4gdGhpc09i
amVjdC0+R2V0KG5hbWUpOworCisgICAgaWYgKCFWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBl
KHRoaXNPYmplY3QpLT5pc1N1YmNsYXNzKCZWOE5vZGU6OmluZm8pKQorICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKworICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRv
TmF0aXZlKHRoaXNPYmplY3QpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7CisKKyAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7
CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQq
Pihub2RlKTsKKyAgICAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBlbGVt
ZW50LT5mb3JtKCkpIHsKKyAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OEZvcm1F
bGVtZW50VmFsdWUgPSB0b1Y4KGZvcm1FbGVtZW50KTsKKyAgICAgICAgICAgIGlmICghdjhGb3Jt
RWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiB2OEZvcm1FbGVtZW50VmFsdWUtPklzT2JqZWN0KCkp
IHsKKyAgICAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHY4Rm9ybUVsZW1lbnQg
PSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHY4Rm9ybUVsZW1lbnRWYWx1ZSk7CisgICAg
ICAgICAgICAgICAgaWYgKHY4Rm9ybUVsZW1lbnQtPkhhcyhuYW1lKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHY4Rm9ybUVsZW1lbnQtPkdldChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25l
ckRvY3VtZW50KCkpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4RG9jdW1lbnRW
YWx1ZSA9IHRvVjgoZG9jdW1lbnQpOworICAgICAgICBpZiAoIXY4RG9jdW1lbnRWYWx1ZS5Jc0Vt
cHR5KCkgJiYgdjhEb2N1bWVudFZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgICAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHY4RG9jdW1lbnQgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KHY4RG9jdW1lbnRWYWx1ZSk7CisgICAgICAgICAgICBpZiAodjhEb2N1bWVudC0+SGFzKG5h
bWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB2OERvY3VtZW50LT5HZXQobmFtZSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKK30K
Kwordjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4TGF6eUV2ZW50TGlzdGVuZXI6OmdldExvb2t1cElu
dGVyY2VwdG9yKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcmVjZWl2ZXIpCit7CisgICAgaWYgKHJl
Y2VpdmVyLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0Pigp
OworCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IHJlc3VsdCA9IHY4OjpPYmpl
Y3RUZW1wbGF0ZTo6TmV3KCk7CisgICAgcmVzdWx0LT5TZXROYW1lZFByb3BlcnR5SGFuZGxlcihp
bnRlcmNlcHRvckdldHRlcik7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0g
cmVzdWx0LT5OZXdJbnN0YW5jZSgpOworCisgICAgaWYgKGluc3RhbmNlLklzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworCisgICAgaWYgKCFpbnN0YW5j
ZS0+U2V0SGlkZGVuVmFsdWUoVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblRoaXMoKSwgcmVj
ZWl2ZXIpKQorICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7CisKKyAgICBp
ZiAoIWluc3RhbmNlLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6ZXZlbnRQ
YXJhbWV0ZXJOYW1lKCksIHY4RXh0ZXJuYWxTdHJpbmcoZXZlbnRQYXJhbWV0ZXJOYW1lKCkpKSkK
KyAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworCisgICAgcmV0dXJuIGlu
c3RhbmNlOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TGF6eUV2ZW50TGlz
dGVuZXJUb1N0cmluZyhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIHJldHVybiBh
cmdzLkhvbGRlcigpLT5HZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6dG9TdHJp
bmdTdHJpbmcoKSk7CkBAIC0xMTcsMjEgKzIxMCwxOCBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVu
ZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogICAgIC8vIGhhdmUgdGhlIHNhbWUgbnVtYmVycyBhcyBpbiB0aGUgb3JpZ2luYWwgY29kZS4K
ICAgICAvLyBGSVhNRTogVGhpcyBhcHByb2FjaCBpcyBhIGdpYW50IGhhY2shIFdoYXQgaWYgbV9j
b2RlIGVzY2FwZXMgdG8gcnVuCiAgICAgLy8gICAgICAgIGFyYml0cmFyeSBzY3JpcHQ/Ci0gICAg
U3RyaW5nIGV2ZW50UGFyYW1ldGVyTmFtZSA9IG1faXNTVkdFdmVudCA/ICJldnQiIDogImV2ZW50
IjsKICAgICBTdHJpbmcgY29kZSA9ICIoZnVuY3Rpb24oIjsKLSAgICBjb2RlLmFwcGVuZChldmVu
dFBhcmFtZXRlck5hbWUpOworICAgIGNvZGUuYXBwZW5kKGV2ZW50UGFyYW1ldGVyTmFtZSgpKTsK
ICAgICBjb2RlLmFwcGVuZCgiKSB7IiBcCi0gICAgICAgICAgICAid2l0aCAodGhpcy5vd25lckRv
Y3VtZW50ID8gdGhpcy5vd25lckRvY3VtZW50IDoge30pIHsiIFwKLSAgICAgICAgICAgICJ3aXRo
ICh0aGlzLmZvcm0gPyB0aGlzLmZvcm0gOiB7fSkgeyIgXAotICAgICAgICAgICAgIndpdGggKHRo
aXMpIHsiIFwKKyAgICAgICAgICAgICJ3aXRoIChhcmd1bWVudHNbMV0pIHsiIFwKICAgICAgICAg
ICAgICJyZXR1cm4gKGZ1bmN0aW9uKCIpOwotICAgIGNvZGUuYXBwZW5kKGV2ZW50UGFyYW1ldGVy
TmFtZSk7CisgICAgY29kZS5hcHBlbmQoZXZlbnRQYXJhbWV0ZXJOYW1lKCkpOwogICAgIGNvZGUu
YXBwZW5kKCIpeyIpOwogICAgIGNvZGUuYXBwZW5kKG1fY29kZSk7CiAgICAgLy8gSW5zZXJ0ICdc
bicgb3RoZXJ3aXNlIC8vLXN0eWxlIGNvbW1lbnRzIGNvdWxkIGJyZWFrIHRoZSBoYW5kbGVyLgog
ICAgIGNvZGUuYXBwZW5kKCJcbn0pLmNhbGwodGhpcywgIik7Ci0gICAgY29kZS5hcHBlbmQoZXZl
bnRQYXJhbWV0ZXJOYW1lKTsKLSAgICBjb2RlLmFwcGVuZCgiKTt9fX19KSIpOworICAgIGNvZGUu
YXBwZW5kKGV2ZW50UGFyYW1ldGVyTmFtZSgpKTsKKyAgICBjb2RlLmFwcGVuZCgiKTt9fSkiKTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGNvZGVFeHRlcm5hbFN0cmluZyA9IHY4RXh0ZXJu
YWxTdHJpbmcoY29kZSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBWOFBy
b3h5Ojpjb21waWxlU2NyaXB0KGNvZGVFeHRlcm5hbFN0cmluZywgbV9zb3VyY2VVUkwsIG1fcG9z
aXRpb24pOwogICAgIGlmICghc2NyaXB0LklzRW1wdHkoKSkgewpAQCAtMTYyLDcgKzI1Miw3IEBA
IHZvaWQgVjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3RlbmVyT2JqZWN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgICAgICAgICAgICAgU3RyaW5nIHRvU3RyaW5n
UmVzdWx0ID0gImZ1bmN0aW9uICI7CiAgICAgICAgICAgICAgICAgdG9TdHJpbmdSZXN1bHQuYXBw
ZW5kKG1fZnVuY3Rpb25OYW1lKTsKICAgICAgICAgICAgICAgICB0b1N0cmluZ1Jlc3VsdC5hcHBl
bmQoIigiKTsKLSAgICAgICAgICAgICAgICB0b1N0cmluZ1Jlc3VsdC5hcHBlbmQoZXZlbnRQYXJh
bWV0ZXJOYW1lKTsKKyAgICAgICAgICAgICAgICB0b1N0cmluZ1Jlc3VsdC5hcHBlbmQoZXZlbnRQ
YXJhbWV0ZXJOYW1lKCkpOwogICAgICAgICAgICAgICAgIHRvU3RyaW5nUmVzdWx0LmFwcGVuZCgi
KSB7XG4gICIpOwogICAgICAgICAgICAgICAgIHRvU3RyaW5nUmVzdWx0LmFwcGVuZChtX2NvZGUp
OwogICAgICAgICAgICAgICAgIHRvU3RyaW5nUmVzdWx0LmFwcGVuZCgiXG59Iik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmgKaW5kZXggNGQz
NjQ4ODhhMDFmMDhlMWQ5MWY2NzA2MjY5YmFlOTYzOWM4ODFlYi4uYjE2NDUxZTBiYzFmMjExNzU0
Nzg0NmNiNDQ3MmZiMmY3ZGQxNTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuaApAQCAtNjEsNiArNjEsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FsbExpc3Rl
bmVyRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBqc0V2ZW50LCBFdmVudCopOwogCisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gaW50ZXJjZXB0b3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGdldExvb2t1
cEludGVyY2VwdG9yKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcmVjZWl2ZXIpOworCisgICAgICAg
IFN0cmluZyBldmVudFBhcmFtZXRlck5hbWUoKSB7IHJldHVybiBtX2lzU1ZHRXZlbnQgPyAiZXZ0
IiA6ICJldmVudCI7IH0KKwogICAgICAgICAvLyBOZWVkcyB0byByZXR1cm4gdHJ1ZSBmb3IgYWxs
IGV2ZW50IGhhbmRsZXJzIGltcGxlbWVudGVkIGluIEphdmFTY3JpcHQgc28gdGhhdAogICAgICAg
ICAvLyB0aGUgU1ZHIGNvZGUgZG9lcyBub3QgYWRkIHRoZSBldmVudCBoYW5kbGVyIGluIGJvdGgK
ICAgICAgICAgLy8gU1ZHVXNlRWxlbWVudDo6YnVpbGRTaGFkb3dUcmVlIGFuZCBhZ2FpbiBpbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI0ZDBkYTdkZTU4NjJkYzBmYTMzOTBjMzc5MDY3MjA0MTNjNzM3ZDYuLjMyYTYwNTMz
NTE3MmIxMWYzOThkNGQwYzEzMWYzODU2YTUwZjc5MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMy0wNSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFtWOF0gVXNlIGFuIGludGVyY2VwdG9yIHRvIGRvIHRoZSBsb29rdXAgb2YgcmVmZXJlbmNlcyBp
biBpbmxpbmUgZXZlbnQgYXR0cmlidXRlIGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDMyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0
ZXMtbG9va3VwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaW5saW5l
LWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTAyICBNaWtl
IFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAgbmV3IGJhc2VsaW5lcyBmb3IgU2tp
YSBzaGFkb3dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQt
YXR0cmlidXRlcy1sb29rdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5s
aW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjc0
YTQwOTkxNDMzYTM2MDAyYTUxMDE3OThiOTI2MzE5NDNlZDExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGUgbG9va3VwIGluIGlubGluZSBldmVu
dCBoYW5kbGVycworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQg
aXMgInRlc3QtaW5wdXQtYSIKK1BBU1MgcmVzdWx0IGlzICJ0ZXN0LWZvcm0tYiIKK1BBU1MgcmVz
dWx0IGlzICJkb2N1bWVudC1jIgorUEFTUyByZXN1bHQgaXMgImRpdi1hIgorUEFTUyByZXN1bHQg
aXMgImRvY3VtZW50LWIiCitQQVNTIHJlc3VsdCBpcyAiZG9jdW1lbnQtYyIKK1BBU1MgcmVzdWx0
IGlzIGRpdgorUEFTUyByZXN1bHQgaXMgbm90ICJGQUlMIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzdkNDVjZTkxNTk2MGJlMTE1OGNjOWQ4NmMxMGE2NjRhM2E4NDkyZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC5o
dG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Zm9ybSBpZD0idGVzdC1mb3Jt
Ij4KKyAgICA8aW5wdXQgaWQ9InRlc3QtaW5wdXQiPgorPC9mb3JtPgorPHNjcmlwdD4KKworZGVz
Y3JpcHRpb24oJ1Rlc3RzIHRoZSBsb29rdXAgaW4gaW5saW5lIGV2ZW50IGhhbmRsZXJzJyk7CisK
K2Z1bmN0aW9uIGRpc3BhdGNoQ2xpY2soZWxlbWVudCkKK3sKKyAgICB2YXIgY2xpY2tFdmVudCA9
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7CisgICAgY2xpY2tFdmVudC5pbml0
TW91c2VFdmVudCgnY2xpY2snLCB0cnVlLCBmYWxzZSwgd2luZG93LCAwLCAwLCAwLCAwLCAwLGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsKKyAgICBlbGVtZW50LmRpc3BhdGNo
RXZlbnQoY2xpY2tFdmVudCk7Cit9CisKK3ZhciByZXN1bHQ7Cit2YXIgdGVzdEZvcm0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1mb3JtJyk7Cit2YXIgdGVzdElucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtaW5wdXQnKTsKKworZG9jdW1lbnQuYSA9ICdkb2N1bWVu
dC1hJzsKK3Rlc3RGb3JtLmEgPSAndGVzdC1mb3JtLWEnOwordGVzdElucHV0LmEgPSAndGVzdC1p
bnB1dC1hJzsKKworZG9jdW1lbnQuYiA9ICdkb2N1bWVudC1iJzsKK3Rlc3RGb3JtLmIgPSAndGVz
dC1mb3JtLWInOworCitkb2N1bWVudC5jID0gJ2RvY3VtZW50LWMnOworCit0ZXN0SW5wdXQuc2V0
QXR0cmlidXRlKCdvbmNsaWNrJywgJ3Jlc3VsdCA9IGEnKTsKK2Rpc3BhdGNoQ2xpY2sodGVzdElu
cHV0KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncmVzdWx0JywgJ3Rlc3QtaW5wdXQtYScpOwor
Cit0ZXN0SW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ3Jlc3VsdCA9IGInKTsKK2Rpc3Bh
dGNoQ2xpY2sodGVzdElucHV0KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncmVzdWx0JywgJ3Rl
c3QtZm9ybS1iJyk7CisKK3Rlc3RJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAncmVzdWx0
ID0gYycpOworZGlzcGF0Y2hDbGljayh0ZXN0SW5wdXQpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdyZXN1bHQnLCAnZG9jdW1lbnQtYycpOworCisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKworZGl2LmEgPSAnZGl2LWEnOworZGl2LnNldEF0dHJpYnV0ZSgnb25j
bGljaycsICdyZXN1bHQgPSBhJyk7CitkaXNwYXRjaENsaWNrKGRpdik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Jlc3VsdCcsICdkaXYtYScpOworCitkaXYuZm9ybSA9IHtiOiAnZmFrZS1iJ307
CitkaXYuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ3Jlc3VsdCA9IGInKTsKK2Rpc3BhdGNoQ2xp
Y2soZGl2KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygncmVzdWx0JywgJ2RvY3VtZW50LWInKTsK
KworZGl2Lm93bmVyRG9jdW1lbnQgPSB7YzogJ2Zha2UtYyd9OworZGl2LnNldEF0dHJpYnV0ZSgn
b25jbGljaycsICdyZXN1bHQgPSBjJyk7CitkaXNwYXRjaENsaWNrKGRpdik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Jlc3VsdCcsICdkb2N1bWVudC1jJyk7CisKK2Rpdi5zZXRBdHRyaWJ1dGUo
J29uY2xpY2snLCAncmVzdWx0ID0gdGhpcycpOworZGlzcGF0Y2hDbGljayhkaXYpOworc2hvdWxk
QmUoJ3Jlc3VsdCcsICdkaXYnKTsKKworZGl2LmV2ZW50ID0gJ0ZBSUwnOworZGl2LnNldEF0dHJp
YnV0ZSgnb25jbGljaycsICdyZXN1bHQgPSBldmVudCcpOworZGlzcGF0Y2hDbGljayhkaXYpOwor
c2hvdWxkTm90QmUoJ3Jlc3VsdCcsICciRkFJTCInKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130955</attachid>
            <date>2012-03-08 19:25:32 -0800</date>
            <delta_ts>2012-03-09 11:32:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80329-20120308192530.patch</filename>
            <type>text/plain</type>
            <size>27744</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFiZjRhZTllODg5NmVi
MmZhMzNlZmU5MzIyNTAwNzUyNjdhNjUzOC4uNzAxMGYzMzQ2ZGZjMThlM2M3YWY4ZDVmMGE3Yjdh
ZjZmMDdlMTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTAzLTA4ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW1Y4XSBGaXggb2JqZWN0
IHNjb3BlIGZvciBpbmxpbmUgZXZlbnQgYXR0cmlidXRlIGhhbmRsZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDMyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vdyBjcmVhdGUgdGhlIGZ1bmNp
dG9uIGluc2lkZSB0aGUgd2l0aC1zdGF0ZW1lbnRzIHdpdGggdGhlIGN1cnJlbnQgc2NvcGUgb2Jq
ZWN0cy4KKyAgICAgICAgVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGEgZmV3IHJlYXNvbnM6CisKKyAg
ICAgICAgLSBXZSBuZWVkIHRvIHVzZSB0aGUgcmVhbCBvYmplY3RzIGFuZCBub3QganVzdCBsb29r
dXAgdGhlIEpTIHByb3BlcnRpZXMgYmVjYXVzZSB0aGVzZSBtaWdodCBoYXZlIGJlZW4gb3ZlcnJp
ZGRlbi4KKyAgICAgICAgLSBXZSBuZWVkIHRvIHVzZSB0aGUgbm9kZSwgZm9ybSBhbmQgZG9jdW1l
bnQgYXQgdGhlIHRpbWUgb2YgdGhlIHByZXBhcmF0aW9uIGFuZCBub3QgYXQgdGhlIHRpbWUgb2Yg
Y2FsbGluZy4KKyAgICAgICAgLSBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGV2ZW50L2V2dCBpcyBi
b3VuZCBjbG9zZXIgdGhhbiBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZSBpbiB0aGUgb2Jq
ZWN0IGVudmlyb25tZW50CisgICAgICAgICAgY3JlYXRlZCBieSB0aGUgd2l0aC1zdGF0ZW1lbnRz
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29r
dXAtcmVtb3ZlZC1mb3JtLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL2lubGluZS1ldmVu
dC1hdHRyaWJ1dGVzLWxvb2t1cC1yZW1vdmVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50UGFy
YW1ldGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TGF6eUV2
ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRMaXN0ZW5lcjo6
VjhMYXp5RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRvT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExpc3Rl
bmVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVu
dExpc3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1Y4TGF6eUV2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFY4TGF6eUV2ZW50
TGlzdGVuZXIpOgorCisyMDEyLTAzLTA4ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgW1Y4XSBVc2UgRXZlbnROYW1lcyBpbnN0ZWFkIG9mIHN0cmluZ3MKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNjQ5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAK
aW5kZXggMzRiMDI4Y2JkNjY4ZTk5YzE0YmJhYWFhN2Y2YWEzMmVmZmNmZDY1Zi4uZDViNTA4Mzlh
ZTIxN2QyMzBhZTZkZDY1YzRhZDM0OWZhMzQwMjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTQyLDYgKzQyLDEzIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IFN0cmluZyYgZXZlbnRQYXJh
bWV0ZXJOYW1lKGJvb2wgaXNTVkdFdmVudCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZXZlbnRTdHJpbmcsICgiZXZlbnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKCJldnQiKSk7CisgICAgcmV0dXJuIGlzU1ZH
RXZlbnQgPyBldnRTdHJpbmcgOiBldmVudFN0cmluZzsKK30KKwogUGFzc1JlZlB0cjxWOExhenlF
dmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqIG5vZGUsIEF0
dHJpYnV0ZSogYXR0cikKIHsKICAgICBBU1NFUlQobm9kZSk7CkBAIC01NywxMiArNjQsMTEgQEAg
UGFzc1JlZlB0cjxWOExhenlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKE5vZGUqIG5vZGUsIEF0dHJpYnUKICAgICAgICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0
Q29udHJvbGxlciA9IGZyYW1lLT5zY3JpcHQoKTsKICAgICAgICAgaWYgKCFzY3JpcHRDb250cm9s
bGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAgICAgICAgICAg
ICByZXR1cm4gMDsKLQogICAgICAgICBwb3NpdGlvbiA9IHNjcmlwdENvbnRyb2xsZXItPmV2ZW50
SGFuZGxlclBvc2l0aW9uKCk7CiAgICAgICAgIHNvdXJjZVVSTCA9IG5vZGUtPmRvY3VtZW50KCkt
PnVybCgpLnN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBWOExhenlFdmVudExpc3RlbmVy
OjpjcmVhdGUoYXR0ci0+bG9jYWxOYW1lKCkuc3RyaW5nKCksIG5vZGUtPmlzU1ZHRWxlbWVudCgp
LCBhdHRyLT52YWx1ZSgpLCBzb3VyY2VVUkwsIHBvc2l0aW9uLCBXb3JsZENvbnRleHRIYW5kbGUo
VXNlTWFpbldvcmxkKSk7CisgICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShh
dHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgZXZlbnRQYXJhbWV0ZXJOYW1lKG5vZGUtPmlzU1ZH
RWxlbWVudCgpKSwgYXR0ci0+dmFsdWUoKSwgc291cmNlVVJMLCBwb3NpdGlvbiwgbm9kZSwgV29y
bGRDb250ZXh0SGFuZGxlKFVzZU1haW5Xb3JsZCkpOwogfQogCiBQYXNzUmVmUHRyPFY4TGF6eUV2
ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoRnJhbWUqIGZyYW1lLCBB
dHRyaWJ1dGUqIGF0dHIpCkBAIC04MCw3ICs4Niw4IEBAIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRM
aXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihGcmFtZSogZnJhbWUsIEF0dHJp
CiAKICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhh
bmRsZXJQb3NpdGlvbigpOwogICAgIFN0cmluZyBzb3VyY2VVUkwgPSBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0
ZShhdHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgZnJhbWUtPmRvY3VtZW50KCktPmlzU1ZHRG9j
dW1lbnQoKSwgYXR0ci0+dmFsdWUoKSwgc291cmNlVVJMLCBwb3NpdGlvbiwgV29ybGRDb250ZXh0
SGFuZGxlKFVzZU1haW5Xb3JsZCkpOworCisgICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6
OmNyZWF0ZShhdHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgZXZlbnRQYXJhbWV0ZXJOYW1lKGZy
YW1lLT5kb2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCkpLCBhdHRyLT52YWx1ZSgpLCBzb3VyY2VV
UkwsIHBvc2l0aW9uLCAwLCBXb3JsZENvbnRleHRIYW5kbGUoVXNlTWFpbldvcmxkKSk7CiB9CiAK
IFN0cmluZyBldmVudExpc3RlbmVySGFuZGxlckJvZHkoRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNDI3YTQ1MzA1MmJhYTdjZDIxOWI3MWViOWJm
MjY1MjM2MTIzNzUwMy4uODgzNmNhOWNjNjk1MzQ2NjEyODgzYzdkODE4OWNjYmFmMGNiYTUwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTMyLDkgKzMyLDE3IEBACiAjaW5jbHVkZSAiVjhMYXp5RXZlbnRMaXN0ZW5lci5o
IgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlY4
QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4RG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJWOEhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIlY4SGlkZGVu
UHJvcGVydHlOYW1lLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5o
IgogI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgogCkBAIC00MiwxNCArNTAsMjkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1WOExhenlFdmVudExpc3RlbmVyOjpWOExhenlFdmVu
dExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBib29sIGlzU1ZHRXZlbnQsIGNv
bnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0
aW9uJiBwb3NpdGlvbiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCitW
OExhenlFdmVudExpc3RlbmVyOjpWOExhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVu
Y3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGV2ZW50UGFyYW1ldGVyTmFtZSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHBvc2l0
aW9uLCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IFdvcmxkQ29udGV4dEhhbmRsZSYgd29y
bGRDb250ZXh0KQogICAgIDogVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIodHJ1ZSwgd29ybGRDb250
ZXh0KQogICAgICwgbV9mdW5jdGlvbk5hbWUoZnVuY3Rpb25OYW1lKQotICAgICwgbV9pc1NWR0V2
ZW50KGlzU1ZHRXZlbnQpCisgICAgLCBtX2V2ZW50UGFyYW1ldGVyTmFtZShldmVudFBhcmFtZXRl
ck5hbWUpCiAgICAgLCBtX2NvZGUoY29kZSkKICAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkK
KyAgICAsIG1fbm9kZShub2RlKQorICAgICwgbV9mb3JtRWxlbWVudCgwKQogICAgICwgbV9wb3Np
dGlvbihwb3NpdGlvbikKIHsKKyAgICBpZiAobV9ub2RlICYmIG1fbm9kZS0+aXNIVE1MRWxlbWVu
dCgpKQorICAgICAgICBtX2Zvcm1FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPiht
X25vZGUuZ2V0KCkpLT5mb3JtKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHRvT2JqZWN0V3JhcHBlcihUKiBkb21PYmplY3QpCit7CisgICAgaWYg
KCFkb21PYmplY3QpCisgICAgICAgIHJldHVybiB2ODo6T2JqZWN0OjpOZXcoKTsKKyAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUgPSB0b1Y4KGRvbU9iamVjdCk7CisgICAgaWYgKHZhbHVl
LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4OjpPYmplY3Q6Ok5ldygpOworICAgIHJldHVy
biB2YWx1ZS5Bczx2ODo6T2JqZWN0PigpOwogfQogCiB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOExh
enlFdmVudExpc3RlbmVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqIGV2ZW50
KQpAQCAtNTgsNyArODEsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOExhenlFdmVudExpc3Rl
bmVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25DbwogICAgIGlmIChsaXN0
ZW5lck9iamVjdC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVl
PigpOwogCi0gICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gaGFuZGxlckZ1bmN0aW9uID0gdjg6
OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobGlzdGVuZXJPYmplY3QpOworICAgIHY4OjpMb2Nh
bDx2ODo6RnVuY3Rpb24+IGhhbmRsZXJGdW5jdGlvbiA9IGxpc3RlbmVyT2JqZWN0LkFzPHY4OjpG
dW5jdGlvbj4oKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcmVjZWl2ZXIgPSBnZXRSZWNl
aXZlck9iamVjdChldmVudCk7CiAgICAgaWYgKGhhbmRsZXJGdW5jdGlvbi5Jc0VtcHR5KCkgfHwg
cmVjZWl2ZXIuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4o
KTsKQEAgLTEwNCw4ICsxMjcsNiBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVM
aXN0ZW5lck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogCiAgICAgdjg6
OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7CiAKLSAgICAvLyBGSVhNRTogY2FjaGUg
dGhlIHdyYXBwZXIgZnVuY3Rpb24uCi0KICAgICAvLyBOb2RlcyBvdGhlciB0aGFuIHRoZSBkb2N1
bWVudCBvYmplY3QsIHdoZW4gZXhlY3V0aW5nIGlubGluZSBldmVudAogICAgIC8vIGhhbmRsZXJz
IHB1c2ggZG9jdW1lbnQsIGZvcm0sIGFuZCB0aGUgdGFyZ2V0IG5vZGUgb24gdGhlIHNjb3BlIGNo
YWluLgogICAgIC8vIFdlIGRvIHRoaXMgYnkgdXNpbmcgJ3dpdGgnIHN0YXRlbWVudC4KQEAgLTEx
NSw2NiArMTM2LDgxIEBAIHZvaWQgVjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3RlbmVy
T2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgLy8KICAgICAvLyBE
b24ndCB1c2UgbmV3IGxpbmVzIHNvIHRoYXQgbGluZXMgaW4gdGhlIG1vZGlmaWVkIGhhbmRsZXIK
ICAgICAvLyBoYXZlIHRoZSBzYW1lIG51bWJlcnMgYXMgaW4gdGhlIG9yaWdpbmFsIGNvZGUuCi0g
ICAgLy8gRklYTUU6IFRoaXMgYXBwcm9hY2ggaXMgYSBnaWFudCBoYWNrISBXaGF0IGlmIG1fY29k
ZSBlc2NhcGVzIHRvIHJ1bgotICAgIC8vICAgICAgICBhcmJpdHJhcnkgc2NyaXB0PwotICAgIFN0
cmluZyBldmVudFBhcmFtZXRlck5hbWUgPSBtX2lzU1ZHRXZlbnQgPyAiZXZ0IiA6ICJldmVudCI7
Ci0gICAgU3RyaW5nIGNvZGUgPSAiKGZ1bmN0aW9uKCI7Ci0gICAgY29kZS5hcHBlbmQoZXZlbnRQ
YXJhbWV0ZXJOYW1lKTsKLSAgICBjb2RlLmFwcGVuZCgiKSB7IiBcCi0gICAgICAgICAgICAid2l0
aCAodGhpcy5vd25lckRvY3VtZW50ID8gdGhpcy5vd25lckRvY3VtZW50IDoge30pIHsiIFwKLSAg
ICAgICAgICAgICJ3aXRoICh0aGlzLmZvcm0gPyB0aGlzLmZvcm0gOiB7fSkgeyIgXAotICAgICAg
ICAgICAgIndpdGggKHRoaXMpIHsiIFwKLSAgICAgICAgICAgICJyZXR1cm4gKGZ1bmN0aW9uKCIp
OwotICAgIGNvZGUuYXBwZW5kKGV2ZW50UGFyYW1ldGVyTmFtZSk7Ci0gICAgY29kZS5hcHBlbmQo
Iil7Iik7CisgICAgLy8gRklYTUU6IFY4IGRvZXMgbm90IGFsbG93IHVzIHRvIHByb2dyYW1tYXRp
Y2FsbHkgY3JlYXRlIG9iamVjdCBlbnZpcm9ubWVudHMgc28KKyAgICAvLyAgICAgICAgd2UgaGF2
ZSB0byBkbyB0aGlzIGhhY2shIFdoYXQgaWYgbV9jb2RlIGVzY2FwZXMgdG8gcnVuIGFyYml0cmFy
eSBzY3JpcHQ/CisgICAgLy8KKyAgICBTdHJpbmcgY29kZSA9ICIoZnVuY3Rpb24oKSB7IiBcCisg
ICAgICAgICJ3aXRoIChhcmd1bWVudHNbMl0pIHsiIFwKKyAgICAgICAgIndpdGggKGFyZ3VtZW50
c1sxXSkgeyIgXAorICAgICAgICAid2l0aCAoYXJndW1lbnRzWzBdKSB7IjsKKyAgICBjb2RlLmFw
cGVuZCgicmV0dXJuIGZ1bmN0aW9uKCIpOworICAgIGNvZGUuYXBwZW5kKG1fZXZlbnRQYXJhbWV0
ZXJOYW1lKTsKKyAgICBjb2RlLmFwcGVuZCgiKSB7Iik7CiAgICAgY29kZS5hcHBlbmQobV9jb2Rl
KTsKICAgICAvLyBJbnNlcnQgJ1xuJyBvdGhlcndpc2UgLy8tc3R5bGUgY29tbWVudHMgY291bGQg
YnJlYWsgdGhlIGhhbmRsZXIuCi0gICAgY29kZS5hcHBlbmQoIlxufSkuY2FsbCh0aGlzLCAiKTsK
LSAgICBjb2RlLmFwcGVuZChldmVudFBhcmFtZXRlck5hbWUpOwotICAgIGNvZGUuYXBwZW5kKCIp
O319fX0pIik7CisgICAgY29kZS5hcHBlbmQoIlxufTt9fX19KSIpOwogICAgIHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gY29kZUV4dGVybmFsU3RyaW5nID0gdjhFeHRlcm5hbFN0cmluZyhjb2RlKTsK
KwogICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gVjhQcm94eTo6Y29tcGlsZVNj
cmlwdChjb2RlRXh0ZXJuYWxTdHJpbmcsIG1fc291cmNlVVJMLCBtX3Bvc2l0aW9uKTsKLSAgICBp
ZiAoIXNjcmlwdC5Jc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gQ2FsbCB2ODo6U2NyaXB0OjpSdW4o
KSBkaXJlY3RseSB0byBhdm9pZCBhbiBlcnJvbmVvdXMgY2FsbCB0byBWOFJlY3Vyc2lvblNjb3Bl
OjpkaWRMZWF2ZVNjcmlwdENvbnRleHQoKS4KLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGNvZGUgd2hlbiB3ZSBzdG9wIGRvaW5nIHRoZSAnd2l0aCcgaGFjayBhYm92ZS4KLSAgICAgICAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUgPSBzY3JpcHQtPlJ1bigpOwotICAgICAgICBpZiAo
IXZhbHVlLklzRW1wdHkoKSkgewotICAgICAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc0Z1bmN0aW9u
KCkpOwotCi0gICAgICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiB3cmFwcGVkRnVuY3Rp
b24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdCh2YWx1ZSk7Ci0KLSAgICAgICAgICAg
IC8vIENoYW5nZSB0aGUgdG9TdHJpbmcgZnVuY3Rpb24gb24gdGhlIHdyYXBwZXIgZnVuY3Rpb24g
dG8gYXZvaWQgaXQKLSAgICAgICAgICAgIC8vIHJldHVybmluZyB0aGUgc291cmNlIGZvciB0aGUg
YWN0dWFsIHdyYXBwZXIgZnVuY3Rpb24uIEluc3RlYWQgaXQKLSAgICAgICAgICAgIC8vIHJldHVy
bnMgc291cmNlIGZvciBhIGNsZWFuIHdyYXBwZXIgZnVuY3Rpb24gd2l0aCB0aGUgZXZlbnQKLSAg
ICAgICAgICAgIC8vIGFyZ3VtZW50IHdyYXBwaW5nIHRoZSBldmVudCBzb3VyY2UgY29kZS4gVGhl
IHJlYXNvbiBmb3IgdGhpcyBpcwotICAgICAgICAgICAgLy8gdGhhdCBzb21lIHdlYiBzaXRlcyB1
c2UgdG9TdHJpbmcgb24gZXZlbnQgZnVuY3Rpb25zIGFuZCBldmFsIHRoZQotICAgICAgICAgICAg
Ly8gc291cmNlIHJldHVybmVkIChzb21ldGltZXMgYSBSZWdFeHAgaXMgYXBwbGllZCBhcyB3ZWxs
KSBmb3Igc29tZQotICAgICAgICAgICAgLy8gb3RoZXIgdXNlLiBUaGF0IGZhaWxzIG1pc2VyYWJs
eSBpZiB0aGUgYWN0dWFsIHdyYXBwZXIgc291cmNlIGlzCi0gICAgICAgICAgICAvLyByZXR1cm5l
ZC4KLSAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiYgdG9T
dHJpbmdUZW1wbGF0ZSA9Ci0gICAgICAgICAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6
OmN1cnJlbnQoKS0+bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlKCk7Ci0gICAgICAg
ICAgICBpZiAodG9TdHJpbmdUZW1wbGF0ZS5Jc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgdG9T
dHJpbmdUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3
KHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVjhMYXp5RXZlbnRMaXN0ZW5lclRvU3RyaW5nKSk7
Ci0gICAgICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiB0b1N0cmluZ0Z1bmN0aW9uOwot
ICAgICAgICAgICAgaWYgKCF0b1N0cmluZ1RlbXBsYXRlLklzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICB0b1N0cmluZ0Z1bmN0aW9uID0gdG9TdHJpbmdUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsK
LSAgICAgICAgICAgIGlmICghdG9TdHJpbmdGdW5jdGlvbi5Jc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICBTdHJpbmcgdG9TdHJpbmdSZXN1bHQgPSAiZnVuY3Rpb24gIjsKLSAgICAgICAgICAg
ICAgICB0b1N0cmluZ1Jlc3VsdC5hcHBlbmQobV9mdW5jdGlvbk5hbWUpOwotICAgICAgICAgICAg
ICAgIHRvU3RyaW5nUmVzdWx0LmFwcGVuZCgiKCIpOwotICAgICAgICAgICAgICAgIHRvU3RyaW5n
UmVzdWx0LmFwcGVuZChldmVudFBhcmFtZXRlck5hbWUpOwotICAgICAgICAgICAgICAgIHRvU3Ry
aW5nUmVzdWx0LmFwcGVuZCgiKSB7XG4gICIpOwotICAgICAgICAgICAgICAgIHRvU3RyaW5nUmVz
dWx0LmFwcGVuZChtX2NvZGUpOwotICAgICAgICAgICAgICAgIHRvU3RyaW5nUmVzdWx0LmFwcGVu
ZCgiXG59Iik7Ci0gICAgICAgICAgICAgICAgd3JhcHBlZEZ1bmN0aW9uLT5TZXRIaWRkZW5WYWx1
ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6dG9TdHJpbmdTdHJpbmcoKSwgdjhFeHRlcm5hbFN0cmlu
Zyh0b1N0cmluZ1Jlc3VsdCkpOwotICAgICAgICAgICAgICAgIHdyYXBwZWRGdW5jdGlvbi0+U2V0
KHY4OjpTdHJpbmc6Ok5ldygidG9TdHJpbmciKSwgdG9TdHJpbmdGdW5jdGlvbik7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHdyYXBwZWRGdW5jdGlvbi0+U2V0TmFtZSh2ODo6U3RyaW5n
OjpOZXcoZnJvbVdlYkNvcmVTdHJpbmcobV9mdW5jdGlvbk5hbWUpLCBtX2Z1bmN0aW9uTmFtZS5s
ZW5ndGgoKSkpOwotCi0gICAgICAgICAgICBzZXRMaXN0ZW5lck9iamVjdCh3cmFwcGVkRnVuY3Rp
b24pOwotICAgICAgICB9CisgICAgaWYgKHNjcmlwdC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIENhbGwgdjg6OlNjcmlwdDo6UnVuKCkgZGlyZWN0bHkgdG8gYXZvaWQgYW4g
ZXJyb25lb3VzIGNhbGwgdG8gVjhSZWN1cnNpb25TY29wZTo6ZGlkTGVhdmVTY3JpcHRDb250ZXh0
KCkuCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGNvZGUgd2hlbiB3ZSBzdG9wIGRvaW5nIHRo
ZSAnd2l0aCcgaGFjayBhYm92ZS4KKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSA9IHNj
cmlwdC0+UnVuKCk7CisgICAgaWYgKHZhbHVlLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gQ2FsbCB0aGUgb3V0ZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpbm5lciBmdW5jdGlv
bi4KKyAgICBBU1NFUlQodmFsdWUtPklzRnVuY3Rpb24oKSk7CisgICAgdjg6OkxvY2FsPHY4OjpG
dW5jdGlvbj4gaW50ZXJtZWRpYXRlRnVuY3Rpb24gPSB2YWx1ZS5Bczx2ODo6RnVuY3Rpb24+KCk7
CisKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG5vZGVXcmFwcGVyID0gdG9PYmplY3RXcmFw
cGVyPE5vZGU+KG1fbm9kZS5nZXQoKSk7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBmb3Jt
V3JhcHBlciA9IHRvT2JqZWN0V3JhcHBlcjxIVE1MRm9ybUVsZW1lbnQ+KG1fZm9ybUVsZW1lbnQu
Z2V0KCkpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZG9jdW1lbnRXcmFwcGVyID0gdG9P
YmplY3RXcmFwcGVyPERvY3VtZW50PihtX25vZGUgPyBtX25vZGUtPm93bmVyRG9jdW1lbnQoKSA6
IDApOworCisgICAgbV9ub2RlLmNsZWFyKCk7CisgICAgbV9mb3JtRWxlbWVudC5jbGVhcigpOwor
CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IG5vZGVXcmFwcGVy
LCBmb3JtV3JhcHBlciwgZG9jdW1lbnRXcmFwcGVyIH07CisKKyAgICAvLyBVc2UgQ2FsbCBkaXJl
Y3RseSB0byBhdm9pZCBhbiBlcnJvbmVvdXMgY2FsbCB0byBWOFJlY3Vyc2lvblNjb3BlOjpkaWRM
ZWF2ZVNjcmlwdENvbnRleHQoKS4KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY29kZSB3aGVu
IHdlIHN0b3AgZG9pbmcgdGhlICd3aXRoJyBoYWNrIGFib3ZlLgorICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGlubmVyVmFsdWUgPSBpbnRlcm1lZGlhdGVGdW5jdGlvbi0+Q2FsbCh2OENvbnRleHQt
Pkdsb2JhbCgpLCAzLCBwYXJhbWV0ZXJzKTsKKworICAgIEFTU0VSVChpbm5lclZhbHVlLT5Jc0Z1
bmN0aW9uKCkpOworICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IHdyYXBwZWRGdW5jdGlvbiA9
IGlubmVyVmFsdWUuQXM8djg6OkZ1bmN0aW9uPigpOworCisgICAgLy8gQ2hhbmdlIHRoZSB0b1N0
cmluZyBmdW5jdGlvbiBvbiB0aGUgd3JhcHBlciBmdW5jdGlvbiB0byBhdm9pZCBpdAorICAgIC8v
IHJldHVybmluZyB0aGUgc291cmNlIGZvciB0aGUgYWN0dWFsIHdyYXBwZXIgZnVuY3Rpb24uIElu
c3RlYWQgaXQKKyAgICAvLyByZXR1cm5zIHNvdXJjZSBmb3IgYSBjbGVhbiB3cmFwcGVyIGZ1bmN0
aW9uIHdpdGggdGhlIGV2ZW50CisgICAgLy8gYXJndW1lbnQgd3JhcHBpbmcgdGhlIGV2ZW50IHNv
dXJjZSBjb2RlLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzCisgICAgLy8gdGhhdCBzb21lIHdlYiBz
aXRlcyB1c2UgdG9TdHJpbmcgb24gZXZlbnQgZnVuY3Rpb25zIGFuZCBldmFsIHRoZQorICAgIC8v
IHNvdXJjZSByZXR1cm5lZCAoc29tZXRpbWVzIGEgUmVnRXhwIGlzIGFwcGxpZWQgYXMgd2VsbCkg
Zm9yIHNvbWUKKyAgICAvLyBvdGhlciB1c2UuIFRoYXQgZmFpbHMgbWlzZXJhYmx5IGlmIHRoZSBh
Y3R1YWwgd3JhcHBlciBzb3VyY2UgaXMKKyAgICAvLyByZXR1cm5lZC4KKyAgICB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUgPQorICAgICAgICBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5sYXp5RXZlbnRMaXN0ZW5lclRvU3Ry
aW5nVGVtcGxhdGUoKTsKKyAgICBpZiAodG9TdHJpbmdUZW1wbGF0ZS5Jc0VtcHR5KCkpCisgICAg
ICAgIHRvU3RyaW5nVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFY4TGF6eUV2ZW50TGlzdGVuZXJUb1N0
cmluZykpOworICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IHRvU3RyaW5nRnVuY3Rpb247Cisg
ICAgaWYgKCF0b1N0cmluZ1RlbXBsYXRlLklzRW1wdHkoKSkKKyAgICAgICAgdG9TdHJpbmdGdW5j
dGlvbiA9IHRvU3RyaW5nVGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7CisgICAgaWYgKCF0b1N0cmlu
Z0Z1bmN0aW9uLklzRW1wdHkoKSkgeworICAgICAgICBTdHJpbmcgdG9TdHJpbmdSZXN1bHQgPSAi
ZnVuY3Rpb24gIjsKKyAgICAgICAgdG9TdHJpbmdSZXN1bHQuYXBwZW5kKG1fZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgdG9TdHJpbmdSZXN1bHQuYXBwZW5kKCIoIik7CisgICAgICAgIHRvU3RyaW5n
UmVzdWx0LmFwcGVuZChtX2V2ZW50UGFyYW1ldGVyTmFtZSk7CisgICAgICAgIHRvU3RyaW5nUmVz
dWx0LmFwcGVuZCgiKSB7XG4gICIpOworICAgICAgICB0b1N0cmluZ1Jlc3VsdC5hcHBlbmQobV9j
b2RlKTsKKyAgICAgICAgdG9TdHJpbmdSZXN1bHQuYXBwZW5kKCJcbn0iKTsKKyAgICAgICAgd3Jh
cHBlZEZ1bmN0aW9uLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3BlcnR5TmFtZTo6dG9TdHJp
bmdTdHJpbmcoKSwgdjhFeHRlcm5hbFN0cmluZyh0b1N0cmluZ1Jlc3VsdCkpOworICAgICAgICB3
cmFwcGVkRnVuY3Rpb24tPlNldCh2ODo6U3RyaW5nOjpOZXcoInRvU3RyaW5nIiksIHRvU3RyaW5n
RnVuY3Rpb24pOwogICAgIH0KKworICAgIHdyYXBwZWRGdW5jdGlvbi0+U2V0TmFtZSh2ODo6U3Ry
aW5nOjpOZXcoZnJvbVdlYkNvcmVTdHJpbmcobV9mdW5jdGlvbk5hbWUpLCBtX2Z1bmN0aW9uTmFt
ZS5sZW5ndGgoKSkpOworCisgICAgc2V0TGlzdGVuZXJPYmplY3Qod3JhcHBlZEZ1bmN0aW9uKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oCmluZGV4IDRkMzY0ODg4YTAxZjA4ZTFkOTFmNjcw
NjI2OWJhZTk2MzljODgxZWIuLjE0ZDRkMmVlYTMxMTgzMzMwNjUxNTQ5N2YzOWIzYjAzM2M1YmU4
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlz
dGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3Rl
bmVyLmgKQEAgLTQxLDE0ICs0MSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFz
cyBFdmVudDsKICAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7Cisg
ICAgY2xhc3MgTm9kZTsKIAogICAgIC8vIFY4TGF6eUV2ZW50TGlzdGVuZXIgaXMgYSB3cmFwcGVy
IGZvciBhIEphdmFTY3JpcHQgY29kZSBzdHJpbmcgdGhhdCBpcyBjb21waWxlZCBhbmQgZXZhbHVh
dGVkIHdoZW4gYW4gZXZlbnQgaXMgZmlyZWQuCi0gICAgLy8gQSBWOExhenlFdmVudExpc3RlbmVy
IGlzIGFsd2F5cyBhIEhUTUwgZXZlbnQgaGFuZGxlci4KKyAgICAvLyBBIFY4TGF6eUV2ZW50TGlz
dGVuZXIgaXMgZWl0aGVyIGEgSFRNTCBvciBTVkcgZXZlbnQgaGFuZGxlci4KICAgICBjbGFzcyBW
OExhenlFdmVudExpc3RlbmVyIDogcHVibGljIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2ZW50LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRp
b24mIHBvc2l0aW9uLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGV2ZW50UGFyYW1ldGVyTmFtZSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBwb3NpdGlvbiwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBjb25zdCBXb3JsZENvbnRl
eHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBWOExhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9uTmFtZSwgaXNTVkdFdmVudCwg
Y29kZSwgc291cmNlVVJMLCBwb3NpdGlvbiwgd29ybGRDb250ZXh0KSk7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFY4TGF6eUV2ZW50TGlzdGVuZXIoZnVuY3Rpb25OYW1lLCBldmVu
dFBhcmFtZXRlck5hbWUsIGNvZGUsIHNvdXJjZVVSTCwgcG9zaXRpb24sIG5vZGUsIHdvcmxkQ29u
dGV4dCkpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzTGF6eSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KQEAgLTU3LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUxpc3RlbmVyT2JqZWN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFY4TGF6eUV2ZW50TGlzdGVuZXIo
Y29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGJvb2wgaXNTVkdFdmVudCwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mLCBjb25z
dCBXb3JsZENvbnRleHRIYW5kbGUmKTsKKyAgICAgICAgVjhMYXp5RXZlbnRMaXN0ZW5lcihjb25z
dCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBldmVudFBhcmFtZXRlck5hbWUs
IGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBv
c2l0aW9uJiwgUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJik7CiAK
ICAgICAgICAgdmlydHVhbCB2ODo6TG9jYWw8djg6OlZhbHVlPiBjYWxsTGlzdGVuZXJGdW5jdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzRXZlbnQs
IEV2ZW50Kik7CiAKQEAgLTY4LDkgKzcwLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBib29sIHdhc0NyZWF0ZWRGcm9tTWFya3VwKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgICAgIFN0cmluZyBtX2Z1bmN0aW9uTmFtZTsKLSAgICAgICAgYm9vbCBtX2lz
U1ZHRXZlbnQ7CisgICAgICAgIFN0cmluZyBtX2V2ZW50UGFyYW1ldGVyTmFtZTsKICAgICAgICAg
U3RyaW5nIG1fY29kZTsKICAgICAgICAgU3RyaW5nIG1fc291cmNlVVJMOworICAgICAgICBSZWZQ
dHI8Tm9kZT4gbV9ub2RlOworICAgICAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBtX2Zvcm1F
bGVtZW50OwogICAgICAgICBUZXh0UG9zaXRpb24gbV9wb3NpdGlvbjsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDlmMTI3YTA2ODllMTRiN2IyY2JmYmQ1Yjg0M2QyOTc5MjZmZGI3My4uNzY2MTMxYmFjYjZl
MDNjZDg2OTg4NjU3NWRkMTE4OTE4MGEyZTg1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEy
LTAzLTA4ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4
XSBGaXggb2JqZWN0IHNjb3BlIGZvciBpbmxpbmUgZXZlbnQgYXR0cmlidXRlIGhhbmRsZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDMyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20v
aW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLXJlbW92ZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmli
dXRlcy1sb29rdXAtcmVtb3ZlZC1mb3JtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLXJlbW92ZWQtZm9ybS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29r
dXAtcmVtb3ZlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pbmxpbmUtZXZlbnQt
YXR0cmlidXRlcy1sb29rdXAuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9sYXp5
LWV2ZW50LWxpc3RlbmVyLXNjb3BlLWNoYWluLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2xhenktZXZlbnQtbGlzdGVuZXItc2NvcGUtY2hhaW4uaHRtbDoKKwogMjAxMi0wMy0w
NyAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vYXIgQ2hyb21p
dW0gTGlvbiByZWJhc2VsaW5lcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lu
bGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQyNzRhNDA5OTE0MzNhMzYwMDJhNTEwMTc5OGI5MjYzMTk0M2VkMTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1s
b29rdXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoZSBsb29rdXAgaW4g
aW5saW5lIGV2ZW50IGhhbmRsZXJzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlc3VsdCBpcyAidGVzdC1pbnB1dC1hIgorUEFTUyByZXN1bHQgaXMgInRlc3QtZm9ybS1i
IgorUEFTUyByZXN1bHQgaXMgImRvY3VtZW50LWMiCitQQVNTIHJlc3VsdCBpcyAiZGl2LWEiCitQ
QVNTIHJlc3VsdCBpcyAiZG9jdW1lbnQtYiIKK1BBU1MgcmVzdWx0IGlzICJkb2N1bWVudC1jIgor
UEFTUyByZXN1bHQgaXMgZGl2CitQQVNTIHJlc3VsdCBpcyBub3QgIkZBSUwiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3VwLXJlbW92ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0
ZXMtbG9va3VwLXJlbW92ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZjMxZGIzMDlkZjll
MWNjZDkxZWNkMzE2ZDQzOWM4YzJhNGJkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAtcmVtb3ZlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBsb29rdXAgaW4gaW5saW5lIGV2ZW50
IGhhbmRsZXJzIGtlZXBzIHJlZmVyZW5jZXMgYWxpdmUKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJQQVNTIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC1yZW1vdmVkLWZvcm0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtbG9va3Vw
LXJlbW92ZWQtZm9ybS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVmMzFkYjMwOWRmOWUxY2Nk
OTFlY2QzMTZkNDM5YzhjMmE0YmRiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC1yZW1vdmVkLWZvcm0tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgbG9va3VwIGluIGlubGluZSBldmVu
dCBoYW5kbGVycyBrZWVwcyByZWZlcmVuY2VzIGFsaXZlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiUEFTUyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAtcmVtb3ZlZC1mb3JtLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAtcmVtb3Zl
ZC1mb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2YzZhZGZmMzExMmNkNDJhN2M2M2NiNDg3M2Y1OTlh
YTNjNzE4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lubGluZS1l
dmVudC1hdHRyaWJ1dGVzLWxvb2t1cC1yZW1vdmVkLWZvcm0uaHRtbApAQCAtMCwwICsxLDM5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPGZvcm0gaWQ9InRlc3QtZm9ybSI+CisgICAgPGlucHV0IGlkPSJ0
ZXN0LWlucHV0Ij4KKzwvZm9ybT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0
IGxvb2t1cCBpbiBpbmxpbmUgZXZlbnQgaGFuZGxlcnMga2VlcHMgcmVmZXJlbmNlcyBhbGl2ZScp
OworCitmdW5jdGlvbiBmb3JjZUdDKCkKK3sKKyAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICAvLyBGb3JjZSBn
YXJiYWdlIGNvbGxlY3Rpb24KKyAgICBmb3IgKHZhciBuZHggPSAwOyBuZHggPCA5OTAwMDsgbmR4
KyspCisgICAgICAgIHZhciBzdHIgPSBuZXcgU3RyaW5nKCIxMjM0Iik7Cit9CisKK3ZhciByZXN1
bHQ7Cit2YXIgcGEgPSAnKEZBSUwgaW5wdXQpJwordmFyIHNzID0gJyhGQUlMIGZvcm0pJworCit2
YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1pbnB1dCcpOworaW5wdXQu
cGEgPSAnUEEnOworaW5wdXQuZm9ybS5zcyA9ICdTUyc7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ29u
Y2xpY2snLCAncmVzdWx0ID0gcGEgKyBzcycpOworCit2YXIgZiA9IGlucHV0Lm9uY2xpY2s7CisK
K2lucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQpOworaW5wdXQgPSBudWxsOworZm9y
Y2VHQygpOworCitmKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Jlc3VsdCcsICdQQVNTJyk7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC1yZW1vdmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29r
dXAtcmVtb3ZlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkYzk0YWRlNTljOTZkY2ViMTcyNzA2ZTcxZmE4
ZDRiZjY4YjBjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxp
bmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAtcmVtb3ZlZC5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBsb29r
dXAgaW4gaW5saW5lIGV2ZW50IGhhbmRsZXJzIGtlZXBzIHJlZmVyZW5jZXMgYWxpdmUnKTsKKwor
ZnVuY3Rpb24gZm9yY2VHQygpCit7CisgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAg
ICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworCisgICAgLy8gRm9yY2UgZ2FyYmFn
ZSBjb2xsZWN0aW9uCisgICAgZm9yICh2YXIgbmR4ID0gMDsgbmR4IDwgOTkwMDA7IG5keCsrKQor
ICAgICAgICB2YXIgc3RyID0gbmV3IFN0cmluZygiMTIzNCIpOworfQorCitmdW5jdGlvbiBkaXNw
YXRjaENsaWNrKGVsZW1lbnQpCit7CisgICAgdmFyIGNsaWNrRXZlbnQgPSBkb2N1bWVudC5jcmVh
dGVFdmVudCgnTW91c2VFdmVudCcpOworICAgIGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQoJ2Ns
aWNrJywgdHJ1ZSwgZmFsc2UsIHdpbmRvdywgMCwgMCwgMCwgMCwgMCxmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgMCwgbnVsbCk7CisgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZl
bnQpOworfQorCit2YXIgcmVzdWx0OwordmFyIGN1c3RvbSA9ICdGQUlMJzsKKwordmFyIGRpdjEg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RpdjEuY3VzdG9tID0gJ1BBU1MnOwor
ZGl2MS5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAncmVzdWx0ID0gY3VzdG9tJyk7CisKK3ZhciBk
aXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CitkaXYyLm9uY2xpY2sgPSBkaXYx
Lm9uY2xpY2s7CisKK2RpdjEgPSBudWxsOworZm9yY2VHQygpOworCitkaXNwYXRjaENsaWNrKGRp
djIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdyZXN1bHQnLCAnUEFTUycpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2lubGluZS1ldmVudC1hdHRyaWJ1dGVzLWxvb2t1cC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMyNDk5NWYxOTYxM2ZjYzc2YjQ4ZTM5YjMxNTM4MTNiOGJhZTc0Y2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1sb29rdXAu
aHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGZvcm0gaWQ9InRlc3QtZm9y
bSI+CisgICAgPGlucHV0IGlkPSJ0ZXN0LWlucHV0Ij4KKzwvZm9ybT4KKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCdUZXN0cyB0aGUgbG9va3VwIGluIGlubGluZSBldmVudCBoYW5kbGVycycpOwor
CitmdW5jdGlvbiBkaXNwYXRjaENsaWNrKGVsZW1lbnQpCit7CisgICAgdmFyIGNsaWNrRXZlbnQg
PSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudCcpOworICAgIGNsaWNrRXZlbnQuaW5p
dE1vdXNlRXZlbnQoJ2NsaWNrJywgdHJ1ZSwgZmFsc2UsIHdpbmRvdywgMCwgMCwgMCwgMCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpOworICAgIGVsZW1lbnQuZGlzcGF0
Y2hFdmVudChjbGlja0V2ZW50KTsKK30KKwordmFyIHJlc3VsdDsKK3ZhciB0ZXN0Rm9ybSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWZvcm0nKTsKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1pbnB1dCcpOworCitkb2N1bWVudC5hID0gJ2RvY3Vt
ZW50LWEnOwordGVzdEZvcm0uYSA9ICd0ZXN0LWZvcm0tYSc7Cit0ZXN0SW5wdXQuYSA9ICd0ZXN0
LWlucHV0LWEnOworCitkb2N1bWVudC5iID0gJ2RvY3VtZW50LWInOwordGVzdEZvcm0uYiA9ICd0
ZXN0LWZvcm0tYic7CisKK2RvY3VtZW50LmMgPSAnZG9jdW1lbnQtYyc7CisKK3Rlc3RJbnB1dC5z
ZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAncmVzdWx0ID0gYScpOworZGlzcGF0Y2hDbGljayh0ZXN0
SW5wdXQpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdyZXN1bHQnLCAndGVzdC1pbnB1dC1hJyk7
CisKK3Rlc3RJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAncmVzdWx0ID0gYicpOworZGlz
cGF0Y2hDbGljayh0ZXN0SW5wdXQpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdyZXN1bHQnLCAn
dGVzdC1mb3JtLWInKTsKKwordGVzdElucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdyZXN1
bHQgPSBjJyk7CitkaXNwYXRjaENsaWNrKHRlc3RJbnB1dCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Jlc3VsdCcsICdkb2N1bWVudC1jJyk7CisKKwordmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworCitkaXYuYSA9ICdkaXYtYSc7CitkaXYuc2V0QXR0cmlidXRlKCdv
bmNsaWNrJywgJ3Jlc3VsdCA9IGEnKTsKK2Rpc3BhdGNoQ2xpY2soZGl2KTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygncmVzdWx0JywgJ2Rpdi1hJyk7CisKK2Rpdi5mb3JtID0ge2I6ICdmYWtlLWIn
fTsKK2Rpdi5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAncmVzdWx0ID0gYicpOworZGlzcGF0Y2hD
bGljayhkaXYpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdyZXN1bHQnLCAnZG9jdW1lbnQtYicp
OworCitkaXYub3duZXJEb2N1bWVudCA9IHtjOiAnZmFrZS1jJ307CitkaXYuc2V0QXR0cmlidXRl
KCdvbmNsaWNrJywgJ3Jlc3VsdCA9IGMnKTsKK2Rpc3BhdGNoQ2xpY2soZGl2KTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygncmVzdWx0JywgJ2RvY3VtZW50LWMnKTsKKworZGl2LnNldEF0dHJpYnV0
ZSgnb25jbGljaycsICdyZXN1bHQgPSB0aGlzJyk7CitkaXNwYXRjaENsaWNrKGRpdik7CitzaG91
bGRCZSgncmVzdWx0JywgJ2RpdicpOworCitkaXYuZXZlbnQgPSAnRkFJTCc7CitkaXYuc2V0QXR0
cmlidXRlKCdvbmNsaWNrJywgJ3Jlc3VsdCA9IGV2ZW50Jyk7CitkaXNwYXRjaENsaWNrKGRpdik7
CitzaG91bGROb3RCZSgncmVzdWx0JywgJyJGQUlMIicpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xh
enktZXZlbnQtbGlzdGVuZXItc2NvcGUtY2hhaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9sYXp5LWV2ZW50LWxpc3RlbmVyLXNjb3BlLWNoYWluLWV4cGVjdGVkLnR4dApp
bmRleCA0ZjE4ZTFmZjU2NjRlMzEwZThjYjQwMzAyOGVjZTVjYjIxZDAwYmY2Li40NDgyZTBiMWFj
Mjc0MGI3NzNmNTFmOGIxNjA3ZDQ1Mjg4YjA3MGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2xhenktZXZlbnQtbGlzdGVuZXItc2NvcGUtY2hhaW4tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGF6eS1ldmVudC1saXN0ZW5lci1zY29wZS1jaGFp
bi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw5IEBACi1UaGlzIHRlc3QgdGVzdHMgdGhhdCBhIGxh
enkgZXZlbnQgbGlzdGVuZXIgYXR0YWNoZWQgdG8gYSBmb3JtIGVsZW1lbnQga2VlcHMgaXRzIGZv
cm0gaW4gdGhlIHNjb3BlIGNoYWluIHdoZW4gdGhlIGxpc3RlbmVyIGlzIGNhbGxlZCBieSBqYXZh
c2NyaXB0LiAKLSAKLWFiYworVGhpcyB0ZXN0IHRlc3RzIHRoYXQgYSBsYXp5IGV2ZW50IGxpc3Rl
bmVyIGF0dGFjaGVkIHRvIGEgZm9ybSBlbGVtZW50IGtlZXBzIGl0cyBmb3JtIGluIHRoZSBzY29w
ZSBjaGFpbiB3aGVuIHRoZSBsaXN0ZW5lciBpcyBjYWxsZWQgYnkgSmF2YVNjcmlwdC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCisKK1BBU1MgcmVzdWx0IGlzICJhYmMiCitQQVNTIHJl
c3VsdCBpcyAiYWJjIgorUEFTUyByZXN1bHQgaXMgImFiYyIKKyAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbGF6eS1ldmVudC1saXN0ZW5lci1zY29wZS1jaGFpbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9sYXp5LWV2ZW50LWxpc3RlbmVyLXNjb3BlLWNoYWluLmh0
bWwKaW5kZXggNDU1NzBkZTk5MTFkZDE5NDQ1MTQ1NTIxZDYxMzkxNWViY2M5NWU1Yy4uMjM4MDQ4
NzYxN2E3NTQzNmY1MjgyY2U5MDk1MDdkNjQzZTNhOWU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9sYXp5LWV2ZW50LWxpc3RlbmVyLXNjb3BlLWNoYWluLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9sYXp5LWV2ZW50LWxpc3RlbmVyLXNjb3BlLWNoYWluLmh0
bWwKQEAgLTEsMzIgKzEsMzUgQEAKLTxodG1sPgotCis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGZvcm0gYWN0
aW9uPSJqYXZhc2NyaXB0OnZvaWQoMCkiIG9uc3VibWl0PSJydW5UZXN0KHVzZXJuYW1lLnZhbHVl
KSI+Cis8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9ImFiYyIgbmFtZT0idXNlcm5hbWUiPgorPGlu
cHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ibG9naW4iIHZhbHVlPSJMb2dpbiI+Cis8L2Zvcm0+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCi1mdW5jdGlvbiBydW5fdGVzdCh4KSB7Ci0gIHZhciBy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwotICByLmlubmVySFRNTCA9IHgg
KyAnPGJyPic7Ci19CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHRlc3RzIHRoYXQgYSBsYXp5IGV2
ZW50IGxpc3RlbmVyIGF0dGFjaGVkIHRvIGEgZm9ybSBlbGVtZW50IGtlZXBzIGl0cyBmb3JtIGlu
IHRoZSBzY29wZSBjaGFpbiB3aGVuIHRoZSBsaXN0ZW5lciBpcyBjYWxsZWQgYnkgSmF2YVNjcmlw
dC4nKTsKIAotZnVuY3Rpb24gc2V0dXAoKSB7Ci0gIHZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKLSAgZi5vbGRfZiA9IGYub25zdWJtaXQ7Ci0gIGYub25z
dWJtaXQgPSBmdW5jdGlvbigpIHt0aGlzLm9sZF9mKCk7fTsKLSAgZi5sb2dpbi5jbGljaygpOwor
dmFyIHJlc3VsdDsKKworZnVuY3Rpb24gcnVuVGVzdCh4KQoreworICAgIHJlc3VsdCA9IHg7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdyZXN1bHQnLCAnYWJjJyk7CiB9CiAKLTwvc2NyaXB0
PgotVGhpcyB0ZXN0IHRlc3RzIHRoYXQgYSBsYXp5IGV2ZW50IGxpc3RlbmVyIGF0dGFjaGVkIHRv
IGEgZm9ybSBlbGVtZW50Ci1rZWVwcyBpdHMgZm9ybSBpbiB0aGUgc2NvcGUgY2hhaW4gd2hlbiB0
aGUgbGlzdGVuZXIgaXMgY2FsbGVkIGJ5IAotamF2YXNjcmlwdC4gPGJyPgotCi08Ym9keSBvbmxv
YWQ9InNldHVwKCkiPgotPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0OnZvaWQoMCkiIG9uc3VibWl0
PSJydW5fdGVzdCh1c2VybmFtZS52YWx1ZSkiPgotPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJh
YmMiIG5hbWU9InVzZXJuYW1lIi8+Ci08aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiIg
dmFsdWU9IkxvZ2luIi8+Ci08L2Zvcm0+Cit2YXIgZiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J2Zvcm0nKTsKIAotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KK2Yu
b25zdWJtaXQoKTsKKworLy8gU2hvdWxkIGtlZXAgdGhlIE9iamVjdEVudmlyb25tZW50IGV2ZW4g
d2hlbiBjYWxsZWQgd2l0aG91dCBjb250ZXh0LgorKDAsIGYub25zdWJtaXQpKCk7CisKK2Yub2xk
RiA9IGYub25zdWJtaXQ7CisKK2Yub25zdWJtaXQgPSBmdW5jdGlvbigpIHsKKyAgICB0aGlzLm9s
ZEYoKTsKK307CisKK2YubG9naW4uY2xpY2soKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
</data>
<flag name="review"
          id="134123"
          type_id="1"
          status="+"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="134129"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>