<?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>201986</bug_id>
          
          <creation_ts>2019-09-19 09:20:12 -0700</creation_ts>
          <short_desc>JSTests/stress/ftl-put-by-id-setter-exception-interesting-live-state.js ftl-eager flavor fails intermittently.</short_desc>
          <delta_ts>2019-09-22 11:39:33 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183266</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=200983</see_also>
          <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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572378</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-19 09:20:12 -0700</bug_when>
    <thetext>This is how I reproduce this failure with a release build on trunk r250085:

$ while true; do VM=WebKitBuild/Release &amp;&amp; DYLD_FRAMEWORK_PATH=$VM $VM/jsc --airForceBriggsAllocator=true --forcePolyProto=true --thresholdForJITAfterWarmUp=10 --thresholdForJITSoon=10 --thresholdForOptimizeAfterWarmUp=20 --thresholdForOptimizeAfterLongWarmUp=20 --thresholdForOptimizeSoon=20 --thresholdForFTLOptimizeAfterWarmUp=20 --thresholdForFTLOptimizeSoon=20 --thresholdForOMGOptimizeAfterWarmUp=20 --thresholdForOMGOptimizeSoon=20 --maximumEvalCacheableSourceLength=150000 --useEagerCodeBlockJettisonTiming=true --collectContinuously=true --useGenerationalGC=false JSTests/stress/ftl-put-by-id-setter-exception-interesting-live-state.js; done

When the test fails, it prints the following to stdout:
Exception: Error42</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572379</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-19 09:20:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/55521953&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572380</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-19 09:23:49 -0700</bug_when>
    <thetext>I forgot to say that in order to make this issue reproduce more quickly, I kicked off a full WebKit build in the background (separate terminal window) to introduce some noise into the system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572980</commentid>
    <comment_count>3</comment_count>
      <attachid>379293</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-09-20 17:29:32 -0700</bug_when>
    <thetext>Created attachment 379293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572986</commentid>
    <comment_count>4</comment_count>
      <attachid>379293</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-20 17:43:23 -0700</bug_when>
    <thetext>Comment on attachment 379293
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecode/AccessCase.cpp:238
&gt; +bool AccessCase::doesCalls(Vector&lt;JSCell*&gt;* cellsToMarkIfDoesCalls) const

let&apos;s implement Yusuke&apos;s idea of listing all types() as a switch both in here and in forEachDependentCell, so in the future, when someone adds a new type, they&apos;ll get a compile error unless they implement the type in these functions.

&gt; Source/JavaScriptCore/bytecode/PropertyCondition.cpp:354
&gt;  bool PropertyCondition::isStillLive(VM&amp; vm) const

If this is no longer called, let&apos;s remove it

&gt; Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:132
&gt; +    bool isValid = true;

nit: let&apos;s call this isStillLive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572988</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-20 17:44:50 -0700</bug_when>
    <thetext>r=me too, nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573015</commentid>
    <comment_count>6</comment_count>
      <attachid>379301</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-09-20 18:55:13 -0700</bug_when>
    <thetext>Created attachment 379301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573079</commentid>
    <comment_count>7</comment_count>
      <attachid>379301</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-21 11:30:35 -0700</bug_when>
    <thetext>Comment on attachment 379301
Patch

Clearing flags on attachment: 379301

Committed r250184: &lt;https://trac.webkit.org/changeset/250184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573080</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-21 11:30:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573202</commentid>
    <comment_count>9</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-09-22 11:39:33 -0700</bug_when>
    <thetext>*** Bug 183266 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379293</attachid>
            <date>2019-09-20 17:29:32 -0700</date>
            <delta_ts>2019-09-20 18:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201986-20190920172930.patch</filename>
            <type>text/plain</type>
            <size>20177</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZWVmNmM3ZTlmYWE5ZWJlODk2MWQyNGVmNzRhYTAyZWJhZTQyY2ZhLi5mM2M3OGI1MWJmNmQzNmRj
