<?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>238188</bug_id>
          
          <creation_ts>2022-03-21 22:50:35 -0700</creation_ts>
          <short_desc>Only show notification permission prompt on transient activation</short_desc>
          <delta_ts>2022-03-22 23:48:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1853539</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-21 22:50:35 -0700</bug_when>
    <thetext>Only show notification permission prompt on transient activation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853543</commentid>
    <comment_count>1</comment_count>
      <attachid>455337</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-21 23:00:15 -0700</bug_when>
    <thetext>Created attachment 455337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853544</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-21 23:01:46 -0700</bug_when>
    <thetext>&lt;rdar://90590937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853550</commentid>
    <comment_count>3</comment_count>
      <attachid>455337</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-21 23:57:03 -0700</bug_when>
    <thetext>Comment on attachment 455337
Patch

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

&gt; Source/WebCore/Modules/push-api/PushManager.cpp:140
&gt; +            auto* window = document.frame()-&gt;window();

check frame is null?

&gt; Source/WebCore/Modules/push-api/PushManager.cpp:141
&gt; +            if (!window || !window-&gt;consumeTransientActivation()) {

I would be tempted to do that check before enqueuing a task, but I guess this is more consistent the way you did it with the way the algorithm is done.
The spec is a bit loose there, I filed https://github.com/w3c/push-api/issues/346 to cover this.
I guess the transient activation is implicitly done as part of step 8.
This is potentially racy, for instance:
- script checks subscribe permission (it is allowed).
- before this event loop task is run, permission is changed to prompt
- subscribe fails

Is it fully consistent with Chrome and Firefox, aka is transient activation only checked when permission is neither granted nor denied?


&gt; LayoutTests/ChangeLog:8
&gt; +        Add test cases to make sure that showing a permission prompt consumes a user gesture.

Can you add a test validating that calling subscribe out of user gesture &apos;works&apos; if permission is denied or permission is granted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854027</commentid>
    <comment_count>4</comment_count>
      <attachid>455461</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-22 17:51:16 -0700</bug_when>
    <thetext>Created attachment 455461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854028</commentid>
    <comment_count>5</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-22 17:51:26 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 455337 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455337&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/push-api/PushManager.cpp:140
&gt; &gt; +            auto* window = document.frame()-&gt;window();
&gt; 
&gt; check frame is null?

Fixed in the patch to land.

&gt; &gt; Source/WebCore/Modules/push-api/PushManager.cpp:141
&gt; &gt; +            if (!window || !window-&gt;consumeTransientActivation()) {
&gt; 
&gt; I would be tempted to do that check before enqueuing a task, but I guess
&gt; this is more consistent the way you did it with the way the algorithm is
&gt; done.
&gt; The spec is a bit loose there, I filed
&gt; https://github.com/w3c/push-api/issues/346 to cover this.
&gt; I guess the transient activation is implicitly done as part of step 8.
&gt; This is potentially racy, for instance:
&gt; - script checks subscribe permission (it is allowed).
&gt; - before this event loop task is run, permission is changed to prompt
&gt; - subscribe fails

Yeah, it&apos;s not clear which way is better, I just went with this way since it seemed clearer and closer to the algorithm the spec wants us to use.

&gt; Is it fully consistent with Chrome and Firefox, aka is transient activation
&gt; only checked when permission is neither granted nor denied?

I checked Chromium, and as far as I can tell from inspection, they only check the transient activation flag in the case that they show a prompt.

&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        Add test cases to make sure that showing a permission prompt consumes a user gesture.
&gt; 
&gt; Can you add a test validating that calling subscribe out of user gesture
&gt; &apos;works&apos; if permission is denied or permission is granted?

I think these scenarios are already tested in subscribe-grant-permissions.html and subscribe-deny-permissions.html in the calls to testDocumentSubscribeWithoutUserGesture. I did update the logic in the test a bit to make sure that we are hitting the exact NotAllowedError we expect rather than any NotAllowedError.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854030</commentid>
    <comment_count>6</comment_count>
      <attachid>455463</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-22 17:53:07 -0700</bug_when>
    <thetext>Created attachment 455463
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854065</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-22 23:48:55 -0700</bug_when>
    <thetext>Committed r291737 (248769@main): &lt;https://commits.webkit.org/248769@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455463.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455337</attachid>
            <date>2022-03-21 23:00:15 -0700</date>
            <delta_ts>2022-03-22 17:51:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238188-20220321230014.patch</filename>
            <type>text/plain</type>
            <size>23822</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFjNjk1NDcwODU4OTMx
YjZkMmMyY2MzNWM2NDQ2NmJlNmY2OTQ0Mi4uYmRiNDg5YmNiYTE2YjUwOGFiOTQ4MTU5NjllOGY4
MjE4OTgxOTFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTIxICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgc2hvdyBub3RpZmljYXRpb24g
cGVybWlzc2lvbiBwcm9tcHQgb24gdHJhbnNpZW50IGFjdGl2YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODE4OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyOTE0MjcsIHdlIGNoYW5nZWQg
Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uIGFuZCBQdXNoTWFuYWdlci5zdWJzY3JpYmUg
dG8gb25seSBzaG93CisgICAgICAgIGEgcGVybWlzc2lvbiBwcm9tcHQgd2hlbiBwcm9jZXNzaW5n
IGEgdXNlciBnZXN0dXJlLiBUaGlzIGVuZGVkIHVwIGJlaW5nIHRvbyByZXN0cmljdGl2ZSBhbmQK
KyAgICAgICAgY2F1c2VzIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgd2l0aCBzb21lIGxhcmdlIHNp
dGVzLgorCisgICAgICAgIEluc3RlYWQsIG1hdGNoIENocm9tZSBhbmQgRmlyZWZveCBieSBhbGxv
d2luZyB0aGVzZSBwcm9tcHRzIGFmdGVyIGEgdHJhbnNpZW50IGFjdGl2aWF0aW9uLAorICAgICAg
ICBpLmUuIGEgdXNlciBnZXN0dXJlIHdpdGhpbiB0aGUgcGFzdCBzZWNvbmQuCisKKyAgICAgICAg
UGVyIE1hY2llaidzIHN1Z2dlc3Rpb24sIHdlIGFsc28gY29uc3VtZSB0aGUgYWN0aXZhdGlvbiB0
byBoZWxwIGNvbWJhdCBwcm9tcHQgc3BhbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBhbmQg
ZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorCiAyMDIyLTAz
LTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
IDE1LjRdIEZpeCB1bnVzZWQgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDJkNmYxNGRjZjM2MDBl
Y2E2YjE4YzQyNzMxMDQzNDcwZmJhNjUyYWEuLjVmODEzYjFmNzFiMjZmOTI0MWQwMzE0NDNhZGQw
ZDlkMWUyZGE5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlICJO
b3RpZmljYXRpb24uaCIKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCkBAIC00Myw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgIldpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpA
QCAtMjk3LDcgKzI5Nyw4IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihE
b2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtCiAgICAgICAgIHJldHVy
biByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrKFBlcm1pc3Npb246OkRlbmllZCk7CiAgICAgfQog
Ci0gICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
IHsKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKTsKKyAgICBp
ZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0aXZhdGlvbigpKSB7CiAg
ICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiTm90aWZpY2F0aW9uIHByb21wdGluZyBjYW4gb25seSBi
ZSBkb25lIGZyb20gYSB1c2VyIGdlc3R1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc29sdmVQ
cm9taXNlQW5kQ2FsbGJhY2soUGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3BwCmluZGV4IDU1M2U1ZGM4
YWMzNDQwOWY3NmIwMDAzMDI5ZGI4ZjA3NGNhNDg2OGIuLjRlNmNhMmZiZTkxYzVjYTQxZDZlMzJl
ZjAwZjJkOWEzMDNlZGVhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVz
aC1hcGkvUHVzaE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1h
cGkvUHVzaE1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJFeGNlcHRpb24uaCIK
QEAgLTM3LDcgKzM4LDYgQEAKICNpbmNsdWRlICJQdXNoQ3J5cHRvLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uaCIKLSNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFB1c2hNYW5hZ2VyOjpzdWJz
Y3JpYmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNo
UwogewogICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRleHQuaXNTZWN1cmVDb250ZXh0KCkpOwogCi0g
ICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb250ZXh0ID0gUmVmIHsgY29u
dGV4dCB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKV0oKSBtdXRhYmxlIHsKKyAgICBjb250ZXh0LmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIG9wdGlvbnMgPSBXVEZN
b3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLT51c2VyVmlzaWJsZU9ubHkpIHsKICAgICAg
ICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlN1YnNj
cmliaW5nIGZvciBwdXNoIHJlcXVpcmVzIHVzZXJWaXNpYmxlT25seSB0byBiZSB0cnVlIl9zIH0p
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMxLDEyICsxMzEsMTQgQEAgdm9pZCBQdXNoTWFu
YWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0
aW9uYWw8UHVzaFMKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNsaWVudCk7CiAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogCi0gICAgICAgICAg
ICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0LmdldCgpKS5pc1NhbWVPcmlnaW5Bc1Rv
cERvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQuZ2V0KCkpOworICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5pc1NhbWVP
cmlnaW5Bc1RvcERvY3VtZW50KCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJDYW5ub3QgcmVxdWVzdCBwZXJtaXNzaW9uIGZy
b20gY3Jvc3Mtb3JpZ2luIGlmcmFtZSJfcyB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICghcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSB7
CisgICAgICAgICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKTsK
KyAgICAgICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3ctPmNvbnN1bWVUcmFuc2llbnRBY3Rp
dmF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RBbGxvd2VkRXJyb3IsICJQdXNoIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgY2FuIG9ubHkgYmUg
ZG9uZSBmcm9tIGEgdXNlciBnZXN0dXJlIl9zIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAxNTQzMmM0N2JhZTc3ODc4YjUxYTA3ODVjNjM5YmUzOGRkYzJjMDM5Li44NzU0
ZmU0ODJmZGI4YjkxNzI1ZmQ4MDMxNWU2YWVlNTc0YTcwMzkxIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDMt
MjEgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBzaG93IG5vdGlm
aWNhdGlvbiBwZXJtaXNzaW9uIHByb21wdCBvbiB0cmFuc2llbnQgYWN0aXZhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MTg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGludGVybmFs
IEFQSSBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0IHRvIFdlYktpdFRlc3RS
dW5uZXIgdGhhdCBhbGxvd3MgYQorICAgICAgICBub3RpZmljYXRpb24gcGVybWlzc2lvbiBwcm9t
cHQgdG8gZmlyc3QgYmUgZGlzcGxheWVkIGFuZCB0aGVuIHJlamVjdGVkLiBUaGlzIGRpZmZlcnMg
ZnJvbQorICAgICAgICB0aGUgZXhpc3RpbmcgZGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb24gY2Fs
bCwgd2hpY2ggZGVuaWVkIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucyBiZWZvcmUKKyAgICAgICAg
cHJvbXB0aW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpkZW55
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmRl
bnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uT25Qcm9tcHQpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpvcmlnaW5Vc2VyVmlz
aWJsZU5hbWUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVueU5vdGlmaWNhdGlv
blBlcm1pc3Npb25PblByb21wdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNl
dFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAy
Mi0wMy0xOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IHRlc3QgZmFpbHVyZXMgd2hlbiBlbmFibGluZyBjb250ZW50IGZpbHRlcmluZyBpbiB0aGUg
TmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBlNWQxNDhhZjdl
ZWRiMDI0ZjlmZjlmYzZmODdhMDgxNGVjOTBhOTdlLi5lZTEwYWY0M2E0ZDA1NGFmMWRmODk2NTRk
YTNlOGJjNTAyODI2OGMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTIwNiw2ICsy
MDYsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gV2ViIG5vdGlmaWNhdGlvbnMg
c3VwcG9ydAogICAgIHVuZGVmaW5lZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oRE9N
U3RyaW5nIG9yaWdpbik7CiAgICAgdW5kZWZpbmVkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKERPTVN0cmluZyBvcmlnaW4pOworICAgIHVuZGVmaW5lZCBkZW55V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbk9uUHJvbXB0KERPTVN0cmluZyBvcmlnaW4pOwogICAgIHVuZGVmaW5lZCByZW1v
dmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwogICAgIHVuZGVmaW5lZCBzaW11bGF0
ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKG9iamVjdCBub3RpZmljYXRpb24pOwogICAgIHVuZGVmaW5l
ZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrRm9yU2VydmljZVdvcmtlck5vdGlmaWNhdGlv
bnMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IDQ2MjljZjcyM2VhMmIzOTFmZDk0OWM1MzliMjgxZWFiZWU5MzRl
NGUuLmVkNzNjMzk1ZDA2NDI4YWQ1NTE0MmY3YTlhMmEzYjdlOWMyMzdiNWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApA
QCAtODc2LDYgKzg3NiwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVz
c2FnZVdpdGhSZXR1cm5WYWx1ZSgiRGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCB0b1dLKG9y
aWdpbikpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uT25Qcm9tcHQoSlNTdHJpbmdSZWYgb3JpZ2luKQoreworICAgIHBvc3RTeW5jaHJvbm91c1Bh
Z2VNZXNzYWdlV2l0aFJldHVyblZhbHVlKCJEZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJv
bXB0IiwgdG9XSyhvcmlnaW4pKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9ucygpCiB7CiAgICAgV0tCdW5kbGVSZW1vdmVBbGxXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9ucyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCks
IHBhZ2UoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCmluZGV4IDdmNjkxNjYyOGJjYTI4ZGZkOGFmNjE5MzM2NGM0ZDRkMzc5ZTAy
MTcuLmY1OTZkNWVkMWQyMWJmYWU2M2RmYzgyMzdkMDNhZjM5MTM0YTMzMGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0y
OTIsNiArMjkyLDcgQEAgcHVibGljOgogICAgIC8vIFdlYiBub3RpZmljYXRpb25zLgogICAgIHN0
YXRpYyB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmln
aW4pOwogICAgIHN0YXRpYyB2b2lkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3Ry
aW5nUmVmIG9yaWdpbik7CisgICAgc3RhdGljIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25PblByb21wdChKU1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHN0YXRpYyB2b2lkIHJlbW92
ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CiAgICAgc3RhdGljIHZvaWQgc2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayhKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbik7CiAgICAgc3Rh
dGljIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja0ZvclNlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDVmMDJiMGVlOGM4NTRmMzZlNzBlZTUyNjkzZWVmODBmNTQ3ZWU1NmYuLmEwMWNlYTQyNzcx
YWUwYWJhOWQ4OTM3MzY0NDU4NTllMWIxYTk5MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC03MTksNiArNzE5LDIzIEBAIFdLUmV0YWluUHRyPFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWY+IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0
aW9uKGNvCiAgICAgcmV0dXJuIHBhZ2VDb25maWd1cmF0aW9uOwogfQogCitzdGF0aWMgU3RyaW5n
IG9yaWdpblVzZXJWaXNpYmxlTmFtZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAg
ICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICBhdXRv
IGhvc3QgPSB0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChvcmln
aW4pKSk7CisgICAgYXV0byBwcm90b2NvbCA9IHRvV1RGU3RyaW5nKGFkb3B0V0soV0tTZWN1cml0
eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4pKSk7CisKKyAgICBpZiAoaG9zdC5pc0VtcHR5KCkg
fHwgcHJvdG9jb2wuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKwor
ICAgIGlmIChpbnQgcG9ydCA9IFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbikpCisgICAg
ICAgIHJldHVybiBtYWtlU3RyaW5nKHByb3RvY29sLCAiOi8vIiwgaG9zdCwgJzonLCBwb3J0KTsK
KworICAgIHJldHVybiBtYWtlU3RyaW5nKHByb3RvY29sLCAiOi8vIiwgaG9zdCk7Cit9CisKIGJv
b2wgVGVzdENvbnRyb2xsZXI6OmdyYW50Tm90aWZpY2F0aW9uUGVybWlzc2lvbihXS1N0cmluZ1Jl
ZiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgbV93ZWJOb3RpZmljYXRpb25Qcm92aWRlci5zZXRQZXJt
aXNzaW9uKHRvV1RGU3RyaW5nKG9yaWdpblN0cmluZyksIHRydWUpOwpAQCAtNzM3LDYgKzc1NCwx
NCBAQCBib29sIFRlc3RDb250cm9sbGVyOjpkZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbihXS1N0
cmluZ1JlZiBvcmlnaW5TdHJpbmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgVGVzdENv
bnRyb2xsZXI6OmRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uT25Qcm9tcHQoV0tTdHJpbmdSZWYg
b3JpZ2luU3RyaW5nKQoreworICAgIGF1dG8gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3Jp
Z2luQ3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpKTsKKyAgICBhdXRvIG9yaWdpbk5hbWUg
PSBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luLmdldCgpKTsKKyAgICBtX25vdGlmaWNhdGlv
bk9yaWdpbnNUb0RlbnlPblByb21wdC5hZGQob3JpZ2luTmFtZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciA9IG9wdGlvbnMuYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CkBAIC0xMDQ2
LDYgKzEwNzEsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50
VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBSZQogCiAgICAgLy8gUmVzZXQgbm90
aWZpY2F0aW9uIHBlcm1pc3Npb25zCiAgICAgbV93ZWJOb3RpZmljYXRpb25Qcm92aWRlci5yZXNl
dCgpOworICAgIG1fbm90aWZpY2F0aW9uT3JpZ2luc1RvRGVueU9uUHJvbXB0LmNsZWFyKCk7CiAK
ICAgICAvLyBSZXNldCBHZW9sb2NhdGlvbiBwZXJtaXNzaW9ucy4KICAgICBtX2dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzLmNsZWFyKCk7CkBAIC0yNDEyLDIzICsyNDM4LDYgQEAgYm9vbCBU
ZXN0Q29udHJvbGxlcjo6aXNHZW9sb2NhdGlvblByb3ZpZGVyQWN0aXZlKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9nZW9sb2NhdGlvblByb3ZpZGVyLT5pc0FjdGl2ZSgpOwogfQogCi1zdGF0aWMgU3Ry
aW5nIG9yaWdpblVzZXJWaXNpYmxlTmFtZShXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKLXsK
LSAgICBpZiAoIW9yaWdpbikKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0KLSAgICBh
dXRvIGhvc3QgPSB0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChv
cmlnaW4pKSk7Ci0gICAgYXV0byBwcm90b2NvbCA9IHRvV1RGU3RyaW5nKGFkb3B0V0soV0tTZWN1
cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4pKSk7Ci0KLSAgICBpZiAoaG9zdC5pc0VtcHR5
KCkgfHwgcHJvdG9jb2wuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LQotICAgIGlmIChpbnQgcG9ydCA9IFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbikpCi0g
ICAgICAgIHJldHVybiBtYWtlU3RyaW5nKHByb3RvY29sLCAiOi8vIiwgaG9zdCwgJzonLCBwb3J0
KTsKLQotICAgIHJldHVybiBtYWtlU3RyaW5nKHByb3RvY29sLCAiOi8vIiwgaG9zdCk7Ci19Ci0K
IHN0YXRpYyBTdHJpbmcgdXNlck1lZGlhT3JpZ2luSGFzaChXS1NlY3VyaXR5T3JpZ2luUmVmIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pCiB7CiAgICAgU3RyaW5nIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nID0g
b3JpZ2luVXNlclZpc2libGVOYW1lKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKTsKQEAgLTI2NTEs
OCArMjY2MCwxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYgcGFnZQogICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dChwYWdlLCBvcmlnaW4sIHJlcXVlc3QpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2Vj
dXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVz
dCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKKyAgICBhdXRvIG9yaWdp
bk5hbWUgPSBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKTsKKyAgICBpZiAobV9ub3RpZmlj
YXRpb25PcmlnaW5zVG9EZW55T25Qcm9tcHQuY29udGFpbnMob3JpZ2luTmFtZSkpIHsKKyAgICAg
ICAgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkocmVxdWVzdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxs
b3cocmVxdWVzdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApp
bmRleCBhOGEyNDk3ZDZmNjViNDA4MTZlZGQ4NjE2OTI1MmZlN2I5ZDJiMDM0Li40NDUzOTUzODgz
OTJiMTBjNDUzM2FmYzE5ODY2YTcyNGFjZTg5MzkxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCkBAIC0zNzYsNiArMzc2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBn
cmFudE5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tTdHJpbmdSZWYgb3JpZ2luKTsKICAgICBib29s
IGRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdLU3RyaW5nUmVmIG9yaWdpbik7CisgICAgYm9v
bCBkZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KFdLU3RyaW5nUmVmIG9yaWdpbik7
CiAKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2Vu
ZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpOwpAQCAtNTc1LDYgKzU3
Niw3IEBAIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1fdGVzdFBsdWdp
bkRpcmVjdG9yeTsKIAogICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fd2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI7CisgICAgSGFzaFNldDxTdHJpbmc+IG1fbm90aWZpY2F0aW9uT3JpZ2luc1Rv
RGVueU9uUHJvbXB0OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9t
YWluV2ViVmlldzsKICAgICBWZWN0b3I8VW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4+IG1fYXV4
aWxpYXJ5V2ViVmlld3M7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CmluZGV4IGQ5ZTA2MGRhYzJhYjk5NDc3NjQ4YzUyNTU3NzhmZTAzYzVjNTY3NWMuLjQ3ZDE2OTVl
MGQxNzhhNDU1ODA4NzM0N2M5YTBkNGFmMzk0YzU4NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDM5LDYgKzEwMzksOSBAQCBXS1JldGFpblB0cjxX
S1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQgogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VO
YW1lLCAiRGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb24iKSkKICAgICAgICAgcmV0dXJuIGFkb3B0
V0soV0tCb29sZWFuQ3JlYXRlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kZW55Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbihzdHJpbmdWYWx1ZShtZXNzYWdlQm9keSkpKSk7CiAKKyAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkRlbnlOb3RpZmljYXRp
b25QZXJtaXNzaW9uT25Qcm9tcHQiKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0V0soV0tCb29sZWFu
Q3JlYXRlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kZW55Tm90aWZpY2F0aW9uUGVybWlz
c2lvbk9uUHJvbXB0KHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KSkpKTsKKwogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiSXNEb2luZ01lZGlhQ2FwdHVy
ZSIpKQogICAgICAgICByZXR1cm4gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLmlzRG9pbmdNZWRpYUNhcHR1cmUoKSkpOwogICAgIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4
ZDhiNTUwMGI3MjE5MDE1YjM4ZWJlYjMyMmNjMzM2NWMzMGJlMmMuLjIzZmVlNzQ1YjRhYmY4Mjli
MmU0ZDVkNzAyNmY2MDQ1NzBhYTkwMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMi0wMy0y
MSAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHNob3cgbm90aWZp
Y2F0aW9uIHBlcm1pc3Npb24gcHJvbXB0IG9uIHRyYW5zaWVudCBhY3RpdmF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBjYXNlcyB0
byBtYWtlIHN1cmUgdGhhdCBzaG93aW5nIGEgcGVybWlzc2lvbiBwcm9tcHQgY29uc3VtZXMgYSB1
c2VyIGdlc3R1cmUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1uby1jYWxsYmFjay5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMt
YWN0aXZhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24uaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1vbi1w
cm9tcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC5odG1sOiBBZGRlZC4KKwogMjAy
Mi0wMy0xOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
bWFjT1MgYXJtNjRdIHdlYnJ0Yy92cDktcHJvZmlsZTIuaHRtbCBpcyBjb25zaXN0ZW50bHkgdGlt
aW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLW5vLWNhbGxiYWNrLmh0bWwKaW5kZXggMjc4N2YxNjgyNTg0Y2QyNDZjYmM0N2IxNGY5
YzU5M2M1MzA5ODhiYS4uNzY5ZGFmNmUzOWM5ODQyNWExNjUzZjY2ZWQxNDdhMmIzNTQxNWVjZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1uby1jYWxsYmFjay5odG1sCkBAIC0xNSwxMSArMTUsMTUgQEAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzKQogaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CiAgICAgd2luZG93Lk5vdGlm
aWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpOwogICAgIHRlc3RQYXNzZWQoIk5vdGlmaWNhdGlv
bi5yZXF1ZXN0UGVybWlzc2lvbiBkb2VzIG5vdCBjcmFzaC4iKTsKK30pOwogCitpbnRlcm5hbHMu
d2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbih0ZXN0VVJMKTsKICAgICB3aW5kb3cuTm90aWZpY2F0aW9uLnJlcXVlc3RQ
ZXJtaXNzaW9uKCk7CiAgICAgdGVzdFBhc3NlZCgiTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uIGRvZXMgbm90IGNyYXNoLiIpOworfSk7CiAKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUo
KCkgPT4gewogICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVz
dFVSTCk7CiAgICAgd2luZG93Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpOwogICAg
IHRlc3RQYXNzZWQoIk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbiBkb2VzIG5vdCBjcmFz
aC4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi5odG1sCmlu
ZGV4IDg1YjA4M2U4MjI1MGIwYzBiNjFlODQzNWIyZmFlOGNmYTQxZGE4YmUuLmNmYmE3MjcwMDll
YzA3YjJiZDliY2FkMjg5ZWE5MDdiMzRlMTM2MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbApAQCAtMTUsMTEgKzE1LDE1IEBAIGlmICghd2luZG93
LmludGVybmFscykKIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4gewogICAgIHdpbmRv
dy5Ob3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oZnVuY3Rpb24oKSB7IH0pOwogICAgIHRl
c3RQYXNzZWQoIk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbiBkb2VzIG5vdCBjcmFzaC4i
KTsKK30pOwogCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKICAgICB0ZXN0UnVu
bmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih0ZXN0VVJMKTsKICAgICB3aW5kb3cu
Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKCkgeyB9KTsKICAgICB0ZXN0
UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gZG9lcyBub3QgY3Jhc2guIik7
Cit9KTsKIAoraW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CiAgICAgdGVzdFJ1bm5l
ci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbih0ZXN0VVJMKTsKICAgICB3aW5kb3cuTm90
aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKCkgeyB9KTsKICAgICB0ZXN0UGFz
c2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gZG9lcyBub3QgY3Jhc2guIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1j
b25zdW1lcy1hY3RpdmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2OWMxYmVhNTIwOWJkZDgwODdkOWQ1OWIwYWFkZTFiNzVlNmU0ZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVz
dC1jb25zdW1lcy1hY3RpdmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05T
T0xFIE1FU1NBR0U6IE5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgY2FuIG9ubHkgYmUgZG9uZSBmcm9t
IGEgdXNlciBnZXN0dXJlLgorVGhpcyB0ZXN0cyB0aGF0IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVy
bWlzc2lvbiBjYW4gb25seSBiZSBjYWxsZWQgb25jZSBwZXIgdXNlciBnZXN0dXJlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBib3RoIHBlcm1pc3Npb24gcmVxdWVzdHMg
ZGVuaWVkCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJkZW5pZWQiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMtYWN0
aXZhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVl
c3QtY29uc3VtZXMtYWN0aXZhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNjMzYzRkNWIwZGY2OWRl
MmI0NmQ0YWJkYzY2ZDhlYTMyOTNkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1jb25zdW1lcy1hY3RpdmF0aW9uLmh0bWwK
QEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uIGNhbiBvbmx5IGJl
IGNhbGxlZCBvbmNlIHBlciB1c2VyIGdlc3R1cmUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgIGZpbmlzaEpTVGVzdCgpOworCitmdW5jdGlv
biBydW4oKSB7CisgICAgdGVzdFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihz
ZWxmLm9yaWdpbik7CisgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAg
ICAgIGxldCBwcm9tcHQxID0gTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCk7CisgICAg
ICAgIGxldCBwcm9tcHQyID0gTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCk7CisgICAg
ICAgIFByb21pc2UuYWxsKFtwcm9tcHQxLCBwcm9tcHQyXSkudGhlbigoW3Blcm1pc3Npb24xLCBw
ZXJtaXNzaW9uMl0pID0+IHsKKyAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uMSA9PSAnZGVuaWVk
JyAmJiBwZXJtaXNzaW9uMiA9PSAnZGVuaWVkJykKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJib3RoIHBlcm1pc3Npb24gcmVxdWVzdHMgZGVuaWVkIik7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiYm90aCBwZXJtaXNzaW9uIHJlcXVlc3RzIHNob3Vs
ZCBiZSBkZW5pZWQsIGJ1dCB3YXMgIiArIHBlcm1pc3Npb24xICsgIiBhbmQgdGhlbiAiICsgcGVy
bWlzc2lvbjIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3RpZmljYXRp
b24ucGVybWlzc2lvbiIsICJkZW5pZWQiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKworcnVuKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMtb24tcHJvbXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtb24tcHJvbXB0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNDM5M2I2ODE3NjQ4OGFhYzRjZDZhOTk0NWFmNDY2ZjNiMTIzOWJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVu
eS1wZXJtaXNzaW9ucy1vbi1wcm9tcHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFT
Uzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBwcm9tcHQKK1BBU1M6IGRvY3Vt
ZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJz
Y3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKK1BBU1M6IGRvY3VtZW50IHN1YnNjcmli
ZSB3aXRob3V0IHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzog
ZG9jdW1lbnQgc3Vic2NyaWJlIHdpdGggdXNlciBnZXN0dXJlIHdhcyBlcnJvcjogTm90QWxsb3dl
ZEVycm9yCitQQVNTOiBkb2N1bWVudCBzdWJzY3JpYmUgd2l0aCBjb25zdW1lZCB1c2VyIGdlc3R1
cmUgd2FzIGZhaWxlZCB3aXRoIHVzZXIgZ2VzdHVyZSBlcnJvcgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9u
LXByb21wdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVueS1wZXJtaXNzaW9ucy1vbi1wcm9tcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzkzZjljZTkzNDBl
ODIyMGUxYTM1OTRjNWVlZTJlOWNiNjM4ZDJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1vbi1wcm9t
cHQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kZW55V2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KHdpbmRvdy5vcmlnaW4pOworCituYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMiLCB7
IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7CisgICAgICAgIGF3
YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIpOwor
ICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRp
b24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlzc2lvblN0YXRl
KHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtl
clN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAgYXdh
aXQgdGVzdERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlvbiwg
J05vdEFsbG93ZWRFcnJvcicpOworCisgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KCdUZXN0IHJlcXVpcmVzIGludGVybmFscy4nKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlu
dGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgICAgIGxldCByZXF1
ZXN0MSA9IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAgICAgICAgICAg
ICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGFwcGxp
Y2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJfS0VZCisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QyID0gcmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2VyLnN1
YnNjcmliZSh7CisgICAgICAgICAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZFUl9LRVkK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBQcm9taXNlLmFsbFNldHRsZWQo
W3JlcXVlc3QxLCByZXF1ZXN0Ml0pLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgICAgIGxldCBbcmVzdWx0MSwgcmVzdWx0Ml0gPSBhd2FpdChwcm9taXNl
KTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQxLnJlYXNvbiAmJiByZXN1bHQxLnJlYXNv
bi5uYW1lID09ICdOb3RBbGxvd2VkRXJyb3InKQorICAgICAgICAgICAgbG9nKCdQQVNTOiBkb2N1
bWVudCBzdWJzY3JpYmUgd2l0aCB1c2VyIGdlc3R1cmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJy
b3InKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coYEZBSUw6IGZpcnN0IHN1YnNjcmli
ZSBmYWlsZWQgd2l0aCB1bmV4cGVjdGVkIHJlc3VsdCAke3Jlc3VsdDEudmFsdWUgfHwgcmVzdWx0
MS5yZWFzb259YCk7CisKKyAgICAgICAgaWYgKHJlc3VsdDIucmVhc29uICYmIHJlc3VsdDIucmVh
c29uLm5hbWUgPT0gJ05vdEFsbG93ZWRFcnJvcicgJiYgcmVzdWx0Mi5yZWFzb24ubWVzc2FnZS5p
bmNsdWRlcygndXNlciBnZXN0dXJlJykpCisgICAgICAgICAgICBsb2coJ1BBU1M6IGRvY3VtZW50
IHN1YnNjcmliZSB3aXRoIGNvbnN1bWVkIHVzZXIgZ2VzdHVyZSB3YXMgZmFpbGVkIHdpdGggdXNl
ciBnZXN0dXJlIGVycm9yJykKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKGBGQUlMOiBz
ZWNvbmQgc3Vic2NyaWJlIGZhaWxlZCB3aXRoIHVuZXhwZWN0ZWQgcmVzdWx0ICR7cmVzdWx0Mi52
YWx1ZSB8fCByZXN1bHQyLnJlYXNvbn1gKQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9n
KGBGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAke2V9YCk7CisgICAgfSBmaW5hbGx5IHsKKyAg
ICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgZmluaXNoUHVz
aEFQSVRlc3QoKTsKKyAgICB9Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455461</attachid>
            <date>2022-03-22 17:51:16 -0700</date>
            <delta_ts>2022-03-22 17:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238188-20220322175115.patch</filename>
            <type>text/plain</type>
            <size>31054</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFjNjk1NDcwODU4OTMx
YjZkMmMyY2MzNWM2NDQ2NmJlNmY2OTQ0Mi4uYmRiNDg5YmNiYTE2YjUwOGFiOTQ4MTU5NjllOGY4
MjE4OTgxOTFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTIxICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgc2hvdyBub3RpZmljYXRpb24g
cGVybWlzc2lvbiBwcm9tcHQgb24gdHJhbnNpZW50IGFjdGl2YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODE4OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyOTE0MjcsIHdlIGNoYW5nZWQg
Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uIGFuZCBQdXNoTWFuYWdlci5zdWJzY3JpYmUg
dG8gb25seSBzaG93CisgICAgICAgIGEgcGVybWlzc2lvbiBwcm9tcHQgd2hlbiBwcm9jZXNzaW5n
IGEgdXNlciBnZXN0dXJlLiBUaGlzIGVuZGVkIHVwIGJlaW5nIHRvbyByZXN0cmljdGl2ZSBhbmQK
KyAgICAgICAgY2F1c2VzIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgd2l0aCBzb21lIGxhcmdlIHNp
dGVzLgorCisgICAgICAgIEluc3RlYWQsIG1hdGNoIENocm9tZSBhbmQgRmlyZWZveCBieSBhbGxv
d2luZyB0aGVzZSBwcm9tcHRzIGFmdGVyIGEgdHJhbnNpZW50IGFjdGl2aWF0aW9uLAorICAgICAg
ICBpLmUuIGEgdXNlciBnZXN0dXJlIHdpdGhpbiB0aGUgcGFzdCBzZWNvbmQuCisKKyAgICAgICAg
UGVyIE1hY2llaidzIHN1Z2dlc3Rpb24sIHdlIGFsc28gY29uc3VtZSB0aGUgYWN0aXZhdGlvbiB0
byBoZWxwIGNvbWJhdCBwcm9tcHQgc3BhbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBhbmQg
ZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUpOgorCiAyMDIyLTAz
LTE4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
IDE1LjRdIEZpeCB1bnVzZWQgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDJkNmYxNGRjZjM2MDBl
Y2E2YjE4YzQyNzMxMDQzNDcwZmJhNjUyYWEuLjg3YjJlM2M5NGUwYjc1ZGQ3YmM1MDY5NTI4NDI1
YTcwYmU3N2ZmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlICJO
b3RpZmljYXRpb24uaCIKIAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCkBAIC00Myw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgIldpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpA
QCAtMjk3LDcgKzI5Nyw4IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihE
b2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtCiAgICAgICAgIHJldHVy
biByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrKFBlcm1pc3Npb246OkRlbmllZCk7CiAgICAgfQog
Ci0gICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
IHsKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpID8gZG9jdW1lbnQuZnJhbWUo
KS0+d2luZG93KCkgOiBudWxscHRyOworICAgIGlmICghd2luZG93IHx8ICF3aW5kb3ctPmNvbnN1
bWVUcmFuc2llbnRBY3RpdmF0aW9uKCkpIHsKICAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJOb3Rp
ZmljYXRpb24gcHJvbXB0aW5nIGNhbiBvbmx5IGJlIGRvbmUgZnJvbSBhIHVzZXIgZ2VzdHVyZS4i
X3MpOwogICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VBbmRDYWxsYmFjayhQZXJtaXNzaW9u
OjpEZW5pZWQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVz
aC1hcGkvUHVzaE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoTWFuYWdlci5jcHAKaW5kZXggNTUzZTVkYzhhYzM0NDA5Zjc2YjAwMDMwMjlkYjhmMDc0Y2E0
ODY4Yi4uOGM1ODdkN2Y4NjA0OGJhODU3YmZiZTBjOTVmODhmYWU0Y2M1ZjVjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWFuYWdlci5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIkV2ZW50TG9v
cC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgpAQCAtMzcsNyArMzgsNiBAQAogI2luY2x1ZGUg
IlB1c2hDcnlwdG8uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgotI2luY2x1ZGUgIlVzZXJHZXN0dXJl
SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CkBAIC03Miw3ICs3
Miw3IEBAIHZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoY29u
dGV4dC5pc1NlY3VyZUNvbnRleHQoKSk7CiAKLSAgICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVl
VGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH0sIGNvbnRleHQgPSBSZWYgeyBjb250ZXh0IH0sIG9wdGlvbnMgPSBXVEZNb3ZlKG9w
dGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
ID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpXSgpIG11dGFi
bGUgeworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dCA9IFJl
ZiB7IGNvbnRleHQgfSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlv
bnMtPnVzZXJWaXNpYmxlT25seSkgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiU3Vic2NyaWJpbmcgZm9yIHB1c2ggcmVxdWlyZXMgdXNl
clZpc2libGVPbmx5IHRvIGJlIHRydWUiX3MgfSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MzEsMTIgKzEzMSwxNCBAQCB2b2lkIFB1c2hNYW5hZ2VyOjpzdWJzY3JpYmUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxQdXNoUwogICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoY2xpZW50KTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRleHQt
PmlzRG9jdW1lbnQoKSk7CiAKLSAgICAgICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQuZ2V0KCkpLmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSkgeworICAgICAgICAgICAg
YXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dC5nZXQoKSk7CisgICAg
ICAgICAgICBpZiAoIWRvY3VtZW50LmlzU2FtZU9yaWdpbkFzVG9wRG9jdW1lbnQoKSkgewogICAg
ICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwg
IkNhbm5vdCByZXF1ZXN0IHBlcm1pc3Npb24gZnJvbSBjcm9zcy1vcmlnaW4gaWZyYW1lIl9zIH0p
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
aWYgKCFwcm9jZXNzaW5nVXNlckdlc3R1cmUpIHsKKyAgICAgICAgICAgIGF1dG8qIHdpbmRvdyA9
IGRvY3VtZW50LmZyYW1lKCkgPyBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKSA6IG51bGxwdHI7
CisgICAgICAgICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0
aXZhdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90QWxsb3dlZEVycm9yLCAiUHVzaCBub3RpZmljYXRpb24gcHJvbXB0aW5nIGNhbiBvbmx5IGJl
IGRvbmUgZnJvbSBhIHVzZXIgZ2VzdHVyZSJfcyB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMTU0MzJjNDdiYWU3Nzg3OGI1MWEwNzg1YzYzOWJlMzhkZGMyYzAzOS4uODc1
NGZlNDgyZmRiOGI5MTcyNWZkODAzMTVlNmFlZTU3NGE3MDM5MSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAz
LTIxICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgc2hvdyBub3Rp
ZmljYXRpb24gcGVybWlzc2lvbiBwcm9tcHQgb24gdHJhbnNpZW50IGFjdGl2YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODE4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5h
bCBBUEkgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25PblByb21wdCB0byBXZWJLaXRUZXN0
UnVubmVyIHRoYXQgYWxsb3dzIGEKKyAgICAgICAgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcHJv
bXB0IHRvIGZpcnN0IGJlIGRpc3BsYXllZCBhbmQgdGhlbiByZWplY3RlZC4gVGhpcyBkaWZmZXJz
IGZyb20KKyAgICAgICAgdGhlIGV4aXN0aW5nIGRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uIGNh
bGwsIHdoaWNoIGRlbmllZCBub3RpZmljYXRpb24gcGVybWlzc2lvbnMgYmVmb3JlCisgICAgICAg
IHByb21wdGluZy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGVu
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpk
ZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6b3JpZ2luVXNlclZp
c2libGVOYW1lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlbnlOb3RpZmljYXRp
b25QZXJtaXNzaW9uT25Qcm9tcHQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIw
MjItMDMtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCB0ZXN0IGZhaWx1cmVzIHdoZW4gZW5hYmxpbmcgY29udGVudCBmaWx0ZXJpbmcgaW4gdGhl
IE5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZTVkMTQ4YWY3
ZWVkYjAyNGY5ZmY5ZmM2Zjg3YTA4MTRlYzkwYTk3ZS4uZWUxMGFmNDNhNGQwNTRhZjFkZjg5NjU0
ZGEzZThiYzUwMjgyNjhjMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0yMDYsNiAr
MjA2LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIFdlYiBub3RpZmljYXRpb25z
IHN1cHBvcnQKICAgICB1bmRlZmluZWQgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKERP
TVN0cmluZyBvcmlnaW4pOwogICAgIHVuZGVmaW5lZCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbihET01TdHJpbmcgb3JpZ2luKTsKKyAgICB1bmRlZmluZWQgZGVueVdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25PblByb21wdChET01TdHJpbmcgb3JpZ2luKTsKICAgICB1bmRlZmluZWQgcmVt
b3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKICAgICB1bmRlZmluZWQgc2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayhvYmplY3Qgbm90aWZpY2F0aW9uKTsKICAgICB1bmRlZmlu
ZWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja0ZvclNlcnZpY2VXb3JrZXJOb3RpZmljYXRp
b25zKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCA0NjI5Y2Y3MjNlYTJiMzkxZmQ5NDljNTM5YjI4MWVhYmVlOTM0
ZTRlLi5lZDczYzM5NWQwNjQyOGFkNTUxNDJmN2E5YTJhM2I3ZTljMjM3YjVlIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTg3Niw2ICs4NzYsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1l
c3NhZ2VXaXRoUmV0dXJuVmFsdWUoIkRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgdG9XSyhv
cmlnaW4pKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbk9uUHJvbXB0KEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQ
YWdlTWVzc2FnZVdpdGhSZXR1cm5WYWx1ZSgiRGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb25PblBy
b21wdCIsIHRvV0sob3JpZ2luKSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQogewogICAgIFdLQnVuZGxlUmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnMoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgp
LCBwYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCA3ZjY5MTY2MjhiY2EyOGRmZDhhZjYxOTMzNjRjNGQ0ZDM3OWUw
MjE3Li5mNTk2ZDVlZDFkMjFiZmFlNjNkZmM4MjM3ZDAzYWYzOTEzNGEzMzBmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
MjkyLDYgKzI5Miw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWIgbm90aWZpY2F0aW9ucy4KICAgICBz
dGF0aWMgdm9pZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3Jp
Z2luKTsKICAgICBzdGF0aWMgdm9pZCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0
cmluZ1JlZiBvcmlnaW4pOworICAgIHN0YXRpYyB2b2lkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uT25Qcm9tcHQoSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICBzdGF0aWMgdm9pZCByZW1v
dmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwogICAgIHN0YXRpYyB2b2lkIHNpbXVs
YXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pOwogICAgIHN0
YXRpYyB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2tGb3JTZXJ2aWNlV29ya2VyTm90
aWZpY2F0aW9ucygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApp
bmRleCA1ZjAyYjBlZThjODU0ZjM2ZTcwZWU1MjY5M2VlZjgwZjU0N2VlNTZmLi5hMDFjZWE0Mjc3
MWFlMGFiYTlkODkzNzM2NDQ1ODU5ZTFiMWE5OTJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzE5LDYgKzcxOSwyMyBAQCBXS1JldGFpblB0cjxXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJh
dGlvbihjbwogICAgIHJldHVybiBwYWdlQ29uZmlndXJhdGlvbjsKIH0KIAorc3RhdGljIFN0cmlu
ZyBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCit7Cisg
ICAgaWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisgICAgYXV0
byBob3N0ID0gdG9XVEZTdHJpbmcoYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3Qob3Jp
Z2luKSkpOworICAgIGF1dG8gcHJvdG9jb2wgPSB0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJp
dHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luKSkpOworCisgICAgaWYgKGhvc3QuaXNFbXB0eSgp
IHx8IHByb3RvY29sLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisK
KyAgICBpZiAoaW50IHBvcnQgPSBXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKQorICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZyhwcm90b2NvbCwgIjovLyIsIGhvc3QsICc6JywgcG9ydCk7
CisKKyAgICByZXR1cm4gbWFrZVN0cmluZyhwcm90b2NvbCwgIjovLyIsIGhvc3QpOworfQorCiBi
b29sIFRlc3RDb250cm9sbGVyOjpncmFudE5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tTdHJpbmdS
ZWYgb3JpZ2luU3RyaW5nKQogewogICAgIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuc2V0UGVy
bWlzc2lvbih0b1dURlN0cmluZyhvcmlnaW5TdHJpbmcpLCB0cnVlKTsKQEAgLTczNyw2ICs3NTQs
MTQgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6ZGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tT
dHJpbmdSZWYgb3JpZ2luU3RyaW5nKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFRlc3RD
b250cm9sbGVyOjpkZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KFdLU3RyaW5nUmVm
IG9yaWdpblN0cmluZykKK3sKKyAgICBhdXRvIG9yaWdpbiA9IGFkb3B0V0soV0tTZWN1cml0eU9y
aWdpbkNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKSk7CisgICAgYXV0byBvcmlnaW5OYW1l
ID0gb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbi5nZXQoKSk7CisgICAgbV9ub3RpZmljYXRp
b25PcmlnaW5zVG9EZW55T25Qcm9tcHQuYWRkKG9yaWdpbk5hbWUpOworICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIgPSBvcHRpb25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwpAQCAtMTA0
Niw2ICsxMDcxLDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIC8vIFJlc2V0IG5v
dGlmaWNhdGlvbiBwZXJtaXNzaW9ucwogICAgIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXIucmVz
ZXQoKTsKKyAgICBtX25vdGlmaWNhdGlvbk9yaWdpbnNUb0RlbnlPblByb21wdC5jbGVhcigpOwog
CiAgICAgLy8gUmVzZXQgR2VvbG9jYXRpb24gcGVybWlzc2lvbnMuCiAgICAgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwpAQCAtMjQxMiwyMyArMjQzOCw2IEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OmlzR2VvbG9jYXRpb25Qcm92aWRlckFjdGl2ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fZ2VvbG9jYXRpb25Qcm92aWRlci0+aXNBY3RpdmUoKTsKIH0KIAotc3RhdGljIFN0
cmluZyBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCi17
Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotCi0gICAg
YXV0byBob3N0ID0gdG9XVEZTdHJpbmcoYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3Qo
b3JpZ2luKSkpOwotICAgIGF1dG8gcHJvdG9jb2wgPSB0b1dURlN0cmluZyhhZG9wdFdLKFdLU2Vj
dXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luKSkpOwotCi0gICAgaWYgKGhvc3QuaXNFbXB0
eSgpIHx8IHByb3RvY29sLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
Ci0KLSAgICBpZiAoaW50IHBvcnQgPSBXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKQot
ICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhwcm90b2NvbCwgIjovLyIsIGhvc3QsICc6JywgcG9y
dCk7Ci0KLSAgICByZXR1cm4gbWFrZVN0cmluZyhwcm90b2NvbCwgIjovLyIsIGhvc3QpOwotfQot
CiBzdGF0aWMgU3RyaW5nIHVzZXJNZWRpYU9yaWdpbkhhc2goV0tTZWN1cml0eU9yaWdpblJlZiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKQogewogICAgIFN0cmluZyB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZyA9
IG9yaWdpblVzZXJWaXNpYmxlTmFtZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbik7CkBAIC0yNjUx
LDggKzI2NjAsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmIHBhZ2UKICAgICBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QocGFnZSwgb3JpZ2luLCByZXF1ZXN0KTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVl
c3QpCit2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCiB7CisgICAgYXV0byBvcmln
aW5OYW1lID0gb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbik7CisgICAgaWYgKG1fbm90aWZp
Y2F0aW9uT3JpZ2luc1RvRGVueU9uUHJvbXB0LmNvbnRhaW5zKG9yaWdpbk5hbWUpKSB7CisgICAg
ICAgIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KHJlcXVlc3QpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFs
bG93KHJlcXVlc3QpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggYThhMjQ5N2Q2ZjY1YjQwODE2ZWRkODYxNjkyNTJmZTdiOWQyYjAzNC4uNDQ1Mzk1Mzg4
MzkyYjEwYzQ1MzNhZmMxOTg2NmE3MjRhY2U4OTM5MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaApAQCAtMzc2LDYgKzM3Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
Z3JhbnROb3RpZmljYXRpb25QZXJtaXNzaW9uKFdLU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgYm9v
bCBkZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbihXS1N0cmluZ1JlZiBvcmlnaW4pOworICAgIGJv
b2wgZGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb25PblByb21wdChXS1N0cmluZ1JlZiBvcmlnaW4p
OwogCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdl
bmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKQEAgLTU3NSw2ICs1
NzYsNyBAQCBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtX3Rlc3RQbHVn
aW5EaXJlY3Rvcnk7CiAKICAgICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX25vdGlmaWNhdGlvbk9yaWdpbnNU
b0RlbnlPblByb21wdDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+IG1f
bWFpbldlYlZpZXc7CiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+PiBtX2F1
eGlsaWFyeVdlYlZpZXdzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAppbmRleCBkOWUwNjBkYWMyYWI5OTQ3NzY0OGM1MjU1Nzc4ZmUwM2M1YzU2NzVjLi40N2QxNjk1
ZTBkMTc4YTQ1NTgwODczNDdjOWEwZDRhZjM5NGM1ODQxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTAzOSw2ICsxMDM5LDkgQEAgV0tSZXRhaW5QdHI8
V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZy
b21JbmplY3RlZEIKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIkRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uIikpCiAgICAgICAgIHJldHVybiBhZG9w
dFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZGVueU5vdGlm
aWNhdGlvblBlcm1pc3Npb24oc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpKSkpOwogCisgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJEZW55Tm90aWZpY2F0
aW9uUGVybWlzc2lvbk9uUHJvbXB0IikpCisgICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVh
bkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZGVueU5vdGlmaWNhdGlvblBlcm1p
c3Npb25PblByb21wdChzdHJpbmdWYWx1ZShtZXNzYWdlQm9keSkpKSk7CisKICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzRG9pbmdNZWRpYUNhcHR1
cmUiKSkKICAgICAgICAgcmV0dXJuIGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5pc0RvaW5nTWVkaWFDYXB0dXJlKCkpKTsKICAgICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBk
OGQ4YjU1MDBiNzIxOTAxNWIzOGViZWIzMjJjYzMzNjVjMzBiZTJjLi4xMGU4YmRiMzcyOGE3NzBm
NjQ5OGU1ZGE4ZDM4NDQyNGZjZjY4Njc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjItMDMt
MjEgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBzaG93IG5vdGlm
aWNhdGlvbiBwZXJtaXNzaW9uIHByb21wdCBvbiB0cmFuc2llbnQgYWN0aXZhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MTg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZXMg
dG8gbWFrZSBzdXJlIHRoYXQgc2hvd2luZyBhIHBlcm1pc3Npb24gcHJvbXB0IGNvbnN1bWVzIGEg
dXNlciBnZXN0dXJlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlm
aWNhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVz
LWFjdGl2YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25v
dGlmaWNhdGlvbnMvcmVxdWVzdC1jb25zdW1lcy1hY3RpdmF0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qczoK
KyAgICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFN1YnNjcmliZVdpdGhVc2VyR2VzdHVyZSk6Cisg
ICAgICAgIChhc3luYyB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdlc3R1cmUpOgor
ICAgICAgICAoYXN5bmMgdGVzdERvY3VtZW50U3Vic2NyaWJlSW1wbCk6CisgICAgICAgICogaHR0
cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9u
cy1vbi1wcm9tcHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkv
c3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtb24tcHJvbXB0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjItMDMtMTggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TIGFybTY0XSB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0
bWwgaXMgY29uc2lzdGVudGx5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLW5v
LWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90
aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1uby1jYWxsYmFjay5odG1sCmluZGV4IDI3ODdm
MTY4MjU4NGNkMjQ2Y2JjNDdiMTRmOWM1OTNjNTMwOTg4YmEuLjc2OWRhZjZlMzljOTg0MjVhMTY1
M2Y2NmVkMTQ3YTJiMzU0MTVlY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLW5vLWNhbGxiYWNr
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbApAQCAtMTUsMTEgKzE1LDE1
IEBAIGlmICghd2luZG93LmludGVybmFscykKIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4gewogICAgIHdpbmRvdy5Ob3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKTsKICAgICB0
ZXN0UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gZG9lcyBub3QgY3Jhc2gu
Iik7Cit9KTsKIAoraW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CiAgICAgdGVzdFJ1
bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVzdFVSTCk7CiAgICAgd2luZG93
Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpOwogICAgIHRlc3RQYXNzZWQoIk5vdGlm
aWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbiBkb2VzIG5vdCBjcmFzaC4iKTsKK30pOwogCitpbnRl
cm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKICAgICB0ZXN0UnVubmVyLmRlbnlXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHRlc3RVUkwpOwogICAgIHdpbmRvdy5Ob3RpZmljYXRpb24ucmVx
dWVzdFBlcm1pc3Npb24oKTsKICAgICB0ZXN0UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBl
cm1pc3Npb24gZG9lcyBub3QgY3Jhc2guIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24uaHRtbAppbmRleCA4NWIwODNlODIyNTBiMGMwYjYxZTg0MzViMmZhZThj
ZmE0MWRhOGJlLi5jZmJhNzI3MDA5ZWMwN2IyYmQ5YmNhZDI4OWVhOTA3YjM0ZTEzNjMzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWwKQEAgLTE1LDEx
ICsxNSwxNSBAQCBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiBpbnRlcm5hbHMud2l0aFVzZXJHZXN0
dXJlKCgpID0+IHsKICAgICB3aW5kb3cuTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1
bmN0aW9uKCkgeyB9KTsKICAgICB0ZXN0UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1p
c3Npb24gZG9lcyBub3QgY3Jhc2guIik7Cit9KTsKIAoraW50ZXJuYWxzLndpdGhVc2VyR2VzdHVy
ZSgoKSA9PiB7CiAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24o
dGVzdFVSTCk7CiAgICAgd2luZG93Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5j
dGlvbigpIHsgfSk7CiAgICAgdGVzdFBhc3NlZCgiTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uIGRvZXMgbm90IGNyYXNoLiIpOworfSk7CiAKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUo
KCkgPT4gewogICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVz
dFVSTCk7CiAgICAgd2luZG93Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlv
bigpIHsgfSk7CiAgICAgdGVzdFBhc3NlZCgiTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9u
IGRvZXMgbm90IGNyYXNoLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMtYWN0aXZhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1jb25zdW1lcy1hY3Rp
dmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjljMWJlYTUyMDliZGQ4MDg3ZDlkNTli
MGFhZGUxYjc1ZTZlNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMtYWN0aXZhdGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBOb3RpZmljYXRpb24gcHJvbXB0aW5n
IGNhbiBvbmx5IGJlIGRvbmUgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KK1RoaXMgdGVzdHMgdGhhdCBO
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UgcGVy
IHVzZXIgZ2VzdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYm90
aCBwZXJtaXNzaW9uIHJlcXVlc3RzIGRlbmllZAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lv
biBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9yZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZjYzM2M0ZDViMGRmNjlkZTJiNDZkNGFiZGM2NmQ4ZWEzMjkzZDUxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtY29u
c3VtZXMtYWN0aXZhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IE5vdGlmaWNhdGlvbi5yZXF1ZXN0
UGVybWlzc2lvbiBjYW4gb25seSBiZSBjYWxsZWQgb25jZSBwZXIgdXNlciBnZXN0dXJlLiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKKworZnVuY3Rpb24gcnVuKCkgeworICAgIHRlc3RSdW5uZXIuZGVueVdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24oc2VsZi5vcmlnaW4pOworICAgIGludGVybmFscy53aXRoVXNl
ckdlc3R1cmUoKCkgPT4geworICAgICAgICBsZXQgcHJvbXB0MSA9IE5vdGlmaWNhdGlvbi5yZXF1
ZXN0UGVybWlzc2lvbigpOworICAgICAgICBsZXQgcHJvbXB0MiA9IE5vdGlmaWNhdGlvbi5yZXF1
ZXN0UGVybWlzc2lvbigpOworICAgICAgICBQcm9taXNlLmFsbChbcHJvbXB0MSwgcHJvbXB0Ml0p
LnRoZW4oKFtwZXJtaXNzaW9uMSwgcGVybWlzc2lvbjJdKSA9PiB7CisgICAgICAgICAgICBpZiAo
cGVybWlzc2lvbjEgPT0gJ2RlbmllZCcgJiYgcGVybWlzc2lvbjIgPT0gJ2RlbmllZCcpCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiYm90aCBwZXJtaXNzaW9uIHJlcXVlc3RzIGRlbmllZCIp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImJvdGggcGVy
bWlzc2lvbiByZXF1ZXN0cyBzaG91bGQgYmUgZGVuaWVkLCBidXQgd2FzICIgKyBwZXJtaXNzaW9u
MSArICIgYW5kIHRoZW4gIiArIHBlcm1pc3Npb24yKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVuaWVkIik7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3J1bigpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jl
c291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gt
YXBpL3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKaW5kZXggY2EyYzIzMDc5ZDRjNGFhZGJj
ZWQ0ZTA3OTg2NzEzMjA1MDcyZGUwNC4uNDE1YzdlZTUzOWVkNGUzYTVhMzM1NjMxNDE5NDA4MDNh
MTllODRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNv
dXJjZXMvc3Vic2NyaWJlLXRlc3RzLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVz
aC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcwpAQCAtMzgsMTkgKzM4LDI0IEBAIGFz
eW5jIGZ1bmN0aW9uIHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgZG9t
RXhjZXB0aW9uTmFtZSkKICAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3Jp
YmUgc2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOwogfQogCi1hc3lu
YyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRoVXNlckdlc3R1cmUocmVnaXN0cmF0
aW9uLCBkb21FeGNlcHRpb25OYW1lKQorYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vic2Ny
aWJlV2l0aFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFtZSwgZG9tTWVz
c2FnZSkKIHsKLSAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVJbXBsKHJlZ2lzdHJhdGlv
biwgZG9tRXhjZXB0aW9uTmFtZSwgdHJ1ZSk7CisgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2Ny
aWJlSW1wbChyZWdpc3RyYXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUsIGRvbU1lc3NhZ2UsIHRydWUp
OwogfQogCi1hc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdl
c3R1cmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQorYXN5bmMgZnVuY3Rpb24gdGVz
dERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhj
ZXB0aW9uTmFtZSwgZG9tTWVzc2FnZSkKIHsKLSAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3Jp
YmVJbXBsKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFtZSwgZmFsc2UpOworICAgIGF3YWl0
IHRlc3REb2N1bWVudFN1YnNjcmliZUltcGwocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1l
LCBkb21NZXNzYWdlLCBmYWxzZSk7CiB9CiAKLWFzeW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFN1
YnNjcmliZUltcGwocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lLCB3aXRoVXNlckdlc3R1
cmUpCithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVJbXBsKHJlZ2lzdHJhdGlv
biwgZG9tRXhjZXB0aW9uTmFtZSwgZG9tTWVzc2FnZSwgd2l0aFVzZXJHZXN0dXJlKQogewotICAg
IGxldCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9u
TmFtZX1gIDogInN1Y2Nlc3NmdWwiOworICAgIGxldCBleHBlY3RlZCA9ICJzdWNjZXNzZnVsIjsK
KyAgICBpZiAoZG9tTWVzc2FnZSkKKyAgICAgICAgZXhwZWN0ZWQgPSBgZXJyb3I6ICR7ZG9tRXhj
ZXB0aW9uTmFtZX06ICR7ZG9tTWVzc2FnZX1gCisgICAgZWxzZSBpZiAoZG9tRXhjZXB0aW9uTmFt
ZSkKKyAgICAgICAgZXhwZWN0ZWQgPSBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gCisKICAg
ICBsZXQgcmVzdWx0ID0gbnVsbDsKIAogICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOwpAQCAt
NzksOCArODQsMTAgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vic2NyaWJlSW1wbChy
ZWdpc3RyYXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUsIHdpdGhVc2UKICAgICAgICAgLy8gcG9pbnQg
d2hlcmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0ZSB3aXRoIHdlYnB1c2hkIChhbiBBYm9ydEVy
cm9yKS4KICAgICAgICAgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCiAgICAgICAgICAgICBy
ZXN1bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAgIGVsc2UgaWYgKGRvbU1lc3NhZ2UpCisgICAg
ICAgICAgICByZXN1bHQgPSBgZXJyb3I6ICR7ZT8ubmFtZX06ICR7ZT8ubWVzc2FnZX1gCiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDog
bnVsbCk7CisgICAgICAgICAgICByZXN1bHQgPSBgZXJyb3I6ICR7ZT8ubmFtZX1gOwogICAgIH0K
IAogICAgIGlmIChzdWJzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMt
ZXhwZWN0ZWQudHh0CmluZGV4IDliZDkxNjIxZmM5ZmRmOThiY2IzYzJhYzU3YmEzMzAzZTZlMGE0
ZWQuLmNiZjNlNWJhMGQ5ZjliNTJiOTZjNmRlYWY0MTZmYmJmMjU4OTg1ODYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lv
bnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogUEFT
Uzogc2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKIFBBU1M6IGRvY3Vt
ZW50IHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCiBQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJz
Y3JpYmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKLVBBU1M6IGRvY3VtZW50IHN1YnNjcmli
ZSB3aXRob3V0IHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzog
ZG9jdW1lbnQgc3Vic2NyaWJlIHdpdGhvdXQgdXNlciBnZXN0dXJlIHdhcyBlcnJvcjogTm90QWxs
b3dlZEVycm9yOiBVc2VyIGRlbmllZCBwdXNoIHBlcm1pc3Npb24KIFBBU1M6IGRvY3VtZW50IHN1
YnNjcmliZSB3aXRoIHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55
LXBlcm1pc3Npb25zLW9uLXByb21wdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWYzYTc3NTc3MjgxNDc3NDdhNGFkOWI0NWMxODQxOGUxZWI0ZDIx
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMtb24tcHJvbXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQ
QVNTOiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3
b3JrZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVu
dCBzdWJzY3JpYmUgd2l0aG91dCB1c2VyIGdlc3R1cmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJy
b3IKK1BBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3aXRoIHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6
IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdpdGggY29uc3VtZWQg
dXNlciBnZXN0dXJlIGZhaWxlZCB3aXRoIHVzZXIgZ2VzdHVyZSBlcnJvcgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Np
b25zLW9uLXByb21wdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZGVueS1wZXJtaXNzaW9ucy1vbi1wcm9tcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOThmMzli
ZDcyMmQzMmJmOGYxNTg1MmNmMzkzYzQ1MDQ4ODU1ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1v
bi1wcm9tcHQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kZW55
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KHdpbmRvdy5vcmlnaW4pOworCituYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIu
anMiLCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7CisgICAg
ICAgIGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRl
ZCIpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdp
c3RyYXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlzc2lv
blN0YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0U2Vydmlj
ZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAg
ICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0dXJlKHJlZ2lzdHJh
dGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworCisgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KCdUZXN0IHJlcXVpcmVzIGludGVybmFs
cy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgICAgIGxl
dCByZXF1ZXN0MSA9IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAgICAg
ICAgICAgICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgICAg
IGFwcGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJfS0VZCisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QyID0gcmVnaXN0cmF0aW9uLnB1c2hNYW5h
Z2VyLnN1YnNjcmliZSh7CisgICAgICAgICAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1
ZSwKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZF
Ul9LRVkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBQcm9taXNlLmFsbFNl
dHRsZWQoW3JlcXVlc3QxLCByZXF1ZXN0Ml0pLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgICAgIGxldCBbcmVzdWx0MSwgcmVzdWx0Ml0gPSBhd2FpdChw
cm9taXNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQxLnJlYXNvbiAmJiByZXN1bHQx
LnJlYXNvbi5uYW1lID09ICdOb3RBbGxvd2VkRXJyb3InKQorICAgICAgICAgICAgbG9nKCdQQVNT
OiBkb2N1bWVudCBzdWJzY3JpYmUgd2l0aCB1c2VyIGdlc3R1cmUgd2FzIGVycm9yOiBOb3RBbGxv
d2VkRXJyb3InKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coYEZBSUw6IGZpcnN0IHN1
YnNjcmliZSBmYWlsZWQgd2l0aCB1bmV4cGVjdGVkIHJlc3VsdCAke3Jlc3VsdDEudmFsdWUgfHwg
cmVzdWx0MS5yZWFzb259YCk7CisKKyAgICAgICAgaWYgKHJlc3VsdDIucmVhc29uICYmIHJlc3Vs
dDIucmVhc29uLm5hbWUgPT0gJ05vdEFsbG93ZWRFcnJvcicgJiYgcmVzdWx0Mi5yZWFzb24ubWVz
c2FnZS5pbmNsdWRlcygndXNlciBnZXN0dXJlJykpCisgICAgICAgICAgICBsb2coJ1BBU1M6IGRv
Y3VtZW50IHN1YnNjcmliZSB3aXRoIGNvbnN1bWVkIHVzZXIgZ2VzdHVyZSBmYWlsZWQgd2l0aCB1
c2VyIGdlc3R1cmUgZXJyb3InKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coYEZBSUw6
IHNlY29uZCBzdWJzY3JpYmUgZmFpbGVkIHdpdGggdW5leHBlY3RlZCByZXN1bHQgJHtyZXN1bHQy
LnZhbHVlIHx8IHJlc3VsdDIucmVhc29ufWApCisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBs
b2coYEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgewor
ICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQ
dXNoQVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55
LXBlcm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNj
cmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwKaW5kZXggYTYxMjZlZWQ5N2ZjNzcxZjQ2YjdmNTlm
ZDYxMTdhMzZkZjkyMGRkOS4uNDYyNmUzOWJkOWRiOGEwZWM4NmJlNjU1ZTUzZjc4NGY2MmZiNDY0
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVueS1wZXJtaXNzaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIu
anMiLCB7IH0pLnRoZW4oYXN5bgogICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1p
c3Npb25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKICAgICAgICAgYXdhaXQgdGVzdERv
Y3VtZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOwogICAgICAgICBh
d2FpdCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2Vk
RXJyb3InKTsKLSAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJH
ZXN0dXJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICBhd2FpdCB0
ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdlc3R1cmUocmVnaXN0cmF0aW9uLCAnTm90
QWxsb3dlZEVycm9yJywgJ1VzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbicpOwogICAgICAgICBh
d2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRoVXNlckdlc3R1cmUocmVnaXN0cmF0aW9uLCAn
Tm90QWxsb3dlZEVycm9yJyk7CiAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICBsb2coYEZBSUw6
IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZjkyN2E0ZTkwYzE4YThjMDRlMGVlY2U1NjNhMmI1YjlkZDVl
NDY0ZS4uYWQxODQwZTA5MmM1MmIxMTllZWFjOGI4NmVjMDEwNGZmOTRhNzMxMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NzMsNiArMTg3Myw3IEBA
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3ByZXNlcnZlLXVhLWhlYWRlci1v
bi1yZWRpcmVjdC5odG0gWyBGYWlsdXJlCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1k
ZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCBbIEZhaWx1cmUgXQog
aHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUt
c2FtZS1vcmlnaW4uaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC5odG1sIFsgRmFpbHVyZSBd
CiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgWyBG
YWlsdXJlIF0KIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25z
Lmh0bWwgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDg0YjFhZjBlYzdjMzk5ZDAxMzdlZmNlMzBhMzdmMDYwNTEwZWEx
NmYuLmVhYjYzOTY5MTcyN2RkNGM3MTVkM2IzMjExNGJjYmZjMzEwZmZmMjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3ODQsNiArMTc4
NCw3IEBAIHdlYmtpdC5vcmcvYi8yMzY1MzAgZmFzdC90ZXh0L290c3ZnLWNhbnZhcy5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0
LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0
cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmln
aW4uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1w
ZXJtaXNzaW9ucy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1k
ZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1
c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwgWyBTa2lwIF0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzYmY3NzI0ZjIw
MmY5YTJkNGZlMTdmMDgxZGM2MThmNjc3MjZjZGMxLi4wZWY3YzUxYmU1YTg1ZTYxODJhNjBhZWMy
ODMxMWVlZTdjNGFlMTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNTAwOSw2ICs1MDA5LDcgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC0KIGh0dHAv
dGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3Nz
LW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1k
ZWZhdWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBG
YWlsdXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMt
b24tcHJvbXB0Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJl
LWRlbnktcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9z
dWJzY3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455463</attachid>
            <date>2022-03-22 17:53:07 -0700</date>
            <delta_ts>2022-03-22 23:48:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-238188-20220322175307.patch</filename>
            <type>text/plain</type>
            <size>31051</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFjNjk1NDcwODU4OTMx
YjZkMmMyY2MzNWM2NDQ2NmJlNmY2OTQ0Mi4uNjkzZjJmNzg3YjNjNmMzNmFkYzZlMTI0ZGFlMWQy
NTIzMjQwMzM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAzLTIxICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgc2hvdyBub3RpZmljYXRpb24g
cGVybWlzc2lvbiBwcm9tcHQgb24gdHJhbnNpZW50IGFjdGl2YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODE4OAorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgSW4gcjI5MTQyNywgd2UgY2hhbmdlZCBO
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gYW5kIFB1c2hNYW5hZ2VyLnN1YnNjcmliZSB0
byBvbmx5IHNob3cKKyAgICAgICAgYSBwZXJtaXNzaW9uIHByb21wdCB3aGVuIHByb2Nlc3Npbmcg
YSB1c2VyIGdlc3R1cmUuIFRoaXMgZW5kZWQgdXAgYmVpbmcgdG9vIHJlc3RyaWN0aXZlIGFuZAor
ICAgICAgICBjYXVzZXMgY29tcGF0aWJpbGl0eSBwcm9ibGVtcyB3aXRoIHNvbWUgbGFyZ2Ugc2l0
ZXMuCisKKyAgICAgICAgSW5zdGVhZCwgbWF0Y2ggQ2hyb21lIGFuZCBGaXJlZm94IGJ5IGFsbG93
aW5nIHRoZXNlIHByb21wdHMgYWZ0ZXIgYSB0cmFuc2llbnQgYWN0aXZpYXRpb24sCisgICAgICAg
IGkuZS4gYSB1c2VyIGdlc3R1cmUgd2l0aGluIHRoZSBwYXN0IHNlY29uZC4KKworICAgICAgICBQ
ZXIgTWFjaWVqJ3Mgc3VnZ2VzdGlvbiwgd2UgYWxzbyBjb25zdW1lIHRoZSBhY3RpdmF0aW9uIHRv
IGhlbHAgY29tYmF0IHByb21wdCBzcGFtLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IGFuZCBl
eGlzdGluZyBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvcHVzaC1hcGkvUHVzaE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UHVzaE1hbmFnZXI6OnN1YnNjcmliZSk6CisKIDIwMjItMDMt
MTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Mg
MTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggMmQ2ZjE0ZGNmMzYwMGVj
YTZiMThjNDI3MzEwNDM0NzBmYmE2NTJhYS4uODdiMmUzYzk0ZTBiNzVkZDdiYzUwNjk1Mjg0MjVh
NzBiZTc3ZmY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbi5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9y
LmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiV2luZG93Rm9jdXNB
bGxvd2VkSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBA
IC0yOTcsNyArMjk3LDggQEAgdm9pZCBOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKERv
Y3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm0KICAgICAgICAgcmV0dXJu
IHJlc29sdmVQcm9taXNlQW5kQ2FsbGJhY2soUGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9CiAK
LSAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkg
eworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmZyYW1lKCkgPyBkb2N1bWVudC5mcmFtZSgp
LT53aW5kb3coKSA6IG51bGxwdHI7CisgICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy0+Y29uc3Vt
ZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewogICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIk5vdGlm
aWNhdGlvbiBwcm9tcHRpbmcgY2FuIG9ubHkgYmUgZG9uZSBmcm9tIGEgdXNlciBnZXN0dXJlLiJf
cyk7CiAgICAgICAgIHJldHVybiByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrKFBlcm1pc3Npb246
OkRlbmllZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNo
LWFwaS9QdXNoTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1
c2hNYW5hZ2VyLmNwcAppbmRleCA1NTNlNWRjOGFjMzQ0MDlmNzZiMDAwMzAyOWRiOGYwNzRjYTQ4
NjhiLi44YzU4N2Q3Zjg2MDQ4YmE4NTdiZmJlMGM5NWY4OGZhZTRjYzVmNWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hNYW5hZ2VyLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29w
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCkBAIC0zNyw3ICszOCw2IEBACiAjaW5jbHVkZSAi
UHVzaENyeXB0by5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KQEAgLTcyLDcgKzcy
LDcgQEAgdm9pZCBQdXNoTWFuYWdlcjo6c3Vic2NyaWJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8UHVzaFMKIHsKICAgICBSRUxFQVNFX0FTU0VSVChjb250
ZXh0LmlzU2VjdXJlQ29udGV4dCgpKTsKIAotICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVU
YXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgY29udGV4dCA9IFJlZiB7IGNvbnRleHQgfSwgb3B0aW9ucyA9IFdURk1vdmUob3B0
aW9ucyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUg
PSBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCldKCkgbXV0YWJs
ZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29y
a2luZywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb250ZXh0ID0gUmVm
IHsgY29udGV4dCB9LCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9u
cy0+dXNlclZpc2libGVPbmx5KSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBOb3RBbGxvd2VkRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVzaCByZXF1aXJlcyB1c2Vy
VmlzaWJsZU9ubHkgdG8gYmUgdHJ1ZSJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEz
MSwxMiArMTMxLDE0IEBAIHZvaWQgUHVzaE1hbmFnZXI6OnN1YnNjcmliZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPFB1c2hTCiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChjbGllbnQpOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4dC0+
aXNEb2N1bWVudCgpKTsKIAotICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dC5nZXQoKSkuaXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpKSB7CisgICAgICAgICAgICBh
dXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0LmdldCgpKTsKKyAgICAg
ICAgICAgIGlmICghZG9jdW1lbnQuaXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpKSB7CiAgICAg
ICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAi
Q2Fubm90IHJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIGNyb3NzLW9yaWdpbiBpZnJhbWUiX3MgfSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBp
ZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgeworICAgICAgICAgICAgYXV0byogd2luZG93ID0g
ZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3VtZW50LmZyYW1lKCktPndpbmRvdygpIDogbnVsbHB0cjsK
KyAgICAgICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3ctPmNvbnN1bWVUcmFuc2llbnRBY3Rp
dmF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RBbGxvd2VkRXJyb3IsICJQdXNoIG5vdGlmaWNhdGlvbiBwcm9tcHRpbmcgY2FuIG9ubHkgYmUg
ZG9uZSBmcm9tIGEgdXNlciBnZXN0dXJlIl9zIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAxNTQzMmM0N2JhZTc3ODc4YjUxYTA3ODVjNjM5YmUzOGRkYzJjMDM5Li4xZGNm
ZjBlMjI0ZTlkNTUxN2ZjYjllZGIzOWMxMmQ2MTY1MzliNWM2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDMt
MjEgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBzaG93IG5vdGlm
aWNhdGlvbiBwZXJtaXNzaW9uIHByb21wdCBvbiB0cmFuc2llbnQgYWN0aXZhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MTg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBZGQgYW4gaW50ZXJuYWwg
QVBJIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uT25Qcm9tcHQgdG8gV2ViS2l0VGVzdFJ1
bm5lciB0aGF0IGFsbG93cyBhCisgICAgICAgIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHByb21w
dCB0byBmaXJzdCBiZSBkaXNwbGF5ZWQgYW5kIHRoZW4gcmVqZWN0ZWQuIFRoaXMgZGlmZmVycyBm
cm9tCisgICAgICAgIHRoZSBleGlzdGluZyBkZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbiBjYWxs
LCB3aGljaCBkZW5pZWQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIGJlZm9yZQorICAgICAgICBw
cm9tcHRpbmcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmRlbnlX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGVu
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25PblByb21wdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6Om9yaWdpblVzZXJWaXNp
YmxlTmFtZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZW55Tm90aWZpY2F0aW9u
UGVybWlzc2lvbk9uUHJvbXB0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIy
LTAzLTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggdGVzdCBmYWlsdXJlcyB3aGVuIGVuYWJsaW5nIGNvbnRlbnQgZmlsdGVyaW5nIGluIHRoZSBO
ZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGU1ZDE0OGFmN2Vl
ZGIwMjRmOWZmOWZjNmY4N2EwODE0ZWM5MGE5N2UuLmVlMTBhZjQzYTRkMDU0YWYxZGY4OTY1NGRh
M2U4YmM1MDI4MjY4YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMjA2LDYgKzIw
Niw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBXZWIgbm90aWZpY2F0aW9ucyBz
dXBwb3J0CiAgICAgdW5kZWZpbmVkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihET01T
dHJpbmcgb3JpZ2luKTsKICAgICB1bmRlZmluZWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24oRE9NU3RyaW5nIG9yaWdpbik7CisgICAgdW5kZWZpbmVkIGRlbnlXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uT25Qcm9tcHQoRE9NU3RyaW5nIG9yaWdpbik7CiAgICAgdW5kZWZpbmVkIHJlbW92
ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CiAgICAgdW5kZWZpbmVkIHNpbXVsYXRl
V2ViTm90aWZpY2F0aW9uQ2xpY2sob2JqZWN0IG5vdGlmaWNhdGlvbik7CiAgICAgdW5kZWZpbmVk
IHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2tGb3JTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9u
cygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKaW5kZXggNDYyOWNmNzIzZWEyYjM5MWZkOTQ5YzUzOWIyODFlYWJlZTkzNGU0
ZS4uZWQ3M2MzOTVkMDY0MjhhZDU1MTQyZjdhOWEyYTNiN2U5YzIzN2I1ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBA
IC04NzYsNiArODc2LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBl
cm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNz
YWdlV2l0aFJldHVyblZhbHVlKCJEZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbiIsIHRvV0sob3Jp
Z2luKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25PblByb21wdChKU1N0cmluZ1JlZiBvcmlnaW4pCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFn
ZU1lc3NhZ2VXaXRoUmV0dXJuVmFsdWUoIkRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uT25Qcm9t
cHQiLCB0b1dLKG9yaWdpbikpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKCkKIHsKICAgICBXS0J1bmRsZVJlbW92ZUFsbFdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwg
cGFnZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggN2Y2OTE2NjI4YmNhMjhkZmQ4YWY2MTkzMzY0YzRkNGQzNzllMDIx
Ny4uZjU5NmQ1ZWQxZDIxYmZhZTYzZGZjODIzN2QwM2FmMzkxMzRhMzMwZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTI5
Miw2ICsyOTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gV2ViIG5vdGlmaWNhdGlvbnMuCiAgICAgc3Rh
dGljIHZvaWQgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdp
bik7CiAgICAgc3RhdGljIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJp
bmdSZWYgb3JpZ2luKTsKKyAgICBzdGF0aWMgdm9pZCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbk9uUHJvbXB0KEpTU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgc3RhdGljIHZvaWQgcmVtb3Zl
QWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKICAgICBzdGF0aWMgdm9pZCBzaW11bGF0
ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKICAgICBzdGF0
aWMgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrRm9yU2VydmljZVdvcmtlck5vdGlm
aWNhdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggNWYwMmIwZWU4Yzg1NGYzNmU3MGVlNTI2OTNlZWY4MGY1NDdlZTU2Zi4uYTAxY2VhNDI3NzFh
ZTBhYmE5ZDg5MzczNjQ0NTg1OWUxYjFhOTkyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTcxOSw2ICs3MTksMjMgQEAgV0tSZXRhaW5QdHI8V0tQYWdl
Q29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRp
b24oY28KICAgICByZXR1cm4gcGFnZUNvbmZpZ3VyYXRpb247CiB9CiAKK3N0YXRpYyBTdHJpbmcg
b3JpZ2luVXNlclZpc2libGVOYW1lKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQoreworICAg
IGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIGF1dG8g
aG9zdCA9IHRvV1RGU3RyaW5nKGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KG9yaWdp
bikpKTsKKyAgICBhdXRvIHByb3RvY29sID0gdG9XVEZTdHJpbmcoYWRvcHRXSyhXS1NlY3VyaXR5
T3JpZ2luQ29weVByb3RvY29sKG9yaWdpbikpKTsKKworICAgIGlmIChob3N0LmlzRW1wdHkoKSB8
fCBwcm90b2NvbC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisg
ICAgaWYgKGludCBwb3J0ID0gV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcocHJvdG9jb2wsICI6Ly8iLCBob3N0LCAnOicsIHBvcnQpOwor
CisgICAgcmV0dXJuIG1ha2VTdHJpbmcocHJvdG9jb2wsICI6Ly8iLCBob3N0KTsKK30KKwogYm9v
bCBUZXN0Q29udHJvbGxlcjo6Z3JhbnROb3RpZmljYXRpb25QZXJtaXNzaW9uKFdLU3RyaW5nUmVm
IG9yaWdpblN0cmluZykKIHsKICAgICBtX3dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLnNldFBlcm1p
c3Npb24odG9XVEZTdHJpbmcob3JpZ2luU3RyaW5nKSwgdHJ1ZSk7CkBAIC03MzcsNiArNzU0LDE0
IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdLU3Ry
aW5nUmVmIG9yaWdpblN0cmluZykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBUZXN0Q29u
dHJvbGxlcjo6ZGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb25PblByb21wdChXS1N0cmluZ1JlZiBv
cmlnaW5TdHJpbmcpCit7CisgICAgYXV0byBvcmlnaW4gPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmln
aW5DcmVhdGVGcm9tU3RyaW5nKG9yaWdpblN0cmluZykpOworICAgIGF1dG8gb3JpZ2luTmFtZSA9
IG9yaWdpblVzZXJWaXNpYmxlTmFtZShvcmlnaW4uZ2V0KCkpOworICAgIG1fbm90aWZpY2F0aW9u
T3JpZ2luc1RvRGVueU9uUHJvbXB0LmFkZChvcmlnaW5OYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvcHRpb25zKQogewogICAgIGF1dG8gYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyID0gb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKQEAgLTEwNDYs
NiArMTA3MSw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAgICAvLyBSZXNldCBub3Rp
ZmljYXRpb24gcGVybWlzc2lvbnMKICAgICBtX3dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLnJlc2V0
KCk7CisgICAgbV9ub3RpZmljYXRpb25PcmlnaW5zVG9EZW55T25Qcm9tcHQuY2xlYXIoKTsKIAog
ICAgIC8vIFJlc2V0IEdlb2xvY2F0aW9uIHBlcm1pc3Npb25zLgogICAgIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKQEAgLTI0MTIsMjMgKzI0MzgsNiBAQCBib29sIFRl
c3RDb250cm9sbGVyOjppc0dlb2xvY2F0aW9uUHJvdmlkZXJBY3RpdmUoKSBjb25zdAogICAgIHJl
dHVybiBtX2dlb2xvY2F0aW9uUHJvdmlkZXItPmlzQWN0aXZlKCk7CiB9CiAKLXN0YXRpYyBTdHJp
bmcgb3JpZ2luVXNlclZpc2libGVOYW1lKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQotewot
ICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLQotICAgIGF1
dG8gaG9zdCA9IHRvV1RGU3RyaW5nKGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KG9y
aWdpbikpKTsKLSAgICBhdXRvIHByb3RvY29sID0gdG9XVEZTdHJpbmcoYWRvcHRXSyhXS1NlY3Vy
aXR5T3JpZ2luQ29weVByb3RvY29sKG9yaWdpbikpKTsKLQotICAgIGlmIChob3N0LmlzRW1wdHko
KSB8fCBwcm90b2NvbC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwot
Ci0gICAgaWYgKGludCBwb3J0ID0gV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luKSkKLSAg
ICAgICAgcmV0dXJuIG1ha2VTdHJpbmcocHJvdG9jb2wsICI6Ly8iLCBob3N0LCAnOicsIHBvcnQp
OwotCi0gICAgcmV0dXJuIG1ha2VTdHJpbmcocHJvdG9jb2wsICI6Ly8iLCBob3N0KTsKLX0KLQog
c3RhdGljIFN0cmluZyB1c2VyTWVkaWFPcmlnaW5IYXNoKFdLU2VjdXJpdHlPcmlnaW5SZWYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKIHsKICAgICBTdHJpbmcgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5TdHJpbmcgPSBv
cmlnaW5Vc2VyVmlzaWJsZU5hbWUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pOwpAQCAtMjY1MSw4
ICsyNjYwLDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiBwYWdlCiAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KHBhZ2UsIG9yaWdpbiwgcmVxdWVzdCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1
cml0eU9yaWdpblJlZiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0
KQordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQogeworICAgIGF1dG8gb3JpZ2lu
TmFtZSA9IG9yaWdpblVzZXJWaXNpYmxlTmFtZShvcmlnaW4pOworICAgIGlmIChtX25vdGlmaWNh
dGlvbk9yaWdpbnNUb0RlbnlPblByb21wdC5jb250YWlucyhvcmlnaW5OYW1lKSkgeworICAgICAg
ICBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShyZXF1ZXN0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxv
dyhyZXF1ZXN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGE4YTI0OTdkNmY2NWI0MDgxNmVkZDg2MTY5MjUyZmU3YjlkMmIwMzQuLjQ0NTM5NTM4ODM5
MmIxMGM0NTMzYWZjMTk4NjZhNzI0YWNlODkzOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTM3Niw2ICszNzYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGdy
YW50Tm90aWZpY2F0aW9uUGVybWlzc2lvbihXS1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIGJvb2wg
ZGVueU5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICBib29s
IGRlbnlOb3RpZmljYXRpb25QZXJtaXNzaW9uT25Qcm9tcHQoV0tTdHJpbmdSZWYgb3JpZ2luKTsK
IAogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBnZW5l
cmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRpb25zJik7CkBAIC01NzUsNiArNTc2
LDcgQEAgcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbV90ZXN0UGx1Z2lu
RGlyZWN0b3J5OwogCiAgICAgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgbV93ZWJOb3RpZmljYXRp
b25Qcm92aWRlcjsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9ub3RpZmljYXRpb25PcmlnaW5zVG9E
ZW55T25Qcm9tcHQ7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21h
aW5XZWJWaWV3OwogICAgIFZlY3RvcjxVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3Pj4gbV9hdXhp
bGlhcnlXZWJWaWV3czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
aW5kZXggZDllMDYwZGFjMmFiOTk0Nzc2NDhjNTI1NTc3OGZlMDNjNWM1Njc1Yy4uNDdkMTY5NWUw
ZDE3OGE0NTU4MDg3MzQ3YzlhMGQ0YWYzOTRjNTg0MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMzksNiArMTAzOSw5IEBAIFdLUmV0YWluUHRyPFdL
VHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJEZW55Tm90aWZpY2F0aW9uUGVybWlzc2lvbiIpKQogICAgICAgICByZXR1cm4gYWRvcHRX
SyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmRlbnlOb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KSkpKTsKIAorICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiRGVueU5vdGlmaWNhdGlv
blBlcm1pc3Npb25PblByb21wdCIpKQorICAgICAgICByZXR1cm4gYWRvcHRXSyhXS0Jvb2xlYW5D
cmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmRlbnlOb3RpZmljYXRpb25QZXJtaXNz
aW9uT25Qcm9tcHQoc3RyaW5nVmFsdWUobWVzc2FnZUJvZHkpKSkpOworCiAgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJc0RvaW5nTWVkaWFDYXB0dXJl
IikpCiAgICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuaXNEb2luZ01lZGlhQ2FwdHVyZSgpKSk7CiAgICAgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDhk
OGI1NTAwYjcyMTkwMTViMzhlYmViMzIyY2MzMzY1YzMwYmUyYy4uNmE3ZGEwMTY0MzU4ODQ3MjNi
ZjFiNTk2MTI4YThjNjhmNzE2NzVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTIx
ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgc2hvdyBub3RpZmlj
YXRpb24gcGVybWlzc2lvbiBwcm9tcHQgb24gdHJhbnNpZW50IGFjdGl2YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODE4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZXMgdG8g
bWFrZSBzdXJlIHRoYXQgc2hvd2luZyBhIHBlcm1pc3Npb24gcHJvbXB0IGNvbnN1bWVzIGEgdXNl
ciBnZXN0dXJlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVzLWFj
dGl2YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMvcmVxdWVzdC1jb25zdW1lcy1hY3RpdmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qczoKKyAg
ICAgICAgKGFzeW5jIHRlc3REb2N1bWVudFN1YnNjcmliZVdpdGhVc2VyR2VzdHVyZSk6CisgICAg
ICAgIChhc3luYyB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdlc3R1cmUpOgorICAg
ICAgICAoYXN5bmMgdGVzdERvY3VtZW50U3Vic2NyaWJlSW1wbCk6CisgICAgICAgICogaHR0cC90
ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1v
bi1wcm9tcHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vi
c2NyaWJlLWRlbnktcGVybWlzc2lvbnMtb24tcHJvbXB0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjItMDMtMTggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TIGFybTY0XSB3ZWJydGMvdnA5LXByb2ZpbGUyLmh0bWwg
aXMgY29uc2lzdGVudGx5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLW5vLWNh
bGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1uby1jYWxsYmFjay5odG1sCmluZGV4IDI3ODdmMTY4
MjU4NGNkMjQ2Y2JjNDdiMTRmOWM1OTNjNTMwOTg4YmEuLjc2OWRhZjZlMzljOTg0MjVhMTY1M2Y2
NmVkMTQ3YTJiMzU0MTVlY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLW5vLWNhbGxiYWNrLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tbm8tY2FsbGJhY2suaHRtbApAQCAtMTUsMTEgKzE1LDE1IEBA
IGlmICghd2luZG93LmludGVybmFscykKIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4g
ewogICAgIHdpbmRvdy5Ob3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKTsKICAgICB0ZXN0
UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gZG9lcyBub3QgY3Jhc2guIik7
Cit9KTsKIAoraW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CiAgICAgdGVzdFJ1bm5l
ci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVzdFVSTCk7CiAgICAgd2luZG93Lk5v
dGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpOwogICAgIHRlc3RQYXNzZWQoIk5vdGlmaWNh
dGlvbi5yZXF1ZXN0UGVybWlzc2lvbiBkb2VzIG5vdCBjcmFzaC4iKTsKK30pOwogCitpbnRlcm5h
bHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKICAgICB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHRlc3RVUkwpOwogICAgIHdpbmRvdy5Ob3RpZmljYXRpb24ucmVxdWVz
dFBlcm1pc3Npb24oKTsKICAgICB0ZXN0UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1p
c3Npb24gZG9lcyBub3QgY3Jhc2guIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24uaHRtbAppbmRleCA4NWIwODNlODIyNTBiMGMwYjYxZTg0MzViMmZhZThjZmE0
MWRhOGJlLi5jZmJhNzI3MDA5ZWMwN2IyYmQ5YmNhZDI4OWVhOTA3YjM0ZTEzNjMzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWwKQEAgLTE1LDExICsx
NSwxNSBAQCBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJl
KCgpID0+IHsKICAgICB3aW5kb3cuTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0
aW9uKCkgeyB9KTsKICAgICB0ZXN0UGFzc2VkKCJOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Np
b24gZG9lcyBub3QgY3Jhc2guIik7Cit9KTsKIAoraW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgo
KSA9PiB7CiAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVz
dFVSTCk7CiAgICAgd2luZG93Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlv
bigpIHsgfSk7CiAgICAgdGVzdFBhc3NlZCgiTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9u
IGRvZXMgbm90IGNyYXNoLiIpOworfSk7CiAKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4gewogICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24odGVzdFVS
TCk7CiAgICAgd2luZG93Lk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlvbigp
IHsgfSk7CiAgICAgdGVzdFBhc3NlZCgiTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uIGRv
ZXMgbm90IGNyYXNoLiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3Rp
ZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMtYWN0aXZhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1jb25zdW1lcy1hY3RpdmF0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjljMWJlYTUyMDliZGQ4MDg3ZDlkNTliMGFh
ZGUxYjc1ZTZlNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3VtZXMtYWN0aXZhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorQ09OU09MRSBNRVNTQUdFOiBOb3RpZmljYXRpb24gcHJvbXB0aW5nIGNh
biBvbmx5IGJlIGRvbmUgZnJvbSBhIHVzZXIgZ2VzdHVyZS4KK1RoaXMgdGVzdHMgdGhhdCBOb3Rp
ZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24gY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UgcGVyIHVz
ZXIgZ2VzdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYm90aCBw
ZXJtaXNzaW9uIHJlcXVlc3RzIGRlbmllZAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBp
cyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9y
ZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9yZXF1ZXN0LWNvbnN1bWVzLWFjdGl2YXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjYzM2M0ZDViMGRmNjlkZTJiNDZkNGFiZGM2NmQ4ZWEzMjkzZDUxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtY29uc3Vt
ZXMtYWN0aXZhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVy
bWlzc2lvbiBjYW4gb25seSBiZSBjYWxsZWQgb25jZSBwZXIgdXNlciBnZXN0dXJlLiIpOworanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKKworZnVuY3Rpb24gcnVuKCkgeworICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24oc2VsZi5vcmlnaW4pOworICAgIGludGVybmFscy53aXRoVXNlckdl
c3R1cmUoKCkgPT4geworICAgICAgICBsZXQgcHJvbXB0MSA9IE5vdGlmaWNhdGlvbi5yZXF1ZXN0
UGVybWlzc2lvbigpOworICAgICAgICBsZXQgcHJvbXB0MiA9IE5vdGlmaWNhdGlvbi5yZXF1ZXN0
UGVybWlzc2lvbigpOworICAgICAgICBQcm9taXNlLmFsbChbcHJvbXB0MSwgcHJvbXB0Ml0pLnRo
ZW4oKFtwZXJtaXNzaW9uMSwgcGVybWlzc2lvbjJdKSA9PiB7CisgICAgICAgICAgICBpZiAocGVy
bWlzc2lvbjEgPT0gJ2RlbmllZCcgJiYgcGVybWlzc2lvbjIgPT0gJ2RlbmllZCcpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiYm90aCBwZXJtaXNzaW9uIHJlcXVlc3RzIGRlbmllZCIpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImJvdGggcGVybWlz
c2lvbiByZXF1ZXN0cyBzaG91bGQgYmUgZGVuaWVkLCBidXQgd2FzICIgKyBwZXJtaXNzaW9uMSAr
ICIgYW5kIHRoZW4gIiArIHBlcm1pc3Npb24yKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVuaWVkIik7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3J1bigpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3Jlc291
cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBp
L3Jlc291cmNlcy9zdWJzY3JpYmUtdGVzdHMuanMKaW5kZXggY2EyYzIzMDc5ZDRjNGFhZGJjZWQ0
ZTA3OTg2NzEzMjA1MDcyZGUwNC4uNDE1YzdlZTUzOWVkNGUzYTVhMzM1NjMxNDE5NDA4MDNhMTll
ODRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9yZXNvdXJj
ZXMvc3Vic2NyaWJlLXRlc3RzLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1h
cGkvcmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcwpAQCAtMzgsMTkgKzM4LDI0IEBAIGFzeW5j
IGZ1bmN0aW9uIHRlc3RTZXJ2aWNlV29ya2VyU3Vic2NyaWJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhj
ZXB0aW9uTmFtZSkKICAgICAgICAgbG9nKGBGQUlMOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3JpYmUg
c2hvdWxkIGJlICR7ZXhwZWN0ZWR9LCBidXQgd2FzICR7cmVzdWx0fWApOwogfQogCi1hc3luYyBm
dW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRoVXNlckdlc3R1cmUocmVnaXN0cmF0aW9u
LCBkb21FeGNlcHRpb25OYW1lKQorYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vic2NyaWJl
V2l0aFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFtZSwgZG9tTWVzc2Fn
ZSkKIHsKLSAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVJbXBsKHJlZ2lzdHJhdGlvbiwg
ZG9tRXhjZXB0aW9uTmFtZSwgdHJ1ZSk7CisgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJl
SW1wbChyZWdpc3RyYXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUsIGRvbU1lc3NhZ2UsIHRydWUpOwog
fQogCi1hc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdlc3R1
cmUocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lKQorYXN5bmMgZnVuY3Rpb24gdGVzdERv
Y3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0
aW9uTmFtZSwgZG9tTWVzc2FnZSkKIHsKLSAgICBhd2FpdCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVJ
bXBsKHJlZ2lzdHJhdGlvbiwgZG9tRXhjZXB0aW9uTmFtZSwgZmFsc2UpOworICAgIGF3YWl0IHRl
c3REb2N1bWVudFN1YnNjcmliZUltcGwocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lLCBk
b21NZXNzYWdlLCBmYWxzZSk7CiB9CiAKLWFzeW5jIGZ1bmN0aW9uIHRlc3REb2N1bWVudFN1YnNj
cmliZUltcGwocmVnaXN0cmF0aW9uLCBkb21FeGNlcHRpb25OYW1lLCB3aXRoVXNlckdlc3R1cmUp
Cithc3luYyBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVJbXBsKHJlZ2lzdHJhdGlvbiwg
ZG9tRXhjZXB0aW9uTmFtZSwgZG9tTWVzc2FnZSwgd2l0aFVzZXJHZXN0dXJlKQogewotICAgIGxl
dCBleHBlY3RlZCA9IGRvbUV4Y2VwdGlvbk5hbWUgPyBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFt
ZX1gIDogInN1Y2Nlc3NmdWwiOworICAgIGxldCBleHBlY3RlZCA9ICJzdWNjZXNzZnVsIjsKKyAg
ICBpZiAoZG9tTWVzc2FnZSkKKyAgICAgICAgZXhwZWN0ZWQgPSBgZXJyb3I6ICR7ZG9tRXhjZXB0
aW9uTmFtZX06ICR7ZG9tTWVzc2FnZX1gCisgICAgZWxzZSBpZiAoZG9tRXhjZXB0aW9uTmFtZSkK
KyAgICAgICAgZXhwZWN0ZWQgPSBgZXJyb3I6ICR7ZG9tRXhjZXB0aW9uTmFtZX1gCisKICAgICBs
ZXQgcmVzdWx0ID0gbnVsbDsKIAogICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsOwpAQCAtNzks
OCArODQsMTAgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdERvY3VtZW50U3Vic2NyaWJlSW1wbChyZWdp
c3RyYXRpb24sIGRvbUV4Y2VwdGlvbk5hbWUsIHdpdGhVc2UKICAgICAgICAgLy8gcG9pbnQgd2hl
cmUgd2UgYXR0ZW1wdCB0byBjb21tdW5pY2F0ZSB3aXRoIHdlYnB1c2hkIChhbiBBYm9ydEVycm9y
KS4KICAgICAgICAgaWYgKGUubmFtZSA9PSAnQWJvcnRFcnJvcicpCiAgICAgICAgICAgICByZXN1
bHQgPSAnc3VjY2Vzc2Z1bCc7CisgICAgICAgIGVsc2UgaWYgKGRvbU1lc3NhZ2UpCisgICAgICAg
ICAgICByZXN1bHQgPSBgZXJyb3I6ICR7ZT8ubmFtZX06ICR7ZT8ubWVzc2FnZX1gCiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9ICdlcnJvcjogJyArIChlID8gZS5uYW1lIDogbnVs
bCk7CisgICAgICAgICAgICByZXN1bHQgPSBgZXJyb3I6ICR7ZT8ubmFtZX1gOwogICAgIH0KIAog
ICAgIGlmIChzdWJzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDliZDkxNjIxZmM5ZmRmOThiY2IzYzJhYzU3YmEzMzAzZTZlMGE0ZWQu
LmNiZjNlNWJhMGQ5ZjliNTJiOTZjNmRlYWY0MTZmYmJmMjU4OTg1ODYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlbnktcGVybWlzc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogUEFTUzog
c2VydmljZSB3b3JrZXIgcGVybWlzc2lvblN0YXRlIHdhcyBkZW5pZWQKIFBBU1M6IGRvY3VtZW50
IHBlcm1pc3Npb25TdGF0ZSB3YXMgZGVuaWVkCiBQQVNTOiBzZXJ2aWNlIHdvcmtlciBzdWJzY3Jp
YmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IKLVBBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3
aXRob3V0IHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgorUEFTUzogZG9j
dW1lbnQgc3Vic2NyaWJlIHdpdGhvdXQgdXNlciBnZXN0dXJlIHdhcyBlcnJvcjogTm90QWxsb3dl
ZEVycm9yOiBVc2VyIGRlbmllZCBwdXNoIHBlcm1pc3Npb24KIFBBU1M6IGRvY3VtZW50IHN1YnNj
cmliZSB3aXRoIHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5vdEFsbG93ZWRFcnJvcgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBl
cm1pc3Npb25zLW9uLXByb21wdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWYzYTc3NTc3MjgxNDc3NDdhNGFkOWI0NWMxODQxOGUxZWI0ZDIxZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2Ny
aWJlLWRlbnktcGVybWlzc2lvbnMtb24tcHJvbXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcg
QEAKK1BBU1M6IHNlcnZpY2Ugd29ya2VyIHBlcm1pc3Npb25TdGF0ZSB3YXMgcHJvbXB0CitQQVNT
OiBkb2N1bWVudCBwZXJtaXNzaW9uU3RhdGUgd2FzIHByb21wdAorUEFTUzogc2VydmljZSB3b3Jr
ZXIgc3Vic2NyaWJlIHdhcyBlcnJvcjogTm90QWxsb3dlZEVycm9yCitQQVNTOiBkb2N1bWVudCBz
dWJzY3JpYmUgd2l0aG91dCB1c2VyIGdlc3R1cmUgd2FzIGVycm9yOiBOb3RBbGxvd2VkRXJyb3IK
K1BBU1M6IGRvY3VtZW50IHN1YnNjcmliZSB3aXRoIHVzZXIgZ2VzdHVyZSB3YXMgZXJyb3I6IE5v
dEFsbG93ZWRFcnJvcgorUEFTUzogZG9jdW1lbnQgc3Vic2NyaWJlIHdpdGggY29uc3VtZWQgdXNl
ciBnZXN0dXJlIGZhaWxlZCB3aXRoIHVzZXIgZ2VzdHVyZSBlcnJvcgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25z
LW9uLXByb21wdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3Jp
YmUtZGVueS1wZXJtaXNzaW9ucy1vbi1wcm9tcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOThmMzliZDcy
MmQzMmJmOGYxNTg1MmNmMzkzYzQ1MDQ4ODU1ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVueS1wZXJtaXNzaW9ucy1vbi1w
cm9tcHQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wdXNoLWFwaS10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N1YnNjcmliZS10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kZW55V2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbk9uUHJvbXB0KHdpbmRvdy5vcmlnaW4pOworCituYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMi
LCB7IH0pLnRoZW4oYXN5bmMgKHJlZ2lzdHJhdGlvbikgPT4geworICAgIHRyeSB7CisgICAgICAg
IGF3YWl0IHdhaXRGb3JTdGF0ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgImFjdGl2YXRlZCIp
OworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Npb25TdGF0ZShyZWdpc3Ry
YXRpb24sICdwcm9tcHQnKTsKKyAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50UGVybWlzc2lvblN0
YXRlKHJlZ2lzdHJhdGlvbiwgJ3Byb21wdCcpOworICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdv
cmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJyb3InKTsKKyAgICAgICAg
YXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0dXJlKHJlZ2lzdHJhdGlv
biwgJ05vdEFsbG93ZWRFcnJvcicpOworCisgICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0KCdUZXN0IHJlcXVpcmVzIGludGVybmFscy4n
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgICAgIGxldCBy
ZXF1ZXN0MSA9IHJlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAgICAgICAg
ICAgICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGFw
cGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJRF9TRVJWRVJfS0VZCisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QyID0gcmVnaXN0cmF0aW9uLnB1c2hNYW5hZ2Vy
LnN1YnNjcmliZSh7CisgICAgICAgICAgICAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZFUl9L
RVkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBQcm9taXNlLmFsbFNldHRs
ZWQoW3JlcXVlc3QxLCByZXF1ZXN0Ml0pLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgICAgIGxldCBbcmVzdWx0MSwgcmVzdWx0Ml0gPSBhd2FpdChwcm9t
aXNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQxLnJlYXNvbiAmJiByZXN1bHQxLnJl
YXNvbi5uYW1lID09ICdOb3RBbGxvd2VkRXJyb3InKQorICAgICAgICAgICAgbG9nKCdQQVNTOiBk
b2N1bWVudCBzdWJzY3JpYmUgd2l0aCB1c2VyIGdlc3R1cmUgd2FzIGVycm9yOiBOb3RBbGxvd2Vk
RXJyb3InKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coYEZBSUw6IGZpcnN0IHN1YnNj
cmliZSBmYWlsZWQgd2l0aCB1bmV4cGVjdGVkIHJlc3VsdCAke3Jlc3VsdDEudmFsdWUgfHwgcmVz
dWx0MS5yZWFzb259YCk7CisKKyAgICAgICAgaWYgKHJlc3VsdDIucmVhc29uICYmIHJlc3VsdDIu
cmVhc29uLm5hbWUgPT0gJ05vdEFsbG93ZWRFcnJvcicgJiYgcmVzdWx0Mi5yZWFzb24ubWVzc2Fn
ZS5pbmNsdWRlcygndXNlciBnZXN0dXJlJykpCisgICAgICAgICAgICBsb2coJ1BBU1M6IGRvY3Vt
ZW50IHN1YnNjcmliZSB3aXRoIGNvbnN1bWVkIHVzZXIgZ2VzdHVyZSBmYWlsZWQgd2l0aCB1c2Vy
IGdlc3R1cmUgZXJyb3InKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coYEZBSUw6IHNl
Y29uZCBzdWJzY3JpYmUgZmFpbGVkIHdpdGggdW5leHBlY3RlZCByZXN1bHQgJHtyZXN1bHQyLnZh
bHVlIHx8IHJlc3VsdDIucmVhc29ufWApCisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2co
YEZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKKyAgICB9IGZpbmFsbHkgeworICAg
ICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBmaW5pc2hQdXNo
QVBJVGVzdCgpOworICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBl
cm1pc3Npb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmli
ZS1kZW55LXBlcm1pc3Npb25zLmh0bWwKaW5kZXggYTYxMjZlZWQ5N2ZjNzcxZjQ2YjdmNTlmZDYx
MTdhMzZkZjkyMGRkOS4uNDYyNmUzOWJkOWRiOGEwZWM4NmJlNjU1ZTUzZjc4NGY2MmZiNDY0YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVu
eS1wZXJtaXNzaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHVzaC1hcGkv
c3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3N1YnNjcmliZS13b3JrZXIuanMi
LCB7IH0pLnRoZW4oYXN5bgogICAgICAgICBhd2FpdCB0ZXN0U2VydmljZVdvcmtlclBlcm1pc3Np
b25TdGF0ZShyZWdpc3RyYXRpb24sICdkZW5pZWQnKTsKICAgICAgICAgYXdhaXQgdGVzdERvY3Vt
ZW50UGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbiwgJ2RlbmllZCcpOwogICAgICAgICBhd2Fp
dCB0ZXN0U2VydmljZVdvcmtlclN1YnNjcmliZShyZWdpc3RyYXRpb24sICdOb3RBbGxvd2VkRXJy
b3InKTsKLSAgICAgICAgYXdhaXQgdGVzdERvY3VtZW50U3Vic2NyaWJlV2l0aG91dFVzZXJHZXN0
dXJlKHJlZ2lzdHJhdGlvbiwgJ05vdEFsbG93ZWRFcnJvcicpOworICAgICAgICBhd2FpdCB0ZXN0
RG9jdW1lbnRTdWJzY3JpYmVXaXRob3V0VXNlckdlc3R1cmUocmVnaXN0cmF0aW9uLCAnTm90QWxs
b3dlZEVycm9yJywgJ1VzZXIgZGVuaWVkIHB1c2ggcGVybWlzc2lvbicpOwogICAgICAgICBhd2Fp
dCB0ZXN0RG9jdW1lbnRTdWJzY3JpYmVXaXRoVXNlckdlc3R1cmUocmVnaXN0cmF0aW9uLCAnTm90
QWxsb3dlZEVycm9yJyk7CiAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICBsb2coYEZBSUw6IHVu
ZXhwZWN0ZWQgZXhjZXB0aW9uICR7ZX1gKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggZjkyN2E0ZTkwYzE4YThjMDRlMGVlY2U1NjNhMmI1YjlkZDVlNDY0
ZS4uYWQxODQwZTA5MmM1MmIxMTllZWFjOGI4NmVjMDEwNGZmOTRhNzMxMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NzMsNiArMTg3Myw3IEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3ByZXNlcnZlLXVhLWhlYWRlci1vbi1y
ZWRpcmVjdC5odG0gWyBGYWlsdXJlCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCBbIEZhaWx1cmUgXQogaHR0
cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2Ft
ZS1vcmlnaW4uaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUt
ZGVmYXVsdC1wZXJtaXNzaW9ucy5odG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3B1c2gtYXBp
L3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLW9uLXByb21wdC5odG1sIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgWyBGYWls
dXJlIF0KIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0
bWwgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDg0YjFhZjBlYzdjMzk5ZDAxMzdlZmNlMzBhMzdmMDYwNTEwZWExNmYu
LmVhYjYzOTY5MTcyN2RkNGM3MTVkM2IzMjExNGJjYmZjMzEwZmZmMjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3ODQsNiArMTc4NCw3
IEBAIHdlYmtpdC5vcmcvYi8yMzY1MzAgZmFzdC90ZXh0L290c3ZnLWNhbnZhcy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBl
cm1pc3Npb25zLWlmcmFtZS1jcm9zcy1vcmlnaW4uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9w
dXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJtaXNzaW9ucy1pZnJhbWUtc2FtZS1vcmlnaW4u
aHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJzY3JpYmUtZGVmYXVsdC1wZXJt
aXNzaW9ucy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZW55
LXBlcm1pc3Npb25zLW9uLXByb21wdC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1c2gt
YXBpL3N1YnNjcmliZS1kZW55LXBlcm1pc3Npb25zLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMv
cHVzaC1hcGkvc3Vic2NyaWJlLWdyYW50LXBlcm1pc3Npb25zLmh0bWwgWyBTa2lwIF0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzYmY3NzI0ZjIwMmY5
YTJkNGZlMTdmMDgxZGM2MThmNjc3MjZjZGMxLi4wZWY3YzUxYmU1YTg1ZTYxODJhNjBhZWMyODMx
MWVlZTdjNGFlMTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNTAwOSw2ICs1MDA5LDcgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC0KIGh0dHAvdGVz
dHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlZmF1bHQtcGVybWlzc2lvbnMtaWZyYW1lLWNyb3NzLW9y
aWdpbi5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZh
dWx0LXBlcm1pc3Npb25zLWlmcmFtZS1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCiBodHRw
L3Rlc3RzL3B1c2gtYXBpL3N1YnNjcmliZS1kZWZhdWx0LXBlcm1pc3Npb25zLmh0bWwgWyBGYWls
dXJlIF0KK2h0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRlbnktcGVybWlzc2lvbnMtb24t
cHJvbXB0Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvcHVzaC1hcGkvc3Vic2NyaWJlLWRl
bnktcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy9wdXNoLWFwaS9zdWJz
Y3JpYmUtZ3JhbnQtcGVybWlzc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>