<?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>203428</bug_id>
          
          <creation_ts>2019-10-25 12:15:59 -0700</creation_ts>
          <short_desc>Storage Access API: Make the API work with the experimental 3rd-party cookie blocking</short_desc>
          <delta_ts>2019-10-28 12:45:12 -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>WebKit Misc.</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>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583951</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-25 12:15:59 -0700</bug_when>
    <thetext>The experimental 3rd-party cookie blocking that landed in &lt;https://trac.webkit.org/changeset/251467&gt; needs support in the Storage Access API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583952</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-25 12:16:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/56626949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583967</commentid>
    <comment_count>2</comment_count>
      <attachid>381956</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-25 12:47:10 -0700</bug_when>
    <thetext>Created attachment 381956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584233</commentid>
    <comment_count>3</comment_count>
      <attachid>381956</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-26 07:28:37 -0700</bug_when>
    <thetext>Comment on attachment 381956
Patch

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

Looks good to me! I&apos;d give it an r+ if I could :)

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1810
&gt; +

Since ensureResourceStatisticsForRegistrableDomain(subFrameDomain) is always called before this function, I don&apos;t think the hasNoEntry check is needed (I know you didn&apos;t write this code, it was probably me who did this). Removing it would simplify this function a bit and let it match the memory store almost exactly. That being said, it doesn&apos;t hurt anyone to keep it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584234</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-26 07:29:49 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #3)
&gt; Comment on attachment 381956 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381956&amp;action=review
&gt; 
&gt; Looks good to me! I&apos;d give it an r+ if I could :)
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1810
&gt; &gt; +
&gt; 
&gt; Since ensureResourceStatisticsForRegistrableDomain(subFrameDomain) is always
&gt; called before this function, I don&apos;t think the hasNoEntry check is needed (I
&gt; know you didn&apos;t write this code, it was probably me who did this). Removing
&gt; it would simplify this function a bit and let it match the memory store
&gt; almost exactly. That being said, it doesn&apos;t hurt anyone to keep it in.

&quot;this function&quot; being cookieAccess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584235</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-26 07:49:36 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #3)
&gt; Comment on attachment 381956 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=381956&amp;action=review
&gt; 
&gt; Looks good to me! I&apos;d give it an r+ if I could :)

Thanks for taking a look. You’re always a bit worried touching code someone else has been working a lot on.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1810
&gt; &gt; +
&gt; 
&gt; Since ensureResourceStatisticsForRegistrableDomain(subFrameDomain) is always
&gt; called before this function, I don&apos;t think the hasNoEntry check is needed (I
&gt; know you didn&apos;t write this code, it was probably me who did this). Removing
&gt; it would simplify this function a bit and let it match the memory store
&gt; almost exactly. That being said, it doesn&apos;t hurt anyone to keep it in.

I has that thought but figured there was a reason for the code to be there. I’ll try to remove before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584533</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-28 12:02:11 -0700</bug_when>
    <thetext>Thank you, Alex! Let&apos;s see if I need to rebase or not. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584544</commentid>
    <comment_count>7</comment_count>
      <attachid>381956</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 12:45:11 -0700</bug_when>
    <thetext>Comment on attachment 381956
Patch

Clearing flags on attachment: 381956

Committed r251663: &lt;https://trac.webkit.org/changeset/251663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584545</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 12:45:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381956</attachid>
            <date>2019-10-25 12:47:10 -0700</date>
            <delta_ts>2019-10-28 12:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203428-20191025124709.patch</filename>
            <type>text/plain</type>
            <size>90430</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjMGJiZDU0NDVjMGI0YTlj