OTYyNjZkNGIyOGExYjZkYzI2ZGU3YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wOS0yMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBY2Nlc3NDYXNlIHNob3VsZCBzdHJvbmdseSB2aXNpdCBpdHMgZGVwZW5k
ZW5jaWVzIHdoaWxlIG9uIHN0YWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE5ODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NTIxOTUzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2Vzc0Nh
c2U6OmRvZXNDYWxscyBpcyByZXNwb25zaWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgY2VsbHMgaXQg
ZGVwZW5kcyBvbiwgc28gdGhhdAorICAgICAgICBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5l
IGNhbiBzdHJvbmdseSB2aXNpdCB0aGVtIHdoaWxlIHRoZSBzdHViIGlzIG9uIHN0YWNrLiBIb3dl
dmVyLAorICAgICAgICBpdCB3YXMgbWlzc2luZyBtb3N0IG9mIGl0cyBkZXBlbmRlbmNpZXMsIHdo
aWNoIGxlZCB0byBpdCBiZWluZyBjb2xsZWN0ZWQgd2hpbGUgb24gc3RhY2suCisgICAgICAgIFRo
aXMgbWFuaWZlc3RlZCBpbiB0aGUgZmxha3kgdGVzdCBzdHJlc3MvZnRsLXB1dC1ieS1pZC1zZXR0
ZXItZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMKKyAgICAgICAgYXMgdGhlIFBv
bHltb3JwaGljQWNjZXNzIGJlaW5nIGNvbGxlY3RlZCBhbmQgcmVtb3ZpbmcgaXRzIGV4Y2VwdGlv
biBoYW5kbGVyIGZyb20gdGhlIGNvZGUKKyAgICAgICAgYmxvY2ssIHdoaWNoIGxlZCB0byBleGNl
cHRpb24gcHJvcGFnYXRpbmcgcGFzdCB0aGUgdHJ5L2NhdGNoLgorCisgICAgICAgIEluIG9yZGVy
IHRvIGZpeCB0aGlzLCB3ZSBhYnN0cmFjdCB0aGUgZGVwZW5kZW5jeSBnYXRoZXJpbmcgbG9naWMg
ZnJvbSBBY2Nlc3NDYXNlIGludG8KKyAgICAgICAgZm9yRWFjaERlcGVuZGVudENlbGwgYW5kIHVz
ZSBpdCB0byBpbXBsZW1lbnQgdmlzaXRXZWFrIGFzIHdlbGwgYXMgZG9lc0NhbGxzIGluIG9yZGVy
IHRvCisgICAgICAgIGd1YXJhbnRlZSB0aGF0IHRoZWlyIGltcGxlbWVudGF0aW9uIGlzIGNvbnNp
c3RlbnQuCisKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6Zm9yRWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlND
OjpBY2Nlc3NDYXNlOjpkb2VzQ2FsbHMgY29uc3QpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNl
Ojp2aXNpdFdlYWsgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuaDoKKyAg
ICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlu
a0luZm86Omxhc3RTZWVuQ2FsbGVlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpoYXZlTGFzdFNlZW5DYWxsZWUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86
Omxhc3RTZWVuQ2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpo
YXZlTGFzdFNlZW5DYWxsZWUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5r
SW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmlzRGlyZWN0IGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjppc0xpbmtlZCBjb25zdCk6CisgICAgICAgIChKU0M6
OkNhbGxMaW5rSW5mbzo6c3R1YiBjb25zdCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6
Zm9yRWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86
OmlzTGlua2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpzdHViKTog
RGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHA6
CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uOjppc1N0aWxsTGl2ZSBjb25z
dCk6CisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaDoKKyAgICAg
ICAgKEpTQzo6T2JqZWN0UHJvcGVydHlDb25kaXRpb246OmZvckVhY2hEZXBlbmRlbnRDZWxsIGNv
bnN0KToKKyAgICAgICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6
CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0OjphcmVTdGlsbExpdmUg
Y29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Lmg6
CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojpmb3JFYWNoRGVwZW5k
ZW50Q2VsbCBjb25zdCk6CisgICAgICAgICogYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3Bw
OgorICAgICAgICAoSlNDOjpQcm9wZXJ0eUNvbmRpdGlvbjo6aXNTdGlsbExpdmUgY29uc3QpOgor
ICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmg6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5Q29uZGl0aW9uOjpmb3JFYWNoRGVwZW5kZW50Q2VsbCBjb25zdCk6CisgICAgICAgICog
aml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAgICAgKEpTQzo6UG9seW1v
cnBoaWNDYWxsU3R1YlJvdXRpbmU6OnZpc2l0V2Vhayk6CisgICAgICAgICogaml0L1BvbHltb3Jw
aGljQ2FsbFN0dWJSb3V0aW5lLmg6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQ2FsbFN0dWJS
b3V0aW5lOjpmb3JFYWNoRGVwZW5kZW50Q2VsbCk6CisKIDIwMTktMDktMTYgIFRhZGV1IFphZ2Fs
bG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgU2FtcGxpbmdQcm9maWxlciBzaG91
bGQgaG9sZCBBUEkgbG9jayBiZWZvcmUgcmVwb3J0aW5nIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCA3N2ZiNjVkYTBiN2EwNmM3
ZDY1OGJhYmRiNGU1MTA4YTc5MTdlZWM5Li4xZmQwZjMyZjVhNzA3YWU4YmNlMmU5ZTRjYmY1NDhi
MGU5MDlkOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNj
ZXNzQ2FzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nh
c2UuY3BwCkBAIC0yMDMsOCArMjAzLDQxIEBAIGJvb2wgQWNjZXNzQ2FzZTo6Z3VhcmRlZEJ5U3Ry
dWN0dXJlQ2hlY2soKSBjb25zdAogICAgIH0KIH0KIAotYm9vbCBBY2Nlc3NDYXNlOjpkb2VzQ2Fs
bHMoVmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFyaykgY29uc3QKK3RlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0b3I+Cit2b2lkIEFjY2Vzc0Nhc2U6OmZvckVhY2hEZXBlbmRlbnRDZWxsKGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CiB7CisgICAgbV9jb25kaXRpb25TZXQuZm9yRWFjaERlcGVu
ZGVudENlbGwoZnVuY3Rvcik7CisgICAgaWYgKG1fc3RydWN0dXJlKQorICAgICAgICBmdW5jdG9y
KG1fc3RydWN0dXJlLmdldCgpKTsKKyAgICBpZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikgewor
ICAgICAgICBmb3IgKFN0cnVjdHVyZSogc3RydWN0dXJlIDogbV9wb2x5UHJvdG9BY2Nlc3NDaGFp
bi0+Y2hhaW4oKSkKKyAgICAgICAgICAgIGZ1bmN0b3Ioc3RydWN0dXJlKTsKKyAgICB9CisgICAg
aWYgKGlzQWNjZXNzb3IoKSkgeworICAgICAgICBhdXRvJiBhY2Nlc3NvciA9IHRoaXMtPmFzPEdl
dHRlclNldHRlckFjY2Vzc0Nhc2U+KCk7CisgICAgICAgIGlmIChhY2Nlc3Nvci5jYWxsTGlua0lu
Zm8oKSkKKyAgICAgICAgICAgIGFjY2Vzc29yLmNhbGxMaW5rSW5mbygpLT5mb3JFYWNoRGVwZW5k
ZW50Q2VsbChmdW5jdG9yKTsKKyAgICAgICAgaWYgKGFjY2Vzc29yLmN1c3RvbVNsb3RCYXNlKCkp
CisgICAgICAgICAgICBmdW5jdG9yKGFjY2Vzc29yLmN1c3RvbVNsb3RCYXNlKCkpOworICAgIH0g
ZWxzZSBpZiAodHlwZSgpID09IEludHJpbnNpY0dldHRlcikgeworICAgICAgICBhdXRvJiBpbnRy
aW5zaWMgPSB0aGlzLT5hczxJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlPigpOworICAgICAgICBp
ZiAoaW50cmluc2ljLmludHJpbnNpY0Z1bmN0aW9uKCkpCisgICAgICAgICAgICBmdW5jdG9yKGlu
dHJpbnNpYy5pbnRyaW5zaWNGdW5jdGlvbigpKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUoKSA9PSBN
b2R1bGVOYW1lc3BhY2VMb2FkKSB7CisgICAgICAgIGF1dG8mIGFjY2Vzc0Nhc2UgPSB0aGlzLT5h
czxNb2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlPigpOworICAgICAgICBpZiAoYWNjZXNzQ2FzZS5t
b2R1bGVOYW1lc3BhY2VPYmplY3QoKSkKKyAgICAgICAgICAgIGZ1bmN0b3IoYWNjZXNzQ2FzZS5t
b2R1bGVOYW1lc3BhY2VPYmplY3QoKSk7CisgICAgICAgIGlmIChhY2Nlc3NDYXNlLm1vZHVsZUVu
dmlyb25tZW50KCkpCisgICAgICAgICAgICBmdW5jdG9yKGFjY2Vzc0Nhc2UubW9kdWxlRW52aXJv
bm1lbnQoKSk7CisgICAgfSBlbHNlIGlmICh0eXBlKCkgPT0gSW5zdGFuY2VPZkhpdCB8fCB0eXBl
KCkgPT0gSW5zdGFuY2VPZk1pc3MpIHsKKyAgICAgICAgaWYgKGFzPEluc3RhbmNlT2ZBY2Nlc3ND
YXNlPigpLnByb3RvdHlwZSgpKQorICAgICAgICAgICAgZnVuY3RvcihhczxJbnN0YW5jZU9mQWNj
ZXNzQ2FzZT4oKS5wcm90b3R5cGUoKSk7CisgICAgfQorfQorCitib29sIEFjY2Vzc0Nhc2U6OmRv
ZXNDYWxscyhWZWN0b3I8SlNDZWxsKj4qIGNlbGxzVG9NYXJrSWZEb2VzQ2FsbHMpIGNvbnN0Cit7
CisgICAgYm9vbCBkb2VzQ2FsbHMgPSBmYWxzZTsKICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAg
IGNhc2UgR2V0dGVyOgogICAgIGNhc2UgU2V0dGVyOgpAQCAtMjEyLDE4ICsyNDUsMjIgQEAgYm9v
bCBBY2Nlc3NDYXNlOjpkb2VzQ2FsbHMoVmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFyaykgY29u
c3QKICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgogICAgIGNhc2UgQ3VzdG9tVmFsdWVT
ZXR0ZXI6CiAgICAgY2FzZSBDdXN0b21BY2Nlc3NvclNldHRlcjoKLSAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGRvZXNDYWxscyA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VHJhbnNpdGlvbjoKLSAgICAgICAgaWYgKG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0
eSgpICE9IHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpCi0gICAgICAgICAgICAmJiBz
dHJ1Y3R1cmUoKS0+Y291bGRIYXZlSW5kZXhpbmdIZWFkZXIoKSkgewotICAgICAgICAgICAgaWYg
KGNlbGxzVG9NYXJrKQotICAgICAgICAgICAgICAgIGNlbGxzVG9NYXJrLT5hcHBlbmQobmV3U3Ry
dWN0dXJlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobmV3U3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFj
aXR5KCkgIT0gc3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkgJiYgc3RydWN0dXJlKCkt
PmNvdWxkSGF2ZUluZGV4aW5nSGVhZGVyKCkpCisgICAgICAgICAgICBkb2VzQ2FsbHMgPSB0cnVl
OworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGlmIChkb2VzQ2FsbHMgJiYgY2VsbHNUb01hcmtJ
ZkRvZXNDYWxscykgeworICAgICAgICBmb3JFYWNoRGVwZW5kZW50Q2VsbChbJl0oSlNDZWxsKiBj
ZWxsKSB7CisgICAgICAgICAgICBjZWxsc1RvTWFya0lmRG9lc0NhbGxzLT5hcHBlbmQoY2VsbCk7
CisgICAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gZG9lc0NhbGxzOwogfQogCiBib29sIEFj
Y2Vzc0Nhc2U6OmNvdWxkU3RpbGxTdWNjZWVkKCkgY29uc3QKQEAgLTMyMSwzOCArMzU4LDE3IEBA
IHZvaWQgQWNjZXNzQ2FzZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogCiBib29sIEFj
Y2Vzc0Nhc2U6OnZpc2l0V2VhayhWTSYgdm0pIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RydWN0dXJl
ICYmICF2bS5oZWFwLmlzTWFya2VkKG1fc3RydWN0dXJlLmdldCgpKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmIChtX3BvbHlQcm90b0FjY2Vzc0NoYWluKSB7Ci0gICAgICAgIGZvciAo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgOiBtX3BvbHlQcm90b0FjY2Vzc0NoYWluLT5jaGFpbigpKSB7
Ci0gICAgICAgICAgICBpZiAoIXZtLmhlYXAuaXNNYXJrZWQoc3RydWN0dXJlKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCFtX2NvbmRp
dGlvblNldC5hcmVTdGlsbExpdmUodm0pKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KGlzQWNjZXNzb3IoKSkgewogICAgICAgICBhdXRvJiBhY2Nlc3NvciA9IHRoaXMtPmFzPEdldHRl
clNldHRlckFjY2Vzc0Nhc2U+KCk7CiAgICAgICAgIGlmIChhY2Nlc3Nvci5jYWxsTGlua0luZm8o
KSkKICAgICAgICAgICAgIGFjY2Vzc29yLmNhbGxMaW5rSW5mbygpLT52aXNpdFdlYWsodm0pOwot
ICAgICAgICBpZiAoYWNjZXNzb3IuY3VzdG9tU2xvdEJhc2UoKSAmJiAhdm0uaGVhcC5pc01hcmtl
ZChhY2Nlc3Nvci5jdXN0b21TbG90QmFzZSgpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9IGVsc2UgaWYgKHR5cGUoKSA9PSBJbnRyaW5zaWNHZXR0ZXIpIHsKLSAgICAgICAgYXV0
byYgaW50cmluc2ljID0gdGhpcy0+YXM8SW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZT4oKTsKLSAg
ICAgICAgaWYgKGludHJpbnNpYy5pbnRyaW5zaWNGdW5jdGlvbigpICYmICF2bS5oZWFwLmlzTWFy
a2VkKGludHJpbnNpYy5pbnRyaW5zaWNGdW5jdGlvbigpKSkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9IGVsc2UgaWYgKHR5cGUoKSA9PSBNb2R1bGVOYW1lc3BhY2VMb2FkKSB7Ci0g
ICAgICAgIGF1dG8mIGFjY2Vzc0Nhc2UgPSB0aGlzLT5hczxNb2R1bGVOYW1lc3BhY2VBY2Nlc3ND
YXNlPigpOwotICAgICAgICBpZiAoYWNjZXNzQ2FzZS5tb2R1bGVOYW1lc3BhY2VPYmplY3QoKSAm
JiAhdm0uaGVhcC5pc01hcmtlZChhY2Nlc3NDYXNlLm1vZHVsZU5hbWVzcGFjZU9iamVjdCgpKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGFjY2Vzc0Nhc2UubW9kdWxl
RW52aXJvbm1lbnQoKSAmJiAhdm0uaGVhcC5pc01hcmtlZChhY2Nlc3NDYXNlLm1vZHVsZUVudmly
b25tZW50KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gZWxzZSBpZiAodHlw
ZSgpID09IEluc3RhbmNlT2ZIaXQgfHwgdHlwZSgpID09IEluc3RhbmNlT2ZNaXNzKSB7Ci0gICAg
ICAgIGlmIChhczxJbnN0YW5jZU9mQWNjZXNzQ2FzZT4oKS5wcm90b3R5cGUoKSAmJiAhdm0uaGVh
cC5pc01hcmtlZChhczxJbnN0YW5jZU9mQWNjZXNzQ2FzZT4oKS5wcm90b3R5cGUoKSkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgYm9v
bCBpc1ZhbGlkID0gdHJ1ZTsKKyAgICBmb3JFYWNoRGVwZW5kZW50Q2VsbChbJl0oSlNDZWxsKiBj
ZWxsKSB7CisgICAgICAgIGlzVmFsaWQgJj0gdm0uaGVhcC5pc01hcmtlZChjZWxsKTsKKyAgICB9
KTsKKyAgICByZXR1cm4gaXNWYWxpZDsKIH0KIAogYm9vbCBBY2Nlc3NDYXNlOjpwcm9wYWdhdGVU
cmFuc2l0aW9ucyhTbG90VmlzaXRvciYgdmlzaXRvcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCmluZGV4IDE3MGFmNWQwZTUyZDAzZjMxZmFkYjEy
OTgxOTMwYTUzOGZkY2IwNzEuLjM1MDhmODM5YThjYmMyYWVhNjhiN2M3MzlkMzJjMTVhNmE3ODE0
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaApAQCAt
MjE5LDYgKzIxOSw5IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIENvZGVCbG9jazsKICAg
ICBmcmllbmQgY2xhc3MgUG9seW1vcnBoaWNBY2Nlc3M7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jdG9yPgorICAgIHZvaWQgZm9yRWFjaERlcGVuZGVudENlbGwoY29uc3QgRnVuY3RvciYp
IGNvbnN0OworCiAgICAgYm9vbCB2aXNpdFdlYWsoVk0mKSBjb25zdDsKICAgICBib29sIHByb3Bh
Z2F0ZVRyYW5zaXRpb25zKFNsb3RWaXNpdG9yJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggMzkzZjE4MjRlNDFhNGJl
YjUxNGM2MmE2OTZmMzNhODM3MjQ5NWNkZC4uNzk5ZjY3YWFjZTUyNDRhMmQyNmU3ZmNiNTFlOTMy
MjA4NzkyN2MwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKQEAgLTE2NiwxMyArMTY2LDEzIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVh
ckxhc3RTZWVuQ2FsbGVlKCkKICAgICBtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmNsZWFy
KCk7CiB9CiAKLUpTT2JqZWN0KiBDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKCkKK0pTT2Jq
ZWN0KiBDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKCkgY29uc3QKIHsKICAgICBSRUxFQVNF
X0FTU0VSVCghaXNEaXJlY3QoKSk7CiAgICAgcmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KG1fbGFz
dFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0KCkpOwogfQogCi1ib29sIENhbGxMaW5rSW5mbzo6
aGF2ZUxhc3RTZWVuQ2FsbGVlKCkKK2Jvb2wgQ2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5DYWxs
ZWUoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKICAgICByZXR1
cm4gISFtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCmluZGV4IDg5ODc1ZGEyYmUyMzcwMDg3ZGMwMWU1
YWRkNjNhOWU4MWIxMGQ2YWQuLjBkZTI4MzRiNDkwMzQ0ZDZkMzU5ZjhmM2YyNjQ1ZjdhYWJlNTIy
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgK
QEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjYWxsTW9kZUZvcihz
dGF0aWNfY2FzdDxDYWxsVHlwZT4obV9jYWxsVHlwZSkpOwogICAgIH0KIAotICAgIGJvb2wgaXNE
aXJlY3QoKQorICAgIGJvb2wgaXNEaXJlY3QoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IGlzRGlyZWN0KHN0YXRpY19jYXN0PENhbGxUeXBlPihtX2NhbGxUeXBlKSk7CiAgICAgfQpAQCAt
MTU0LDcgKzE1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGlzVmFyYXJnc0NhbGxUeXBl
KHN0YXRpY19jYXN0PENhbGxUeXBlPihtX2NhbGxUeXBlKSk7CiAgICAgfQogCi0gICAgYm9vbCBp
c0xpbmtlZCgpIHsgcmV0dXJuIG1fc3R1YiB8fCBtX2NhbGxlZU9yQ29kZUJsb2NrOyB9CisgICAg
Ym9vbCBpc0xpbmtlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3R1YiB8fCBtX2NhbGxlZU9yQ29kZUJs
b2NrOyB9CiAgICAgdm9pZCB1bmxpbmsoVk0mKTsKIAogICAgIHZvaWQgc2V0VXBDYWxsKENhbGxU
eXBlIGNhbGxUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBjYWxsZWVHUFIpCkBA
IC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRMYXN0U2VlbkNhbGxlZShW
TSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0KiBjYWxsZWUpOwogICAgIHZvaWQgY2xl
YXJMYXN0U2VlbkNhbGxlZSgpOwotICAgIEpTT2JqZWN0KiBsYXN0U2VlbkNhbGxlZSgpOwotICAg
IGJvb2wgaGF2ZUxhc3RTZWVuQ2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGxhc3RTZWVuQ2FsbGVl
KCkgY29uc3Q7CisgICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKSBjb25zdDsKICAgICAKICAg
ICB2b2lkIHNldEV4ZWN1dGFibGVEdXJpbmdDb21waWxhdGlvbihFeGVjdXRhYmxlQmFzZSopOwog
ICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKCk7CkBAIC0yMTUsNyArMjE1LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjbGVhclN0dWIoKTsKIAotICAgIFBvbHltb3JwaGljQ2FsbFN0dWJS
b3V0aW5lKiBzdHViKCkKKyAgICBQb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZSogc3R1YigpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9zdHViLmdldCgpOwogICAgIH0KQEAgLTMzMiw2
ICszMzIsMjIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9jb2RlT3JpZ2luOwogICAgIH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBmb3JFYWNoRGVwZW5k
ZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYg
KGlzTGlua2VkKCkpIHsKKyAgICAgICAgICAgIGlmIChzdHViKCkpCisgICAgICAgICAgICAgICAg
c3R1YigpLT5mb3JFYWNoRGVwZW5kZW50Q2VsbChmdW5jdG9yKTsKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIGZ1bmN0b3IobV9jYWxsZWVPckNvZGVCbG9jay5nZXQoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGlzRGlyZWN0KCkpCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0
b3IobV9sYXN0U2VlbkNhbGxlZU9yRXhlY3V0YWJsZS5nZXQoKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0RpcmVjdCgpICYmIGhhdmVMYXN0U2VlbkNhbGxlZSgp
KQorICAgICAgICAgICAgZnVuY3RvcihsYXN0U2VlbkNhbGxlZSgpKTsKKyAgICB9CisKICAgICB2
b2lkIHZpc2l0V2VhayhWTSYpOwogCiAgICAgdm9pZCBzZXRGcmFtZVNodWZmbGVEYXRhKGNvbnN0
IENhbGxGcmFtZVNodWZmbGVEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uLmNwcAppbmRleCBmM2UzYTdj
NjgyYjljZDYzM2M5M2U1MWI1N2FlYjdhYzg4MDhlYzYxLi45NTAwNDVlN2RhZmEzZjBjY2M1YTZm
NjViYTk1MDVhYzQwNDMxZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAKQEAgLTE0NywxMCArMTQ3
LDExIEBAIGJvb2wgT2JqZWN0UHJvcGVydHlDb25kaXRpb246OmlzU3RpbGxMaXZlKFZNJiB2bSkg
Y29uc3QKICAgICBpZiAoISp0aGlzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAg
aWYgKCF2bS5oZWFwLmlzTWFya2VkKG1fb2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIHJldHVybiBtX2NvbmRpdGlvbi5pc1N0aWxsTGl2ZSh2bSk7CisgICAgYm9vbCBp
c1N0aWxsTGl2ZSA9IHRydWU7CisgICAgZm9yRWFjaERlcGVuZGVudENlbGwoWyZdKEpTQ2VsbCog
Y2VsbCkgeworICAgICAgICBpc1N0aWxsTGl2ZSAmPSB2bS5oZWFwLmlzTWFya2VkKGNlbGwpOwor
ICAgIH0pOworICAgIHJldHVybiBpc1N0aWxsTGl2ZTsKIH0KIAogdm9pZCBPYmplY3RQcm9wZXJ0
eUNvbmRpdGlvbjo6dmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJiB0
cmFja2VkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaAppbmRleCA2ODkzNGRmNWE2M2JhZTY4MzY2MjI4
OTZjMzQ1M2MxMDNjYmExNWY2Li44ZWU4OGY4MWFjNzFjZjM4Yjk5MDZjZmE2YzJmZTRlYWI5M2Zm
NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb24uaApAQCAtMjQyLDYgKzI0MiwxMyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gY29uZGl0aW9uKCkud2F0Y2hpbmdSZXF1aXJlc1JlcGxhY2VtZW50
V2F0Y2hwb2ludCgpOwogICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Cisg
ICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKSBjb25z
dAorICAgIHsKKyAgICAgICAgZnVuY3RvcihtX29iamVjdCk7CisgICAgICAgIG1fY29uZGl0aW9u
LmZvckVhY2hEZXBlbmRlbnRDZWxsKGZ1bmN0b3IpOworICAgIH0KICAgICAKICAgICAvLyBUaGlz
IG1lYW5zIHRoYXQgdGhlIG9iamVjdHMgaW52b2x2ZWQgaW4gdGhpcyBhcmUgc3RpbGwgbGl2ZS4K
ICAgICBib29sIGlzU3RpbGxMaXZlKFZNJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNw
cAppbmRleCAyYzYwZDZiODJjZGQzNjlmYjczZjViODhiN2MyNDNlYTJjNzkzMzVkLi5hZjBlOWIx
NjA5YzQ3NDdmNTQwZTkyYmFkZGU2ODRjNGMxNjBmY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dC5jcHAKQEAgLTE0MywxMSArMTQzLDExIEBAIGJvb2wgT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQ6Om5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQoKSBjb25zdAogCiBib29sIE9iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0OjphcmVTdGlsbExpdmUoVk0mIHZtKSBjb25zdAogewotICAgIGZv
ciAoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24mIGNvbmRpdGlvbiA6ICp0aGlzKSB7Ci0g
ICAgICAgIGlmICghY29uZGl0aW9uLmlzU3RpbGxMaXZlKHZtKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisgICAgYm9vbCBzdGlsbExpdmUgPSB0
cnVlOworICAgIGZvckVhY2hEZXBlbmRlbnRDZWxsKFsmXShKU0NlbGwqIGNlbGwpIHsKKyAgICAg
ICAgc3RpbGxMaXZlICY9IHZtLmhlYXAuaXNNYXJrZWQoY2VsbCk7CisgICAgfSk7CisgICAgcmV0
dXJuIHN0aWxsTGl2ZTsKIH0KIAogdm9pZCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6ZHVt
cEluQ29udGV4dChQcmludFN0cmVhbSYgb3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0
eUNvbmRpdGlvblNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmgKaW5kZXggMDU0MjkwYzVjZWYyYjNjNGNlNjA0NmU5NTdhNWE1
MDhiZDRiNWY2YS4uY2E3MmQ3MGUyNDAzMTAzYjVkZmVlYjVlZjRjZDFlZjU4NDQxOThmOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29u
ZGl0aW9uU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmgKQEAgLTExMSw2ICsxMTEsMTQgQEAgcHVibGljOgogICAgIGJv
b2wgc3RydWN0dXJlc0Vuc3VyZVZhbGlkaXR5QXNzdW1pbmdJbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnQoKSBjb25zdDsKICAgICAKICAgICBib29sIG5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQo
KSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBmb3JF
YWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKSBjb25zdAorICAgIHsKKyAg
ICAgICAgZm9yIChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYgY29uZGl0aW9uIDogKnRo
aXMpCisgICAgICAgICAgICBjb25kaXRpb24uZm9yRWFjaERlcGVuZGVudENlbGwoZnVuY3Rvcik7
CisgICAgfQorCiAgICAgYm9vbCBhcmVTdGlsbExpdmUoVk0mKSBjb25zdDsKICAgICAKICAgICB2
b2lkIGR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5j
cHAKaW5kZXggYTIyMzgzZTRjOWZhMjFkOGZmZDhlN2I5YTQxNjRmZWFkYTkxY2Q2ZS4uNWYxNjJl
ZTJjZDRkYTg4NDE4OWRiYWMwMzE4MzI1MzMwMDQwYTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCkBAIC0zNTMsMTYg
KzM1MywxMSBAQCBib29sIFByb3BlcnR5Q29uZGl0aW9uOjppc1dhdGNoYWJsZSgKIAogYm9vbCBQ
cm9wZXJ0eUNvbmRpdGlvbjo6aXNTdGlsbExpdmUoVk0mIHZtKSBjb25zdAogewotICAgIGlmICho
YXNQcm90b3R5cGUoKSAmJiBwcm90b3R5cGUoKSAmJiAhdm0uaGVhcC5pc01hcmtlZChwcm90b3R5
cGUoKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoaGFzUmVxdWlyZWRW
YWx1ZSgpCi0gICAgICAgICYmIHJlcXVpcmVkVmFsdWUoKQotICAgICAgICAmJiByZXF1aXJlZFZh
bHVlKCkuaXNDZWxsKCkKLSAgICAgICAgJiYgIXZtLmhlYXAuaXNNYXJrZWQocmVxdWlyZWRWYWx1
ZSgpLmFzQ2VsbCgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiB0
cnVlOworICAgIGJvb2wgaXNTdGlsbExpdmUgPSB0cnVlOworICAgIGZvckVhY2hEZXBlbmRlbnRD
ZWxsKFsmXShKU0NlbGwqIGNlbGwpIHsKKyAgICAgICAgaXNTdGlsbExpdmUgJj0gdm0uaGVhcC5p
c01hcmtlZChjZWxsKTsKKyAgICB9KTsKKyAgICByZXR1cm4gaXNTdGlsbExpdmU7CiB9CiAKIHZv
aWQgUHJvcGVydHlDb25kaXRpb246OnZhbGlkYXRlUmVmZXJlbmNlcyhjb25zdCBUcmFja2VkUmVm
ZXJlbmNlcyYgdHJhY2tlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmgKaW5kZXggZGI1OWRlM2NlZTRiMjEyMjY3YTFkMGFk
N2FjNTdlZTE0ZDRmZjA0MS4uMTQ1ZGYyMDYzZDg5NTA1ZjNlYjIxODc1ODFlYzQwMjAzMjYwNDRj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29u
ZGl0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29u
ZGl0aW9uLmgKQEAgLTI5NSw2ICsyOTUsMTYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuICEhKnRoaXMgJiYgbV9oZWFkZXIudHlwZSgpID09IEVxdWl2YWxlbmNlOwogICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50
Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGhh
c1Byb3RvdHlwZSgpICYmIHByb3RvdHlwZSgpKQorICAgICAgICAgICAgZnVuY3Rvcihwcm90b3R5
cGUoKSk7CisKKyAgICAgICAgaWYgKGhhc1JlcXVpcmVkVmFsdWUoKSAmJiByZXF1aXJlZFZhbHVl
KCkgJiYgcmVxdWlyZWRWYWx1ZSgpLmlzQ2VsbCgpKQorICAgICAgICAgICAgZnVuY3RvcihyZXF1
aXJlZFZhbHVlKCkuYXNDZWxsKCkpOworICAgIH0KICAgICAKICAgICAvLyBUaGlzIG1lYW5zIHRo
YXQgdGhlIG9iamVjdHMgaW52b2x2ZWQgaW4gdGhpcyBhcmUgc3RpbGwgbGl2ZS4KICAgICBib29s
IGlzU3RpbGxMaXZlKFZNJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwCmluZGV4IDkxYmI1ODU2ZDE3
OGJlYWE0YjlmNzc5MTdhMGNjMzVkMmJkOWMxMTYuLmRmOTI3OWU3ODEwMzNhYmMzY2I1YTA4Njk5
YmM0N2VhYjg3YTZhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9s
eW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwCkBAIC0xMjksMTEgKzEyOSwxMSBAQCB2
b2lkIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lOjpjbGVhckNhbGxOb2Rlc0ZvcihDYWxsTGlu
a0luZm8qIGluZm8pCiAKIGJvb2wgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6OnZpc2l0V2Vh
ayhWTSYgdm0pCiB7Ci0gICAgZm9yIChhdXRvJiB2YXJpYW50IDogbV92YXJpYW50cykgewotICAg
ICAgICBpZiAoIXZtLmhlYXAuaXNNYXJrZWQodmFyaWFudC5nZXQoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgaXNWYWxpZCA9
IHRydWU7CisgICAgZm9yRWFjaERlcGVuZGVudENlbGwoWyZdKEpTQ2VsbCogY2VsbCkgeworICAg
ICAgICBpc1ZhbGlkICY9IHZtLmhlYXAuaXNNYXJrZWQoY2VsbCk7CisgICAgfSk7CisgICAgcmV0
dXJuIGlzVmFsaWQ7CiB9CiAKIHZvaWQgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6Om1hcmtS
ZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaApp
bmRleCAyNTZhNWY2MDgxMDc4OTEwZDQ2OTE4ODRlZmNjZGMxMzhlNWQ0MjUwLi4wZTVjNzczNGRk
ZTBiOTgwMTQ0NTk0OWI3YzExZjMzZDIyMjI4ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC05NSw2ICs5
NSwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyQ2FsbE5vZGVzRm9yKENhbGxMaW5rSW5m
byopOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBmb3JF
YWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAg
Zm9yIChhdXRvJiB2YXJpYW50IDogbV92YXJpYW50cykKKyAgICAgICAgICAgIGZ1bmN0b3IodmFy
aWFudC5nZXQoKSk7CisgICAgfQorCiAgICAgYm9vbCB2aXNpdFdlYWsoVk0mKSBvdmVycmlkZTsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCA2ODhjZDkyYjA0NGZjNjZmMmRjODgyY2I3YzUxZDhlMDc0MzdlNzIzLi5m
NWRlOTRiY2I3MmEwODAyOGJkYjJmNWM4ZGYxYTkxZTI2N2RhYzAyIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE5LTA5LTIwICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAg
IEFjY2Vzc0Nhc2Ugc2hvdWxkIHN0cm9uZ2x5IHZpc2l0IGl0cyBkZXBlbmRlbmNpZXMgd2hpbGUg
b24gc3RhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTk4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU1MjE5NTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvZnRsLXB1dC1ieS1p
ZC1zZXR0ZXItZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUtMi5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorICAgICAgICAod2FybXVwKToKKwogMjAxOS0wOS0xNiAgU2FhbSBCYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBKU09iamVjdDo6cHV0SW5saW5lU2xv
dyBzaG91bGQgbm90IGlnbm9yZSAiX19wcm90b19fIiBmb3IgUHJveHkKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlvbi1pbnRlcmVzdGluZy1s
aXZlLXN0YXRlLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1leGNl
cHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS0yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOWUzYTUyOWU2
ZDM5OGU2MDZkZmZmZjdhZjczOTEyNmZiZDY2NzUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1z
dGF0ZS0yLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAgdmFy
IHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB2YXIgcGYgPSBwLmc7CisgICAg
dHJ5IHsKKyAgICAgICAgeCA9IDEwMjsKKyAgICAgICAgcGYrKzsKKyAgICAgICAgby5mID0geCAr
IHBmOworICAgICAgICBvID0gMTA0OworICAgICAgICBwZisrOworICAgICAgICB4ID0gMTA2Owor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIHtvdXRjb21lOiAiZXhjZXB0aW9uIiwg
dmFsdWVzOiBbbywgcGYsIHhdfTsKKyAgICB9CisgICAgcmV0dXJuIHtvdXRjb21lOiAicmV0dXJu
IiwgdmFsdWVzOiBbbywgcGYsIHhdfTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24g
d2FybXVwKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZVNldHRlcl9fKCJmIiwg
ZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgdGhpcy5fZiA9IHZhbHVlOworICAgIH0pOworICAg
IGlmIChpICYgMSkKKyAgICAgICAgb1siaSIgKyBpXSA9IGk7IC8vIE1ha2UgaXQgcG9seW1vcnBo
aWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhvLCB7ZzoyMDB9KTsKK30KK25vSW5saW5lKHdhcm11
cCk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBvYmplY3RzIGFuZCBnZXR0
ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHdhcm11cCgpOwor
fQorCit2YXIgbyA9IHt9Oworby5fX2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7Cisg
ICAgdGhyb3cgIkVycm9yNDIiOworfSk7Cit2YXIgcmVzdWx0ID0gZm9vKG8sIHtnOjMwMH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379301</attachid>
            <date>2019-09-20 18:55:13 -0700</date>
            <delta_ts>2019-09-21 11:30:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201986-20190920185512.patch</filename>
            <type>text/plain</type>
            <size>21104</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZWVmNmM3ZTlmYWE5ZWJlODk2MWQyNGVmNzRhYTAyZWJhZTQyY2ZhLi5mOGY5MTBmZjEwZDk2ZWI5
