<?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>187710</bug_id>
          
          <creation_ts>2018-07-16 13:09:10 -0700</creation_ts>
          <short_desc>Add completion handlers to TestRunner functions setStatisticsLastSeen(), setStatisticsPrevalentResource(), setStatisticsVeryPrevalentResource(), setStatisticsHasHadUserInteraction(), and setStatisticsHasHadNonRecentUserInteraction()</short_desc>
          <delta_ts>2018-07-17 10:45:50 -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>Tools / Tests</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="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1442492</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-16 13:09:10 -0700</bug_when>
    <thetext>http/tests/resourceLoadStatistics/prune-statistics.html is a flaky failure. Example of a failed run:

/Volumes/Data/slave/highsierra-debug-tests-wk2/build/layout-test-results/http/tests/resourceLoadStatistics/prune-statistics-actual.txt
 1FAIL: Tried to install a second TestRunner callback for the same event (id 13)
 2
13Tests that statistics are pruned in the right order.
24
35On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.

68PASS Test iteration 1 passed.
79PASS Test iteration 2 passed.
810PASS Test iteration 3 passed.
 11FAIL checkIfPrevalent: Test iteration 4 failed. http://127.0.0.3:8000/temp was prevalent
 12FAIL checkIfPrevalent: Test iteration 4 failed. http://127.0.0.4:8000/temp was prevalent
 13FAIL checkIfPrevalentAccordingToInitialExpectation: Test iteration 4 failed. http://127.0.0.7:8000/temp wasn&apos;t prevalent
 14FAIL checkIfPrevalentAccordingToInitialExpectation: Test iteration 4 failed. http://127.0.0.8:8000/temp wasn&apos;t prevalent
915PASS Test iteration 4 passed.
10 PASS Test iteration 5 passed.
11 PASS Test iteration 6 passed.
12 PASS Test iteration 7 passed.
13 PASS Test iteration 8 passed.
1416PASS successfullyParsed is true
 17Some tests failed.
1518
1619TEST COMPLETE
1720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442494</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-16 13:11:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/42252757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442569</commentid>
    <comment_count>2</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-16 17:44:14 -0700</bug_when>
    <thetext>Retitling to reflect the changes I&apos;m making to address the flakiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442575</commentid>
    <comment_count>3</comment_count>
      <attachid>345132</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-16 17:54:07 -0700</bug_when>
    <thetext>Created attachment 345132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442675</commentid>
    <comment_count>4</comment_count>
      <attachid>345132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-17 08:46:12 -0700</bug_when>
    <thetext>Comment on attachment 345132
Patch

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