MTU4MzNhMjRiZTdiMTY4MmI1ZTU4YmYuLjcyODA5N2EyNzQwY2U2ZGE0Zjc0NDgxMjhmNDkyMmYx
OWU5ZDkyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIwMTktMTAtMjUgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJ
OiBNYWtlIHRoZSBBUEkgd29yayB3aXRoIHRoZSBleHBlcmltZW50YWwgM3JkLXBhcnR5IGNvb2tp
ZSBibG9ja2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNDI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjYyNjk0OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhp
cmQtcGFydHktY29va2llLWJsb2NraW5nLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9ncmFudC13aXRoLXByb21wdC11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5
LWNvb2tpZS1ibG9ja2luZy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLXdpdGgtY29va2llLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1j
b29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUuaHRtbAorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBTdG9yYWdlIEFjY2VzcyBBUEkgc3VwcG9ydCBmb3IgdGhlIGV4cGVyaW1lbnRhbCAzcmQt
cGFydHkgY29va2llIGJsb2NraW5nIHRoYXQKKyAgICAgICAgbGFuZGVkIGluIDxodHRwczovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjUxNDY3Pi4KKworICAgICAgICBUaGVyZSBhcmUgdGhy
ZWUgcG9saWNpZXMgYXQgcGxheSBiZWNhdXNlIGl0IGNhbiBiZSBjaGFuZ2VkIHdpdGggdGhlIGV4
cGVyaW1lbnRhbCBzZXR0aW5nOgorICAgICAgICAxLiBUaGUgdW5kZXJseWluZyBjb29raWUgcG9s
aWN5LgorICAgICAgICAyLiBTaGlwcGluZyBJVFAuCisgICAgICAgIDMuIFRoZSBvZmYgYnkgZGVm
YXVsdCwgZXhwZXJpbWVudGFsIDNyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcuCisKKyAgICAgICAg
VG8gc3VwcG9ydCB0aGVtIGFsbCwgYSBDb29raWVBY2Nlc3MgZW51bSB3YXMgYWRkZWQgdG8gZW5j
b2RlIGhvdyB0aGUgQVBJIHNob3VsZCByZXNwb25kLgorICAgICAgICBUaGUgZW51bSBoYXMgdGhl
c2UgdmFsdWVzOgorICAgICAgICBDYW5ub3RSZXF1ZXN0IC0gVGhpcyB0aGlyZC1wYXJ0eSBjYW5u
b3QgcmVxdWVzdCBzdG9yYWdlIGFjY2VzcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwb2xpY3kuCisg
ICAgICAgIEJhc2VkT25Db29raWVQb2xpY3kg4oCTIFRoaXMgdGhpcmQtcGFydHkgc2hvdWxkIGJl
IHRyZWF0ZWQgYWNjb3JkaW5nIHRvIHRoZSB1bmRlcmx5aW5nIGNvb2tpZSBwb2xpY3kuCisgICAg
ICAgIE9ubHlJZkdyYW50ZWQg4oCTIFRoaXMgdGhpcmQtcGFydHkgY2FuIGFuZCBtdXN0IGdldCBh
Y2Nlc3MgdGhyb3VnaCB0aGUgU3RvcmFnZSBBY2Nlc3MgQVBJLgorCisgICAgICAgIEhlcmUncyB0
aGUgdHJ1dGggdGFibGUgSSB1c2VkIHRvIHdvcmsgdGhyb3VnaCB0aGUgbG9naWMgZm9yIGJvdGgK
KyAgICAgICAgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIGFuZCBkb2N1bWVudC5yZXF1ZXN0
U3RvcmFnZUFjY2VzcygpOgorCisgICAgICAgIEFjY2VzcyAgfCBJcyAgICAgICAgfCBVc2VyICAg
ICAgICB8IEhhcyAgICB8IDNyZC1wYXJ0eSAgICB8ICAgICAgICB8CisgICAgICAgIGdyYW50ZWQg
fCBwcmV2YWxlbnQgfCBpbnRlcmFjdGlvbiB8IGNvb2tpZSB8IGNvb2tpZSBibG9jayB8IFJFU1VM
VCB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAgICAgICAgICB8ICAg
ICAgICAgICAgIHzCoCAgICAgICB8ICAgICAgICAgICAgICB8IGZhbHNlICB8CisgICAgICAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgIHzCoCAg
ICAgICB8IHRydWUgICAgICAgICB8IGZhbHNlICB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAgfCAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgIHzCoHRydWUgICB8ICAgICAgICAg
ICAgICB8IHRydWUgICB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAg
ICAgICAgICB8ICAgICAgICAgICAgIHzCoHRydWUgICB8IHRydWUgICAgICAgICB8IGZhbHNlICB8
CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAgICAgICAgICB8IHRydWUg
ICAgICAgIHzCoCAgICAgICB8ICAgICAgICAgICAgICB8IGZhbHNlICB8CisgICAgICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAgICAgICAgICB8IHRydWUgICAgICAgIHzCoCAgICAg
ICB8IHRydWUgICAgICAgICB8IGZhbHNlICB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg
fCAgICAgICB8ICAgICAgICAgICB8IHRydWUgICAgICAgIHzCoHRydWUgICB8ICAgICAgICAgICAg
ICB8IHRydWUgICB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8ICAgICAg
ICAgICB8IHRydWUgICAgICAgIHzCoHRydWUgICB8IHRydWUgICAgICAgICB8IGZhbHNlICB8Cisg
ICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICB8IHRydWUgICAgICB8ICFjYXJlICAg
ICAgIHzCoCFjYXJlICB8ICFjYXJlICAgICAgICB8IGZhbHNlICB8CisgICAgICAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICAgICAgfCB0cnVlICB8ICFjYXJlICAgICB8ICFjYXJlICAgICAgIHzCoCFjYXJlICB8
ICFjYXJlICAgICAgICB8IHRydWUgICB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y29va2llQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgICAgICBF
eHRyYSBjaGVja3MgcmVtb3ZlZCBzaW5jZSB0aGVyZSdzIG5vIGhhcm0gaW4gZ3JhbnRpbmcgYWNj
ZXNzCisgICAgICAgICAgICB0byBhIHRoaXJkLXBhcnR5IHRoYXQgYWxyZWFkeSBoYXMgYWNjZXNz
IGJ5IHdheSBvZiB0aGUgdW5kZXJseWluZworICAgICAgICAgICAgY29va2llIHBvbGljeS4gQWxz
bywgdGhpcyBpcyBhIHRlbXBvcmFyeSBjb21wYXRpYmlsaXR5IGZpeC4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OmNvb2tpZUFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIpOgorICAgICAgICAg
ICAgRXh0cmEgY2hlY2tzIHJlbW92ZWQgc2luY2UgdGhlcmUncyBubyBoYXJtIGluIGdyYW50aW5n
IGFjY2VzcworICAgICAgICAgICAgdG8gYSB0aGlyZC1wYXJ0eSB0aGF0IGFscmVhZHkgaGFzIGFj
Y2VzcyBieSB3YXkgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgICAgIGNvb2tpZSBwb2xpY3ku
IEFsc28sIHRoaXMgaXMgYSB0ZW1wb3JhcnkgY29tcGF0aWJpbGl0eSBmaXguCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNldElzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0SXNUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdFbmFibGVkKToKKyAgICAgICAgICAgIFRoaXMgaXMgbm93IHRoZSBzaW5nbGUgcGF0aCB0byBj
b250cm9sIHRoaXMgc2V0dGluZyBpbiBib3RoIElUUAorICAgICAgICAgICAgYW5kIHRoZSBuZXR3
b3JrIHN0b3JhZ2Ugc2Vzc2lvbi4gU2VlIGNvbW1lbnQgYmVsb3cuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVz
dGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0SXNUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmdFbmFibGVkKToKKyAgICAgICAgICAgIFJlc3RydWN0dXJlZCB0aGVzZSBz
byB0aGF0IHRoZXkgYXJlIGluaXRpYXRlZCBsaWtlIHRoZSByZXN0IG9mIHRoZQorICAgICAgICAg
ICAgcGFyYW1ldGVycyBhbmQgb25seSBoYXZlIGEgc2luZ2xlIHBhdGggZm9yIGNoYW5nZXMgc28g
dGhhdCBhCisgICAgICAgICAgICByZXNldCB0byBjb25zaXN0ZW50IHN0YXRlIHJlc2V0cyBhbGwg
dGhlIHN0YXRlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6
CisKIDIwMTktMTAtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXVtXSzJdIFVzZSBzZW5kV2l0aEFzeW5jUmVwbHkoKSB0byBzaW1wbGlmeSB0aGUgcHJl
cGFyZVRvU3VzcGVuZCBsb2dpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggMzlmZmY4NzM5MGQ4YTNlMTI0YjQ0MDczOTcz
NTZmOWNiYjdlNjQzNy4uNGEwMWFjMDkxMWMyZmMwMmMzOTJkYjhhYTE2YzBhY2E4M2ZiODdhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwCkBAIC0xMTkzLDE2ICsxMTkzLDIxIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAK
ICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzdWJGcmFt
ZURvbWFpbik7CiAKLSAgICBzd2l0Y2ggKGNvb2tpZVRyZWF0bWVudEZvck9yaWdpbihzdWJGcmFt
ZURvbWFpbikpIHsKLSAgICBjYXNlIENvb2tpZVRyZWF0bWVudFJlc3VsdDo6QmxvY2tBbmRQdXJn
ZToKKyAgICBzd2l0Y2ggKGNvb2tpZUFjY2VzcyhzdWJGcmFtZURvbWFpbikpIHsKKyAgICBjYXNl
IENvb2tpZUFjY2Vzczo6Q2Fubm90UmVxdWVzdDoKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDb29raWVUcmVhdG1lbnRSZXN1bHQ6
OkFsbG93OgotICAgICAgICAvLyBXZSBzaG91bGQgb25seSByZXR1cm4gdHJ1ZSBpZiB0aGUgY29u
dGV4dCBoYXMgYXNrZWQgZm9yIGFuZCBiZWVuIGdyYW50ZWQgYWNjZXNzLgotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgY2FzZSBDb29raWVBY2Nlc3M6OkJhc2VkT25Db29r
aWVQb2xpY3k6CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtl
UmVmKHN0b3JlKCkpLCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVkQ29w
eSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgc3RvcmUtPmhhc0Nvb2tpZXMoc3ViRnJhbWVEb21haW4sIFtz
dG9yZSA9IHN0b3JlLmNvcHlSZWYoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYm9vbCByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgICAgIHN0
b3JlLT5zdGF0aXN0aWNzUXVldWUoKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVzdWx0XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ug
Q29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0FuZEtlZXA6Ci0gICAgICAgIC8vIERvIG5vdGhp
bmcuIFRoZSBiZWxvdyBkaXNwYXRjaCB3aWxsIGNvbXBsZXRlIHRoZSB0YXNrLgorICAgIGNhc2Ug
Q29va2llQWNjZXNzOjpPbmx5SWZHcmFudGVkOgorICAgICAgICAvLyBIYW5kbGVkIGJlbG93Lgog
ICAgICAgICBicmVhazsKICAgICB9OwogCkBAIC0xMjIwLDE4ICsxMjI1LDE5IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGF1
dG8gc3ViRnJhbWVTdGF0dXMgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihzdWJGcmFtZURvbWFpbik7Ci0gICAgYXV0byBjb29raWVUcmVhdG1lbnRSZXN1bHQg
PSBjb29raWVUcmVhdG1lbnRGb3JPcmlnaW4oc3ViRnJhbWVEb21haW4pOwogICAgIAotICAgIGlm
IChjb29raWVUcmVhdG1lbnRSZXN1bHQgPT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0Fu
ZFB1cmdlKSB7CisgICAgc3dpdGNoIChjb29raWVBY2Nlc3Moc3ViRnJhbWVEb21haW4pKSB7Cisg
ICAgY2FzZSBDb29raWVBY2Nlc3M6OkNhbm5vdFJlcXVlc3Q6CiAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkNhbm5vdCBncmFudCBz
dG9yYWdlIGFjY2VzcyB0byAle3ByaXZhdGV9cyBzaW5jZSBpdHMgY29va2llcyBhcmUgYmxvY2tl
ZCBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBhbmQgaXQgaGFzIG5vdCByZWNlaXZlZCB1c2VyIGlu
dGVyYWN0aW9uIGFzIGZpcnN0LXBhcnR5LiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVz
OjpDYW5ub3RSZXF1ZXN0QWNjZXNzKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICBpZiAoY29va2llVHJlYXRtZW50UmVzdWx0ICE9IENvb2tpZVRyZWF0bWVudFJlc3VsdDo6Qmxv
Y2tBbmRLZWVwKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5h
YmxlZCgpLCBJVFBEZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQgc3RvcmFnZSBhY2Nlc3MgdG8gJXtw
cml2YXRlfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIGluIHRoaXJkLXBhcnR5
IGNvbnRleHRzLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
IGNhc2UgQ29va2llQWNjZXNzOjpCYXNlZE9uQ29va2llUG9saWN5OgorICAgICAgICBSRUxFQVNF
X0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJObyBuZWVkIHRv
IGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICV7cHJpdmF0ZX1zIHNpbmNlIGl0cyBjb29raWVzIGFy
ZSBub3QgYmxvY2tlZCBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cy4gTm90ZSB0aGF0IHRoZSB1bmRl
cmx5aW5nIGNvb2tpZSBwb2xpY3kgbWF5IHN0aWxsIGJsb2NrIHRoaXMgdGhpcmQtcGFydHkgZnJv
bSBzZXR0aW5nIGNvb2tpZXMuIiwgc3ViRnJhbWVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NTdGF0dXM6Okhhc0Fj
Y2Vzcyk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENvb2tpZUFjY2Vzczo6T25seUlmR3Jh
bnRlZDoKKyAgICAgICAgLy8gSGFuZGxlZCBiZWxvdy4KKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgYXV0byB1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyID0gaGFzVXNlckdyYW50ZWRTdG9yYWdl
QWNjZXNzVGhyb3VnaFByb21wdChzdWJGcmFtZVN0YXR1cy5zZWNvbmQsIHRvcEZyYW1lRG9tYWlu
KTsKQEAgLTEyNjYsMTAgKzEyNzIsNiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbgogICAgIGlm
IChkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPT0gb3BlbmVyRG9tYWluKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bihkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpOwotICAgIGlmIChjb29raWVUcmVhdG1lbnRG
b3JPcmlnaW4oZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSA9PSBDb29raWVUcmVhdG1lbnRS
ZXN1bHQ6OkFsbG93KQotICAgICAgICByZXR1cm47Ci0KICAgICBSRUxFQVNFX0xPR19JTkZPX0lG
KGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJbVGVtcG9yYXJ5IGNvbWJhdGliaWxp
dHkgZml4XSBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZCBmb3IgJXtwcml2YXRlfXMgdW5kZXIg
b3BlbmVyIHBhZ2UgZnJvbSAle3ByaXZhdGV9cywgd2l0aCB1c2VyIGludGVyYWN0aW9uIGluIHRo
ZSBvcGVuZWQgd2luZG93LiIsIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcy5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBvcGVuZXJEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAg
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCkgeyB9KTsKIH0KQEAgLTE3ODgsMjggKzE3OTAsMzUgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXAKICAgICB1cGRhdGVDb29raWVCbG9ja2luZ0ZvckRvbWFpbnMoZG9tYWluc1RvQmxvY2ss
IFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0p
OwogfQogCi1SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Q29va2llVHJlYXRt
ZW50UmVzdWx0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb29raWVUcmVh
dG1lbnRGb3JPcmlnaW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QKK0Nv
b2tpZUFjY2VzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29va2llQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0CiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1f
ZGF0YWJhc2UsICJTRUxFQ1QgaXNQcmV2YWxlbnQsIGhhZFVzZXJJbnRlcmFjdGlvbiBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iKTsKICAgICBpZiAoc3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRU
ZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpjb29raWVUcmVhdG1lbnRGb3JPcmlnaW4gZmFpbGVkIHRvIGJp
bmQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb29raWVBY2Nl
c3MgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KICAgICAKLSAgICBpZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQotICAg
ICAgICByZXR1cm4gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKLSAgICAKKyAgICBib29s
IGhhc05vRW50cnkgPSBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1c7CisgICAgaWYgKGhh
c05vRW50cnkpIHsKKyAgICAgICAgaWYgKGlzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIENvb2tpZUFjY2Vzczo6T25seUlmR3JhbnRlZDsKKyAg
ICAgICAgcmV0dXJuIENvb2tpZUFjY2Vzczo6QmFzZWRPbkNvb2tpZVBvbGljeTsKKyAgICB9CisK
ICAgICBib29sIGlzUHJldmFsZW50ID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAg
IGlmICghaXNQcmV2YWxlbnQpCi0gICAgICAgIHJldHVybiBDb29raWVUcmVhdG1lbnRSZXN1bHQ6
OkFsbG93OworICAgIGlmICghaXNQcmV2YWxlbnQgJiYgIWlzVGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gQ29va2llQWNjZXNzOjpCYXNlZE9uQ29va2ll
UG9saWN5OwogCiAgICAgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24gPSBzdGF0ZW1lbnQuZ2V0Q29s
dW1uSW50KDEpID8gdHJ1ZSA6IGZhbHNlOwotICAgIHJldHVybiBoYWRVc2VySW50ZXJhY3Rpb24g
PyBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkJsb2NrQW5kS2VlcCA6IENvb2tpZVRyZWF0bWVudFJl
c3VsdDo6QmxvY2tBbmRQdXJnZTsKKyAgICBpZiAoIWhhZFVzZXJJbnRlcmFjdGlvbikKKyAgICAg
ICAgcmV0dXJuIENvb2tpZUFjY2Vzczo6Q2Fubm90UmVxdWVzdDsKKworICAgIHJldHVybiBDb29r
aWVBY2Nlc3M6Ok9ubHlJZkdyYW50ZWQ7CiB9Ci0gICAgCisKIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50
ZWRTdG9yYWdlQWNjZXNzVGhyb3VnaFByb21wdCh1bnNpZ25lZCByZXF1ZXN0aW5nRG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluKSBjb25zdAogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCBhMmFiN2Y3ZTBlOWEwNTM3YjBmNzhj
NGJmN2M2NDk3NzJjYjk3ZTdiLi5iZjNmM2U5NjBlMDNiOWY3ZmFhNjM1NjkwM2MxZjg4Njk3ZWVl
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaApAQCAtMTkzLDggKzE5Myw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHByZWRpY2F0
ZVZhbHVlRm9yRG9tYWluKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJikgY29uc3Q7CiAKLSAgICBlbnVtIGNsYXNzIENvb2tpZVRyZWF0bWVudFJlc3Vs
dCB7IEFsbG93LCBCbG9ja0FuZEtlZXAsIEJsb2NrQW5kUHVyZ2UgfTsKLSAgICBDb29raWVUcmVh
dG1lbnRSZXN1bHQgY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJikgY29uc3Q7CisgICAgQ29va2llQWNjZXNzIGNvb2tpZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIAogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2Uo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1
bnNpZ25lZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRU
b1RoaXNEb21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklELCBTdGRTZXQ8dW5zaWduZWQ+JiBu
b25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZl
Q2FsbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlLmNwcAppbmRleCBhZGJiYWFkMmMwODBmMTcyOTdlZWUzODJmODg5ZmNjMjZhNDA4YzJhLi45
YmM1MDFkMGNiOGJlMjQ5ZGY3MWJkZDQzMjg1NjgzNTExZGI2YTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtMjEyLDE4ICsy
MTIsMjcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnN5bmNTdG9y
YWdlSW1tZWRpYXRlbHkoKQogICAgICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlLT5zY2hlZHVsZU9y
V3JpdGVNZW1vcnlTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6
OkZvcmNlSW1tZWRpYXRlV3JpdGU6Olllcyk7CiB9CiAKK0Nvb2tpZUFjY2VzcyBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmNvb2tpZUFjY2Vzcyhjb25zdCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzJiByZXNvdXJjZVN0YXRpc3RpYykgY29uc3QKK3sKKyAgICBpZiAoIWlzVGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZCgpICYmICFyZXNvdXJjZVN0YXRpc3RpYy5pc1ByZXZh
bGVudFJlc291cmNlKQorICAgICAgICByZXR1cm4gQ29va2llQWNjZXNzOjpCYXNlZE9uQ29va2ll
UG9saWN5OworCisgICAgaWYgKCFyZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24p
CisgICAgICAgIHJldHVybiBDb29raWVBY2Nlc3M6OkNhbm5vdFJlcXVlc3Q7CisgICAgCisgICAg
cmV0dXJuIENvb2tpZUFjY2Vzczo6T25seUlmR3JhbnRlZDsKK30KKwogdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgYXV0byYgc3ViRnJhbWVT
dGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihz
dWJGcmFtZURvbWFpbik7Ci0gICAgLy8gUmV0dXJuIGZhbHNlIGlmIHRoaXMgZG9tYWluIGNhbm5v
dCBhc2sgZm9yIHN0b3JhZ2UgYWNjZXNzLgotICAgIGlmIChzaG91bGRCbG9ja0FuZFB1cmdlQ29v
a2llcyhzdWJGcmFtZVN0YXRpc3RpYykpIHsKKyAgICBzd2l0Y2ggKGNvb2tpZUFjY2VzcyhzdWJG
cmFtZVN0YXRpc3RpYykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2Vzczo6Q2Fubm90UmVxdWVzdDoK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKCFzaG91bGRCbG9ja0FuZEtlZXBDb29raWVzKHN1YkZyYW1lU3RhdGlzdGlj
KSkgeworICAgIGNhc2UgQ29va2llQWNjZXNzOjpCYXNlZE9uQ29va2llUG9saWN5OgogICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3N0b3JlID0gbWFrZVJlZihzdG9yZSgpKSwgc3Vi
RnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIHN0b3JlLT5oYXNDb29raWVzKHN1YkZyYW1lRG9tYWluLCBbc3RvcmUgPSBzdG9yZS5jb3B5
UmVmKCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJv
b2wgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBzdG9yZS0+c3RhdGlzdGljc1F1
ZXVlKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHJlc3VsdF0gKCkgbXV0YWJsZSB7CkBAIC0yMzIsNiArMjQxLDkgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mIHMKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgQ29va2llQWNjZXNzOjpPbmx5SWZHcmFudGVkOgorICAgICAgICAvLyBI
YW5kbGVkIGJlbG93LgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3N0b3JlID0gbWFrZVJlZihzdG9yZSgpKSwgc3ViRnJhbWVEb21haW4gPSBz
dWJGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURv
bWFpbi5pc29sYXRlZENvcHkoKSwgZnJhbWVJRCwgcGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjQ4LDE2ICsyNjAs
MTggQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIAogICAgIGF1dG8mIHN1YkZyYW1lU3RhdGlzdGljID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3ViRnJhbWVEb21haW4pOwotICAgIGlmIChzaG91
bGRCbG9ja0FuZFB1cmdlQ29va2llcyhzdWJGcmFtZVN0YXRpc3RpYykpIHsKKyAgICBzd2l0Y2gg
KGNvb2tpZUFjY2VzcyhzdWJGcmFtZVN0YXRpc3RpYykpIHsKKyAgICBjYXNlIENvb2tpZUFjY2Vz
czo6Q2Fubm90UmVxdWVzdDoKICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dp
bmdFbmFibGVkKCksIElUUERlYnVnLCAiQ2Fubm90IGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICV7
cHVibGljfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIGJsb2NrZWQgaW4gdGhpcmQtcGFydHkgY29u
dGV4dHMgYW5kIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbiBhcyBmaXJzdC1w
YXJ0eS4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2Vz
cyk7CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXNob3VsZEJsb2NrQW5kS2Vl
cENvb2tpZXMoc3ViRnJhbWVTdGF0aXN0aWMpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk9f
SUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQgc3Rv
cmFnZSBhY2Nlc3MgdG8gJXtwdWJsaWN9cyBzaW5jZSBpdHMgY29va2llcyBhcmUgbm90IGJsb2Nr
ZWQgaW4gdGhpcmQtcGFydHkgY29udGV4dHMuIiwgc3ViRnJhbWVEb21haW4uc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgY2FzZSBDb29raWVBY2Nlc3M6OkJhc2VkT25Db29raWVQb2xpY3k6
CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBE
ZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQgc3RvcmFnZSBhY2Nlc3MgdG8gJXtwdWJsaWN9cyBzaW5j
ZSBpdHMgY29va2llcyBhcmUgbm90IGJsb2NrZWQgaW4gdGhpcmQtcGFydHkgY29udGV4dHMuIE5v
dGUgdGhhdCB0aGUgdW5kZXJseWluZyBjb29raWUgcG9saWN5IG1heSBzdGlsbCBibG9jayB0aGlz
IHRoaXJkLXBhcnR5IGZyb20gc2V0dGluZyBjb29raWVzLiIsIHN1YkZyYW1lRG9tYWluLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNj
ZXNzU3RhdHVzOjpIYXNBY2Nlc3MpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBDb29raWVB
Y2Nlc3M6Ok9ubHlJZkdyYW50ZWQ6CisgICAgICAgIC8vIEhhbmRsZWQgYmVsb3cuCisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIGF1dG8gdXNlcldhc1Byb21wdGVkRWFybGllciA9IGhhc1Vz
ZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoc3ViRnJhbWVTdGF0aXN0aWMsIHRv
cEZyYW1lRG9tYWluKTsKQEAgLTI4NSwxMyArMjk5LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWlu
SW4KICAgICBpZiAoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNz
U3RhdGlzdGljID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKTsKLSAgICBhdXRvIGNvb2tpZXNCbG9ja2VkQW5k
UHVyZ2VkID0gc2hvdWxkQmxvY2tBbmRQdXJnZUNvb2tpZXMoZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzU3RhdGlzdGljKTsKLQotICAgIC8vIFRoZSBkb21haW4gYWxyZWFkeSBoYXMgYWNjZXNz
IGlmIGl0cyBjb29raWVzIGFyZSBub3QgYmxvY2tlZC4KLSAgICBpZiAoIWNvb2tpZXNCbG9ja2Vk
QW5kUHVyZ2VkICYmICFzaG91bGRCbG9ja0FuZEtlZXBDb29raWVzKGRvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2Vzc1N0YXRpc3RpYykpCi0gICAgICAgIHJldHVybjsKLQogICAgIFJFTEVBU0VfTE9H
X0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIltUZW1wb3JhcnkgY29t
YmF0aWJpbGl0eSBmaXhdIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkIGZvciAle3B1YmxpY31z
IHVuZGVyIG9wZW5lciBwYWdlIGZyb20gJXtwdWJsaWN9cywgd2l0aCB1c2VyIGludGVyYWN0aW9u
IGluIHRoZSBvcGVuZWQgd2luZG93LiIsIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcy5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBvcGVuZXJEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0
b3JhZ2VBY2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVy
UGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCkgeyB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaAppbmRleCA2MzFmYzNkNGRmZTAwOTEyYmNjZmVjYzE2NDdmZjNlMDg0
M2QwZTYwLi5jMThjNTFkMWYzZTgzMWI2ZmFiOTQ0NGViODdlYjA4MmNiMDFiY2Q4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC05Nyw2
ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBDb29raWVBY2Nlc3MgY29va2llQWNjZXNzKGNvbnN0
IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKSBjb25zdDsKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVlc3RT
dG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDIyMDlhYzAwZWY4MWVkYjk1NGEwNWMxZWRk
ZTExMzk3ZTM1OWY0YTQuLjY0YmVlNWI4NGVlNWUxY2QzNzAyY2Q2ZjY2ZWE5MzBjODkzOTg3YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTc1LDYgKzc1
LDcgQEAgcHJpdmF0ZToKIH07CiAKIGVudW0gY2xhc3MgT3BlcmF0aW5nRGF0ZXNXaW5kb3cgOiBi
b29sIHsgTG9uZywgU2hvcnQgfTsKK2VudW0gY2xhc3MgQ29va2llQWNjZXNzIDogdWludDhfdCB7
IENhbm5vdFJlcXVlc3QsIEJhc2VkT25Db29raWVQb2xpY3ksIE9ubHlJZkdyYW50ZWQgfTsKIAog
Ly8gVGhpcyBpcyBhbHdheXMgY29uc3RydWN0ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9uIHRoZSBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUncyBzdGF0aXN0aWNzIHF1ZXVlLgogY2xhc3Mg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gewpAQCAtMTYwLDYgKzE2MSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCk7CiAgICAgYm9v
bCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7
IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpOworICAgIHZvaWQgc2V0SXNUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQg
PSBlbmFibGVkOyB9OworICAgIGJvb2wgaXNUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdFbmFibGVkOyB9Owog
CiAgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1l
RG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1N0YXR1cyk+JiYpID0gMDsKQEAgLTI2Nyw2ICsyNzAsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluIG1fZGVidWdTdGF0aWNQcmV2YWxlbnRSZXNvdXJjZSB7IFVSTCB7
IFVSTCgpLCAiaHR0cHM6Ly8zcmRwYXJ0eXRlc3R3ZWJraXQub3JnIl9zIH0gfTsKICAgICBib29s
IG1fZGVidWdMb2dnaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RlYnVnTW9kZUVu
YWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZGF0YVJlY29yZHNCZWluZ1JlbW92ZWQgeyBmYWxz
ZSB9OwogICAgIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0
IHsgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBlOWQwOGVlOTVlNzQxNGJjOWYz
NGM0MjVkMzhkNTk4ZGVjNzNmY2JiLi4xNWZiNDkyMzFlM2E5MDUyYTg0N2ZkNDM0YjIyZDEzZGFj
NjliZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtNDQ2LDYgKzQ0NiwyNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6aGFzQ29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLAogICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldElzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChtX25ldHdv
cmtTZXNzaW9uKSB7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29y
a1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICAgICAgc3RvcmFnZVNl
c3Npb24tPnNldElzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZChlbmFibGVkKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgcG9zdFRhc2soW3RoaXMsIGVuYWJsZWRdKCkgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGlj
c1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0b3Jl
LT5zZXRJc1RoaXJkUGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQoZW5hYmxlZCk7CisgICAgfSk7
Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWRDcmVhdGVOZXR3
b3JrUHJvY2VzcygpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA0MGFmZGI4ZTQ1ZGVk
OTZjY2M2OTRiMzY3N2NmODI4MjNjYWM1ZDM1Li42YzkyZTkxMzhkNDViZWVmYTk4MDNiZWQzMjY4
NzA0MGU3YWUzMmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oCkBAIC0xNzgsNyArMTc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FsbEhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdm9pZCBoYXND
b29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7Ci0KKyAgICB2b2lkIHNldElzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKICAgICB2b2lk
IG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTBiYzFkYmJjNWVl
YTdmYTZmY2IwZmEzYmIxZmE1N2Q1ZDgxOWYwYy4uNTQwMTNkYzU0NTI1MzUwNzlhYmE5NTkxOTgw
OTBhZmRkYTQxZTM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTEyNTgsOCArMTI1OCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sIGVuYWJsZWQsIENvbXBs
ZXRpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tp
ZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKGF1
dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCi0g
ICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2V0SXNUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdFbmFibGVkKGVuYWJsZWQpOworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMt
Pm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5zZXRJ
c1RoaXJkUGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQoZW5hYmxlZCk7CiAgICAgZWxzZQogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAx
MTJjZDJiYjVlYTAwNWM1OTM2YmM5YTYzNDQ0NTc1NWVmYjc3YjM0Li40MzY4NDBmNWE3ODY2YTRh
ZmE5YzdlNWIxOGJhMGY5YTlkYWFhYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMTcwLDYgKzE3MCw3IEBAIHZvaWQgTmV0d29y
a1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQog
ICAgIC8vIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBmb3J3YXJkZWQgc2luY2UgZGVidWcgbW9kZSBt
YXkgYmUgZW5hYmxlZCBhdCBydW50aW1lLgogICAgIGlmICghbV9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UuaXNFbXB0eSgpKQogICAgICAgICBtX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlLCBbXSB7IH0pOworICAgIG1f
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0SXNUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdFbmFi
bGVkKG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZCk7CiB9CiAKIHZvaWQgTmV0d29y
a1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKQpAQCAtMjE4LDYg
KzIxOSwxMyBAQCBib29sIE5ldHdvcmtTZXNzaW9uOjpzaG91bGREb3duZ3JhZGVSZWZlcnJlcigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fZG93bmdyYWRlUmVmZXJyZXI7CiB9CiAKK3ZvaWQgTmV0d29y
a1Nlc3Npb246OnNldElzVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgQVNTRVJUKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7CisgICAgbV90aGly
ZFBhcnR5Q29va2llQmxvY2tpbmdFbmFibGVkID0gZW5hYmxlZDsKKyAgICBpZiAobV9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKQorICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldElz
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZChtX3RoaXJkUGFydHlDb29raWVCbG9ja2lu
Z0VuYWJsZWQpOworfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OnN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdlYkNvcmU6
OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBhYTQ0MDU4NzhmMDQxMTJl
YTZhNmEwNWQyOWFhZDc4MGVlNDcwMjNiLi41YjE1ODJkNWIyNTViYTUyZDgxMzM5M2M1ZWRjNGZj
YTkxMTQ0OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJ
c29sYXRlZFNlc3Npb25zKCkgeyB9CiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJl
ckZvclRlc3RpbmcoYm9vbCk7CiAgICAgYm9vbCBzaG91bGREb3duZ3JhZGVSZWZlcnJlcigpIGNv
bnN0OwotICAgIHZvaWQgc2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3Rpbmco
Ym9vbCk7CisgICAgdm9pZCBzZXRJc1RoaXJkUGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQoYm9v
bCk7CiAjZW5kaWYKICAgICB2b2lkIHN0b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiYmKTsKICAgICB2b2lkIGhhbmRsZUFkQ2xpY2tBdHRyaWJ1dGlvbkNv
bnZlcnNpb24oV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uJiYsIGNvbnN0
IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVj
dFJlcXVlc3QpOwpAQCAtMTQyLDYgKzE0Miw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZTsKICAgICBib29sIG1fZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3Rp
bmdFdmVudDsKICAgICBib29sIG1fZG93bmdyYWRlUmVmZXJyZXIgeyB0cnVlIH07CisgICAgYm9v
bCBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAg
ICAgVW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+IG1fYWRDbGlja0F0dHJpYnV0
aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggZjNjNTZlYTU3YWM0M2NlMzYzNjA0YmViMmFj
ZmY4NWM4ZGI1NzdiZC4uYzZiMDk1OGIxNmRkYWM2ZjE0NGFkNWIxMWY1OTgzYThmYTE0MTZmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTEwOSw3ICsxMTA5LDcgQEAgTmV0d29ya1Nlc3Npb25D
b2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IE5ldHdvcmsKICAgICBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBwYXJhbWV0ZXJzLnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgOiBTaG91bGRJbmNsdWRlTG9j
YWxob3N0OjpObzsKICAgICBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUg
PSBwYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPyBFbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObzsKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01hbnVhbFByZXZhbGVudFJlc291cmNlOwotICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRJc1RoaXJk
UGFydHlDb29raWVCbG9ja2luZ0VuYWJsZWQocGFyYW1ldGVycy5lbmFibGVUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmcpOworICAgIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nRW5hYmxlZCA9IHBh
cmFtZXRlcnMuZW5hYmxlVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOwogICAgIHNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHBhcmFtZXRlcnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDNhYjdkMTZlNTEzYWZlZDkwNzFmY2YxMmYxZThkZmEyNjA4ZDQ5OTcuLjc4
NjQzZjZhZDE1ODcwYWFlNzNlNGZkYmRlZmQzNzNjYTI4ZDY1NTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0x
MC0yNSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9y
YWdlIEFjY2VzcyBBUEk6IE1ha2UgdGhlIEFQSSB3b3JrIHdpdGggdGhlIGV4cGVyaW1lbnRhbCAz
cmQtcGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM0MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NjI2OTQ5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRT
ZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQ2FsbGJhY2spOgorICAgICAgICAgICAgQm90
aCBvZiB0aGVzZSB3ZXJlIG1pc3NpbmcgcmVzZXRzIG9mIHRoZWlyIG1faGFzU2V0KkNhbGxiYWNr
IGJvb2xlYW5zLgorCiAyMDE5LTEwLTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlcG9ydCB0aGUgY29ycmVjdCBm
bGF2b3IgZm9yIGxlYWtzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBjZTMyMTM3NTZjOWYwNTBjOTZhNjgzYmM1MTlh
NGY5NGE0MzJmYzRlLi5kY2Y4OTlmMDk1NDRmNDZkZjI4ZTg1N2RkZDFiOTY1ZDU3YzQ2ZGJhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTIyMDcsNiArMjIwNyw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlz
dGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYgY29tCiB2
b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0U2hvdWxkRG93bmdyYWRlUmVmZXJy
ZXJDYWxsYmFjaygpCiB7CiAgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhTdGF0aXN0aWNzRGlk
U2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJDYWxsYmFja0lEKTsKKyAgICBtX2hhc1NldERvd25n
cmFkZVJlZmVycmVyQ2FsbGJhY2sgPSBmYWxzZTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhib29sIHZhbHVlLCBKU1ZhbHVl
UmVmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMjIyNCw2ICsyMjI1LDcgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhib29sIHZhbHVl
LCBKU1ZhbHVlUmUKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXRTaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQ2FsbGJhY2soKQogewogICAgIGNhbGxUZXN0UnVubmVyQ2Fs
bGJhY2soU3RhdGlzdGljc0RpZFNldFNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNDYWxsYmFj
a0lEKTsKKyAgICBtX2hhc1NldEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNDYWxsYmFjayA9IGZhbHNl
OwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsQ2xlYXJUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5NzZlZjI2OTI3ZjdjNzNkMDQyNGM1MWRh
ZDFiYzgxZGEzMzE1MmYuLmZhYWQ2ZjRjMzQ5YzQ4NzE1MGE1YWM1NDIwZThlZDI2M2IzOGVkZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0xMC0yNSAgSm9obiBXaWxhbmRlciAgPHdpbGFu
ZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlIEFjY2VzcyBBUEk6IE1ha2UgdGhlIEFQ
SSB3b3JrIHdpdGggdGhlIGV4cGVyaW1lbnRhbCAzcmQtcGFydHkgY29va2llIGJsb2NraW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MjgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NjI2OTQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnkt
ZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwt
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11
bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1p
bnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1w
cm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
Z3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tp
bmctZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLXdpdGgtY29va2llLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10
aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91
dC1jb29raWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQt
cGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
aGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2Nr
aW5nLXdpdGhvdXQtY29va2llLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEwLTI1ICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQcm9jZXNzIHNob3VsZCB1bnJl
Z2lzdGVyIGl0cyBpbnRlcmVzdCBmb3IgYSBTV1NlcnZlclJlZ2lzdHJhdGlvbiB3aGVuIGFsbCBp
dHMgY29ycmVzcG9uZGluZyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucyBhcmUgZGVzdHJveWVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1k
dWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQt
cGFydHktY29va2llLWJsb2NraW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MTEwYzdlN2QwNTQxNDg1NjljYzIwZTIyMjkyYzBmYTNiMmQzMzAyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWlu
dGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtc2l0
ZSBpZnJhbWUgY2FuIG5vdCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGdlbmVyYWwgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nIGlmIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRl
cmFjdGlvbiBhcyBmaXJzdC1wYXJ0eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGRlbmllZC4gZG9jdW1lbnQuY29va2llID09ICwgY29v
a2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRl
ci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0
aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmIyNjQxOTU2MmZiYjFmM2E3MjE5MzQyMWM0ZDVlMmRiNmYwYTdkNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9k
ZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtc2l0ZSBpZnJhbWUgY2FuIG5vdCBy
ZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJs
b2NraW5nIGlmIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbiBhcyBmaXJzdC1w
YXJ0eS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVy
bCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJs
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhP
ZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQu
ZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2
ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4p
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVz
c2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAg
VUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2Fw
ZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2Ug
cmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQiKSB7CisgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3Jh
Z2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2
YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10
by1uby1pbnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2lu
Zy5odG1sI2Nvb2tpZVNldCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2Nr
VGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlV
cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBs
ZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRo
YXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRS
ZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxl
bWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
L3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNz
LHVzZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05v
dFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2Vu
ZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVu
ZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTEwYzdlN2QwNTQxNDg1NjljYzIwZTIyMjkyYzBmYTNiMmQzMzAyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVl
LXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2Nr
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtc2l0
ZSBpZnJhbWUgY2FuIG5vdCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGdlbmVyYWwgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nIGlmIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRl
cmFjdGlvbiBhcyBmaXJzdC1wYXJ0eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGRlbmllZC4gZG9jdW1lbnQuY29va2llID09ICwgY29v
a2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRl
ci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVy
LWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU5
ZGVlMGQwNWMyZWU1MDFhNDBmMGYwZThmYTQ1MGYwYTUyYTA2ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRl
cmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sCkBA
IC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IGEgY3Jvc3Mtc2l0ZSBpZnJhbWUgY2FuIG5vdCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIHVuZGVy
IGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nIGlmIGl0IGhhcyBub3QgcmVjZWl2
ZWQgdXNlciBpbnRlcmFjdGlvbiBhcyBmaXJzdC1wYXJ0eS4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0g
LTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQ
QVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAg
ICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5v
IGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQiKSB7CisgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsg
Zmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlv
bi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sI2Nvb2tpZVNl
dCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tp
ZXModHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3Jh
Z2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VB
Y2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGROb3RC
ZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJh
bWUiOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
ZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmYwZjAz
OGE4YzkzYzU4OGZmYzgwZmFjY2YzNWJlOTJkOWFmMjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVy
LWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtc2l0ZSBpZnJhbWUgY2FuIHJl
cXVlc3QgYW5kIGJlIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgZ2VuZXJhbCB0aGlyZC1w
YXJ0eSBjb29raWUgYmxvY2tpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQ
YXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0
eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9ncmFudC13aXRoLXByb21wdC11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1i
bG9ja2luZy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYTdkNjE3YmJlZDc0ZGYwMDNhMDE0
N2UyMzgyZTJhZjk1YmJjNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmctZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLXNpdGUgaWZyYW1l
IGNhbiByZXF1ZXN0IGFuZCBiZSBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGdlbmVyYWwg
dGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKworICAg
ICAgICBjb25zdCBmaXJzdFBhcnR5VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAg
ICAgIGNvbnN0IHRoaXJkUGFydHlVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAg
ICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2
ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIpICE9PSAtMSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0
YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9y
aWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
YWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRl
clkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9j
a1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAi
I2Nvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
dGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/
bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlIyIgKyBmaXJzdFBhcnR5VXJsICsgIi9z
dG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLmh0bWwjY29va2llU2V0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJU
aGlyZC1wYXJ0eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQ
YXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlV
cmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5
IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGlyZC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3Jh
Z2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3Rz
U3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVu
dC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVz
ZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmln
aW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1w
cm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJv
bXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NmYwZjAzOGE4YzkzYzU4OGZmYzgwZmFjY2YzNWJlOTJkOWFmMjQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dy
YW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtc2l0ZSBp
ZnJhbWUgY2FuIHJlcXVlc3QgYW5kIGJlIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgZ2Vu
ZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29r
aWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09
IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9ncmFudC13aXRoLXByb21wdC11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMWZiNDNmZmY0NTJmMjc0YmVhNjc2NWYzZWRl
ODQxNzUxOTQ4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1j
b29raWUtYmxvY2tpbmcuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLXNpdGUgaWZyYW1lIGNhbiByZXF1ZXN0IGFu
ZCBiZSBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGdlbmVyYWwgdGhpcmQtcGFydHkgY29v
a2llIGJsb2NraW5nLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICBjb25zdCBmaXJzdFBhcnR5VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgICAg
IGNvbnN0IHRoaXJkUGFydHlVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclgg
PSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAg
ICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdo
dCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkp
LnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1Ro
aXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Nv
b2tpZVNldCIpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhp
cmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/bmFt
ZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlIyIgKyBmaXJzdFBhcnR5VXJsICsgIi9zdG9y
YWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLmh0bWwjY29va2llU2V0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGly
ZC1wYXJ0eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0
eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGRp
ZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRo
aXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJUaGlyZC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VB
Y2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3Rv
cmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5z
cmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVl
c3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJT
aG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5J
ZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNj
ZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1w
YXJ0eS1oYXMtY29va2llcy5odG1sCmluZGV4IDI5MmRlMjlkZDFhMWY3M2QxOTgwM2QyY2M2MWE1
YWJlOTYxODM5Y2UuLjg4YzhkNTE3NjBiMDM4ZWEyOGQwY2QwMDc2YThmMjY1ODM3NmU1NmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1p
Zi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1sCkBAIC0xLDQgKzEsMyBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8aGVhZD4KQEAgLTI1LDcgKzI0LDcgQEAKICAgICAgICAgY29uc3Qg
c3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Q7CiAgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAh
PT0gIiNmaXJzdFBhcnR5Q29va2llU2V0IikgewotICAgICAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSBzdGF0aXN0aWNzVXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQt
Y29va2llLnBocD9uYW1lPWZpcnN0UGFydHlDb29raWUmdmFsdWU9dmFsdWUjaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQt
cGFydHktaGFzLWNvb2tpZXMuaHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwt
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1h
Y2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29r
aWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjOGUzZGJhNTI3ZDgzZTE5NDlh
MmVkOTM2MDg4MWQ2YWUxMjJmNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhp
cmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBkb2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9y
IGEgM3JkLXBhcnR5IHdpdGggY29va2llcyB1bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tp
ZSBibG9ja2luZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSGFzIHN0
b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwg
Y29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0K
K1BBU1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNv
b2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tp
ZSI6InZhbHVlIn0KK1BBU1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0g
Zmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmly
c3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50
LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BB
U1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBz
ZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFy
dHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVy
YWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDI3NzY3ZjFiZjBmN2EzMmI4MTk5NDhhZWYxYzkxYmQyNGRlNTQyOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMt
c3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmct
d2l0aC1jb29raWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIGZvciBhIDNy
ZC1wYXJ0eSB3aXRoIGNvb2tpZXMgdW5kZXIgZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxv
Y2tpbmcuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCisgICAgICAgIGNvbnN0IGZpcnN0UGFydHlV
cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eVVy
bCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gdGhpcmRQYXJ0eVVybCkgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmlu
ZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIjbGFzdFN0
ZXAiKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgICAgICAgICBz
d2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIi
OgorICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHN0YXJ0ZWQgb3V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBzdGFydGVkIG91dCBsb2dnZWQg
Zm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgc3Rh
cnRlZCBvdXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFNldCBhIGNvb2tpZSBmb3IgdGhlIHRoaXJkLXBhcnR5IGFuZCBjb250
aW51ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0
aGlyZFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9u
YW1lPWZpcnN0UGFydHlDb29raWUmdmFsdWU9dmFsdWUjIiArIGZpcnN0UGFydHlVcmwgKyAiL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLXdpdGgtY29va2llLmh0bWwjc3RlcDEiOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBj
YXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAyIjsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm8gZ2VuZXJhbCB0aGlyZC1wYXJ0
eSBjb29raWUgYmxvY2tpbmcsIG5vIHVzZXIgaW50ZXJhY3Rpb24sIG5vdCBwcmV2YWxlbnQuCisg
ICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0g
dGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNj
ZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAg
ICAgICAgICAgICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCB0
aGlyZC1wYXJ0eSB1c2VyIGludGVyYWN0aW9uLCBub3QgcHJldmFsZW50LgorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhp
cmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFy
dHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBh
cnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9
IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFj
Y2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGdlbmVyYWwg
dGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIg
aW50ZXJhY3Rpb24sIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQg
bG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCAr
ICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1s
I3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIj
c3RlcDQiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA1IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUg
YmxvY2tpbmcsIGZpcnN0LSBhbmQgdGhpcmQtcGFydHkgdXNlciBpbnRlcmFjdGlvbiwgbm90IHBy
ZXZhbGVudC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHRo
aXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vz
cy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJsYXN0U3RlcCI7CisgICAgICAgICAgICAgICAgICAgIC8vIEdlbmVyYWwg
dGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIg
aW50ZXJhY3Rpb24sIHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgbm90IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQ
YXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlm
cmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwt
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5k
ZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjOGUzZGJhNTI3ZDgzZTE5NDlhMmVkOTM2MDg4MWQ2YWUxMjJm
NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLXdpdGgtY29va2llLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBk
b2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdpdGggY29va2llcyB1
bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29r
aWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09
IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBk
b2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNl
cnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1MgSGFzIHN0b3Jh
Z2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29v
a2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BB
U1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBz
ZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3Vt
ZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2Ut
YWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29v
a2llLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3Jh
Z2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgt
Y29va2llLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAzOTVjY2NiNjYyYzM5NmM4ZDMwNzc2ZGI2MDYyZWJi
ZTNkMzIwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctd2l0aC1jb29raWUuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIGZvciBh
IDNyZC1wYXJ0eSB3aXRoIGNvb2tpZXMgdW5kZXIgZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUg
YmxvY2tpbmcuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNv
bnN0IGZpcnN0UGFydHlVcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29u
c3QgdGhpcmRQYXJ0eVVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsK
KworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAg
aWYgKGV2ZW50Lm9yaWdpbiA9PT0gdGhpcmRQYXJ0eVVybCkgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVw
bGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46
ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPT09ICIjbGFzdFN0ZXAiKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBydW5UZXN0cygpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAg
ICAgICAgICBjYXNlICIiOgorICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHN0YXJ0ZWQgb3V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBzdGFy
dGVkIG91dCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
Zmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Rmlyc3QtcGFydHkgc3RhcnRlZCBvdXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhIGNvb2tpZSBmb3IgdGhlIHRoaXJk
LXBhcnR5IGFuZCBjb250aW51ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9z
ZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFydHlDb29raWUmdmFsdWU9dmFsdWUjIiArIGZpcnN0
UGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVy
YWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLmh0bWwjc3RlcDEiOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAyIjsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm8gZ2Vu
ZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcsIG5vIHVzZXIgaW50ZXJhY3Rpb24sIG5v
dCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgIGlmcmFt
ZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMv
aGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVt
ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAi
I3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMyI7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFydHkgY29v
a2llIGJsb2NraW5nLCB0aGlyZC1wYXJ0eSB1c2VyIGludGVyYWN0aW9uLCBub3QgcHJldmFsZW50
LgorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJh
bWVFbGVtZW50LnNyYyA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
L2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7
CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgICAg
IC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRo
aXJkLXBhcnR5IHVzZXIgaW50ZXJhY3Rpb24sIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJz
dFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0
eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFy
dHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0g
dGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNj
ZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhbCB0aGly
ZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcsIGZpcnN0LSBhbmQgdGhpcmQtcGFydHkgdXNlciBpbnRl
cmFjdGlvbiwgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVF
bGVtZW50LnNyYyA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hh
cy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFudEFjY2VzcyI7
CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJsYXN0U3RlcCI7CisgICAgICAgICAgICAgICAg
ICAgIC8vIEdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRo
aXJkLXBhcnR5IHVzZXIgaW50ZXJhY3Rpb24sIHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgbm90IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0
b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2ll
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctd2l0aG91dC1jb29raWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM0YzkyOGFkYWE5NzFhM2Q4ZmM5YjNlMDZmYWFlMDJhOTU0NjM0YzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNj
ZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29v
a2llLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBkb2N1bWVu
dC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdpdGhvdXQgY29va2llcyB1bmRl
ciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9
PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3Rv
cmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lk
ZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tp
ZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8g
c3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXIt
c2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNv
b2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2ll
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFz
LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5n
LXdpdGhvdXQtY29va2llLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNlOTE3NmRlYjYwNDFh
MjJjZTEyMGU0ZmIzMmM1NmNhZGYwZjJkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJh
bC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgZG9j
dW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIGZvciBhIDNyZC1wYXJ0eSB3aXRob3V0IGNvb2tpZXMg
dW5kZXIgZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworCisgICAgICAgIGNvbnN0IGZpcnN0UGFydHlVcmwgPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eVVybCA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gdGhpcmRQYXJ0eVVybCkg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNT
ICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20g
YW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIjbGFzdFN0ZXAiKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIiOgorICAgICAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJk
LXBhcnR5IHN0YXJ0ZWQgb3V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGlyZC1wYXJ0eSBzdGFydGVkIG91dCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgc3RhcnRlZCBvdXQgbG9nZ2VkIGZvciB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgICAgICAgICBydW5UZXN0cygp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAyIjsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm8g
Z2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcsIG5vIHVzZXIgaW50ZXJhY3Rpb24s
IG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJj
ZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNj
ZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFy
dHkgY29va2llIGJsb2NraW5nLCB0aGlyZC1wYXJ0eSB1c2VyIGludGVyYWN0aW9uLCBub3QgcHJl
dmFsZW50LgorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZnJhbWVFbGVtZW50LnNyYyA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVz
b3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFu
dEFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAg
ICAgICAgICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJz
dC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIgaW50ZXJhY3Rpb24sIG5vdCBwcmV2YWxlbnQuCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
Zmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Rmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0
b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxl
bWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICAgICAgLy8g
R2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcsIGZpcnN0LSBhbmQgdGhpcmQtcGFy
dHkgdXNlciBpbnRlcmFjdGlvbiwgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3Mv
cmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGROb3RH
cmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJsYXN0U3RlcCI7CisgICAg
ICAgICAgICAgICAgICAgIC8vIEdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCBm
aXJzdC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIgaW50ZXJhY3Rpb24sIHByZXZhbGVudC4KKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFy
dHkgbm90IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNv
dXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50
QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0cygpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0
b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdp
dGhvdXQtY29va2llLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Yzky
OGFkYWE5NzFhM2Q4ZmM5YjNlMDZmYWFlMDJhOTU0NjM0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVu
ZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBkb2N1bWVudC5oYXNTdG9yYWdlQWNj
ZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdpdGhvdXQgY29va2llcyB1bmRlciBnZW5lcmFsIHRoaXJk
LXBhcnR5IGNvb2tpZSBibG9ja2luZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2Vl
biBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRv
Y3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2ll
cyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMg
c2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3Mu
IGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29v
a2llcyIKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tp
ZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwt
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdl
bmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGM1MWI1NjBhMDFiYmE1ODIxYWYxMDA0ZTEzZDc3MTdmYmQyYThhMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0
aG91dC1jb29raWUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlw
dGlvbigiVGVzdHMgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIGZvciBhIDNyZC1wYXJ0eSB3
aXRob3V0IGNvb2tpZXMgdW5kZXIgZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcu
Iik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGZpcnN0
UGFydHlVcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29uc3QgdGhpcmRQ
YXJ0eVVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gdGhpcmRQYXJ0eVVybCkgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5k
YXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJ
TCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVu
dC5vcmlnaW4pOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIj
bGFzdFN0ZXAiKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBydW5UZXN0
cygpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgICAg
ICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBj
YXNlICIiOgorICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHN0YXJ0ZWQgb3V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBzdGFydGVkIG91dCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0
eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFy
dHkgc3RhcnRlZCBvdXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAg
ICAgICAgICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDEi
OgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAyIjsK
KyAgICAgICAgICAgICAgICAgICAgLy8gTm8gZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxv
Y2tpbmcsIG5vIHVzZXIgaW50ZXJhY3Rpb24sIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVy
bCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5o
dG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAg
ICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nLCB0aGlyZC1wYXJ0
eSB1c2VyIGludGVyYWN0aW9uLCBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBu
b3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHRoaXJkUGFy
dHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGdlbmVyYWwgdGhpcmQt
cGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIgaW50ZXJh
Y3Rpb24sIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2Vk
IGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlm
cmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGlj
eVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3Rl
cDQiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1
IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxv
Y2tpbmcsIGZpcnN0LSBhbmQgdGhpcmQtcGFydHkgdXNlciBpbnRlcmFjdGlvbiwgbm90IHByZXZh
bGVudC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxk
QmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHRoaXJk
UGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1p
ZnJhbWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJsYXN0U3RlcCI7CisgICAgICAgICAgICAgICAgICAgIC8vIEdlbmVyYWwgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nLCBmaXJzdC0gYW5kIHRoaXJkLXBhcnR5IHVzZXIgaW50
ZXJhY3Rpb24sIHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgbm90IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0
eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFt
ZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>