<?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>231709</bug_id>
          
          <creation_ts>2021-10-13 17:03:40 -0700</creation_ts>
          <short_desc>[Cocoa] Web Inspector: handle Promise objects returned from evaluateScriptInExtensionTab</short_desc>
          <delta_ts>2021-10-15 12:16:28 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804069</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-13 17:03:40 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804070</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 17:04:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/84224179&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804095</commentid>
    <comment_count>2</comment_count>
      <attachid>441164</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-13 17:24:46 -0700</bug_when>
    <thetext>Created attachment 441164
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804113</commentid>
    <comment_count>3</comment_count>
      <attachid>441164</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-10-13 18:15:58 -0700</bug_when>
    <thetext>Comment on attachment 441164
Patch v1.0

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:248
&gt; +                // If `result`` is a promise, then it came from a different frame and `instanceof Promise` won&apos;t work.

NIT: Extra ` after `result`

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:251
&gt; +                    return result.then((resolvedValue) =&gt; resolve({result: resolvedValue}), (errorValue) =&gt; reject({error: errorValue}));

The `return` and the `result.then` should probably be separate, since returning a value here is a bit confusing.

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:259
&gt; +                    `Caught Exception: ${error.name}`,

Should we add `error.message` to the formatted message?

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:260
&gt; +                    `at ${error.sourceURL}, Line ${error.line}, Column ${error.column}:`,

I don&apos;t think sourceURL will exist for all errors. It doesn&apos;t appear to be part of the Error prototype.

&gt; Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:224
&gt; +    // The promise will resolve to one of:
&gt; +    // - an object with a &apos;result&apos; key and value that is the result of the script evaluation.
&gt; +    // - an object with an &apos;error&apos; key and value in the case that an exception was thrown while evaluating script.

It&apos;s kinda of misleading IMO to say the promise will resolve with an `error` key and value, given that the implementation in the frontend appears to reject with an `error` when something goes wrong.

&gt; Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:246
&gt; +    // The promise will resolve to one of:
&gt; +    // - an object with a &apos;result&apos; key and value that is the result of the script evaluation.
&gt; +    // - an object with an &apos;error&apos; key and value in the case that an exception was thrown while evaluating script.

Ditto :222-224

&gt; Tools/ChangeLog:10
&gt; +

NIT: Extra newline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804278</commentid>
    <comment_count>4</comment_count>
      <attachid>441164</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-14 08:19:45 -0700</bug_when>
    <thetext>Comment on attachment 441164
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:251
&gt;&gt; +                    return result.then((resolvedValue) =&gt; resolve({result: resolvedValue}), (errorValue) =&gt; reject({error: errorValue}));
&gt; 
&gt; The `return` and the `result.then` should probably be separate, since returning a value here is a bit confusing.

I don&apos;t follow. Returning the invocation of &apos;then&apos; on a then-able object is an appropriate way to chain the two promises.

Chaining with .then does not mutate `result` in place, so the two line version would be:

let result = result.then(...)
return result;

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:259
&gt;&gt; +                    `Caught Exception: ${error.name}`,
&gt; 
&gt; Should we add `error.message` to the formatted message?

Oops.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:260
&gt;&gt; +                    `at ${error.sourceURL}, Line ${error.line}, Column ${error.column}:`,
&gt; 
&gt; I don&apos;t think sourceURL will exist for all errors. It doesn&apos;t appear to be part of the Error prototype.

OK

&gt;&gt; Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:224
&gt;&gt; +    // - an object with an &apos;error&apos; key and value in the case that an exception was thrown while evaluating script.
&gt; 
&gt; It&apos;s kinda of misleading IMO to say the promise will resolve with an `error` key and value, given that the implementation in the frontend appears to reject with an `error` when something goes wrong.

s/resolve/settle/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804290</commentid>
    <comment_count>5</comment_count>
      <attachid>441222</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-14 08:51:07 -0700</bug_when>
    <thetext>Created attachment 441222
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804292</commentid>
    <comment_count>6</comment_count>
      <attachid>441223</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-14 08:56:25 -0700</bug_when>
    <thetext>Created attachment 441223
Patch v1.1.1 (better changelog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804315</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-14 09:42:13 -0700</bug_when>
    <thetext>(In reply to BJ Burg from comment #4)
&gt; Comment on attachment 441164 [details]
&gt; Patch v1.0
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441164&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:251
&gt; &gt;&gt; +                    return result.then((resolvedValue) =&gt; resolve({result: resolvedValue}), (errorValue) =&gt; reject({error: errorValue}));
&gt; &gt; 
&gt; &gt; The `return` and the `result.then` should probably be separate, since returning a value here is a bit confusing.
&gt; 
&gt; I don&apos;t follow. Returning the invocation of &apos;then&apos; on a then-able object is
&gt; an appropriate way to chain the two promises.
&gt; 
&gt; Chaining with .then does not mutate `result` in place, so the two line
&gt; version would be:
&gt; 
&gt; let result = result.then(...)
&gt; return result;

I chatted more with Patrick, and I forgot that this is an inner-outer promise situation, so the return isn&apos;t needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804884</commentid>
    <comment_count>8</comment_count>
      <attachid>441398</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-15 10:29:33 -0700</bug_when>
    <thetext>Created attachment 441398
[fast-cq] Patch v1.1.2 (for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804954</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-15 12:16:26 -0700</bug_when>
    <thetext>Committed r284264 (243072@main): &lt;https://commits.webkit.org/243072@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441398.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441164</attachid>
            <date>2021-10-13 17:24:46 -0700</date>
            <delta_ts>2021-10-14 08:51:05 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-231709-20211013172445.patch</filename>
            <type>text/plain</type>
            <size>15121</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIxMDI3NTJjM2FjM2E2
NzJlNzkwYjA3NmI3YmUzZmYyNmM0MzRhMi4uZmU4YWQ3YThkMGE4ZjAzNjIwODM3MDQ0Y2E2YWUw
NGYwYjBkN2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEzICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
aGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBmcm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMjQxNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3Bl
Y3RvckV4dGVuc2lvbi5FdmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiQ2FuUmV0dXJuUHJvbWlz
ZXMKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpl
dmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKToKKyAgICAgICAgQWRkIEpTTG9ja0hvbGRlcnMgZm9y
IHdoZW4gd2UgYXJlIHBva2luZyBhdCB0aGUgcmVzdWx0IHZhbHVlLgorCiAyMDIxLTEwLTExICBC
ZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwdXNoIHJlZ2lzdHJhdGlv
biBzdHVicwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZTFhZWI3ZGY1MjE0MTBiNzIxYzll
MmRmMTg1OTQ1Nzk5YmQxMDQwMy4uYTdjN2M0OWE1N2VkZDA1MjUxY2U4MjUzZjQ2NGY5MDFiNmU3
Mzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTAt
MTMgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5z
cGVjdG9yOiBoYW5kbGUgUHJvbWlzZSBvYmplY3RzIHJldHVybmVkIGZyb20gZXZhbHVhdGVTY3Jp
cHRJbkV4dGVuc2lvblRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDIyNDE3OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAgICAg
ICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLmV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgRml4IGluY29ycmVjdCBoZWFkZXIg
ZG9jcyBmb3IgSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24u
CisgICAgICAgIENvcHkgdGhlIGltcHJvdmVkIGhlYWRlciBkb2MgZm9yIEluc3BlY3RvckZyb250
ZW5kQVBJLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgc2luY2UgaXQgbm93
IGhhcyB0aGUgc2FtZSBjYWxsaW5nIGNvbnZlbnRpb24uCisKIDIwMjEtMTAtMTEgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIFRhYkJhciBj
b250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYjBhNzkwZjVmOTJlOTgxNGMyZjExMzEyM2Q4ZmU3OGZmNGNhN2Qy
Yi4uYWY0ODAwNmNmOGI0ZWY0NTUxODM3OTFlODI1NTU3YTI4MjQ2OGU0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0xMC0xMyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGhhbmRsZSBQcm9taXNlIG9iamVjdHMgcmV0
dXJuZWQgZnJvbSBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MDkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0MjI0MTc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyOjpldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYik6CisgICAgICAgIEFkZCBKU0xvY2tIb2xkZXJzIGZvciB3aGVuIHdlIGFyZSBwb2tp
bmcgYXQgdGhlIHJlc3VsdCB2YWx1ZS4KKyAgICAgICAgRHJpdmUtYnksIGZpeCBhIHR5cG8gaW4g
bG9nZ2luZyBjb2RlLgorCiAyMDIxLTEwLTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFNtb290aC1zY3JvbGwgYW5pbWF0aW9ucyBzaG91bGQgcnVu
IGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAppbmRleCAwOWVk
OTA0ZjNhYTE2M2Y1YTUyYzU1YzBjOGQ3MDc5Y2E2NWFmZGRjLi4yNzA4MjI0ZWM4ZjRlMTQxMmJh
MTgxZWZhZGE0ZDAwODdjMTRmOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMTc2LDcg
KzE3Niw5IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9y
UXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwCiAgICAgICAgIG9wdGlvbmFsUmVzdWx0
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFdmFsdWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCisgICAgCisgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QpOworICAgIAogICAgIGF1dG8mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8qIGNhc3RlZFByb21pc2UgPSBKU0M6OmpzRHluYW1pY0Nh
c3Q8SlNDOjpKU1Byb21pc2UqPih2bSwgcmVzdWx0LnZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
UHJvbWlzZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4
dGVuc2lvbkNvbnRyb2xsZXIuanMKaW5kZXggMDMwY2JmOWYyNzI0MTVhNTU0ZGExYmExMmEyYTM1
NmJjM2Q1YTMxZS4uZjQzNTNiZGMwZmYzZDVkMWE2ZjhhOTE4NjFlZTM4ZmY3NWJmZDJiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
V2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250
cm9sbGVyLmpzCkBAIC0yNDMsMTEgKzI0MywyNiBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgog
ICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52
YWxpZFJlcXVlc3Q7CiAgICAgICAgIH0KIAotICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IEluc3BlY3RvckZyb250ZW5kSG9zdC5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5z
aW9uVGFiKGlmcmFtZSwgc2NyaXB0U291cmNlKX07Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7
Ci0gICAgICAgICAgICByZXR1cm4ge2Vycm9yOiBlcnJvci5tZXNzYWdlfTsKLSAgICAgICAgfQor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBJZiBgcmVzdWx0YGAgaXMgYSBwcm9taXNl
LCB0aGVuIGl0IGNhbWUgZnJvbSBhIGRpZmZlcmVudCBmcmFtZSBhbmQgYGluc3RhbmNlb2YgUHJv
bWlzZWAgd29uJ3Qgd29yay4KKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoaWZyYW1lLCBzY3JpcHRT
b3VyY2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ/LnRoZW4pCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQudGhlbigocmVzb2x2ZWRWYWx1ZSkgPT4gcmVzb2x2ZSh7cmVz
dWx0OiByZXNvbHZlZFZhbHVlfSksIChlcnJvclZhbHVlKSA9PiByZWplY3Qoe2Vycm9yOiBlcnJv
clZhbHVlfSkpOworCisgICAgICAgICAgICAgICAgcmVzb2x2ZSh7cmVzdWx0fSk7CisgICAgICAg
ICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgICAgIC8vIEluY2x1ZGUgbW9yZSBj
b250ZXh0IGluIHRoZSBzdHJpbmdpZmljYXRpb24gb2YgdGhlIGVycm9yLgorICAgICAgICAgICAg
ICAgIGNvbnN0IHN0YWNrSW5kZW50ID0gIiAgIjsKKyAgICAgICAgICAgICAgICBsZXQgc3RhY2tM
aW5lcyA9IChlcnJvci5zdGFjaz8uc3BsaXQoIlxuIikgfHwgW10pLm1hcCgobGluZSkgPT4gYCR7
c3RhY2tJbmRlbnR9JHtsaW5lfWApOworICAgICAgICAgICAgICAgIGxldCBmb3JtYXR0ZWRNZXNz
YWdlID0gWworICAgICAgICAgICAgICAgICAgICBgQ2F1Z2h0IEV4Y2VwdGlvbjogJHtlcnJvci5u
YW1lfWAsCisgICAgICAgICAgICAgICAgICAgIGBhdCAke2Vycm9yLnNvdXJjZVVSTH0sIExpbmUg
JHtlcnJvci5saW5lfSwgQ29sdW1uICR7ZXJyb3IuY29sdW1ufTpgLAorICAgICAgICAgICAgICAg
ICAgICAuLi5zdGFja0xpbmVzLAorICAgICAgICAgICAgICAgIF0uam9pbigiXG4iKTsKKyAgICAg
ICAgICAgICAgICByZWplY3Qoe2Vycm9yOiBmb3JtYXR0ZWRNZXNzYWdlfSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250
ZW5kQVBJLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
SW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKaW5kZXggYzZjMGFlZDczYWEzYjRlNjZjOTRiYTlhZjY1
ODE4Zjc2YmNkNmRhYi4uOGM5MDA0NjE4MGJkZGYyZjdlNWI1MTkwZjA1Mzk5NzhmZjkwMWU5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
SW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTIxOCw4ICsyMTgs
MTAgQEAgSW5zcGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAgfSwKIAogICAgIC8vIFJldHVybnMg
YSBzdHJpbmcgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUpIGlmIGFuIGVycm9y
IG9jY3VycmVkIHRoYXQgcHJldmVudGVkIGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBv
YmplY3Qgd2l0aCBhICdyZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9m
IHRoZSBzY3JpcHQgZXZhbHVhdGlvbi4KLSAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFu
ICdlcnJvcicga2V5IGFuZCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGF0IGFuIGV4Y2VwdGlvbiB3YXMg
dGhyb3duLgorICAgIC8vIFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhl
IGV2YWx1YXRpb24gY29tcGxldGVzIGFuZCByZWplY3RlZCBpZiB0aGVyZSB3YXMgYW4gaW50ZXJu
YWwgZXJyb3IuCisgICAgLy8gVGhlIHByb21pc2Ugd2lsbCByZXNvbHZlIHRvIG9uZSBvZjoKKyAg
ICAvLyAtIGFuIG9iamVjdCB3aXRoIGEgJ3Jlc3VsdCcga2V5IGFuZCB2YWx1ZSB0aGF0IGlzIHRo
ZSByZXN1bHQgb2YgdGhlIHNjcmlwdCBldmFsdWF0aW9uLgorICAgIC8vIC0gYW4gb2JqZWN0IHdp
dGggYW4gJ2Vycm9yJyBrZXkgYW5kIHZhbHVlIGluIHRoZSBjYXNlIHRoYXQgYW4gZXhjZXB0aW9u
IHdhcyB0aHJvd24gd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQuCiAgICAgZXZhbHVhdGVTY3JpcHRG
b3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIHNjcmlwdFNvdXJjZSwge2ZyYW1lVVJMLCBjb250ZXh0
U2VjdXJpdHlPcmlnaW4sIHVzZUNvbnRlbnRTY3JpcHRDb250ZXh0fSA9IHt9KQogICAgIHsKICAg
ICAgICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2Ny
aXB0Rm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCBzY3JpcHRTb3VyY2UsIHtmcmFtZVVSTCwgY29u
dGV4dFNlY3VyaXR5T3JpZ2luLCB1c2VDb250ZW50U2NyaXB0Q29udGV4dH0pOwpAQCAtMjM4LDgg
KzI0MCwxMCBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsKICAgICB9LAogCiAgICAgLy8gUmV0
dXJucyBhIHN0cmluZyAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZSkgaWYgYW4g
ZXJyb3Igb2NjdXJyZWQgdGhhdCBwcmV2ZW50ZWQgZXZhbHVhdGlvbi4KLSAgICAvLyBSZXR1cm5z
IGFuIG9iamVjdCB3aXRoIGEgJ3Jlc3VsdCcga2V5IGFuZCB2YWx1ZSB0aGF0IGlzIHRoZSByZXN1
bHQgb2YgdGhlIHNjcmlwdCBldmFsdWF0aW9uLgotICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHdp
dGggYW4gJ2Vycm9yJyBrZXkgYW5kIHZhbHVlIGluIHRoZSBjYXNlIHRoYXQgYW4gZXhjZXB0aW9u
IHdhcyB0aHJvd24uCisgICAgLy8gUmV0dXJucyBhIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBp
ZiB0aGUgZXZhbHVhdGlvbiBjb21wbGV0ZXMgYW5kIHJlamVjdGVkIGlmIHRoZXJlIHdhcyBhbiBp
bnRlcm5hbCBlcnJvci4KKyAgICAvLyBUaGUgcHJvbWlzZSB3aWxsIHJlc29sdmUgdG8gb25lIG9m
OgorICAgIC8vIC0gYW4gb2JqZWN0IHdpdGggYSAncmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQg
aXMgdGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV2YWx1YXRpb24uCisgICAgLy8gLSBhbiBvYmpl
Y3Qgd2l0aCBhbiAnZXJyb3InIGtleSBhbmQgdmFsdWUgaW4gdGhlIGNhc2UgdGhhdCBhbiBleGNl
cHRpb24gd2FzIHRocm93biB3aGlsZSBldmFsdWF0aW5nIHNjcmlwdC4KICAgICBldmFsdWF0ZVNj
cmlwdEluRXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklELCBzY3JpcHRTb3VyY2UpCiAgICAgewog
ICAgICAgICByZXR1cm4gV0kuc2hhcmVkQXBwLmV4dGVuc2lvbkNvbnRyb2xsZXIuZXZhbHVhdGVT
Y3JpcHRJbkV4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCwgc2NyaXB0U291cmNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcAppbmRleCA5OThkMThlMDU4
ZTQwMzY4ZmQ0N2EwNjZkYTQ0ZjZhODczY2RlNDI2Li44NDQ1OWZkZjZkMTI4NzRlZTAyZDBkOWM4
ZTJhNzNiMTM1MDhiN2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuY3BwCkBAIC0yNDUsNiArMjQ1LDggQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXI6OmV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3QKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgc3RkOjpudWxsb3B0LCBJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhmcm9u
dGVuZEdsb2JhbE9iamVjdCk7CiAKICAgICAgICAgaWYgKGF1dG8gcGFyc2VkRXJyb3IgPSB3ZWFr
VGhpcy0+cGFyc2VFeHRlbnNpb25FcnJvckZyb21FdmFsdWF0aW9uUmVzdWx0KHJlc3VsdCkpIHsK
ICAgICAgICAgICAgIGF1dG8gZXhjZXB0aW9uRGV0YWlscyA9IHJlc3VsdC52YWx1ZSgpLmVycm9y
KCk7CkBAIC0zOTksNyArNDAxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXI6OmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoY29uc3QgSW5zcGUKICAgICAgICAg
Ly8gRXhwZWN0ZWQgcmVzdWx0IGlzIGVpdGhlciBhbiBFcnJvclN0cmluZyBvciB7cmVzdWx0OiA8
YW55Pn0gb3Ige2Vycm9yOiBzdHJpbmd9LgogICAgICAgICBhdXRvIG9iamVjdFJlc3VsdCA9IHdl
YWtUaGlzLT51bndyYXBFdmFsdWF0aW9uUmVzdWx0QXNPYmplY3QocmVzdWx0KTsKICAgICAgICAg
aWYgKCFvYmplY3RSZXN1bHQpIHsKLSAgICAgICAgICAgIExPRyhJbnNwZWN0b3IsICJVbmV4cGVj
dGVkIG5vbi1vYmplY3QgdmFsdWUgcmV0dXJuZWQgZnJvbSBJbnNwZWN0b3JGcm9udGVuZEFQSS5j
cmVhdGVUYWJGb3JFeHRlbnNpb24oKS4iKTsKKyAgICAgICAgICAgIExPRyhJbnNwZWN0b3IsICJV
bmV4cGVjdGVkIG5vbi1vYmplY3QgdmFsdWUgcmV0dXJuZWQgZnJvbSBJbnNwZWN0b3JGcm9udGVu
ZEFQSS5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKCkuIik7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0sIHN0ZDo6bnVsbG9wdCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cjo6SW50ZXJuYWxFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2Y2M3YzA0Yzg3
MmJlNGI3NzczMjUzZDcxNzA3OTczZTk4Y2JmODM5Li5iOTc0NzI2OGQ4ZGI5OTZjMGY1NTFlZTY0
OTNlMjRjMjk4MzhhZWNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTMgIEJKIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBoYW5kbGUgUHJvbWlz
ZSBvYmplY3RzIHJldHVybmVkIGZyb20gZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzA5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NDIyNDE3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdDogCisKKyAgICAgICAgV0tJbnNw
ZWN0b3JFeHRlbnNpb24uRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblByb21p
c2VzCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVj
dG9yRXh0ZW5zaW9uLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMTAtMTEgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgQnJpbmcgdXAgYW4gaU9TIEdQ
VSBQcm9jZXNzIHRlc3RlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KaW5kZXggYTY0MDQ0M2Y0
ZWIzOTFiZTNiMGMxNGY0ZjQyYTFiYjU4NDNlYTMxYS4uM2E2Zjc1MDU4MzY2YThmMmVlM2QyMzUw
ZWMyMTE0M2VhNzE1YzU2MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCkBAIC0zMDYsNCAr
MzA2LDkyIEBAIFRFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb24sIEV4dGVuc2lvblRhYklzUGVyc2lz
dGVudCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCk7CiB9CiAKK1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb24sIEV2YWx1YXRlU2NyaXB0SW5F
eHRlbnNpb25UYWJDYW5SZXR1cm5Qcm9taXNlcykKK3sKKyAgICByZXNldEdsb2JhbFN0YXRlKCk7
CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJl
bmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3Rv
ckV4dGVuc2lvbiBuZXddKTsKKworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0
ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVz
dCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250
ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhh
bXBsZS5jb20vIl1dOworCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOwor
CisgICAgYXV0byBleHRlbnNpb25JRCA9IFtOU1VVSUQgVVVJRF0uVVVJRFN0cmluZzsKKyAgICBh
dXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1lID0gQCJUaGlyZEV4dGVuc2lvbiI7CisKKyAgICAvLyBS
ZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVk
ID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0
aElEOmV4dGVuc2lvbklEIGRpc3BsYXlOYW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvciwgX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uICogX051bGxhYmxlIGV4dGVuc2lvbikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb24pOworICAgICAgICBzaGFyZWRJbnNw
ZWN0b3JFeHRlbnNpb24gPSBleHRlbnNpb247CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2Fz
Q2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBl
bmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbkRlbGVnYXRlID0g
YWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0
ZW5zaW9uIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gc2V0RGVsZWdhdGU6
ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgLy8gQ3JlYXRlIGFuZCBzaG93IGFuIGV4
dGVuc2lvbiB0YWIuCisgICAgYXV0byBpY29uVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0
ZXN0LXJlc291cmNlOi8vVGhpcmRFeHRlbnNpb24vSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24t
MzB4MzAucG5nIl07CisgICAgYXV0byBzb3VyY2VVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMt
dGFiLmh0bWwiXTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAg
IFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gY3JlYXRlVGFiV2l0aE5hbWU6QCJUaGlyZEV4dGVu
c2lvbi1UYWIiIHRhYkljb25VUkw6aWNvblVSTCBzb3VyY2VVUkw6c291cmNlVVJMIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvciwgTlNTdHJpbmcgKiBfTnVsbGFi
bGUgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb25UYWJJZGVudGlmaWVyKTsKKyAgICAg
ICAgc2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllciA9IGV4dGVuc2lvblRhYklkZW50aWZpZXI7
CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisK
KyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBkaWRTaG93RXh0ZW5z
aW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3dF
eHRlbnNpb25UYWJXaXRoSWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyLmdl
dCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAg
ICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRp
bmdDYWxsYmFja1dhc0NhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRT
aG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkKTsKKworICAgIGF1dG8gc2VjcmV0U3RyaW5nID0gQCJP
cGVuIFNlc2FtZSI7CisgICAgYXV0byBzY3JpcHRTb3VyY2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIlByb21pc2UucmVzb2x2ZShcIiVAXCIpIiwgc2VjcmV0U3RyaW5nXTsKKworICAg
IHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JF
eHRlbnNpb24gX2V2YWx1YXRlU2NyaXB0OnNjcmlwdFNvdXJjZSBpbkV4dGVuc2lvblRhYldpdGhJ
ZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yLCBOU0RpY3Rpb25hcnkgKiBfTnVsbGFi
bGUgcmVzdWx0KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNU
X05PVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9OU19FUVVBTChyZXN1bHQsIHNlY3Jl
dFN0cmluZyk7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCk7CisKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbc2hh
cmVkSW5zcGVjdG9yRXh0ZW5zaW9uIF9ldmFsdWF0ZVNjcmlwdDpAIjs7OyIgaW5FeHRlbnNpb25U
YWJXaXRoSWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyLmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvciwgTlNEaWN0aW9uYXJ5ICog
X051bGxhYmxlIHJlc3VsdCkgeworICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAg
ICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5k
aW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgLy8gVW5yZWdpc3RlciB0aGUgdGVzdCBleHRl
bnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJW
aWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVjdG9yRXh0ZW5z
aW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikg
eworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNr
V2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVD
VE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441222</attachid>
            <date>2021-10-14 08:51:07 -0700</date>
            <delta_ts>2021-10-14 08:56:23 -0700</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-231709-20211014085106.patch</filename>
            <type>text/plain</type>
            <size>15327</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIxMDI3NTJjM2FjM2E2
NzJlNzkwYjA3NmI3YmUzZmYyNmM0MzRhMi4uZmU4YWQ3YThkMGE4ZjAzNjIwODM3MDQ0Y2E2YWUw
NGYwYjBkN2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEzICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
aGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBmcm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMjQxNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3Bl
Y3RvckV4dGVuc2lvbi5FdmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiQ2FuUmV0dXJuUHJvbWlz
ZXMKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpl
dmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKToKKyAgICAgICAgQWRkIEpTTG9ja0hvbGRlcnMgZm9y
IHdoZW4gd2UgYXJlIHBva2luZyBhdCB0aGUgcmVzdWx0IHZhbHVlLgorCiAyMDIxLTEwLTExICBC
ZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwdXNoIHJlZ2lzdHJhdGlv
biBzdHVicwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZTFhZWI3ZGY1MjE0MTBiNzIxYzll
MmRmMTg1OTQ1Nzk5YmQxMDQwMy4uYTdjN2M0OWE1N2VkZDA1MjUxY2U4MjUzZjQ2NGY5MDFiNmU3
Mzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTAt
MTMgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5z
cGVjdG9yOiBoYW5kbGUgUHJvbWlzZSBvYmplY3RzIHJldHVybmVkIGZyb20gZXZhbHVhdGVTY3Jp
cHRJbkV4dGVuc2lvblRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDIyNDE3OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAgICAg
ICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLmV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgRml4IGluY29ycmVjdCBoZWFkZXIg
ZG9jcyBmb3IgSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24u
CisgICAgICAgIENvcHkgdGhlIGltcHJvdmVkIGhlYWRlciBkb2MgZm9yIEluc3BlY3RvckZyb250
ZW5kQVBJLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgc2luY2UgaXQgbm93
IGhhcyB0aGUgc2FtZSBjYWxsaW5nIGNvbnZlbnRpb24uCisKIDIwMjEtMTAtMTEgIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIFRhYkJhciBj
b250ZXh0IG1lbnUgc3VwcG9ydCBmb3IgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYjBhNzkwZjVmOTJlOTgxNGMyZjExMzEyM2Q4ZmU3OGZmNGNhN2Qy
Yi4uYWY0ODAwNmNmOGI0ZWY0NTUxODM3OTFlODI1NTU3YTI4MjQ2OGU0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0xMC0xMyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGhhbmRsZSBQcm9taXNlIG9iamVjdHMgcmV0
dXJuZWQgZnJvbSBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MDkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0MjI0MTc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyOjpldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYik6CisgICAgICAgIEFkZCBKU0xvY2tIb2xkZXJzIGZvciB3aGVuIHdlIGFyZSBwb2tp
bmcgYXQgdGhlIHJlc3VsdCB2YWx1ZS4KKyAgICAgICAgRHJpdmUtYnksIGZpeCBhIHR5cG8gaW4g
bG9nZ2luZyBjb2RlLgorCiAyMDIxLTEwLTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFNtb290aC1zY3JvbGwgYW5pbWF0aW9ucyBzaG91bGQgcnVu
IGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAppbmRleCAwOWVk
OTA0ZjNhYTE2M2Y1YTUyYzU1YzBjOGQ3MDc5Y2E2NWFmZGRjLi4yNzA4MjI0ZWM4ZjRlMTQxMmJh
MTgxZWZhZGE0ZDAwODdjMTRmOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMTc2LDcg
KzE3Niw5IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9y
UXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwCiAgICAgICAgIG9wdGlvbmFsUmVzdWx0
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFdmFsdWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCisgICAgCisgICAgSlNDOjpKU0xv
Y2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QpOworICAgIAogICAgIGF1dG8mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8qIGNhc3RlZFByb21pc2UgPSBKU0M6OmpzRHluYW1pY0Nh
c3Q8SlNDOjpKU1Byb21pc2UqPih2bSwgcmVzdWx0LnZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
UHJvbWlzZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4
dGVuc2lvbkNvbnRyb2xsZXIuanMKaW5kZXggMDMwY2JmOWYyNzI0MTVhNTU0ZGExYmExMmEyYTM1
NmJjM2Q1YTMxZS4uMjEyMzBiODZkY2Q4MmI5MGIwY2Q1NTNmYjc0ODllOWEyMTZkZDA4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
V2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250
cm9sbGVyLmpzCkBAIC0yNDMsMTEgKzI0MywyOSBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgog
ICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52
YWxpZFJlcXVlc3Q7CiAgICAgICAgIH0KIAotICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IEluc3BlY3RvckZyb250ZW5kSG9zdC5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5z
aW9uVGFiKGlmcmFtZSwgc2NyaXB0U291cmNlKX07Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7
Ci0gICAgICAgICAgICByZXR1cm4ge2Vycm9yOiBlcnJvci5tZXNzYWdlfTsKLSAgICAgICAgfQor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBJZiBgcmVzdWx0YCBpcyBhIHByb21pc2Us
IHRoZW4gaXQgY2FtZSBmcm9tIGEgZGlmZmVyZW50IGZyYW1lIGFuZCBgaW5zdGFuY2VvZiBQcm9t
aXNlYCB3b24ndCB3b3JrLgorICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihpZnJhbWUsIHNjcmlwdFNv
dXJjZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8udGhlbikKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXNvbHZlZFZhbHVlKSA9PiByZXNvbHZlKHtyZXN1
bHQ6IHJlc29sdmVkVmFsdWV9KSwgKGVycm9yVmFsdWUpID0+IHJlamVjdCh7ZXJyb3I6IGVycm9y
VmFsdWV9KSk7CisKKyAgICAgICAgICAgICAgICByZXNvbHZlKHtyZXN1bHR9KTsKKyAgICAgICAg
ICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgLy8gSW5jbHVkZSBtb3JlIGNv
bnRleHQgaW4gdGhlIHN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgZXJyb3IuCisgICAgICAgICAgICAg
ICAgY29uc3Qgc3RhY2tJbmRlbnQgPSAiICAiOworICAgICAgICAgICAgICAgIGxldCBzdGFja0xp
bmVzID0gKGVycm9yLnN0YWNrPy5zcGxpdCgiXG4iKSB8fCBbXSkubWFwKChsaW5lKSA9PiBgJHtz
dGFja0luZGVudH0ke2xpbmV9YCk7CisgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE1lc3Nh
Z2UgPSBbCisgICAgICAgICAgICAgICAgICAgIGBDYXVnaHQgRXhjZXB0aW9uOiAke2Vycm9yLm5h
bWV9YCwKKyAgICAgICAgICAgICAgICAgICAgYGF0ICR7ZXJyb3Iuc291cmNlVVJMIHx8ICIodW5r
bm93bikifToke2Vycm9yLmxpbmUgfHwgMH06JHtlcnJvci5jb2x1bW4gfHwgMH06YCwKKyAgICAg
ICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisg
ICAgICAgICAgICAgICAgICAgICJCYWNrdHJhY2U6IiwKKyAgICAgICAgICAgICAgICAgICAgLi4u
c3RhY2tMaW5lcywKKyAgICAgICAgICAgICAgICBdLmpvaW4oIlxuIik7CisgICAgICAgICAgICAg
ICAgcmVqZWN0KHtlcnJvcjogZm9ybWF0dGVkTWVzc2FnZX0pOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3Rv
ckZyb250ZW5kQVBJLmpzCmluZGV4IGM2YzBhZWQ3M2FhM2I0ZTY2Yzk0YmE5YWY2NTgxOGY3NmJj
ZDZkYWIuLmE0NmUzOWMyYWY1ODExYjQ4MTVhZGUzZDEwNDdjMzNhMmE1NDY1YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3Rv
ckZyb250ZW5kQVBJLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCkBAIC0yMTgsOCArMjE4LDEwIEBAIElu
c3BlY3RvckZyb250ZW5kQVBJID0gewogICAgIH0sCiAKICAgICAvLyBSZXR1cm5zIGEgc3RyaW5n
IChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlKSBpZiBhbiBlcnJvciBvY2N1cnJl
ZCB0aGF0IHByZXZlbnRlZCBldmFsdWF0aW9uLgotICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHdp
dGggYSAncmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgc2Ny
aXB0IGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbiAnZXJyb3In
IGtleSBhbmQgdmFsdWUgaW4gdGhlIGNhc2UgdGhhdCBhbiBleGNlcHRpb24gd2FzIHRocm93bi4K
KyAgICAvLyBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGlmIHRoZSBldmFsdWF0
aW9uIGNvbXBsZXRlcyBhbmQgcmVqZWN0ZWQgaWYgdGhlcmUgd2FzIGFuIGludGVybmFsIGVycm9y
LgorICAgIC8vIFdoZW4gdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBpdCB3aWxsIGJlIGVpdGhl
cjoKKyAgICAvLyAtIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSAncmVzdWx0
JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV2YWx1YXRp
b24uCisgICAgLy8gLSByZWplY3RlZCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGFuICdlcnJv
cicga2V5IGFuZCB2YWx1ZSB0aGF0IGlzIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgdGhyb3duIHdo
aWxlIGV2YWx1YXRpbmcgc2NyaXB0LgogICAgIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGV4
dGVuc2lvbklELCBzY3JpcHRTb3VyY2UsIHtmcmFtZVVSTCwgY29udGV4dFNlY3VyaXR5T3JpZ2lu
LCB1c2VDb250ZW50U2NyaXB0Q29udGV4dH0gPSB7fSkKICAgICB7CiAgICAgICAgIHJldHVybiBX
SS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lv
bihleHRlbnNpb25JRCwgc2NyaXB0U291cmNlLCB7ZnJhbWVVUkwsIGNvbnRleHRTZWN1cml0eU9y
aWdpbiwgdXNlQ29udGVudFNjcmlwdENvbnRleHR9KTsKQEAgLTIzOCw4ICsyNDAsMTAgQEAgSW5z
cGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAgfSwKIAogICAgIC8vIFJldHVybnMgYSBzdHJpbmcg
KFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUpIGlmIGFuIGVycm9yIG9jY3VycmVk
IHRoYXQgcHJldmVudGVkIGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2l0
aCBhICdyZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3Jp
cHQgZXZhbHVhdGlvbi4KLSAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFuICdlcnJvcicg
a2V5IGFuZCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGF0IGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
ICAgIC8vIFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIGV2YWx1YXRp
b24gY29tcGxldGVzIGFuZCByZWplY3RlZCBpZiB0aGVyZSB3YXMgYW4gaW50ZXJuYWwgZXJyb3Iu
CisgICAgLy8gV2hlbiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGl0IHdpbGwgYmUgZWl0aGVy
OgorICAgIC8vIC0gcmVzb2x2ZWQgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBhICdyZXN1bHQn
IGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXZhbHVhdGlv
bi4KKyAgICAvLyAtIHJlamVjdGVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gJ2Vycm9y
JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIGV4Y2VwdGlvbiB0aGF0IHdhcyB0aHJvd24gd2hp
bGUgZXZhbHVhdGluZyBzY3JpcHQuCiAgICAgZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihl
eHRlbnNpb25UYWJJRCwgc2NyaXB0U291cmNlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFdJLnNo
YXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIo
ZXh0ZW5zaW9uVGFiSUQsIHNjcmlwdFNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggOTk4ZDE4ZTA1OGU0MDM2OGZkNDdhMDY2ZGE0NGY2
YTg3M2NkZTQyNi4uODQ0NTlmZGY2ZDEyODc0ZWUwMmQwZDljOGUyYTczYjEzNTA4YjdmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtMjQ1LDYg
KzI0NSw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0
ZVNjcmlwdEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcih7IH0sIHN0ZDo6bnVsbG9wdCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6Q29u
dGV4dERlc3Ryb3llZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZnJvbnRlbmRHbG9iYWxPYmplY3QpOwog
CiAgICAgICAgIGlmIChhdXRvIHBhcnNlZEVycm9yID0gd2Vha1RoaXMtPnBhcnNlRXh0ZW5zaW9u
RXJyb3JGcm9tRXZhbHVhdGlvblJlc3VsdChyZXN1bHQpKSB7CiAgICAgICAgICAgICBhdXRvIGV4
Y2VwdGlvbkRldGFpbHMgPSByZXN1bHQudmFsdWUoKS5lcnJvcigpOwpAQCAtMzk5LDcgKzQwMSw3
IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0ZVNjcmlw
dEluRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlCiAgICAgICAgIC8vIEV4cGVjdGVkIHJlc3VsdCBp
cyBlaXRoZXIgYW4gRXJyb3JTdHJpbmcgb3Ige3Jlc3VsdDogPGFueT59IG9yIHtlcnJvcjogc3Ry
aW5nfS4KICAgICAgICAgYXV0byBvYmplY3RSZXN1bHQgPSB3ZWFrVGhpcy0+dW53cmFwRXZhbHVh
dGlvblJlc3VsdEFzT2JqZWN0KHJlc3VsdCk7CiAgICAgICAgIGlmICghb2JqZWN0UmVzdWx0KSB7
Ci0gICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24tb2JqZWN0IHZhbHVl
IHJldHVybmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuY3JlYXRlVGFiRm9yRXh0ZW5zaW9u
KCkuIik7CisgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24tb2JqZWN0
IHZhbHVlIHJldHVybmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3JpcHRJ
bkV4dGVuc2lvblRhYigpLiIpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBz
dGQ6Om51bGxvcHQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludGVybmFsRXJyb3IpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmNjN2MwNGM4NzJiZTRiNzc3MzI1M2Q3MTcwNzk3
M2U5OGNiZjgzOS4uOWU4ZTIxZjc1Y2FkYWE0MDRmOThlNjNkNTVhYzRmMjUwOWNmYjM4MiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTEwLTEzICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gV2ViIEluc3BlY3RvcjogaGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBm
cm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQyMjQxNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IHRlc3Q6IAorICAgICAgICBXS0luc3BlY3RvckV4dGVuc2lvbi5FdmFsdWF0
ZVNjcmlwdEluRXh0ZW5zaW9uVGFiQ2FuUmV0dXJuUHJvbWlzZXMKKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAg
ICAgIChURVNUKToKKwogMjAyMS0xMC0xMSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBCcmluZyB1cCBhbiBpT1MgR1BVIFByb2Nlc3MgdGVzdGVyCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RXh0ZW5zaW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0lu
c3BlY3RvckV4dGVuc2lvbi5tbQppbmRleCBhNjQwNDQzZjRlYjM5MWJlM2IwYzE0ZjRmNDJhMWJi
NTg0M2VhMzFhLi4xZDdlM2VlNGJjMWQ0NGI4ZDQ3ZmZjYjlmMmNjMzhkNWEwOGNhMzExIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RXh0ZW5zaW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KQEAgLTMwNiw0ICszMDYsOTIgQEAgVEVTVChXS0luc3Bl
Y3RvckV4dGVuc2lvbiwgRXh0ZW5zaW9uVGFiSXNQZXJzaXN0ZW50KQogICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKIH0KIAorVEVTVChXS0lu
c3BlY3RvckV4dGVuc2lvbiwgRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblBy
b21pc2VzKQoreworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsKKworICAgIGF1dG8gd2ViVmlld0Nv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAg
IHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNF
bmFibGVkID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFk
b3B0TlMoW1VJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uIG5ld10pOworCisg
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVk
PC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBb
W3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbklE
ID0gW05TVVVJRCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5h
bWUgPSBAIlRoaXJkRXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVu
c2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZp
ZXcgX2luc3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlzcGxh
eU5hbWU6ZXh0ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICog
X051bGxhYmxlIGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0ZW5z
aW9uKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9O
VUxMKGV4dGVuc2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVu
c2lvbjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVk
KTsKKworICAgIGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb24gbmV3XSk7CisgICAgW3No
YXJlZEluc3BlY3RvckV4dGVuc2lvbiBzZXREZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICAvLyBDcmVhdGUgYW5kIHNob3cgYW4gZXh0ZW5zaW9uIHRhYi4KKyAgICBhdXRv
IGljb25VUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4
dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmciXTsKKyAgICBhdXRv
IHNvdXJjZVVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdC1yZXNvdXJjZTovL1RoaXJk
RXh0ZW5zaW9uL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCJdOworCisgICAgcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVu
c2lvbiBjcmVhdGVUYWJXaXRoTmFtZTpAIlRoaXJkRXh0ZW5zaW9uLVRhYiIgdGFiSWNvblVSTDpp
Y29uVVJMIHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICog
X051bGxhYmxlIGVycm9yLCBOU1N0cmluZyAqIF9OdWxsYWJsZSBleHRlbnNpb25UYWJJZGVudGlm
aWVyKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9O
VUxMKGV4dGVuc2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJ
ZGVudGlmaWVyID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dh
c0NhbGxlZCA9IGZhbHNlOworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxz
ZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlm
aWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6
XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxs
ZWQpOworCisgICAgYXV0byBzZWNyZXRTdHJpbmcgPSBAIk9wZW4gU2VzYW1lIjsKKyAgICBhdXRv
IHNjcmlwdFNvdXJjZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiUHJvbWlzZS5yZXNv
bHZlKFwiJUBcIikiLCBzZWNyZXRTdHJpbmddOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBfZXZhbHVhdGVTY3Jp
cHQ6c2NyaXB0U291cmNlIGluRXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5z
aW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVs
bGFibGUgZXJyb3IsIE5TRGljdGlvbmFyeSAqIF9OdWxsYWJsZSByZXN1bHQpIHsKKyAgICAgICAg
RVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzdWx0KTsKKyAg
ICAgICAgRVhQRUNUX05TX0VRVUFMKHJlc3VsdCwgc2VjcmV0U3RyaW5nKTsKKworICAgICAgICBw
ZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdD
YWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24g
X2V2YWx1YXRlU2NyaXB0OkAiKCgoIiBpbkV4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJl
ZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9y
ICogX051bGxhYmxlIGVycm9yLCBOU0RpY3Rpb25hcnkgKiBfTnVsbGFibGUgcmVzdWx0KSB7Cisg
ICAgICAgIEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3Vs
dCk7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7
CisKKyAgICAvLyBVbnJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdp
c3RlckV4dGVuc2lvbjpzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KGVycm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkKTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441223</attachid>
            <date>2021-10-14 08:56:25 -0700</date>
            <delta_ts>2021-10-15 10:29:31 -0700</delta_ts>
            <desc>Patch v1.1.1 (better changelog)</desc>
            <filename>bug-231709-20211014085624.patch</filename>
            <type>text/plain</type>
            <size>15777</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIxMDI3NTJjM2FjM2E2
NzJlNzkwYjA3NmI3YmUzZmYyNmM0MzRhMi4uZmU4YWQ3YThkMGE4ZjAzNjIwODM3MDQ0Y2E2YWUw
NGYwYjBkN2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTEzICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
aGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBmcm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMjQxNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3Bl
Y3RvckV4dGVuc2lvbi5FdmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiQ2FuUmV0dXJuUHJvbWlz
ZXMKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpl
dmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKToKKyAgICAgICAgQWRkIEpTTG9ja0hvbGRlcnMgZm9y
IHdoZW4gd2UgYXJlIHBva2luZyBhdCB0aGUgcmVzdWx0IHZhbHVlLgorCiAyMDIxLTEwLTExICBC
ZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwdXNoIHJlZ2lzdHJhdGlv
biBzdHVicwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZTFhZWI3ZGY1MjE0MTBiNzIxYzll
MmRmMTg1OTQ1Nzk5YmQxMDQwMy4uNTBjN2Q5ZGNhY2FlYWU2NmViOTQ4ZjQyZjMxMmVjNzM5ODEy
Y2ZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMTAt
MTMgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5z
cGVjdG9yOiBoYW5kbGUgUHJvbWlzZSBvYmplY3RzIHJldHVybmVkIGZyb20gZXZhbHVhdGVTY3Jp
cHRJbkV4dGVuc2lvblRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNzA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDIyNDE3OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cHJvdmVzIHRoZSBoYW5kbGluZyBvZiBwcm9taXNlcyBhbmQgZXhjZXB0aW9ucyB0aGF0IGNvbWUg
ZnJvbQorICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYigpLgorCisgICAgICAgIEZvciBwcm9taXNlcywgd2FpdCBmb3IgdGhlIHJldHVybmVk
IHByb21pc2UgdG8gc2V0dGxlIGJlZm9yZSBmdWxmaWxsaW5nIG91ciByZXR1cm5lZCB2YWx1ZS4K
KyAgICAgICAgRm9yIGVycm9ycywgcGVyZm9ybSBhIGJldHRlciBzdHJpbmdpZmljYXRpb24gb2Yg
dGhlIEVycm9yIGluc3RhbmNlLiBUaGUgaXMgbmVlZGVkIGJlY2F1c2UKKyAgICAgICAgdGhlIGRl
ZmF1bHQgdG9TdHJpbmcgaW1wbGVtZW50YXRpb24gbGVhdmVzIG91dCBtb3N0IG9mIHRoZSByZWxl
dmFudCBkZXRhaWxzIG9mIHRoZSBlcnJvci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdJ
LldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLmV2YWx1YXRlU2NyaXB0
SW5FeHRlbnNpb25UYWIpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNw
ZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgRml4IGluY29ycmVjdCBoZWFkZXIgZG9jcyBm
b3IgSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24uCisgICAg
ICAgIENvcHkgdGhlIGltcHJvdmVkIGhlYWRlciBkb2MgZm9yIEluc3BlY3RvckZyb250ZW5kQVBJ
LmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgc2luY2UgaXQgbm93IGhhcyB0
aGUgc2FtZSBjYWxsaW5nIGNvbnZlbnRpb24uCisKIDIwMjEtMTAtMTEgIEJKIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIFRhYkJhciBjb250ZXh0
IG1lbnUgc3VwcG9ydCBmb3IgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjBhNzkwZjVmOTJlOTgxNGMyZjExMzEyM2Q4ZmU3OGZmNGNhN2QyYi4uYWY0
ODAwNmNmOGI0ZWY0NTUxODM3OTFlODI1NTU3YTI4MjQ2OGU0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAyMS0xMC0xMyAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGhhbmRsZSBQcm9taXNlIG9iamVjdHMgcmV0dXJuZWQg
ZnJvbSBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg0MjI0MTc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyOjpldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRh
Yik6CisgICAgICAgIEFkZCBKU0xvY2tIb2xkZXJzIGZvciB3aGVuIHdlIGFyZSBwb2tpbmcgYXQg
dGhlIHJlc3VsdCB2YWx1ZS4KKyAgICAgICAgRHJpdmUtYnksIGZpeCBhIHR5cG8gaW4gbG9nZ2lu
ZyBjb2RlLgorCiAyMDIxLTEwLTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFNtb290aC1zY3JvbGwgYW5pbWF0aW9ucyBzaG91bGQgcnVuIGluIHRo
ZSBVSSBwcm9jZXNzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAppbmRleCAwOWVkOTA0ZjNh
YTE2M2Y1YTUyYzU1YzBjOGQ3MDc5Y2E2NWFmZGRjLi4yNzA4MjI0ZWM4ZjRlMTQxMmJhMTgxZWZh
ZGE0ZDAwODdjMTRmOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMTc2LDcgKzE3Niw5
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwCiAgICAgICAgIG9wdGlvbmFsUmVzdWx0SGFuZGxl
cihtYWtlVW5leHBlY3RlZChFdmFsdWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCisgICAgCisgICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9jayhnbG9iYWxPYmplY3QpOworICAgIAogICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8qIGNhc3RlZFByb21pc2UgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlND
OjpKU1Byb21pc2UqPih2bSwgcmVzdWx0LnZhbHVlKCkpOwogICAgIGlmICghY2FzdGVkUHJvbWlz
ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lv
bkNvbnRyb2xsZXIuanMKaW5kZXggMDMwY2JmOWYyNzI0MTVhNTU0ZGExYmExMmEyYTM1NmJjM2Q1
YTMxZS4uMjEyMzBiODZkY2Q4MmI5MGIwY2Q1NTNmYjc0ODllOWEyMTZkZDA4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVy
LmpzCkBAIC0yNDMsMTEgKzI0MywyOSBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9s
bGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAg
ICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52YWxpZFJl
cXVlc3Q7CiAgICAgICAgIH0KIAotICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIHty
ZXN1bHQ6IEluc3BlY3RvckZyb250ZW5kSG9zdC5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFi
KGlmcmFtZSwgc2NyaXB0U291cmNlKX07Ci0gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAg
ICAgICAgICByZXR1cm4ge2Vycm9yOiBlcnJvci5tZXNzYWdlfTsKLSAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBJZiBgcmVzdWx0YCBpcyBhIHByb21pc2UsIHRoZW4g
aXQgY2FtZSBmcm9tIGEgZGlmZmVyZW50IGZyYW1lIGFuZCBgaW5zdGFuY2VvZiBQcm9taXNlYCB3
b24ndCB3b3JrLgorICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihpZnJhbWUsIHNjcmlwdFNvdXJjZSk7
CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdD8udGhlbikKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC50aGVuKChyZXNvbHZlZFZhbHVlKSA9PiByZXNvbHZlKHtyZXN1bHQ6IHJl
c29sdmVkVmFsdWV9KSwgKGVycm9yVmFsdWUpID0+IHJlamVjdCh7ZXJyb3I6IGVycm9yVmFsdWV9
KSk7CisKKyAgICAgICAgICAgICAgICByZXNvbHZlKHtyZXN1bHR9KTsKKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgLy8gSW5jbHVkZSBtb3JlIGNvbnRleHQg
aW4gdGhlIHN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgZXJyb3IuCisgICAgICAgICAgICAgICAgY29u
c3Qgc3RhY2tJbmRlbnQgPSAiICAiOworICAgICAgICAgICAgICAgIGxldCBzdGFja0xpbmVzID0g
KGVycm9yLnN0YWNrPy5zcGxpdCgiXG4iKSB8fCBbXSkubWFwKChsaW5lKSA9PiBgJHtzdGFja0lu
ZGVudH0ke2xpbmV9YCk7CisgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE1lc3NhZ2UgPSBb
CisgICAgICAgICAgICAgICAgICAgIGBDYXVnaHQgRXhjZXB0aW9uOiAke2Vycm9yLm5hbWV9YCwK
KyAgICAgICAgICAgICAgICAgICAgYGF0ICR7ZXJyb3Iuc291cmNlVVJMIHx8ICIodW5rbm93biki
fToke2Vycm9yLmxpbmUgfHwgMH06JHtlcnJvci5jb2x1bW4gfHwgMH06YCwKKyAgICAgICAgICAg
ICAgICAgICAgZXJyb3IubWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAg
ICAgICAgICAgICAgICJCYWNrdHJhY2U6IiwKKyAgICAgICAgICAgICAgICAgICAgLi4uc3RhY2tM
aW5lcywKKyAgICAgICAgICAgICAgICBdLmpvaW4oIlxuIik7CisgICAgICAgICAgICAgICAgcmVq
ZWN0KHtlcnJvcjogZm9ybWF0dGVkTWVzc2FnZX0pOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250
ZW5kQVBJLmpzCmluZGV4IGM2YzBhZWQ3M2FhM2I0ZTY2Yzk0YmE5YWY2NTgxOGY3NmJjZDZkYWIu
LmE0NmUzOWMyYWY1ODExYjQ4MTVhZGUzZDEwNDdjMzNhMmE1NDY1YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250
ZW5kQVBJLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCkBAIC0yMTgsOCArMjE4LDEwIEBAIEluc3BlY3Rv
ckZyb250ZW5kQVBJID0gewogICAgIH0sCiAKICAgICAvLyBSZXR1cm5zIGEgc3RyaW5nIChXSS5X
ZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlKSBpZiBhbiBlcnJvciBvY2N1cnJlZCB0aGF0
IHByZXZlbnRlZCBldmFsdWF0aW9uLgotICAgIC8vIFJldHVybnMgYW4gb2JqZWN0IHdpdGggYSAn
cmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV2
YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbiAnZXJyb3InIGtleSBh
bmQgdmFsdWUgaW4gdGhlIGNhc2UgdGhhdCBhbiBleGNlcHRpb24gd2FzIHRocm93bi4KKyAgICAv
LyBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGlmIHRoZSBldmFsdWF0aW9uIGNv
bXBsZXRlcyBhbmQgcmVqZWN0ZWQgaWYgdGhlcmUgd2FzIGFuIGludGVybmFsIGVycm9yLgorICAg
IC8vIFdoZW4gdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBpdCB3aWxsIGJlIGVpdGhlcjoKKyAg
ICAvLyAtIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSAncmVzdWx0JyBrZXkg
YW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV2YWx1YXRpb24uCisg
ICAgLy8gLSByZWplY3RlZCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGFuICdlcnJvcicga2V5
IGFuZCB2YWx1ZSB0aGF0IGlzIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgdGhyb3duIHdoaWxlIGV2
YWx1YXRpbmcgc2NyaXB0LgogICAgIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGV4dGVuc2lv
bklELCBzY3JpcHRTb3VyY2UsIHtmcmFtZVVSTCwgY29udGV4dFNlY3VyaXR5T3JpZ2luLCB1c2VD
b250ZW50U2NyaXB0Q29udGV4dH0gPSB7fSkKICAgICB7CiAgICAgICAgIHJldHVybiBXSS5zaGFy
ZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihleHRl
bnNpb25JRCwgc2NyaXB0U291cmNlLCB7ZnJhbWVVUkwsIGNvbnRleHRTZWN1cml0eU9yaWdpbiwg
dXNlQ29udGVudFNjcmlwdENvbnRleHR9KTsKQEAgLTIzOCw4ICsyNDAsMTAgQEAgSW5zcGVjdG9y
RnJvbnRlbmRBUEkgPSB7CiAgICAgfSwKIAogICAgIC8vIFJldHVybnMgYSBzdHJpbmcgKFdJLldl
Ykluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUpIGlmIGFuIGVycm9yIG9jY3VycmVkIHRoYXQg
cHJldmVudGVkIGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhICdy
ZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXZh
bHVhdGlvbi4KLSAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFuICdlcnJvcicga2V5IGFu
ZCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGF0IGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLgorICAgIC8v
IFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIGV2YWx1YXRpb24gY29t
cGxldGVzIGFuZCByZWplY3RlZCBpZiB0aGVyZSB3YXMgYW4gaW50ZXJuYWwgZXJyb3IuCisgICAg
Ly8gV2hlbiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGl0IHdpbGwgYmUgZWl0aGVyOgorICAg
IC8vIC0gcmVzb2x2ZWQgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBhICdyZXN1bHQnIGtleSBh
bmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXZhbHVhdGlvbi4KKyAg
ICAvLyAtIHJlamVjdGVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gJ2Vycm9yJyBrZXkg
YW5kIHZhbHVlIHRoYXQgaXMgdGhlIGV4Y2VwdGlvbiB0aGF0IHdhcyB0aHJvd24gd2hpbGUgZXZh
bHVhdGluZyBzY3JpcHQuCiAgICAgZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihleHRlbnNp
b25UYWJJRCwgc2NyaXB0U291cmNlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFdJLnNoYXJlZEFw
cC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoZXh0ZW5z
aW9uVGFiSUQsIHNjcmlwdFNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlci5jcHAKaW5kZXggOTk4ZDE4ZTA1OGU0MDM2OGZkNDdhMDY2ZGE0NGY2YTg3M2Nk
ZTQyNi4uODQ0NTlmZGY2ZDEyODc0ZWUwMmQwZDljOGUyYTczYjEzNTA4YjdmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtMjQ1LDYgKzI0NSw4
IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0ZVNjcmlw
dEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0sIHN0ZDo6bnVsbG9wdCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6Q29udGV4dERl
c3Ryb3llZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZnJvbnRlbmRHbG9iYWxPYmplY3QpOwogCiAgICAg
ICAgIGlmIChhdXRvIHBhcnNlZEVycm9yID0gd2Vha1RoaXMtPnBhcnNlRXh0ZW5zaW9uRXJyb3JG
cm9tRXZhbHVhdGlvblJlc3VsdChyZXN1bHQpKSB7CiAgICAgICAgICAgICBhdXRvIGV4Y2VwdGlv
bkRldGFpbHMgPSByZXN1bHQudmFsdWUoKS5lcnJvcigpOwpAQCAtMzk5LDcgKzQwMSw3IEBAIHZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0ZVNjcmlwdEluRXh0
ZW5zaW9uVGFiKGNvbnN0IEluc3BlCiAgICAgICAgIC8vIEV4cGVjdGVkIHJlc3VsdCBpcyBlaXRo
ZXIgYW4gRXJyb3JTdHJpbmcgb3Ige3Jlc3VsdDogPGFueT59IG9yIHtlcnJvcjogc3RyaW5nfS4K
ICAgICAgICAgYXV0byBvYmplY3RSZXN1bHQgPSB3ZWFrVGhpcy0+dW53cmFwRXZhbHVhdGlvblJl
c3VsdEFzT2JqZWN0KHJlc3VsdCk7CiAgICAgICAgIGlmICghb2JqZWN0UmVzdWx0KSB7Ci0gICAg
ICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24tb2JqZWN0IHZhbHVlIHJldHVy
bmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuY3JlYXRlVGFiRm9yRXh0ZW5zaW9uKCkuIik7
CisgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24tb2JqZWN0IHZhbHVl
IHJldHVybmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYigpLiIpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBzdGQ6Om51
bGxvcHQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludGVybmFsRXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNmNjN2MwNGM4NzJiZTRiNzc3MzI1M2Q3MTcwNzk3M2U5OGNi
ZjgzOS4uOWU4ZTIxZjc1Y2FkYWE0MDRmOThlNjNkNTVhYzRmMjUwOWNmYjM4MiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTEwLTEzICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2Nv
YV0gV2ViIEluc3BlY3RvcjogaGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBmcm9tIGV2
YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMjQx
Nzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgbmV3IHRlc3Q6IAorICAgICAgICBXS0luc3BlY3RvckV4dGVuc2lvbi5FdmFsdWF0ZVNjcmlw
dEluRXh0ZW5zaW9uVGFiQ2FuUmV0dXJuUHJvbWlzZXMKKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgIChU
RVNUKToKKwogMjAyMS0xMC0xMSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBCcmluZyB1cCBhbiBpT1MgR1BVIFByb2Nlc3MgdGVzdGVyCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5z
aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3Rv
ckV4dGVuc2lvbi5tbQppbmRleCBhNjQwNDQzZjRlYjM5MWJlM2IwYzE0ZjRmNDJhMWJiNTg0M2Vh
MzFhLi4xZDdlM2VlNGJjMWQ0NGI4ZDQ3ZmZjYjlmMmNjMzhkNWEwOGNhMzExIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5z
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNw
ZWN0b3JFeHRlbnNpb24ubW0KQEAgLTMwNiw0ICszMDYsOTIgQEAgVEVTVChXS0luc3BlY3RvckV4
dGVuc2lvbiwgRXh0ZW5zaW9uVGFiSXNQZXJzaXN0ZW50KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKIH0KIAorVEVTVChXS0luc3BlY3Rv
ckV4dGVuc2lvbiwgRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblByb21pc2Vz
KQoreworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIHdlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVk
ID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1VJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uIG5ld10pOworCisgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRs
ZT48L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dlYlZp
ZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRB
dHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbklEID0gW05T
VVVJRCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBA
IlRoaXJkRXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4K
KyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2lu
c3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlzcGxheU5hbWU6
ZXh0ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxh
YmxlIGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0ZW5zaW9uKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4
dGVuc2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lvbjsK
KworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKwor
ICAgIGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb24gbmV3XSk7CisgICAgW3NoYXJlZElu
c3BlY3RvckV4dGVuc2lvbiBzZXREZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisK
KyAgICAvLyBDcmVhdGUgYW5kIHNob3cgYW4gZXh0ZW5zaW9uIHRhYi4KKyAgICBhdXRvIGljb25V
UkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lv
bi9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmciXTsKKyAgICBhdXRvIHNvdXJj
ZVVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdC1yZXNvdXJjZTovL1RoaXJkRXh0ZW5z
aW9uL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCJdOworCisgICAgcGVuZGluZ0Nh
bGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBj
cmVhdGVUYWJXaXRoTmFtZTpAIlRoaXJkRXh0ZW5zaW9uLVRhYiIgdGFiSWNvblVSTDppY29uVVJM
IHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxh
YmxlIGVycm9yLCBOU1N0cmluZyAqIF9OdWxsYWJsZSBleHRlbnNpb25UYWJJZGVudGlmaWVyKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4
dGVuc2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlm
aWVyID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tX
YXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxl
ZCA9IGZhbHNlOworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKKyAg
ICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNo
YXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vy
cm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKwor
ICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQpOwor
CisgICAgYXV0byBzZWNyZXRTdHJpbmcgPSBAIk9wZW4gU2VzYW1lIjsKKyAgICBhdXRvIHNjcmlw
dFNvdXJjZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiUHJvbWlzZS5yZXNvbHZlKFwi
JUBcIikiLCBzZWNyZXRTdHJpbmddOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBfZXZhbHVhdGVTY3JpcHQ6c2Ny
aXB0U291cmNlIGluRXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9uVGFi
SWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUg
ZXJyb3IsIE5TRGljdGlvbmFyeSAqIF9OdWxsYWJsZSByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNU
X05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzdWx0KTsKKyAgICAgICAg
RVhQRUNUX05TX0VRVUFMKHJlc3VsdCwgc2VjcmV0U3RyaW5nKTsKKworICAgICAgICBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFj
a1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gX2V2YWx1
YXRlU2NyaXB0OkAiKCgoIiBpbkV4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVu
c2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051
bGxhYmxlIGVycm9yLCBOU0RpY3Rpb25hcnkgKiBfTnVsbGFibGUgcmVzdWx0KSB7CisgICAgICAg
IEVYUEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisK
KyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAg
ICAvLyBVbnJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tX
YXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdpc3RlckV4
dGVuc2lvbjpzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6
XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
K30KKwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441398</attachid>
            <date>2021-10-15 10:29:33 -0700</date>
            <delta_ts>2021-10-15 12:16:27 -0700</delta_ts>
            <desc>[fast-cq] Patch v1.1.2 (for landing)</desc>
            <filename>bug-231709-20211015102933.patch</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZhYWRjN2EzYzdmMGYx
YzQyZDU0YzkzOTdhMWY5MWQxMjBkY2M3NS4uYWVlZjMxMTQ1NGQxMjIwMTdkNDk0NDU2NTQ3MDZj
ZTAxMDI4OThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTE0ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
aGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1cm5lZCBmcm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTcwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMjQxNzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgIE5ldyBBUEkgdGVzdDogV0tJbnNw
ZWN0b3JFeHRlbnNpb24uRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblByb21p
c2VzCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIEFkZCBKU0xvY2tIb2xkZXJzIGZv
ciB3aGVuIHdlIGFyZSBwb2tpbmcgYXQgdGhlIHJlc3VsdCB2YWx1ZS4KKwogMjAyMS0xMC0xNSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjc2MzcwKTogRWxlbWVudHMgd2l0aCBhbmltYXRlZCB0cmFuc2Zvcm0gcHJvcGVydHkg
bWlnaHQgbm90IHByb3Blcmx5IHJlbmRlcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
YzU0ZDdhN2U4N2ZjMmFiMjliYzdiNmNkYThiNWUzZTEzODY2Y2M3Li5jOGE4MjdjNWM3YjhkN2Y2
ZTNjZDc4ODdiMGIwMjk1Zjg5NjQxYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMS0xMC0xNCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGhhbmRsZSBQcm9taXNlIG9iamVjdHMgcmV0dXJu
ZWQgZnJvbSBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg0MjI0MTc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGltcHJvdmVzIHRoZSBoYW5kbGluZyBvZiBwcm9taXNlcyBhbmQg
ZXhjZXB0aW9ucyB0aGF0IGNvbWUgZnJvbQorICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
ZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYigpLgorCisgICAgICAgIEZvciBwcm9taXNlcywg
d2FpdCBmb3IgdGhlIHJldHVybmVkIHByb21pc2UgdG8gc2V0dGxlIGJlZm9yZSBmdWxmaWxsaW5n
IG91ciByZXR1cm5lZCB2YWx1ZS4KKyAgICAgICAgRm9yIGVycm9ycywgcGVyZm9ybSBhIGJldHRl
ciBzdHJpbmdpZmljYXRpb24gb2YgdGhlIEVycm9yIGluc3RhbmNlLiBUaGUgaXMgbmVlZGVkIGJl
Y2F1c2UKKyAgICAgICAgdGhlIGRlZmF1bHQgdG9TdHJpbmcgaW1wbGVtZW50YXRpb24gbGVhdmVz
IG91dCBtb3N0IG9mIHRoZSByZWxldmFudCBkZXRhaWxzIG9mIHRoZSBlcnJvci4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJv
bGxlci5qczoKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJv
dG90eXBlLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIpOgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKyAgICAgICAgRml4IGlu
Y29ycmVjdCBoZWFkZXIgZG9jcyBmb3IgSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVTY3Jp
cHRGb3JFeHRlbnNpb24uCisgICAgICAgIENvcHkgdGhlIGltcHJvdmVkIGhlYWRlciBkb2MgZm9y
IEluc3BlY3RvckZyb250ZW5kQVBJLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAg
ICAgc2luY2UgaXQgbm93IGhhcyB0aGUgc2FtZSBjYWxsaW5nIGNvbnZlbnRpb24uCisKIDIwMjEt
MTAtMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbGwgdGhlIFNES1ZhcmlhbnQueGNjb25maWcgZmlsZXMgc2hvdWxkIG1hdGNoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDIwNWQ5MGU3YWNkNmE3YTFmZDM4ZDY3ZjRkZTYwMmY3MGZjM2NiZmMuLmE5YjZjMGExMzZm
YTQ0ZDRkNjJlZmMyN2Q3MjZhMTZhNWFhMzU5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMjEtMTAtMTQgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBXZWIgSW5zcGVjdG9yOiBoYW5kbGUgUHJvbWlzZSBvYmplY3RzIHJldHVybmVkIGZyb20gZXZh
bHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDIyNDE3
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmV2
YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgQWRkIEpTTG9ja0hvbGRlcnMgZm9yIHdoZW4gd2UgYXJlIHBva2luZyBhdCB0aGUgcmVz
dWx0IHZhbHVlLgorICAgICAgICBEcml2ZS1ieSwgZml4IGEgdHlwbyBpbiBsb2dnaW5nIGNvZGUu
CisKIDIwMjEtMTAtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBtYWNjYXRhbHlzdCBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuY3BwCmluZGV4IGRhNmIyODQyNTliNjY5YTM3MDViOGMwZTE2MmQyOWY1MDViOTYzODUu
LmI0Mzk3YjQ2YWQ3N2VhODkxMGExZjI2NzU0Y2YzYjE3ZjFmOWRiMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuY3BwCkBAIC0xNzYsNyArMTc2LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHAKICAg
ICAgICAgb3B0aW9uYWxSZXN1bHRIYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV2YWx1YXRpb25FcnJv
cjo6Q29udGV4dERlc3Ryb3llZCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgICAgICAK
KyAgICAKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdCk7CisgICAgCiAg
ICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byogY2FzdGVkUHJvbWlz
ZSA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTUHJvbWlzZSo+KHZtLCByZXN1bHQudmFsdWUo
KSk7CiAgICAgaWYgKCFjYXN0ZWRQcm9taXNlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25D
b250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcwppbmRleCAwMzBjYmY5ZjI3
MjQxNWE1NTRkYTFiYTEyYTJhMzU2YmMzZDVhMzFlLi4xNTRjMGEyYzc2OGVhN2EyYWY2MTljMTZi
MDljNmM2MDQxNTM0MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKQEAgLTI0MywxMSArMjQzLDMxIEBAIFdJLldl
Ykluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgPSBjbGFzcyBXZWJJbnNwZWN0b3JFeHRlbnNp
b25Db250cm9sbGVyIGV4dGVuCiAgICAgICAgICAgICByZXR1cm4gV0kuV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlkUmVxdWVzdDsKICAgICAgICAgfQogCi0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmV2
YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoaWZyYW1lLCBzY3JpcHRTb3VyY2UpfTsKLSAgICAg
ICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6IGVycm9yLm1l
c3NhZ2V9OwotICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIElmIGBy
ZXN1bHRgIGlzIGEgcHJvbWlzZSwgdGhlbiBpdCBjYW1lIGZyb20gYSBkaWZmZXJlbnQgZnJhbWUg
YW5kIGBpbnN0YW5jZW9mIFByb21pc2VgIHdvbid0IHdvcmsuCisgICAgICAgICAgICAgICAgbGV0
IHJlc3VsdCA9IEluc3BlY3RvckZyb250ZW5kSG9zdC5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9u
VGFiKGlmcmFtZSwgc2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Py50
aGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC50aGVuKChyZXNvbHZlZFZhbHVlKSA9
PiByZXNvbHZlKHtyZXN1bHQ6IHJlc29sdmVkVmFsdWV9KSwgKGVycm9yVmFsdWUpID0+IHJlamVj
dCh7ZXJyb3I6IGVycm9yVmFsdWV9KSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXNvbHZlKHtyZXN1bHR9KTsKKyAg
ICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgICAgICAgICAgLy8gSW5jbHVkZSBt
b3JlIGNvbnRleHQgaW4gdGhlIHN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgZXJyb3IuCisgICAgICAg
ICAgICAgICAgY29uc3Qgc3RhY2tJbmRlbnQgPSAiICAiOworICAgICAgICAgICAgICAgIGxldCBz
dGFja0xpbmVzID0gKGVycm9yLnN0YWNrPy5zcGxpdCgiXG4iKSB8fCBbXSkubWFwKChsaW5lKSA9
PiBgJHtzdGFja0luZGVudH0ke2xpbmV9YCk7CisgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRl
ZE1lc3NhZ2UgPSBbCisgICAgICAgICAgICAgICAgICAgIGBDYXVnaHQgRXhjZXB0aW9uOiAke2Vy
cm9yLm5hbWV9YCwKKyAgICAgICAgICAgICAgICAgICAgYGF0ICR7ZXJyb3Iuc291cmNlVVJMIHx8
ICIodW5rbm93bikifToke2Vycm9yLmxpbmUgfHwgMH06JHtlcnJvci5jb2x1bW4gfHwgMH06YCwK
KyAgICAgICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAg
IiIsCisgICAgICAgICAgICAgICAgICAgICJCYWNrdHJhY2U6IiwKKyAgICAgICAgICAgICAgICAg
ICAgLi4uc3RhY2tMaW5lcywKKyAgICAgICAgICAgICAgICBdLmpvaW4oIlxuIik7CisgICAgICAg
ICAgICAgICAgcmVqZWN0KHtlcnJvcjogZm9ybWF0dGVkTWVzc2FnZX0pOworICAgICAgICAgICAg
fQorICAgICAgICB9KTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVu
ZEFQSS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0lu
c3BlY3RvckZyb250ZW5kQVBJLmpzCmluZGV4IGM2YzBhZWQ3M2FhM2I0ZTY2Yzk0YmE5YWY2NTgx
OGY3NmJjZDZkYWIuLmE0NmUzOWMyYWY1ODExYjQ4MTVhZGUzZDEwNDdjMzNhMmE1NDY1YzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0lu
c3BlY3RvckZyb250ZW5kQVBJLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCkBAIC0yMTgsOCArMjE4LDEw
IEBAIEluc3BlY3RvckZyb250ZW5kQVBJID0gewogICAgIH0sCiAKICAgICAvLyBSZXR1cm5zIGEg
c3RyaW5nIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlKSBpZiBhbiBlcnJvciBv
Y2N1cnJlZCB0aGF0IHByZXZlbnRlZCBldmFsdWF0aW9uLgotICAgIC8vIFJldHVybnMgYW4gb2Jq
ZWN0IHdpdGggYSAncmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0
aGUgc2NyaXB0IGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbiAn
ZXJyb3InIGtleSBhbmQgdmFsdWUgaW4gdGhlIGNhc2UgdGhhdCBhbiBleGNlcHRpb24gd2FzIHRo
cm93bi4KKyAgICAvLyBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGlmIHRoZSBl
dmFsdWF0aW9uIGNvbXBsZXRlcyBhbmQgcmVqZWN0ZWQgaWYgdGhlcmUgd2FzIGFuIGludGVybmFs
IGVycm9yLgorICAgIC8vIFdoZW4gdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBpdCB3aWxsIGJl
IGVpdGhlcjoKKyAgICAvLyAtIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSAn
cmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV2
YWx1YXRpb24uCisgICAgLy8gLSByZWplY3RlZCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGFu
ICdlcnJvcicga2V5IGFuZCB2YWx1ZSB0aGF0IGlzIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgdGhy
b3duIHdoaWxlIGV2YWx1YXRpbmcgc2NyaXB0LgogICAgIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5z
aW9uKGV4dGVuc2lvbklELCBzY3JpcHRTb3VyY2UsIHtmcmFtZVVSTCwgY29udGV4dFNlY3VyaXR5
T3JpZ2luLCB1c2VDb250ZW50U2NyaXB0Q29udGV4dH0gPSB7fSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEZvckV4
dGVuc2lvbihleHRlbnNpb25JRCwgc2NyaXB0U291cmNlLCB7ZnJhbWVVUkwsIGNvbnRleHRTZWN1
cml0eU9yaWdpbiwgdXNlQ29udGVudFNjcmlwdENvbnRleHR9KTsKQEAgLTIzOCw4ICsyNDAsMTAg
QEAgSW5zcGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAgfSwKIAogICAgIC8vIFJldHVybnMgYSBz
dHJpbmcgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUpIGlmIGFuIGVycm9yIG9j
Y3VycmVkIHRoYXQgcHJldmVudGVkIGV2YWx1YXRpb24uCi0gICAgLy8gUmV0dXJucyBhbiBvYmpl
Y3Qgd2l0aCBhICdyZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRo
ZSBzY3JpcHQgZXZhbHVhdGlvbi4KLSAgICAvLyBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFuICdl
cnJvcicga2V5IGFuZCB2YWx1ZSBpbiB0aGUgY2FzZSB0aGF0IGFuIGV4Y2VwdGlvbiB3YXMgdGhy
b3duLgorICAgIC8vIFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIGV2
YWx1YXRpb24gY29tcGxldGVzIGFuZCByZWplY3RlZCBpZiB0aGVyZSB3YXMgYW4gaW50ZXJuYWwg
ZXJyb3IuCisgICAgLy8gV2hlbiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGl0IHdpbGwgYmUg
ZWl0aGVyOgorICAgIC8vIC0gcmVzb2x2ZWQgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBhICdy
ZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXZh
bHVhdGlvbi4KKyAgICAvLyAtIHJlamVjdGVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4g
J2Vycm9yJyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIGV4Y2VwdGlvbiB0aGF0IHdhcyB0aHJv
d24gd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQuCiAgICAgZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lv
blRhYihleHRlbnNpb25UYWJJRCwgc2NyaXB0U291cmNlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNp
b25UYWIoZXh0ZW5zaW9uVGFiSUQsIHNjcmlwdFNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggYzYyNTk2ZTgwYzJlMmYwZDY4OGNmMDY2
MTM4OWY4NzM2YzM1MzIyNy4uOWRlZGYwY2YzYTRjMDhkY2RkZWU4MzhlZTRkNjFmYTFhODJmNWRk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAt
MjQ1LDYgKzI0NSw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpl
dmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0sIHN0ZDo6bnVsbG9wdCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJv
cjo6Q29udGV4dERlc3Ryb3llZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZnJvbnRlbmRHbG9iYWxPYmpl
Y3QpOwogCiAgICAgICAgIGlmIChhdXRvIHBhcnNlZEVycm9yID0gd2Vha1RoaXMtPnBhcnNlRXh0
ZW5zaW9uRXJyb3JGcm9tRXZhbHVhdGlvblJlc3VsdChyZXN1bHQpKSB7CiAgICAgICAgICAgICBh
dXRvIGV4Y2VwdGlvbkRldGFpbHMgPSByZXN1bHQudmFsdWUoKS5lcnJvcigpOwpAQCAtMzk5LDcg
KzQwMSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpldmFsdWF0
ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlCiAgICAgICAgIC8vIEV4cGVjdGVkIHJl
c3VsdCBpcyBlaXRoZXIgYW4gRXJyb3JTdHJpbmcgb3Ige3Jlc3VsdDogPGFueT59IG9yIHtlcnJv
cjogc3RyaW5nfS4KICAgICAgICAgYXV0byBvYmplY3RSZXN1bHQgPSB3ZWFrVGhpcy0+dW53cmFw
RXZhbHVhdGlvblJlc3VsdEFzT2JqZWN0KHJlc3VsdCk7CiAgICAgICAgIGlmICghb2JqZWN0UmVz
dWx0KSB7Ci0gICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24tb2JqZWN0
IHZhbHVlIHJldHVybmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuY3JlYXRlVGFiRm9yRXh0
ZW5zaW9uKCkuIik7CisgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiVW5leHBlY3RlZCBub24t
b2JqZWN0IHZhbHVlIHJldHVybmVkIGZyb20gSW5zcGVjdG9yRnJvbnRlbmRBUEkuZXZhbHVhdGVT
Y3JpcHRJbkV4dGVuc2lvblRhYigpLiIpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
eyB9LCBzdGQ6Om51bGxvcHQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludGVybmFsRXJy
b3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODFmYTIzMTVjMjc5NjBlZmJiYWUyYWFk
YTQ1MWZhNDNmNzBhYWE4OS4uZjg4MWNkNDY1ZjhjYTRmMTVmMzQ3NWYwNTdiMzBlMmVjNWQ4MmRl
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIxLTEwLTE0ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogaGFuZGxlIFByb21pc2Ugb2JqZWN0cyByZXR1
cm5lZCBmcm9tIGV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTcwOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQyMjQxNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgor
CisgICAgICAgIEFkZCBhIG5ldyB0ZXN0OiAKKyAgICAgICAgV0tJbnNwZWN0b3JFeHRlbnNpb24u
RXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblByb21pc2VzCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1t
OgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMTAtMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdFdlYktpdEFQSS5Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5GcmF1ZFByZXZlbnRpb24gaXMgYSBjb25zdGFudCB0aW1lb3V0CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9u
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4
dGVuc2lvbi5tbQppbmRleCBhNjQwNDQzZjRlYjM5MWJlM2IwYzE0ZjRmNDJhMWJiNTg0M2VhMzFh
Li4xZDdlM2VlNGJjMWQ0NGI4ZDQ3ZmZjYjlmMmNjMzhkNWEwOGNhMzExIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0
b3JFeHRlbnNpb24ubW0KQEAgLTMwNiw0ICszMDYsOTIgQEAgVEVTVChXS0luc3BlY3RvckV4dGVu
c2lvbiwgRXh0ZW5zaW9uVGFiSXNQZXJzaXN0ZW50KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKIH0KIAorVEVTVChXS0luc3BlY3RvckV4
dGVuc2lvbiwgRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYkNhblJldHVyblByb21pc2VzKQor
eworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIHdlYlZpZXdD
b25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0g
WUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3
Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1VJ
RGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uIG5ld10pOworCisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRsZT48
L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dlYlZpZXcg
X2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRh
Y2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbklEID0gW05TVVVJ
RCBVVUlEXS5VVUlEU3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBAIlRo
aXJkRXh0ZW5zaW9uIjsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAg
ICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3Bl
Y3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZGlzcGxheU5hbWU6ZXh0
ZW5zaW9uRGlzcGxheU5hbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxl
IGVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKiBfTnVsbGFibGUgZXh0ZW5zaW9uKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVu
c2lvbik7CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lvbjsKKwor
ICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAg
IGF1dG8gZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb24gbmV3XSk7CisgICAgW3NoYXJlZEluc3Bl
Y3RvckV4dGVuc2lvbiBzZXREZWxlZ2F0ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAg
ICAvLyBDcmVhdGUgYW5kIHNob3cgYW4gZXh0ZW5zaW9uIHRhYi4KKyAgICBhdXRvIGljb25VUkwg
PSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9J
bnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmciXTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdC1yZXNvdXJjZTovL1RoaXJkRXh0ZW5zaW9u
L0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCJdOworCisgICAgcGVuZGluZ0NhbGxi
YWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBjcmVh
dGVUYWJXaXRoTmFtZTpAIlRoaXJkRXh0ZW5zaW9uLVRhYiIgdGFiSWNvblVSTDppY29uVVJMIHNv
dXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxhYmxl
IGVycm9yLCBOU1N0cmluZyAqIF9OdWxsYWJsZSBleHRlbnNpb25UYWJJZGVudGlmaWVyKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVu
c2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVy
ID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXND
YWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOworICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBb
W3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd0V4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJl
ZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9y
ICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAg
ICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQpOworCisg
ICAgYXV0byBzZWNyZXRTdHJpbmcgPSBAIk9wZW4gU2VzYW1lIjsKKyAgICBhdXRvIHNjcmlwdFNv
dXJjZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiUHJvbWlzZS5yZXNvbHZlKFwiJUBc
IikiLCBzZWNyZXRTdHJpbmddOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFs
c2U7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBfZXZhbHVhdGVTY3JpcHQ6c2NyaXB0
U291cmNlIGluRXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9uVGFiSWRl
bnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IsIE5TRGljdGlvbmFyeSAqIF9OdWxsYWJsZSByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQ
RUNUX05TX0VRVUFMKHJlc3VsdCwgc2VjcmV0U3RyaW5nKTsKKworICAgICAgICBwZW5kaW5nQ2Fs
bGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dh
c0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gX2V2YWx1YXRl
U2NyaXB0OkAiKCgoIiBpbkV4dGVuc2lvblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lv
blRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICogX051bGxh
YmxlIGVycm9yLCBOU0RpY3Rpb25hcnkgKiBfTnVsbGFibGUgcmVzdWx0KSB7CisgICAgICAgIEVY
UEVDVF9OT1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisKKyAg
ICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICAv
LyBVbnJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXND
YWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdpc3RlckV4dGVu
c2lvbjpzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihO
U0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsK
KworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKK30K
KwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>