r=me with nits.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:80
&gt; +    store-&gt;setLastSeen(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), Seconds { seconds }, [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:94
&gt; +        store-&gt;setPrevalentResource(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:112
&gt; +        store-&gt;setVeryPrevalentResource(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:116
&gt; +        store-&gt;clearPrevalentResource(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:182
&gt; +        store-&gt;logUserInteraction(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:186
&gt; +        store-&gt;clearUserInteraction(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:199
&gt; +    store-&gt;logNonRecentUserInteraction(WebCore::URL(WebCore::URL(), WebKit::toImpl(host)-&gt;string()), [context, completionHandler]() {

()  not needed.

&gt; Tools/WebKitTestRunner/TestController.cpp:2720
&gt; +    

Bad extra line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442685</commentid>
    <comment_count>5</comment_count>
      <attachid>345159</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-17 09:39:30 -0700</bug_when>
    <thetext>Created attachment 345159
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442686</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-07-17 09:40:14 -0700</bug_when>
    <thetext>Thanks, Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442714</commentid>
    <comment_count>7</comment_count>
      <attachid>345159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-17 10:45:49 -0700</bug_when>
    <thetext>Comment on attachment 345159
Patch for landing

Clearing flags on attachment: 345159

Committed r233888: &lt;https://trac.webkit.org/changeset/233888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442715</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-17 10:45:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345132</attachid>
            <date>2018-07-16 17:54:07 -0700</date>
            <delta_ts>2018-07-17 09:39:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187710-20180716175406.patch</filename>
            <type>text/plain</type>
            <size>157780</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhiOTIxMzA2MjVmNTJjYTlk
NTA0ZjcwZjMzMDI4NWVlNGY0MDQ4MDguLjdiNjA0MmU3ZjNiZjcwMmFjZDk4YmUzZjEwZGM1NGRk
ZmYzNjUwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTgtMDctMTYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbXBsZXRpb24gaGFu
ZGxlcnMgdG8gVGVzdFJ1bm5lciBmdW5jdGlvbnMgc2V0U3RhdGlzdGljc0xhc3RTZWVuKCksIHNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgpLCBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKCksIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oKSwgYW5kIHNl
dFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NzEwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80MjI1Mjc1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0byBiYWNrIHRoZSBjb21wbGV0aW9uIGhh
bmRsZXIgZnVuY3Rpb25hbGl0eSBvZgorICAgICAgICBUZXN0UnVubmVyIGZ1bmN0aW9uczoKKyAg
ICAgICAgLSBzZXRTdGF0aXN0aWNzTGFzdFNlZW4oKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKCksCisgICAgICAgIC0gc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bigpLCBhbmQKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2Vl
bik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ05vblJlY2VudFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VmVyeVBy
ZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisKIDIwMTgtMDctMTYgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5kZXhlZERCOiBjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMgc2hvdWxkIHJlbW92ZSBhbGwgZGF0YWJhc2VzIGZvciB0
aG9zZSBvcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCA2NmMwMzAzNGRkYjdmZjdjZGEyNzhlOTlj
ZTdhMWI4YzlkMzYzZWY3Li43ZmM1NWFlMjMzNzA2ZTEyNjljMzQwYWIyYmUwNDU4YTk3Y2VmYzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTY5LDM3ICs2OSw1MyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZShlbmFibGUpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcykKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IFdLU3RyaW5nUmVmIGhvc3QsIGRvdWJsZSBzZWNvbmRzLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNlZW5GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvKiBzdG9yZSA9IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNp
dGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Ci0gICAgaWYgKCFzdG9yZSkK
KyAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgc3RvcmUtPnNldExhc3RTZWVuKFdlYkNvcmU6
OlVSTChXZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgU2Vj
b25kcyB7IHNlY29uZHMgfSk7CisgICAgc3RvcmUtPnNldExhc3RTZWVuKFdlYkNvcmU6OlVSTChX
ZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgU2Vjb25kcyB7
IHNlY29uZHMgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSgpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgfSk7CiB9CiAKLXZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCit2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlLCB2b2lk
KiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VG
dW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBzdG9yZSA9IFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCk7Ci0gICAgaWYgKCFzdG9yZSkKKyAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
aWYgKHZhbHVlKQotICAgICAgICBzdG9yZS0+c2V0UHJldmFsZW50UmVzb3VyY2UoV2ViQ29yZTo6
VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpKTsKKyAg
ICAgICAgc3RvcmUtPnNldFByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBsZXRp
b25IYW5kbGVyXSgpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwor
ICAgICAgICB9KTsKICAgICBlbHNlCi0gICAgICAgIHN0b3JlLT5jbGVhclByZXZhbGVudFJlc291
cmNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0
cmluZygpKSk7CisgICAgICAgIHN0b3JlLT5jbGVhclByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6
OlVSTChXZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2Nv
bnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSgpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHQpOworICAgICAgICB9KTsKIH0KIAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCit2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9p
ZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHN0b3JlID0gV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKTsKLSAgICBpZiAoIXN0b3JlKQorICAgIGlmICghc3RvcmUpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKLSAgICAKKyAg
ICB9CisKICAgICBpZiAodmFsdWUpCi0gICAgICAgIHN0b3JlLT5zZXRWZXJ5UHJldmFsZW50UmVz
b3VyY2UoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+
c3RyaW5nKCkpKTsKKyAgICAgICAgc3RvcmUtPnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShXZWJD
b3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSks
IFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oKSB7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihjb250ZXh0KTsKKyAgICAgICAgfSk7CiAgICAgZWxzZQotICAgICAgICBzdG9yZS0+
Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSkpOworICAgICAgICBzdG9yZS0+Y2xlYXJQcmV2YWxl
bnRSZXNvdXJjZShXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktpdDo6dG9JbXBsKGhv
c3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKKyAgICAgICAgfSk7CiB9CiAKIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGdW5jdGlv
biBjYWxsYmFjaykKQEAgLTE1NCwyNSArMTcwLDM1IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
SXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1dlYnNpdGVEYXRhU3RvcmVS
CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBzdG9yZSA9IFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Ci0g
ICAgaWYgKCFzdG9yZSkKKyAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHQpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKHZhbHVlKQot
ICAgICAgICBzdG9yZS0+bG9nVXNlckludGVyYWN0aW9uKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSk7CisgICAgICAgIHN0b3JlLT5s
b2dVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdKCkgewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgICAgIH0pOwogICAg
IGVsc2UKLSAgICAgICAgc3RvcmUtPmNsZWFyVXNlckludGVyYWN0aW9uKFdlYkNvcmU6OlVSTChX
ZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSk7CisgICAgICAg
IHN0b3JlLT5jbGVhclVzZXJJbnRlcmFjdGlvbihXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCks
IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFu
ZGxlcl0oKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKKyAgICAg
ICAgfSk7CiB9CiAKLXZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZE5v
blJlY2VudFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0KQordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
SGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBzdG9yZSA9IFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Ci0g
ICAgaWYgKCFzdG9yZSkKKyAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHQpOwogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgc3RvcmUtPmxvZ05vblJl
Y2VudFVzZXJJbnRlcmFjdGlvbihXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktpdDo6
dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSkpOworICAgIH0KKworICAgIHN0b3JlLT5sb2dOb25SZWNl
bnRVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdKCkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKKyAgICB9KTsKIH0KIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
RnVuY3Rpb24gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IGU2Yjg4YjM4Y2JjM2U1MWFjZDIyYjJl
MGUwNjJiNWI1Mzk1ZWQyMjQuLjViNzQ2MjBiZGJjOTIwZmJlZjgyYThlZTJiZmZhMDMzYWEwOGM1
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oCkBAIC00MCw5ICs0MCwxMiBAQCBXS19FWFBPUlQgV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUo
KQogV0tfRVhQT1JUIGJvb2wgV0tXZWJzaXRlRGF0YVN0b3JlR2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiBXS19FWFBP
UlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWdNb2RlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlKTsK
LVdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBkb3Vi
bGUgc2Vjb25kcyk7Ci1XS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7Ci1XS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwordHlw
ZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24p
KHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzTGFzdFNlZW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NMYXN0U2VlbkZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVy
KTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2VGdW5jdGlvbikodm9pZCog
ZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNv
bXBsZXRpb25IYW5kbGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24pKGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJj
ZSwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24gY2FsbGJhY2spOwog
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVm
IGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlRnVuY3Rpb24gY2FsbGJhY2spOwpAQCAtNTAsOCArNTMsMTAgQEAgdHlwZWRl
ZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlckZ1bmN0aW9uKSgKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgc3ViRnJhbWVIb3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFt
ZUhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXJGdW5jdGlvbiBjYWxsYmFjayk7CiB0eXBlZGVmIHZvaWQgKCpX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvRnVu
Y3Rpb24pKGJvb2wgaXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvLCB2b2lkKiBmdW5jdGlvbkNv
bnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZyb20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVj
dGVkVG8sIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG9GdW5jdGlvbiBjYWxsYmFjayk7Ci1XS19FWFBPUlQgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFs
dWUpOwotV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hh
ZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBXS1N0cmluZ1JlZiBob3N0KTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKTsKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNI
YWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0
KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWRO
b25SZWNlbnRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uKShib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbiwg
dm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjYWxsYmFj
ayk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRm
YXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBo
b3N0LCBib29sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDBjYmE3YzMzYjk4MWRk
N2U5MzgzMTcwYzlmNTRiOWIzNGYzYzkwZjIuLmIwOWFlNGEyNmM5MmM5Y2FlN2I3OThlMTY0Y2E3
ZjczNTJhM2Q1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNDAzLDQyICs0MDMsNTcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBXZWJGcmFtZVByb3h5JiBmcmEKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCkKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24oY29u
c3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgaWYgKHVybC5pc0Js
YW5rVVJMKCkgfHwgdXJsLmlzRW1wdHkoKSkKKyAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1
cmwuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKLSAgICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xh
dGVkUHJpbWFyeURvbWFpbih1cmwpXSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21h
aW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odXJsKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5
U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5sb2dVc2VySW50ZXJhY3Rpb24ocHJp
bWFyeURvbWFpbik7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6bG9nTm9uUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYgdXJs
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ05vblJlY2VudFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKQorICAgIGlmICh1cmwuaXNC
bGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9t
YWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCldIHsKKyAgICB9CisKKyAgICBwb3N0VGFz
ayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxv
Z05vblJlY2VudFVzZXJJbnRlcmFjdGlvbihwcmltYXJ5RG9tYWluKTsKKyAgICAgICAgcG9zdFRh
c2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclVzZXJJbnRl
cmFjdGlvbihjb25zdCBVUkwmIHVybCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKQor
ICAgIGlmICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHBvc3RUYXNr
KFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCldIHsKKyAg
ICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1
cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5
U3RvcmUtPmNsZWFyVXNlckludGVyYWN0aW9uKHByaW1hcnlEb21haW4pOworICAgICAgICBwb3N0
VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKICAgICB9
KTsKIH0KIApAQCAtNDU5LDQyICs0NzQsNTcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29tcGwKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RT
ZWVuKGNvbnN0IFVSTCYgdXJsLCBTZWNvbmRzIHNlY29uZHMpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1cmwsIFNlY29uZHMgc2Vj
b25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAodXJsLmlzQmxhbmtVUkwo
KSB8fCB1cmwuaXNFbXB0eSgpKQorICAgIGlmICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5
RG9tYWluKHVybCksIHNlY29uZHNdIHsKKyAgICB9CisKKyAgICBwb3N0VGFzayhbdGhpcywgcHJp
bWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBzZWNvbmRzLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPnNldExh
c3RTZWVuKHByaW1hcnlEb21haW4sIHNlY29uZHMpOworICAgICAgICBwb3N0VGFza1JlcGx5KFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KICAgICAK
LXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJj
ZShjb25zdCBVUkwmIHVybCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpz
ZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKQorICAgIGlm
ICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHBvc3RUYXNrKFt0aGlz
LCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCldIHsKKyAgICBwb3N0
VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUt
PnNldFByZXZhbGVudFJlc291cmNlKHByaW1hcnlEb21haW4pOworICAgICAgICBwb3N0VGFza1Jl
cGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKICAgICB9KTsKIH0K
IAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBVUkwmIHVybCkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCi0gICAgaWYgKHVybC5pc0JsYW5rVVJMKCkgfHwgdXJsLmlzRW1wdHko
KSkKKyAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBwb3N0VGFz
ayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpXSB7Cisg
ICAgfQorCisgICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1h
cnlEb21haW4odXJsKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAg
ICBtX21lbW9yeVN0b3JlLT5zZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UocHJpbWFyeURvbWFpbik7
CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
ICAgIH0pOwogICAgIH0pOwogfQogCkBAIC01NTYsMTYgKzU4NiwyMSBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0
IFVSTCYgaG9zdAogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmIHVybCkKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFVS
TCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmICh1cmwuaXNCbGFua1VS
TCgpIHx8IHVybC5pc0VtcHR5KCkpCisgICAgaWYgKHVybC5pc0JsYW5rVVJMKCkgfHwgdXJsLmlz
RW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFBy
aW1hcnlEb21haW4odXJsKV0geworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0g
aXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9yeVN0b3Jl
KQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShwcmlt
YXJ5RG9tYWluKTsKKyAgICAgICAgcG9zdFRhc2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggYjUx
ODc0NjBmYmY2MGExYzBhYjU3ODVmZDNmNTc2ZjAzZWNiZTMxMy4uNWRjOGQ5ZDJmNjcxNDlmZmU5
NWI3MTYzMzMzNmQ4NzU4ZWM1M2UwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTg3LDE4ICs4Nywx
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIAogICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJD
b3JlOjpVUkwmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpOwotICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZvaWQgbG9nTm9uUmVjZW50VXNlckludGVyYWN0
aW9uKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24o
Y29uc3QgV2ViQ29yZTo6VVJMJik7CisgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3Qg
V2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGxv
Z05vblJlY2VudFVzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3Qg
V2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhh
c0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFNlY29uZHMpOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgV2ViQ29y
ZTo6VVJMJik7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgV2ViQ29y
ZTo6VVJMJik7CisgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBXZWJDb3JlOjpVUkwmLCBTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJldmFsZW50
UmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpVUkwm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaXNQcmV2YWxlbnRSZXNv
dXJjZShjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlVSTCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKGNvbnN0IFdlYkNvcmU6OlVSTCYgc3ViRnJhbWUsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgdG9wRnJhbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgaXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0IFdlYkNvcmU6OlVSTCYgaG9z
dFJlZGlyZWN0ZWRGcm9tLCBjb25zdCBXZWJDb3JlOjpVUkwmIGhvc3RSZWRpcmVjdGVkVG8sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBXZWJDb3JlOjpVUkwmKTsKKyAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVz
b3VyY2UoY29uc3QgV2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCk7CiAg
ICAgdm9pZCBpc0dyYW5kZmF0aGVyZWQoY29uc3QgV2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oY29uc3QgV2ViQ29yZTo6VVJMJiBzdWJmcmFtZSwgY29uc3QgV2ViQ29yZTo6VVJMJiB0
b3BGcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMDUwZTI1MWM5MjhmNTIwODk2Yzg0ZTQ3NTc4MGU1YmExNzRhOTgzZS4uZGE4MmY0Y2Y2
ZDRlOWNjNWQxYjdiM2FjYjJiNTU2Y2YwZGRmNmFkYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE4LTA3LTE2ICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBjb21wbGV0
aW9uIGhhbmRsZXJzIHRvIFRlc3RSdW5uZXIgZnVuY3Rpb25zIHNldFN0YXRpc3RpY3NMYXN0U2Vl
bigpLCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoKSwgc2V0U3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSgpLCBzZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKCks
IGFuZCBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzcxMAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDIyNTI3NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
OnNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRp
c3RpY3NDYWxsRGlkU2V0TGFzdFNlZW5DYWxsYmFjayk6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFZlcnlQ
cmV2YWxlbnRSZXNvdXJjZUNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldEhhc0hhZFVzZXJJbnRlcmFj
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0U2Vl
bik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RS
OjpUZXN0SW52b2NhdGlvbjo6ZGlkU2V0TGFzdFNlZW4pOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkU2V0UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkU2V0VmVyeVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdUUjo6VGVz
dEludm9jYXRpb246OmRpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRTZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKwogMjAxOC0wNy0x
NiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQg
LS10YXJnZXQtcGF0aCBvcHRpb24gdG8gZHVtcC1jbGFzcy1sYXlvdXQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IDZjNGI5ODkwYzVhN2I2YmFmM2Q3OTEzMmQ4YmU1ZWE4MzY5YWQ3YzQu
LmMwOWNiYWUwY2UzMDY0YjhmZDY4OTA2ZTQ2OWQ1MWMyMjJmMWUxNjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbApAQCAtMjcyLDE1ICsyNzIsMTUgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIg
ewogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNr
KG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlz
dGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKG9iamVjdCBjYWxsYmFjayk7Ci0gICAgdm9pZCBz
ZXRTdGF0aXN0aWNzTGFzdFNlZW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBkb3VibGUgc2Vjb25kcyk7
Ci0gICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3RO
YW1lLCBib29sZWFuIHZhbHVlKTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2UoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlKTsKKyAgICB2b2lkIHNl
dFN0YXRpc3RpY3NMYXN0U2VlbihET01TdHJpbmcgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzLCBv
YmplY3QgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSwgb2JqZWN0IGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhh
bmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoRE9NU3Ry
aW5nIGhvc3ROYW1lKTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShET01TdHJpbmcgaG9zdE5hbWUpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzU3ViRnJhbWVVbmRlcihET01TdHJpbmcgc3ViRnJhbWVIb3N0LCBET01TdHJpbmcgdG9w
RnJhbWVIb3N0KTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oRE9NU3RyaW5nIGhvc3RSZWRpcmVjdGVkRnJvbSwgRE9NU3RyaW5nIGhvc3RSZWRpcmVj
dGVkVG8pOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihET01T
dHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc0hh
c0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUpOworICAgIHZv
aWQgc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUs
IGJvb2xlYW4gdmFsdWUsIG9iamVjdCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBzZXRT
dGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFt
ZSwgb2JqZWN0IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlKTsK
ICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1l
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggODRmNDQwOWFhNzhmM2Q3NzRjMGYzMDE0MTQ0OTkwMThj
YjIxM2Y5NS4uNTlmMWE2YjRmOGFjOGNjNjk0YWY3NDE2YzAwYTkyZGNkM2I3Y2Y2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKQEAgLTMxNSw2ICszMTUsMzEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlk
UmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2FsbERpZFNldExhc3RTZWVuIikpIHsKKyAgICAgICAgbV90
ZXN0UnVubmVyLT5zdGF0aXN0aWNzQ2FsbERpZFNldExhc3RTZWVuQ2FsbGJhY2soKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlIikpIHsKKyAgICAgICAg
bV90ZXN0UnVubmVyLT5zdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlQ2FsbGJh
Y2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2FsbERpZFNldFZlcnlQcmV2YWxlbnRSZXNvdXJj
ZSIpKSB7CisgICAgICAgIG1fdGVzdFJ1bm5lci0+c3RhdGlzdGljc0NhbGxEaWRTZXRWZXJ5UHJl
dmFsZW50UmVzb3VyY2VDYWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsRGlkU2V0
SGFzSGFkVXNlckludGVyYWN0aW9uIikpIHsKKyAgICAgICAgbV90ZXN0UnVubmVyLT5zdGF0aXN0
aWNzQ2FsbERpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbkNhbGxiYWNrKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJDYWxsRGlkU2V0SGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uIikp
IHsKKyAgICAgICAgbV90ZXN0UnVubmVyLT5zdGF0aXN0aWNzQ2FsbERpZFNldEhhc0hhZFVzZXJJ
bnRlcmFjdGlvbkNhbGxiYWNrKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsRGlkUmVj
ZWl2ZUFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzIikpIHsKICAgICAgICAgQVNTRVJUKG1lc3NhZ2VC
b2R5KTsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0FycmF5
R2V0VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYjNhZjcyYTQ5YjliNDhlNmZjMDlmYzRjMDE2YjQ3
ZGQ0NTliMDQxMy4uMzc0ZWM3OWY0ZjM2NzEyMzc2ZjM4ZTlhMmY0ZDY3YWExMWJiYjBkYSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC03MzYsNiArNzM2LDEwIEBAIGVudW0gewogICAgIFdpbGxFbmRTd2lwZUNhbGxi
YWNrSUQsCiAgICAgRGlkRW5kU3dpcGVDYWxsYmFja0lELAogICAgIERpZFJlbW92ZVN3aXBlU25h
cHNob3RDYWxsYmFja0lELAorICAgIFNldFN0YXRpc3RpY3NMYXN0U2VlbkNhbGxiYWNrSUQsCisg
ICAgU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlQ2FsbGJhY2tJRCwKKyAgICBTZXRTdGF0
aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2tJRCwKKyAgICBTZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2tJRCwKICAgICBTdGF0aXN0aWNzRGlkTW9kaWZ5
RGF0YVJlY29yZHNDYWxsYmFja0lELAogICAgIFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFja0lELAogICAgIFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFja0lELApAQCAt
MTMyNyw4ICsxMzMxLDEwIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlbW92ZVN3aXBlU25h
cHNob3RDYWxsYmFjaygpCiAgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhEaWRSZW1vdmVTd2lw
ZVNuYXBzaG90Q2FsbGJhY2tJRCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGlj
c0xhc3RTZWVuKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBkb3VibGUgc2Vjb25kcykKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0U3RhdGlzdGljc0xhc3RTZWVuKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBkb3Vi
bGUgc2Vjb25kcywgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBjYWNoZVRl
c3RSdW5uZXJDYWxsYmFjayhTZXRTdGF0aXN0aWNzTGFzdFNlZW5DYWxsYmFja0lELCBjb21wbGV0
aW9uSGFuZGxlcik7CisKICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlz
OwogICAgIFZlY3RvcjxXS1JldGFpblB0cjxXS1R5cGVSZWY+PiB2YWx1ZXM7CiAgICAgCkBAIC0x
MzUxLDkgKzEzNTcsMTcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4o
SlNTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKQogICAgIAogICAgIFdLQnVuZGxl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxl
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CiB9Ci0g
ICAgCi12b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0
cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKKwordm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0
aWNzQ2FsbERpZFNldExhc3RTZWVuQ2FsbGJhY2soKQoreworICAgIGNhbGxUZXN0UnVubmVyQ2Fs
bGJhY2soU2V0U3RhdGlzdGljc0xhc3RTZWVuQ2FsbGJhY2tJRCk7Cit9CisKKwordm9pZCBUZXN0
UnVubmVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9zdE5h
bWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgY2Fj
aGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlQ2FsbGJh
Y2tJRCwgY29tcGxldGlvbkhhbmRsZXIpOworCiAgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPj4ga2V5czsKICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tUeXBlUmVmPj4gdmFsdWVz
OwogCkBAIC0xMzc5LDggKzEzOTMsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUKICAgICBX
S0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIp
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCit2b2lkIFRlc3RSdW5uZXI6OnN0
YXRpc3RpY3NDYWxsRGlkU2V0UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygpCit7CisgICAgY2Fs
bFRlc3RSdW5uZXJDYWxsYmFjayhTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VDYWxsYmFj
a0lEKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBs
ZXRpb25IYW5kbGVyKQogeworICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKFNldFN0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2VDYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxlcik7CisK
ICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOwogICAgIFZlY3RvcjxX
S1JldGFpblB0cjxXS1R5cGVSZWY+PiB2YWx1ZXM7CiAgICAgCkBAIC0xNDA2LDYgKzE0MjcsMTEg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKEpT
U3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHYKICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6
OnN0YXRpc3RpY3NDYWxsRGlkU2V0VmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2soKQorewor
ICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZUNhbGxiYWNrSUQpOworfQorCiBib29sIFRlc3RSdW5uZXI6OmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQogewogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UiKSk7CkBAIC0xNDc2LDggKzE1MDIs
MTAgQEAgYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKEpTU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGUKICAgICByZXR1cm4gV0tCb29sZWFuR2V0VmFs
dWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihyZXR1cm5EYXRhKSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBo
b3N0TmFtZSwgYm9vbCB2YWx1ZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwgSlNWYWx1
ZVJlZiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhT
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2tJRCwgY29tcGxldGlvbkhh
bmRsZXIpOworCiAgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPj4ga2V5czsKICAg
ICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tUeXBlUmVmPj4gdmFsdWVzOwogICAgIApAQCAtMTUwMywx
MyArMTUzMSwyMCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdgogICAgIFdLQnVuZGxlUG9zdFN5
bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1l
c3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihK
U1N0cmluZ1JlZiBob3N0TmFtZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hh
ZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNWYWx1ZVJl
ZiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhTZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2tJRCwgY29tcGxldGlvbkhhbmRs
ZXIpOworCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVj
ZW50VXNlckludGVyYWN0aW9uIikpOwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNz
YWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhob3N0TmFtZSkpOwog
ICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVs
bHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRIYXNIYWRV
c2VySW50ZXJhY3Rpb25DYWxsYmFjaygpCit7CisgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhT
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2tJRCk7Cit9CisKIGJvb2wg
VGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVm
IGhvc3ROYW1lKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAyNjM5YjRlZWQ0N2M5N2VmOGQ4NDc5YWY1OTQw
YTQzNjAyZGE2MzlkLi40ZGFkMGYwZGYwNjg4NWQyZGY2OGM4ZGQ4ODQyM2FlZmE1OTNjNGJiIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaApAQCAtMzgyLDE1ICszODIsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc3RhdGlzdGljc1Nl
dFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIHN0YXRpc3RpY3NDYWxsRGlk
U2V0UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNGb3JIb3N0Q2FsbGJhY2soKTsKICAgICB2b2lkIHN0
YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkoKTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2Vl
bihKU1N0cmluZ1JlZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMpOwotICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVl
KTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdS
ZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc0xhc3RTZWVu
KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBkb3VibGUgc2Vjb25kcywgSlNWYWx1ZVJlZiBjb21wbGV0
aW9uSGFuZGxlcik7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERpZFNldExhc3RTZWVuQ2FsbGJh
Y2soKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1Jl
ZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlQ2FsbGJhY2soKTsK
KyAgICB2b2lkIHNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYg
aG9zdE5hbWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpOworICAg
IHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygp
OwogICAgIGJvb2wgaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9z
dE5hbWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKEpTU3Ry
aW5nUmVmIGhvc3ROYW1lKTsKICAgICBib29sIGlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoSlNTdHJpbmdSZWYgc3ViRnJhbWVIb3N0LCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhv
c3QpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhKU1N0
cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZyb20sIEpTU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8p
OwotICAgIHZvaWQgc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1Jl
ZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRTdGF0aXN0aWNzSGFzSGFkTm9u
UmVjZW50VXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJv
b2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgc2V0U3Rh
dGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFt
ZSwgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2Fs
bERpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbkNhbGxiYWNrKCk7CiAgICAgYm9vbCBpc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZv
aWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wg
dmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBo
b3N0TmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDIyMWI2YWY4ZjBmYzFkMjhlZGJhYzlhNWIyYWE1MGUzZDAzOGEwMjguLjhlNmJmZmI2NTgwZTJj
NDkzNDc1ZTQyMGE0ZGY0YzYyNzMwZTE1YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0yNjE3LDI0ICsyNjE3LDYgQEAgdWludDY0X3QgVGVzdENvbnRy
b2xsZXI6OmRvbUNhY2hlU2l6ZShXS1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0dXJuIGNvbnRl
eHQucmVzdWx0OwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTGFzdFNl
ZW4oV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMpCi17Ci0gICAgYXV0byogZGF0YVN0
b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7Ci0g
ICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKGRhdGFTdG9yZSwgaG9z
dCwgc2Vjb25kcyk7Ci19Ci0KLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQotewotICAgIGF1dG8q
IGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUocGxhdGZvcm1Db250ZXh0
KCkpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShkYXRhU3RvcmUsIGhvc3QsIHZhbHVlKTsKLX0KLQotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1N0cmluZ1JlZiBob3N0LCBib29sIHZh
bHVlKQotewotICAgIGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3Rv
cmUocGxhdGZvcm1Db250ZXh0KCkpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoZGF0YVN0b3JlLCBob3N0LCB2YWx1ZSk7Ci19Ci0KIHN0
cnVjdCBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgewogICAgIGV4cGxpY2l0IFJl
c291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxl
cikKICAgICAgICAgOiB0ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQpAQCAtMjY2MCw2ICsyNjQy
LDMzIEBAIHN0YXRpYyB2b2lkIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFj
ayhib29sIHJlc3VsdCwgdm9pZCogdXNlckRhdGEpCiAgICAgY29udGV4dC0+ZG9uZSA9IHRydWU7
CiAgICAgY29udGV4dC0+dGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQorICAgIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLU3RyaW5nUmVmIGhvc3Qs
IGRvdWJsZSBzZWNvbmRzKQoreworICAgIGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdl
YnNpdGVEYXRhU3RvcmUocGxhdGZvcm1Db250ZXh0KCkpOworICAgIFJlc291cmNlU3RhdGlzdGlj
c0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzTGFzdFNlZW4oZGF0YVN0b3JlLCBob3N0LCBzZWNvbmRzLCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0TGFz
dFNlZW4oKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCit7CisgICAgYXV0byogZGF0
YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7
CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwor
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShkYXRh
U3RvcmUsIGhvc3QsIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3Vs
dENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CisgICAg
bV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0UHJldmFsZW50UmVzb3VyY2UoKTsKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1N0
cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQoreworICAgIGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29u
dGV4dEdldFdlYnNpdGVEYXRhU3RvcmUocGxhdGZvcm1Db250ZXh0KCkpOworICAgIFJlc291cmNl
U3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKGRhdGFTdG9yZSwgaG9z
dCwgdmFsdWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2sp
OworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKKyAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5kaWRTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoKTsKK30KIAogYm9vbCBUZXN0
Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9z
dCkKIHsKQEAgLTI3MDAsMTMgKzI3MDksMjAgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXIKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tT
dHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSkKIHsKICAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0Nv
bnRleHRHZXRXZWJzaXRlRGF0YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGRhdGFTdG9yZSwg
aG9zdCwgdmFsdWUpOworICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250
ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKGRhdGFTdG9yZSwgaG9zdCwgdmFsdWUsICZjb250ZXh0LCByZXNvdXJjZVN0
YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwg
bm9UaW1lb3V0KTsKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRIYXNIYWRVc2VySW50
ZXJhY3Rpb24oKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0hhc0hh
ZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0KQogeworICAgIAogICAg
IGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUocGxhdGZvcm1D
b250ZXh0KCkpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWROb25S
ZWNlbnRVc2VySW50ZXJhY3Rpb24oZGF0YVN0b3JlLCBob3N0KTsKKyAgICBSZXNvdXJjZVN0YXRp
c3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihkYXRhU3RvcmUs
IGhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwor
ICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKKyAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uLT5kaWRTZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKTsKIH0KIAogYm9v
bCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3Ry
aW5nUmVmIGhvc3QpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IGEyN2I2N2ViNzcwOWM1ZGJhNmJmNTM0NWJiZGQxNWQ1MDk2NDRmMTguLjY4YmIwN2U0MTQ5
NjdiMzc3ZGQ3MGY3YzY2MzczZGE5NDM5ZGM2NTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xNTI3LDYgKzE1MjcsMzYgQEAgdm9pZCBUZXN0SW52b2Nh
dGlvbjo6ZGlkU2V0UGFydGl0aW9uT3JCbG9ja0Nvb2tpZXNGb3JIb3N0KCkKICAgICBXS1BhZ2VQ
b3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1h
aW5XZWJWaWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2b2lkIFRl
c3RJbnZvY2F0aW9uOjpkaWRTZXRMYXN0U2VlbigpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiQ2FsbERpZFNldExhc3RTZWVuIikpOworICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3Rl
ZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgp
LCBtZXNzYWdlTmFtZS5nZXQoKSwgMCk7Cit9CisKK3ZvaWQgVGVzdEludm9jYXRpb246OmRpZFNl
dFByZXZhbGVudFJlc291cmNlKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVz
c2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlk
U2V0UHJldmFsZW50UmVzb3VyY2UiKSk7CisgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVk
QnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCks
IG1lc3NhZ2VOYW1lLmdldCgpLCAwKTsKK30KKwordm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0
VmVyeVByZXZhbGVudFJlc291cmNlKCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxs
RGlkU2V0VmVyeVByZXZhbGVudFJlc291cmNlIikpOworICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9J
bmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+
cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgMCk7Cit9CisKK3ZvaWQgVGVzdEludm9jYXRpb246
OmRpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbigpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiQ2FsbERpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbiIpKTsKKyAgICBXS1BhZ2VQb3N0TWVz
c2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJW
aWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOworfQorCit2b2lkIFRlc3RJbnZv
Y2F0aW9uOjpkaWRTZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKQoreworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkNhbGxEaWRTZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rp
b24iKSk7CisgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCAwKTsKK30KKwogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZUFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzKFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKQogewogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIkNhbGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggMzU2YmFjNTYwNDQ2YWIzM2RjNzYx
MWVjODJlZDQ2NTVjNGU4YWEzNS4uMDA1ZjM3ZDU5OTllNDQ3NTk3OTYxZjU4ZGY3YWM4M2JlMzFl
ZDEwZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApAQCAtNzQsNiAr
NzQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2xlYXJTdGF0aXN0aWNzVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbCgpOwogICAgIHZvaWQgZGlkUmVzZXRTdGF0aXN0aWNzVG9Db25zaXN0ZW50
U3RhdGUoKTsKICAgICB2b2lkIGRpZFNldFBhcnRpdGlvbk9yQmxvY2tDb29raWVzRm9ySG9zdCgp
OworICAgIHZvaWQgZGlkU2V0TGFzdFNlZW4oKTsKKyAgICB2b2lkIGRpZFNldFByZXZhbGVudFJl
c291cmNlKCk7CisgICAgdm9pZCBkaWRTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoKTsKKyAgICB2
b2lkIGRpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbigpOworICAgIHZvaWQgZGlkU2V0SGFzSGFk
Tm9uUmVjZW50VXNlckludGVyYWN0aW9uKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXMoVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpOwogCiAgICAgdm9pZCBkaWRS
ZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OGE1YmI0ZDA3ZGY1Mzk1NTc3
YjBlNjllZWE3NjA1YjRlM2NlNjFkLi44YmRmYzQ0YzQyZjVjYjI4MjQ5YzZkMjJlYmFmYzY2YmQ5
ZDQ1N2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTgtMDctMTYgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbXBsZXRpb24gaGFuZGxlcnMg
dG8gVGVzdFJ1bm5lciBmdW5jdGlvbnMgc2V0U3RhdGlzdGljc0xhc3RTZWVuKCksIHNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgpLCBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKCksIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oKSwgYW5kIHNldFN0YXRp
c3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NzEwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80MjI1Mjc1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0byB1cGRhdGUgYWxsIHRlc3QgY2FzZXMgdGhhdCBt
YWtlIHVzZSBvZgorICAgICAgICBUZXN0UnVubmVyIGZ1bmN0aW9uczoKKyAgICAgICAgLSBzZXRT
dGF0aXN0aWNzTGFzdFNlZW4oKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCks
CisgICAgICAgIC0gc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbigpLCBhbmQKKyAg
ICAgICAgLSBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKCkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5n
LXRvLXJlZGlyZWN0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FkZC1wYXJ0aXRpb25pbmctdG8tcmVkaXJlY3QuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
LWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWIt
ZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhv
dXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xl
YXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVk
LWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25l
ZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBh
cnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0Lmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMt
d2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtl
eWRvd24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tdGltZW91dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZW1vdmUtYmxvY2tp
bmctaW4tcmVkaXJlY3QuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVtb3ZlLXBhcnRpdGlvbmluZy1pbi1yZWRpcmVjdC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2lu
LWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHkt
Y29va2llLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHkt
cmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUuaHRtbDoKKwogMjAxOC0w
Ny0xNiAgQWFyb24gQ2h1ICA8YWFyb25fY2h1QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQXVk
aXQgVGFiIHNob3VsZCBoYXZlIGFuIEF1ZGl0IE1hbmFnZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVk
aXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QuaHRtbAppbmRleCAxZjY4OWVlZDA0NDQ1ZmQ2NTVl
ZGNlMWE2NjQ1N2U3ZDk1YWEzYjZhLi5iYmIzMTQ1ZmJiMWEwOTA5OGFkNTA0OTc3NTA5NjA1NzJk
MGQzNjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVj
dC5odG1sCkBAIC01OCwxMSArNTgsMTIgQEAKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CiAg
ICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgYW5kIHdpdGggbm8g
dXNlciBpbnRlcmFjdGlvbiB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5LgogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8v
bG9jYWxob3N0IiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVD
b29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5n
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLXBhcnRpdGlvbmluZy10by1y
ZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2FkZC1wYXJ0aXRpb25pbmctdG8tcmVkaXJlY3QuaHRtbAppbmRleCBlNmY0OGRmZGJiNWIx
MGQzYTE5ZDRjYmE3ZWJkYjUzOGIzYTVlNmViLi4wMWYwMjBiNGI5M2FlZTA1MGFiNTE5NDk4NTYz
MThkN2E1ZjZkNTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLXBhcnRpdGlvbmluZy10by1yZWRpcmVjdC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtcGFydGl0aW9u
aW5nLXRvLXJlZGlyZWN0Lmh0bWwKQEAgLTU4LDEyICs1OCwxNCBAQAogICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA0IjoKICAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVu
dCBhbmQgd2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gdG8gcHV0IGl0IGluIHRoZSBw
YXJ0aXRpb25pbmcgY2F0ZWdvcnkuCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNSI7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbigiaHR0
cDovL2xvY2FsaG9zdCIpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Vw
ZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAg
cnVuVGVzdCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRV
c2VySW50ZXJhY3Rpb24oImh0dHA6Ly9sb2NhbGhvc3QiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlv
bmluZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlICIjc3RlcDUiOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQt
c3RhdGlzdGljcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy5odG1sCmluZGV4IDlhNWQyNzU3ZWNjYjQ3NjVlZTAwMjg5ZjlhM2U1OTE3YWI1YmRhYjcuLjk0
NjA3ZWYwM2E3ZTA0N2UyZDIzOWQzMjU1ZWUyNzNjNjlmNjBlODkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKQEAgLTI3LDE3ICsyNywxOCBAQAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwog
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNl
LiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMyk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29t
cGxldGVUZXN0KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAog
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
Lmh0bWwKaW5kZXggMDJkNmRhZDg4NzQ5NjBkMzI1YWRiNmIyMTM5NjMxODY5NGViMWZiYy4uOWNl
MTNkZjY3ODJiMjc4NDZlYThlMTdkZTk3ODc1ZTNlNjMxYTNjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLmh0bWwKQEAgLTI3LDE4ICsyNywxOSBAQAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5u
ZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CiAKLSAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNv
bXBsZXRlVGVzdCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2Rp
ZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlE
YXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbAppbmRleCA0YmYzMGE4NGVmMjMyZGU4YjU2
NGM1MDNmZDAyMTBlZGFmNTM0M2Q3Li4yMzdjYWYxZDViNDNkOWExZDNkNTVkOThlYmExYzA0MzBk
ZGE5YWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwKQEAgLTI2LDE2ICsyNiwx
NyBAQAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOwogIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVz
dCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKaW5kZXgg
NjUyM2UyN2FmN2NjMjAyZWQ1MDIzMTk2MWYyYjA2YWUwMjA5MmQ1Ni4uODVkZGFlN2RhOTk0NDk0
ZGFkYWVlOWM3MjdlNWE0NmU5NTdiZWY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbApAQCAt
MjcsMTYgKzI3LDE3IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0
aXN0aWNzLmh0bWwKaW5kZXggOGNlNTQ2MWI1YzY1ODVhZjNhYzQ3YWMxMGY4YjgwMmZhMWY3NWRm
ZC4uOWQ2MzZkN2VkNWVmMmNlZTkxMTk5NjczNzkzZDA5MDliYzFmNjcwYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKQEAgLTMxLDIzICszMSwyNCBAQAogICAg
IGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogIAot
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4i
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luNCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOwogCi0gICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4zKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luNCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0g
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWIt
ZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwKaW5kZXggZDMwN2ZmNGQyZWMw
OWM4ZmIzNzhhNzA1MWVhNzhhM2JlZTgwYWIyMC4uY2Y5YzBlN2MyMDc1YWZkNzc4N2IwNWE5NTQw
YTk1ZGE0NmRkZGIwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUt
dW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sCkBAIC0zMSwxOCArMzEsMTkgQEAK
ICAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
IAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjMpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOwogCi0gICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNp
b24uaHRtbAppbmRleCBiY2FjZTg4ZDViOWZjMzBiNzYyZGU5NjFiMDY3MzY5MzY1MTBmODU4Li5j
M2JjZDZkMzNkZjY1MGQ2NTg4OThmYzY2YWQ4YTQzYWZjMmIxZTk1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwK
QEAgLTMzLDQyICszMyw0NiBAQAogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJlc291cmNl
T3JpZ2luMyk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmlnaW40KTsK
IAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN1YnJlc291cmNlT3JpZ2luMSkpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcg
aG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmln
aW4xKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCi0g
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5
UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKLSAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVz
b3VyY2VPcmlnaW4zKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3Jp
Z2luNCkpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKLSAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4iKTsKLSAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3Qg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29s
bHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJy
ZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBo
b3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJy
ZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBo
b3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VP
cmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VP
cmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdv
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdv
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBzdWIgZnJhbWUgcmVkaXJl
Y3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OwotCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKcKgeworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIGxldCBpZnJhbWVF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgIGlmcmFt
ZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vbmNsaWNrLmh0bWwiOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfQogPC9zY3JpcHQ+Ci08aWZyYW1lIG9ubG9hZD0icnVuVGVz
dCgpIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jl
c291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9vbmNsaWNrLmh0bWwiPjwvaWZyYW1lPgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtdG8tcHJldmFsZW50Lmh0bWwKaW5kZXggNDZiODg5YjBlMTM3OWExN2ZmMTZmOWQ4ZTM5
MzlhZjdmNWQyY2YzYS4uNjk4MGFiNDc1YWFlNDhlMWU1ZjQxNTAwMDMyNTQyNWYwMTYwOWVjOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1w
cmV2YWxlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LXRvLXByZXZhbGVudC5odG1sCkBAIC0zNCwyMSArMzQsMjMgQEAKICAgICB9CiAKICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwot
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7
CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKLSAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwKaW5kZXggMjVmNzg5OGIz
ODcwODEyZmYwNzIxN2JjNzgxZjcxOWI4NmI3MWU3Yi4uYjMzZDUyNDYxN2Y3ZDdkMGZiNzcwMTYx
MGI3ZjgxMDU1ODYxMzA4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbApAQCAtMzEsMTggKzMx
LDE5IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CiAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50
IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwot
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMyk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luNCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKaW5kZXggZjA0ZmRjNDQ1
MTY4MDBmNzQ2Njc0NDI4ZTk5NjQ1OTQ5ZjVhZTFkNC4uYjhiMTJhNTU1NDY2MmM5NWJhYjEzYjI0
ZjhhZGY0MzU1NDQ1ZjhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKQEAgLTMxLDE4ICszMSwxOSBAQAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwog
IAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjMpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOwogCi0gICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5o
dG1sCmluZGV4IGFiMmEzNzIxOTAwMjg0ZDZkNmU0OGNlNzQ0MjFhMTE5YjMzODgzMzAuLjQ1OWJi
MTc1M2UxNTU3ZGExNGQwODE5NTlmNzBmZGM4OWQ3ZTAxNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sCkBAIC0zMiw0
MCArMzIsNDIgQEAKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjMpOwogICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BG
cmFtZU9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSk7Ci0gICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQotICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjIpKQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhv
c3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikp
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQotICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xs
dWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0
b3BGcmFtZU9yaWdpbjQpKQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3Qg
NCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQotICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZSBhZnRlciBhY3R1YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LiIpOwotICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW41KSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IGNs
YXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodG9wRnJhbWVPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xs
dWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZy
YW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3Qg
MSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1l
T3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBn
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1
YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSB0b3BGcmFtZU9yaWdpbjUgKyAicmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC1jb2xsdXNpb24uaHRtbCNjb250aW51ZSI7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRpbnVlIjsKKyAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQuaHRtbAppbmRleCBmMmViM2EzZDVl
ZWFjMjM1NGU2MTBiMTU2N2Y0ZTBiZDdhYjIyYTdiLi45Y2I4ODcwZjVmZjM1MjM4NjBhMGU3ZWU2
OWY4NDBkNDcwY2I0NmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQuaHRtbApAQCAtMzQsMjEgKzM0LDIzIEBACiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKIAotICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0
VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CiAKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sCmluZGV4IGMzZTkyMTM3OGUwZDc0
MGE5N2M2MTU5ZWNhNGNiYzhhODU3ZWQzOTYuLjk1OTc3Zjk0MjU4YTc1YWZiZmYxYWQxOGM1NzEx
ZjhhMTg3MGUxMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWwKQEAgLTUxLDEwICs1MSwxMSBAQAogICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKLSAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24t
bWl4ZWQtc3RhdGlzdGljcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MuaHRtbAppbmRleCA5MjJlM2NjYWVhMTc3Zjc1Y2Y1M2MzMmUzMjc3NjY0Mjc4ODFh
ZDRjLi4wNDBjYTZhMTU5YTI0MDFjNjIzNzAyMGIxYzM4MmRjNzUwNTE3OTFiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKQEAgLTQwLDI4ICs0
MCwyOSBAQAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOwogIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBzdGFydGVkIG91dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwog
Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgd2hpbGUgKGkgPCBudW1iZXJPZlN1YnJlc291
cmNlRG9tYWlucykgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgdmFyIGkgPSAw
OworICAgICAgICAgICAgd2hpbGUgKGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucykgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW5zW2krMV0pOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luc1tpKzFdKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsx
XSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CiAKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luc1tpKzJdKTsKLSAgICAgICAgICAgIGkgKz0gMzsKLSAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIH0KIAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKLSAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNv
bXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3Rl
bnQtc3RvcmUtb25lLWhvdXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhv
dXIuaHRtbAppbmRleCAwZTk5YWI5YTJlZmM3YmRlYzU1ODA3ZWVjOWIyMjk2NmU1YjJlNDI5Li40
ZDEyM2MwM2QxMjBhZGRlMDdiMTM3Y2Y2YzI0NGY3YWVhNGRiYmQ0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lz
dGVudC1zdG9yZS1vbmUtaG91ci5odG1sCkBAIC0zNyw3ICszNyw3IEBACiAgICAgZnVuY3Rpb24g
cnVuVGVzdFJ1bm5lclRlc3QoKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CiAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQogICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS5odG1sCmluZGV4IDQ1N2ViMGU1NmQwZTBlNmI2
Y2MxYWNiZmQwNTk1ZDQ3ZTA1NjM4MDkuLjQ1MmY2ZTViZjVlZTVhOGExOWE3ZjgzY2JkY2JmMzAw
MGY4OGI0ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLmh0bWwKQEAgLTM3LDIxICszNywyMiBAQAogICAg
IGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogCi0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
Myk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CiAK
LSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKHRlc3RTdGVwMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKIAotICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
YmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QuaHRtbAppbmRleCA4MWE4NWM3YmVm
ZjAzYzIzMGYzMGIwMzkwNmNlOTBiYWI0YWEyZTczLi4wMWEzNzgxOWQ0MzMzNzFlMTliOWY0ZTI3
ZTUxYjI1ZmVlYjRkYjkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGly
ZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC5odG1sCkBAIC0x
MiwxMyArMTIsMTQgQEAKIAogICAgIGZ1bmN0aW9uIGRvUmVkaXJlY3QoKQogICAgIHsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2Nh
bGhvc3QiLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpIHsKLSAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvY29va2llcy9yZXNv
dXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKSB7CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvY29va2llcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5w
aHA/c3RlcD0xIjsKKyAgICAgICAgfSk7CiAgICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3Jh
bmRmYXRoZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sCmluZGV4IGY0OWZkOGI1YTZlYjVhMGIyMTYwODUw
YTA0NjZjYzkyNjgyZGI1NzMuLjZjYmQ4NzIzMzUxZjJjODgwZjFiZTgyYmY0MzQ3MDc3MDg2MmQ3
YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ncmFuZGZhdGhlcmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sCkBAIC02OCwxMCArNjgsMTEg
QEAKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CiAgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9z
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
TG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAg
ICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6CiAgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcu
MC4wLjEuCkBAIC04MCwxMCArODEsMTEgQEAKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CiAgICAgICAg
ICAgICAgICAgLy8gU2V0IDEyNy4wLjAuMSBhcyBwcmV2YWxlbnQgcmVzb3VyY2UKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
LzEyNy4wLjAuMSIsIHRydWUpOwotICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQotICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCIxMjcuMC4wLjEgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly8x
MjcuMC4wLjEiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4x
IikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCIxMjcuMC4wLjEgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA4IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwK
aW5kZXggNjcyMjIwOGRlMjQ4MmU4NWZjZTE2ZmVmN2NhOTY4ODU5ZmRkZTg4My4uZTRhZGJkZTgy
OWM4ZWU3YThhZDA0NWQ4ZjhkNzkzNjY1YWQ4YmQ4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLmh0bWwKQEAgLTI4LDMzICsyOCwzNiBAQAogICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llICE9PSBjb29raWUpCiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29r
aWUgZGlkIG5vdCBnZXQgc2V0LiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0
byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KLSAgICAgICAg
Ly8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmws
IHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIg
aG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQg
cmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2
ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3Ro
ZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBo
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQotICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29r
aWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0
ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVu
dC5jb29raWUpOwogCi0gICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNl
c0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91
bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRz
UmVtb3ZhbCgwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKaW5kZXgg
MWJlZmMxM2ZlNjc1YWY1MGE2ZGE0Y2MzYWUyNjdjZDYwYTFkMmMwYy4uM2I5YWZmNDAyNTU3N2Yz
NTllNjdlNGI3ZjA4NDM3ZmQzZDFjM2M4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLmh0bWwKQEAgLTI4LDMzICsyOCwzNiBAQAogICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llICE9PSBjb29raWUpCiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29r
aWUgZGlkIG5vdCBnZXQgc2V0LiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0
byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KLSAgICAgICAg
Ly8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmws
IHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIg
aG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQg
cmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2
ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3Ro
ZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBo
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBj
bGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQotICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29r
aWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0
ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVu
dC5jb29raWUpOwogCi0gICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNl
c0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91
bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRz
UmVtb3ZhbCgwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4t
YS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29r
aWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC5odG1sCmluZGV4IGYyNGY0ODlmNmFmZWFmYjAw
YTEwMzhhNzkyY2JjYWEwNDZlZmU1NjcuLjQ2NjljNTcxNTM0YjNkMzk4MDFmMTM4ODMzZTRiY2Qw
NzJkMzAwMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4t
YS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3Mt
Y29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbApAQCAtNDQsMTAgKzQ0LDExIEBA
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
aGlyZFBhcnR5T3JpZ2luLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKLSAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRl
cmFjdGlvbi4iKTsKLSAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKQEAgLTc3LDIxICs3OCwyMyBAQAogICAgICAgICAgICAgICAg
IG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZt
ZXNzYWdlPVNob3VsZCByZWNlaXZlIG9uZSBwYXJ0aXRpb25lZCwgdGhpcmQgcGFydHkgY29va2ll
LiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6Ci0gICAgICAgICAgICAgICAgLy8gTG9hZCBs
b2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIG5vbi1w
YXJ0aXRpb25lZCBjb29raWUgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgICAgICAg
ICAvLyBMb2FkIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgYW5kIGNoZWNrIHRoYXQgaXQgc3Rp
bGwgZ2V0cyBwYXJ0aXRpb25lZCBjb29raWUgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbi4KICAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICImbWVzc2FnZT1BZnRlciB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgc3RpbGwgb25s
eSByZWNlaXZlIG9uZSBwYXJ0aXRpb25lZCwgdGhpcmQgcGFydHkgY29va2llLiIsIGZpbmlzaFRl
c3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwogICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eUhvc3RuYW1lLCBmYWxzZSk7Ci0gICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9y
aWdpbiwgZmFsc2UpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5SG9zdG5hbWUsIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAx
IjsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzU2V0U2hvdWxkUGFydGl0aW9u
Q29va2llc0Zvckhvc3QodGhpcmRQYXJ0eUhvc3RuYW1lLCBmYWxzZSwgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1NldFNob3VsZFBhcnRpdGlvbkNv
b2tpZXNGb3JIb3N0KHRoaXJkUGFydHlIb3N0bmFtZSwgZmFsc2UsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHJ1blRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29r
aWUtZGVsZXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtZGVsZXRpb24uaHRt
bAppbmRleCAzN2UyYzdjMWIzODlhNzk4ZGFhYTdlMmMzNjY5MzE5MjBiYmNiOGQwLi4yOGZhMGI1
YTBmODExZDQ1MmY4ZDMwYWE1NjY1YmYxMjRiODlmMjJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFy
dGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNv
b2tpZS1kZWxldGlvbi5odG1sCkBAIC01MSwxMCArNTEsMTEgQEAKICAgICB9CiAKICAgICBmdW5j
dGlvbiBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSgpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRy
dWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQg
cGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwotICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhp
cmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkg
ZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAg
cnVuVGVzdCgpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkg
ewpAQCAtOTYsMTEgKzk3LDEyIEBACiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwogICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
MSI7CiAKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKLSAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1NldFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0
KCJsb2NhbGhvc3QiLCB0cnVlLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NTZXRTaG91bGRQYXJ0aXRpb25Db29raWVzRm9ySG9zdCgibG9jYWxob3N0Iiwg
dHJ1ZSwgcnVuVGVzdCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgcnVuVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNv
b2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0
aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC1leHBlY3RlZC50eHQKaW5k
ZXggYTQwZDdmNTQ4NmUwNTkzM2QwNGMxODBlZTQ1ZmQxNjQ2N2JiZDkwMS4uNTBlODJjODE2NTJj
YTQyYmRmMDU5OGY1OWJhOGU5NDY5MDdjZGUyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlv
bmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQt
YW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQtZXhwZWN0
ZWQudHh0CkBAIC0xLDE1ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTc6IEJvb3Rz
dHJhcHBpbmcgdGVzdC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogU3RlcCAxLgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDczOiBTdGVwIDIuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODA6IFN0
ZXAgMy4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4NzogU3RlcCA0LgotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDU3OiBzZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRl
cmFjdGlvbkFuZENvbnRpbnVlKCkuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgOTQ6IFN0ZXAgNS4K
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MTogc2V0U2hvcnRDb29raWVQYXJ0aXRpb25pbmdUaW1l
T3V0UGx1c0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFuZENvbnRpbnVlKCkuCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDY6IGZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxl
ckFuZENvbnRpbnVlKCkuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTAxOiBTdGVwIDYuCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTc6IHNldE5vcm1hbENvb2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQ
bHVzVXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
MDg6IFN0ZXAgNy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlv
bmluZy10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0
aW9uaW5nLXRpbWVvdXQuaHRtbAppbmRleCBhYTU3MDk5Mzc4NmEwYmNkZGU2NDM1YWI0MGQ3MjI1
MDZhMjVhMzYzLi5iZWZmM2EzOWJlMWU3N2MwMGQ2ZjQ1ZjlmZGU2ZDMzYjFiN2UwNGE2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFy
dGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVv
dXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5n
LXRpbWVvdXQuaHRtbApAQCAtNDMsNjkgKzQzLDYwIEBACiAgICAgfQogCiAgICAgZnVuY3Rpb24g
ZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUoKSB7Ci0gICAgICAg
IGNvbnNvbGUubG9nKCJmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJBbmRDb250aW51
ZSgpLiIpOwogICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVQYXJ0aXRp
b25pbmcocnVuVGVzdCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2V0U2hvcnRDb29raWVQYXJ0
aXRpb25pbmdUaW1lT3V0UGx1c0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFuZENv
bnRpbnVlKCkgewotICAgICAgICBjb25zb2xlLmxvZygic2V0U2hvcnRDb29raWVQYXJ0aXRpb25p
bmdUaW1lT3V0UGx1c0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckFuZENvbnRpbnVl
KCkuIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVDb29raWVQ
YXJ0aXRpb25GcmVlKDEpOwogICAgICAgICBzZXRUaW1lb3V0KGZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlckFuZENvbnRpbnVlLCAyMDAwKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBz
ZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRlcmFjdGlvbkFuZENv
bnRpbnVlKCkgewotICAgICAgICBjb25zb2xlLmxvZygic2V0Tm9ybWFsQ29va2llUGFydGl0aW9u
aW5nVGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSgpLiIpOwogICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSg4NjQw
MCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBp
bnRlcmFjdGlvbi4iKTsKLSAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFj
dGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlv
bi5oYXNoKSB7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgotICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJTdGVwIDEuIik7CiAgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgaHR0cDovL2xvY2FsaG9zdDo4MDAwCiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQ
YXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIjc3RlcDIiOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKLSAgICAgICAg
ICAgICAgICBjb25zb2xlLmxvZygiU3RlcCAyLiIpOwogICAgICAgICAgICAgICAgIC8vIENoZWNr
IHRoYXQgdGhlIGZpcnN0LXBhcnR5IGNvb2tpZSBpcyBub3Qgc2VudCBpbiBwYXJ0aXRpb24gMTI3
LjAuMC4xOjgwMDAKICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAzIjsKICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIs
CiAgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygi
U3RlcCAzLiIpOwogICAgICAgICAgICAgICAgIC8vIFNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9y
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBpbiBwYXJ0aXRpb24gMTI3LjAuMC4xOjgwMDAKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKICAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0
eUNvb2tpZSArICImbWVzc2FnZT1TZXR0aW5nIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBjb29r
aWUuIiwKICAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgotICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJTdGVwIDQuIik7CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBvbmx5IHBhcnRp
dGlvbmVkIGNvb2tpZSBnZXQgc2VudCBpbiBwYXJ0aXRpb24gMTI3LjAuMC4xOjgwMDAKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKICAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyAr
ICImbWVzc2FnZT1TaG91bGQgb25seSByZWNlaXZlIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBj
b29raWUuIiwKICAgICAgICAgICAgICAgICAgICAgc2V0Tm9ybWFsQ29va2llUGFydGl0aW9uaW5n
VGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgotICAgICAgICAgICAgICAgIGNvbnNv
bGUubG9nKCJTdGVwIDUuIik7CiAgICAgICAgICAgICAgICAgLy8gaHR0cDovL2xvY2FsaG9zdDo4
MDAwIG5vdyBoYXMgdXNlciBpbnRlcmFjdGlvbiwgY2hlY2sgdGhhdCB1bi1wYXJ0aXRpb25lZCBj
b29raWUgaXMgc2VudCBmb3IgdGhpcmQtcGFydHkKICAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciBmaXJz
dCB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgc3RpbGwgb25seSByZWNlaXZlIGEgcGFydGl0aW9u
ZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4iLAogICAgICAgICAgICAgICAgICAgICBzZXRTaG9ydENv
b2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQbHVzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5k
bGVyQW5kQ29udGludWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA2IjoKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU3RlcCA2LiIpOwogICAg
ICAgICAgICAgICAgIC8vIENvb2tpZSBwYXJ0aXRpb25pbmcgc2hvdWxkIGJlIGFwcGxpZWQgYWdh
aW4KICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKICAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0
Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgb25seSByZWNlaXZlIHBhcnRpdGlvbmVkLCB0aGly
ZC1wYXJ0eSBjb29raWUuIiwKICAgICAgICAgICAgICAgICAgICAgc2V0Tm9ybWFsQ29va2llUGFy
dGl0aW9uaW5nVGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDciOgotICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJTdGVwIDcuIik7CiAgICAgICAgICAgICAgICAgLy8gaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIG5vdyBoYXMgZnJlc2ggdXNlciBpbnRlcmFjdGlvbiwgY2hlY2sgdGhhdCB1
bi1wYXJ0aXRpb25lZCBjb29raWUgaXMgc2VudCBmb3IgdGhpcmQtcGFydHkKICAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyAr
ICImbWVzc2FnZT1BZnRlciBzZWNvbmQgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIG9u
bHkgcmVjZWl2ZSBhIHBhcnRpdGlvbmVkLCB0aGlyZC1wYXJ0eSBjb29raWUuIiwKICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCk7CkBAIC0xMTQsMjEgKzEwNSwyMSBAQAogICAgIH0KIAog
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCJCb290c3RyYXBw
aW5nIHRlc3QuIik7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwogICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBh
cyBwcmV2YWxlbnQgYW5kIHdpdGggbm9uLXJlY2VudCB1c2VyIGludGVyYWN0aW9uIHRvIHB1dCBp
dCBpbiB0aGUgcGFydGl0aW9uaW5nIGNhdGVnb3J5LgotICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsK
LSAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIpKQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbigiaHR0
cDovL2xvY2FsaG9zdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFj
dGlvbigiaHR0cDovL2xvY2FsaG9zdCIpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoKTsKIAotICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpOwotICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
MSI7CiAKLSAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJ1blRl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wYXJ0aXRpb25lZC1jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BhcnRpdGlvbmVkLWNvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0
bWwKaW5kZXggZWJmZDlkN2EyZmQ2M2RlM2QzNDA3NTg0MzJhNjU5ZDAyNmU5Y2I5MC4uOGE0M2M5
MzBmMDdiNmYxOGFmM2UyMzAzYjRlMTg3NzJhZjI3ZmFhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMt
d2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMtd2l0
aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAgLTQzLDEwICs0MywxMSBAQAog
ICAgIH0KIAogICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkgewot
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhp
cmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCi0gICAgICAgICAgICB0
ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJh
Y3Rpb24uIik7Ci0gICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGlyZCBwYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24uaHRtbAppbmRleCBlZTkwOTFkMmI4NTY3NWI4
ODEyYjI3YTFkYWQ4YjEwYWNiYWI0Zjk5Li43OTkyZjQ5N2EwMmZlMTFjODkxNzM3OTE2NWNlZWQ3
NDUwMzYxYWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLmh0bWwKQEAgLTE2LDQ0ICsxNiw0NiBAQCBvbmxvYWQg
PSBmdW5jdGlvbigpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKICAgICB9CiAKLSAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlKTsK
LSAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCi0gICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKLQotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQotICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFj
dGlvbi4iKTsKLQotICAgIHRlc3RJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
SW5wdXQiKTsKLQotICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRh
UmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInRlc3RJbnB1dC52YWx1ZSIsICJhIik7Ci0KLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9uIGNyZWRp
dC4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIHdhcyBn
cmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uIik7Ci0KLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOwotICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIH0sIDApOwotICAgICAgICB9LCAwKTsKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAg
IHRlc3RJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0SW5wdXQiKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ0ZXN0SW5wdXQudmFsdWUiLCAiYSIpOworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIg
aW50ZXJhY3Rpb24gY3JlZGl0LiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAg
ICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZh
bHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVi
dWcoIlNpbXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuIik7Cisg
ICAgICAgICAgICB0ZXN0SW5wdXQuZm9jdXMoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIpOworICAg
ICAgICB9KTsKICAgICB9KTsKLSAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Ci0gICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OwotICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKLQotICAgIGRlYnVnKCJTaW11bGF0ZSB1c2VyIHR5cGluZyBsZXR0ZXIgJ2EnIGludG8g
dGhlIGZpZWxkLiIpOwotICAgIHRlc3RJbnB1dC5mb2N1cygpOwotICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCi0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiKTsgICAgCiB9CiA8L3Nj
cmlwdD4KIDxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1s
Ij48L2lmcmFtZT4KLTxpbnB1dCBpZD0idGVzdElucHV0IiB0eXBlPSJ0ZXh0Ij48L2lucHV0Pgor
PGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9InRleHQiPgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRs
ZWQta2V5ZG93bi5odG1sCmluZGV4IGQ1Y2ZkN2ZjZmI3OWY2YmQzYjZlMWVhNzVkYjk0NTdhZDQ0
OTE4OGEuLmIyMzViNjU0NDlkY2ZiYjcwZWM5Yzg0YTcyYjMxYjU3ODI0YjllM2MgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxl
ZC1rZXlkb3duLmh0bWwKQEAgLTE2LDM1ICsxNiwzNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsK
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKICAgICB9CiAKLSAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlKTsKLSAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKLQotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKLQotICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgewotCi0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7Ci0KLSAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAi
YWJvdXQ6YmxhbmsiOwotICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAgICB9LCAwKTsKKyAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
LCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rp
b24uIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2Rp
ZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGRpZCBub3QgZ2V0
IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOworCisgICAgICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91
dDpibGFuayI7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lz
dGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
ICAgIH0sIDApOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0Jl
Zm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJTaW11bGF0ZSBhbiB1bmhhbmRsZWQgdXNlciBr
ZXkgcHJlc3MuIik7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiLCBbIm1ldGFLZXkiXSk7CisgICAgICAg
IH0pOwogICAgIH0pOwotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5
UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKLSAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7Ci0g
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OwotCi0gICAgZGVidWcoIlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsK
LSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQotICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJhIiwgWyJtZXRhS2V5Il0pOyAgICAKIH0KIDwvc2NyaXB0PgogPGlmcmFtZSBpZD0idGVzdEZy
YW1lIiBzcmM9InJlc291cmNlcy9vbmNsaWNrLmh0bWwiPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC5odG1sCmluZGV4IGI4YmY1MWU1MjExMmRhMjQ5ZGUw
MDY2ZTlmYjdmMjAwOGI3MDkzYmYuLjM1MjQ5OWRjZjcyMDZjNWZiZDhkNTQ1MDcyZDQwYjIyZmNh
Nzg2NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0Lmh0bWwKQEAg
LTE3LDI4ICsxNywzMiBAQAogICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUp
CiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0
LiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3RhdGlzdGljc1VybCwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4i
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQotICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3VtZW50LmNvb2tpZSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIGRlbGV0
ZWQuIik7Ci0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQoZmFsc2UpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5jb29raWUpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rp
b24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRvIGVuc3VyZSB0aGUgdGltZW91
dCB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKSIsIDEwMDApOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbCgwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRv
TGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKLSAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5z
dGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpIiwgMTAwMCk7CiAgICAg
fQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLmh0bWwKaW5kZXggMGJiYWQyNWM2N2Q4YTZmZmEwYjVkYjYwMWU3OWZmNjQzMjU2ZWJl
NS4uOGQ1Njk3ODYzNGRmNWRlOTU5ZDZkZDNhMzllYjczMjcyNjM3ZDkzYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi5odG1sCkBAIC0xOCwzMyArMTgsMzYgQEAKICAgICAgICAgaWYgKGRvY3Vt
ZW50LmNvb2tpZSAhPT0gY29va2llKQogICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQu
Y29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlKTsKLSAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5v
dCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgotICAgICAgICAvLyBP
dGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgotICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1
ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShvdGhlclByZXZhbGVudFVybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAv
LyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNv
dXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBz
Y2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclBy
ZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwg
dHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGlj
c1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dl
ZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tpZSkKLSAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2ll
IGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOwotICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKLSAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRh
UmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUg
ZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRv
Y3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlS
ZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2Up
OwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRh
UmVjb3Jkc1JlbW92YWwoMCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCA1
MjUwOWM5MmI1YzViZTYyNmUyMGRkYTAwYzcwMGQ5ZDEwODhmZjFlLi5mMjAwMzEyNGQxZWRhZjlk
NGI4MWJmMzI4ZDE2MmY3ZTA3ZDQ3NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9u
Lmh0bWwKQEAgLTI5LDIwICsyOSwyMiBAQAogICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSBjb29raWUpCiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5v
dCBnZXQgc2V0LiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKIAotICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRh
UmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KCJmaW5pc2hUZXN0KCkiLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0Jl
Zm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVj
b3Jkc1JlbW92YWwoZmFsc2UpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5p
bXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKICAgICB9CiAKICAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0
YXRpc3RpY3MuaHRtbAppbmRleCBiYmM1YzE2ZDNiN2E4Y2Q3Yjk5Y2I5NmNiMWIyMzkzYWQ1Y2Y4
YmUzLi5iNTE1MjJmNzFmMDg3Zjk5YjNiNTQ3YjI0M2QyMThjZmUxNjQ2NWRiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLmh0bWwKQEAgLTU1LDM0ICs1NSw2NSBAQAogICAgICAg
ICB9CiAgICAgfQogCi0gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3MoKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFj
ayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOwotCi0gICAgICAgIC8vIE5vbi1wcmV2YWxl
bnQgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBmaXJzdC4KLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBv
bGRlclRpbWVzdGFtcCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVu
KHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3RhbXApOwotCi0gICAgICAgIC8vIFBy
ZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbMl0udXJsLCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzNd
LnVybCwgdHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVy
bHNUb0JlUHJ1bmVkWzNdLnVybCwgbmV3ZXJUaW1lc3RhbXApOwotCi0gICAgICAgIC8vIE5vbi1w
cmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCB0aGlyZC4KLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0Jl
UHJ1bmVkWzRdLnVybCwgdHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xh
c3RTZWVuKHVybHNUb0JlUHJ1bmVkWzRdLnVybCwgb2xkZXJUaW1lc3RhbXApOwotICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVu
ZWRbNV0udXJsLCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNl
ZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCk7Ci0KLSAgICAgICAgLy8g
UHJldmFsZW50IHdpdGggdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgbGFzdC4KLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVu
ZWRbNl0udXJsLCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xk
ZXJUaW1lc3RhbXApOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh1cmxzVG9CZVBydW5lZFs3XS51cmwsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJs
LCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1Rv
QmVQcnVuZWRbN10udXJsLCBuZXdlclRpbWVzdGFtcCk7Ci0KLSAgICAgICAgY2hlY2tJZlByZXZh
bGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKDAsIHVybHNUb0JlUHJ1bmVkLmxlbmd0
aCk7CisgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyhzdGVwKSB7
CisgICAgICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3
aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGZpcnN0LgorICAgICAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVu
KHVybHNUb0JlUHJ1bmVkWzBdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0
aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsxXS51cmwsIG5ld2VyVGltZXN0YW1wLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygzKTsgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aG91dCB1c2Vy
IGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBzZWNvbmQuCisgICAgICAgICAgICBjYXNlIDM6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dXJsc1RvQmVQcnVuZWRbMl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRp
c3RpY3NBbmRSdW5UZXN0cyg0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNSk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzNdLnVybCwgdHJ1
ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNik7IH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzNdLnVy
bCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKDcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIE5v
bi1wcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCB0aGlyZC4KKyAg
ICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg4KTsgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNF0udXJsLCBvbGRl
clRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
OSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA5OgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih1cmxzVG9CZVBydW5lZFs1XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDEwKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9u
KCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDExKTsgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0
aW9uIHRvIGJlIHBydW5lZCBsYXN0LgorICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBy
dW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKDEyKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IDEyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0
aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEzKTsgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xkZXJUaW1lc3RhbXAs
IGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE0KTsgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1
bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVu
VGVzdHMoMTUpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
MTU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRp
YWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTYpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbN10udXJsLCBuZXdlclRpbWVzdGFtcCwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTcpOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICAg
ICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKDAsIHVybHNU
b0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogCiAgICAgdmFyIGN1cnJlbnRUZXN0OwpA
QCAtOTQsNyArMTI1LDggQEAKICAgICAgICAgdGVzdFBhc3NlZCgiVGVzdCBpdGVyYXRpb24gIiAr
IGN1cnJlbnRUZXN0ICsgIiBwYXNzZWQuIik7CiAgICAgICAgIGlmIChjdXJyZW50VGVzdCA8IHVy
bHNUb0JlUHJ1bmVkLmxlbmd0aCkgewogICAgICAgICAgICAgKytjdXJyZW50VGVzdDsKLSAgICAg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcp
OworICAgICAgICAgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25z
aXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CkBAIC0xMDIsMTQgKzEzNCwxNiBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgbGV0IGZpbGxl
clVybDsKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpbml0aWFsaXplU3RhdGlz
dGljcygpOwotCi0gICAgICAgIHZhciBmaWxsZXJVcmwgPSAiaHR0cDovLzEyNy4wLiIgKyBjdXJy
ZW50VGVzdCArICIuMTo4MDAwL3RlbXAiOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShmaWxsZXJVcmwsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJsLCB0cnVlKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4oZmlsbGVyVXJsLCBuZXdlc3RU
aW1lc3RhbXApOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiAr
IGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
ZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKQEAgLTEyMCw3ICsxNTQsOCBAQAogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cnVuZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKIAogICAgICAgICBjdXJy
ZW50VGVzdCA9IDE7Ci0gICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0Fm
dGVyUHJ1bmluZyk7CisgICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7
CiAgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVt
b3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0Lmh0bWwKaW5kZXggMGU3NGEwM2YzMjJhNzAxMDExZGJh
NDQ5MTc5YzgyNDUzZjk5NjA3NC4uNTU4ZThmMmRkMjUzYTgzZWY2NDE2MGM1ZTEyN2QwMTcyN2I2
ZjYzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3JlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZW1vdmUtYmxvY2tpbmctaW4tcmVk
aXJlY3QuaHRtbApAQCAtNTksMTEgKzU5LDEyIEBACiAgICAgICAgICAgICBjYXNlICIjc3RlcDQi
OgogICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IGFuZCB3aXRo
IG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNh
dGVnb3J5LgogICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUi
OwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0Iikp
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2ll
UGFydGl0aW9uaW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcnVuVGVz
dCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlLXBh
cnRpdGlvbmluZy1pbi1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3JlbW92ZS1wYXJ0aXRpb25pbmctaW4tcmVkaXJlY3QuaHRtbApp
bmRleCA5YzExMGMwY2RkNWMzNWExODNjM2JiYTM1OWU1MDc2MjcxZmU5NmI0Li5hNWUzZDkxOTdi
ZjY5M2UyODk4OGVhMjhlZGQ1YWIzNDQzZTU0MjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlLXBhcnRpdGlvbmluZy1pbi1y
ZWRpcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZW1vdmUtcGFydGl0aW9uaW5nLWluLXJlZGlyZWN0Lmh0bWwKQEAgLTU5LDEyICs1
OSwxMiBAQAogICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKICAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCBhbmQgd2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJh
Y3Rpb24gdG8gcHV0IGl0IGluIHRoZSBwYXJ0aXRpb25pbmcgY2F0ZWdvcnkuCiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7Ci0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZE5vblJl
Y2VudFVzZXJJbnRlcmFjdGlvbigiaHR0cDovL2xvY2FsaG9zdCIpOwotICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0Iiwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oImh0dHA6Ly9sb2NhbGhvc3Qi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlICIjc3RlcDUiOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJl
dmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJl
dmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sCmluZGV4IDM5MWZiYjUwMDFiYjU5NzZh
YmYzNWUzZDA5YWQ0MGQ4NjBkYjIwZDYuLmU4YjdmMDlkNWM2NjRkZDYzZTgyZDlhMGM3MTdiZGI1
YTg5ZjdkOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNv
dXJjZS1yZWRpcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVkaXJlY3RzLmh0bWwKQEAgLTM4LDE2ICszOCwxNiBAQAogICAgICAgICAgICAg
cmVmZXJyZXIgPSBkYXRhOwogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZl
cnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMu
aHRtbCIpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwotICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0Iikp
Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0
LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3Jl
ZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICB9KTsKLQogICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewogICAgICAgICAg
ICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CiAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1w
cmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbAppbmRleCA2ZDNiNjc2NjZiNzBlOWY0
YzUyNWRiZjFkZTkzNGZmNjE2NGY4N2ExLi4yMDQwMjg4MjdiNGVhZGFjMDU4MjFhOGFjMjEzNTYw
NTJiNWNkNTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVz
b3VyY2UtcmVxdWVzdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVxdWVzdHMuaHRtbApAQCAtMzgsMjcgKzM4LDI3IEBACiAgICAgICAgICAgICBy
ZWZlcnJlciA9IGRhdGE7CiAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVy
cmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlw
LXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLmh0
bWwiKTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKLSAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQot
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5nKGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50
ZXh0KCk7Ci0gICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9u
aW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIu
cGhwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5j
dGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwg
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKIAotICAgICAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKCJyZXNvdXJj
ZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CiAgICAgICAgICAgICAgICAgICAg
IH0pOwotCi0gICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAg
ICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKLQogICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihl
cnJvcikgewogICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CiAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1n
ZW5lcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbAppbmRleCAxMDU1OTczNWFjYTViMDdmOGUw
Zjc2MmM5YTBmMjFlN2RlNDgxNWEwLi40ZGIzMTI3NDAwNmMzZGU1ZjY1MmZmOTNmNzhkZDU0YTQ1
ZjlkNDc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbApA
QCAtOTAsMTEgKzkwLDExIEBACiAgICAgICAgIG1ha2VVcmxQcmV2YWxlbnQocHJldmFsZW50UmVz
b3VyY2VVcmwzKTsKICAgICAgICAgbWFrZVVybFByZXZhbGVudChwcmV2YWxlbnRSZXNvdXJjZVVy
bDQpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihwcmV2YWxlbnRSZXNvdXJjZVVybDQsIHRydWUpOwotCi0gICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N1ZmZpY2ll
bnRDbGFzc2lmaWNhdGlvbkFuZENvbnRpbnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKGNoZWNrU3VmZmljaWVudFRlbGVtZXRy
eSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHByZXZhbGVudFJlc291cmNlVXJsNCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY2hlY2tTdWZmaWNpZW50Q2xhc3NpZmljYXRpb25BbmRDb250aW51ZSk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2so
Y2hlY2tTdWZmaWNpZW50VGVsZW1ldHJ5KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gcnVuVGVsZW1ldHJ5QW5kQ29udGludWUoKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFy
dHktY29va2llLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tp
ZS13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCBlMjE3YTAzNmM2
MjczYmZlMDhhZWFjZGQ5MmU4NzBlYTBmZGJlNThmLi5iNzIxNjNlMGMyMzkwYmViOGU4ZDI4MTQw
ZjkyZTM2ZTYyYmNiNDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLXdpdGgtYW5kLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtd2l0aC1hbmQtd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLmh0bWwKQEAgLTQ1LDEwICs0NSwxMSBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9u
IHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7
Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odGhpcmRQYXJ0eU9yaWdpbikpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0
eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7Ci0gICAgICAgIHJ1
blRlc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0eSBkaWQg
bm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CkBA
IC05NCw5ICs5NSwxMSBAQAogICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMSI7CiAKICAgICAgICAgICAgIC8vIFN0YXJ0IHRlc3Qgd2l0aCB0aGlyZCBwYXJ0eSBhcyBu
b24tcHJldmFsZW50Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSh0aGlyZFBhcnR5SG9zdG5hbWUsIGZhbHNlKTsKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2lu
LCBmYWxzZSk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NTZXRTaG91bGRQYXJ0
aXRpb25Db29raWVzRm9ySG9zdCh0aGlyZFBhcnR5SG9zdG5hbWUsIGZhbHNlLCBydW5UZXN0KTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlIb3N0bmFtZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3Jp
Z2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1NldFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0KHRoaXJkUGFydHlIb3N0
bmFtZSwgZmFsc2UsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJ1blRlc3QoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRp
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9m
LXRpbWUuaHRtbAppbmRleCAwOTgwNmY0MTZkZmU2YjkwODU1YWRhZThiYmVjNmQ5M2IxMGFiZGY2
Li5hMzBiMjI4ZjhhZWM0NjExODU4NzFiNmJjOGUxYWI3NGU4MmM1MDg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGlt
ZS5odG1sCkBAIC00NCwxMiArNDQsMTMgQEAKICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CiAKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4sIGZhbHNlKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
b3BGcmFtZU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOwogCi0gICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOwotCi0gICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBmaW5pc2hUZXN0KTsKKyAgICAgICAg
ICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345159</attachid>
            <date>2018-07-17 09:39:30 -0700</date>
            <delta_ts>2018-07-17 10:45:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187710-20180717093929.patch</filename>
            <type>text/plain</type>
            <size>157749</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhiOTIxMzA2MjVmNTJjYTlk
NTA0ZjcwZjMzMDI4NWVlNGY0MDQ4MDguLjc4ZWFjZjJhNzNjNGM1ZjJjOTYzN2U1MTljNzRmNjkz
YTE3NzQ3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTgtMDctMTYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbXBsZXRpb24gaGFu
ZGxlcnMgdG8gVGVzdFJ1bm5lciBmdW5jdGlvbnMgc2V0U3RhdGlzdGljc0xhc3RTZWVuKCksIHNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgpLCBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKCksIHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oKSwgYW5kIHNl
dFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NzEwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80MjI1Mjc1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4K
KworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSB0byBiYWNrIHRoZSBjb21wbGV0aW9uIGhhbmRs
ZXIgZnVuY3Rpb25hbGl0eSBvZgorICAgICAgICBUZXN0UnVubmVyIGZ1bmN0aW9uczoKKyAgICAg
ICAgLSBzZXRTdGF0aXN0aWNzTGFzdFNlZW4oKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKCksCisgICAgICAgIC0gc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbigp
LCBhbmQKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0
aW9uKCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2Vlbik6
CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRp
c3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ05vblJlY2VudFVzZXJJ
bnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VmVyeVByZXZh
bGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisKIDIwMTgtMDctMTYgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5kZXhlZERCOiBjbG9zZUFuZERlbGV0
ZURhdGFiYXNlc0Zvck9yaWdpbnMgc2hvdWxkIHJlbW92ZSBhbGwgZGF0YWJhc2VzIGZvciB0aG9z
ZSBvcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCA2NmMwMzAzNGRkYjdmZjdjZGEyNzhlOTljZTdh
MWI4YzlkMzYzZWY3Li5hNTRlY2JjMjY2ZGFiMGE4YmFmMjNjNzQ1NWViZWU0NGMxMzAyMzIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHAKQEAgLTY5LDM3ICs2OSw1MyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
CiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZShlbmFibGUpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcykKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdL
U3RyaW5nUmVmIGhvc3QsIGRvdWJsZSBzZWNvbmRzLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNlZW5GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvKiBzdG9yZSA9IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVE
YXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Ci0gICAgaWYgKCFzdG9yZSkKKyAg
ICBpZiAoIXN0b3JlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAg
ICAgICByZXR1cm47CisgICAgfQogCi0gICAgc3RvcmUtPnNldExhc3RTZWVuKFdlYkNvcmU6OlVS
TChXZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgU2Vjb25k
cyB7IHNlY29uZHMgfSk7CisgICAgc3RvcmUtPnNldExhc3RTZWVuKFdlYkNvcmU6OlVSTChXZWJD
b3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgU2Vjb25kcyB7IHNl
Y29uZHMgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOworICAgIH0pOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQordm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogc3RvcmUgPSBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpOwotICAgIGlmICghc3RvcmUpCisgICAgaWYgKCFzdG9yZSkgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmICh2
YWx1ZSkKLSAgICAgICAgc3RvcmUtPnNldFByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlVSTChX
ZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSk7CisgICAgICAg
IHN0b3JlLT5zZXRQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCks
IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFu
ZGxlcl0geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgICAg
IH0pOwogICAgIGVsc2UKLSAgICAgICAgc3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3VyY2UoV2Vi
Q29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkp
KTsKKyAgICAgICAgc3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3VyY2UoV2ViQ29yZTo6VVJMKFdl
YkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRl
eHQpOworICAgICAgICB9KTsKIH0KIAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0
aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHN0b3JlID0gV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKTsKLSAgICBpZiAoIXN0b3JlKQorICAgIGlmICghc3RvcmUpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKLSAgICAKKyAgICB9CisKICAg
ICBpZiAodmFsdWUpCi0gICAgICAgIHN0b3JlLT5zZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoV2Vi
Q29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkp
KTsKKyAgICAgICAgc3RvcmUtPnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpVUkwo
V2ViQ29yZTo6VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0
LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29u
dGV4dCk7CisgICAgICAgIH0pOwogICAgIGVsc2UKLSAgICAgICAgc3RvcmUtPmNsZWFyUHJldmFs
ZW50UmVzb3VyY2UoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpKTsKKyAgICAgICAgc3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3VyY2Uo
V2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOworICAgICAgICB9KTsKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNhbGxiYWNrKQpA
QCAtMTU0LDI1ICsxNzAsMzUgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFdLV2Vic2l0ZURhdGFTdG9yZVIKICAgICB9KTsKIH0K
IAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IGJvb2wgdmFsdWUpCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJp
bmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGF1dG8qIHN0b3JlID0gV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vi
c2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKLSAgICBpZiAoIXN0b3Jl
KQorICAgIGlmICghc3RvcmUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAodmFsdWUpCi0gICAgICAgIHN0b3Jl
LT5sb2dVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpKTsKKyAgICAgICAgc3RvcmUtPmxvZ1VzZXJJbnRlcmFj
dGlvbihXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5z
dHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgICAgIH0pOwogICAgIGVsc2UKLSAgICAgICAg
c3RvcmUtPmNsZWFyVXNlckludGVyYWN0aW9uKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwg
V2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSk7CisgICAgICAgIHN0b3JlLT5jbGVhclVz
ZXJJbnRlcmFjdGlvbihXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFdlYktpdDo6dG9JbXBs
KGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgICAgIH0pOwogfQogCi12b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJh
Y3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9z
dCkKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVz
ZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFz
SGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgYXV0byogc3RvcmUgPSBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRl
RGF0YVN0b3JlKCkucmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwotICAgIGlmICghc3RvcmUpCisg
ICAgaWYgKCFzdG9yZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIHN0b3JlLT5sb2dOb25SZWNlbnRVc2VySW50ZXJhY3Rp
b24oV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3Ry
aW5nKCkpKTsKKyAgICB9CisKKyAgICBzdG9yZS0+bG9nTm9uUmVjZW50VXNlckludGVyYWN0aW9u
KFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmlu
ZygpKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGNvbnRleHQpOworICAgIH0pOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjYWxsYmFjaykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmgKaW5kZXggZTZiODhiMzhjYmMzZTUxYWNkMjJiMmUwZTA2MmI1YjUzOTVlZDIyNC4u
NWI3NDYyMGJkYmM5MjBmYmVmODJhOGVlMmJmZmEwMzNhYTA4YzU2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAg
LTQwLDkgKzQwLDEyIEBAIFdLX0VYUE9SVCBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgV0tXZWJzaXRl
RGF0YVN0b3JlQ3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpCiBXS19FWFBPUlQgYm9vbCBX
S1dlYnNpdGVEYXRhU3RvcmVHZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwotV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGRvdWJsZSBzZWNvbmRzKTsKLVdLX0VY
UE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBi
b29sIHZhbHVlKTsKLVdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7Cit0eXBlZGVmIHZvaWQgKCpXS1dlYnNp
dGVEYXRhU3RvcmVTdGF0aXN0aWNzTGFzdFNlZW5GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250
ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0
U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlz
dGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwordHlwZWRlZiB2b2lkICgq
V0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24pKHZv
aWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSwgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwor
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0LCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0
aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwog
dHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2VGdW5jdGlvbikoYm9vbCBpc1ByZXZhbGVudFJlc291cmNlLCB2b2lkKiBmdW5jdGlvbkNv
bnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJp
bmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2VGdW5jdGlvbiBjYWxsYmFjayk7CiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGdW5jdGlv
biBjYWxsYmFjayk7CkBAIC01MCw4ICs1MywxMCBAQCB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyRnVuY3Rpb24pKAog
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBzdWJGcmFtZUhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
ckZ1bmN0aW9uIGNhbGxiYWNrKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG9GdW5jdGlvbikoYm9vbCBpc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3RS
ZWRpcmVjdGVkRnJvbSwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbywgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
b0Z1bmN0aW9uIGNhbGxiYWNrKTsKLVdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7Ci1XS19FWFBPUlQgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhv
c3QpOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbkZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBi
b29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwordHlwZWRlZiB2
b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRl
cmFjdGlvbkZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFj
dGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSGFkTm9uUmVj
ZW50VXNlckludGVyYWN0aW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwogdHlwZWRlZiB2
b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
RnVuY3Rpb24pKGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uLCB2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNhbGxiYWNrKTsKIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggMGNiYTdjMzNiOTgxZGQ3ZTkzODMxNzBjOWY1NGI5YjM0
ZjNjOTBmMi4uYjA5YWU0YTI2YzkyYzljYWU3Yjc5OGUxNjRjYTdmNzM1MmEzZDU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCkBAIC00MDMsNDIgKzQwMyw1NyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkm
IGZyYQogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
bG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYgdXJsKQordm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNF
bXB0eSgpKQorICAgIGlmICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAg
IHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVy
bCldIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFy
eURvbWFpbih1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAg
IG1fbWVtb3J5U3RvcmUtPmxvZ1VzZXJJbnRlcmFjdGlvbihwcmltYXJ5RG9tYWluKTsKKyAgICAg
ICAgcG9zdFRhc2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0geworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7
CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dO
b25SZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiB1cmwpCit2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nTm9uUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFVS
TCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmICh1cmwuaXNCbGFua1VS
TCgpIHx8IHVybC5pc0VtcHR5KCkpCisgICAgaWYgKHVybC5pc0JsYW5rVVJMKCkgfHwgdXJsLmlz
RW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47
Ci0gICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1h
cnlEb21haW4odXJsKV0geworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9t
YWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9y
eVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+bG9nTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKHByaW1hcnlEb21haW4pOworICAgICAgICBwb3N0VGFza1JlcGx5KFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYg
dXJsKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVy
YWN0aW9uKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlm
ICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpCisgICAgaWYgKHVybC5pc0JsYW5r
VVJMKCkgfHwgdXJsLmlzRW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21h
aW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odXJsKV0geworICAgIHBvc3RUYXNrKFt0aGlzLCBw
cmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
IChtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+Y2xlYXJVc2VySW50
ZXJhY3Rpb24ocHJpbWFyeURvbWFpbik7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC00NTksNDIg
KzQ3NCw1NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzSGFkVXNl
ckludGVyYWN0aW9uKGNvbnN0IFVSTCYgdXJsLCBDb21wbAogICAgIH0pOwogfQogCi12b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4oY29uc3QgVVJMJiB1cmws
IFNlY29uZHMgc2Vjb25kcykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpz
ZXRMYXN0U2Vlbihjb25zdCBVUkwmIHVybCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIGlmICh1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkp
CisgICAgaWYgKHVybC5pc0JsYW5rVVJMKCkgfHwgdXJsLmlzRW1wdHkoKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgcG9zdFRhc2so
W3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odXJsKSwgc2Vjb25k
c10geworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0
ZWRQcmltYXJ5RG9tYWluKHVybCksIHNlY29uZHMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9yeVN0
b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+c2V0TGFzdFNlZW4ocHJpbWFyeURvbWFp
biwgc2Vjb25kcyk7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogICAgIAotdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYgdXJsKQor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNl
KGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmICh1cmwu
aXNCbGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpCisgICAgaWYgKHVybC5pc0JsYW5rVVJMKCkg
fHwgdXJsLmlzRW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAg
ICByZXR1cm47CisgICAgfQogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBp
c29sYXRlZFByaW1hcnlEb21haW4odXJsKV0geworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5
RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21l
bW9yeVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+c2V0UHJldmFsZW50UmVzb3Vy
Y2UocHJpbWFyeURvbWFpbik7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYg
dXJsKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKQorICAgIGlmICh1cmwuaXNC
bGFua1VSTCgpIHx8IHVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9t
YWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCldIHsKKyAgICB9CisKKyAgICBwb3N0VGFz
ayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPnNl
dFZlcnlQcmV2YWxlbnRSZXNvdXJjZShwcmltYXJ5RG9tYWluKTsKKyAgICAgICAgcG9zdFRhc2tS
ZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9
CiAKQEAgLTU1NiwxNiArNTg2LDIxIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjppc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oY29uc3QgVVJMJiBob3N0CiAgICAgfSk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByZXZhbGVu
dFJlc291cmNlKGNvbnN0IFVSTCYgdXJsKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCi0gICAgaWYgKHVybC5pc0JsYW5rVVJMKCkgfHwgdXJsLmlzRW1wdHko
KSkKKyAgICBpZiAodXJsLmlzQmxhbmtVUkwoKSB8fCB1cmwuaXNFbXB0eSgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBwb3N0
VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpXSB7
CisgICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21h
aW4odXJsKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21l
bW9yeVN0b3JlLT5jbGVhclByZXZhbGVudFJlc291cmNlKHByaW1hcnlEb21haW4pOworICAgICAg
ICBwb3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCBiNTE4NzQ2MGZiZjYwYTFjMGFiNTc4
NWZkM2Y1NzZmMDNlY2JlMzEzLi41ZGM4ZDlkMmY2NzE0OWZmZTk1YjcxNjMzMzM2ZDg3NThlYzUz
ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtODcsMTggKzg3LDE4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmln
YXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcGFnZVVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRp
cmVjdFVSTCk7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6VVJM
Jik7Ci0gICAgdm9pZCBsb2dOb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6
VVJMJik7Ci0gICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpVUkwm
KTsKKyAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbG9nTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKGNvbnN0IFdlYkNvcmU6OlVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwot
ICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgV2ViQ29yZTo6VVJMJiwgU2Vjb25kcyk7Ci0gICAg
dm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpVUkwmKTsKLSAgICB2b2lk
IHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpVUkwmKTsKKyAgICB2b2lk
IHNldExhc3RTZWVuKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBXZWJD
b3JlOjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VmVy
eVByZXZhbGVudFJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBpc1ByZXZhbGVudFJlc291cmNlKGNvbnN0IFdlYkNvcmU6
OlVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoY29u
c3QgV2ViQ29yZTo6VVJMJiBzdWJGcmFtZSwgY29uc3QgV2ViQ29yZTo6VVJMJiB0b3BGcmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBpc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oY29uc3QgV2ViQ29yZTo6VVJMJiBob3N0UmVkaXJlY3RlZEZyb20sIGNv
bnN0IFdlYkNvcmU6OlVSTCYgaG9zdFJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7Ci0gICAgdm9pZCBjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFdlYkNv
cmU6OlVSTCYpOworICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBXZWJDb3Jl
OjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRm
YXRoZXJlZChjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sKTsKICAgICB2b2lkIGlzR3JhbmRmYXRo
ZXJlZChjb25zdCBXZWJDb3JlOjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihjb25zdCBXZWJDb3Jl
OjpVUkwmIHN1YmZyYW1lLCBjb25zdCBXZWJDb3JlOjpVUkwmIHRvcEZyYW1lKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNTBlMjUxYzkyOGY1
MjA4OTZjODRlNDc1NzgwZTViYTE3NGE5ODNlLi42MGYwNDZmNGE5ZmFjZDllYzgwMDhiY2VkN2E3
YTA4MDA2YmNkZjIwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTgtMDctMTYgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbXBsZXRpb24gaGFuZGxlcnMgdG8gVGVz
dFJ1bm5lciBmdW5jdGlvbnMgc2V0U3RhdGlzdGljc0xhc3RTZWVuKCksIHNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgpLCBzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCks
IHNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oKSwgYW5kIHNldFN0YXRpc3RpY3NI
YXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NzEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
MjI1Mjc1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRv
UGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0xhc3RTZWVu
KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRMYXN0U2Vl
bkNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxE
aWRTZXRQcmV2YWxlbnRSZXNvdXJjZUNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6c2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0VmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJh
Y2spOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hh
ZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0
YXRpc3RpY3NDYWxsRGlkU2V0SGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2spOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0hh
c0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRT
ZXRMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRTZXRQcmV2YWxl
bnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRTZXRWZXJ5UHJl
dmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkU2V0SGFz
SGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFNl
dEhhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5oOgorCiAyMDE4LTA3LTE2ICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCAtLXRhcmdldC1wYXRoIG9wdGlvbiB0
byBkdW1wLWNsYXNzLWxheW91dApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNmM0Yjk4
OTBjNWE3YjZiYWYzZDc5MTMyZDhiZTVlYTgzNjlhZDdjNC4uYzA5Y2JhZTBjZTMwNjRiOGZkNjg5
MDZlNDY5ZDUxYzIyMmYxZTE2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0yNzIs
MTUgKzI3MiwxNSBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBpbnN0YWxsU3Rh
dGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKICAg
ICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sob2JqZWN0
IGNhbGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2Fs
bGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihE
T01TdHJpbmcgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKTsKLSAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwot
ICAgIHZvaWQgc2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShET01TdHJpbmcgaG9z
dE5hbWUsIGJvb2xlYW4gdmFsdWUpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc0xhc3RTZWVuKERP
TVN0cmluZyBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMsIG9iamVjdCBjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoRE9NU3RyaW5nIGhv
c3ROYW1lLCBib29sZWFuIHZhbHVlLCBvYmplY3QgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZv
aWQgc2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShET01TdHJpbmcgaG9zdE5hbWUs
IGJvb2xlYW4gdmFsdWUsIG9iamVjdCBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgYm9vbGVhbiBp
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShET01TdHJpbmcgaG9zdE5hbWUpOwogICAgIGJv
b2xlYW4gaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKERPTVN0cmluZyBob3N0TmFt
ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKERP
TVN0cmluZyBzdWJGcmFtZUhvc3QsIERPTVN0cmluZyB0b3BGcmFtZUhvc3QpOwogICAgIGJvb2xl
YW4gaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhET01TdHJpbmcgaG9zdFJl
ZGlyZWN0ZWRGcm9tLCBET01TdHJpbmcgaG9zdFJlZGlyZWN0ZWRUbyk7Ci0gICAgdm9pZCBzZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVh
biB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSwgb2JqZWN0
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNl
bnRVc2VySW50ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lLCBvYmplY3QgY29tcGxldGlvbkhh
bmRsZXIpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKERP
TVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChE
T01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAgIGJvb2xlYW4gaXNTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRl
eCA4NGY0NDA5YWE3OGYzZDc3NGMwZjMwMTQxNDQ5OTAxOGNiMjEzZjk1Li41OWYxYTZiNGY4YWM4
Y2M2OTRhZjc0MTZjMDBhOTJkY2QzYjdjZjYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzE1LDYg
KzMxNSwzMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJD
YWxsRGlkU2V0TGFzdFNlZW4iKSkgeworICAgICAgICBtX3Rlc3RSdW5uZXItPnN0YXRpc3RpY3ND
YWxsRGlkU2V0TGFzdFNlZW5DYWxsYmFjaygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsRGlk
U2V0UHJldmFsZW50UmVzb3VyY2UiKSkgeworICAgICAgICBtX3Rlc3RSdW5uZXItPnN0YXRpc3Rp
Y3NDYWxsRGlkU2V0UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJDYWxsRGlkU2V0VmVyeVByZXZhbGVudFJlc291cmNlIikpIHsKKyAgICAgICAgbV90ZXN0
UnVubmVyLT5zdGF0aXN0aWNzQ2FsbERpZFNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZUNhbGxiYWNr
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRTZXRIYXNIYWRVc2VySW50ZXJhY3Rpb24i
KSkgeworICAgICAgICBtX3Rlc3RSdW5uZXItPnN0YXRpc3RpY3NDYWxsRGlkU2V0SGFzSGFkVXNl
ckludGVyYWN0aW9uQ2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRT
ZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24iKSkgeworICAgICAgICBtX3Rlc3RSdW5u
ZXItPnN0YXRpc3RpY3NDYWxsRGlkU2V0SGFzSGFkVXNlckludGVyYWN0aW9uQ2FsbGJhY2soKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0Vu
dHJpZXMiKSkgewogICAgICAgICBBU1NFUlQobWVzc2FnZUJvZHkpOwogICAgICAgICBBU1NFUlQo
V0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQXJyYXlHZXRUeXBlSUQoKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCBiM2FmNzJhNDliOWI0OGU2ZmMwOWZjNGMwMTZiNDdkZDQ1OWIwNDEzLi4zNzRlYzc5ZjRm
MzY3MTIzNzZmMzhlOWEyZjRkNjdhYTExYmJiMGRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTczNiw2ICs3MzYs
MTAgQEAgZW51bSB7CiAgICAgV2lsbEVuZFN3aXBlQ2FsbGJhY2tJRCwKICAgICBEaWRFbmRTd2lw
ZUNhbGxiYWNrSUQsCiAgICAgRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrSUQsCisgICAg
U2V0U3RhdGlzdGljc0xhc3RTZWVuQ2FsbGJhY2tJRCwKKyAgICBTZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VDYWxsYmFja0lELAorICAgIFNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2VDYWxsYmFja0lELAorICAgIFNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25D
YWxsYmFja0lELAogICAgIFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrSUQs
CiAgICAgU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrSUQsCiAgICAgU3RhdGlz
dGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsCkBAIC0xMzI3LDggKzEzMzEsMTAgQEAgdm9p
ZCBUZXN0UnVubmVyOjpjYWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKCkKICAgICBj
YWxsVGVzdFJ1bm5lckNhbGxiYWNrKERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFja0lEKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4oSlNTdHJpbmdSZWYg
aG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKQordm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNz
TGFzdFNlZW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzLCBKU1ZhbHVlUmVm
IGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKFNldFN0
YXRpc3RpY3NMYXN0U2VlbkNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsKKwogICAgIFZl
Y3RvcjxXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4+IGtleXM7CiAgICAgVmVjdG9yPFdLUmV0YWlu
UHRyPFdLVHlwZVJlZj4+IHZhbHVlczsKICAgICAKQEAgLTEzNTEsOSArMTM1NywxNyBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NMYXN0U2VlbihKU1N0cmluZ1JlZiBob3N0TmFtZSwg
ZG91YmxlIHNlY29uZHMpCiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdl
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KLSAgICAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlKQorCit2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0TGFzdFNlZW5D
YWxsYmFjaygpCit7CisgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTZXRTdGF0aXN0aWNzTGFz
dFNlZW5DYWxsYmFja0lEKTsKK30KKworCit2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwgSlNWYWx1
ZVJlZiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhT
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VDYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxl
cik7CisKICAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOwogICAgIFZl
Y3RvcjxXS1JldGFpblB0cjxXS1R5cGVSZWY+PiB2YWx1ZXM7CiAKQEAgLTEzNzksOCArMTM5Mywx
NSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0
cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZQogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3Vz
TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1l
LmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6c2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFt
ZSwgYm9vbCB2YWx1ZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRQcmV2
YWxlbnRSZXNvdXJjZUNhbGxiYWNrKCkKK3sKKyAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUNhbGxiYWNrSUQpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9z
dE5hbWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAg
Y2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsKKwogICAgIFZlY3RvcjxXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4+IGtleXM7CiAgICAgVmVjdG9yPFdLUmV0YWluUHRyPFdLVHlwZVJlZj4+
IHZhbHVlczsKICAgICAKQEAgLTE0MDYsNiArMTQyNywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJv
b2wgdgogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQo
KSwgbnVsbHB0cik7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygpCit7CisgICAgY2FsbFRlc3RSdW5uZXJDYWxs
YmFjayhTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2tJRCk7Cit9CisK
IGJvb2wgVGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdS
ZWYgaG9zdE5hbWUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1l
KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSIpKTsKQEAgLTE0NzYsOCArMTUwMiwxMCBAQCBib29sIFRlc3RSdW5uZXI6
OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oSlNTdHJpbmdSZWYgaG9zdFJl
ZGlyZWN0ZQogICAgIHJldHVybiBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xl
YW5SZWY+KHJldHVybkRhdGEpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQor
dm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3Ry
aW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVy
KQogeworICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKFNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb25DYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxlcik7CisKICAgICBWZWN0b3I8
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOwogICAgIFZlY3RvcjxXS1JldGFpblB0cjxX
S1R5cGVSZWY+PiB2YWx1ZXM7CiAgICAgCkBAIC0xNTAzLDEzICsxNTMxLDIwIEBAIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBo
b3N0TmFtZSwgYm9vbCB2CiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0
aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQor
dm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0
aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKQog
eworICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKFNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb25DYWxsYmFja0lELCBjb21wbGV0aW9uSGFuZGxlcik7CisKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24iKSk7
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhvc3ROYW1lKSk7CiAgICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbkNhbGxiYWNr
KCkKK3sKKyAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKFNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb25DYWxsYmFja0lEKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUpCiB7CiAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24iKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CmluZGV4IDI2MzliNGVlZDQ3Yzk3ZWY4ZDg0NzlhZjU5NDBhNDM2MDJkYTYzOWQuLjRkYWQwZjBk
ZjA2ODg1ZDJkZjY4YzhkZDg4NDIzYWVmYTU5M2M0YmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zODIsMTUgKzM4Miwx
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzU2V0U2hvdWxkUGFydGl0aW9uQ29va2ll
c0Zvckhvc3QoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY2Fs
bGJhY2spOwogICAgIHZvaWQgc3RhdGlzdGljc0NhbGxEaWRTZXRQYXJ0aXRpb25PckJsb2NrQ29v
a2llc0Zvckhvc3RDYWxsYmFjaygpOwogICAgIHZvaWQgc3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRy
eSgpOwotICAgIHZvaWQgc2V0U3RhdGlzdGljc0xhc3RTZWVuKEpTU3RyaW5nUmVmIGhvc3ROYW1l
LCBkb3VibGUgc2Vjb25kcyk7Ci0gICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwotICAgIHZvaWQgc2V0U3RhdGlz
dGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1
ZSk7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzTGFzdFNlZW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUs
IGRvdWJsZSBzZWNvbmRzLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lk
IHN0YXRpc3RpY3NDYWxsRGlkU2V0TGFzdFNlZW5DYWxsYmFjaygpOworICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVl
LCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NDYWxs
RGlkU2V0UHJldmFsZW50UmVzb3VyY2VDYWxsYmFjaygpOworICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwg
SlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERp
ZFNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZUNhbGxiYWNrKCk7CiAgICAgYm9vbCBpc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgYm9vbCBpc1N0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoSlNTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAg
IGJvb2wgaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihKU1N0cmluZ1JlZiBz
dWJGcmFtZUhvc3QsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiAgICAgYm9vbCBpc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKEpTU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVk
RnJvbSwgSlNTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbyk7Ci0gICAgdm9pZCBzZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVl
KTsKLSAgICB2b2lkIHNldFN0YXRpc3RpY3NIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24o
SlNTdHJpbmdSZWYgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSwgSlNWYWx1ZVJlZiBj
b21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50
VXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1ZhbHVlUmVmIGNvbXBsZXRp
b25IYW5kbGVyKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NDYWxsRGlkU2V0SGFzSGFkVXNlckludGVy
YWN0aW9uQ2FsbGJhY2soKTsKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRm
YXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0
YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjIxYjZhZjhmMGZjMWQyOGVkYmFj
OWE1YjJhYTUwZTNkMDM4YTAyOC4uMGM0NDE4ZmRkNzUxYWM0OWU1NGQ4M2ZkODg4OGMyZGFkYWRk
Y2MzYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI2
MTcsMjQgKzI2MTcsNiBAQCB1aW50NjRfdCBUZXN0Q29udHJvbGxlcjo6ZG9tQ2FjaGVTaXplKFdL
U3RyaW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKLXZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0LCBk
b3VibGUgc2Vjb25kcykKLXsKLSAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJz
aXRlRGF0YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzTGFzdFNlZW4oZGF0YVN0b3JlLCBob3N0LCBzZWNvbmRzKTsKLX0KLQotdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3RyaW5n
UmVmIGhvc3QsIGJvb2wgdmFsdWUpCi17Ci0gICAgYXV0byogZGF0YVN0b3JlID0gV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKGRhdGFTdG9yZSwgaG9zdCwgdmFs
dWUpOwotfQotCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpCi17Ci0gICAgYXV0byogZGF0
YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7
Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShkYXRhU3RvcmUsIGhvc3QsIHZhbHVlKTsKLX0KLQogc3RydWN0IFJlc291cmNlU3RhdGlzdGlj
c0NhbGxiYWNrQ29udGV4dCB7CiAgICAgZXhwbGljaXQgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJh
Y2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgICAgICA6IHRlc3RDb250
cm9sbGVyKGNvbnRyb2xsZXIpCkBAIC0yNjYwLDYgKzI2NDIsMzMgQEAgc3RhdGljIHZvaWQgcmVz
b3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKGJvb2wgcmVzdWx0LCB2b2lkKiB1
c2VyRGF0YSkKICAgICBjb250ZXh0LT5kb25lID0gdHJ1ZTsKICAgICBjb250ZXh0LT50ZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CisgICAgCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzTGFzdFNlZW4oV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMpCit7Cisg
ICAgYXV0byogZGF0YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9y
bUNvbnRleHQoKSk7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRl
eHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2Vlbihk
YXRhU3RvcmUsIGhvc3QsIHNlY29uZHMsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lk
UmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsK
KyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRMYXN0U2VlbigpOworfQorCit2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYg
aG9zdCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRX
ZWJzaXRlRGF0YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBSZXNvdXJjZVN0YXRpc3Rp
Y3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKGRhdGFTdG9yZSwgaG9zdCwgdmFsdWUsICZj
b250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVu
dGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5k
aWRTZXRQcmV2YWxlbnRSZXNvdXJjZSgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFs
dWUpCit7CisgICAgYXV0byogZGF0YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9y
ZShwbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250
ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoZGF0YVN0b3JlLCBob3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJl
c291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgcnVuVW50aWwoY29udGV4
dC5kb25lLCBub1RpbWVvdXQpOworICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldFZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSgpOworfQogCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShXS1N0cmluZ1JlZiBob3N0KQogewpAQCAtMjcwMCwxMyArMjcw
OSwxOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKFdLU3RyaW5nUmVmIGhvc3RSZWRpcgogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0LCBib29sIHZh
bHVlKQogewogICAgIGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3Rv
cmUocGxhdGZvcm1Db250ZXh0KCkpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZGF0YVN0b3JlLCBob3N0LCB2YWx1ZSk7CisgICAgUmVz
b3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZGF0YVN0b3Jl
LCBob3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxs
YmFjayk7CisgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOworICAgIG1fY3Vy
cmVudEludm9jYXRpb24tPmRpZFNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbigpOwogfQogCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0
aW9uKFdLU3RyaW5nUmVmIGhvc3QpCiB7CiAgICAgYXV0byogZGF0YVN0b3JlID0gV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbihkYXRhU3Rv
cmUsIGhvc3QpOworICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0
KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVj
ZW50VXNlckludGVyYWN0aW9uKGRhdGFTdG9yZSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3Rh
dGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOworICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldEhhc0hhZE5vblJlY2Vu
dFVzZXJJbnRlcmFjdGlvbigpOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggYTI3YjY3ZWI3NzA5YzVkYmE2YmY1MzQ1
YmJkZDE1ZDUwOTY0NGYxOC4uNjhiYjA3ZTQxNDk2N2IzNzdkZDcwZjdjNjYzNzNkYTk0MzlkYzY1
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE1Mjcs
NiArMTUyNywzNiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRTZXRQYXJ0aXRpb25PckJsb2Nr
Q29va2llc0Zvckhvc3QoKQogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCBtZXNzYWdl
TmFtZS5nZXQoKSwgMCk7CiB9CiAKK3ZvaWQgVGVzdEludm9jYXRpb246OmRpZFNldExhc3RTZWVu
KCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkU2V0TGFzdFNlZW4iKSk7Cisg
ICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCAwKTsKK30K
Kwordm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0UHJldmFsZW50UmVzb3VyY2UoKQoreworICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxEaWRTZXRQcmV2YWxlbnRSZXNvdXJjZSIpKTsKKyAg
ICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOworfQor
Cit2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoKQorewor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxEaWRTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2Ui
KSk7CisgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCAw
KTsKK30KKwordm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkU2V0SGFzSGFkVXNlckludGVyYWN0aW9u
KCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkU2V0SGFzSGFkVXNlckludGVy
YWN0aW9uIikpOworICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgMCk7Cit9CisKK3ZvaWQgVGVzdEludm9jYXRpb246OmRpZFNldEhhc0hhZE5vblJlY2Vu
dFVzZXJJbnRlcmFjdGlvbigpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2FsbERpZFNl
dEhhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbiIpKTsKKyAgICBXS1BhZ2VQb3N0TWVzc2Fn
ZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3
KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOworfQorCiB2b2lkIFRlc3RJbnZvY2F0
aW9uOjpkaWRSZWNlaXZlQWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoVmVjdG9yPFN0cmluZz4mIGRv
bWFpbnMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2FsbERpZFJlY2VpdmVBbGxTdG9y
YWdlQWNjZXNzRW50cmllcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
aAppbmRleCAzNTZiYWM1NjA0NDZhYjMzZGM3NjExZWM4MmVkNDY1NWM0ZThhYTM1Li4wMDVmMzdk
NTk5OWU0NDc1OTc5NjFmNThkZjdhYzgzYmUzMWVkMTBmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5oCkBAIC03NCw2ICs3NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CiAgICAgdm9pZCBk
aWRSZXNldFN0YXRpc3RpY3NUb0NvbnNpc3RlbnRTdGF0ZSgpOwogICAgIHZvaWQgZGlkU2V0UGFy
dGl0aW9uT3JCbG9ja0Nvb2tpZXNGb3JIb3N0KCk7CisgICAgdm9pZCBkaWRTZXRMYXN0U2Vlbigp
OworICAgIHZvaWQgZGlkU2V0UHJldmFsZW50UmVzb3VyY2UoKTsKKyAgICB2b2lkIGRpZFNldFZl
cnlQcmV2YWxlbnRSZXNvdXJjZSgpOworICAgIHZvaWQgZGlkU2V0SGFzSGFkVXNlckludGVyYWN0
aW9uKCk7CisgICAgdm9pZCBkaWRTZXRIYXNIYWROb25SZWNlbnRVc2VySW50ZXJhY3Rpb24oKTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhWZWN0b3I8U3RyaW5n
PiYgZG9tYWlucyk7CiAKICAgICB2b2lkIGRpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDg4YTViYjRkMDdkZjUzOTU1NzdiMGU2OWVlYTc2MDViNGUzY2U2MWQuLjQyZDcy
YWRlODIyNWU4N2ZhMTVjNjg5ZmNhZDdlZjJmNzdjNzc1OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBA
QAorMjAxOC0wNy0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgY29tcGxldGlvbiBoYW5kbGVycyB0byBUZXN0UnVubmVyIGZ1bmN0aW9ucyBzZXRT
dGF0aXN0aWNzTGFzdFNlZW4oKSwgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCksIHNl
dFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoKSwgc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbigpLCBhbmQgc2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRl
cmFjdGlvbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODc3MTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyMjUyNzU3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIHRvIHVw
ZGF0ZSBhbGwgdGVzdCBjYXNlcyB0aGF0IG1ha2UgdXNlIG9mCisgICAgICAgIFRlc3RSdW5uZXIg
ZnVuY3Rpb25zOgorICAgICAgICAtIHNldFN0YXRpc3RpY3NMYXN0U2VlbigpLAorICAgICAgICAt
IHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgpLAorICAgICAgICAtIHNldFN0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoKSwKKyAgICAgICAgLSBzZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKCksIGFuZAorICAgICAgICAtIHNldFN0YXRpc3RpY3NIYXNIYWROb25S
ZWNlbnRVc2VySW50ZXJhY3Rpb24oKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLXBhcnRpdGlvbmluZy10by1yZWRp
cmVjdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9u
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1h
bmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3Rv
cmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1h
LXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0
aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bh
cnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1l
b3V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9u
aW5nLXRpbWVvdXQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtl
eWRvd24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0Lmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcnVuZS1zdGF0aXN0aWNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3JlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZW1vdmUtcGFydGl0aW9uaW5nLWlu
LXJlZGlyZWN0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
ZGlyZWN0cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1
ZXN0cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtd2l0aC1hbmQtd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJp
b2Qtb2YtdGltZS5odG1sOgorCiAyMDE4LTA3LTE2ICBBYXJvbiBDaHUgIDxhYXJvbl9jaHVAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYOiBBdWRpdCBUYWIgc2hvdWxkIGhhdmUgYW4gQXVkaXQgTWFu
YWdlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1s
CmluZGV4IDFmNjg5ZWVkMDQ0NDVmZDY1NWVkY2UxYTY2NDU3ZTdkOTVhYTNiNmEuLmJiYjMxNDVm
YmIxYTA5MDk4YWQ1MDQ5Nzc1MDk2MDU3MmQwZDM2MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJl
Y3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0Lmh0bWwKQEAgLTU4LDExICs1OCwxMiBAQAogICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKICAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0
IGFzIHByZXZhbGVudCBhbmQgd2l0aCBubyB1c2VyIGludGVyYWN0aW9uIHRvIHB1dCBpdCBpbiB0
aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNSI7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9hZGQtcGFydGl0aW9uaW5nLXRvLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLXBhcnRpdGlvbmluZy10by1yZWRpcmVj
dC5odG1sCmluZGV4IGU2ZjQ4ZGZkYmI1YjEwZDNhMTlkNGNiYTdlYmRiNTM4YjNhNWU2ZWIuLjAx
ZjAyMGI0YjkzYWVlMDUwYWI1MTk0OTg1NjMxOGQ3YTVmNmQ1MDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtcGFydGl0aW9uaW5n
LXRvLXJlZGlyZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2FkZC1wYXJ0aXRpb25pbmctdG8tcmVkaXJlY3QuaHRtbApAQCAtNTgsMTIg
KzU4LDE0IEBACiAgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgogICAgICAgICAgICAgICAgIC8v
IFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IGFuZCB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRl
cmFjdGlvbiB0byBwdXQgaXQgaW4gdGhlIHBhcnRpdGlvbmluZyBjYXRlZ29yeS4KICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIsIHRydWUpOwotICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQotICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9u
UmVjZW50VXNlckludGVyYWN0aW9uKCJodHRwOi8vbG9jYWxob3N0Iik7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5nKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRlcmFjdGlvbigiaHR0cDovL2xvY2FsaG9z
dCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKaW5kZXggOWE1ZDI3NTdlY2NiNDc2NWVl
MDAyODlmOWEzZTU5MTdhYjViZGFiNy4uOTQ2MDdlZjAzYTdlMDQ3ZTJkMjM5ZDMyNTVlZTI3M2M2
OWY2MGU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mu
aHRtbApAQCAtMjcsMTcgKzI3LDE4IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
LSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwotICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
Mik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKIAotICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29t
cGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJh
bWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbAppbmRleCAwMmQ2ZGFkODg3NDk2MGQzMjVh
ZGI2YjIxMzk2MzE4Njk0ZWIxZmJjLi45Y2UxM2RmNjc4MmIyNzg0NmVhOGUxN2RlOTc4NzVlM2U2
MzFhM2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5k
ZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbApAQCAtMjcsMTggKzI3LDE5IEBA
CiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CiAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4zKTsKIAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1s
CmluZGV4IDRiZjMwYTg0ZWYyMzJkZThiNTY0YzUwM2ZkMDIxMGVkYWY1MzQzZDcuLjIzN2NhZjFk
NWI0M2Q5YTFkM2Q1NWQ5OGViYTFjMDQzMGRkYTlhZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMuaHRtbApAQCAtMjYsMTYgKzI2LDE3IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CiAKLSAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVz
dCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKIAotICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0
VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRp
cmVjdHMtdG8uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1
ZS1yZWRpcmVjdHMtdG8uaHRtbAppbmRleCA2NTIzZTI3YWY3Y2MyMDJlZDUwMjMxOTYxZjJiMDZh
ZTAyMDkyZDU2Li44NWRkYWU3ZGE5OTQ0OTRkYWRhZWU5YzcyN2U1YTQ2ZTk1N2JlZjliIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by5odG1sCkBAIC0yNywxNiArMjcsMTcgQEAKICAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKICAKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKIAotICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRtbAppbmRleCA4Y2U1NDYxYjVjNjU4
NWFmM2FjNDdhYzEwZjhiODAyZmExZjc1ZGZkLi45ZDYzNmQ3ZWQ1ZWYyY2VlOTExOTk2NzM3OTNk
MDkwOWJjMWY2NzBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRt
bApAQCAtMzEsMjMgKzMxLDI0IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luNCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwotICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKIAotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsK
ICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVz
dCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMuaHRtbAppbmRleCBkMzA3ZmY0ZDJlYzA5YzhmYjM3OGE3MDUxZWE3OGEzYmVlODBhYjIwLi5j
ZjljMGU3YzIwNzVhZmQ3Nzg3YjA1YTk1NDBhOTVkYTQ2ZGRkYjAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
Lmh0bWwKQEAgLTMxLDE4ICszMSwxOSBAQAogICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0
KCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
NCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKIAot
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sCmluZGV4IGJjYWNlODhkNWI5ZmMzMGI3
NjJkZTk2MWIwNjczNjkzNjUxMGY4NTguLmMzYmNkNmQzM2RmNjUwZDY1ODg5OGZjNjZhZDhhNDNh
ZmMyYjFlOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtY29sbHVzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC1jb2xsdXNpb24uaHRtbApAQCAtMzMsNDIgKzMzLDQ2IEBACiAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJl
c291cmNlT3JpZ2luMiwgc3VicmVzb3VyY2VPcmlnaW4zKTsKICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmln
aW4zLCBzdWJyZXNvdXJjZU9yaWdpbjQpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUpOwotICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKLSAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGlu
ZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9y
aWdpbjIpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xh
c3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkK
LSAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQotICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKLSAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKLSAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkNvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJy
ZXNvdXJjZU9yaWdpbjQpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3Qg
NCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpKQotICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9z
dCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJl
ZGlyZWN0LiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQotICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEp
KQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b2xsdWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0
ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBn
b3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpwqB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IHJ1blRl
c3Q7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRp
cmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29uY2xp
Y2suaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9CiA8L3Njcmlw
dD4KLTxpZnJhbWUgb25sb2FkPSJydW5UZXN0KCkiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRv
PWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQuaHRtbAppbmRleCA0
NmI4ODliMGUxMzc5YTE3ZmYxNmY5ZDhlMzkzOWFmN2Y1ZDJjZjNhLi42OTgwYWI0NzVhYWU0OGUx
ZTVmNDE1MDAwMzI1NDI1ZjAxNjA5ZWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50Lmh0bWwKQEAgLTM0LDIx
ICszNCwyMyBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSwg
dHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7
CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMuaHRtbAppbmRleCAyNWY3ODk4YjM4NzA4MTJmZjA3MjE3YmM3ODFmNzE5Yjg2YjcxZTdi
Li5iMzNkNTI0NjE3ZjdkN2QwZmI3NzAxNjEwYjdmODEwNTU4NjEzMDgzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy5odG1sCkBAIC0zMSwxOCArMzEsMTkgQEAKICAgICBmdW5jdGlvbiBydW5UZXN0UnVu
bmVyVGVzdCgpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKICAKLSAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjIpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKIAotICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8uaHRtbAppbmRleCBmMDRmZGM0NDUxNjgwMGY3NDY2NzQ0MjhlOTk2NDU5NDlmNWFlMWQ0
Li5iOGIxMmE1NTU0NjYyYzk1YmFiMTNiMjRmOGFkZjQzNTU0NDVmOGE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8u
aHRtbApAQCAtMzEsMTggKzMxLDE5IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
NCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKIAot
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwKaW5kZXggYWIyYTM3MjE5MDAyODRkNmQ2ZTQ4
Y2U3NDQyMWExMTliMzM4ODMzMC4uNDU5YmIxNzUzZTE1NTdkYTE0ZDA4MTk1OWY3MGZkYzg5ZDdl
MDE0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
Y29sbHVzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLmh0bWwKQEAgLTMyLDQwICszMiw0MiBAQAogICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjIs
IHRvcEZyYW1lT3JpZ2luMyk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZy
YW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJhbWVPcmlnaW40KTsK
IAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRvcEZyYW1lT3JpZ2luMSkpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9z
dCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xKSkK
LSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQg
YXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikpCi0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1
ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRv
cEZyYW1lT3JpZ2luMykpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAz
IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKLSAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCi0gICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2UodG9wRnJhbWVPcmlnaW40KSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGlu
ZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0g
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZy
YW1lT3JpZ2luNSkpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgbG9jYWxob3N0
IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwg
cmVkaXJlY3QuIik7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKHRvcEZyYW1lT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29s
bHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVk
aW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9y
aWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3QuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRp
bmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OwogCi0gICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
KTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKIAot
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1o
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRp
bnVlIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVP
cmlnaW41ICsgInJlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9y
ZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9u
Lmh0bWwjY29udGludWUiOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZh
bGVudC5odG1sCmluZGV4IGYyZWIzYTNkNWVlYWMyMzU0ZTYxMGIxNTY3ZjRlMGJkN2FiMjJhN2Iu
LjljYjg4NzBmNWZmMzUyMzg2MGEwZTdlZTY5Zjg0MGQ0NzBjYjQ2YTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC5o
dG1sCkBAIC0zNCwyMSArMzQsMjMgQEAKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BG
cmFtZU9yaWdpbjEsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjEpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxl
dGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKIAotICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Up
OwotICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgIHJ1
blRlc3QoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
Lmh0bWwKaW5kZXggYzNlOTIxMzc4ZTBkNzQwYTk3YzYxNTllY2E0Y2JjOGE4NTdlZDM5Ni4uOTU5
NzdmOTQyNThhNzVhZmJmZjFhZDE4YzU3MTFmOGExODcwZTExMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbApAQCAt
NTEsMTAgKzUxLDExIEBACiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSk7Ci0gICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1w
cmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy5odG1sCmluZGV4IDkyMmUzY2NhZWEx
NzdmNzVjZjUzYzMyZTMyNzc2NjQyNzg4MWFkNGMuLjA0MGNhNmExNTlhMjQwMWM2MjM3MDIwYjFj
MzgyZGM3NTA1MTc5MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MuaHRtbApAQCAtNDAsMjggKzQwLDI5IEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAgCi0gICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0YXJ0ZWQgb3V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBzdGFydGVkIG91dCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgdmFyIGkgPSAwOwotICAgICAgICB3
aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbnNbaV0pOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tp
XSk7CisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IG51bWJl
ck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7
CiAKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7Ci0gICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOwotICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luc1tpKzFdKTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJd
KTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7Ci0gICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOwotICAgICAgICAgICAgaSAr
PSAzOwotICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
c1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2kr
Ml0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7Cisg
ICAgICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgfQogCi0gICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRl
c3QpOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
ZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1h
bmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci5odG1sCmluZGV4IDBlOTlhYjlhMmVmYzdiZGVj
NTU4MDdlZWM5YjIyOTY2ZTViMmU0MjkuLjRkMTIzYzAzZDEyMGFkZGUwN2IxMzdjZjZjMjQ0Zjdh
ZWE0ZGJiZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLmh0bWwKQEAgLTM3
LDcgKzM3LDcgQEAKICAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHt9KTsKICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCiAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLmh0
bWwKaW5kZXggNDU3ZWIwZTU2ZDBlMGU2YjZjYzFhY2JmZDA1OTVkNDdlMDU2MzgwOS4uNDUyZjZl
NWJmNWVlNWE4YTE5YTdmODNjYmRjYmYzMDAwZjg4YjQ4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQt
cGVyc2lzdGVudC1zdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUuaHRt
bApAQCAtMzcsMjEgKzM3LDIyIEBACiAgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwotICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMik7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwotICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKIAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayh0
ZXN0U3RlcDIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2
ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC5odG1sCmluZGV4IDgxYTg1YzdiZWZmMDNjMjMwZjMwYjAzOTA2Y2U5MGJhYjRhYTJlNzMu
LjAxYTM3ODE5ZDQzMzM3MWUxOWI5ZjRlMjdlNTFiMjVmZWViNGRiOTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2st
dG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZp
Z2F0aW9uLXJlZGlyZWN0Lmh0bWwKQEAgLTEyLDEzICsxMiwxNCBAQAogCiAgICAgZnVuY3Rpb24g
ZG9SZWRpcmVjdCgpCiAgICAgewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwotICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
KSkgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9jb29raWVzL3Jlc291cmNlcy9zZXQtY29va2llLW9uLXJlZGlyZWN0LnBo
cD9zdGVwPTEiOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9j
YWxob3N0IikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb29raWVzL3Jlc291cmNl
cy9zZXQtY29va2llLW9uLXJlZGlyZWN0LnBocD9zdGVwPTEiOworICAgICAgICB9KTsKICAgICB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWwKaW5k
ZXggZjQ5ZmQ4YjVhNmViNWEwYjIxNjA4NTBhMDQ2NmNjOTI2ODJkYjU3My4uNmNiZDg3MjMzNTFm
MmM4ODBmMWJlODJiZjQzNDcwNzcwODYyZDdiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVy
aW5nLmh0bWwKQEAgLTY4LDEwICs2OCwxMSBAQAogICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoK
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKICAgICAg
ICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIsIHRydWUpOwotICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQotICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKICAgICAgICAgICAgICAgICAvLyBTZXQgYSBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KQEAgLTgwLDEwICs4MSwxMSBAQAogICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXA3IjsKICAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFzIHBy
ZXZhbGVudCByZXNvdXJjZQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vMTI3LjAuMC4xIikpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIjEyNy4wLjAu
MSBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly8xMjcuMC4wLjEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIjEyNy4wLjAuMSBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDciOgogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCA2NzIyMjA4ZGUyNDgyZTg1ZmNlMTZmZWY3
Y2E5Njg4NTlmZGRlODgzLi5lNGFkYmRlODI5YzhlZTdhOGFkMDQ1ZDhmOGQ3OTM2NjVhZDhiZDhm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtMjgsMzMgKzI4LDM2
IEBACiAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKICAgICAgICAgICAg
IHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgZmFsc2UpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAK
LSAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2
YWxlbnQgcmVzb3VyY2VzLgotICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBu
ZXZlciBzY2FubmVkLgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCi0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUg
YW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhl
cndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBp
bnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsK
IAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09
PSBjb29raWUpCi0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVk
LiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMg
b3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CiAKLSAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRp
bWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWlu
aW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwotICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCAxYmVmYzEzZmU2NzVhZjUwYTZkYTRjYzNhZTI2N2Nk
NjBhMWQyYzBjLi4zYjlhZmY0MDI1NTc3ZjM1OWU2N2U0YjdmMDg0MzdmZDNkMWMzYzhhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtMjgsMzMgKzI4LDM2
IEBACiAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKICAgICAgICAgICAg
IHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgZmFsc2UpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CiAK
LSAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2
YWxlbnQgcmVzb3VyY2VzLgotICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBu
ZXZlciBzY2FubmVkLgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCi0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUg
YW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhl
cndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKIAotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UpOwotICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCi0g
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBp
bnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsK
IAotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09
PSBjb29raWUpCi0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVk
LiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMg
b3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CiAKLSAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRp
bWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWlu
aW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwotICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0
bWwKaW5kZXggZjI0ZjQ4OWY2YWZlYWZiMDBhMTAzOGE3OTJjYmNhYTA0NmVmZTU2Ny4uNDY2OWM1
NzE1MzRiM2QzOTgwMWYxMzg4MzNlNGJjZDA3MmQzMDAxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4
dC5odG1sCkBAIC00NCwxMCArNDQsMTEgQEAKICAgICB9CiAKICAgICBmdW5jdGlvbiBzZXRVc2Vy
SW50ZXJhY3Rpb25BbmRDb250aW51ZSgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOwotICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJk
UGFydHlPcmlnaW4pKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5v
dCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwotICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdp
bikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBnZXQg
bG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICB9KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewpAQCAtNzcsMjEg
Kzc4LDIzIEBACiAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgb25lIHBhcnRp
dGlvbmVkLCB0aGlyZCBwYXJ0eSBjb29raWUuIiwgc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGlu
dWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoK
LSAgICAgICAgICAgICAgICAvLyBMb2FkIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgYW5kIGNo
ZWNrIHRoYXQgaXQgZ2V0cyBpdHMgbm9uLXBhcnRpdGlvbmVkIGNvb2tpZSBhZnRlciB1c2VyIGlu
dGVyYWN0aW9uLgorICAgICAgICAgICAgICAgIC8vIExvYWQgbG9jYWxob3N0IHVuZGVyIDEyNy4w
LjAuMSBhbmQgY2hlY2sgdGhhdCBpdCBzdGlsbCBnZXRzIHBhcnRpdGlvbmVkIGNvb2tpZSBhZnRl
ciB1c2VyIGludGVyYWN0aW9uLgogICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHVzZXIgaW50
ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCBvbmx5IHJlY2VpdmUgb25lIHBhcnRpdGlvbmVkLCB0aGly
ZCBwYXJ0eSBjb29raWUuIiwgZmluaXNoVGVzdCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFy
dGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5SG9zdG5h
bWUsIGZhbHNlKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSk7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7Ci0gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAxIjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlIb3N0bmFtZSwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBh
cnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NTZXRTaG91bGRQYXJ0aXRpb25Db29raWVzRm9ySG9zdCh0aGlyZFBhcnR5SG9zdG5h
bWUsIGZhbHNlLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzU2V0U2hvdWxkUGFydGl0aW9uQ29va2llc0Zvckhvc3QodGhpcmRQYXJ0eUhvc3RuYW1l
LCBmYWxzZSwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcnVuVGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlv
bmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRp
dGlvbmVkLWNvb2tpZS1kZWxldGlvbi5odG1sCmluZGV4IDM3ZTJjN2MxYjM4OWE3OThkYWFhN2Uy
YzM2NjkzMTkyMGJiY2I4ZDAuLjI4ZmEwYjVhMGY4MTFkNDUyZjhkMzBhYTU2NjViZjEyNGI4OWYy
MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtZGVsZXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0
aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwKQEAgLTUxLDEwICs1
MSwxMSBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRp
bnVlKCkgewotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCi0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVz
ZXIgaW50ZXJhY3Rpb24uIik7Ci0gICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CkBAIC05NiwxMSArOTcsMTIgQEAKICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsK
LSAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIpKQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0
IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzU2V0U2hv
dWxkUGFydGl0aW9uQ29va2llc0Zvckhvc3QoImxvY2FsaG9zdCIsIHRydWUsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1NldFNob3VsZFBhcnRpdGlvbkNv
b2tpZXNGb3JIb3N0KCJsb2NhbGhvc3QiLCB0cnVlLCBydW5UZXN0KTsKKyAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9IGVsc2UgewogICAgICAgICBydW5UZXN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0
aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmlu
Zy10aW1lb3V0LWV4cGVjdGVkLnR4dAppbmRleCBhNDBkN2Y1NDg2ZTA1OTMzZDA0YzE4MGVlNDVm
ZDE2NDY3YmJkOTAxLi41MGU4MmM4MTY1MmNhNDJiZGYwNTk4ZjU5YmE4ZTk0NjkwN2NkZTJhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRp
bWVvdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1w
YXJ0aXRpb25pbmctdGltZW91dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExNzogQm9vdHN0cmFwcGluZyB0ZXN0LgotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDY4OiBTdGVwIDEuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzM6IFN0ZXAgMi4KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA4MDogU3RlcCAzLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg3
OiBTdGVwIDQuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTc6IHNldE5vcm1hbENvb2tpZVBhcnRp
dGlvbmluZ1RpbWVPdXRQbHVzVXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKS4KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA5NDogU3RlcCA1LgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUxOiBzZXRT
aG9ydENvb2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQbHVzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tp
ZXNIYW5kbGVyQW5kQ29udGludWUoKS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogZmlyZVNo
b3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUoKS4KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxMDE6IFN0ZXAgNi4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1Nzogc2V0Tm9ybWFs
Q29va2llUGFydGl0aW9uaW5nVGltZU91dFBsdXNVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSgp
LgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwODogU3RlcCA3LgogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0
aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0
aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sCmluZGV4IGFhNTcw
OTkzNzg2YTBiY2RkZTY0MzVhYjQwZDcyMjUwNmEyNWEzNjMuLmJlZmYzYTM5YmUxZTc3YzAwZDZm
NDVmOWZkZTZkMzNiMWI3ZTA0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29r
aWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25l
ZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sCkBAIC00Myw2OSArNDMsNjAg
QEAKICAgICB9CiAKICAgICBmdW5jdGlvbiBmaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRs
ZXJBbmRDb250aW51ZSgpIHsKLSAgICAgICAgY29uc29sZS5sb2coImZpcmVTaG91bGRQYXJ0aXRp
b25Db29raWVzSGFuZGxlckFuZENvbnRpbnVlKCkuIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhydW5UZXN0KTsKICAgICB9CiAKICAgICBm
dW5jdGlvbiBzZXRTaG9ydENvb2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQbHVzRmlyZVNob3VsZFBh
cnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUoKSB7Ci0gICAgICAgIGNvbnNvbGUubG9n
KCJzZXRTaG9ydENvb2tpZVBhcnRpdGlvbmluZ1RpbWVPdXRQbHVzRmlyZVNob3VsZFBhcnRpdGlv
bkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUoKS4iKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoMSk7CiAgICAgICAgIHNldFRp
bWVvdXQoZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyQW5kQ29udGludWUsIDIwMDAp
OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHNldE5vcm1hbENvb2tpZVBhcnRpdGlvbmluZ1RpbWVP
dXRQbHVzVXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7Ci0gICAgICAgIGNvbnNvbGUubG9n
KCJzZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRlcmFjdGlvbkFu
ZENvbnRpbnVlKCkuIik7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xp
dmVDb29raWVQYXJ0aXRpb25GcmVlKDg2NDAwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOwotICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRo
aXJkUGFydHlPcmlnaW4pKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlk
IG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwotICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9y
aWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBn
ZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICB9KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAg
ICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKICAgICAgICAgICAgIGNhc2UgIiNz
dGVwMSI6Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgMS4iKTsKICAgICAgICAg
ICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBodHRwOi8vbG9jYWxob3N0Ojgw
MDAKICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRo
UmV0dXJuVXJsICsgIiNzdGVwMiI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlICIjc3RlcDIiOgotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDIuIik7
CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3QtcGFydHkgY29va2llIGlz
IG5vdCBzZW50IGluIHBhcnRpdGlvbiAxMjcuMC4wLjE6ODAwMAogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOwogICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwKICAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgotICAg
ICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTdGVwIDMuIik7CiAgICAgICAgICAgICAgICAgLy8g
U2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgaHR0cDovL2xvY2FsaG9zdDo4MDAwIGluIHBhcnRp
dGlvbiAxMjcuMC4wLjE6ODAwMAogICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDQiOwogICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVNldHRpbmcgcGFy
dGl0aW9uZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4iLAogICAgICAgICAgICAgICAgICAgICBydW5U
ZXN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6
Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNC4iKTsKICAgICAgICAgICAgICAg
ICAvLyBDaGVjayB0aGF0IG9ubHkgcGFydGl0aW9uZWQgY29va2llIGdldCBzZW50IGluIHBhcnRp
dGlvbiAxMjcuMC4wLjE6ODAwMAogICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDUiOwogICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBvbmx5IHJlY2VpdmUg
cGFydGl0aW9uZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4iLAogICAgICAgICAgICAgICAgICAgICBz
ZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRlcmFjdGlvbkFuZENv
bnRpbnVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNS4iKTsKICAgICAgICAgICAg
ICAgICAvLyBodHRwOi8vbG9jYWxob3N0OjgwMDAgbm93IGhhcyB1c2VyIGludGVyYWN0aW9uLCBj
aGVjayB0aGF0IHVuLXBhcnRpdGlvbmVkIGNvb2tpZSBpcyBzZW50IGZvciB0aGlyZC1wYXJ0eQog
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOwogICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPUFmdGVyIGZpcnN0IHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGls
bCBvbmx5IHJlY2VpdmUgYSBwYXJ0aXRpb25lZCwgdGhpcmQtcGFydHkgY29va2llLiIsCiAgICAg
ICAgICAgICAgICAgICAgIHNldFNob3J0Q29va2llUGFydGl0aW9uaW5nVGltZU91dFBsdXNGaXJl
U2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJBbmRDb250aW51ZSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgotICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJTdGVwIDYuIik7CiAgICAgICAgICAgICAgICAgLy8gQ29va2llIHBhcnRpdGlv
bmluZyBzaG91bGQgYmUgYXBwbGllZCBhZ2FpbgogICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDciOwogICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBvbmx5
IHJlY2VpdmUgcGFydGl0aW9uZWQsIHRoaXJkLXBhcnR5IGNvb2tpZS4iLAogICAgICAgICAgICAg
ICAgICAgICBzZXROb3JtYWxDb29raWVQYXJ0aXRpb25pbmdUaW1lT3V0UGx1c1VzZXJJbnRlcmFj
dGlvbkFuZENvbnRpbnVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgIiNzdGVwNyI6Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlN0ZXAgNy4iKTsKICAg
ICAgICAgICAgICAgICAvLyBodHRwOi8vbG9jYWxob3N0OjgwMDAgbm93IGhhcyBmcmVzaCB1c2Vy
IGludGVyYWN0aW9uLCBjaGVjayB0aGF0IHVuLXBhcnRpdGlvbmVkIGNvb2tpZSBpcyBzZW50IGZv
ciB0aGlyZC1wYXJ0eQogICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHNlY29uZCB1c2VyIGlu
dGVyYWN0aW9uLCBzaG91bGQgc3RpbGwgb25seSByZWNlaXZlIGEgcGFydGl0aW9uZWQsIHRoaXJk
LXBhcnR5IGNvb2tpZS4iLAogICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KTsKQEAgLTEx
NCwyMSArMTA1LDIxIEBACiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAg
ICAgY29uc29sZS5sb2coIkJvb3RzdHJhcHBpbmcgdGVzdC4iKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCBhbmQgd2l0aCBub24tcmVjZW50
IHVzZXIgaW50ZXJhY3Rpb24gdG8gcHV0IGl0IGluIHRoZSBwYXJ0aXRpb25pbmcgY2F0ZWdvcnku
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwotICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCi0gICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9u
UmVjZW50VXNlckludGVyYWN0aW9uKCJodHRwOi8vbG9jYWxob3N0Iik7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9z
dCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKCJodHRwOi8vbG9jYWxob3N0Iik7CiAKLSAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZygp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRp
dGlvbmluZygpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKIAotICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9IGVsc2UKICAgICAgICAgcnVuVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMtd2l0
aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCBlYmZkOWQ3YTJmZDYzZGUzZDM0MDc1
ODQzMmE2NTlkMDI2ZTljYjkwLi44YTQzYzkzMGYwN2I2ZjE4YWYzZTIzMDNiNGUxODc3MmFmMjdm
YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24u
aHRtbApAQCAtNDMsMTAgKzQzLDExIEBACiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2V0VXNlcklu
dGVyYWN0aW9uQW5kQ29udGludWUoKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlKTsKLSAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBh
cnR5T3JpZ2luKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKLSAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhp
cmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4p
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxv
Z2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgfSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5o
dG1sCmluZGV4IGVlOTA5MWQyYjg1Njc1Yjg4MTJiMjdhMWRhZDhiMTBhY2JhYjRmOTkuLjc5OTJm
NDk3YTAyZmUxMWM4OTE3Mzc5MTY1Y2VlZDc0NTAzNjFhZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
aGFuZGxlZC1rZXlkb3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24uaHRtbApA
QCAtMTYsNDQgKzE2LDQ2IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOwogICAgIH0KIAotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUpOwotICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotCi0gICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmws
IGZhbHNlKTsKLSAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCkpCi0gICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOwotCi0gICAgdGVzdElucHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOwotCi0gICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdElucHV0LnZhbHVlIiwgImEiKTsKLQot
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGRpZCBub3Qg
Z2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKLQot
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVzdEZyYW1lLnNy
YyA9ICJhYm91dDpibGFuayI7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgIH0sIDApOworICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJhIik7CisK
KyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gd2Fz
IGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJv
dXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVy
ICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1cygpOwor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOwogICAgIH0pOwotICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKGZhbHNlKTsKLSAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7Ci0gICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwotCi0gICAgZGVidWcoIlNpbXVsYXRlIHVz
ZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuIik7Ci0gICAgdGVzdElucHV0LmZv
Y3VzKCk7Ci0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiYSIpOyAgICAKIH0KIDwvc2NyaXB0PgogPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBz
cmM9InJlc291cmNlcy9vbmNsaWNrLmh0bWwiPjwvaWZyYW1lPgotPGlucHV0IGlkPSJ0ZXN0SW5w
dXQiIHR5cGU9InRleHQiPjwvaW5wdXQ+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4
dCI+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlk
b3duLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwKaW5kZXggZDVjZmQ3ZmNm
Yjc5ZjZiZDNiNmUxZWE3NWRiOTQ1N2FkNDQ5MTg4YS4uYjIzNWI2NTQ0OWRjZmJiNzBlYzljODRh
NzJiMzFiNTc4MjRiOWUzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24uaHRtbApAQCAtMTYsMzUgKzE2LDM3
IEBAIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwogICAgIH0KIAot
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUpOwotICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotCi0gICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlKTsKLSAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGlj
c1VybCkpCi0gICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1
c2VyIGludGVyYWN0aW9uLiIpOwotCi0gICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Ci0KLSAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
KSkKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVy
YWN0aW9uIGNyZWRpdC4iKTsKLQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7Ci0gICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSwgMCk7
Ci0gICAgICAgIH0sIDApOworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24o
KSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisK
KyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwg
MCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNp
bXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
YSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CiAgICAgfSk7Ci0gICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92
YWwoZmFsc2UpOwotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKLSAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Ci0KLSAgICBkZWJ1ZygiU2ltdWxhdGUgYW4gdW5o
YW5kbGVkIHVzZXIga2V5IHByZXNzLiIpOwotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCi0g
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiLCBbIm1ldGFLZXkiXSk7ICAgIAogfQogPC9z
Y3JpcHQ+CiA8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10
aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0Lmh0bWwK
aW5kZXggYjhiZjUxZTUyMTEyZGEyNDlkZTAwNjZlOWZiN2YyMDA4YjcwOTNiZi4uMzUyNDk5ZGNm
NzIwNmM1ZmJkOGQ1NDUwNzJkNDBiMjJmY2E3ODY2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLXRpbWVvdXQuaHRtbApAQCAtMTcsMjggKzE3LDMyIEBACiAgICAgICAgIGlmIChk
b2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKICAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3Vt
ZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSk7Ci0gICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlKTsKLSAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9n
Z2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIp
OwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVj
b3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSAhPT0gIiIpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVk
OiAiICsgZG9jdW1lbnQuY29va2llKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKLSAgICAgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAi
IikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRl
ZDogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAg
ICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRh
UmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRo
aXMgaXMgdG8gZW5zdXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpIiwgMTAwMCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKDApOwotICAgICAg
ICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCkiLCAxMDAwKTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCAwYmJhZDI1YzY3ZDhh
NmZmYTBiNWRiNjAxZTc5ZmY2NDMyNTZlYmU1Li44ZDU2OTc4NjM0ZGY1ZGU5NTlkNmRkM2EzOWVi
NzMyNzI2MzdkOTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAgLTE4LDMzICsx
OCwzNiBAQAogICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOwogCi0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIHRydWUpOwotICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKIAotICAg
ICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVu
dCByZXNvdXJjZXMuCi0gICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVy
IHNjYW5uZWQuCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBl
bXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lz
ZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKLSAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVy
YWN0aW9uLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwogCi0g
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0Nh
bGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0g
Y29va2llKQotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4i
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUg
ZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRv
Y3VtZW50LmNvb2tpZSk7Ci0gICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZmFsc2UpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVk
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250
YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxz
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwotICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9y
ZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwogICAg
IH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi5odG1sCmluZGV4IDUyNTA5YzkyYjVjNWJlNjI2ZTIwZGRhMDBjNzAwZDlk
MTA4OGZmMWUuLmYyMDAzMTI0ZDFlZGFmOWQ0YjgxYmYzMjhkMTYyZjdlMDdkNDc2MWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtMjksMjAgKzI5LDIyIEBACiAgICAg
ICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKICAgICAgICAgICAgIHRlc3RGYWls
ZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CiAKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSk7
Ci0gICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxz
ZSk7Ci0gICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVy
YWN0aW9uLiIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2Rp
ZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2V0VGltZW91
dCgiZmluaXNoVGVzdCgpIiwgMTAwMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdl
ZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCgwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcnVuZS1zdGF0aXN0aWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy5odG1sCmluZGV4IGJiYzVjMTZkM2I3
YThjZDdiOTljYjk2Y2IxYjIzOTNhZDVjZjhiZTMuLmI1MTUyMmY3MWYwODdmOTliM2I1NDdiMjQz
ZDIxOGNmZTE2NDY1ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MuaHRtbApA
QCAtNTUsMzQgKzU1LDY1IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmdW5jdGlvbiBpbml0
aWFsaXplU3RhdGlzdGljcygpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7
Ci0KLSAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8g
YmUgcHJ1bmVkIGZpcnN0LgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vl
bih1cmxzVG9CZVBydW5lZFswXS51cmwsIG9sZGVyVGltZXN0YW1wKTsKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMV0udXJsLCBuZXdlclRp
bWVzdGFtcCk7Ci0KLSAgICAgICAgLy8gUHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlv
biB0byBiZSBwcnVuZWQgc2Vjb25kLgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUpOwotICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9s
ZGVyVGltZXN0YW1wKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJsLCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVz
dGFtcCk7Ci0KLSAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24g
dG8gYmUgcHJ1bmVkIHRoaXJkLgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJsLCB0cnVlKTsKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNF0udXJsLCBv
bGRlclRpbWVzdGFtcCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIHRydWUpOwotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIG5ld2Vy
VGltZXN0YW1wKTsKLQotICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9u
IHRvIGJlIHBydW5lZCBsYXN0LgotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUpOwotICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRb
Nl0udXJsLCB0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4o
dXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVzdGFtcCk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzddLnVybCwg
dHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0YW1w
KTsKLQotICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRp
b24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKHN0ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAg
ICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBw
cnVuZWQgZmlyc3QuCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRp
bWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVk
WzFdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGlj
c0FuZFJ1blRlc3RzKDMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IC8vIFByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29u
ZC4KKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1
bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9s
ZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0
cyg1KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dXJsc1RvQmVQcnVuZWRbM10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRp
c3RpY3NBbmRSdW5UZXN0cyg2KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rp
b24gdG8gYmUgcHJ1bmVkIHRoaXJkLgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9C
ZVBydW5lZFs0XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDgpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgODoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1
cmxzVG9CZVBydW5lZFs0XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlh
bGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJs
LCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVu
VGVzdHMoMTEpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFBy
ZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAg
ICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVu
ZWRbNl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0
aWNzQW5kUnVuVGVzdHMoMTQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFs3XS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cygxNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAxNzoKKyAgICAgICAgICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9J
bml0aWFsRXhwZWN0YXRpb24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9
CiAKICAgICB2YXIgY3VycmVudFRlc3Q7CkBAIC05NCw3ICsxMjUsOCBAQAogICAgICAgICB0ZXN0
UGFzc2VkKCJUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIHBhc3NlZC4iKTsKICAg
ICAgICAgaWYgKGN1cnJlbnRUZXN0IDwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKSB7CiAgICAgICAg
ICAgICArK2N1cnJlbnRUZXN0OwotICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7CisgICAgICAgICAgICBpbml0aWFsaXplU3RhdGlz
dGljc0FuZFJ1blRlc3RzKDEpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKQEAgLTEwMiwxNCArMTM0LDE2IEBACiAgICAgICAg
IH0KICAgICB9CiAKKyAgICBsZXQgZmlsbGVyVXJsOwogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzKCk7Ci0KLSAgICAgICAgdmFyIGZpbGxlclVy
bCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwg
dHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihmaWxsZXJVcmwsIHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NM
YXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgZmls
bGVyVXJsID0gImh0dHA6Ly8xMjcuMC4iICsgY3VycmVudFRlc3QgKyAiLjE6ODAwMC90ZW1wIjsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoZmlsbGVy
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGZpbGxlclVy
bCwgbmV3ZXN0VGltZXN0YW1wLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0KIAog
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpAQCAtMTIwLDcgKzE1NCw4IEBACiAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1cmxzVG9CZVBydW5l
ZC5sZW5ndGgpOwogCiAgICAgICAgIGN1cnJlbnRUZXN0ID0gMTsKLSAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgaW5pdGlhbGl6
ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKICAgICB9CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QuaHRtbApp
bmRleCAwZTc0YTAzZjMyMmE3MDEwMTFkYmE0NDkxNzljODI0NTNmOTk2MDc0Li41NThlOGYyZGQy
NTNhODNlZjY0MTYwYzVlMTI3ZDAxNzI3YjZmNjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlLWJsb2NraW5nLWluLXJlZGly
ZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3JlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sCkBAIC01OSwxMSArNTksMTIgQEAK
ICAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CiAgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2Fs
aG9zdCBhcyBwcmV2YWxlbnQgYW5kIHdpdGggbm9uLXJlY2VudCB1c2VyIGludGVyYWN0aW9uIHRv
IHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsK
LSAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9j
YWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIp
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSAiI3N0ZXA1IjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZW1vdmUtcGFydGl0aW9uaW5nLWluLXJlZGlyZWN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlLXBhcnRp
dGlvbmluZy1pbi1yZWRpcmVjdC5odG1sCmluZGV4IDljMTEwYzBjZGQ1YzM1YTE4M2MzYmJhMzU5
ZTUwNzYyNzFmZTk2YjQuLmE1ZTNkOTE5N2JmNjkzZTI4OTg4ZWEyOGVkZDVhYjM0NDNlNTQyMGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZW1vdmUtcGFydGl0aW9uaW5nLWluLXJlZGlyZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3JlbW92ZS1wYXJ0aXRpb25pbmctaW4t
cmVkaXJlY3QuaHRtbApAQCAtNTksMTIgKzU5LDEyIEBACiAgICAgICAgICAgICBjYXNlICIjc3Rl
cDQiOgogICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IGFuZCB3
aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiB0byBwdXQgaXQgaW4gdGhlIHBhcnRpdGlv
bmluZyBjYXRlZ29yeS4KICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA1IjsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUpOwotICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIpKQotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVyYWN0aW9uKCJodHRwOi8vbG9j
YWxob3N0Iik7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llUGFydGl0aW9uaW5nKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZE5vblJlY2VudFVzZXJJbnRl
cmFjdGlvbigiaHR0cDovL2xvY2FsaG9zdCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5nKHJ1
blRlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLmh0
bWwKaW5kZXggMzkxZmJiNTAwMWJiNTk3NmFiZjM1ZTNkMDlhZDQwZDg2MGRiMjBkNi4uZThiN2Yw
OWQ1YzY2NGRkNjNlODJkOWEwYzcxN2JkYjVhODlmN2Q5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9y
aWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMuaHRtbApAQCAtMzgs
MTYgKzM4LDE2IEBACiAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CiAgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFs
ZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sIik7CiAKLSAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1
ZSk7Ci0gICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CiAKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Vw
ZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhw
IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llUGFydGl0aW9uaW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJy
ZXIucGhwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwotCiAgICAgICAgIH0pLmNhdGNoKGZ1
bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsK
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy5o
dG1sCmluZGV4IDZkM2I2NzY2NmI3MGU5ZjRjNTI1ZGJmMWRlOTM0ZmY2MTY0Zjg3YTEuLjIwNDAy
ODgyN2I0ZWFkYWMwNTgyMWE4YWMyMTM1NjA1MmI1Y2Q1MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy5odG1sCkBAIC0zOCwy
NyArMzgsMjcgQEAKICAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbCIpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUp
OwotICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCi0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOwogCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2go
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9l
Y2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKLSAgICAgICAgICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOwot
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAg
ICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOwogCi0g
ICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVk
aXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1y
ZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3Ip
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICB9KS5jYXRj
aChmdW5jdGlvbihlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwotCiAg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICBjb25zb2xlLmxv
ZyhlcnJvci5tZXNzYWdlKTsKICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1s
CmluZGV4IDEwNTU5NzM1YWNhNWIwN2Y4ZTBmNzYyYzlhMGYyMWU3ZGU0ODE1YTAuLjRkYjMxMjc0
MDA2YzNkZTVmNjUyZmY5M2Y3OGRkNTRhNDVmOWQ0NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sCkBAIC05MCwxMSArOTAsMTEgQEAKICAgICAgICAgbWFr
ZVVybFByZXZhbGVudChwcmV2YWxlbnRSZXNvdXJjZVVybDMpOwogICAgICAgICBtYWtlVXJsUHJl
dmFsZW50KHByZXZhbGVudFJlc291cmNlVXJsNCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHByZXZhbGVudFJlc291cmNlVXJsNCwgdHJ1
ZSk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNoZWNrU3VmZmljaWVudENsYXNzaWZpY2F0aW9uQW5kQ29udGludWUpOwot
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2soY2hlY2tTdWZmaWNpZW50VGVsZW1ldHJ5KTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJldmFsZW50UmVzb3VyY2VVcmw0
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N1ZmZpY2llbnRDbGFzc2lmaWNh
dGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayhjaGVja1N1ZmZpY2llbnRUZWxlbWV0cnkpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZWxlbWV0cnlB
bmRDb250aW51ZSgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtd2l0aC1hbmQtd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi5odG1sCmluZGV4IGUyMTdhMDM2YzYyNzNiZmUwOGFlYWNkZDkyZTg3MGVhMGZkYmU1OGYu
LmI3MjE2M2UwYzIzOTBiZWI4ZThkMjgxNDBmOTJlMzZlNjJiY2I0MmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1j
b29raWUtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tp
ZS13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtNDUsMTAgKzQ1LDEx
IEBACiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUo
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlKTsKLSAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBp
bnRlcmFjdGlvbi4iKTsKLSAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFj
dGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKQEAgLTk0LDkgKzk1LDExIEBACiAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKIAogICAgICAgICAgICAgLy8gU3RhcnQg
dGVzdCB3aXRoIHRoaXJkIHBhcnR5IGFzIG5vbi1wcmV2YWxlbnQKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlIb3N0bmFtZSwg
ZmFsc2UpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlKTsKLSAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1NldFNob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JIb3N0KHRoaXJkUGFydHlI
b3N0bmFtZSwgZmFsc2UsIHJ1blRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eUhvc3RuYW1lLCBmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzU2V0U2hvdWxkUGFydGl0aW9uQ29v
a2llc0Zvckhvc3QodGhpcmRQYXJ0eUhvc3RuYW1lLCBmYWxzZSwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgcnVuVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNl
LXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1v
bmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS5odG1sCmluZGV4IDA5ODA2ZjQxNmRmZTZi
OTA4NTVhZGFlOGJiZWM2ZDkzYjEwYWJkZjYuLmEzMGIyMjhmOGFlYzQ2MTE4NTg3MWI2YmM4ZTFh
Yjc0ZTgyYzUwODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4t
c2hvcnQtcGVyaW9kLW9mLXRpbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Ut
d2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwKQEAgLTQ0LDEyICs0NCwxMyBAQAogICAg
ICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOwogICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
IAotICAgICAgICBpZiAodGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbiwgZmFsc2UpOworICAg
ICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CiAKLSAgICAgICAgc2hv
dWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIik7Ci0KLSAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVu
dCIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVs
ZW1lbnQiLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQog
CiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>