MDA4ZWYwZmM0MWYxMDFiZDhlMGZlYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wOS0yMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBY2Nlc3NDYXNlIHNob3VsZCBzdHJvbmdseSB2aXNpdCBpdHMgZGVwZW5k
ZW5jaWVzIHdoaWxlIG9uIHN0YWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE5ODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NTIxOTUzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpIGFuZCBZdXN1a2UgU3V6dWtpLgorCisg
ICAgICAgIEFjY2Vzc0Nhc2U6OmRvZXNDYWxscyBpcyByZXNwb25zaWJsZSBmb3Igc3BlY2lmeWlu
ZyB0aGUgY2VsbHMgaXQgZGVwZW5kcyBvbiwgc28gdGhhdAorICAgICAgICBNYXJraW5nR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lIGNhbiBzdHJvbmdseSB2aXNpdCB0aGVtIHdoaWxlIHRoZSBzdHViIGlz
IG9uIHN0YWNrLiBIb3dldmVyLAorICAgICAgICBpdCB3YXMgbWlzc2luZyBtb3N0IG9mIGl0cyBk
ZXBlbmRlbmNpZXMsIHdoaWNoIGxlZCB0byBpdCBiZWluZyBjb2xsZWN0ZWQgd2hpbGUgb24gc3Rh
Y2suCisgICAgICAgIFRoaXMgbWFuaWZlc3RlZCBpbiB0aGUgZmxha3kgdGVzdCBzdHJlc3MvZnRs
LXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUuanMKKyAg
ICAgICAgYXMgdGhlIFBvbHltb3JwaGljQWNjZXNzIGJlaW5nIGNvbGxlY3RlZCBhbmQgcmVtb3Zp
bmcgaXRzIGV4Y2VwdGlvbiBoYW5kbGVyIGZyb20gdGhlIGNvZGUKKyAgICAgICAgYmxvY2ssIHdo
aWNoIGxlZCB0byBleGNlcHRpb24gcHJvcGFnYXRpbmcgcGFzdCB0aGUgdHJ5L2NhdGNoLgorCisg
ICAgICAgIEluIG9yZGVyIHRvIGZpeCB0aGlzLCB3ZSBhYnN0cmFjdCB0aGUgZGVwZW5kZW5jeSBn
YXRoZXJpbmcgbG9naWMgZnJvbSBBY2Nlc3NDYXNlIGludG8KKyAgICAgICAgZm9yRWFjaERlcGVu
ZGVudENlbGwgYW5kIHVzZSBpdCB0byBpbXBsZW1lbnQgdmlzaXRXZWFrIGFzIHdlbGwgYXMgZG9l
c0NhbGxzIGluIG9yZGVyIHRvCisgICAgICAgIGd1YXJhbnRlZSB0aGF0IHRoZWlyIGltcGxlbWVu
dGF0aW9uIGlzIGNvbnNpc3RlbnQuCisKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Zm9yRWFjaERlcGVuZGVudENlbGwgY29uc3Qp
OgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb2VzQ2FsbHMgY29uc3QpOgorICAgICAgICAo
SlNDOjpBY2Nlc3NDYXNlOjp2aXNpdFdlYWsgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAg
ICAoSlNDOjpDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5DYWxsZWUgY29uc3QpOgorICAgICAgICAoSlND
OjpDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Q2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5DYWxsZWUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL0NhbGxMaW5rSW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmlzRGly
ZWN0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjppc0xpbmtlZCBjb25zdCk6
CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c3R1YiBjb25zdCk6CisgICAgICAgIChKU0M6
OkNhbGxMaW5rSW5mbzo6Zm9yRWFjaERlcGVuZGVudENlbGwgY29uc3QpOgorICAgICAgICAoSlND
OjpDYWxsTGlua0luZm86OmlzTGlua2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FsbExp
bmtJbmZvOjpzdHViKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0
eUNvbmRpdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uOjpp
c1N0aWxsTGl2ZSBjb25zdCk6CisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25k
aXRpb24uaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvcGVydHlDb25kaXRpb246OmZvckVhY2hE
ZXBlbmRlbnRDZWxsIGNvbnN0KToKKyAgICAgICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
OjphcmVTdGlsbExpdmUgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL09iamVjdFByb3BlcnR5
Q29uZGl0aW9uU2V0Lmg6CisgICAgICAgIChKU0M6Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
Ojpmb3JFYWNoRGVwZW5kZW50Q2VsbCBjb25zdCk6CisgICAgICAgICogYnl0ZWNvZGUvUHJvcGVy
dHlDb25kaXRpb24uY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eUNvbmRpdGlvbjo6aXNTdGls
bExpdmUgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmg6Cisg
ICAgICAgIChKU0M6OlByb3BlcnR5Q29uZGl0aW9uOjpmb3JFYWNoRGVwZW5kZW50Q2VsbCBjb25z
dCk6CisgICAgICAgICogaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcDoKKyAgICAg
ICAgKEpTQzo6UG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6OnZpc2l0V2Vhayk6CisgICAgICAg
ICogaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmg6CisgICAgICAgIChKU0M6OlBvbHlt
b3JwaGljQ2FsbFN0dWJSb3V0aW5lOjpmb3JFYWNoRGVwZW5kZW50Q2VsbCk6CisKIDIwMTktMDkt
MTYgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgU2FtcGxp
bmdQcm9maWxlciBzaG91bGQgaG9sZCBBUEkgbG9jayBiZWZvcmUgcmVwb3J0aW5nIHJlc3VsdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCA3
N2ZiNjVkYTBiN2EwNmM3ZDY1OGJhYmRiNGU1MTA4YTc5MTdlZWM5Li5jM2JhNjA4MTQ5MmFjMzRh
ZTFkN2ViZDIyMDE1YTdhZDJmYTJhZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCkBAIC0yMDMsMjcgKzIwMywxMDkgQEAgYm9vbCBBY2Nlc3ND
YXNlOjpndWFyZGVkQnlTdHJ1Y3R1cmVDaGVjaygpIGNvbnN0CiAgICAgfQogfQogCi1ib29sIEFj
Y2Vzc0Nhc2U6OmRvZXNDYWxscyhWZWN0b3I8SlNDZWxsKj4qIGNlbGxzVG9NYXJrKSBjb25zdAor
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KK3ZvaWQgQWNjZXNzQ2FzZTo6Zm9yRWFjaERlcGVu
ZGVudENlbGwoY29uc3QgRnVuY3RvciYgZnVuY3RvcikgY29uc3QKIHsKKyAgICBtX2NvbmRpdGlv
blNldC5mb3JFYWNoRGVwZW5kZW50Q2VsbChmdW5jdG9yKTsKKyAgICBpZiAobV9zdHJ1Y3R1cmUp
CisgICAgICAgIGZ1bmN0b3IobV9zdHJ1Y3R1cmUuZ2V0KCkpOworICAgIGlmIChtX3BvbHlQcm90
b0FjY2Vzc0NoYWluKSB7CisgICAgICAgIGZvciAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUgOiBtX3Bv
bHlQcm90b0FjY2Vzc0NoYWluLT5jaGFpbigpKQorICAgICAgICAgICAgZnVuY3RvcihzdHJ1Y3R1
cmUpOworICAgIH0KKwogICAgIHN3aXRjaCAodHlwZSgpKSB7CiAgICAgY2FzZSBHZXR0ZXI6Cisg
ICAgY2FzZSBTZXR0ZXI6IHsKKyAgICAgICAgYXV0byYgYWNjZXNzb3IgPSB0aGlzLT5hczxHZXR0
ZXJTZXR0ZXJBY2Nlc3NDYXNlPigpOworICAgICAgICBpZiAoYWNjZXNzb3IuY2FsbExpbmtJbmZv
KCkpCisgICAgICAgICAgICBhY2Nlc3Nvci5jYWxsTGlua0luZm8oKS0+Zm9yRWFjaERlcGVuZGVu
dENlbGwoZnVuY3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEN1c3RvbVZh
bHVlR2V0dGVyOgorICAgIGNhc2UgQ3VzdG9tVmFsdWVTZXR0ZXI6IHsKKyAgICAgICAgYXV0byYg
YWNjZXNzb3IgPSB0aGlzLT5hczxHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlPigpOworICAgICAgICBp
ZiAoYWNjZXNzb3IuY3VzdG9tU2xvdEJhc2UoKSkKKyAgICAgICAgICAgIGZ1bmN0b3IoYWNjZXNz
b3IuY3VzdG9tU2xvdEJhc2UoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIElu
dHJpbnNpY0dldHRlcjogeworICAgICAgICBhdXRvJiBpbnRyaW5zaWMgPSB0aGlzLT5hczxJbnRy
aW5zaWNHZXR0ZXJBY2Nlc3NDYXNlPigpOworICAgICAgICBpZiAoaW50cmluc2ljLmludHJpbnNp
Y0Z1bmN0aW9uKCkpCisgICAgICAgICAgICBmdW5jdG9yKGludHJpbnNpYy5pbnRyaW5zaWNGdW5j
dGlvbigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTW9kdWxlTmFtZXNwYWNl
TG9hZDogeworICAgICAgICBhdXRvJiBhY2Nlc3NDYXNlID0gdGhpcy0+YXM8TW9kdWxlTmFtZXNw
YWNlQWNjZXNzQ2FzZT4oKTsKKyAgICAgICAgaWYgKGFjY2Vzc0Nhc2UubW9kdWxlTmFtZXNwYWNl
T2JqZWN0KCkpCisgICAgICAgICAgICBmdW5jdG9yKGFjY2Vzc0Nhc2UubW9kdWxlTmFtZXNwYWNl
T2JqZWN0KCkpOworICAgICAgICBpZiAoYWNjZXNzQ2FzZS5tb2R1bGVFbnZpcm9ubWVudCgpKQor
ICAgICAgICAgICAgZnVuY3RvcihhY2Nlc3NDYXNlLm1vZHVsZUVudmlyb25tZW50KCkpOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBJbnN0YW5jZU9mSGl0OgorICAgIGNhc2UgSW5z
dGFuY2VPZk1pc3M6CisgICAgICAgIGlmIChhczxJbnN0YW5jZU9mQWNjZXNzQ2FzZT4oKS5wcm90
b3R5cGUoKSkKKyAgICAgICAgICAgIGZ1bmN0b3IoYXM8SW5zdGFuY2VPZkFjY2Vzc0Nhc2U+KCku
cHJvdG90eXBlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0
dGVyOgorICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6CisgICAgY2FzZSBMb2FkOgorICAg
IGNhc2UgVHJhbnNpdGlvbjoKKyAgICBjYXNlIFJlcGxhY2U6CisgICAgY2FzZSBNaXNzOgorICAg
IGNhc2UgR2V0R2V0dGVyOgorICAgIGNhc2UgSW5IaXQ6CisgICAgY2FzZSBJbk1pc3M6CisgICAg
Y2FzZSBBcnJheUxlbmd0aDoKKyAgICBjYXNlIFN0cmluZ0xlbmd0aDoKKyAgICBjYXNlIERpcmVj
dEFyZ3VtZW50c0xlbmd0aDoKKyAgICBjYXNlIFNjb3BlZEFyZ3VtZW50c0xlbmd0aDoKKyAgICBj
YXNlIEluc3RhbmNlT2ZHZW5lcmljOgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wg
QWNjZXNzQ2FzZTo6ZG9lc0NhbGxzKFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmtJZkRvZXND
YWxscykgY29uc3QKK3sKKyAgICBib29sIGRvZXNDYWxsczsKKyAgICBzd2l0Y2ggKHR5cGUoKSkg
eworICAgIGNhc2UgVHJhbnNpdGlvbjoKKyAgICAgICAgZG9lc0NhbGxzID0gbmV3U3RydWN0dXJl
KCktPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5
KCkgJiYgc3RydWN0dXJlKCktPmNvdWxkSGF2ZUluZGV4aW5nSGVhZGVyKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgR2V0dGVyOgogICAgIGNhc2UgU2V0dGVyOgogICAgIGNhc2UgQ3VzdG9t
VmFsdWVHZXR0ZXI6CiAgICAgY2FzZSBDdXN0b21BY2Nlc3NvckdldHRlcjoKICAgICBjYXNlIEN1
c3RvbVZhbHVlU2V0dGVyOgogICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JTZXR0ZXI6Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIGNhc2UgVHJhbnNpdGlvbjoKLSAgICAgICAgaWYgKG5ld1N0cnVj
dHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBh
Y2l0eSgpCi0gICAgICAgICAgICAmJiBzdHJ1Y3R1cmUoKS0+Y291bGRIYXZlSW5kZXhpbmdIZWFk
ZXIoKSkgewotICAgICAgICAgICAgaWYgKGNlbGxzVG9NYXJrKQotICAgICAgICAgICAgICAgIGNl
bGxzVG9NYXJrLT5hcHBlbmQobmV3U3RydWN0dXJlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZG9lc0NhbGxzID0gdHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMb2FkOgorICAgIGNhc2UgUmVwbGFjZToKKyAgICBjYXNlIE1pc3M6Cisg
ICAgY2FzZSBHZXRHZXR0ZXI6CisgICAgY2FzZSBJbnRyaW5zaWNHZXR0ZXI6CisgICAgY2FzZSBJ
bkhpdDoKKyAgICBjYXNlIEluTWlzczoKKyAgICBjYXNlIEFycmF5TGVuZ3RoOgorICAgIGNhc2Ug
U3RyaW5nTGVuZ3RoOgorICAgIGNhc2UgRGlyZWN0QXJndW1lbnRzTGVuZ3RoOgorICAgIGNhc2Ug
U2NvcGVkQXJndW1lbnRzTGVuZ3RoOgorICAgIGNhc2UgTW9kdWxlTmFtZXNwYWNlTG9hZDoKKyAg
ICBjYXNlIEluc3RhbmNlT2ZIaXQ6CisgICAgY2FzZSBJbnN0YW5jZU9mTWlzczoKKyAgICBjYXNl
IEluc3RhbmNlT2ZHZW5lcmljOgorICAgICAgICBkb2VzQ2FsbHMgPSBmYWxzZTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQorCisgICAgaWYgKGRvZXNDYWxscyAmJiBjZWxsc1RvTWFya0lmRG9lc0Nh
bGxzKSB7CisgICAgICAgIGZvckVhY2hEZXBlbmRlbnRDZWxsKFsmXShKU0NlbGwqIGNlbGwpIHsK
KyAgICAgICAgICAgIGNlbGxzVG9NYXJrSWZEb2VzQ2FsbHMtPmFwcGVuZChjZWxsKTsKKyAgICAg
ICAgfSk7CisgICAgfQorICAgIHJldHVybiBkb2VzQ2FsbHM7CiB9CiAKIGJvb2wgQWNjZXNzQ2Fz
ZTo6Y291bGRTdGlsbFN1Y2NlZWQoKSBjb25zdApAQCAtMzIxLDM4ICs0MDMsMTcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAKIGJvb2wgQWNjZXNzQ2Fz
ZTo6dmlzaXRXZWFrKFZNJiB2bSkgY29uc3QKIHsKLSAgICBpZiAobV9zdHJ1Y3R1cmUgJiYgIXZt
LmhlYXAuaXNNYXJrZWQobV9zdHJ1Y3R1cmUuZ2V0KCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4pIHsKLSAgICAgICAgZm9yIChTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA6IG1fcG9seVByb3RvQWNjZXNzQ2hhaW4tPmNoYWluKCkpIHsKLSAgICAg
ICAgICAgIGlmICghdm0uaGVhcC5pc01hcmtlZChzdHJ1Y3R1cmUpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoIW1fY29uZGl0aW9uU2V0
LmFyZVN0aWxsTGl2ZSh2bSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaXNBY2Nl
c3NvcigpKSB7CiAgICAgICAgIGF1dG8mIGFjY2Vzc29yID0gdGhpcy0+YXM8R2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZT4oKTsKICAgICAgICAgaWYgKGFjY2Vzc29yLmNhbGxMaW5rSW5mbygpKQogICAg
ICAgICAgICAgYWNjZXNzb3IuY2FsbExpbmtJbmZvKCktPnZpc2l0V2Vhayh2bSk7Ci0gICAgICAg
IGlmIChhY2Nlc3Nvci5jdXN0b21TbG90QmFzZSgpICYmICF2bS5oZWFwLmlzTWFya2VkKGFjY2Vz
c29yLmN1c3RvbVNsb3RCYXNlKCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ZWxzZSBpZiAodHlwZSgpID09IEludHJpbnNpY0dldHRlcikgewotICAgICAgICBhdXRvJiBpbnRy
aW5zaWMgPSB0aGlzLT5hczxJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlPigpOwotICAgICAgICBp
ZiAoaW50cmluc2ljLmludHJpbnNpY0Z1bmN0aW9uKCkgJiYgIXZtLmhlYXAuaXNNYXJrZWQoaW50
cmluc2ljLmludHJpbnNpY0Z1bmN0aW9uKCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gZWxzZSBpZiAodHlwZSgpID09IE1vZHVsZU5hbWVzcGFjZUxvYWQpIHsKLSAgICAgICAg
YXV0byYgYWNjZXNzQ2FzZSA9IHRoaXMtPmFzPE1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2U+KCk7
Ci0gICAgICAgIGlmIChhY2Nlc3NDYXNlLm1vZHVsZU5hbWVzcGFjZU9iamVjdCgpICYmICF2bS5o
ZWFwLmlzTWFya2VkKGFjY2Vzc0Nhc2UubW9kdWxlTmFtZXNwYWNlT2JqZWN0KCkpKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoYWNjZXNzQ2FzZS5tb2R1bGVFbnZpcm9u
bWVudCgpICYmICF2bS5oZWFwLmlzTWFya2VkKGFjY2Vzc0Nhc2UubW9kdWxlRW52aXJvbm1lbnQo
KSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSBlbHNlIGlmICh0eXBlKCkgPT0g
SW5zdGFuY2VPZkhpdCB8fCB0eXBlKCkgPT0gSW5zdGFuY2VPZk1pc3MpIHsKLSAgICAgICAgaWYg
KGFzPEluc3RhbmNlT2ZBY2Nlc3NDYXNlPigpLnByb3RvdHlwZSgpICYmICF2bS5oZWFwLmlzTWFy
a2VkKGFzPEluc3RhbmNlT2ZBY2Nlc3NDYXNlPigpLnByb3RvdHlwZSgpKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBib29sIGlzVmFs
aWQgPSB0cnVlOworICAgIGZvckVhY2hEZXBlbmRlbnRDZWxsKFsmXShKU0NlbGwqIGNlbGwpIHsK
KyAgICAgICAgaXNWYWxpZCAmPSB2bS5oZWFwLmlzTWFya2VkKGNlbGwpOworICAgIH0pOworICAg
IHJldHVybiBpc1ZhbGlkOwogfQogCiBib29sIEFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRp
b25zKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmgKaW5kZXggMTcwYWY1ZDBlNTJkMDNmMzFmYWRiMTI5ODE5MzBh
NTM4ZmRjYjA3MS4uMzUwOGY4MzlhOGNiYzJhZWE2OGI3YzczOWQzMmMxNWE2YTc4MTQ1MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCkBAIC0yMTksNiAr
MjE5LDkgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ29kZUJsb2NrOwogICAgIGZyaWVu
ZCBjbGFzcyBQb2x5bW9ycGhpY0FjY2VzczsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+CisgICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJikgY29uc3Q7
CisKICAgICBib29sIHZpc2l0V2VhayhWTSYpIGNvbnN0OwogICAgIGJvb2wgcHJvcGFnYXRlVHJh
bnNpdGlvbnMoU2xvdFZpc2l0b3ImKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAppbmRleCAzOTNmMTgyNGU0MWE0YmViNTE0YzYy
YTY5NmYzM2E4MzcyNDk1Y2RkLi43OTlmNjdhYWNlNTI0NGEyZDI2ZTdmY2I1MWU5MzIyMDg3OTI3
YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmNwcApAQCAtMTY2LDEzICsxNjYsMTMgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFyTGFzdFNl
ZW5DYWxsZWUoKQogICAgIG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuY2xlYXIoKTsKIH0K
IAotSlNPYmplY3QqIENhbGxMaW5rSW5mbzo6bGFzdFNlZW5DYWxsZWUoKQorSlNPYmplY3QqIENh
bGxMaW5rSW5mbzo6bGFzdFNlZW5DYWxsZWUoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJU
KCFpc0RpcmVjdCgpKTsKICAgICByZXR1cm4ganNDYXN0PEpTT2JqZWN0Kj4obV9sYXN0U2VlbkNh
bGxlZU9yRXhlY3V0YWJsZS5nZXQoKSk7CiB9CiAKLWJvb2wgQ2FsbExpbmtJbmZvOjpoYXZlTGFz
dFNlZW5DYWxsZWUoKQorYm9vbCBDYWxsTGlua0luZm86OmhhdmVMYXN0U2VlbkNhbGxlZSgpIGNv
bnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwogICAgIHJldHVybiAhIW1f
bGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggODk4NzVkYTJiZTIzNzAwODdkYzAxZTVhZGQ2M2E5
ZTgxYjEwZDZhZC4uMGRlMjgzNGI0OTAzNDRkNmQzNTlmOGYzZjI2NDVmN2FhYmU1MjIzMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTM0
LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNhbGxNb2RlRm9yKHN0YXRpY19j
YXN0PENhbGxUeXBlPihtX2NhbGxUeXBlKSk7CiAgICAgfQogCi0gICAgYm9vbCBpc0RpcmVjdCgp
CisgICAgYm9vbCBpc0RpcmVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gaXNEaXJl
Y3Qoc3RhdGljX2Nhc3Q8Q2FsbFR5cGU+KG1fY2FsbFR5cGUpKTsKICAgICB9CkBAIC0xNTQsNyAr
MTU0LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaXNWYXJhcmdzQ2FsbFR5cGUoc3RhdGlj
X2Nhc3Q8Q2FsbFR5cGU+KG1fY2FsbFR5cGUpKTsKICAgICB9CiAKLSAgICBib29sIGlzTGlua2Vk
KCkgeyByZXR1cm4gbV9zdHViIHx8IG1fY2FsbGVlT3JDb2RlQmxvY2s7IH0KKyAgICBib29sIGlz
TGlua2VkKCkgY29uc3QgeyByZXR1cm4gbV9zdHViIHx8IG1fY2FsbGVlT3JDb2RlQmxvY2s7IH0K
ICAgICB2b2lkIHVubGluayhWTSYpOwogCiAgICAgdm9pZCBzZXRVcENhbGwoQ2FsbFR5cGUgY2Fs
bFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGNhbGxlZUdQUikKQEAgLTIwMSw4
ICsyMDEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldExhc3RTZWVuQ2FsbGVlKFZNJiwgY29u
c3QgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSk7CiAgICAgdm9pZCBjbGVhckxhc3RT
ZWVuQ2FsbGVlKCk7Ci0gICAgSlNPYmplY3QqIGxhc3RTZWVuQ2FsbGVlKCk7Ci0gICAgYm9vbCBo
YXZlTGFzdFNlZW5DYWxsZWUoKTsKKyAgICBKU09iamVjdCogbGFzdFNlZW5DYWxsZWUoKSBjb25z
dDsKKyAgICBib29sIGhhdmVMYXN0U2VlbkNhbGxlZSgpIGNvbnN0OwogICAgIAogICAgIHZvaWQg
c2V0RXhlY3V0YWJsZUR1cmluZ0NvbXBpbGF0aW9uKEV4ZWN1dGFibGVCYXNlKik7CiAgICAgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUoKTsKQEAgLTIxNSw3ICsyMTUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNsZWFyU3R1YigpOwogCi0gICAgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUq
IHN0dWIoKQorICAgIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX3N0dWIuZ2V0KCk7CiAgICAgfQpAQCAtMzMyLDYgKzMzMiwy
MiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2NvZGVPcmlnaW47CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkIGZvckVhY2hEZXBlbmRlbnRDZWxs
KGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXNMaW5r
ZWQoKSkgeworICAgICAgICAgICAgaWYgKHN0dWIoKSkKKyAgICAgICAgICAgICAgICBzdHViKCkt
PmZvckVhY2hEZXBlbmRlbnRDZWxsKGZ1bmN0b3IpOworICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgZnVuY3RvcihtX2NhbGxlZU9yQ29kZUJsb2NrLmdldCgpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoaXNEaXJlY3QoKSkKKyAgICAgICAgICAgICAgICAgICAgZnVuY3RvcihtX2xh
c3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBpZiAoIWlzRGlyZWN0KCkgJiYgaGF2ZUxhc3RTZWVuQ2FsbGVlKCkpCisgICAg
ICAgICAgICBmdW5jdG9yKGxhc3RTZWVuQ2FsbGVlKCkpOworICAgIH0KKwogICAgIHZvaWQgdmlz
aXRXZWFrKFZNJik7CiAKICAgICB2b2lkIHNldEZyYW1lU2h1ZmZsZURhdGEoY29uc3QgQ2FsbEZy
YW1lU2h1ZmZsZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwCmluZGV4IGYzZTNhN2M2ODJiOWNk
NjMzYzkzZTUxYjU3YWViN2FjODgwOGVjNjEuLjk1MDA0NWU3ZGFmYTNmMGNjYzVhNmY2NWJhOTUw
NWFjNDA0MzFlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9P
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uLmNwcApAQCAtMTQ3LDEwICsxNDcsMTEgQEAg
Ym9vbCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbjo6aXNTdGlsbExpdmUoVk0mIHZtKSBjb25zdAog
ICAgIGlmICghKnRoaXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAoIXZt
LmhlYXAuaXNNYXJrZWQobV9vYmplY3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgcmV0dXJuIG1fY29uZGl0aW9uLmlzU3RpbGxMaXZlKHZtKTsKKyAgICBib29sIGlzU3RpbGxM
aXZlID0gdHJ1ZTsKKyAgICBmb3JFYWNoRGVwZW5kZW50Q2VsbChbJl0oSlNDZWxsKiBjZWxsKSB7
CisgICAgICAgIGlzU3RpbGxMaXZlICY9IHZtLmhlYXAuaXNNYXJrZWQoY2VsbCk7CisgICAgfSk7
CisgICAgcmV0dXJuIGlzU3RpbGxMaXZlOwogfQogCiB2b2lkIE9iamVjdFByb3BlcnR5Q29uZGl0
aW9uOjp2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmIHRyYWNrZWQp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0
UHJvcGVydHlDb25kaXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbi5oCmluZGV4IDY4OTM0ZGY1YTYzYmFlNjgzNjYyMjg5NmMzNDUz
YzEwM2NiYTE1ZjYuLjhlZTg4ZjgxYWM3MWNmMzhiOTkwNmNmYTZjMmZlNGVhYjkzZmY1OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNv
bmRpdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvbi5oCkBAIC0yNDIsNiArMjQyLDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBjb25kaXRpb24oKS53YXRjaGluZ1JlcXVpcmVzUmVwbGFjZW1lbnRXYXRjaHBv
aW50KCk7CiAgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lk
IGZvckVhY2hEZXBlbmRlbnRDZWxsKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CisgICAg
eworICAgICAgICBmdW5jdG9yKG1fb2JqZWN0KTsKKyAgICAgICAgbV9jb25kaXRpb24uZm9yRWFj
aERlcGVuZGVudENlbGwoZnVuY3Rvcik7CisgICAgfQogICAgIAogICAgIC8vIFRoaXMgbWVhbnMg
dGhhdCB0aGUgb2JqZWN0cyBpbnZvbHZlZCBpbiB0aGlzIGFyZSBzdGlsbCBsaXZlLgogICAgIGJv
b2wgaXNTdGlsbExpdmUoVk0mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCmluZGV4
IDJjNjBkNmI4MmNkZDM2OWZiNzNmNWI4OGI3YzI0M2VhMmM3OTMzNWQuLmFmMGU5YjE2MDljNDc0
N2Y1NDBlOTJiYWRkZTY4NGM0YzE2MGZjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcApA
QCAtMTQzLDExICsxNDMsMTEgQEAgYm9vbCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6bmVl
ZEltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpIGNvbnN0CiAKIGJvb2wgT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQ6OmFyZVN0aWxsTGl2ZShWTSYgdm0pIGNvbnN0CiB7Ci0gICAgZm9yIChjb25z
dCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYgY29uZGl0aW9uIDogKnRoaXMpIHsKLSAgICAgICAg
aWYgKCFjb25kaXRpb24uaXNTdGlsbExpdmUodm0pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBib29sIHN0aWxsTGl2ZSA9IHRydWU7Cisg
ICAgZm9yRWFjaERlcGVuZGVudENlbGwoWyZdKEpTQ2VsbCogY2VsbCkgeworICAgICAgICBzdGls
bExpdmUgJj0gdm0uaGVhcC5pc01hcmtlZChjZWxsKTsKKyAgICB9KTsKKyAgICByZXR1cm4gc3Rp
bGxMaXZlOwogfQogCiB2b2lkIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0OjpkdW1wSW5Db250
ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBjb250ZXh0KSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0
aW9uU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQuaAppbmRleCAwNTQyOTBjNWNlZjJiM2M0Y2U2MDQ2ZTk1N2E1YTUwOGJkNGI1
ZjZhLi5jYTcyZDcwZTI0MDMxMDNiNWRmZWViNWVmNGNkMWVmNTg0NDE5OGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQuaApAQCAtMTExLDYgKzExMSwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdHJ1
Y3R1cmVzRW5zdXJlVmFsaWRpdHlBc3N1bWluZ0ltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpIGNv
bnN0OwogICAgIAogICAgIGJvb2wgbmVlZEltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpIGNvbnN0
OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkIGZvckVhY2hEZXBl
bmRlbnRDZWxsKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CisgICAgeworICAgICAgICBm
b3IgKGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBjb25kaXRpb24gOiAqdGhpcykKKyAg
ICAgICAgICAgIGNvbmRpdGlvbi5mb3JFYWNoRGVwZW5kZW50Q2VsbChmdW5jdG9yKTsKKyAgICB9
CisKICAgICBib29sIGFyZVN0aWxsTGl2ZShWTSYpIGNvbnN0OwogICAgIAogICAgIHZvaWQgZHVt
cEluQ29udGV4dChQcmludFN0cmVhbSYsIER1bXBDb250ZXh0KikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAppbmRl
eCBhMjIzODNlNGM5ZmEyMWQ4ZmZkOGU3YjlhNDE2NGZlYWRhOTFjZDZlLi4zZGE4OWFhNzQwNzhk
MGVlYjc3ZjdiMzRkMDczM2YzYWVjYWY3ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAKQEAgLTM1MSwyMCArMzUxLDYg
QEAgYm9vbCBQcm9wZXJ0eUNvbmRpdGlvbjo6aXNXYXRjaGFibGUoCiAgICAgICAgICYmIGlzV2F0
Y2hhYmxlV2hlblZhbGlkKHN0cnVjdHVyZSwgZWZmb3J0KTsKIH0KIAotYm9vbCBQcm9wZXJ0eUNv
bmRpdGlvbjo6aXNTdGlsbExpdmUoVk0mIHZtKSBjb25zdAotewotICAgIGlmIChoYXNQcm90b3R5
cGUoKSAmJiBwcm90b3R5cGUoKSAmJiAhdm0uaGVhcC5pc01hcmtlZChwcm90b3R5cGUoKSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoaGFzUmVxdWlyZWRWYWx1ZSgpCi0g
ICAgICAgICYmIHJlcXVpcmVkVmFsdWUoKQotICAgICAgICAmJiByZXF1aXJlZFZhbHVlKCkuaXND
ZWxsKCkKLSAgICAgICAgJiYgIXZtLmhlYXAuaXNNYXJrZWQocmVxdWlyZWRWYWx1ZSgpLmFzQ2Vs
bCgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQot
CiB2b2lkIFByb3BlcnR5Q29uZGl0aW9uOjp2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tl
ZFJlZmVyZW5jZXMmIHRyYWNrZWQpIGNvbnN0CiB7CiAgICAgaWYgKGhhc1Byb3RvdHlwZSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24u
aAppbmRleCBkYjU5ZGUzY2VlNGIyMTIyNjdhMWQwYWQ3YWM1N2VlMTRkNGZmMDQxLi5lNGQ0YmY1
YTNiNjRhOTlkNDQwMjlhZjFlODVmYTNhMmU0NzY3MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uaApAQCAtMjk1LDkgKzI5NSwx
NiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gISEqdGhpcyAmJiBtX2hlYWRlci50
eXBlKCkgPT0gRXF1aXZhbGVuY2U7CiAgICAgfQotICAgIAotICAgIC8vIFRoaXMgbWVhbnMgdGhh
dCB0aGUgb2JqZWN0cyBpbnZvbHZlZCBpbiB0aGlzIGFyZSBzdGlsbCBsaXZlLgotICAgIGJvb2wg
aXNTdGlsbExpdmUoVk0mKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+
CisgICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKGhhc1Byb3RvdHlwZSgpICYmIHByb3RvdHlwZSgpKQor
ICAgICAgICAgICAgZnVuY3Rvcihwcm90b3R5cGUoKSk7CisKKyAgICAgICAgaWYgKGhhc1JlcXVp
cmVkVmFsdWUoKSAmJiByZXF1aXJlZFZhbHVlKCkgJiYgcmVxdWlyZWRWYWx1ZSgpLmlzQ2VsbCgp
KQorICAgICAgICAgICAgZnVuY3RvcihyZXF1aXJlZFZhbHVlKCkuYXNDZWxsKCkpOworICAgIH0K
ICAgICAKICAgICB2b2lkIHZhbGlkYXRlUmVmZXJlbmNlcyhjb25zdCBUcmFja2VkUmVmZXJlbmNl
cyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1BvbHlt
b3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9s
eW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwCmluZGV4IDkxYmI1ODU2ZDE3OGJlYWE0YjlmNzc5
MTdhMGNjMzVkMmJkOWMxMTYuLmVkYTYzOTVkYzYwNjA1NzAzY2JlOGY2ZmNkMWQxNWEzMDU5NDg1
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxs
U3R1YlJvdXRpbmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBo
aWNDYWxsU3R1YlJvdXRpbmUuY3BwCkBAIC0xMjksMTEgKzEyOSwxMSBAQCB2b2lkIFBvbHltb3Jw
aGljQ2FsbFN0dWJSb3V0aW5lOjpjbGVhckNhbGxOb2Rlc0ZvcihDYWxsTGlua0luZm8qIGluZm8p
CiAKIGJvb2wgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6OnZpc2l0V2VhayhWTSYgdm0pCiB7
Ci0gICAgZm9yIChhdXRvJiB2YXJpYW50IDogbV92YXJpYW50cykgewotICAgICAgICBpZiAoIXZt
LmhlYXAuaXNNYXJrZWQodmFyaWFudC5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIHJldHVybiB0cnVlOworICAgIGJvb2wgaXNTdGlsbExpdmUgPSB0cnVlOwor
ICAgIGZvckVhY2hEZXBlbmRlbnRDZWxsKFsmXShKU0NlbGwqIGNlbGwpIHsKKyAgICAgICAgaXNT
dGlsbExpdmUgJj0gdm0uaGVhcC5pc01hcmtlZChjZWxsKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
aXNTdGlsbExpdmU7CiB9CiAKIHZvaWQgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6Om1hcmtS
ZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaApp
bmRleCAyNTZhNWY2MDgxMDc4OTEwZDQ2OTE4ODRlZmNjZGMxMzhlNWQ0MjUwLi4wZTVjNzczNGRk
ZTBiOTgwMTQ0NTk0OWI3YzExZjMzZDIyMjI4ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC05NSw2ICs5
NSwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyQ2FsbE5vZGVzRm9yKENhbGxMaW5rSW5m
byopOwogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBmb3JF
YWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAg
Zm9yIChhdXRvJiB2YXJpYW50IDogbV92YXJpYW50cykKKyAgICAgICAgICAgIGZ1bmN0b3IodmFy
aWFudC5nZXQoKSk7CisgICAgfQorCiAgICAgYm9vbCB2aXNpdFdlYWsoVk0mKSBvdmVycmlkZTsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCA2ODhjZDkyYjA0NGZjNjZmMmRjODgyY2I3YzUxZDhlMDc0MzdlNzIzLi4w
NDAzZTNlMjZlNmYyYTQ5ZjRhZjdkMGI2ZThhMTFiYTJiM2Y3NDY0IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE5LTA5LTIwICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAg
IEFjY2Vzc0Nhc2Ugc2hvdWxkIHN0cm9uZ2x5IHZpc2l0IGl0cyBkZXBlbmRlbmNpZXMgd2hpbGUg
b24gc3RhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMTk4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU1MjE5NTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FhbSBCYXJhdGkgYW5kIFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBzdHJl
c3MvZnRsLXB1dC1ieS1pZC1zZXR0ZXItZXhjZXB0aW9uLWludGVyZXN0aW5nLWxpdmUtc3RhdGUt
Mi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAod2FybXVwKToKKwogMjAxOS0w
OS0xNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBKU09iamVj
dDo6cHV0SW5saW5lU2xvdyBzaG91bGQgbm90IGlnbm9yZSAiX19wcm90b19fIiBmb3IgUHJveHkK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Z0bC1wdXQtYnktaWQtc2V0dGVyLWV4Y2VwdGlv
bi1pbnRlcmVzdGluZy1saXZlLXN0YXRlLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5
LWlkLXNldHRlci1leGNlcHRpb24taW50ZXJlc3RpbmctbGl2ZS1zdGF0ZS0yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNhOWUzYTUyOWU2ZDM5OGU2MDZkZmZmZjdhZjczOTEyNmZiZDY2NzUKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9mdGwtcHV0LWJ5LWlkLXNldHRlci1leGNlcHRpb24taW50
ZXJlc3RpbmctbGl2ZS1zdGF0ZS0yLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Z1bmN0aW9uIGZvbyhv
LCBwKSB7CisgICAgdmFyIHggPSAxMDA7CisgICAgdmFyIHJlc3VsdCA9IDEwMTsKKyAgICB2YXIg
cGYgPSBwLmc7CisgICAgdHJ5IHsKKyAgICAgICAgeCA9IDEwMjsKKyAgICAgICAgcGYrKzsKKyAg
ICAgICAgby5mID0geCArIHBmOworICAgICAgICBvID0gMTA0OworICAgICAgICBwZisrOworICAg
ICAgICB4ID0gMTA2OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIHtvdXRjb21l
OiAiZXhjZXB0aW9uIiwgdmFsdWVzOiBbbywgcGYsIHhdfTsKKyAgICB9CisgICAgcmV0dXJuIHtv
dXRjb21lOiAicmV0dXJuIiwgdmFsdWVzOiBbbywgcGYsIHhdfTsKK30KKworbm9JbmxpbmUoZm9v
KTsKKworZnVuY3Rpb24gd2FybXVwKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmlu
ZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgdGhpcy5fZiA9IHZhbHVl
OworICAgIH0pOworICAgIGlmIChpICYgMSkKKyAgICAgICAgb1siaSIgKyBpXSA9IGk7IC8vIE1h
a2UgaXQgcG9seW1vcnBoaWMuCisgICAgdmFyIHJlc3VsdCA9IGZvbyhvLCB7ZzoyMDB9KTsKK30K
K25vSW5saW5lKHdhcm11cCk7CisKKy8vIFdhcm0gdXAgZm9vKCkgd2l0aCBwb2x5bW9ycGhpYyBv
YmplY3RzIGFuZCBnZXR0ZXJzLgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHdhcm11cCgpOworfQorCit2YXIgbyA9IHt9Oworby5fX2RlZmluZVNldHRlcl9fKCJmIiwg
ZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgIkVycm9yNDIiOworfSk7Cit2YXIgcmVzdWx0ID0gZm9v
KG8sIHtnOjMwMH0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>