<?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>239332</bug_id>
          
          <creation_ts>2022-04-14 06:56:20 -0700</creation_ts>
          <short_desc>[JSC] ShadowRealm global object has a mutable prototype</short_desc>
          <delta_ts>2022-04-14 16:41:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caitlin Potter (:caitp)">caitp</reporter>
          <assigned_to name="Caitlin Potter (:caitp)">caitp</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</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>1861468</commentid>
    <comment_count>0</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 06:56:20 -0700</bug_when>
    <thetext>[JSC] ShadowRealm global object has a mutable prototype</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861469</commentid>
    <comment_count>1</comment_count>
      <attachid>457622</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 06:57:02 -0700</bug_when>
    <thetext>Created attachment 457622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861490</commentid>
    <comment_count>2</comment_count>
      <attachid>457622</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 07:36:56 -0700</bug_when>
    <thetext>Comment on attachment 457622
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        In addition, it uses the new JSGlobalObject::m_isOrdinaryObject bit to indicate this feature

this is also pretty hacky, maybe this makes more sense as a StructureFlag. It&apos;s not clear if we really need this, when we could just remove the assert in all cases.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3210
&gt; +            push(@headerContent, &quot;    static constexpr unsigned StructureFlags = (Base::StructureFlags &amp; ~JSC::IsImmutablePrototypeExoticObject)&quot;);

alternative plan: remove the ImmutablePrototypeExoticObject bit from JSGlobalObject (or explicitly spell out StructureFlags for JSDOMGlobalObject, without the ImmutablePrototypeExoticObject bit), and add it explicitly in classes which inherit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861491</commentid>
    <comment_count>3</comment_count>
      <attachid>457622</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 07:36:58 -0700</bug_when>
    <thetext>Comment on attachment 457622
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        In addition, it uses the new JSGlobalObject::m_isOrdinaryObject bit to indicate this feature

this is also pretty hacky, maybe this makes more sense as a StructureFlag. It&apos;s not clear if we really need this, when we could just remove the assert in all cases.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3210
&gt; +            push(@headerContent, &quot;    static constexpr unsigned StructureFlags = (Base::StructureFlags &amp; ~JSC::IsImmutablePrototypeExoticObject)&quot;);

alternative plan: remove the ImmutablePrototypeExoticObject bit from JSGlobalObject (or explicitly spell out StructureFlags for JSDOMGlobalObject, without the ImmutablePrototypeExoticObject bit), and add it explicitly in classes which inherit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861608</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-14 13:06:40 -0700</bug_when>
    <thetext>Need to include a change to the expected result WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.h in the patch. Can generate it with run-bindings-test --reset-results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861614</commentid>
    <comment_count>5</comment_count>
      <attachid>457622</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-14 13:27:25 -0700</bug_when>
    <thetext>Comment on attachment 457622
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1921
&gt; +    // Default realm global objects should have mutable prototypes despite having
&gt; +    // a Proxy globalThis.
&gt; +    ASSERT((this-&gt;isGlobalObject() &amp;&amp; this-&gt;globalObject()-&gt;isOrdinaryObject())
&gt; +        || methodTable(vm)-&gt;toThis(this, globalObject, ECMAMode::sloppy()) == this);

How about just checking `this-&gt;isGlobalObject() || (methodTable(vm)-&gt;toThis(this, globalObject, ECMAMode::sloppy()) == this)`?
GlobalObject has isImmutablePrototypeExoticObject bit by default. So, reaching here only when we have an exceptional global object (ShadowRealmGlobalObject).
If we have a comment about it, then I think `this-&gt;isGlobalObject()` is enough and we do not need to have isOrdinaryObject() and its bool field :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861615</commentid>
    <comment_count>6</comment_count>
      <attachid>457622</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 13:32:12 -0700</bug_when>
    <thetext>Comment on attachment 457622
Patch

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

(In reply to Darin Adler from comment #4)
&gt; Need to include a change to the expected result
&gt; WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.h in the patch.
&gt; Can generate it with run-bindings-test --reset-results.

Yep, I&apos;ve got that done locally -- I&apos;m a bit worried about changing these static class properties in case we want to do anything like accessing this metadata at compile time, so I was thinking a refactoring might be preferable... But if that doesn&apos;t matter, then I think the hacky version is fine.

&gt;&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1921
&gt;&gt; +        || methodTable(vm)-&gt;toThis(this, globalObject, ECMAMode::sloppy()) == this);
&gt; 
&gt; How about just checking `this-&gt;isGlobalObject() || (methodTable(vm)-&gt;toThis(this, globalObject, ECMAMode::sloppy()) == this)`?
&gt; GlobalObject has isImmutablePrototypeExoticObject bit by default. So, reaching here only when we have an exceptional global object (ShadowRealmGlobalObject).
&gt; If we have a comment about it, then I think `this-&gt;isGlobalObject()` is enough and we do not need to have isOrdinaryObject() and its bool field :)

SGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861633</commentid>
    <comment_count>7</comment_count>
      <attachid>457649</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 14:44:07 -0700</bug_when>
    <thetext>Created attachment 457649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861637</commentid>
    <comment_count>8</comment_count>
      <attachid>457649</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-14 15:09:39 -0700</bug_when>
    <thetext>Comment on attachment 457649
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.cpp:1920
&gt; +    ASSERT((this-&gt;isGlobalObject() &amp;&amp; this-&gt;globalObject()-&gt;isOrdinaryObject())

isOrdinaryObject should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861640</commentid>
    <comment_count>9</comment_count>
      <attachid>457650</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2022-04-14 15:20:03 -0700</bug_when>
    <thetext>Created attachment 457650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861663</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-14 16:40:15 -0700</bug_when>
    <thetext>Committed r292895 (249665@main): &lt;https://commits.webkit.org/249665@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457650.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861664</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-14 16:41:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91785145&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457622</attachid>
            <date>2022-04-14 06:57:02 -0700</date>
            <delta_ts>2022-04-14 14:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239332-20220414095700.patch</filename>
            <type>text/plain</type>
            <size>13758</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ODJhOTQzYzZlNDliZDFlZjkwZjg3NDg4NWM2NDBlYzg4NmFjOWI3Li4xNTAyZmU4YTQ0MmM4NWQy
MTI2ZDllZDhlN2NjYWEyMmYyNTY5YTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wNC0xMyAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIFNoYWRvd1JlYWxtIGdsb2JhbCBvYmplY3QgaGFzIGEgbXV0YWJs
ZSBwcm90b3R5cGUKKyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBiaXQgdG8gSlNH
bG9iYWxPYmplY3QgdG8gaW5kaWNhdGUgdGhhdCB0aGUgb2JqZWN0IGlzIHNpbWlsYXIgdG8gYW4g
b3JkaW5hcnkgSlNPYmplY3QsIGluIHNwZWMgdGVybXMuCisKKyAgICAgICAgV2UgdXNlIHRoaXMg
aW4gV2ViQ29yZSB0byBzZXQgdGhlIFdlYklETC1hdWdtZW50ZWQgdmVyc2lvbiBvZiB0aGUgU2hh
ZG93UmVhbG0gZ2xvYmFsIG9iamVjdCB0byBiZWhhdmUgdGhlIHdheQorICAgICAgICB0aGUgc3Bl
YyBtYW5kYXRlcyAoZ2xvYmFsIG9iamVjdCBhcHBlYXJzIHRvIGJlIGEgcGxhaW4gb2JqZWN0IHdp
dGggYSBtdXRhYmxlIHByb3RvdHlwZSkuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIHRoZSBKU0Mg
aW50ZXJuYWwgdmVyc2lvbiBpcyBhbHNvIG1vZGlmaWVkIHRvIGhhdmUgYSBtdXRhYmxlIHByb3Rv
dHlwZSBpbiB0aGUgc2FtZSB3YXkuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpkZXJpdmVTaGFkb3dSZWFsbUdsb2Jh
bE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppc09yZGluYXJ5T2JqZWN0
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZUZv
clNoYWRvd1JlYWxtKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKToKKwogMjAyMi0wNC0x
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgY2Fs
bHMgdG8gc3Vic3RyaW5nKDAsIHgpIHdpdGggdGhlIG1vcmUgY29uY2lzZSBsZWZ0KHgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2ZlNGE5ZjdlZjJiNjYyMzdmYjdkNTQ0NDEyNTI5MDhlMmI3NTViYS4uZTJjZGQ0
NTFmMWU2OWRiMzk4YzIzNGVmZWVjZDZiZjdjMzQ0YmViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDIyLTA0LTEzICBDYWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0pTQ10gU2hhZG93UmVhbG0gZ2xvYmFsIG9iamVjdCBoYXMgYSBtdXRhYmxlIHBy
b3RvdHlwZQorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIGhhY2sgOiggVGhl
IElETCBnZW5lcmF0b3Igbm93IHNwZWNpYWwgY2FzZXMgU2hhZG93UmVhbG1HbG9iYWxPYmplY3Qg
dG8gcmVtb3ZlIHRoZSAKKyAgICAgICAgSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0IGJp
dCBmcm9tIHRoZSBpbmhlcml0ZWQgSlNHbG9iYWxPYmplY3Qgc3RydWN0dXJlIGZsYWdzLgorCisg
ICAgICAgIEluIGFkZGl0aW9uLCBpdCB1c2VzIHRoZSBuZXcgSlNHbG9iYWxPYmplY3Q6Om1faXNP
cmRpbmFyeU9iamVjdCBiaXQgdG8gaW5kaWNhdGUgdGhpcyBmZWF0dXJlCisgICAgICAgIGFuZCBh
bGxvdyB0aGUgU2V0UHJvdG90eXBlIG9wZXJhdGlvbiB0byBvY2N1ciB3aGVuIEFTU0VSVHMgYXJl
IGVuYWJsZWQuIFRoaXMgd2lsbCBwcm9iYWJseSBiZQorICAgICAgICByZWZhY3RvcmVkIG1vcmUg
Y2xlYW5seSBiZWZvcmUgbGFuZGluZy4KKworICAgICAgICBUZXN0OiBqcy9TaGFkb3dSZWFsbS1n
bG9iYWxUaGlzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9i
YWxTY29wZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlQmFzZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
CisKIDIwMjItMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cG9zZSB3b3JrZXJzIGFzIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgYW5kIGltcGxlbWVu
dCByZWdpc3RyYXRpb24gbWF0Y2hpbmcgZm9yIGRlZGljYXRlZCB3b3JrZXJzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzNzE4MDJhMDZi
NTVmMzY1M2M3OWEzYmY5ZmFhN2UwZTk1MzRjZWIyLi5mNmMyYmMzNTZjNTY0M2FmNTZhZDJlYzQw
MTEzNjVmZWRkY2YxMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKQEAgLTU5MCw2ICs1OTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2V2
YWxFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93ZWJBc3NlbWJseUVuYWJsZWQgeyB0cnVl
IH07CiAgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNPcmRpbmFyeU9iamVjdCB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV9nbG9iYWxM
ZXhpY2FsQmluZGluZ0Vwb2NoIHsgMSB9OwogICAgIFN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9y
TWVzc2FnZTsKICAgICBTdHJpbmcgbV93ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlOwpA
QCAtMTA5OSw3ICsxMTAwLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0dsb2JhbE9iamVjdCog
ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICB7CiAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAg
ICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21NZXRob2RUYWJsZSh2bSwg
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBnbG9iYWxPYmpl
Y3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgICAgICBKU0dsb2JhbE9iamVjdCog
cmVzdWx0ID0gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVdpdGhDdXN0b21NZXRob2RUYWJsZSh2bSwg
SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZUZvclNoYWRvd1JlYWxtKHZtLCBqc051bGwo
KSksIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKSk7CisgICAgICAgIHJl
c3VsdC0+bV9pc09yZGluYXJ5T2JqZWN0ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNH
bG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMTEyLDYgKzExMTUsNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIGV2YWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsRW5hYmxl
ZDsgfQogICAgIGJvb2wgd2ViQXNzZW1ibHlFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV93ZWJB
c3NlbWJseUVuYWJsZWQ7IH0KKyAgICBib29sIGlzT3JkaW5hcnlPYmplY3QoKSBjb25zdCB7IHJl
dHVybiBtX2lzT3JkaW5hcnlPYmplY3Q7IH0KICAgICBjb25zdCBTdHJpbmcmIGV2YWxEaXNhYmxl
ZEVycm9yTWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdl
OyB9CiAgICAgY29uc3QgU3RyaW5nJiB3ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV93ZWJBc3NlbWJseURpc2FibGVkRXJyb3JNZXNzYWdlOyB9CiAgICAg
dm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVuYWJsZWQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCkpCkBAIC0xMTQzLDYgKzExNDcsMTIgQEAgcHVibGljOgogICAgICAgICBy
ZXN1bHQtPnNldFRyYW5zaXRpb25XYXRjaHBvaW50SXNMaWtlbHlUb0JlRmlyZWQodHJ1ZSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZUZvclNoYWRvd1JlYWxtKFZNJiB2bSwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICBTdHJ1Y3R1cmUqIHJlc3VsdCA9IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBudWxs
cHRyLCBwcm90b3R5cGUsIFR5cGVJbmZvKEdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
ICYgfklzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0KSwgaW5mbygpKTsKKyAgICAgICAg
cmVzdWx0LT5zZXRUcmFuc2l0aW9uV2F0Y2hwb2ludElzTGlrZWx5VG9CZUZpcmVkKHRydWUpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIHZvaWQgcmVnaXN0ZXJXZWFrTWFw
KE9wYXF1ZUpTV2Vha09iamVjdE1hcCogbWFwKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCAyZTlmYzUzMzE5MWEzNzc0Mjc2ZjA1YWZjOGFm
ODY3M2Q1ZjU5ZmZhLi4xYzM4Y2RlY2RjYTdkMWRkZWZkM2MxMTJlZWVmNjRkNDgwOTVmNTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xOTE1LDcg
KzE5MTUsMTAgQEAgYm9vbCBKU09iamVjdDo6c2V0UHJvdG90eXBlV2l0aEN5Y2xlQ2hlY2soVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHNob3VsZFRocm93SWZDYW50U2V0LCAiQ2Fubm90IHNl
dCBwcm90b3R5cGUgb2YgaW1tdXRhYmxlIHByb3RvdHlwZSBvYmplY3QiX3MpOwogICAgIH0KIAot
ICAgIEFTU0VSVChtZXRob2RUYWJsZSh2bSktPnRvVGhpcyh0aGlzLCBnbG9iYWxPYmplY3QsIEVD
TUFNb2RlOjpzbG9wcHkoKSkgPT0gdGhpcyk7CisgICAgLy8gRGVmYXVsdCByZWFsbSBnbG9iYWwg
b2JqZWN0cyBzaG91bGQgaGF2ZSBtdXRhYmxlIHByb3RvdHlwZXMgZGVzcGl0ZSBoYXZpbmcKKyAg
ICAvLyBhIFByb3h5IGdsb2JhbFRoaXMuCisgICAgQVNTRVJUKCh0aGlzLT5pc0dsb2JhbE9iamVj
dCgpICYmIHRoaXMtPmdsb2JhbE9iamVjdCgpLT5pc09yZGluYXJ5T2JqZWN0KCkpCisgICAgICAg
IHx8IG1ldGhvZFRhYmxlKHZtKS0+dG9UaGlzKHRoaXMsIGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6
OnNsb3BweSgpKSA9PSB0aGlzKTsKIAogICAgIGlmICh0aGlzLT5nZXRQcm90b3R5cGVEaXJlY3Qo
dm0pID09IHByb3RvdHlwZSkKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGVCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uu
Y3BwCmluZGV4IDMzMDRiN2I4ODhlOWNhM2I1ZTRmZTNlMzdmODNhYTllY2IyYjQ0N2QuLjAwMGU3
YTMzNzc5YmVhNGI1ZGM1ZGZhOGUwNzFjYTRlN2UxNTRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2Uu
Y3BwCkBAIC03NCw2ICs3NCw3IEBAIEpTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2U6OkpTU2hh
ZG93UmVhbG1HbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RyCiAgICAgOiBKU0RP
TUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCBub3JtYWxXb3JsZCh2bSksICZzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKQogICAgICwgbV93cmFwcGVkKFdURk1vdmUoaW1wbCkpCiB7CisgICAg
bV9pc09yZGluYXJ5T2JqZWN0ID0gdHJ1ZTsKIH0KIAogdm9pZCBKU1NoYWRvd1JlYWxtR2xvYmFs
U2NvcGVCYXNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTUHJveHkqIHByb3h5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCBjNDVmY2FiYmMyM2Q2MjViMmJjZmVlZWRlYWExODVmYjZjMTcyMmQ3Li42MGIwM2E1MDA5ODQ2
YTgxMzk0NWZlM2MwNDM4MWVlNTdhZjNhODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzIwNSw3ICszMjA1LDEyIEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgc3RydWN0dXJlIGZsYWdzCiAgICAgaWYgKCVzdHJ1
Y3R1cmVGbGFncykgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIik7CisgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiU2hhZG93UmVhbG1HbG9iYWxTY29wZSIpIHsKKyAgICAgICAg
ICAgICMgSGFjayB0byBtYWtlIFNoYWRvd1JlYWxtR2xvYmFsU2NvcGUgYSBkZWZhdWx0IHJlYWxt
IGdsb2JhbCBvYmplY3QgKG5vdCBhbiBJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QpCisg
ICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSAoQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SlNDOjpJc0lt
bXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCkiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIik7CisgICAgICAgIH0KICAg
ICAgICAgZm9yZWFjaCBteSAkc3RydWN0dXJlRmxhZyAoc29ydCAoa2V5cyAlc3RydWN0dXJlRmxh
Z3MpKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIHwgIiAuICRzdHJ1Y3R1
cmVGbGFnKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZkMWYxYWMwYTk5NDMzNWVmYTVjMjhlNmI2M2Q3
ZmI1ZGFiODA3NTIuLjQzZGJjOTk4MmU1MzUzMjdhZjY2N2VmYTFlMjJjNzViZDUyNmQ5NDMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wNC0xMyAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIFNoYWRvd1JlYWxtIGdsb2JhbCBvYmplY3QgaGFz
IGEgbXV0YWJsZSBwcm90b3R5cGUKKyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgY2hhbmdlcyB0byB2ZXJpZnkgdGhhdCBTaGFkb3dSZWFs
bUdsb2JhbE9iamVjdCBoYXMgYSBwcm9wZXJseQorICAgICAgICBtdXRhYmxlIHByb3RvdHlwZS4K
KworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWdsb2JhbFRoaXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1nbG9iYWxUaGlzLmh0bWw6IEFkZGVkLgorCiAy
MDIyLTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBF
eHBvc2Ugd29ya2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGllbnRzIGFuZCBpbXBsZW1lbnQgcmVn
aXN0cmF0aW9uIG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFsVGhpcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9TaGFkb3dSZWFsbS1nbG9iYWxUaGlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZTk4ZTgxYzE2ZTQzOWMxODY4YjhhNTdkY2IwOThmNDEwZmMwNGE4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFsVGhpcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93
UmVhbG0gZ2xvYmFsIHNjb3BlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykgPT09IE9iamVjdC5wcm90b3R5cGUKK2dsb2Jh
bFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9OworT2JqZWN0LnNldFByb3RvdHlw
ZU9mKGdsb2JhbFRoaXMsIHsgY2h1Y2tsZTogImJ1Y2tsZSIgfSk7CitSZWZsZWN0LnNldFByb3Rv
dHlwZU9mKGdsb2JhbFRoaXMsIHsgem9vOiAibW9vIiB9KTsKKworUEFTUyBTaGFkb3dSZWFsbSBn
bG9iYWwgc2NvcGUgaXMgYW4gb3JkaW5hcnkgb2JqZWN0CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL1NoYWRvd1JlYWxtLWdsb2JhbFRoaXMuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRv
d1JlYWxtLWdsb2JhbFRoaXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjkxOGMzNDFhZDQ1NWFjODk1MDM3
Mzc4ZGExYTVjMWUzMmQzYmRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hh
ZG93UmVhbG0tZ2xvYmFsVGhpcy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVj
dCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0gZ2xvYmFsIHNjb3BlIik7CisKKyAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNvbnN0IGJvb3RzdHJhcCA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgY29uc3Qgc2hhZG93UmVhbG0gPSBuZXcgU2hhZG93UmVhbG07CisgICAg
ICAgICAgICBjb25zdCBpbnN0YWxsID0gc2hhZG93UmVhbG0uZXZhbHVhdGUoYChmdW5jdGlvbihu
YW1lLCBmbikgeworICAgICAgICAgICAgICAgIGdsb2JhbFRoaXNbbmFtZV0gPSBmbjsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9KWApOworICAgICAgICAgICAgaW5zdGFs
bCgiZGVidWciLCAoLi4uYXJncykgPT4geyBkZWJ1ZyguLi5hcmdzKTsgfSk7CisgICAgICAgICAg
ICByZXR1cm4gc2hhZG93UmVhbG07CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZyhgT2JqZWN0
LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpID09PSBPYmplY3QucHJvdG90eXBlYCk7CisgICAg
ICAgIGxldCBzaGFkb3dSZWFsbSA9IGJvb3RzdHJhcCgpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNoYWRvd1JlYWxtLmV2YWx1YXRlKCJPYmplY3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykg
PT09IE9iamVjdC5wcm90b3R5cGUiKSwgdHJ1ZSk7CisKKyAgICAgICAgZGVidWcoYGdsb2JhbFRo
aXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9O2ApOworICAgICAgICBzaGFkb3dSZWFs
bS5ldmFsdWF0ZShgdHJ5IHsKKyAgICAgICAgICAgIGdsb2JhbFRoaXMuX19wcm90b19fID0geyBh
bHBoYTogIm9tZWdhIiB9OworICAgICAgICAgICAgIm9rIjsKKyAgICAgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICAgICAgZGVidWcoIkZhaWxlZCB0byBzZXQgZ2xvYmFsVGhpcy5fX3Byb3RvX18i
KTsKKyAgICAgICAgfWApOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1JlYWxtLmV2YWx1
YXRlKCJnbG9iYWxUaGlzLmFscGhhIiksICJvbWVnYSIpOworCisgICAgICAgIGRlYnVnKGBPYmpl
Y3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyBjaHVja2xlOiAiYnVja2xlIiB9KTtgKTsK
KyAgICAgICAgc2hhZG93UmVhbG0gPSBib290c3RyYXAoKTsKKyAgICAgICAgc2hhZG93UmVhbG0u
ZXZhbHVhdGUoYHRyeSB7CisgICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFs
VGhpcywgeyBjaHVja2xlOiAiYnVja2xlIiB9KTsKKyAgICAgICAgICAgICJvayI7CisgICAgICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCJGYWlsdXJlIGluIE9iamVjdC5zZXRQ
cm90b3R5cGVPZihnbG9iYWxUaGlzKSIpOworICAgICAgICB9YCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2hhZG93UmVhbG0uZXZhbHVhdGUoImdsb2JhbFRoaXMuY2h1Y2tsZSIpLCAiYnVja2xl
Iik7CisKKyAgICAgICAgZGVidWcoYFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywg
eyB6b286ICJtb28iIH0pO2ApOworICAgICAgICBzaGFkb3dSZWFsbSA9IGJvb3RzdHJhcCgpOwor
ICAgICAgICBzaGFkb3dSZWFsbS5ldmFsdWF0ZShgdHJ5IHsKKyAgICAgICAgICAgIFJlZmxlY3Qu
c2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyB6b286ICJtb28iIH0pOworICAgICAgICAgICAg
Im9rIjsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZGVidWcoIkZhaWx1cmUg
aW4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKSIpOworICAgICAgICB9YCk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93UmVhbG0uZXZhbHVhdGUoImdsb2JhbFRoaXMuem9v
IiksICJtb28iKTsKKyAgICB9LCAiU2hhZG93UmVhbG0gZ2xvYmFsIHNjb3BlIGlzIGFuIG9yZGlu
YXJ5IG9iamVjdCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ1M2Y0YThlZjNjYzVk
MjY0YWNmM2NmYzNmOTg0NzBmZGJmNTFiMGQuLmUxYzA1YmQ0OGQzMzBmZDc4YTUzMmM1ZWMwNzJh
OTY0M2Y5YzQ5M2UgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVyICA8
Y2FpdHBAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwgb2Jq
ZWN0IGhhcyBhIG11dGFibGUgcHJvdG90eXBlCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9P
UFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9zaGFkb3ctcmVhbG0tZ2xvYmFsVGhpcy1tdXRhYmxlLXByb3RvdHlwZS5qczogQWRk
ZWQuCisKIDIwMjItMDQtMTIgIEFkaXRpIFNpbmdoICA8YXNpbmdoQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IENoYW5nZSBBcnJheSBieSBjb3B5IHByb3Bvc2FsCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctcmVhbG0tZ2xvYmFsVGhpcy1tdXRhYmxlLXByb3RvdHlw
ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1yZWFsbS1nbG9iYWxUaGlzLW11dGFibGUtcHJv
dG90eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MWI4Y2Q1MDI4MDE3NGE2NjM1YjlmZDE0YTJhMjA3MjI5
Mjg2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctcmVhbG0tZ2xv
YmFsVGhpcy1tdXRhYmxlLXByb3RvdHlwZS5qcwpAQCAtMCwwICsxLDM5IEBACisvL0AgcmVxdWly
ZU9wdGlvbnMoIi0tdXNlU2hhZG93UmVhbG09MSIpCisKK2xldCBzciA9IG5ldyBTaGFkb3dSZWFs
bTsKKworbGV0IGluc3RhbGwgPSBzci5ldmFsdWF0ZShgCisoZnVuY3Rpb24obmFtZSwgZm4pIHsK
KyAgZ2xvYmFsVGhpc1tuYW1lXSA9IGZuOworfSkKK2ApOworCitsZXQgbG9nID0gZnVuY3Rpb24o
Li4uYXJncykgeworICBsZXQgc3RyaW5nID0gYXJncy5qb2luKCIgIik7CisgIHByaW50KHN0cmlu
Zyk7CisgIHJldHVybiBzdHJpbmc7Cit9OworaW5zdGFsbCgibG9nIiwgbG9nKTsKKworLy8gVGVz
dCB0aGF0IHRoZSBHbG9iYWxPYmplY3QgcHJvdG90eXBlIGlzIG5vdCBpbW11dGFibGUsIAorbGV0
IE1BWF9JVEVSID0gMTAwMDA7Citzci5ldmFsdWF0ZShgCisgIHZhciBpID0gMTsKKyAgZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICBnbG9iYWxUaGlzLl9fcHJvdG9fXyA9IHsgeDogaSsrIH07CisgIH0K
KyAgZm9yIChsZXQgaSA9IDA7IGkgPCAke01BWF9JVEVSfTsgKytpKSB7CisgICAgdHJ5IHsKKyAg
ICAgIHRlc3QoKTsKKyAgICAgIGlmIChnbG9iYWxUaGlzLnggIT09IGkgKyAxKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoXGBQcm90b3R5cGUgbm90IHdyaXR0ZW4gc3VjY2Vzc2Z1bGx5IChFeHBl
Y3RlZCBnbG9iYWxUaGlzLnggPT09IFwke2kgKyAxfSwgYnV0IGZvdW5kIFwke2dsb2JhbFRoaXMu
eH0pXGApOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGxvZyhcYFwke2V9XGApOworICAgICAg
dGhyb3cgZTsKKyAgICB9CisgIH0KK2ApOworCitpZiAoc3IuZXZhbHVhdGUoYGdsb2JhbFRoaXMu
eGApICE9PSBNQVhfSVRFUikKKyAgdGhyb3cgbmV3IEVycm9yKCJQcm90b3R5cGUgaW52YWxpZCBp
biBzZXBhcmF0ZSBldmFsIik7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457649</attachid>
            <date>2022-04-14 14:44:07 -0700</date>
            <delta_ts>2022-04-14 15:37:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239332-20220414174405.patch</filename>
            <type>text/plain</type>
            <size>13323</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ODJhOTQzYzZlNDliZDFlZjkwZjg3NDg4NWM2NDBlYzg4NmFjOWI3Li41ZGVkMGUwMTU2MTZiZDlm
MzEzOGJiODg1MjdhOTliODBhNDY1MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMi0wNC0xNCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIFNoYWRvd1JlYWxtIGdsb2JhbCBvYmplY3QgaGFzIGEgbXV0YWJs
ZSBwcm90b3R5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZHMgYSBiaXQgdG8gSlNHbG9iYWxPYmplY3QgdG8gaW5kaWNhdGUgdGhhdCB0aGUgb2Jq
ZWN0IGlzIHNpbWlsYXIgdG8gYW4gb3JkaW5hcnkgSlNPYmplY3QsIGluIHNwZWMgdGVybXMuCisK
KyAgICAgICAgV2UgdXNlIHRoaXMgaW4gV2ViQ29yZSB0byBzZXQgdGhlIFdlYklETC1hdWdtZW50
ZWQgdmVyc2lvbiBvZiB0aGUgU2hhZG93UmVhbG0gZ2xvYmFsIG9iamVjdCB0byBiZWhhdmUgdGhl
IHdheQorICAgICAgICB0aGUgc3BlYyBtYW5kYXRlcyAoZ2xvYmFsIG9iamVjdCBhcHBlYXJzIHRv
IGJlIGEgcGxhaW4gb2JqZWN0IHdpdGggYSBtdXRhYmxlIHByb3RvdHlwZSkuCisKKyAgICAgICAg
SW4gYWRkaXRpb24sIHRoZSBKU0MgaW50ZXJuYWwgdmVyc2lvbiBpcyBhbHNvIG1vZGlmaWVkIHRv
IGhhdmUgYSBtdXRhYmxlIHByb3RvdHlwZSBpbiB0aGUgc2FtZSB3YXkuCisKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojpk
ZXJpdmVTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppc09yZGluYXJ5T2JqZWN0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZUZvclNoYWRvd1JlYWxtKToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnNldFByb3RvdHlwZVdpdGhDeWNs
ZUNoZWNrKToKKwogMjAyMi0wNC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlcGxhY2UgY2FsbHMgdG8gc3Vic3RyaW5nKDAsIHgpIHdpdGggdGhlIG1vcmUg
Y29uY2lzZSBsZWZ0KHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZlNGE5ZjdlZjJiNjYyMzdmYjdkNTQ0NDEy
NTI5MDhlMmI3NTViYS4uOWM0NmIyMTIwYjA1YjkzZWE4NmVmOTFlMGFhOTBmM2ViMWJiNmY5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA0LTE0ICBDYWl0bGluIFBvdHRlciAg
PGNhaXRwQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ10gU2hhZG93UmVhbG0gZ2xvYmFsIG9i
amVjdCBoYXMgYSBtdXRhYmxlIHByb3RvdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIGhhY2sgOiggVGhlIElETCBnZW5lcmF0b3Ig
bm93IHNwZWNpYWwgY2FzZXMgU2hhZG93UmVhbG1HbG9iYWxPYmplY3QgdG8gcmVtb3ZlIHRoZSAK
KyAgICAgICAgSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0IGJpdCBmcm9tIHRoZSBpbmhl
cml0ZWQgSlNHbG9iYWxPYmplY3Qgc3RydWN0dXJlIGZsYWdzLgorCisgICAgICAgIEluIGFkZGl0
aW9uLCBpdCB1c2VzIHRoZSBuZXcgSlNHbG9iYWxPYmplY3Q6Om1faXNPcmRpbmFyeU9iamVjdCBi
aXQgdG8gaW5kaWNhdGUgdGhpcyBmZWF0dXJlCisgICAgICAgIGFuZCBhbGxvdyB0aGUgU2V0UHJv
dG90eXBlIG9wZXJhdGlvbiB0byBvY2N1ciB3aGVuIEFTU0VSVHMgYXJlIGVuYWJsZWQuIFRoaXMg
d2lsbCBwcm9iYWJseSBiZQorICAgICAgICByZWZhY3RvcmVkIG1vcmUgY2xlYW5seSBiZWZvcmUg
bGFuZGluZy4KKworICAgICAgICBUZXN0OiBqcy9TaGFkb3dSZWFsbS1nbG9iYWxUaGlzLmh0bWwK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlQmFzZTo6SlNTaGFk
b3dSZWFsbUdsb2JhbFNjb3BlQmFzZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisKIDIwMjItMDQtMTQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSB3b3Jr
ZXJzIGFzIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgYW5kIGltcGxlbWVudCByZWdpc3RyYXRpb24g
bWF0Y2hpbmcgZm9yIGRlZGljYXRlZCB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzNzE4MDJhMDZiNTVmMzY1M2M3OWEzYmY5
ZmFhN2UwZTk1MzRjZWIyLi4yNzA0NmFkNGUyMjBkNzY4YmM5MDg5NDliMzU5YjNmMzZjYWRiOTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgK
QEAgLTEwOTksNyArMTA5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNHbG9iYWxPYmplY3Qq
IGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgewogICAgICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAg
ICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0s
IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICAgICAgSlNHbG9iYWxPYmplY3Qq
IHJlc3VsdCA9IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9kVGFibGUodm0s
IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmVGb3JTaGFkb3dSZWFsbSh2bSwganNOdWxs
KCkpLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNj
cmlwdChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0KQEAgLTExNDMsNiAr
MTE0NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJlc3VsdC0+c2V0VHJhbnNpdGlvbldhdGNocG9p
bnRJc0xpa2VseVRvQmVGaXJlZCh0cnVlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlRm9yU2hhZG93UmVhbG0oVk0m
IHZtLCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIFN0cnVjdHVyZSogcmVzdWx0
ID0gU3RydWN0dXJlOjpjcmVhdGUodm0sIG51bGxwdHIsIHByb3RvdHlwZSwgVHlwZUluZm8oR2xv
YmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MgJiB+SXNJbW11dGFibGVQcm90b3R5cGVFeG90
aWNPYmplY3QpLCBpbmZvKCkpOworICAgICAgICByZXN1bHQtPnNldFRyYW5zaXRpb25XYXRjaHBv
aW50SXNMaWtlbHlUb0JlRmlyZWQodHJ1ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fQogCiAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVlSlNXZWFrT2JqZWN0TWFwKiBtYXAp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4
IDJlOWZjNTMzMTkxYTM3NzQyNzZmMDVhZmM4YWY4NjczZDVmNTlmZmEuLjFjMzhjZGVjZGNhN2Qx
ZGRlZmQzYzExMmVlZWY2NGQ0ODA5NWY1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKQEAgLTE5MTUsNyArMTkxNSwxMCBAQCBib29sIEpTT2JqZWN0Ojpz
ZXRQcm90b3R5cGVXaXRoQ3ljbGVDaGVjayhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgc2hv
dWxkVGhyb3dJZkNhbnRTZXQsICJDYW5ub3Qgc2V0IHByb3RvdHlwZSBvZiBpbW11dGFibGUgcHJv
dG90eXBlIG9iamVjdCJfcyk7CiAgICAgfQogCi0gICAgQVNTRVJUKG1ldGhvZFRhYmxlKHZtKS0+
dG9UaGlzKHRoaXMsIGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3BweSgpKSA9PSB0aGlzKTsK
KyAgICAvLyBEZWZhdWx0IHJlYWxtIGdsb2JhbCBvYmplY3RzIHNob3VsZCBoYXZlIG11dGFibGUg
cHJvdG90eXBlcyBkZXNwaXRlIGhhdmluZworICAgIC8vIGEgUHJveHkgZ2xvYmFsVGhpcy4KKyAg
ICBBU1NFUlQoKHRoaXMtPmlzR2xvYmFsT2JqZWN0KCkgJiYgdGhpcy0+Z2xvYmFsT2JqZWN0KCkt
PmlzT3JkaW5hcnlPYmplY3QoKSkKKyAgICAgICAgfHwgbWV0aG9kVGFibGUodm0pLT50b1RoaXMo
dGhpcywgZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c2xvcHB5KCkpID09IHRoaXMpOwogCiAgICAg
aWYgKHRoaXMtPmdldFByb3RvdHlwZURpcmVjdCh2bSkgPT0gcHJvdG90eXBlKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggYzQ1ZmNhYmJjMjNkNjI1YjJiY2ZlZWVkZWFhMTg1ZmI2YzE3
MjJkNy4uNjBiMDNhNTAwOTg0NmE4MTM5NDVmZTNjMDQzODFlZTU3YWYzYTgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTMyMDUsNyArMzIwNSwxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIHN0cnVjdHVyZSBm
bGFncwogICAgIGlmICglc3RydWN0dXJlRmxhZ3MpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgInB1YmxpYzpcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyIpOworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNoYWRvd1JlYWxtR2xvYmFs
U2NvcGUiKSB7CisgICAgICAgICAgICAjIEhhY2sgdG8gbWFrZSBTaGFkb3dSZWFsbUdsb2JhbFNj
b3BlIGEgZGVmYXVsdCByZWFsbSBnbG9iYWwgb2JqZWN0IChub3QgYW4gSW1tdXRhYmxlUHJvdG90
eXBlRXhvdGljT2JqZWN0KQorICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gKEJhc2U6OlN0cnVjdHVy
ZUZsYWdzICYgfkpTQzo6SXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QpIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyIpOworICAgICAgICB9CiAgICAgICAgIGZvcmVhY2ggbXkgJHN0cnVjdHVyZUZsYWcgKHNvcnQg
KGtleXMgJXN0cnVjdHVyZUZsYWdzKSkgewogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiB8ICIgLiAkc3RydWN0dXJlRmxhZyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYWRvd1Jl
YWxtR2xvYmFsU2NvcGUuaAppbmRleCA3M2JlYmFhMzg3OTgxYzdlOTVjOGY5NDFiZDM0YjYwOGRj
NDQzMDI5Li42MDU2OTA2NmQ2YzI0YTEzZGY2NWJkMzkxNDViMWRmNDljMzZiMmEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTU2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgSlNDOjpHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChK
U0M6OlZNJiB2bSk7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpI
ZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IChCYXNlOjpTdHJ1Y3R1cmVGbGFncyAmIH5KU0M6OklzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGlj
T2JqZWN0KSB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHByb3RlY3RlZDoKICAgICBK
U1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFNo
YWRvd1JlYWxtR2xvYmFsU2NvcGU+JiYpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTQzo6SlNQcm94eSopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZkMWYxYWMwYTk5NDMzNWVmYTVjMjhlNmI2M2Q3
ZmI1ZGFiODA3NTIuLjdlOTIzMTdkODY5MTY0NjdhZWRmZTNhYzBlMjUxYzE2NTA4M2NjNzcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wNC0xNCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdIFNoYWRvd1JlYWxtIGdsb2JhbCBvYmplY3QgaGFz
IGEgbXV0YWJsZSBwcm90b3R5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgY2hhbmdlcyB0byB2
ZXJpZnkgdGhhdCBTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCBoYXMgYSBwcm9wZXJseQorICAgICAg
ICBtdXRhYmxlIHByb3RvdHlwZS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxtLWdsb2JhbFRo
aXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFsbS1nbG9iYWxU
aGlzLmh0bWw6IEFkZGVkLgorCiAyMDIyLTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd29ya2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGll
bnRzIGFuZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9uIG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29y
a2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFsVGhpcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1nbG9iYWxUaGlzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZTk4ZTgxYzE2ZTQzOWMxODY4YjhhNTdkY2IwOThmNDEwZmMw
NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFs
VGhpcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB0byBlbnN1cmUgY29ycmVj
dCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0gZ2xvYmFsIHNjb3BlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitPYmplY3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykgPT09IE9i
amVjdC5wcm90b3R5cGUKK2dsb2JhbFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9
OworT2JqZWN0LnNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMsIHsgY2h1Y2tsZTogImJ1Y2tsZSIg
fSk7CitSZWZsZWN0LnNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMsIHsgem9vOiAibW9vIiB9KTsK
KworUEFTUyBTaGFkb3dSZWFsbSBnbG9iYWwgc2NvcGUgaXMgYW4gb3JkaW5hcnkgb2JqZWN0CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWdsb2JhbFRoaXMuaHRtbCBi
L0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWdsb2JhbFRoaXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YjkxOGMzNDFhZDQ1NWFjODk1MDM3Mzc4ZGExYTVjMWUzMmQzYmRmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFsVGhpcy5odG1sCkBAIC0wLDAgKzEs
NTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj48IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFsbT10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0gZ2xvYmFsIHNj
b3BlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAgIGNvbnN0IGJv
b3RzdHJhcCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc3Qgc2hhZG93UmVhbG0gPSBu
ZXcgU2hhZG93UmVhbG07CisgICAgICAgICAgICBjb25zdCBpbnN0YWxsID0gc2hhZG93UmVhbG0u
ZXZhbHVhdGUoYChmdW5jdGlvbihuYW1lLCBmbikgeworICAgICAgICAgICAgICAgIGdsb2JhbFRo
aXNbbmFtZV0gPSBmbjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9KWAp
OworICAgICAgICAgICAgaW5zdGFsbCgiZGVidWciLCAoLi4uYXJncykgPT4geyBkZWJ1ZyguLi5h
cmdzKTsgfSk7CisgICAgICAgICAgICByZXR1cm4gc2hhZG93UmVhbG07CisgICAgICAgIH0KKwor
ICAgICAgICBkZWJ1ZyhgT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMpID09PSBPYmpl
Y3QucHJvdG90eXBlYCk7CisgICAgICAgIGxldCBzaGFkb3dSZWFsbSA9IGJvb3RzdHJhcCgpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1JlYWxtLmV2YWx1YXRlKCJPYmplY3QuZ2V0UHJv
dG90eXBlT2YoZ2xvYmFsVGhpcykgPT09IE9iamVjdC5wcm90b3R5cGUiKSwgdHJ1ZSk7CisKKyAg
ICAgICAgZGVidWcoYGdsb2JhbFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9O2Ap
OworICAgICAgICBzaGFkb3dSZWFsbS5ldmFsdWF0ZShgdHJ5IHsKKyAgICAgICAgICAgIGdsb2Jh
bFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9OworICAgICAgICAgICAgIm9rIjsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZGVidWcoIkZhaWxlZCB0byBzZXQg
Z2xvYmFsVGhpcy5fX3Byb3RvX18iKTsKKyAgICAgICAgfWApOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNoYWRvd1JlYWxtLmV2YWx1YXRlKCJnbG9iYWxUaGlzLmFscGhhIiksICJvbWVnYSIpOwor
CisgICAgICAgIGRlYnVnKGBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyBjaHVj
a2xlOiAiYnVja2xlIiB9KTtgKTsKKyAgICAgICAgc2hhZG93UmVhbG0gPSBib290c3RyYXAoKTsK
KyAgICAgICAgc2hhZG93UmVhbG0uZXZhbHVhdGUoYHRyeSB7CisgICAgICAgICAgICBPYmplY3Qu
c2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyBjaHVja2xlOiAiYnVja2xlIiB9KTsKKyAgICAg
ICAgICAgICJvayI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGRlYnVnKCJG
YWlsdXJlIGluIE9iamVjdC5zZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKSIpOworICAgICAgICB9
YCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93UmVhbG0uZXZhbHVhdGUoImdsb2JhbFRo
aXMuY2h1Y2tsZSIpLCAiYnVja2xlIik7CisKKyAgICAgICAgZGVidWcoYFJlZmxlY3Quc2V0UHJv
dG90eXBlT2YoZ2xvYmFsVGhpcywgeyB6b286ICJtb28iIH0pO2ApOworICAgICAgICBzaGFkb3dS
ZWFsbSA9IGJvb3RzdHJhcCgpOworICAgICAgICBzaGFkb3dSZWFsbS5ldmFsdWF0ZShgdHJ5IHsK
KyAgICAgICAgICAgIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyB6b286ICJt
b28iIH0pOworICAgICAgICAgICAgIm9rIjsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgZGVidWcoIkZhaWx1cmUgaW4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihnbG9iYWxUaGlz
KSIpOworICAgICAgICB9YCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93UmVhbG0uZXZh
bHVhdGUoImdsb2JhbFRoaXMuem9vIiksICJtb28iKTsKKyAgICB9LCAiU2hhZG93UmVhbG0gZ2xv
YmFsIHNjb3BlIGlzIGFuIG9yZGluYXJ5IG9iamVjdCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGQ1M2Y0YThlZjNjYzVkMjY0YWNmM2NmYzNmOTg0NzBmZGJmNTFiMGQuLmUxYjRjMTIy
YjVjYWRiYmYzMWI0MGZlMTZhNWJkZGY2NTc1YTI5ODYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQt
MTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBT
aGFkb3dSZWFsbSBnbG9iYWwgb2JqZWN0IGhhcyBhIG11dGFibGUgcHJvdG90eXBlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkzMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zaGFkb3ct
cmVhbG0tZ2xvYmFsVGhpcy1tdXRhYmxlLXByb3RvdHlwZS5qczogQWRkZWQuCisgICAgICAgIChs
ZXQuaW5zdGFsbC5zci5ldmFsdWF0ZSk6CisgICAgICAgIChsZXQubG9nKToKKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAoaS5jYXRjaCk6CisKIDIwMjItMDQtMTIgIEFkaXRpIFNpbmdoICA8YXNp
bmdoQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IENoYW5nZSBBcnJheSBieSBjb3B5
IHByb3Bvc2FsCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctcmVhbG0tZ2xvYmFs
VGhpcy1tdXRhYmxlLXByb3RvdHlwZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1yZWFsbS1n
bG9iYWxUaGlzLW11dGFibGUtcHJvdG90eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MWI4Y2Q1MDI4MDE3
NGE2NjM1YjlmZDE0YTJhMjA3MjI5Mjg2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9zaGFkb3ctcmVhbG0tZ2xvYmFsVGhpcy1tdXRhYmxlLXByb3RvdHlwZS5qcwpAQCAtMCww
ICsxLDM5IEBACisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlU2hhZG93UmVhbG09MSIpCisKK2xl
dCBzciA9IG5ldyBTaGFkb3dSZWFsbTsKKworbGV0IGluc3RhbGwgPSBzci5ldmFsdWF0ZShgCiso
ZnVuY3Rpb24obmFtZSwgZm4pIHsKKyAgZ2xvYmFsVGhpc1tuYW1lXSA9IGZuOworfSkKK2ApOwor
CitsZXQgbG9nID0gZnVuY3Rpb24oLi4uYXJncykgeworICBsZXQgc3RyaW5nID0gYXJncy5qb2lu
KCIgIik7CisgIHByaW50KHN0cmluZyk7CisgIHJldHVybiBzdHJpbmc7Cit9OworaW5zdGFsbCgi
bG9nIiwgbG9nKTsKKworLy8gVGVzdCB0aGF0IHRoZSBHbG9iYWxPYmplY3QgcHJvdG90eXBlIGlz
IG5vdCBpbW11dGFibGUsIAorbGV0IE1BWF9JVEVSID0gMTAwMDA7Citzci5ldmFsdWF0ZShgCisg
IHZhciBpID0gMTsKKyAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBnbG9iYWxUaGlzLl9fcHJvdG9f
XyA9IHsgeDogaSsrIH07CisgIH0KKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAke01BWF9JVEVSfTsg
KytpKSB7CisgICAgdHJ5IHsKKyAgICAgIHRlc3QoKTsKKyAgICAgIGlmIChnbG9iYWxUaGlzLngg
IT09IGkgKyAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXGBQcm90b3R5cGUgbm90IHdyaXR0
ZW4gc3VjY2Vzc2Z1bGx5IChFeHBlY3RlZCBnbG9iYWxUaGlzLnggPT09IFwke2kgKyAxfSwgYnV0
IGZvdW5kIFwke2dsb2JhbFRoaXMueH0pXGApOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGxv
ZyhcYFwke2V9XGApOworICAgICAgdGhyb3cgZTsKKyAgICB9CisgIH0KK2ApOworCitpZiAoc3Iu
ZXZhbHVhdGUoYGdsb2JhbFRoaXMueGApICE9PSBNQVhfSVRFUikKKyAgdGhyb3cgbmV3IEVycm9y
KCJQcm90b3R5cGUgaW52YWxpZCBpbiBzZXBhcmF0ZSBldmFsIik7CisK
</data>
<flag name="commit-queue"
          id="486335"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457650</attachid>
            <date>2022-04-14 15:20:03 -0700</date>
            <delta_ts>2022-04-14 16:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239332-20220414182002.patch</filename>
            <type>text/plain</type>
            <size>12953</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ODJhOTQzYzZlNDliZDFlZjkwZjg3NDg4NWM2NDBlYzg4NmFjOWI3Li41ZGMwZTZiNDY3NjBmMDAz
Y2U2MDgwNGZjM2UxMzYzZjQ0OWI2OThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMi0wNC0xNCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIFNoYWRvd1JlYWxtIGdsb2JhbCBvYmplY3QgaGFzIGEgbXV0YWJs
ZSBwcm90b3R5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzOTMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBjaXJjdW12ZW50cyB0aGUgYEFTU0VSVCh0b1RoaXMoKSA9PSB0aGlzKWAg
aW4gSlNPYmplY3Q6OnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKCkKKyAgICAgICAgd2hlbiBg
dGhpc2AgaXMgYSBHbG9iYWxPYmplY3QuIE9yZGluYXJpbHksIEdsb2JhbE9iamVjdHMgaGF2ZSB0
aGUgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QKKyAgICAgICAgYml0IHNldCBhbmQg
bWlzcyB0aGlzIHBhdGh3YXksIGhvd2V2ZXIgdGhpcyBpcyBub3QgdGhlIGNhc2UgZm9yIFNoYWRv
d1JlYWxtIEdsb2JhbCBPYmplY3RzLiAKKworICAgICAgICBJbiBhZGRpdGlvbiwgdGhlIEpTQyBp
bnRlcm5hbCB2ZXJzaW9uIGlzIGFsc28gbW9kaWZpZWQgdG8gaGF2ZSBhIG11dGFibGUgcHJvdG90
eXBlIGluIHRoZSBzYW1lIHdheQorICAgICAgICBhcyBpbiBXZWJDb3JlLgorCisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
ZGVyaXZlU2hhZG93UmVhbG1HbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlRm9yU2hhZG93UmVhbG0pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6c2V0UHJvdG90eXBlV2l0aEN5
Y2xlQ2hlY2spOgorCiAyMDIyLTA0LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVwbGFjZSBjYWxscyB0byBzdWJzdHJpbmcoMCwgeCkgd2l0aCB0aGUgbW9y
ZSBjb25jaXNlIGxlZnQoeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZmU0YTlmN2VmMmI2NjIzN2ZiN2Q1NDQ0
MTI1MjkwOGUyYjc1NWJhLi42OWM4MTFkMmU5NDU1ZTYzYWZmOGJlMjU1ODA5OTQ1ODdiNjIwNGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVy
ICA8Y2FpdHBAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwg
b2JqZWN0IGhhcyBhIG11dGFibGUgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1
a2UgU3V6dWtpLgorCisgICAgICAgIEhhY2s6IFRoZSBJREwgY29kZSBnZW5lcmF0b3Igbm93IHNw
ZWNpYWwgY2FzZXMgU2hhZG93UmVhbG1HbG9iYWxPYmplY3QgdG8gcmVtb3ZlIHRoZSAKKyAgICAg
ICAgSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0IGJpdCBmcm9tIHRoZSBpbmhlcml0ZWQg
SlNHbG9iYWxPYmplY3Qgc3RydWN0dXJlIGZsYWdzLgorCisgICAgICAgIEFzIGEgcmVzdWx0LCB0
aGlzIGVuYWJsZXMgdGhlIGFzc2lnbm1lbnQgb2YgYSBTaGFkb3dSZWFsbSdzIGdsb2JhbFRoaXMu
X19wcm90b19fLCBvcgorICAgICAgICBvdmVyd3JpdGluZyB0aGUgcHJvdG90eXBlIHdpdGggW09i
amVjdCAvIFJlZmxlY3RdLnNldFByb3RvdHlwZU9mKCkuCisKKyAgICAgICAgVGVzdDoganMvU2hh
ZG93UmVhbG0tZ2xvYmFsVGhpcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmg6CisKIDIw
MjItMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4
cG9zZSB3b3JrZXJzIGFzIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgYW5kIGltcGxlbWVudCByZWdp
c3RyYXRpb24gbWF0Y2hpbmcgZm9yIGRlZGljYXRlZCB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzNzE4MDJhMDZiNTVmMzY1
M2M3OWEzYmY5ZmFhN2UwZTk1MzRjZWIyLi4yNzA0NmFkNGUyMjBkNzY4YmM5MDg5NDliMzU5YjNm
MzZjYWRiOTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKQEAgLTEwOTksNyArMTA5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNHbG9i
YWxPYmplY3QqIGRlcml2ZVNoYWRvd1JlYWxtR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKLSAgICAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9k
VGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwg
Z2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpKTsKKyAgICAgICAgSlNHbG9i
YWxPYmplY3QqIHJlc3VsdCA9IEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVXaXRoQ3VzdG9tTWV0aG9k
VGFibGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmVGb3JTaGFkb3dSZWFsbSh2
bSwganNOdWxsKCkpLCBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIHNob3VsZElu
dGVycnVwdFNjcmlwdChjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0KQEAg
LTExNDMsNiArMTE0NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJlc3VsdC0+c2V0VHJhbnNpdGlv
bldhdGNocG9pbnRJc0xpa2VseVRvQmVGaXJlZCh0cnVlKTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlRm9yU2hhZG93
UmVhbG0oVk0mIHZtLCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIFN0cnVjdHVy
ZSogcmVzdWx0ID0gU3RydWN0dXJlOjpjcmVhdGUodm0sIG51bGxwdHIsIHByb3RvdHlwZSwgVHlw
ZUluZm8oR2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MgJiB+SXNJbW11dGFibGVQcm90
b3R5cGVFeG90aWNPYmplY3QpLCBpbmZvKCkpOworICAgICAgICByZXN1bHQtPnNldFRyYW5zaXRp
b25XYXRjaHBvaW50SXNMaWtlbHlUb0JlRmlyZWQodHJ1ZSk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQogCiAgICAgdm9pZCByZWdpc3RlcldlYWtNYXAoT3BhcXVlSlNXZWFrT2JqZWN0
TWFwKiBtYXApCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCmluZGV4IDJlOWZjNTMzMTkxYTM3NzQyNzZmMDVhZmM4YWY4NjczZDVmNTlmZmEuLmY5YmE5
YzM0NWZhYmJiNzZiODhjMDkwMjkwYTUxMmVjNjg2Y2JhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTE5MTUsNyArMTkxNSw5IEBAIGJvb2wgSlNP
YmplY3Q6OnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCBzaG91bGRUaHJvd0lmQ2FudFNldCwgIkNhbm5vdCBzZXQgcHJvdG90eXBlIG9mIGltbXV0
YWJsZSBwcm90b3R5cGUgb2JqZWN0Il9zKTsKICAgICB9CiAKLSAgICBBU1NFUlQobWV0aG9kVGFi
bGUodm0pLT50b1RoaXModGhpcywgZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c2xvcHB5KCkpID09
IHRoaXMpOworICAgIC8vIERlZmF1bHQgcmVhbG0gZ2xvYmFsIG9iamVjdHMgc2hvdWxkIGhhdmUg
bXV0YWJsZSBwcm90b3R5cGVzIGRlc3BpdGUgaGF2aW5nCisgICAgLy8gYSBQcm94eSBnbG9iYWxU
aGlzLgorICAgIEFTU0VSVCh0aGlzLT5pc0dsb2JhbE9iamVjdCgpIHx8IG1ldGhvZFRhYmxlKHZt
KS0+dG9UaGlzKHRoaXMsIGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnNsb3BweSgpKSA9PSB0aGlz
KTsKIAogICAgIGlmICh0aGlzLT5nZXRQcm90b3R5cGVEaXJlY3Qodm0pID09IHByb3RvdHlwZSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGM0NWZjYWJiYzIzZDYyNWIyYmNmZWVlZGVh
YTE4NWZiNmMxNzIyZDcuLjYwYjAzYTUwMDk4NDZhODEzOTQ1ZmUzYzA0MzgxZWU1N2FmM2E4MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0zMjA1LDcgKzMyMDUsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBz
dHJ1Y3R1cmUgZmxhZ3MKICAgICBpZiAoJXN0cnVjdHVyZUZsYWdzKSB7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MiKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTaGFkb3dS
ZWFsbUdsb2JhbFNjb3BlIikgeworICAgICAgICAgICAgIyBIYWNrIHRvIG1ha2UgU2hhZG93UmVh
bG1HbG9iYWxTY29wZSBhIGRlZmF1bHQgcmVhbG0gZ2xvYmFsIG9iamVjdCAobm90IGFuIEltbXV0
YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCkKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IChCYXNl
OjpTdHJ1Y3R1cmVGbGFncyAmIH5KU0M6OklzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0
KSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MiKTsKKyAgICAgICAgfQogICAgICAgICBmb3JlYWNoIG15ICRzdHJ1Y3R1cmVG
bGFnIChzb3J0IChrZXlzICVzdHJ1Y3R1cmVGbGFncykpIHsKICAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgfCAiIC4gJHN0cnVjdHVyZUZsYWcpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFkb3dSZWFs
bUdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlLmgKaW5kZXggNzNiZWJhYTM4Nzk4MWM3ZTk1YzhmOTQx
YmQzNGI2MDhkYzQ0MzAyOS4uNjA1NjkwNjZkNmMyNGExM2RmNjViZDM5MTQ1YjFkZjQ5YzM2YjJh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
U2hhZG93UmVhbG1HbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NoYWRvd1JlYWxtR2xvYmFsU2NvcGUuaApAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBzdWJzcGFj
ZUZvckltcGwoSlNDOjpWTSYgdm0pOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2Vs
bCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSAoQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SlNDOjpJc0ltbXV0YWJsZVByb3Rv
dHlwZUV4b3RpY09iamVjdCkgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90ZWN0
ZWQ6CiAgICAgSlNTaGFkb3dSZWFsbUdsb2JhbFNjb3BlKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVy
ZSosIFJlZjxTaGFkb3dSZWFsbUdsb2JhbFNjb3BlPiYmKTsKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mLCBKU0M6OkpTUHJveHkqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZDFmMWFjMGE5OTQzMzVlZmE1
YzI4ZTZiNjNkN2ZiNWRhYjgwNzUyLi5jMWEzYmE4YTU0NGE0YTgzYTA5ZmI2MGVmNjdhMTU5NTcx
NDYwOWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVy
ICA8Y2FpdHBAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwg
b2JqZWN0IGhhcyBhIG11dGFibGUgcHJvdG90eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1
a2UgU3V6dWtpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgY2hh
bmdlcyB0byB2ZXJpZnkgdGhhdCBTaGFkb3dSZWFsbUdsb2JhbE9iamVjdCBoYXMgYSBwcm9wZXJs
eQorICAgICAgICBtdXRhYmxlIHByb3RvdHlwZS4KKworICAgICAgICAqIGpzL1NoYWRvd1JlYWxt
LWdsb2JhbFRoaXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9TaGFkb3dSZWFs
bS1nbG9iYWxUaGlzLmh0bWw6IEFkZGVkLgorCiAyMDIyLTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd29ya2VycyBhcyBzZXJ2aWNlIHdv
cmtlciBjbGllbnRzIGFuZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9uIG1hdGNoaW5nIGZvciBkZWRp
Y2F0ZWQgd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xv
YmFsVGhpcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9TaGFkb3dSZWFsbS1nbG9iYWxU
aGlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTk4ZTgxYzE2ZTQzOWMxODY4YjhhNTdkY2Iw
OThmNDEwZmMwNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVh
bG0tZ2xvYmFsVGhpcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB0byBlbnN1
cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0gZ2xvYmFsIHNjb3BlCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitPYmplY3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhp
cykgPT09IE9iamVjdC5wcm90b3R5cGUKK2dsb2JhbFRoaXMuX19wcm90b19fID0geyBhbHBoYTog
Im9tZWdhIiB9OworT2JqZWN0LnNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMsIHsgY2h1Y2tsZTog
ImJ1Y2tsZSIgfSk7CitSZWZsZWN0LnNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMsIHsgem9vOiAi
bW9vIiB9KTsKKworUEFTUyBTaGFkb3dSZWFsbSBnbG9iYWwgc2NvcGUgaXMgYW4gb3JkaW5hcnkg
b2JqZWN0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWdsb2JhbFRo
aXMuaHRtbCBiL0xheW91dFRlc3RzL2pzL1NoYWRvd1JlYWxtLWdsb2JhbFRoaXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYjkxOGMzNDFhZDQ1NWFjODk1MDM3Mzc4ZGExYTVjMWUzMmQzYmRmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvU2hhZG93UmVhbG0tZ2xvYmFsVGhpcy5odG1sCkBA
IC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS11c2VTaGFkb3dSZWFs
bT10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjID0u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYyA9Li4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdCB0byBlbnN1cmUgY29ycmVjdCBiZWhhdmlvdXIgb2YgU2hhZG93UmVhbG0g
Z2xvYmFsIHNjb3BlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgICAg
IGNvbnN0IGJvb3RzdHJhcCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc3Qgc2hhZG93
UmVhbG0gPSBuZXcgU2hhZG93UmVhbG07CisgICAgICAgICAgICBjb25zdCBpbnN0YWxsID0gc2hh
ZG93UmVhbG0uZXZhbHVhdGUoYChmdW5jdGlvbihuYW1lLCBmbikgeworICAgICAgICAgICAgICAg
IGdsb2JhbFRoaXNbbmFtZV0gPSBmbjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9KWApOworICAgICAgICAgICAgaW5zdGFsbCgiZGVidWciLCAoLi4uYXJncykgPT4geyBk
ZWJ1ZyguLi5hcmdzKTsgfSk7CisgICAgICAgICAgICByZXR1cm4gc2hhZG93UmVhbG07CisgICAg
ICAgIH0KKworICAgICAgICBkZWJ1ZyhgT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbFRoaXMp
ID09PSBPYmplY3QucHJvdG90eXBlYCk7CisgICAgICAgIGxldCBzaGFkb3dSZWFsbSA9IGJvb3Rz
dHJhcCgpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNoYWRvd1JlYWxtLmV2YWx1YXRlKCJPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcykgPT09IE9iamVjdC5wcm90b3R5cGUiKSwgdHJ1
ZSk7CisKKyAgICAgICAgZGVidWcoYGdsb2JhbFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9t
ZWdhIiB9O2ApOworICAgICAgICBzaGFkb3dSZWFsbS5ldmFsdWF0ZShgdHJ5IHsKKyAgICAgICAg
ICAgIGdsb2JhbFRoaXMuX19wcm90b19fID0geyBhbHBoYTogIm9tZWdhIiB9OworICAgICAgICAg
ICAgIm9rIjsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZGVidWcoIkZhaWxl
ZCB0byBzZXQgZ2xvYmFsVGhpcy5fX3Byb3RvX18iKTsKKyAgICAgICAgfWApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHNoYWRvd1JlYWxtLmV2YWx1YXRlKCJnbG9iYWxUaGlzLmFscGhhIiksICJv
bWVnYSIpOworCisgICAgICAgIGRlYnVnKGBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhp
cywgeyBjaHVja2xlOiAiYnVja2xlIiB9KTtgKTsKKyAgICAgICAgc2hhZG93UmVhbG0gPSBib290
c3RyYXAoKTsKKyAgICAgICAgc2hhZG93UmVhbG0uZXZhbHVhdGUoYHRyeSB7CisgICAgICAgICAg
ICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyBjaHVja2xlOiAiYnVja2xlIiB9
KTsKKyAgICAgICAgICAgICJvayI7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
IGRlYnVnKCJGYWlsdXJlIGluIE9iamVjdC5zZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzKSIpOwor
ICAgICAgICB9YCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93UmVhbG0uZXZhbHVhdGUo
Imdsb2JhbFRoaXMuY2h1Y2tsZSIpLCAiYnVja2xlIik7CisKKyAgICAgICAgZGVidWcoYFJlZmxl
Y3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywgeyB6b286ICJtb28iIH0pO2ApOworICAgICAg
ICBzaGFkb3dSZWFsbSA9IGJvb3RzdHJhcCgpOworICAgICAgICBzaGFkb3dSZWFsbS5ldmFsdWF0
ZShgdHJ5IHsKKyAgICAgICAgICAgIFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpcywg
eyB6b286ICJtb28iIH0pOworICAgICAgICAgICAgIm9rIjsKKyAgICAgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICAgICAgZGVidWcoIkZhaWx1cmUgaW4gUmVmbGVjdC5zZXRQcm90b3R5cGVPZihn
bG9iYWxUaGlzKSIpOworICAgICAgICB9YCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hhZG93
UmVhbG0uZXZhbHVhdGUoImdsb2JhbFRoaXMuem9vIiksICJtb28iKTsKKyAgICB9LCAiU2hhZG93
UmVhbG0gZ2xvYmFsIHNjb3BlIGlzIGFuIG9yZGluYXJ5IG9iamVjdCIpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGQ1M2Y0YThlZjNjYzVkMjY0YWNmM2NmYzNmOTg0NzBmZGJmNTFiMGQu
LmNiMmI4NWQyMWZlYzU4MDg4ZjA0YzQzNTNmZTUyNTIwOTUyNTFjZGYgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjItMDQtMTQgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbSlNDXSBTaGFkb3dSZWFsbSBnbG9iYWwgb2JqZWN0IGhhcyBhIG11dGFibGUgcHJvdG90eXBl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkzMzIK
KworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogc3RyZXNz
L3NoYWRvdy1yZWFsbS1nbG9iYWxUaGlzLW11dGFibGUtcHJvdG90eXBlLmpzOiBBZGRlZC4KKwog
MjAyMi0wNC0xMiAgQWRpdGkgU2luZ2ggIDxhc2luZ2hAaWdhbGlhLmNvbT4KIAogICAgICAgICBJ
bXBsZW1lbnQgQ2hhbmdlIEFycmF5IGJ5IGNvcHkgcHJvcG9zYWwKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3NoYWRvdy1yZWFsbS1nbG9iYWxUaGlzLW11dGFibGUtcHJvdG90eXBlLmpzIGIv
SlNUZXN0cy9zdHJlc3Mvc2hhZG93LXJlYWxtLWdsb2JhbFRoaXMtbXV0YWJsZS1wcm90b3R5cGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODkxYjhjZDUwMjgwMTc0YTY2MzViOWZkMTRhMmEyMDcyMjkyODY3YQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1yZWFsbS1nbG9iYWxUaGlz
LW11dGFibGUtcHJvdG90eXBlLmpzCkBAIC0wLDAgKzEsMzkgQEAKKy8vQCByZXF1aXJlT3B0aW9u
cygiLS11c2VTaGFkb3dSZWFsbT0xIikKKworbGV0IHNyID0gbmV3IFNoYWRvd1JlYWxtOworCits
ZXQgaW5zdGFsbCA9IHNyLmV2YWx1YXRlKGAKKyhmdW5jdGlvbihuYW1lLCBmbikgeworICBnbG9i
YWxUaGlzW25hbWVdID0gZm47Cit9KQorYCk7CisKK2xldCBsb2cgPSBmdW5jdGlvbiguLi5hcmdz
KSB7CisgIGxldCBzdHJpbmcgPSBhcmdzLmpvaW4oIiAiKTsKKyAgcHJpbnQoc3RyaW5nKTsKKyAg
cmV0dXJuIHN0cmluZzsKK307CitpbnN0YWxsKCJsb2ciLCBsb2cpOworCisvLyBUZXN0IHRoYXQg
dGhlIEdsb2JhbE9iamVjdCBwcm90b3R5cGUgaXMgbm90IGltbXV0YWJsZSwgCitsZXQgTUFYX0lU
RVIgPSAxMDAwMDsKK3NyLmV2YWx1YXRlKGAKKyAgdmFyIGkgPSAxOworICBmdW5jdGlvbiB0ZXN0
KCkgeworICAgIGdsb2JhbFRoaXMuX19wcm90b19fID0geyB4OiBpKysgfTsKKyAgfQorICBmb3Ig
KGxldCBpID0gMDsgaSA8ICR7TUFYX0lURVJ9OyArK2kpIHsKKyAgICB0cnkgeworICAgICAgdGVz
dCgpOworICAgICAgaWYgKGdsb2JhbFRoaXMueCAhPT0gaSArIDEpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihcYFByb3RvdHlwZSBub3Qgd3JpdHRlbiBzdWNjZXNzZnVsbHkgKEV4cGVjdGVkIGds
b2JhbFRoaXMueCA9PT0gXCR7aSArIDF9LCBidXQgZm91bmQgXCR7Z2xvYmFsVGhpcy54fSlcYCk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgbG9nKFxgXCR7ZX1cYCk7CisgICAgICB0aHJvdyBl
OworICAgIH0KKyAgfQorYCk7CisKK2lmIChzci5ldmFsdWF0ZShgZ2xvYmFsVGhpcy54YCkgIT09
IE1BWF9JVEVSKQorICB0aHJvdyBuZXcgRXJyb3IoIlByb3RvdHlwZSBpbnZhbGlkIGluIHNlcGFy
YXRlIGV2YWwiKTsKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>