<?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>227327</bug_id>
          
          <creation_ts>2021-06-23 16:05:08 -0700</creation_ts>
          <short_desc>[webkitcorepy] Add test suite with temp directory</short_desc>
          <delta_ts>2021-06-28 12:57:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225616</see_also>
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772096</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-23 16:05:08 -0700</bug_when>
    <thetext>We end up duplicating quite a bit of code which creates and deletes a temporary directory during unit testing. It&apos;s pretty easy to build a shared TestCase class which reduces our duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772098</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-23 16:06:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/79697909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772101</commentid>
    <comment_count>2</comment_count>
      <attachid>432101</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-23 16:12:34 -0700</bug_when>
    <thetext>Created attachment 432101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773052</commentid>
    <comment_count>3</comment_count>
      <attachid>432391</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-28 07:06:52 -0700</bug_when>
    <thetext>Created attachment 432391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773093</commentid>
    <comment_count>4</comment_count>
      <attachid>432391</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2021-06-28 09:24:59 -0700</bug_when>
    <thetext>Comment on attachment 432391
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/unittest.py:29
&gt; +from unittest import TestCase

whats the value in overriding the name? I think importing unitest and something like webkitunittest would be a lot clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773101</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-28 09:44:40 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #4)
&gt; Comment on attachment 432391 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432391&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/unittest.py:29
&gt; &gt; +from unittest import TestCase
&gt; 
&gt; whats the value in overriding the name? I think importing unitest and
&gt; something like webkitunittest would be a lot clearer.

Mostly because then something importing it would be `from webkitcorepy.webkitunittest import &lt;class&gt;` which seemed redundant to me...would `from webkitcorepy.testing` be better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773119</commentid>
    <comment_count>6</comment_count>
      <attachid>432407</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-28 10:27:17 -0700</bug_when>
    <thetext>Created attachment 432407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773145</commentid>
    <comment_count>7</comment_count>
      <attachid>432411</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-28 11:45:37 -0700</bug_when>
    <thetext>Created attachment 432411
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773162</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 12:57:23 -0700</bug_when>
    <thetext>Committed r279347 (239215@main): &lt;https://commits.webkit.org/239215@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432411.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432101</attachid>
            <date>2021-06-23 16:12:34 -0700</date>
            <delta_ts>2021-06-28 07:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227327-20210623161233.patch</filename>
            <type>text/plain</type>
            <size>34446</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3OTE5NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDIxLTA2LTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgdGVzdCBzdWl0ZSB3aXRoIHRlbXAgZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjczMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5Njk3OTA5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGhhZCBzb21lIGR1cGxpY2F0ZWQg
Y29kZSB3aGljaCBzZXQgdXAsIHRoZW4gY2xlYW5lZCB1cCBhIHRlbXBvcmFyeQorICAgICAgICBk
aXJlY3RvcnkgYXNzb2NpYXRlZCB3aXRoIGEgdGVzdC4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIG93
bmVkIGJ5IGEKKyAgICAgICAgYmFzZSBjbGFzcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSB0ZXN0
IHN1aXRlcy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoUGF0aFRlc3RDYXNlKTogQ3Jl
YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBiZWZvcmUgYSB0ZXN0IHN0YXJ0cywgZGVsZXRlIGl0
IGFmdGVyLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Rlc3QvY2Fub25pY2FsaXplX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdENhbm9uaWNh
bGl6ZSk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoVGVzdENoZWNrb3V0KTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weToK
KyAgICAgICAgKFRlc3RGaW5kKTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5
OgorICAgICAgICAoVGVzdEdpdCk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NjbV91bml0dGVzdC5w
eToKKyAgICAgICAgKFRlc3RTY20pOiBBZG9wdCBQYXRoVGVzdENhc2UuCisgICAgICAgICogU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zZXR1cF9naXRfc3Zu
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFNldHVwR2l0U3ZuKTogQWRvcHQgUGF0aFRlc3RD
YXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdExvY2FsU3ZuKTogQWRvcHQgUGF0
aFRlc3RDYXNlLgorCiAyMDIxLTA2LTIzICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgQXBwIFByaXZhY3kgUmVwb3J0IGNvZGUgZnJv
bSBXZWJLaXRBZGRpdGlvbnMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS91bml0dGVzdC5weQkobm9uZXhp
c3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQKKworaW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgdGVtcGZpbGUK
KworZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKKworCitjbGFzcyBQYXRoVGVzdENhc2Uo
VGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJycKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihQYXRoVGVzdENhc2UsIHNlbGYpLl9faW5p
dF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250YWluZXIgPSBOb25lCisgICAg
ICAgIHNlbGYucGF0aCA9IE5vbmUKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2Vs
Zi5jb250YWluZXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgc2VsZi5wYXRoID0gb3Mu
cGF0aC5qb2luKHNlbGYuY29udGFpbmVyLCBzZWxmLmJhc2VwYXRoKQorICAgICAgICBvcy5tYWtl
ZGlycyhzZWxmLnBhdGgpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHNodXRp
bC5ybXRyZWUoc2VsZi5jb250YWluZXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKKyAgICAgICAgc2Vs
Zi5jb250YWluZXIgPSBOb25lCisgICAgICAgIHNlbGYucGF0aCA9IE5vbmUKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2Fub25pY2Fs
aXplX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2Fub25pY2FsaXplX3VuaXR0ZXN0LnB5CShyZXZp
c2lvbiAyNzkxOTMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS90ZXN0L2Nhbm9uaWNhbGl6ZV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCwxNSArMjAsMjAg
QEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IHVuaXR0
ZXN0CitpbXBvcnQgb3MKIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUK
K2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlLCB1bml0dGVzdAogZnJvbSB3
ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1RpbWUKIGZyb20gd2Via2l0c2Nt
cHkgaW1wb3J0IHByb2dyYW0sIG1vY2tzLCBsb2NhbCwgQ29tbWl0LCBDb250cmlidXRvcgogCiAK
LWNsYXNzIFRlc3RDYW5vbmljYWxpemUodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAn
L21vY2svcmVwb3NpdG9yeScKK2NsYXNzIFRlc3RDYW5vbmljYWxpemUodW5pdHRlc3QuUGF0aFRl
c3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9zaXRvcnknCisKKyAgICBkZWYgc2V0
VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RDYW5vbmljYWxpemUsIHNlbGYpLnNldFVwKCkK
KyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkKKyAgICAg
ICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAogICAgIGRlZiB0
ZXN0X2ludmFsaWQoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpLCBtb2Nrcy5s
b2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE1vY2tUaW1lOgpJbmRleDog
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9jaGVj
a291dF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5CShyZXZpc2lv
biAyNzkxOTMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEs
NCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDE1ICsyMCwyMCBAQAogIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2lt
cG9ydCBvcwogCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3
ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHVuaXR0ZXN0CiBmcm9tIHdlYmtpdGNv
cmVweS5tb2NrcyBpbXBvcnQgVGltZSBhcyBNb2NrVGltZQogZnJvbSB3ZWJraXRzY21weSBpbXBv
cnQgcHJvZ3JhbSwgbW9ja3MsIGxvY2FsCiAKIAotY2xhc3MgVGVzdENoZWNrb3V0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBwYXRoID0gJy9tb2NrL3JlcG9zaXRvcnknCitjbGFzcyBUZXN0Q2hl
Y2tvdXQodW5pdHRlc3QuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9z
aXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RDaGVja291
dCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRo
LCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLnN2
bicpKQogCiAgICAgZGVmIHRlc3RfY2hlY2tvdXRfZ2l0KHNlbGYpOgogICAgICAgICB3aXRoIE91
dHB1dENhcHR1cmUoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2
bigpLCBNb2NrVGltZToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2ZpbmRfdW5pdHRl
c3QucHkJKHJldmlzaW9uIDI3OTE5MykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMjEsMTggKzIxLDIzIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBqc29uCitpbXBvcnQg
b3MKIGltcG9ydCBzaHV0aWwKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CiAKIGZy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHVuaXR0
ZXN0CiBmcm9tIHdlYmtpdGNvcmVweS5tb2NrcyBpbXBvcnQgVGltZSBhcyBNb2NrVGltZQogZnJv
bSB3ZWJraXRzY21weSBpbXBvcnQgcHJvZ3JhbSwgbW9ja3MKIAogCi1jbGFzcyBUZXN0RmluZCh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5JworY2xhc3Mg
VGVzdEZpbmQodW5pdHRlc3QuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3Jl
cG9zaXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RGaW5k
LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgs
ICcuZ2l0JykpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3Zu
JykpCiAKICAgICBkZWYgdGVzdF9iYXNpY19naXQoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0
Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3Mu
bG9jYWwuU3ZuKCksIE1vY2tUaW1lOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRf
dW5pdHRlc3QucHkJKHJldmlzaW9uIDI3OTE5MykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0yMSwxOCArMjEsMTkgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCi1pbXBv
cnQgc2h1dGlsCi1pbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVzdAogCiBmcm9tIGRhdGV0
aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHJ1biwgTG9nZ2Vy
Q2FwdHVyZSwgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHJ1biwgdW5p
dHRlc3QsIExvZ2dlckNhcHR1cmUsIE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0Y29yZXB5Lm1v
Y2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21t
aXQsIGxvY2FsLCBtb2NrcywgcmVtb3RlCiAKIAotY2xhc3MgVGVzdEdpdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5JworY2xhc3MgVGVzdEdpdCh1bml0
dGVzdC5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKwor
ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdEdpdCwgc2VsZikuc2V0VXAo
KQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpKQogCiAg
ICAgZGVmIHRlc3RfZGV0ZWN0aW9uKHNlbGYpOgogICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUo
KSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2bigpOgpAQCAtNzks
NjUgKzgwLDUyIEBAIGNsYXNzIFRlc3RHaXQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbC5HaXQoc2VsZi5wYXRoKS5kZWZhdWx0X2JyYW5jaCwg
J21haW4nKQogCiAgICAgZGVmIHRlc3Rfc2NtX3R5cGUoc2VsZik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIHdpdGgg
bW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3Jt
YXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChkaXJuYW1lKS5pc19naXQpCi0gICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShsb2NhbC5HaXQoZGlybmFtZSkuaXNfc3ZuKQotCi0gICAg
ICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCBnaXRfc3ZuPVRydWUsIHJlbW90
ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBMb2dn
ZXJDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChk
aXJuYW1lKS5pc19naXQpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdp
dChkaXJuYW1lKS5pc19zdm4pCi0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRp
bC5ybXRyZWUoZGlybmFtZSkKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRo
LCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2NrVGlt
ZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdp
dChzZWxmLnBhdGgpLmlzX2dpdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobG9jYWwu
R2l0KHNlbGYucGF0aCkuaXNfc3ZuKQorCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KHNl
bGYucGF0aCwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0
KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGxvY2FsLkdpdChzZWxmLnBhdGgpLmlzX2dpdCkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoc2VsZi5wYXRoKS5pc19zdm4pCiAKICAgICBkZWYgdGVz
dF9pbmZvKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0gdGVtcGZp
bGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCBy
ZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2NrVGltZSwg
TG9nZ2VyQ2FwdHVyZSgpOgotICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
bG9jYWwuR2l0LkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZGljdCgpLCBsb2NhbC5HaXQoZGlybmFtZSkuaW5mbygpKQotCi0gICAgICAgICAgICB3aXRo
IG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCBnaXRfc3ZuPVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1w
bGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lOgotICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RGljdEVxdWFsKAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAnUGF0aCc6ICcuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZXBv
c2l0b3J5IFJvb3QnOiAnZ2l0QGV4YW1wbGUub3JnOi9tb2NrL3JlcG9zaXRvcnknLAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ1VSTCc6ICdnaXRAZXhhbXBsZS5vcmc6L21vY2svcmVwb3NpdG9y
eS9tYWluJywKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZXZpc2lvbic6ICc5JywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdOb2RlIEtpbmQnOiAnZGlyZWN0b3J5JywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdTY2hlZHVsZSc6ICdub3JtYWwnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgJ0xhc3QgQ2hhbmdlZCBBdXRob3InOiAnamJlZGFyZEBhcHBsZS5jb20nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBSZXYnOiAnOScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnTGFzdCBDaGFuZ2VkIERhdGUnOiBkYXRldGltZS5mcm9tdGltZXN0YW1wKDE2MDE2
NjgwMDApLnN0cmZ0aW1lKCclWS0lbS0lZCAlSDolTTolUycpLAotICAgICAgICAgICAgICAgICAg
ICB9LCBsb2NhbC5HaXQoZGlybmFtZSkuaW5mbygpLAotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKKyAgICAgICAg
d2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzpt
b2NrL3JlcG9zaXRvcnknKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKKyAgICAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6CisgICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KCksIGxvY2FsLkdpdChzZWxmLnBhdGgpLmluZm8o
KSkKKworICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIGdpdF9zdm49VHJ1
ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6bW9jay9yZXBvc2l0b3J5JyksIE1vY2tUaW1lOgor
ICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAnUGF0aCc6ICcuJywKKyAgICAgICAgICAgICAgICAgICAgJ1JlcG9z
aXRvcnkgUm9vdCc6ICdnaXRAZXhhbXBsZS5vcmc6bW9jay9yZXBvc2l0b3J5JywKKyAgICAgICAg
ICAgICAgICAgICAgJ1VSTCc6ICdnaXRAZXhhbXBsZS5vcmc6bW9jay9yZXBvc2l0b3J5L21haW4n
LAorICAgICAgICAgICAgICAgICAgICAnUmV2aXNpb24nOiAnOScsCisgICAgICAgICAgICAgICAg
ICAgICdOb2RlIEtpbmQnOiAnZGlyZWN0b3J5JywKKyAgICAgICAgICAgICAgICAgICAgJ1NjaGVk
dWxlJzogJ25vcm1hbCcsCisgICAgICAgICAgICAgICAgICAgICdMYXN0IENoYW5nZWQgQXV0aG9y
JzogJ2piZWRhcmRAYXBwbGUuY29tJywKKyAgICAgICAgICAgICAgICAgICAgJ0xhc3QgQ2hhbmdl
ZCBSZXYnOiAnOScsCisgICAgICAgICAgICAgICAgICAgICdMYXN0IENoYW5nZWQgRGF0ZSc6IGRh
dGV0aW1lLmZyb210aW1lc3RhbXAoMTYwMTY2ODAwMCkuc3RyZnRpbWUoJyVZLSVtLSVkICVIOiVN
OiVTJyksCisgICAgICAgICAgICAgICAgfSwgbG9jYWwuR2l0KHNlbGYucGF0aCkuaW5mbygpLAor
ICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X3JldmlzaW9uKHNlbGYpOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAg
ICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lKSwgTW9ja1RpbWUsIExvZ2dlckNh
cHR1cmUoKToKLSAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdp
dC5FeGNlcHRpb24pOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249MSkpCi0KLSAgICAgICAgICAgIHdp
dGggbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIGdpdF9zdm49VHJ1ZSwgcmVtb3RlPSdnaXRAZXhh
bXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBhdGgpKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUo
KToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxQG1haW4nLCBzdHIobG9jYWwu
R2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0xKSkpCi0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnMkBtYWluJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNp
b249MikpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMUBicmFuY2gtYScs
IHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTMpKSkKLSAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCczQG1haW4nLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUpLmNv
bW1pdChyZXZpc2lvbj00KSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4y
QGJyYW5jaC1iJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249NSkpKQot
ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScsIHN0cihsb2Nh
bC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTYpKSkKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCcyLjNAYnJhbmNoLWInLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1p
dChyZXZpc2lvbj03KSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEBtYWlu
Jywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249OCkpKQotCi0gICAgICAg
ICAgICAgICAgIyBPdXQtb2YtYm91bmRzIGNvbW1pdAotICAgICAgICAgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lv
bj0xMCkpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5h
bWUpCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIE1vY2tUaW1lLCBM
b2dnZXJDYXB0dXJlKCk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2Fs
LkdpdC5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
bG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTEpKQorCisgICAgICAgIHdpdGgg
bW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dpdEBleGFt
cGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgp
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMUBtYWluJywgc3RyKGxvY2FsLkdpdChz
ZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcyQG1haW4nLCBzdHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTIp
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMUBicmFuY2gtYScsIHN0cihsb2Nh
bC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MykpKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnM0BtYWluJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZp
c2lvbj00KSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjJAYnJhbmNoLWInLCBz
dHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTUpKSkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRo
KS5jb21taXQocmV2aXNpb249NikpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4z
QGJyYW5jaC1iJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj03KSkp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QG1haW4nLCBzdHIobG9jYWwuR2l0KHNl
bGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTgpKSkKKworICAgICAgICAgICAgIyBPdXQtb2YtYm91
bmRzIGNvbW1pdAorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5HaXQu
RXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGxvY2Fs
LkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xMCkpCiAKICAgICBkZWYgdGVzdF9jb21t
aXRfaGFzaChzZWxmKToKICAgICAgICAgZm9yIG1vY2sgaW4gW21vY2tzLmxvY2FsLkdpdChzZWxm
LnBhdGgpLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCBnaXRfc3ZuPVRydWUpXToKQEAgLTI4
NSw3ICsyNzMsNyBAQCBjbGFzcyBUZXN0R2l0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRl
ZiB0ZXN0X2NvbW1pdHMoc2VsZik6CiAgICAgICAgIGZvciBtb2NrIGluIFttb2Nrcy5sb2NhbC5H
aXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1UcnVlKV06
Ci0gICAgICAgICAgICB3aXRoIG1vY2s6CisgICAgICAgICAgICB3aXRoIG1vY2ssIExvZ2dlckNh
cHR1cmUoKToKICAgICAgICAgICAgICAgICBnaXQgPSBsb2NhbC5HaXQoc2VsZi5wYXRoKQogICAg
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KFsK
ICAgICAgICAgICAgICAgICAgICAgZ2l0LmNvbW1pdChoYXNoPSdiYWU1ZDFlOScpLApAQCAtMjk2
LDcgKzI4NCw3IEBAIGNsYXNzIFRlc3RHaXQodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVm
IHRlc3RfY29tbWl0c19icmFuY2goc2VsZik6CiAgICAgICAgIGZvciBtb2NrIGluIFttb2Nrcy5s
b2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1U
cnVlKV06Ci0gICAgICAgICAgICB3aXRoIG1vY2s6CisgICAgICAgICAgICB3aXRoIG1vY2ssIExv
Z2dlckNhcHR1cmUoKToKICAgICAgICAgICAgICAgICBnaXQgPSBsb2NhbC5HaXQoc2VsZi5wYXRo
KQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LkVuY29kZXIoKS5kZWZh
dWx0KFsKICAgICAgICAgICAgICAgICAgICAgZ2l0LmNvbW1pdChoYXNoPSc2MjE2NTJhZCcpLApJ
bmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVz
dC9zY21fdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zY21fdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3
OTE5MykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3Qvc2NtX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxMyArMjAsMTkgQEAK
ICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IG9zCiAKLWlt
cG9ydCB1bml0dGVzdAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHdl
YmtpdHNjbXB5IGltcG9ydCBsb2NhbCwgbW9ja3MKIAogCi1jbGFzcyBUZXN0U2NtKHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBwYXRoID0gJy9tb2NrL2RpcmVjdG9yeScKK2NsYXNzIFRlc3RTY20o
dW5pdHRlc3QuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9zaXRvcnkn
CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RTY20sIHNlbGYpLnNl
dFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkK
KyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAogICAg
IGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQo
KSwgbW9ja3MubG9jYWwuU3ZuKCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS90ZXN0L3NldHVwX2dpdF9zdm5fdW5pdHRlc3QucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9zZXR1cF9naXRfc3ZuX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzkxOTMpCisrKyBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NldHVwX2dp
dF9zdm5fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDEyMyArMjEsMTEwIEBACiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKIGltcG9ydCBvcwotaW1wb3J0IHNodXRpbAotaW1wb3J0IHRlbXBmaWxl
Ci1pbXBvcnQgdW5pdHRlc3QKIAotZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJlCitmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdW5pdHRlc3QKIGZyb20gd2Via2l0Y29y
ZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBwcm9ncmFtLCBtb2NrcwogCiAKLWNsYXNzIFRlc3RTZXR1cEdpdFN2bih1bml0dGVzdC5UZXN0
Q2FzZSk6CitjbGFzcyBUZXN0U2V0dXBHaXRTdm4odW5pdHRlc3QuUGF0aFRlc3RDYXNlKToKICAg
ICBnaXRfcmVtb3RlID0gJ2dpdEBleGFtcGxlLm9yZzpFeGFtcGxlJwogICAgIHN2bl9yZW1vdGUg
PSAnaHR0cHM6Ly9zdm4uZXhhbXBsZS5vcmcvcmVwb3NpdG9yeS9leGFtcGxlJworICAgIGJhc2Vw
YXRoID0gJ21vY2svcmVwb3NpdG9yeScKIAotICAgIGRlZiB0ZXN0X3N2bihzZWxmKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAgICAg
ICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdCgp
LCBtb2Nrcy5sb2NhbC5Tdm4oZGlybmFtZSwgcmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSksIE1vY2tU
aW1lOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5tYWluKAot
ICAgICAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsKSwKLSAgICAgICAgICAg
ICAgICAgICAgcGF0aD1kaXJuYW1lLAotICAgICAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNl
bGYuc3ZuX3JlbW90ZSwKLSAgICAgICAgICAgICAgICApKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgJ0Nhbm5vdCBzZXR1cCBnaXQtc3Zu
IG9uIFN1YnZlcnNpb24gcmVwb3NpdG9yeVxuJykKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg
ICAgIHN1cGVyKFRlc3RTZXR1cEdpdFN2biwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rp
cihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5w
YXRoLmpvaW4oc2VsZi5wYXRoLCAnLnN2bicpKQogCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCisgICAgZGVmIHRlc3Rfc3ZuKHNlbGYpOgorICAg
ICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KCks
IG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgsIHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUpLCBNb2Nr
VGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5tYWluKAorICAg
ICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywpLAorICAgICAgICAgICAgICAgIHBh
dGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3Rl
LAorICAgICAgICAgICAgKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRl
cnIuZ2V0dmFsdWUoKSwgJ0Nhbm5vdCBzZXR1cCBnaXQtc3ZuIG9uIFN1YnZlcnNpb24gcmVwb3Np
dG9yeVxuJykKIAogICAgIGRlZiB0ZXN0X2VtcHR5KHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIE91
dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIHJlbW90
ZT1zZWxmLmdpdF9yZW1vdGUpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihy
ZW1vdGU9c2VsZi5zdm5fcmVtb3RlLnNwbGl0KCc6Ly8nKVsxXSksIE1vY2tUaW1lOgotICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAotICAgICAgICAgICAg
ICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsKSwKLSAgICAgICAgICAgICAgICAgICAgcGF0
aD1kaXJuYW1lLAotICAgICAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90
ZSwKLSAgICAgICAgICAgICAgICApKQorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBj
YXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90
ZSksIG1vY2tzLmxvY2FsLlN2bigpLCBtb2Nrcy5yZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9y
ZW1vdGUuc3BsaXQoJzovLycpWzFdKSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0
LXN2bicsKSwKKyAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAg
ICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAgICAgICAgICkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSwK
KyAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90ZSB0byBnaXQgY29uZmlnXG4nICsKKyAgICAg
ICAgICAgICdQb3B1bGF0aW5nIHN2biBjb21taXQgbWFwcGluZyAod2lsbCB0YWtlIGEgZmV3IG1p
bnV0ZXMpLi4uXG4nLAorICAgICAgICApCisKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihzZWxmLnBhdGgsICcuZ2l0L2NvbmZpZycpKSBhcyBjb25maWc6CiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgp
LAotICAgICAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90ZSB0byBnaXQgY29uZmlnXG4nICsK
LSAgICAgICAgICAgICAgICAnUG9wdWxhdGluZyBzdm4gY29tbWl0IG1hcHBpbmcgKHdpbGwgdGFr
ZSBhIGZldyBtaW51dGVzKS4uLlxuJywKKyAgICAgICAgICAgICAgICBjb25maWcucmVhZCgpLAor
ICAgICAgICAgICAgICAgICdbY29yZV1cbicKKyAgICAgICAgICAgICAgICAnXHRyZXBvc2l0b3J5
Zm9ybWF0dmVyc2lvbiA9IDBcbicKKyAgICAgICAgICAgICAgICAnXHRmaWxlbW9kZSA9IHRydWVc
bicKKyAgICAgICAgICAgICAgICAnXHRiYXJlID0gZmFsc2VcbicKKyAgICAgICAgICAgICAgICAn
XHRsb2dhbGxyZWZ1cGRhdGVzID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdGlnbm9yZWNh
c2UgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1x0cHJlY29tcG9zZXVuaWNvZGUgPSB0cnVl
XG4nCisgICAgICAgICAgICAgICAgJ1tyZW1vdGUgIm9yaWdpbiJdXG4nCisgICAgICAgICAgICAg
ICAgJ1x0dXJsID0ge2dpdF9yZW1vdGV9XG4nCisgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSAr
cmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKlxuJworICAgICAgICAgICAgICAgICdb
YnJhbmNoICJtYWluIl1cbicKKyAgICAgICAgICAgICAgICAnXHRyZW1vdGUgPSBvcmlnaW5cbicK
KyAgICAgICAgICAgICAgICAnXHRtZXJnZSA9IHJlZnMvaGVhZHMvbWFpblxuJworICAgICAgICAg
ICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicKKyAgICAgICAgICAgICAgICAnXHR1cmwgPSB7
c3ZuX3JlbW90ZX1cbicKKyAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IHRydW5rOnJlZnMvcmVt
b3Rlcy9vcmlnaW4vbWFpblxuJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGdpdF9yZW1v
dGU9c2VsZi5naXRfcmVtb3RlLAorICAgICAgICAgICAgICAgICAgICBzdm5fcmVtb3RlPXNlbGYu
c3ZuX3JlbW90ZSwKKyAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKQogCi0gICAgICAg
ICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRpcm5hbWUsICcuZ2l0L2NvbmZpZycpKSBhcyBj
b25maWc6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICAgICAgY29uZmlnLnJlYWQoKSwKLSAgICAgICAgICAgICAgICAgICAgJ1tjb3JlXVxuJwotICAg
ICAgICAgICAgICAgICAgICAnXHRyZXBvc2l0b3J5Zm9ybWF0dmVyc2lvbiA9IDBcbicKLSAgICAg
ICAgICAgICAgICAgICAgJ1x0ZmlsZW1vZGUgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAg
ICdcdGJhcmUgPSBmYWxzZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRsb2dhbGxyZWZ1cGRh
dGVzID0gdHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRpZ25vcmVjYXNlID0gdHJ1ZVxu
JwotICAgICAgICAgICAgICAgICAgICAnXHRwcmVjb21wb3NldW5pY29kZSA9IHRydWVcbicKLSAg
ICAgICAgICAgICAgICAgICAgJ1tyZW1vdGUgIm9yaWdpbiJdXG4nCi0gICAgICAgICAgICAgICAg
ICAgICdcdHVybCA9IHtnaXRfcmVtb3RlfVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRj
aCA9ICtyZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qXG4nCi0gICAgICAgICAgICAg
ICAgICAgICdbYnJhbmNoICJtYWluIl1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0cmVtb3Rl
ID0gb3JpZ2luXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdG1lcmdlID0gcmVmcy9oZWFkcy9t
YWluXG4nCi0gICAgICAgICAgICAgICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicKLSAgICAg
ICAgICAgICAgICAgICAgJ1x0dXJsID0ge3N2bl9yZW1vdGV9XG4nCi0gICAgICAgICAgICAgICAg
ICAgICdcdGZldGNoID0gdHJ1bms6cmVmcy9yZW1vdGVzL29yaWdpbi9tYWluXG4nLmZvcm1hdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIGdpdF9yZW1vdGU9c2VsZi5naXRfcmVtb3RlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgc3ZuX3JlbW90ZT1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAg
ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCi0KICAgICBkZWYgdGVzdF9hZGQoc2Vs
Zik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1w
KCkKLSAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpLCBtb2Nrcy5sb2NhbC5HaXQoZGly
bmFtZSwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxvY2FsLlN2bigpLCBtb2Nrcy5y
ZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQoJzovLycpWzFdKSwgTW9ja1Rp
bWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCi0g
ICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywpLAotICAgICAgICAgICAg
ICAgICAgICBwYXRoPWRpcm5hbWUsCi0gICAgICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2Vs
Zi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICkpCi0KLSAgICAgICAgICAgIHdpdGggT3V0
cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFtZSwgcmVtb3Rl
PXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxvY2FsLlN2bigpLCBtb2Nrcy5yZW1vdGUuU3ZuKHJl
bW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQoJzovLycpWzFdKSwgTW9ja1RpbWU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAg
ICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywgJy0tYWxsLWJyYW5jaGVzJyksCi0gICAgICAg
ICAgICAgICAgICAgIHBhdGg9ZGlybmFtZSwKLSAgICAgICAgICAgICAgICAgICAgc3VidmVyc2lv
bj1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAgICAgICAgKSkKKyAgICAgICAgd2l0aCBPdXRw
dXRDYXB0dXJlKCksIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90ZT1zZWxmLmdpdF9y
ZW1vdGUpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihyZW1vdGU9c2VsZi5z
dm5fcmVtb3RlLnNwbGl0KCc6Ly8nKVsxXSksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVw
LWdpdC1zdm4nLCksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAg
ICAgICAgc3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICApKQorCisgICAg
ICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2Vs
Zi5wYXRoLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1vY2tz
LnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBNb2Nr
VGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAg
ICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywgJy0tYWxsLWJyYW5jaGVzJyksCisg
ICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgc3VidmVyc2lv
bj1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICApKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAorICAgICAgICAgICAgY2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCksCisgICAgICAgICAg
ICAnQWRkaW5nIHN2bi1yZW1vdGUgdG8gZ2l0IGNvbmZpZ1xuJyArCisgICAgICAgICAgICAnUG9w
dWxhdGluZyBzdm4gY29tbWl0IG1hcHBpbmcgKHdpbGwgdGFrZSBhIGZldyBtaW51dGVzKS4uLlxu
JywKKyAgICAgICAgKQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5wYXRo
LCAnLmdpdC9jb25maWcnKSkgYXMgY29uZmlnOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICAgICBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSwKLSAgICAgICAg
ICAgICAgICAnQWRkaW5nIHN2bi1yZW1vdGUgdG8gZ2l0IGNvbmZpZ1xuJyArCi0gICAgICAgICAg
ICAgICAgJ1BvcHVsYXRpbmcgc3ZuIGNvbW1pdCBtYXBwaW5nICh3aWxsIHRha2UgYSBmZXcgbWlu
dXRlcykuLi5cbicsCisgICAgICAgICAgICAgICAgY29uZmlnLnJlYWQoKSwKKyAgICAgICAgICAg
ICAgICAnW2NvcmVdXG4nCisgICAgICAgICAgICAgICAgJ1x0cmVwb3NpdG9yeWZvcm1hdHZlcnNp
b24gPSAwXG4nCisgICAgICAgICAgICAgICAgJ1x0ZmlsZW1vZGUgPSB0cnVlXG4nCisgICAgICAg
ICAgICAgICAgJ1x0YmFyZSA9IGZhbHNlXG4nCisgICAgICAgICAgICAgICAgJ1x0bG9nYWxscmVm
dXBkYXRlcyA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnXHRpZ25vcmVjYXNlID0gdHJ1ZVxu
JworICAgICAgICAgICAgICAgICdcdHByZWNvbXBvc2V1bmljb2RlID0gdHJ1ZVxuJworICAgICAg
ICAgICAgICAgICdbcmVtb3RlICJvcmlnaW4iXVxuJworICAgICAgICAgICAgICAgICdcdHVybCA9
IHtnaXRfcmVtb3RlfVxuJworICAgICAgICAgICAgICAgICdcdGZldGNoID0gK3JlZnMvaGVhZHMv
KjpyZWZzL3JlbW90ZXMvb3JpZ2luLypcbicKKyAgICAgICAgICAgICAgICAnW2JyYW5jaCAibWFp
biJdXG4nCisgICAgICAgICAgICAgICAgJ1x0cmVtb3RlID0gb3JpZ2luXG4nCisgICAgICAgICAg
ICAgICAgJ1x0bWVyZ2UgPSByZWZzL2hlYWRzL21haW5cbicKKyAgICAgICAgICAgICAgICAnW3N2
bi1yZW1vdGUgInN2biJdXG4nCisgICAgICAgICAgICAgICAgJ1x0dXJsID0ge3N2bl9yZW1vdGV9
XG4nCisgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSB0cnVuazpyZWZzL3JlbW90ZXMvb3JpZ2lu
L21haW5cbicKKyAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IGJyYW5jaGVzL2JyYW5jaC1hOnJl
ZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoLWFcbicKKyAgICAgICAgICAgICAgICAnXHRmZXRjaCA9
IGJyYW5jaGVzL2JyYW5jaC1iOnJlZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoLWJcbicuZm9ybWF0
KAorICAgICAgICAgICAgICAgICAgICBnaXRfcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSwKKyAgICAg
ICAgICAgICAgICAgICAgc3ZuX3JlbW90ZT1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICAg
ICAgKSwKICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihkaXJuYW1lLCAnLmdpdC9jb25maWcnKSkgYXMgY29uZmlnOgotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5yZWFkKCksCi0gICAg
ICAgICAgICAgICAgICAgICdbY29yZV1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0cmVwb3Np
dG9yeWZvcm1hdHZlcnNpb24gPSAwXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZpbGVtb2Rl
ID0gdHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRiYXJlID0gZmFsc2VcbicKLSAgICAg
ICAgICAgICAgICAgICAgJ1x0bG9nYWxscmVmdXBkYXRlcyA9IHRydWVcbicKLSAgICAgICAgICAg
ICAgICAgICAgJ1x0aWdub3JlY2FzZSA9IHRydWVcbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0
cHJlY29tcG9zZXVuaWNvZGUgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdbcmVtb3Rl
ICJvcmlnaW4iXVxuJwotICAgICAgICAgICAgICAgICAgICAnXHR1cmwgPSB7Z2l0X3JlbW90ZX1c
bicKLSAgICAgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSArcmVmcy9oZWFkcy8qOnJlZnMvcmVt
b3Rlcy9vcmlnaW4vKlxuJwotICAgICAgICAgICAgICAgICAgICAnW2JyYW5jaCAibWFpbiJdXG4n
Ci0gICAgICAgICAgICAgICAgICAgICdcdHJlbW90ZSA9IG9yaWdpblxuJwotICAgICAgICAgICAg
ICAgICAgICAnXHRtZXJnZSA9IHJlZnMvaGVhZHMvbWFpblxuJwotICAgICAgICAgICAgICAgICAg
ICAnW3N2bi1yZW1vdGUgInN2biJdXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHVybCA9IHtz
dm5fcmVtb3RlfVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IHRydW5rOnJlZnMv
cmVtb3Rlcy9vcmlnaW4vbWFpblxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IGJy
YW5jaGVzL2JyYW5jaC1hOnJlZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoLWFcbicKLSAgICAgICAg
ICAgICAgICAgICAgJ1x0ZmV0Y2ggPSBicmFuY2hlcy9icmFuY2gtYjpyZWZzL3JlbW90ZXMvb3Jp
Z2luL2JyYW5jaC1iXG4nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGdpdF9yZW1v
dGU9c2VsZi5naXRfcmVtb3RlLAotICAgICAgICAgICAgICAgICAgICAgICAgc3ZuX3JlbW90ZT1z
ZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAg
KQotCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUp
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90
ZXN0L3N2bl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3N2bl91bml0dGVzdC5weQkocmV2aXNpb24g
Mjc5MTkzKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvdGVzdC9zdm5fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDE3ICsyMSwxOCBA
QAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgb3MKLWltcG9ydCBzaHV0aWwKLWltcG9ydCB0ZW1w
ZmlsZQotaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0
aW1lZGVsdGEKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgTG9nZ2VyQ2FwdHVyZSwgdW5pdHRlc3QK
IGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgbG9jYWwsIG1vY2tzLCByZW1vdGUKIAog
Ci1jbGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAnL21v
Y2svcmVwb3NpdG9yeScKK2NsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5QYXRoVGVzdENhc2Up
OgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxm
KToKKyAgICAgICAgc3VwZXIoVGVzdExvY2FsU3ZuLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9z
Lm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3ZuJykpCiAKICAgICBkZWYgdGVzdF9k
ZXRlY3Rpb24oc2VsZik6CiAgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCks
IG1vY2tzLmxvY2FsLkdpdCgpOgpAQCAtODEsNyArODIsNyBAQCBjbGFzcyBUZXN0TG9jYWxTdm4o
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoCiAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB1J1BhdGgnOiB1Jy4nLAotICAg
ICAgICAgICAgICAgICAgICB1J1dvcmtpbmcgQ29weSBSb290IFBhdGgnOiB1Jy9tb2NrL3JlcG9z
aXRvcnknLAorICAgICAgICAgICAgICAgICAgICB1J1dvcmtpbmcgQ29weSBSb290IFBhdGgnOiBz
ZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgIHUnUmVwb3NpdG9yeSBSb290JzogdSdodHRw
czovL3N2bi5tb2NrLm9yZy9yZXBvc2l0b3J5L3JlcG9zaXRvcnknLAogICAgICAgICAgICAgICAg
ICAgICB1J1VSTCc6IHUnaHR0cHM6Ly9zdm4ubW9jay5vcmcvcmVwb3NpdG9yeS9yZXBvc2l0b3J5
L3RydW5rJywKICAgICAgICAgICAgICAgICAgICAgdSdSZWxhdGl2ZSBVUkwnOiAgdSdeL3RydW5r
JywKQEAgLTk1LDcgKzk2LDcgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2NvbW1pdF9yZXZpc2lvbihzZWxmKToK
LSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgp
OgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJl
KCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxQHRydW5rJywgc3RyKGxvY2FsLlN2
bihzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcyQHRydW5rJywgc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lv
bj0yKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjFAYnJhbmNoLWEnLCBzdHIo
bG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTMpKSkKQEAgLTExMCwxMyArMTEx
LDEzIEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQo
cmV2aXNpb249MTEpKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X2Zyb21fYnJhbmNoKHNlbGYpOgot
ICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6
CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUo
KToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzRAdHJ1bmsnLCBzdHIobG9jYWwuU3Zu
KHNlbGYucGF0aCkuY29tbWl0KGJyYW5jaD0ndHJ1bmsnKSkpCiAgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcyLjJAYnJhbmNoLWEnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0
KGJyYW5jaD0nYnJhbmNoLWEnKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjNA
YnJhbmNoLWInLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGJyYW5jaD0nYnJhbmNo
LWInKSkpCiAKICAgICBkZWYgdGVzdF9pZGVudGlmaWVyKHNlbGYpOgotICAgICAgICB3aXRoIG1v
Y2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGgg
bW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZp
ZXI9JzFAdHJ1bmsnKS5yZXZpc2lvbikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
bG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzJAdHJ1bmsnKS5yZXZpc2lv
bikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbG9jYWwuU3ZuKHNlbGYucGF0aCku
Y29tbWl0KGlkZW50aWZpZXI9JzIuMUBicmFuY2gtYScpLnJldmlzaW9uKQpAQCAtMTI3LDcgKzEy
OCw3IEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDgsIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlm
aWVyPScyLjNAYnJhbmNoLWInKS5yZXZpc2lvbikKIAogICAgIGRlZiB0ZXN0X25vbl9jYW5ub25p
Y2FsX2lkZW50aWZpZXJzKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxm
LnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNl
bGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JzJAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzBA
YnJhbmNoLWEnKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxQHRydW5rJywgc3Ry
KGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlmaWVyPSctMUBicmFuY2gtYScpKSkK
IApAQCAtMTgxLDMxICsxODIsMjYgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMUBicmFuY2gtYScsIHN0cihy
ZXBvLmNvbW1pdChyZXZpc2lvbj0zKSkpCiAKICAgICBkZWYgdGVzdF9jYWNoZShzZWxmKToKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAg
ICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oZGlybmFtZSkgYXMgbW9ja19yZXBvLCBPdXRw
dXRDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKGRpcm5h
bWUsICcuc3ZuJykpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVuaycs
IHN0cihsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KCkpKQotCi0gICAgICAgICAgICAgICAgbW9j
a19yZXBvLmNvbm5lY3RlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgY29tbWl0ID0gbG9jYWwu
U3ZuKGRpcm5hbWUpLmNvbW1pdCgpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
NEB0cnVuaycsIHN0cihjb21taXQpKQotCi0gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhsb2NhbC5Tdm4uRXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgbG9jYWwu
U3ZuKGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0zKQotICAgICAgICBmaW5hbGx5OgotICAgICAg
ICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2
bihzZWxmLnBhdGgpIGFzIG1vY2tfcmVwbywgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVuaycsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21t
aXQoKSkpCisKKyAgICAgICAgICAgIG1vY2tfcmVwby5jb25uZWN0ZWQgPSBGYWxzZQorICAgICAg
ICAgICAgY29tbWl0ID0gbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KCkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJzRAdHJ1bmsnLCBzdHIoY29tbWl0KSkKKworICAgICAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5Tdm4uRXhjZXB0aW9uKToKKyAgICAgICAgICAg
ICAgICBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MykKIAogICAgIGRlZiB0
ZXN0X3RhZyhzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwg
T3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgp
LCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDksIGxvY2Fs
LlN2bihzZWxmLnBhdGgpLmNvbW1pdCh0YWc9J3RhZy0xJykucmV2aXNpb24pCiAKICAgICBkZWYg
dGVzdF90YWdfcHJldmlvdXMoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNl
bGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4o
c2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCg3LCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMi4yQHRhZ3MvdGFn
LTEnKS5yZXZpc2lvbikKIAogICAgIGRlZiB0ZXN0X2NoZWNrb3V0KHNlbGYpOgotICAgICAgICB3
aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAg
IHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAg
ICAgICAgIHJlcG9zaXRvcnkgPSBsb2NhbC5Tdm4oc2VsZi5wYXRoKQogCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDYsIHJlcG9zaXRvcnkuY29tbWl0KCkucmV2aXNpb24pCkBAIC0yMTks
MjAgKzIxNSwyMCBAQCBjbGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg5LCByZXBvc2l0b3J5LmNvbW1pdCgpLnJldmlzaW9u
KQogCiAgICAgZGVmIHRlc3Rfbm9fbG9nKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2Fs
LlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9j
YWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0SXNOb25lKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlmaWVyPSc0QHRydW5r
JywgaW5jbHVkZV9sb2c9RmFsc2UpLm1lc3NhZ2UpCiAKICAgICBkZWYgdGVzdF9hbHRlcm5hdGl2
ZV9kZWZhdWx0X2JyYW5jaChzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2Vs
Zi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihz
ZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5maW5kKCc0QG1haW4nKSksICc0QHRydW5rJykKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmZpbmQo
JzRAbWFzdGVyJykpLCAnNEB0cnVuaycpCiAKICAgICBkZWYgdGVzdF9ub19pZGVudGlmaWVyKHNl
bGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0
dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNh
cHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvY2FsLlN2bihzZWxmLnBh
dGgpLmZpbmQoJ3RydW5rJywgaW5jbHVkZV9pZGVudGlmaWVyPUZhbHNlKS5pZGVudGlmaWVyKQog
CiAgICAgZGVmIHRlc3RfY29tbWl0cyhzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5T
dm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tzLmxvY2Fs
LlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzdm4gPSBsb2Nh
bC5Tdm4oc2VsZi5wYXRoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDb21taXQuRW5j
b2RlcigpLmRlZmF1bHQoWwogICAgICAgICAgICAgICAgIHN2bi5jb21taXQocmV2aXNpb249J3I2
JyksCkBAIC0yNDIsNyArMjM4LDcgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgICAgIF0pLCBDb21taXQuRW5jb2RlcigpLmRlZmF1bHQobGlzdChzdm4u
Y29tbWl0cyhiZWdpbj1kaWN0KHJldmlzaW9uPSdyMScpLCBlbmQ9ZGljdChyZXZpc2lvbj0ncjYn
KSkpKSkKIAogICAgIGRlZiB0ZXN0X2NvbW1pdHNfYnJhbmNoKHNlbGYpOgotICAgICAgICB3aXRo
IG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdp
dGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAg
ICAgIHN2biA9IGxvY2FsLlN2bihzZWxmLnBhdGgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKENvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAgICAgICAgICAgc3ZuLmNvbW1p
dChyZXZpc2lvbj0ncjcnKSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432391</attachid>
            <date>2021-06-28 07:06:52 -0700</date>
            <delta_ts>2021-06-28 10:27:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227327-20210628070652.patch</filename>
            <type>text/plain</type>
            <size>34478</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3OTMzOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDIxLTA2LTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgdGVzdCBzdWl0ZSB3aXRoIHRlbXAgZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjczMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5Njk3OTA5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGhhZCBzb21lIGR1cGxpY2F0ZWQg
Y29kZSB3aGljaCBzZXQgdXAsIHRoZW4gY2xlYW5lZCB1cCBhIHRlbXBvcmFyeQorICAgICAgICBk
aXJlY3RvcnkgYXNzb2NpYXRlZCB3aXRoIGEgdGVzdC4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIG93
bmVkIGJ5IGEKKyAgICAgICAgYmFzZSBjbGFzcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSB0ZXN0
IHN1aXRlcy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoUGF0aFRlc3RDYXNlKTogQ3Jl
YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBiZWZvcmUgYSB0ZXN0IHN0YXJ0cywgZGVsZXRlIGl0
IGFmdGVyLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Rlc3QvY2Fub25pY2FsaXplX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdENhbm9uaWNh
bGl6ZSk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoVGVzdENoZWNrb3V0KTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weToK
KyAgICAgICAgKFRlc3RGaW5kKTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5
OgorICAgICAgICAoVGVzdEdpdCk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NjbV91bml0dGVzdC5w
eToKKyAgICAgICAgKFRlc3RTY20pOiBBZG9wdCBQYXRoVGVzdENhc2UuCisgICAgICAgICogU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zZXR1cF9naXRfc3Zu
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFNldHVwR2l0U3ZuKTogQWRvcHQgUGF0aFRlc3RD
YXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdExvY2FsU3ZuKTogQWRvcHQgUGF0
aFRlc3RDYXNlLgorCiAyMDIxLTA2LTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbd2Via2l0cHldIFRlc3QgdGltZW91dHMgbm90IHByb3Blcmx5
IGRldGVjdGVkIHdoZW4gcnVubmluZyBsYXlvdXQgdGVzdHMgd2l0aCBQeXRob24gMwpJbmRleDog
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS91bml0dGVz
dC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdW5pdHRlc3QucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisj
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgb3MK
K2ltcG9ydCBzaHV0aWwKK2ltcG9ydCB0ZW1wZmlsZQorCitmcm9tIHVuaXR0ZXN0IGltcG9ydCBU
ZXN0Q2FzZQorCisKK2NsYXNzIFBhdGhUZXN0Q2FzZShUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGgg
PSAnJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
IHN1cGVyKFBhdGhUZXN0Q2FzZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg
ICAgICBzZWxmLmNvbnRhaW5lciA9IE5vbmUKKyAgICAgICAgc2VsZi5wYXRoID0gTm9uZQorCisg
ICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmNvbnRhaW5lciA9IHRlbXBmaWxlLm1r
ZHRlbXAoKQorICAgICAgICBzZWxmLnBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5jb250YWluZXIs
IHNlbGYuYmFzZXBhdGgpCisgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYucGF0aCkKKworICAgIGRl
ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLmNvbnRhaW5lciwg
aWdub3JlX2Vycm9ycz1UcnVlKQorICAgICAgICBzZWxmLmNvbnRhaW5lciA9IE5vbmUKKyAgICAg
ICAgc2VsZi5wYXRoID0gTm9uZQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9jYW5vbmljYWxpemVfdW5pdHRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVz
dC9jYW5vbmljYWxpemVfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3OTMzOCkKKysrIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2Fub25pY2FsaXpl
X3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDE1ICsyMCwyMCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBvcwogCi1mcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0
IE91dHB1dENhcHR1cmUsIHVuaXR0ZXN0CiBmcm9tIHdlYmtpdGNvcmVweS5tb2NrcyBpbXBvcnQg
VGltZSBhcyBNb2NrVGltZQogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgcHJvZ3JhbSwgbW9ja3Ms
IGxvY2FsLCBDb21taXQsIENvbnRyaWJ1dG9yCiAKIAotY2xhc3MgVGVzdENhbm9uaWNhbGl6ZSh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5JworY2xhc3Mg
VGVzdENhbm9uaWNhbGl6ZSh1bml0dGVzdC5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0g
J21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIo
VGVzdENhbm9uaWNhbGl6ZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRo
LmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4o
c2VsZi5wYXRoLCAnLnN2bicpKQogCiAgICAgZGVmIHRlc3RfaW52YWxpZChzZWxmKToKICAgICAg
ICAgd2l0aCBPdXRwdXRDYXB0dXJlKCksIG1vY2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2NhbC5T
dm4oc2VsZi5wYXRoKSwgTW9ja1RpbWU6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rl
c3QvY2hlY2tvdXRfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3OTMzOCkKKysrIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2hlY2tvdXRfdW5pdHRl
c3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMC0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjAsMTUgKzIwLDIwIEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IG9zCiAKLWZyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZSwgdW5pdHRlc3QKIGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFz
IE1vY2tUaW1lCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBwcm9ncmFtLCBtb2NrcywgbG9jYWwK
IAogCi1jbGFzcyBUZXN0Q2hlY2tvdXQodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAn
L21vY2svcmVwb3NpdG9yeScKK2NsYXNzIFRlc3RDaGVja291dCh1bml0dGVzdC5QYXRoVGVzdENh
c2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChz
ZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdENoZWNrb3V0LCBzZWxmKS5zZXRVcCgpCisgICAgICAg
IG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuZ2l0JykpCisgICAgICAgIG9zLm1r
ZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3ZuJykpCiAKICAgICBkZWYgdGVzdF9jaGVj
a291dF9naXQoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpLCBtb2Nrcy5sb2Nh
bC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuU3ZuKCksIE1vY2tUaW1lOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9maW5kX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weQkocmV2aXNpb24gMjc5MzM4KQor
KysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9m
aW5kX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxOCArMjEsMjMgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogaW1wb3J0IGpzb24KK2ltcG9ydCBvcwogaW1wb3J0IHNodXRpbAogaW1wb3J0
IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdGNv
cmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdW5pdHRlc3QKIGZyb20gd2Via2l0Y29yZXB5Lm1v
Y2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBwcm9n
cmFtLCBtb2NrcwogCiAKLWNsYXNzIFRlc3RGaW5kKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBw
YXRoID0gJy9tb2NrL3JlcG9zaXRvcnknCitjbGFzcyBUZXN0RmluZCh1bml0dGVzdC5QYXRoVGVz
dENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRV
cChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdEZpbmQsIHNlbGYpLnNldFVwKCkKKyAgICAgICAg
b3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkKKyAgICAgICAgb3MubWtk
aXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAogICAgIGRlZiB0ZXN0X2Jhc2lj
X2dpdChzZWxmKToKICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1v
Y2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgTW9ja1RpbWU6Cklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0
L2dpdF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVzdC5weQkocmV2aXNpb24gMjc5
MzM4KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9naXRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDE4ICsyMSwxOSBAQAog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgb3MKLWltcG9ydCBzaHV0aWwKLWltcG9ydCB0ZW1wZmls
ZQotaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9t
IHdlYmtpdGNvcmVweSBpbXBvcnQgcnVuLCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJlCitm
cm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgcnVuLCB1bml0dGVzdCwgTG9nZ2VyQ2FwdHVyZSwgT3V0
cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1Rp
bWUKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgbG9jYWwsIG1vY2tzLCByZW1vdGUK
IAogCi1jbGFzcyBUZXN0R2l0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBwYXRoID0gJy9tb2Nr
L3JlcG9zaXRvcnknCitjbGFzcyBUZXN0R2l0KHVuaXR0ZXN0LlBhdGhUZXN0Q2FzZSk6CisgICAg
YmFzZXBhdGggPSAnbW9jay9yZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAg
ICAgICBzdXBlcihUZXN0R2l0LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9zLm1rZGlyKG9zLnBh
dGguam9pbihzZWxmLnBhdGgsICcuZ2l0JykpCiAKICAgICBkZWYgdGVzdF9kZXRlY3Rpb24oc2Vs
Zik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5w
YXRoKSwgbW9ja3MubG9jYWwuU3ZuKCk6CkBAIC03OSw2NSArODAsNTIgQEAgY2xhc3MgVGVzdEdp
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2Fs
LkdpdChzZWxmLnBhdGgpLmRlZmF1bHRfYnJhbmNoLCAnbWFpbicpCiAKICAgICBkZWYgdGVzdF9z
Y21fdHlwZShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRlbXBm
aWxlLm1rZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFtZSwg
cmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBhdGgpKSwgTW9ja1RpbWUs
IExvZ2dlckNhcHR1cmUoKToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwu
R2l0KGRpcm5hbWUpLmlzX2dpdCkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGxv
Y2FsLkdpdChkaXJuYW1lKS5pc19zdm4pCi0KLSAgICAgICAgICAgIHdpdGggbW9ja3MubG9jYWwu
R2l0KGRpcm5hbWUsIGdpdF9zdm49VHJ1ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZv
cm1hdChzZWxmLnBhdGgpKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKLSAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwuR2l0KGRpcm5hbWUpLmlzX2dpdCkKLSAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwuR2l0KGRpcm5hbWUpLmlzX3N2bikKLQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgICAg
ICB3aXRoIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3Jn
Ont9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6CisgICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwuR2l0KHNlbGYucGF0aCkuaXNfZ2l0KQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShsb2NhbC5HaXQoc2VsZi5wYXRoKS5pc19zdm4pCisK
KyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCBnaXRfc3ZuPVRydWUsIHJl
bW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBM
b2dnZXJDYXB0dXJlKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwuR2l0KHNl
bGYucGF0aCkuaXNfZ2l0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChz
ZWxmLnBhdGgpLmlzX3N2bikKIAogICAgIGRlZiB0ZXN0X2luZm8oc2VsZik6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAg
IHdpdGggbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9
Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6Ci0gICAgICAg
ICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5HaXQuRXhjZXB0aW9uKToKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KCksIGxvY2FsLkdpdChkaXJu
YW1lKS5pbmZvKCkpCi0KLSAgICAgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUs
IGdpdF9zdm49VHJ1ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBh
dGgpKSwgTW9ja1RpbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICdQYXRoJzogJy4n
LAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlcG9zaXRvcnkgUm9vdCc6ICdnaXRAZXhhbXBs
ZS5vcmc6L21vY2svcmVwb3NpdG9yeScsCi0gICAgICAgICAgICAgICAgICAgICAgICAnVVJMJzog
J2dpdEBleGFtcGxlLm9yZzovbW9jay9yZXBvc2l0b3J5L21haW4nLAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ1JldmlzaW9uJzogJzknLAotICAgICAgICAgICAgICAgICAgICAgICAgJ05vZGUg
S2luZCc6ICdkaXJlY3RvcnknLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1NjaGVkdWxlJzog
J25vcm1hbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAnTGFzdCBDaGFuZ2VkIEF1dGhvcic6
ICdqYmVkYXJkQGFwcGxlLmNvbScsCi0gICAgICAgICAgICAgICAgICAgICAgICAnTGFzdCBDaGFu
Z2VkIFJldic6ICc5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICdMYXN0IENoYW5nZWQgRGF0
ZSc6IGRhdGV0aW1lLmZyb210aW1lc3RhbXAoMTYwMTY2ODAwMCkuc3RyZnRpbWUoJyVZLSVtLSVk
ICVIOiVNOiVTJyksCi0gICAgICAgICAgICAgICAgICAgIH0sIGxvY2FsLkdpdChkaXJuYW1lKS5p
bmZvKCksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChzZWxm
LnBhdGgsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOm1vY2svcmVwb3NpdG9yeScpLCBNb2NrVGlt
ZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhs
b2NhbC5HaXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRp
Y3QoKSwgbG9jYWwuR2l0KHNlbGYucGF0aCkuaW5mbygpKQorCisgICAgICAgIHdpdGggbW9ja3Mu
bG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9y
Zzptb2NrL3JlcG9zaXRvcnknKSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydERp
Y3RFcXVhbCgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdQYXRoJzog
Jy4nLAorICAgICAgICAgICAgICAgICAgICAnUmVwb3NpdG9yeSBSb290JzogJ2dpdEBleGFtcGxl
Lm9yZzptb2NrL3JlcG9zaXRvcnknLAorICAgICAgICAgICAgICAgICAgICAnVVJMJzogJ2dpdEBl
eGFtcGxlLm9yZzptb2NrL3JlcG9zaXRvcnkvbWFpbicsCisgICAgICAgICAgICAgICAgICAgICdS
ZXZpc2lvbic6ICc5JywKKyAgICAgICAgICAgICAgICAgICAgJ05vZGUgS2luZCc6ICdkaXJlY3Rv
cnknLAorICAgICAgICAgICAgICAgICAgICAnU2NoZWR1bGUnOiAnbm9ybWFsJywKKyAgICAgICAg
ICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBBdXRob3InOiAnamJlZGFyZEBhcHBsZS5jb20nLAor
ICAgICAgICAgICAgICAgICAgICAnTGFzdCBDaGFuZ2VkIFJldic6ICc5JywKKyAgICAgICAgICAg
ICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBEYXRlJzogZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcCgxNjAx
NjY4MDAwKS5zdHJmdGltZSgnJVktJW0tJWQgJUg6JU06JVMnKSwKKyAgICAgICAgICAgICAgICB9
LCBsb2NhbC5HaXQoc2VsZi5wYXRoKS5pbmZvKCksCisgICAgICAgICAgICApCiAKICAgICBkZWYg
dGVzdF9jb21taXRfcmV2aXNpb24oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRp
cm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIHdpdGggbW9ja3MubG9jYWwu
R2l0KGRpcm5hbWUpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgotICAgICAgICAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1p
dChyZXZpc2lvbj0xKSkKLQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFt
ZSwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYu
cGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgotICAgICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJzFAbWFpbicsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlz
aW9uPTEpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyQG1haW4nLCBzdHIo
bG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0yKSkpCi0gICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnMi4xQGJyYW5jaC1hJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5j
b21taXQocmV2aXNpb249MykpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzNA
bWFpbicsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTQpKSkKLSAgICAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjJAYnJhbmNoLWInLCBzdHIobG9jYWwuR2l0
KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj01KSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnMi4yQGJyYW5jaC1hJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2
aXNpb249NikpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuM0BicmFuY2gt
YicsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTcpKSkKLSAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QG1haW4nLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUp
LmNvbW1pdChyZXZpc2lvbj04KSkpCi0KLSAgICAgICAgICAgICAgICAjIE91dC1vZi1ib3VuZHMg
Y29tbWl0Ci0gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5HaXQu
RXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBs
b2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTEwKSkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKKyAgICAgICAgd2l0aCBtb2Nrcy5s
b2NhbC5HaXQoc2VsZi5wYXRoKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKKyAgICAgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6CisgICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21t
aXQocmV2aXNpb249MSkpCisKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRo
LCBnaXRfc3ZuPVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5w
YXRoKSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6CisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcxQG1haW4nLCBzdHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9u
PTEpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAbWFpbicsIHN0cihsb2NhbC5H
aXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MikpKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnMi4xQGJyYW5jaC1hJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChy
ZXZpc2lvbj0zKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCczQG1haW4nLCBzdHIo
bG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTQpKSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYicsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRoKS5j
b21taXQocmV2aXNpb249NSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4yQGJy
YW5jaC1hJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj02KSkpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjNAYnJhbmNoLWInLCBzdHIobG9jYWwuR2l0
KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTcpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJzRAbWFpbicsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249
OCkpKQorCisgICAgICAgICAgICAjIE91dC1vZi1ib3VuZHMgY29tbWl0CisgICAgICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5FeGNlcHRpb24pOgorICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJl
dmlzaW9uPTEwKSkKIAogICAgIGRlZiB0ZXN0X2NvbW1pdF9oYXNoKHNlbGYpOgogICAgICAgICBm
b3IgbW9jayBpbiBbbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLkdpdChz
ZWxmLnBhdGgsIGdpdF9zdm49VHJ1ZSldOgpAQCAtMjg1LDcgKzI3Myw3IEBAIGNsYXNzIFRlc3RH
aXQodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfY29tbWl0cyhzZWxmKToKICAg
ICAgICAgZm9yIG1vY2sgaW4gW21vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5sb2Nh
bC5HaXQoc2VsZi5wYXRoLCBnaXRfc3ZuPVRydWUpXToKLSAgICAgICAgICAgIHdpdGggbW9jazoK
KyAgICAgICAgICAgIHdpdGggbW9jaywgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgICAg
IGdpdCA9IGxvY2FsLkdpdChzZWxmLnBhdGgpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChDb21taXQuRW5jb2RlcigpLmRlZmF1bHQoWwogICAgICAgICAgICAgICAgICAgICBnaXQu
Y29tbWl0KGhhc2g9J2JhZTVkMWU5JyksCkBAIC0yOTYsNyArMjg0LDcgQEAgY2xhc3MgVGVzdEdp
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jb21taXRzX2JyYW5jaChzZWxm
KToKICAgICAgICAgZm9yIG1vY2sgaW4gW21vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nr
cy5sb2NhbC5HaXQoc2VsZi5wYXRoLCBnaXRfc3ZuPVRydWUpXToKLSAgICAgICAgICAgIHdpdGgg
bW9jazoKKyAgICAgICAgICAgIHdpdGggbW9jaywgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAg
ICAgICAgIGdpdCA9IGxvY2FsLkdpdChzZWxmLnBhdGgpCiAgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChDb21taXQuRW5jb2RlcigpLmRlZmF1bHQoWwogICAgICAgICAgICAgICAgICAg
ICBnaXQuY29tbWl0KGhhc2g9JzYyMTY1MmFkJyksCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NjbV91bml0dGVzdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90
ZXN0L3NjbV91bml0dGVzdC5weQkocmV2aXNpb24gMjc5MzM4KQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zY21fdW5pdHRlc3QucHkJKHdv
cmtpbmcgY29weSkKQEAgLTIwLDEzICsyMCwxOSBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCitpbXBvcnQgb3MKIAotaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgdW5pdHRlc3QKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsLCBt
b2NrcwogCiAKLWNsYXNzIFRlc3RTY20odW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAn
L21vY2svZGlyZWN0b3J5JworY2xhc3MgVGVzdFNjbSh1bml0dGVzdC5QYXRoVGVzdENhc2UpOgor
ICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxmKToK
KyAgICAgICAgc3VwZXIoVGVzdFNjbSwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihv
cy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRo
LmpvaW4oc2VsZi5wYXRoLCAnLnN2bicpKQogCiAgICAgZGVmIHRlc3RfZGV0ZWN0aW9uKHNlbGYp
OgogICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2NhbC5Tdm4oKToKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qv
c2V0dXBfZ2l0X3N2bl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NldHVwX2dpdF9zdm5fdW5pdHRl
c3QucHkJKHJldmlzaW9uIDI3OTMzOCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc2V0dXBfZ2l0X3N2bl91bml0dGVzdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsMTIzICsyMSwxMTAgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9z
Ci1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVzdAogCi1mcm9t
IGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IExvZ2dl
ckNhcHR1cmUsIE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRD
YXB0dXJlLCB1bml0dGVzdAogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMg
TW9ja1RpbWUKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IHByb2dyYW0sIG1vY2tzCiAKIAotY2xh
c3MgVGVzdFNldHVwR2l0U3ZuKHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RTZXR1cEdp
dFN2bih1bml0dGVzdC5QYXRoVGVzdENhc2UpOgogICAgIGdpdF9yZW1vdGUgPSAnZ2l0QGV4YW1w
bGUub3JnOkV4YW1wbGUnCiAgICAgc3ZuX3JlbW90ZSA9ICdodHRwczovL3N2bi5leGFtcGxlLm9y
Zy9yZXBvc2l0b3J5L2V4YW1wbGUnCisgICAgYmFzZXBhdGggPSAnbW9jay9yZXBvc2l0b3J5Jwog
Ci0gICAgZGVmIHRlc3Rfc3ZuKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJu
YW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUo
KSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KCksIG1vY2tzLmxvY2FsLlN2bihkaXJuYW1l
LCByZW1vdGU9c2VsZi5zdm5fcmVtb3RlKSwgTW9ja1RpbWU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgICAgIGFyZ3M9
KCdzZXR1cC1naXQtc3ZuJywpLAotICAgICAgICAgICAgICAgICAgICBwYXRoPWRpcm5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAg
ICAgICAgICkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5n
ZXR2YWx1ZSgpLCAnQ2Fubm90IHNldHVwIGdpdC1zdm4gb24gU3VidmVyc2lvbiByZXBvc2l0b3J5
XG4nKQorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdFNldHVwR2l0U3Zu
LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgs
ICcuZ2l0JykpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3Zu
JykpCiAKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFt
ZSkKKyAgICBkZWYgdGVzdF9zdm4oc2VsZik6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgp
IGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0
aCwgcmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVw
LWdpdC1zdm4nLCksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAg
ICAgICAgc3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICApKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnQ2Fubm90IHNl
dHVwIGdpdC1zdm4gb24gU3VidmVyc2lvbiByZXBvc2l0b3J5XG4nKQogCiAgICAgZGVmIHRlc3Rf
ZW1wdHkoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmls
ZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVk
LCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFtZSwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tz
LmxvY2FsLlN2bigpLCBtb2Nrcy5yZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3Bs
aXQoJzovLycpWzFdKSwgTW9ja1RpbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgwLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQt
c3ZuJywpLAotICAgICAgICAgICAgICAgICAgICBwYXRoPWRpcm5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICkpCisg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQo
c2VsZi5wYXRoLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1v
Y2tzLnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBN
b2NrVGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAor
ICAgICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywpLAorICAgICAgICAgICAgICAg
IHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVt
b3RlLAorICAgICAgICAgICAgKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAg
ICAgIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpLAorICAgICAgICAgICAgJ0FkZGluZyBzdm4t
cmVtb3RlIHRvIGdpdCBjb25maWdcbicgKworICAgICAgICAgICAgJ1BvcHVsYXRpbmcgc3ZuIGNv
bW1pdCBtYXBwaW5nICh3aWxsIHRha2UgYSBmZXcgbWludXRlcykuLi5cbicsCisgICAgICAgICkK
KworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQvY29uZmln
JykpIGFzIGNvbmZpZzoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICAgICAgY2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCksCi0gICAgICAgICAgICAgICAgJ0FkZGlu
ZyBzdm4tcmVtb3RlIHRvIGdpdCBjb25maWdcbicgKwotICAgICAgICAgICAgICAgICdQb3B1bGF0
aW5nIHN2biBjb21taXQgbWFwcGluZyAod2lsbCB0YWtlIGEgZmV3IG1pbnV0ZXMpLi4uXG4nLAor
ICAgICAgICAgICAgICAgIGNvbmZpZy5yZWFkKCksCisgICAgICAgICAgICAgICAgJ1tjb3JlXVxu
JworICAgICAgICAgICAgICAgICdcdHJlcG9zaXRvcnlmb3JtYXR2ZXJzaW9uID0gMFxuJworICAg
ICAgICAgICAgICAgICdcdGZpbGVtb2RlID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdGJh
cmUgPSBmYWxzZVxuJworICAgICAgICAgICAgICAgICdcdGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVl
XG4nCisgICAgICAgICAgICAgICAgJ1x0aWdub3JlY2FzZSA9IHRydWVcbicKKyAgICAgICAgICAg
ICAgICAnXHRwcmVjb21wb3NldW5pY29kZSA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnW3Jl
bW90ZSAib3JpZ2luIl1cbicKKyAgICAgICAgICAgICAgICAnXHR1cmwgPSB7Z2l0X3JlbW90ZX1c
bicKKyAgICAgICAgICAgICAgICAnXHRmZXRjaCA9ICtyZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVz
L29yaWdpbi8qXG4nCisgICAgICAgICAgICAgICAgJ1ticmFuY2ggIm1haW4iXVxuJworICAgICAg
ICAgICAgICAgICdcdHJlbW90ZSA9IG9yaWdpblxuJworICAgICAgICAgICAgICAgICdcdG1lcmdl
ID0gcmVmcy9oZWFkcy9tYWluXG4nCisgICAgICAgICAgICAgICAgJ1tzdm4tcmVtb3RlICJzdm4i
XVxuJworICAgICAgICAgICAgICAgICdcdHVybCA9IHtzdm5fcmVtb3RlfVxuJworICAgICAgICAg
ICAgICAgICdcdGZldGNoID0gdHJ1bms6cmVmcy9yZW1vdGVzL29yaWdpbi9tYWluXG4nLmZvcm1h
dCgKKyAgICAgICAgICAgICAgICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdpdF9yZW1vdGUsCisgICAg
ICAgICAgICAgICAgICAgIHN2bl9yZW1vdGU9c2VsZi5zdm5fcmVtb3RlLAorICAgICAgICAgICAg
ICAgICksCiAgICAgICAgICAgICApCiAKLSAgICAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpv
aW4oZGlybmFtZSwgJy5naXQvY29uZmlnJykpIGFzIGNvbmZpZzoKLSAgICAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICAgICBjb25maWcucmVhZCgpLAotICAg
ICAgICAgICAgICAgICAgICAnW2NvcmVdXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHJlcG9z
aXRvcnlmb3JtYXR2ZXJzaW9uID0gMFxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmaWxlbW9k
ZSA9IHRydWVcbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0YmFyZSA9IGZhbHNlXG4nCi0gICAg
ICAgICAgICAgICAgICAgICdcdGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVlXG4nCi0gICAgICAgICAg
ICAgICAgICAgICdcdGlnbm9yZWNhc2UgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdc
dHByZWNvbXBvc2V1bmljb2RlID0gdHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnW3JlbW90
ZSAib3JpZ2luIl1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0dXJsID0ge2dpdF9yZW1vdGV9
XG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZldGNoID0gK3JlZnMvaGVhZHMvKjpyZWZzL3Jl
bW90ZXMvb3JpZ2luLypcbicKLSAgICAgICAgICAgICAgICAgICAgJ1ticmFuY2ggIm1haW4iXVxu
JwotICAgICAgICAgICAgICAgICAgICAnXHRyZW1vdGUgPSBvcmlnaW5cbicKLSAgICAgICAgICAg
ICAgICAgICAgJ1x0bWVyZ2UgPSByZWZzL2hlYWRzL21haW5cbicKLSAgICAgICAgICAgICAgICAg
ICAgJ1tzdm4tcmVtb3RlICJzdm4iXVxuJwotICAgICAgICAgICAgICAgICAgICAnXHR1cmwgPSB7
c3ZuX3JlbW90ZX1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSB0cnVuazpyZWZz
L3JlbW90ZXMvb3JpZ2luL21haW5cbicuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAg
Z2l0X3JlbW90ZT1zZWxmLmdpdF9yZW1vdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdm5f
cmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICAgICApCi0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUo
ZGlybmFtZSkKLQogICAgIGRlZiB0ZXN0X2FkZChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBPdXRw
dXRDYXB0dXJlKCksIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCByZW1vdGU9c2VsZi5naXRfcmVt
b3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3Zu
X3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBNb2NrVGltZToKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICAgICAgYXJncz0o
J3NldHVwLWdpdC1zdm4nLCksCi0gICAgICAgICAgICAgICAgICAgIHBhdGg9ZGlybmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgc3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAg
ICAgICAgKSkKLQotICAgICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQs
IG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3Mu
bG9jYWwuU3ZuKCksIG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxp
dCgnOi8vJylbMV0pLCBNb2NrVGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDAsIHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1z
dm4nLCAnLS1hbGwtYnJhbmNoZXMnKSwKLSAgICAgICAgICAgICAgICAgICAgcGF0aD1kaXJuYW1l
LAotICAgICAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAg
ICAgICAgICAgICApKQorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSwgbW9ja3MubG9jYWwu
R2l0KHNlbGYucGF0aCwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxvY2FsLlN2bigp
LCBtb2Nrcy5yZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQoJzovLycpWzFd
KSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFp
bigKKyAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsKSwKKyAgICAgICAgICAg
ICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3Zu
X3JlbW90ZSwKKyAgICAgICAgICAgICkpCisKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkg
YXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90ZT1zZWxmLmdpdF9y
ZW1vdGUpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihyZW1vdGU9c2VsZi5z
dm5fcmVtb3RlLnNwbGl0KCc6Ly8nKVsxXSksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVw
LWdpdC1zdm4nLCAnLS1hbGwtYnJhbmNoZXMnKSwKKyAgICAgICAgICAgICAgICBwYXRoPXNlbGYu
cGF0aCwKKyAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAg
ICAgICAgICkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYXB0dXJl
ZC5zdGRvdXQuZ2V0dmFsdWUoKSwKKyAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90ZSB0byBn
aXQgY29uZmlnXG4nICsKKyAgICAgICAgICAgICdQb3B1bGF0aW5nIHN2biBjb21taXQgbWFwcGlu
ZyAod2lsbCB0YWtlIGEgZmV3IG1pbnV0ZXMpLi4uXG4nLAorICAgICAgICApCisKKyAgICAgICAg
d2l0aCBvcGVuKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuZ2l0L2NvbmZpZycpKSBhcyBjb25m
aWc6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNhcHR1
cmVkLnN0ZG91dC5nZXR2YWx1ZSgpLAotICAgICAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90
ZSB0byBnaXQgY29uZmlnXG4nICsKLSAgICAgICAgICAgICAgICAnUG9wdWxhdGluZyBzdm4gY29t
bWl0IG1hcHBpbmcgKHdpbGwgdGFrZSBhIGZldyBtaW51dGVzKS4uLlxuJywKKyAgICAgICAgICAg
ICAgICBjb25maWcucmVhZCgpLAorICAgICAgICAgICAgICAgICdbY29yZV1cbicKKyAgICAgICAg
ICAgICAgICAnXHRyZXBvc2l0b3J5Zm9ybWF0dmVyc2lvbiA9IDBcbicKKyAgICAgICAgICAgICAg
ICAnXHRmaWxlbW9kZSA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnXHRiYXJlID0gZmFsc2Vc
bicKKyAgICAgICAgICAgICAgICAnXHRsb2dhbGxyZWZ1cGRhdGVzID0gdHJ1ZVxuJworICAgICAg
ICAgICAgICAgICdcdGlnbm9yZWNhc2UgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1x0cHJl
Y29tcG9zZXVuaWNvZGUgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1tyZW1vdGUgIm9yaWdp
biJdXG4nCisgICAgICAgICAgICAgICAgJ1x0dXJsID0ge2dpdF9yZW1vdGV9XG4nCisgICAgICAg
ICAgICAgICAgJ1x0ZmV0Y2ggPSArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKlxu
JworICAgICAgICAgICAgICAgICdbYnJhbmNoICJtYWluIl1cbicKKyAgICAgICAgICAgICAgICAn
XHRyZW1vdGUgPSBvcmlnaW5cbicKKyAgICAgICAgICAgICAgICAnXHRtZXJnZSA9IHJlZnMvaGVh
ZHMvbWFpblxuJworICAgICAgICAgICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicKKyAgICAg
ICAgICAgICAgICAnXHR1cmwgPSB7c3ZuX3JlbW90ZX1cbicKKyAgICAgICAgICAgICAgICAnXHRm
ZXRjaCA9IHRydW5rOnJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFpblxuJworICAgICAgICAgICAgICAg
ICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWE6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gt
YVxuJworICAgICAgICAgICAgICAgICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWI6cmVmcy9y
ZW1vdGVzL29yaWdpbi9icmFuY2gtYlxuJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGdp
dF9yZW1vdGU9c2VsZi5naXRfcmVtb3RlLAorICAgICAgICAgICAgICAgICAgICBzdm5fcmVtb3Rl
PXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKQotCi0g
ICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRpcm5hbWUsICcuZ2l0L2NvbmZpZycp
KSBhcyBjb25maWc6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgICAgICAgICAgY29uZmlnLnJlYWQoKSwKLSAgICAgICAgICAgICAgICAgICAgJ1tjb3JlXVxu
JwotICAgICAgICAgICAgICAgICAgICAnXHRyZXBvc2l0b3J5Zm9ybWF0dmVyc2lvbiA9IDBcbicK
LSAgICAgICAgICAgICAgICAgICAgJ1x0ZmlsZW1vZGUgPSB0cnVlXG4nCi0gICAgICAgICAgICAg
ICAgICAgICdcdGJhcmUgPSBmYWxzZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRsb2dhbGxy
ZWZ1cGRhdGVzID0gdHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRpZ25vcmVjYXNlID0g
dHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRwcmVjb21wb3NldW5pY29kZSA9IHRydWVc
bicKLSAgICAgICAgICAgICAgICAgICAgJ1tyZW1vdGUgIm9yaWdpbiJdXG4nCi0gICAgICAgICAg
ICAgICAgICAgICdcdHVybCA9IHtnaXRfcmVtb3RlfVxuJwotICAgICAgICAgICAgICAgICAgICAn
XHRmZXRjaCA9ICtyZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qXG4nCi0gICAgICAg
ICAgICAgICAgICAgICdbYnJhbmNoICJtYWluIl1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0
cmVtb3RlID0gb3JpZ2luXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdG1lcmdlID0gcmVmcy9o
ZWFkcy9tYWluXG4nCi0gICAgICAgICAgICAgICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicK
LSAgICAgICAgICAgICAgICAgICAgJ1x0dXJsID0ge3N2bl9yZW1vdGV9XG4nCi0gICAgICAgICAg
ICAgICAgICAgICdcdGZldGNoID0gdHJ1bms6cmVmcy9yZW1vdGVzL29yaWdpbi9tYWluXG4nCi0g
ICAgICAgICAgICAgICAgICAgICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWE6cmVmcy9yZW1v
dGVzL29yaWdpbi9icmFuY2gtYVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IGJy
YW5jaGVzL2JyYW5jaC1iOnJlZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoLWJcbicuZm9ybWF0KAot
ICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdpdF9yZW1vdGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzdm5fcmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAgICAg
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzkzMzgpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3N2bl91bml0dGVzdC5weQko
d29ya2luZyBjb3B5KQpAQCAtMjEsMTcgKzIxLDE4IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9y
dCBvcwotaW1wb3J0IHNodXRpbAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKIAog
ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQotZnJvbSB3ZWJraXRjb3Jl
cHkgaW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRD
YXB0dXJlLCBMb2dnZXJDYXB0dXJlLCB1bml0dGVzdAogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQg
Q29tbWl0LCBsb2NhbCwgbW9ja3MsIHJlbW90ZQogCiAKLWNsYXNzIFRlc3RMb2NhbFN2bih1bml0
dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5JworY2xhc3MgVGVz
dExvY2FsU3ZuKHVuaXR0ZXN0LlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAnbW9jay9y
ZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0TG9j
YWxTdm4sIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYu
cGF0aCwgJy5zdm4nKSkKIAogICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKICAgICAgICAg
d2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KCk6CkBAIC04
MSw3ICs4Miw3IEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbCgKICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIHUnUGF0aCc6IHUnLicsCi0gICAgICAgICAgICAgICAgICAgIHUnV29ya2lu
ZyBDb3B5IFJvb3QgUGF0aCc6IHUnL21vY2svcmVwb3NpdG9yeScsCisgICAgICAgICAgICAgICAg
ICAgIHUnV29ya2luZyBDb3B5IFJvb3QgUGF0aCc6IHNlbGYucGF0aCwKICAgICAgICAgICAgICAg
ICAgICAgdSdSZXBvc2l0b3J5IFJvb3QnOiB1J2h0dHBzOi8vc3ZuLm1vY2sub3JnL3JlcG9zaXRv
cnkvcmVwb3NpdG9yeScsCiAgICAgICAgICAgICAgICAgICAgIHUnVVJMJzogdSdodHRwczovL3N2
bi5tb2NrLm9yZy9yZXBvc2l0b3J5L3JlcG9zaXRvcnkvdHJ1bmsnLAogICAgICAgICAgICAgICAg
ICAgICB1J1JlbGF0aXZlIFVSTCc6ICB1J14vdHJ1bmsnLApAQCAtOTUsNyArOTYsNyBAQCBjbGFz
cyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgKQogCiAgICAg
ZGVmIHRlc3RfY29tbWl0X3JldmlzaW9uKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2Fs
LlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9j
YWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzFAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHJldmlz
aW9uPTEpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAdHJ1bmsnLCBzdHIobG9j
YWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTIpKSkKICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJzIuMUBicmFuY2gtYScsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21t
aXQocmV2aXNpb249MykpKQpAQCAtMTEwLDEzICsxMTEsMTMgQEAgY2xhc3MgVGVzdExvY2FsU3Zu
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xMSkpCiAKICAgICBkZWYg
dGVzdF9jb21taXRfZnJvbV9icmFuY2goc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwu
U3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2Nh
bC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnNEB0cnVuaycsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoYnJhbmNo
PSd0cnVuaycpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScs
IHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoYnJhbmNoPSdicmFuY2gtYScpKSkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuM0BicmFuY2gtYicsIHN0cihsb2NhbC5Tdm4o
c2VsZi5wYXRoKS5jb21taXQoYnJhbmNoPSdicmFuY2gtYicpKSkKIAogICAgIGRlZiB0ZXN0X2lk
ZW50aWZpZXIoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCks
IE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRo
KSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsb2Nh
bC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMUB0cnVuaycpLnJldmlzaW9uKQog
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21t
aXQoaWRlbnRpZmllcj0nMkB0cnVuaycpLnJldmlzaW9uKQogICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgzLCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMi4xQGJy
YW5jaC1hJykucmV2aXNpb24pCkBAIC0xMjcsNyArMTI4LDcgQEAgY2xhc3MgVGVzdExvY2FsU3Zu
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgbG9j
YWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzIuM0BicmFuY2gtYicpLnJldmlz
aW9uKQogCiAgICAgZGVmIHRlc3Rfbm9uX2Nhbm5vbmljYWxfaWRlbnRpZmllcnMoc2VsZik6Ci0g
ICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToK
KyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgp
OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMkB0cnVuaycsIHN0cihsb2NhbC5Tdm4o
c2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMEBicmFuY2gtYScpKSkKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJzFAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29t
bWl0KGlkZW50aWZpZXI9Jy0xQGJyYW5jaC1hJykpKQogCkBAIC0xODEsMzEgKzE4MiwyNiBAQCBj
bGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnMi4xQGJyYW5jaC1hJywgc3RyKHJlcG8uY29tbWl0KHJldmlzaW9uPTMpKSkK
IAogICAgIGRlZiB0ZXN0X2NhY2hlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBk
aXJuYW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2Fs
LlN2bihkaXJuYW1lKSBhcyBtb2NrX3JlcG8sIE91dHB1dENhcHR1cmUoKToKLSAgICAgICAgICAg
ICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oZGlybmFtZSwgJy5zdm4nKSkKLSAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QHRydW5rJywgc3RyKGxvY2FsLlN2bihkaXJuYW1lKS5j
b21taXQoKSkpCi0KLSAgICAgICAgICAgICAgICBtb2NrX3JlcG8uY29ubmVjdGVkID0gRmFsc2UK
LSAgICAgICAgICAgICAgICBjb21taXQgPSBsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KCkKLSAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QHRydW5rJywgc3RyKGNvbW1pdCkpCi0K
LSAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLlN2bi5FeGNlcHRp
b24pOgotICAgICAgICAgICAgICAgICAgICBsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KHJldmlz
aW9uPTMpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5h
bWUpCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCkgYXMgbW9ja19yZXBv
LCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QHRydW5r
Jywgc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdCgpKSkKKworICAgICAgICAgICAgbW9j
a19yZXBvLmNvbm5lY3RlZCA9IEZhbHNlCisgICAgICAgICAgICBjb21taXQgPSBsb2NhbC5Tdm4o
c2VsZi5wYXRoKS5jb21taXQoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVu
aycsIHN0cihjb21taXQpKQorCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxv
Y2FsLlN2bi5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIGxvY2FsLlN2bihzZWxmLnBhdGgp
LmNvbW1pdChyZXZpc2lvbj0zKQogCiAgICAgZGVmIHRlc3RfdGFnKHNlbGYpOgotICAgICAgICB3
aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAg
IHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOSwgbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHRh
Zz0ndGFnLTEnKS5yZXZpc2lvbikKIAogICAgIGRlZiB0ZXN0X3RhZ19wcmV2aW91cyhzZWxmKToK
LSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgp
OgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJl
KCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDcsIGxvY2FsLlN2bihzZWxmLnBhdGgp
LmNvbW1pdChpZGVudGlmaWVyPScyLjJAdGFncy90YWctMScpLnJldmlzaW9uKQogCiAgICAgZGVm
IHRlc3RfY2hlY2tvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYu
cGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2Vs
Zi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgcmVwb3NpdG9yeSA9IGxvY2Fs
LlN2bihzZWxmLnBhdGgpCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNiwgcmVwb3Np
dG9yeS5jb21taXQoKS5yZXZpc2lvbikKQEAgLTIxOSwyMCArMjE1LDIwIEBAIGNsYXNzIFRlc3RM
b2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDksIHJlcG9zaXRvcnkuY29tbWl0KCkucmV2aXNpb24pCiAKICAgICBkZWYgdGVzdF9ub19sb2co
c2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENh
cHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2Vy
Q2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobG9jYWwuU3ZuKHNlbGYu
cGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzRAdHJ1bmsnLCBpbmNsdWRlX2xvZz1GYWxzZSkubWVz
c2FnZSkKIAogICAgIGRlZiB0ZXN0X2FsdGVybmF0aXZlX2RlZmF1bHRfYnJhbmNoKHNlbGYpOgot
ICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6
CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUo
KToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgp
LmZpbmQoJzRAbWFpbicpKSwgJzRAdHJ1bmsnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuZmluZCgnNEBtYXN0ZXInKSksICc0QHRydW5rJykK
IAogICAgIGRlZiB0ZXN0X25vX2lkZW50aWZpZXIoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3Mu
bG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUobG9jYWwuU3ZuKHNlbGYucGF0aCkuZmluZCgndHJ1bmsnLCBpbmNsdWRl
X2lkZW50aWZpZXI9RmFsc2UpLmlkZW50aWZpZXIpCiAKICAgICBkZWYgdGVzdF9jb21taXRzKHNl
bGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0
dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNh
cHR1cmUoKToKICAgICAgICAgICAgIHN2biA9IGxvY2FsLlN2bihzZWxmLnBhdGgpCiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKENvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAg
ICAgICAgICAgc3ZuLmNvbW1pdChyZXZpc2lvbj0ncjYnKSwKQEAgLTI0Miw3ICsyMzgsNyBAQCBj
bGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXSksIENv
bW1pdC5FbmNvZGVyKCkuZGVmYXVsdChsaXN0KHN2bi5jb21taXRzKGJlZ2luPWRpY3QocmV2aXNp
b249J3IxJyksIGVuZD1kaWN0KHJldmlzaW9uPSdyNicpKSkpKQogCiAgICAgZGVmIHRlc3RfY29t
bWl0c19icmFuY2goc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0
aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5w
YXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc3ZuID0gbG9jYWwuU3ZuKHNlbGYu
cGF0aCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LkVuY29kZXIoKS5kZWZh
dWx0KFsKICAgICAgICAgICAgICAgICBzdm4uY29tbWl0KHJldmlzaW9uPSdyNycpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432407</attachid>
            <date>2021-06-28 10:27:17 -0700</date>
            <delta_ts>2021-06-28 11:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227327-20210628102716.patch</filename>
            <type>text/plain</type>
            <size>35664</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3OTM0MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDIxLTA2LTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgdGVzdCBzdWl0ZSB3aXRoIHRlbXAgZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjczMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5Njk3OTA5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGhhZCBzb21lIGR1cGxpY2F0ZWQg
Y29kZSB3aGljaCBzZXQgdXAsIHRoZW4gY2xlYW5lZCB1cCBhIHRlbXBvcmFyeQorICAgICAgICBk
aXJlY3RvcnkgYXNzb2NpYXRlZCB3aXRoIGEgdGVzdC4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIG93
bmVkIGJ5IGEKKyAgICAgICAgYmFzZSBjbGFzcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSB0ZXN0
IHN1aXRlcy4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvdGVzdGluZy5weTogQWRkZWQuCisgICAgICAgIChQYXRoVGVzdENhc2UpOiBDcmVh
dGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGJlZm9yZSBhIHRlc3Qgc3RhcnRzLCBkZWxldGUgaXQg
YWZ0ZXIuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvdGVzdC9jYW5vbmljYWxpemVfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0Q2Fub25pY2Fs
aXplKTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2hlY2tvdXRfdW5pdHRlc3QucHk6CisgICAgICAg
IChUZXN0Q2hlY2tvdXQpOiBBZG9wdCBQYXRoVGVzdENhc2UuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9maW5kX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAoVGVzdEZpbmQpOiBBZG9wdCBQYXRoVGVzdENhc2UuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5pdHRlc3QucHk6
CisgICAgICAgIChUZXN0R2l0KTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc2NtX3VuaXR0ZXN0LnB5
OgorICAgICAgICAoVGVzdFNjbSk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NldHVwX2dpdF9zdm5f
dW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0U2V0dXBHaXRTdm4pOiBBZG9wdCBQYXRoVGVzdENh
c2UuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9zdm5fdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0TG9jYWxTdm4pOiBBZG9wdCBQYXRo
VGVzdENhc2UuCisKIDIwMjEtMDYtMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVCBoaXQgaW4gTmV0d29ya1Nlc3Np
b25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayB3aGVuIHVzaW5nIFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyCkluZGV4OiBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RpbmcucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0
aW5nLnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS93ZWJraXRjb3JlcHkvdGVzdGluZy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4
IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBvcworaW1wb3J0IHNodXRpbAoraW1w
b3J0IHRlbXBmaWxlCisKK2Zyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCisKKworY2xhc3Mg
UGF0aFRlc3RDYXNlKFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICcnCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoUGF0aFRlc3RDYXNl
LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29udGFpbmVy
ID0gTm9uZQorICAgICAgICBzZWxmLnBhdGggPSBOb25lCisKKyAgICBkZWYgc2V0VXAoc2VsZik6
CisgICAgICAgIHNlbGYuY29udGFpbmVyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgIHNl
bGYucGF0aCA9IG9zLnBhdGguam9pbihzZWxmLmNvbnRhaW5lciwgc2VsZi5iYXNlcGF0aCkKKyAg
ICAgICAgb3MubWFrZWRpcnMoc2VsZi5wYXRoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor
ICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuY29udGFpbmVyLCBpZ25vcmVfZXJyb3JzPVRydWUp
CisgICAgICAgIHNlbGYuY29udGFpbmVyID0gTm9uZQorICAgICAgICBzZWxmLnBhdGggPSBOb25l
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90
ZXN0L2Nhbm9uaWNhbGl6ZV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2Nhbm9uaWNhbGl6ZV91bml0
dGVzdC5weQkocmV2aXNpb24gMjc5MzQxKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9jYW5vbmljYWxpemVfdW5pdHRlc3QucHkJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjAsMTUgKzIwLDIwIEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
LWltcG9ydCB1bml0dGVzdAoraW1wb3J0IG9zCiAKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBP
dXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdGVz
dGluZwogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1RpbWUKIGZy
b20gd2Via2l0c2NtcHkgaW1wb3J0IHByb2dyYW0sIG1vY2tzLCBsb2NhbCwgQ29tbWl0LCBDb250
cmlidXRvcgogCiAKLWNsYXNzIFRlc3RDYW5vbmljYWxpemUodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgIHBhdGggPSAnL21vY2svcmVwb3NpdG9yeScKK2NsYXNzIFRlc3RDYW5vbmljYWxpemUodGVz
dGluZy5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKwor
ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdENhbm9uaWNhbGl6ZSwgc2Vs
Zikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdp
dCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLnN2bicpKQog
CiAgICAgZGVmIHRlc3RfaW52YWxpZChzZWxmKToKICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJl
KCksIG1vY2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTW9ja1Rp
bWU6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2hlY2tvdXRfdW5pdHRlc3Qu
cHkJKHJldmlzaW9uIDI3OTM0MSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2hlY2tvdXRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjAsMTUgKzIw
LDIwIEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCB1
bml0dGVzdAoraW1wb3J0IG9zCiAKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0
dXJlCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdGVzdGluZwogZnJv
bSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1RpbWUKIGZyb20gd2Via2l0
c2NtcHkgaW1wb3J0IHByb2dyYW0sIG1vY2tzLCBsb2NhbAogCiAKLWNsYXNzIFRlc3RDaGVja291
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5JworY2xh
c3MgVGVzdENoZWNrb3V0KHRlc3RpbmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdt
b2NrL3JlcG9zaXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRl
c3RDaGVja291dCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4o
c2VsZi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5w
YXRoLCAnLnN2bicpKQogCiAgICAgZGVmIHRlc3RfY2hlY2tvdXRfZ2l0KHNlbGYpOgogICAgICAg
ICB3aXRoIE91dHB1dENhcHR1cmUoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tz
LmxvY2FsLlN2bigpLCBNb2NrVGltZToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2Zp
bmRfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3OTM0MSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZmluZF91bml0dGVzdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsMTggKzIxLDIzIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBqc29u
CitpbXBvcnQgb3MKIGltcG9ydCBzaHV0aWwKIGltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0
ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHdlYmtpdGNvcmVweSBp
bXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1
cmUsIHRlc3RpbmcKIGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFzIE1vY2tU
aW1lCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBwcm9ncmFtLCBtb2NrcwogCiAKLWNsYXNzIFRl
c3RGaW5kKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBwYXRoID0gJy9tb2NrL3JlcG9zaXRvcnkn
CitjbGFzcyBUZXN0RmluZCh0ZXN0aW5nLlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAn
bW9jay9yZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihU
ZXN0RmluZCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2Vs
Zi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRo
LCAnLnN2bicpKQogCiAgICAgZGVmIHRlc3RfYmFzaWNfZ2l0KHNlbGYpOgogICAgICAgICB3aXRo
IE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCks
IG1vY2tzLmxvY2FsLlN2bigpLCBNb2NrVGltZToKQEAgLTIzNSw3ICsyNDAsNyBAQCBJZGVudGlm
aWVyOiAzQHRydW5rCiAgICAgICAgICkKIAogCi1jbGFzcyBUZXN0SW5mbyh1bml0dGVzdC5UZXN0
Q2FzZSk6CitjbGFzcyBUZXN0SW5mbyh0ZXN0aW5nLlRlc3RDYXNlKToKICAgICBwYXRoID0gJy9t
b2NrL3JlcG9zaXRvcnknCiAKICAgICBkZWYgdGVzdF9iYXNpY19naXQoc2VsZik6CkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dpdF91
bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVzdC5weQkocmV2aXNpb24gMjc5MzQxKQor
KysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9n
aXRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDE4ICsyMSwxOSBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBpbXBvcnQgb3MKLWltcG9ydCBzaHV0aWwKLWltcG9ydCB0ZW1wZmlsZQotaW1w
b3J0IHVuaXR0ZXN0CiAKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgcnVuLCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJlCitmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgcnVuLCB0ZXN0aW5nLCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0
dXJlCiBmcm9tIHdlYmtpdGNvcmVweS5tb2NrcyBpbXBvcnQgVGltZSBhcyBNb2NrVGltZQogZnJv
bSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCBsb2NhbCwgbW9ja3MsIHJlbW90ZQogCiAKLWNs
YXNzIFRlc3RHaXQodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAnL21vY2svcmVwb3Np
dG9yeScKK2NsYXNzIFRlc3RHaXQodGVzdGluZy5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRo
ID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3Vw
ZXIoVGVzdEdpdCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4o
c2VsZi5wYXRoLCAnLmdpdCcpKQogCiAgICAgZGVmIHRlc3RfZGV0ZWN0aW9uKHNlbGYpOgogICAg
ICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1v
Y2tzLmxvY2FsLlN2bigpOgpAQCAtNzksNjUgKzgwLDUyIEBAIGNsYXNzIFRlc3RHaXQodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbC5HaXQoc2Vs
Zi5wYXRoKS5kZWZhdWx0X2JyYW5jaCwgJ21haW4nKQogCiAgICAgZGVmIHRlc3Rfc2NtX3R5cGUo
c2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0
ZW1wKCkKLSAgICAgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIHJlbW90ZT0n
Z2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1vY2tUaW1lLCBMb2dnZXJD
YXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChkaXJu
YW1lKS5pc19naXQpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShsb2NhbC5HaXQo
ZGlybmFtZSkuaXNfc3ZuKQotCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJu
YW1lLCBnaXRfc3ZuPVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2Vs
Zi5wYXRoKSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGxvY2FsLkdpdChkaXJuYW1lKS5pc19naXQpCi0gICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChkaXJuYW1lKS5pc19zdm4pCi0KLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKKyAgICAgICAgd2l0aCBt
b2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9y
bWF0KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChzZWxmLnBhdGgpLmlzX2dpdCkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UobG9jYWwuR2l0KHNlbGYucGF0aCkuaXNfc3ZuKQorCisgICAgICAg
IHdpdGggbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dp
dEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2Fw
dHVyZSgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2FsLkdpdChzZWxmLnBhdGgp
LmlzX2dpdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoc2VsZi5wYXRo
KS5pc19zdm4pCiAKICAgICBkZWYgdGVzdF9pbmZvKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIG1v
Y2tzLmxvY2FsLkdpdChkaXJuYW1lLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0
KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgotICAgICAgICAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGljdCgpLCBsb2NhbC5HaXQoZGlybmFtZSkuaW5m
bygpKQotCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCBnaXRfc3Zu
PVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1v
Y2tUaW1lOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RGljdEVxdWFsKAotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnUGF0aCc6ICcuJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdSZXBvc2l0b3J5IFJvb3QnOiAnZ2l0QGV4YW1wbGUub3JnOi9t
b2NrL3JlcG9zaXRvcnknLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1VSTCc6ICdnaXRAZXhh
bXBsZS5vcmc6L21vY2svcmVwb3NpdG9yeS9tYWluJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICdSZXZpc2lvbic6ICc5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICdOb2RlIEtpbmQnOiAn
ZGlyZWN0b3J5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICdTY2hlZHVsZSc6ICdub3JtYWwn
LAotICAgICAgICAgICAgICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBBdXRob3InOiAnamJlZGFy
ZEBhcHBsZS5jb20nLAotICAgICAgICAgICAgICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBSZXYn
OiAnOScsCi0gICAgICAgICAgICAgICAgICAgICAgICAnTGFzdCBDaGFuZ2VkIERhdGUnOiBkYXRl
dGltZS5mcm9tdGltZXN0YW1wKDE2MDE2NjgwMDApLnN0cmZ0aW1lKCclWS0lbS0lZCAlSDolTTol
UycpLAotICAgICAgICAgICAgICAgICAgICB9LCBsb2NhbC5HaXQoZGlybmFtZSkuaW5mbygpLAot
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5y
bXRyZWUoZGlybmFtZSkKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCBy
ZW1vdGU9J2dpdEBleGFtcGxlLm9yZzptb2NrL3JlcG9zaXRvcnknKSwgTW9ja1RpbWUsIExvZ2dl
ckNhcHR1cmUoKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0
LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KCksIGxv
Y2FsLkdpdChzZWxmLnBhdGgpLmluZm8oKSkKKworICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdp
dChzZWxmLnBhdGgsIGdpdF9zdm49VHJ1ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6bW9jay9y
ZXBvc2l0b3J5JyksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwo
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnUGF0aCc6ICcuJywKKyAg
ICAgICAgICAgICAgICAgICAgJ1JlcG9zaXRvcnkgUm9vdCc6ICdnaXRAZXhhbXBsZS5vcmc6bW9j
ay9yZXBvc2l0b3J5JywKKyAgICAgICAgICAgICAgICAgICAgJ1VSTCc6ICdnaXRAZXhhbXBsZS5v
cmc6bW9jay9yZXBvc2l0b3J5L21haW4nLAorICAgICAgICAgICAgICAgICAgICAnUmV2aXNpb24n
OiAnOScsCisgICAgICAgICAgICAgICAgICAgICdOb2RlIEtpbmQnOiAnZGlyZWN0b3J5JywKKyAg
ICAgICAgICAgICAgICAgICAgJ1NjaGVkdWxlJzogJ25vcm1hbCcsCisgICAgICAgICAgICAgICAg
ICAgICdMYXN0IENoYW5nZWQgQXV0aG9yJzogJ2piZWRhcmRAYXBwbGUuY29tJywKKyAgICAgICAg
ICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBSZXYnOiAnOScsCisgICAgICAgICAgICAgICAgICAg
ICdMYXN0IENoYW5nZWQgRGF0ZSc6IGRhdGV0aW1lLmZyb210aW1lc3RhbXAoMTYwMTY2ODAwMCku
c3RyZnRpbWUoJyVZLSVtLSVkICVIOiVNOiVTJyksCisgICAgICAgICAgICAgICAgfSwgbG9jYWwu
R2l0KHNlbGYucGF0aCkuaW5mbygpLAorICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY29t
bWl0X3JldmlzaW9uKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0g
dGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJu
YW1lKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKLSAgICAgICAgICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5FeGNlcHRpb24pOgotICAgICAgICAgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNp
b249MSkpCi0KLSAgICAgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KGRpcm5hbWUsIGdpdF9z
dm49VHJ1ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBhdGgpKSwg
TW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcxQG1haW4nLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0xKSkp
Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMkBtYWluJywgc3RyKGxvY2FsLkdp
dChkaXJuYW1lKS5jb21taXQocmV2aXNpb249MikpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzIuMUBicmFuY2gtYScsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJl
dmlzaW9uPTMpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCczQG1haW4nLCBz
dHIobG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj00KSkpCi0gICAgICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4yQGJyYW5jaC1iJywgc3RyKGxvY2FsLkdpdChkaXJuYW1l
KS5jb21taXQocmV2aXNpb249NSkpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JzIuMkBicmFuY2gtYScsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTYp
KSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjNAYnJhbmNoLWInLCBzdHIo
bG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj03KSkpCi0gICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnNEBtYWluJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQo
cmV2aXNpb249OCkpKQotCi0gICAgICAgICAgICAgICAgIyBPdXQtb2YtYm91bmRzIGNvbW1pdAot
ICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlv
bik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbG9jYWwuR2l0
KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0xMCkpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0
KHNlbGYucGF0aCksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6CisgICAgICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlz
aW9uPTEpKQorCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgZ2l0X3N2
bj1UcnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBN
b2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
MUBtYWluJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xKSkpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyQG1haW4nLCBzdHIobG9jYWwuR2l0KHNlbGYu
cGF0aCkuY29tbWl0KHJldmlzaW9uPTIpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JzIuMUBicmFuY2gtYScsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249
MykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnM0BtYWluJywgc3RyKGxvY2FsLkdp
dChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj00KSkpCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcyLjJAYnJhbmNoLWInLCBzdHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJl
dmlzaW9uPTUpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScs
IHN0cihsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249NikpKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4zQGJyYW5jaC1iJywgc3RyKGxvY2FsLkdpdChzZWxmLnBh
dGgpLmNvbW1pdChyZXZpc2lvbj03KSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0
QG1haW4nLCBzdHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTgpKSkKKwor
ICAgICAgICAgICAgIyBPdXQtb2YtYm91bmRzIGNvbW1pdAorICAgICAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhsb2NhbC5HaXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0x
MCkpCiAKICAgICBkZWYgdGVzdF9jb21taXRfaGFzaChzZWxmKToKICAgICAgICAgZm9yIG1vY2sg
aW4gW21vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRo
LCBnaXRfc3ZuPVRydWUpXToKQEAgLTI4NSw3ICsyNzMsNyBAQCBjbGFzcyBUZXN0R2l0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2NvbW1pdHMoc2VsZik6CiAgICAgICAgIGZv
ciBtb2NrIGluIFttb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KHNl
bGYucGF0aCwgZ2l0X3N2bj1UcnVlKV06Ci0gICAgICAgICAgICB3aXRoIG1vY2s6CisgICAgICAg
ICAgICB3aXRoIG1vY2ssIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgICAgICBnaXQgPSBs
b2NhbC5HaXQoc2VsZi5wYXRoKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29t
bWl0LkVuY29kZXIoKS5kZWZhdWx0KFsKICAgICAgICAgICAgICAgICAgICAgZ2l0LmNvbW1pdCho
YXNoPSdiYWU1ZDFlOScpLApAQCAtMjk2LDcgKzI4NCw3IEBAIGNsYXNzIFRlc3RHaXQodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfY29tbWl0c19icmFuY2goc2VsZik6CiAgICAg
ICAgIGZvciBtb2NrIGluIFttb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwu
R2l0KHNlbGYucGF0aCwgZ2l0X3N2bj1UcnVlKV06Ci0gICAgICAgICAgICB3aXRoIG1vY2s6Cisg
ICAgICAgICAgICB3aXRoIG1vY2ssIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgICAgICBn
aXQgPSBsb2NhbC5HaXQoc2VsZi5wYXRoKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KFsKICAgICAgICAgICAgICAgICAgICAgZ2l0LmNv
bW1pdChoYXNoPSc2MjE2NTJhZCcpLApAQCAtMzc4LDcgKzM2Niw3IEBAIENvbW1pdERhdGU6IFNh
dCBPY3QgMDMgMDI6MDY6NDAgMjAyMCArMDAKICAgICAgICAgICAgICkKIAogCi1jbGFzcyBUZXN0
R2l0SHViKHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RHaXRIdWIodGVzdGluZy5UZXN0
Q2FzZSk6CiAgICAgcmVtb3RlID0gJ2h0dHBzOi8vZ2l0aHViLmV4YW1wbGUuY29tL1dlYktpdC9X
ZWJLaXQnCiAKICAgICBkZWYgdGVzdF9kZXRlY3Rpb24oc2VsZik6CkBAIC01MzAsOCArNTE4LDcg
QEAgY2xhc3MgVGVzdEdpdEh1Yih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBdKSwg
Q29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGxpc3QoZ2l0LmNvbW1pdHMoYmVnaW49ZGljdChhcmd1
bWVudD0nOWI4MzExZjInKSwgZW5kPWRpY3QoYXJndW1lbnQ9JzYyMTY1MmFkJykpKSkpCiAKIAot
Ci1jbGFzcyBUZXN0Qml0QnVja2V0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RCaXRC
dWNrZXQodGVzdGluZy5UZXN0Q2FzZSk6CiAgICAgcmVtb3RlID0gJ2h0dHBzOi8vYml0YnVja2V0
LmV4YW1wbGUuY29tL3Byb2plY3RzL1dFQktJVC9yZXBvcy93ZWJraXQnCiAKICAgICBkZWYgdGVz
dF9kZXRlY3Rpb24oc2VsZik6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS90ZXN0L3NjbV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NjbV91bml0
dGVzdC5weQkocmV2aXNpb24gMjc5MzQxKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zY21fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkK
QEAgLTIwLDEzICsyMCwxOSBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCitpbXBvcnQgb3MKIAotaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBv
cnQgdGVzdGluZwogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIG1vY2tzCiAKIAotY2xh
c3MgVGVzdFNjbSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9kaXJlY3Rv
cnknCitjbGFzcyBUZXN0U2NtKHRlc3RpbmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9
ICdtb2NrL3JlcG9zaXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVy
KFRlc3RTY20sIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNl
bGYucGF0aCwgJy5naXQnKSkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0
aCwgJy5zdm4nKSkKIAogICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKICAgICAgICAgd2l0
aCBtb2Nrcy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKCk6CkluZGV4OiBUb29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3NldHVwX2dpdF9zdm5f
dW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zZXR1cF9naXRfc3ZuX3VuaXR0ZXN0LnB5CShyZXZpc2lv
biAyNzkzNDEpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS90ZXN0L3NldHVwX2dpdF9zdm5fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDEyMyArMjEsMTEwIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBvcwotaW1wb3J0IHNodXRp
bAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKIAotZnJvbSBkYXRldGltZSBpbXBv
cnQgZGF0ZXRpbWUKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBMb2dnZXJDYXB0dXJlLCBPdXRw
dXRDYXB0dXJlCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdGVzdGlu
ZwogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1RpbWUKIGZyb20g
d2Via2l0c2NtcHkgaW1wb3J0IHByb2dyYW0sIG1vY2tzCiAKIAotY2xhc3MgVGVzdFNldHVwR2l0
U3ZuKHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RTZXR1cEdpdFN2bih0ZXN0aW5nLlBh
dGhUZXN0Q2FzZSk6CiAgICAgZ2l0X3JlbW90ZSA9ICdnaXRAZXhhbXBsZS5vcmc6RXhhbXBsZScK
ICAgICBzdm5fcmVtb3RlID0gJ2h0dHBzOi8vc3ZuLmV4YW1wbGUub3JnL3JlcG9zaXRvcnkvZXhh
bXBsZScKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9zaXRvcnknCiAKLSAgICBkZWYgdGVzdF9z
dm4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5t
a2R0ZW1wKCkKLSAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBt
b2Nrcy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKGRpcm5hbWUsIHJlbW90ZT1zZWxmLnN2
bl9yZW1vdGUpLCBNb2NrVGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEs
IHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4n
LCksCi0gICAgICAgICAgICAgICAgICAgIHBhdGg9ZGlybmFtZSwKLSAgICAgICAgICAgICAgICAg
ICAgc3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAgICAgICAgKSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICdDYW5u
b3Qgc2V0dXAgZ2l0LXN2biBvbiBTdWJ2ZXJzaW9uIHJlcG9zaXRvcnlcbicpCisgICAgZGVmIHNl
dFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0U2V0dXBHaXRTdm4sIHNlbGYpLnNldFVwKCkK
KyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkKKyAgICAg
ICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgIGRlZiB0ZXN0
X3N2bihzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1v
Y2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoLCByZW1vdGU9c2VsZi5z
dm5fcmVtb3RlKSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHBy
b2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsKSwKKyAg
ICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9u
PXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAgICAgICAgICkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICdDYW5ub3Qgc2V0dXAgZ2l0LXN2biBvbiBT
dWJ2ZXJzaW9uIHJlcG9zaXRvcnlcbicpCiAKICAgICBkZWYgdGVzdF9lbXB0eShzZWxmKToKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAg
ICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdp
dChkaXJuYW1lLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1v
Y2tzLnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBN
b2NrVGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFp
bigKLSAgICAgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4nLCksCi0gICAgICAg
ICAgICAgICAgICAgIHBhdGg9ZGlybmFtZSwKLSAgICAgICAgICAgICAgICAgICAgc3VidmVyc2lv
bj1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAgICAgICAgKSkKKyAgICAgICAgd2l0aCBPdXRw
dXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90
ZT1zZWxmLmdpdF9yZW1vdGUpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihy
ZW1vdGU9c2VsZi5zdm5fcmVtb3RlLnNwbGl0KCc6Ly8nKVsxXSksIE1vY2tUaW1lOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAg
YXJncz0oJ3NldHVwLWdpdC1zdm4nLCksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgs
CisgICAgICAgICAgICAgICAgc3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAg
ICApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgY2FwdHVyZWQuc3Rk
b3V0LmdldHZhbHVlKCksCisgICAgICAgICAgICAnQWRkaW5nIHN2bi1yZW1vdGUgdG8gZ2l0IGNv
bmZpZ1xuJyArCisgICAgICAgICAgICAnUG9wdWxhdGluZyBzdm4gY29tbWl0IG1hcHBpbmcgKHdp
bGwgdGFrZSBhIGZldyBtaW51dGVzKS4uLlxuJywKKyAgICAgICAgKQorCisgICAgICAgIHdpdGgg
b3Blbihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdC9jb25maWcnKSkgYXMgY29uZmlnOgog
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBjYXB0dXJlZC5z
dGRvdXQuZ2V0dmFsdWUoKSwKLSAgICAgICAgICAgICAgICAnQWRkaW5nIHN2bi1yZW1vdGUgdG8g
Z2l0IGNvbmZpZ1xuJyArCi0gICAgICAgICAgICAgICAgJ1BvcHVsYXRpbmcgc3ZuIGNvbW1pdCBt
YXBwaW5nICh3aWxsIHRha2UgYSBmZXcgbWludXRlcykuLi5cbicsCisgICAgICAgICAgICAgICAg
Y29uZmlnLnJlYWQoKSwKKyAgICAgICAgICAgICAgICAnW2NvcmVdXG4nCisgICAgICAgICAgICAg
ICAgJ1x0cmVwb3NpdG9yeWZvcm1hdHZlcnNpb24gPSAwXG4nCisgICAgICAgICAgICAgICAgJ1x0
ZmlsZW1vZGUgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1x0YmFyZSA9IGZhbHNlXG4nCisg
ICAgICAgICAgICAgICAgJ1x0bG9nYWxscmVmdXBkYXRlcyA9IHRydWVcbicKKyAgICAgICAgICAg
ICAgICAnXHRpZ25vcmVjYXNlID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdHByZWNvbXBv
c2V1bmljb2RlID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdbcmVtb3RlICJvcmlnaW4iXVxu
JworICAgICAgICAgICAgICAgICdcdHVybCA9IHtnaXRfcmVtb3RlfVxuJworICAgICAgICAgICAg
ICAgICdcdGZldGNoID0gK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLypcbicKKyAg
ICAgICAgICAgICAgICAnW2JyYW5jaCAibWFpbiJdXG4nCisgICAgICAgICAgICAgICAgJ1x0cmVt
b3RlID0gb3JpZ2luXG4nCisgICAgICAgICAgICAgICAgJ1x0bWVyZ2UgPSByZWZzL2hlYWRzL21h
aW5cbicKKyAgICAgICAgICAgICAgICAnW3N2bi1yZW1vdGUgInN2biJdXG4nCisgICAgICAgICAg
ICAgICAgJ1x0dXJsID0ge3N2bl9yZW1vdGV9XG4nCisgICAgICAgICAgICAgICAgJ1x0ZmV0Y2gg
PSB0cnVuazpyZWZzL3JlbW90ZXMvb3JpZ2luL21haW5cbicuZm9ybWF0KAorICAgICAgICAgICAg
ICAgICAgICBnaXRfcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSwKKyAgICAgICAgICAgICAgICAgICAg
c3ZuX3JlbW90ZT1zZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICAgICAgKSwKICAgICAgICAg
ICAgICkKIAotICAgICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkaXJuYW1lLCAnLmdp
dC9jb25maWcnKSkgYXMgY29uZmlnOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5yZWFkKCksCi0gICAgICAgICAgICAgICAgICAg
ICdbY29yZV1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0cmVwb3NpdG9yeWZvcm1hdHZlcnNp
b24gPSAwXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZpbGVtb2RlID0gdHJ1ZVxuJwotICAg
ICAgICAgICAgICAgICAgICAnXHRiYXJlID0gZmFsc2VcbicKLSAgICAgICAgICAgICAgICAgICAg
J1x0bG9nYWxscmVmdXBkYXRlcyA9IHRydWVcbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0aWdu
b3JlY2FzZSA9IHRydWVcbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0cHJlY29tcG9zZXVuaWNv
ZGUgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdbcmVtb3RlICJvcmlnaW4iXVxuJwot
ICAgICAgICAgICAgICAgICAgICAnXHR1cmwgPSB7Z2l0X3JlbW90ZX1cbicKLSAgICAgICAgICAg
ICAgICAgICAgJ1x0ZmV0Y2ggPSArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKlxu
JwotICAgICAgICAgICAgICAgICAgICAnW2JyYW5jaCAibWFpbiJdXG4nCi0gICAgICAgICAgICAg
ICAgICAgICdcdHJlbW90ZSA9IG9yaWdpblxuJwotICAgICAgICAgICAgICAgICAgICAnXHRtZXJn
ZSA9IHJlZnMvaGVhZHMvbWFpblxuJwotICAgICAgICAgICAgICAgICAgICAnW3N2bi1yZW1vdGUg
InN2biJdXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHVybCA9IHtzdm5fcmVtb3RlfVxuJwot
ICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IHRydW5rOnJlZnMvcmVtb3Rlcy9vcmlnaW4v
bWFpblxuJy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBnaXRfcmVtb3RlPXNlbGYu
Z2l0X3JlbW90ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN2bl9yZW1vdGU9c2VsZi5zdm5f
cmVtb3RlLAotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQotCiAgICAg
ZGVmIHRlc3RfYWRkKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0g
dGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSwgbW9j
a3MubG9jYWwuR2l0KGRpcm5hbWUsIHJlbW90ZT1zZWxmLmdpdF9yZW1vdGUpLCBtb2Nrcy5sb2Nh
bC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihyZW1vdGU9c2VsZi5zdm5fcmVtb3RlLnNwbGl0KCc6
Ly8nKVsxXSksIE1vY2tUaW1lOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
cHJvZ3JhbS5tYWluKAotICAgICAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bics
KSwKLSAgICAgICAgICAgICAgICAgICAgcGF0aD1kaXJuYW1lLAotICAgICAgICAgICAgICAgICAg
ICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAgICAgICAgICAgICApKQotCi0gICAg
ICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0
KGRpcm5hbWUsIHJlbW90ZT1zZWxmLmdpdF9yZW1vdGUpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwgbW9j
a3MucmVtb3RlLlN2bihyZW1vdGU9c2VsZi5zdm5fcmVtb3RlLnNwbGl0KCc6Ly8nKVsxXSksIE1v
Y2tUaW1lOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWlu
KAotICAgICAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsICctLWFsbC1icmFu
Y2hlcycpLAotICAgICAgICAgICAgICAgICAgICBwYXRoPWRpcm5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICkpCisg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCBy
ZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1vY2tzLnJlbW90ZS5T
dm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBNb2NrVGltZToKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAg
ICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5w
YXRoLAorICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAorICAgICAg
ICAgICAgKSkKKworICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9j
a3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxv
Y2FsLlN2bigpLCBtb2Nrcy5yZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQo
JzovLycpWzFdKSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHBy
b2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsICctLWFs
bC1icmFuY2hlcycpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAg
ICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAorICAgICAgICAgICAgKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1
ZSgpLAorICAgICAgICAgICAgJ0FkZGluZyBzdm4tcmVtb3RlIHRvIGdpdCBjb25maWdcbicgKwor
ICAgICAgICAgICAgJ1BvcHVsYXRpbmcgc3ZuIGNvbW1pdCBtYXBwaW5nICh3aWxsIHRha2UgYSBm
ZXcgbWludXRlcykuLi5cbicsCisgICAgICAgICkKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0
aC5qb2luKHNlbGYucGF0aCwgJy5naXQvY29uZmlnJykpIGFzIGNvbmZpZzoKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY2FwdHVyZWQuc3Rkb3V0LmdldHZh
bHVlKCksCi0gICAgICAgICAgICAgICAgJ0FkZGluZyBzdm4tcmVtb3RlIHRvIGdpdCBjb25maWdc
bicgKwotICAgICAgICAgICAgICAgICdQb3B1bGF0aW5nIHN2biBjb21taXQgbWFwcGluZyAod2ls
bCB0YWtlIGEgZmV3IG1pbnV0ZXMpLi4uXG4nLAorICAgICAgICAgICAgICAgIGNvbmZpZy5yZWFk
KCksCisgICAgICAgICAgICAgICAgJ1tjb3JlXVxuJworICAgICAgICAgICAgICAgICdcdHJlcG9z
aXRvcnlmb3JtYXR2ZXJzaW9uID0gMFxuJworICAgICAgICAgICAgICAgICdcdGZpbGVtb2RlID0g
dHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdGJhcmUgPSBmYWxzZVxuJworICAgICAgICAgICAg
ICAgICdcdGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1x0aWdu
b3JlY2FzZSA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnXHRwcmVjb21wb3NldW5pY29kZSA9
IHRydWVcbicKKyAgICAgICAgICAgICAgICAnW3JlbW90ZSAib3JpZ2luIl1cbicKKyAgICAgICAg
ICAgICAgICAnXHR1cmwgPSB7Z2l0X3JlbW90ZX1cbicKKyAgICAgICAgICAgICAgICAnXHRmZXRj
aCA9ICtyZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qXG4nCisgICAgICAgICAgICAg
ICAgJ1ticmFuY2ggIm1haW4iXVxuJworICAgICAgICAgICAgICAgICdcdHJlbW90ZSA9IG9yaWdp
blxuJworICAgICAgICAgICAgICAgICdcdG1lcmdlID0gcmVmcy9oZWFkcy9tYWluXG4nCisgICAg
ICAgICAgICAgICAgJ1tzdm4tcmVtb3RlICJzdm4iXVxuJworICAgICAgICAgICAgICAgICdcdHVy
bCA9IHtzdm5fcmVtb3RlfVxuJworICAgICAgICAgICAgICAgICdcdGZldGNoID0gdHJ1bms6cmVm
cy9yZW1vdGVzL29yaWdpbi9tYWluXG4nCisgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSBicmFu
Y2hlcy9icmFuY2gtYTpyZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5jaC1hXG4nCisgICAgICAgICAg
ICAgICAgJ1x0ZmV0Y2ggPSBicmFuY2hlcy9icmFuY2gtYjpyZWZzL3JlbW90ZXMvb3JpZ2luL2Jy
YW5jaC1iXG4nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdp
dF9yZW1vdGUsCisgICAgICAgICAgICAgICAgICAgIHN2bl9yZW1vdGU9c2VsZi5zdm5fcmVtb3Rl
LAorICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHdpdGgg
b3Blbihvcy5wYXRoLmpvaW4oZGlybmFtZSwgJy5naXQvY29uZmlnJykpIGFzIGNvbmZpZzoKLSAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICAgICBjb25m
aWcucmVhZCgpLAotICAgICAgICAgICAgICAgICAgICAnW2NvcmVdXG4nCi0gICAgICAgICAgICAg
ICAgICAgICdcdHJlcG9zaXRvcnlmb3JtYXR2ZXJzaW9uID0gMFxuJwotICAgICAgICAgICAgICAg
ICAgICAnXHRmaWxlbW9kZSA9IHRydWVcbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0YmFyZSA9
IGZhbHNlXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVl
XG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGlnbm9yZWNhc2UgPSB0cnVlXG4nCi0gICAgICAg
ICAgICAgICAgICAgICdcdHByZWNvbXBvc2V1bmljb2RlID0gdHJ1ZVxuJwotICAgICAgICAgICAg
ICAgICAgICAnW3JlbW90ZSAib3JpZ2luIl1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0dXJs
ID0ge2dpdF9yZW1vdGV9XG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZldGNoID0gK3JlZnMv
aGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLypcbicKLSAgICAgICAgICAgICAgICAgICAgJ1ti
cmFuY2ggIm1haW4iXVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRyZW1vdGUgPSBvcmlnaW5c
bicKLSAgICAgICAgICAgICAgICAgICAgJ1x0bWVyZ2UgPSByZWZzL2hlYWRzL21haW5cbicKLSAg
ICAgICAgICAgICAgICAgICAgJ1tzdm4tcmVtb3RlICJzdm4iXVxuJwotICAgICAgICAgICAgICAg
ICAgICAnXHR1cmwgPSB7c3ZuX3JlbW90ZX1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0ZmV0
Y2ggPSB0cnVuazpyZWZzL3JlbW90ZXMvb3JpZ2luL21haW5cbicKLSAgICAgICAgICAgICAgICAg
ICAgJ1x0ZmV0Y2ggPSBicmFuY2hlcy9icmFuY2gtYTpyZWZzL3JlbW90ZXMvb3JpZ2luL2JyYW5j
aC1hXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWI6
cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gtYlxuJy5mb3JtYXQoCi0gICAgICAgICAgICAgICAg
ICAgICAgICBnaXRfcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHN2bl9yZW1vdGU9c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICAgICApLAot
ICAgICAgICAgICAgICAgICkKLQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1dGls
LnJtdHJlZShkaXJuYW1lKQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvdGVzdC9zdm5fdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zdm5fdW5pdHRl
c3QucHkJKHJldmlzaW9uIDI3OTM0MSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0yMSwxNyArMjEsMTggQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCi1pbXBvcnQgc2h1
dGlsCi1pbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVzdAogCiBmcm9tIGRhdGV0aW1lIGlt
cG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIExvZ2dlckNh
cHR1cmUsIHRlc3RpbmcKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgbG9jYWwsIG1v
Y2tzLCByZW1vdGUKIAogCi1jbGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgIHBhdGggPSAnL21vY2svcmVwb3NpdG9yeScKK2NsYXNzIFRlc3RMb2NhbFN2bih0ZXN0aW5n
LlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAnbW9jay9yZXBvc2l0b3J5JworCisgICAg
ZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0TG9jYWxTdm4sIHNlbGYpLnNldFVw
KCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAog
ICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5T
dm4oc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KCk6CkBAIC04MSw3ICs4Miw3IEBAIGNsYXNz
IFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2Vy
dERpY3RFcXVhbCgKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHUnUGF0
aCc6IHUnLicsCi0gICAgICAgICAgICAgICAgICAgIHUnV29ya2luZyBDb3B5IFJvb3QgUGF0aCc6
IHUnL21vY2svcmVwb3NpdG9yeScsCisgICAgICAgICAgICAgICAgICAgIHUnV29ya2luZyBDb3B5
IFJvb3QgUGF0aCc6IHNlbGYucGF0aCwKICAgICAgICAgICAgICAgICAgICAgdSdSZXBvc2l0b3J5
IFJvb3QnOiB1J2h0dHBzOi8vc3ZuLm1vY2sub3JnL3JlcG9zaXRvcnkvcmVwb3NpdG9yeScsCiAg
ICAgICAgICAgICAgICAgICAgIHUnVVJMJzogdSdodHRwczovL3N2bi5tb2NrLm9yZy9yZXBvc2l0
b3J5L3JlcG9zaXRvcnkvdHJ1bmsnLAogICAgICAgICAgICAgICAgICAgICB1J1JlbGF0aXZlIFVS
TCc6ICB1J14vdHJ1bmsnLApAQCAtOTUsNyArOTYsNyBAQCBjbGFzcyBUZXN0TG9jYWxTdm4odW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X3Jl
dmlzaW9uKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBP
dXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCks
IExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzFAdHJ1bmsn
LCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTEpKSkKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCku
Y29tbWl0KHJldmlzaW9uPTIpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMUBi
cmFuY2gtYScsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MykpKQpA
QCAtMTEwLDEzICsxMTEsMTMgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGxvY2FsLlN2bihzZWxm
LnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xMSkpCiAKICAgICBkZWYgdGVzdF9jb21taXRfZnJvbV9i
cmFuY2goc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91
dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwg
TG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVuaycs
IHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoYnJhbmNoPSd0cnVuaycpKSkKICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYScsIHN0cihsb2NhbC5Tdm4oc2Vs
Zi5wYXRoKS5jb21taXQoYnJhbmNoPSdicmFuY2gtYScpKSkKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzIuM0BicmFuY2gtYicsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQo
YnJhbmNoPSdicmFuY2gtYicpKSkKIAogICAgIGRlZiB0ZXN0X2lkZW50aWZpZXIoc2VsZik6Ci0g
ICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToK
KyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgp
OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5j
b21taXQoaWRlbnRpZmllcj0nMUB0cnVuaycpLnJldmlzaW9uKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMkB0
cnVuaycpLnJldmlzaW9uKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsb2NhbC5T
dm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0nMi4xQGJyYW5jaC1hJykucmV2aXNpb24p
CkBAIC0xMjcsNyArMTI4LDcgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgbG9jYWwuU3ZuKHNlbGYucGF0aCku
Y29tbWl0KGlkZW50aWZpZXI9JzIuM0BicmFuY2gtYicpLnJldmlzaW9uKQogCiAgICAgZGVmIHRl
c3Rfbm9uX2Nhbm5vbmljYWxfaWRlbnRpZmllcnMoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3Mu
bG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnMkB0cnVuaycsIHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQo
aWRlbnRpZmllcj0nMEBicmFuY2gtYScpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JzFAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9Jy0x
QGJyYW5jaC1hJykpKQogCkBAIC0xODEsMzEgKzE4MiwyNiBAQCBjbGFzcyBUZXN0TG9jYWxTdm4o
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4xQGJy
YW5jaC1hJywgc3RyKHJlcG8uY29tbWl0KHJldmlzaW9uPTMpKSkKIAogICAgIGRlZiB0ZXN0X2Nh
Y2hlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUu
bWtkdGVtcCgpCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihkaXJuYW1lKSBhcyBt
b2NrX3JlcG8sIE91dHB1dENhcHR1cmUoKToKLSAgICAgICAgICAgICAgICBvcy5ta2Rpcihvcy5w
YXRoLmpvaW4oZGlybmFtZSwgJy5zdm4nKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCc0QHRydW5rJywgc3RyKGxvY2FsLlN2bihkaXJuYW1lKS5jb21taXQoKSkpCi0KLSAgICAg
ICAgICAgICAgICBtb2NrX3JlcG8uY29ubmVjdGVkID0gRmFsc2UKLSAgICAgICAgICAgICAgICBj
b21taXQgPSBsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KCkKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCc0QHRydW5rJywgc3RyKGNvbW1pdCkpCi0KLSAgICAgICAgICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLlN2bi5FeGNlcHRpb24pOgotICAgICAgICAgICAg
ICAgICAgICBsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTMpCi0gICAgICAgIGZp
bmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCisgICAgICAgIHdpdGgg
bW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCkgYXMgbW9ja19yZXBvLCBPdXRwdXRDYXB0dXJlKCk6
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc0QHRydW5rJywgc3RyKGxvY2FsLlN2bihz
ZWxmLnBhdGgpLmNvbW1pdCgpKSkKKworICAgICAgICAgICAgbW9ja19yZXBvLmNvbm5lY3RlZCA9
IEZhbHNlCisgICAgICAgICAgICBjb21taXQgPSBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQo
KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVuaycsIHN0cihjb21taXQpKQor
CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLlN2bi5FeGNlcHRpb24p
OgorICAgICAgICAgICAgICAgIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0z
KQogCiAgICAgZGVmIHRlc3RfdGFnKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2
bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwu
U3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoOSwgbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHRhZz0ndGFnLTEnKS5yZXZpc2lv
bikKIAogICAgIGRlZiB0ZXN0X3RhZ19wcmV2aW91cyhzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1v
Y2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDcsIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlmaWVy
PScyLjJAdGFncy90YWctMScpLnJldmlzaW9uKQogCiAgICAgZGVmIHRlc3RfY2hlY2tvdXQoc2Vs
Zik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1
cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2Fw
dHVyZSgpOgogICAgICAgICAgICAgcmVwb3NpdG9yeSA9IGxvY2FsLlN2bihzZWxmLnBhdGgpCiAK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNiwgcmVwb3NpdG9yeS5jb21taXQoKS5yZXZp
c2lvbikKQEAgLTIxOSwyMCArMjE1LDIwIEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDksIHJlcG9zaXRvcnkuY29t
bWl0KCkucmV2aXNpb24pCiAKICAgICBkZWYgdGVzdF9ub19sb2coc2VsZik6Ci0gICAgICAgIHdp
dGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAg
d2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50
aWZpZXI9JzRAdHJ1bmsnLCBpbmNsdWRlX2xvZz1GYWxzZSkubWVzc2FnZSkKIAogICAgIGRlZiB0
ZXN0X2FsdGVybmF0aXZlX2RlZmF1bHRfYnJhbmNoKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tz
LmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9j
a3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmZpbmQoJzRAbWFpbicpKSwg
JzRAdHJ1bmsnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIobG9jYWwuU3ZuKHNl
bGYucGF0aCkuZmluZCgnNEBtYXN0ZXInKSksICc0QHRydW5rJykKIAogICAgIGRlZiB0ZXN0X25v
X2lkZW50aWZpZXIoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0
aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5w
YXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobG9j
YWwuU3ZuKHNlbGYucGF0aCkuZmluZCgndHJ1bmsnLCBpbmNsdWRlX2lkZW50aWZpZXI9RmFsc2Up
LmlkZW50aWZpZXIpCiAKICAgICBkZWYgdGVzdF9jb21taXRzKHNlbGYpOgotICAgICAgICB3aXRo
IG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdp
dGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAg
ICAgIHN2biA9IGxvY2FsLlN2bihzZWxmLnBhdGgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKENvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAgICAgICAgICAgc3ZuLmNvbW1p
dChyZXZpc2lvbj0ncjYnKSwKQEAgLTI0Miw3ICsyMzgsNyBAQCBjbGFzcyBUZXN0TG9jYWxTdm4o
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXSksIENvbW1pdC5FbmNvZGVyKCkuZGVm
YXVsdChsaXN0KHN2bi5jb21taXRzKGJlZ2luPWRpY3QocmV2aXNpb249J3IxJyksIGVuZD1kaWN0
KHJldmlzaW9uPSdyNicpKSkpKQogCiAgICAgZGVmIHRlc3RfY29tbWl0c19icmFuY2goc2VsZik6
Ci0gICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUo
KToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVy
ZSgpOgogICAgICAgICAgICAgc3ZuID0gbG9jYWwuU3ZuKHNlbGYucGF0aCkKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KFsKICAgICAgICAgICAg
ICAgICBzdm4uY29tbWl0KHJldmlzaW9uPSdyNycpLApAQCAtMjUyLDcgKzI0OCw3IEBAIGNsYXNz
IFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBdKSwgQ29tbWl0
LkVuY29kZXIoKS5kZWZhdWx0KGxpc3Qoc3ZuLmNvbW1pdHMoYmVnaW49ZGljdChhcmd1bWVudD0n
cjEnKSwgZW5kPWRpY3QoYXJndW1lbnQ9J3I3JykpKSkpCiAKIAotY2xhc3MgVGVzdFJlbW90ZVN2
bih1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0UmVtb3RlU3ZuKHRlc3RpbmcuVGVzdENh
c2UpOgogICAgIHJlbW90ZSA9ICdodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dl
YmtpdCcKIAogICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432411</attachid>
            <date>2021-06-28 11:45:37 -0700</date>
            <delta_ts>2021-06-28 12:57:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227327-20210628114536.patch</filename>
            <type>text/plain</type>
            <size>36916</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3OTM0MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM0IEBACisyMDIxLTA2LTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgdGVzdCBzdWl0ZSB3aXRoIHRlbXAgZGly
ZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjczMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5Njk3OTA5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFN0ZXBoYW5pZSBMZXdpcy4KKworICAgICAgICBXZSBoYWQgc29tZSBkdXBsaWNhdGVk
IGNvZGUgd2hpY2ggc2V0IHVwLCB0aGVuIGNsZWFuZWQgdXAgYSB0ZW1wb3JhcnkKKyAgICAgICAg
ZGlyZWN0b3J5IGFzc29jaWF0ZWQgd2l0aCBhIHRlc3QuIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBv
d25lZCBieSBhCisgICAgICAgIGJhc2UgY2xhc3Mgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUgdGVz
dCBzdWl0ZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0
dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRj
b3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RpbmcucHk6IEFkZGVkLgor
ICAgICAgICAoUGF0aFRlc3RDYXNlKTogQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBiZWZv
cmUgYSB0ZXN0IHN0YXJ0cywgZGVsZXRlIGl0IGFmdGVyLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2Fub25pY2FsaXplX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoVGVzdENhbm9uaWNhbGl6ZSk6IEFkb3B0IFBhdGhUZXN0Q2FzZS4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2No
ZWNrb3V0X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdENoZWNrb3V0KTogQWRvcHQgUGF0aFRl
c3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Rlc3QvZmluZF91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RGaW5kKTogQWRvcHQgUGF0
aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEdpdCk6IEFkb3B0IFBh
dGhUZXN0Q2FzZS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS90ZXN0L3NjbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RTY20pOiBBZG9wdCBQ
YXRoVGVzdENhc2UuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvdGVzdC9zZXR1cF9naXRfc3ZuX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFNl
dHVwR2l0U3ZuKTogQWRvcHQgUGF0aFRlc3RDYXNlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoVGVzdExvY2FsU3ZuKTogQWRvcHQgUGF0aFRlc3RDYXNlLgorCiAyMDIxLTA2LTI4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQgaGl0IGluIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlNvY2tldFRhc2sg
d2hlbiB1c2luZyBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3NldHVwLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1
cC5weQkocmV2aXNpb24gMjc5MzQzKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3NldHVwLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIGRlZiByZWFk
bWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0Y29yZXB5JywKLSAgICB2ZXJzaW9uPScw
LjUuMTknLAorICAgIHZlcnNpb249JzAuNi4wJywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBj
b250YWluaW5nIHZhcmlvdXMgUHl0aG9uIHN1cHBvcnQgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLics
CiAgICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUoKSwKICAgICBjbGFzc2lmaWVycz1bCkluZGV4
OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5p
dF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVw
eS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI3OTM0MykKKysrIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgZnJvbSB3ZWJraXRjb3JlcHkub3V0cHV0X2Nh
cHR1cmUgaW1wb3J0IAogZnJvbSB3ZWJraXRjb3JlcHkudGFza19wb29sIGltcG9ydCBUYXNrUG9v
bAogZnJvbSB3ZWJraXRjb3JlcHkuY3JlZGVudGlhbHMgaW1wb3J0IGNyZWRlbnRpYWxzCiAKLXZl
cnNpb24gPSBWZXJzaW9uKDAsIDUsIDE5KQordmVyc2lvbiA9IFZlcnNpb24oMCwgNiwgMCkKIAog
ZnJvbSB3ZWJraXRjb3JlcHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1dG9JbnN0YWxs
CiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0aW5nLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdGlu
Zy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvd2Via2l0Y29yZXB5L3Rlc3RpbmcucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisj
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9y
dCB0ZW1wZmlsZQorCitmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQorCisKK2NsYXNzIFBh
dGhUZXN0Q2FzZShUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAnJworCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFBhdGhUZXN0Q2FzZSwg
c2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmNvbnRhaW5lciA9
IE5vbmUKKyAgICAgICAgc2VsZi5wYXRoID0gTm9uZQorCisgICAgZGVmIHNldFVwKHNlbGYpOgor
ICAgICAgICBzZWxmLmNvbnRhaW5lciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICBzZWxm
LnBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5jb250YWluZXIsIHNlbGYuYmFzZXBhdGgpCisgICAg
ICAgIG9zLm1ha2VkaXJzKHNlbGYucGF0aCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg
ICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLmNvbnRhaW5lciwgaWdub3JlX2Vycm9ycz1UcnVlKQor
ICAgICAgICBzZWxmLmNvbnRhaW5lciA9IE5vbmUKKyAgICAgICAgc2VsZi5wYXRoID0gTm9uZQpJ
bmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVz
dC9jYW5vbmljYWxpemVfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9jYW5vbmljYWxpemVfdW5pdHRl
c3QucHkJKHJldmlzaW9uIDI3OTM0MykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY2Fub25pY2FsaXplX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIw
LDE1ICsyMCwyMCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1p
bXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBvcwogCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3Rp
bmcKIGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9t
IHdlYmtpdHNjbXB5IGltcG9ydCBwcm9ncmFtLCBtb2NrcywgbG9jYWwsIENvbW1pdCwgQ29udHJp
YnV0b3IKIAogCi1jbGFzcyBUZXN0Q2Fub25pY2FsaXplKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg
ICBwYXRoID0gJy9tb2NrL3JlcG9zaXRvcnknCitjbGFzcyBUZXN0Q2Fub25pY2FsaXplKHRlc3Rp
bmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9zaXRvcnknCisKKyAg
ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RDYW5vbmljYWxpemUsIHNlbGYp
LnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQn
KSkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKIAog
ICAgIGRlZiB0ZXN0X2ludmFsaWQoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgp
LCBtb2Nrcy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIE1vY2tUaW1l
OgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9jaGVja291dF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5
CShyZXZpc2lvbiAyNzkzNDMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS90ZXN0L2NoZWNrb3V0X3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDE1ICsyMCwy
MCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgdW5p
dHRlc3QKK2ltcG9ydCBvcwogCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVy
ZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcKIGZyb20g
d2Via2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9tIHdlYmtpdHNj
bXB5IGltcG9ydCBwcm9ncmFtLCBtb2NrcywgbG9jYWwKIAogCi1jbGFzcyBUZXN0Q2hlY2tvdXQo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAnL21vY2svcmVwb3NpdG9yeScKK2NsYXNz
IFRlc3RDaGVja291dCh0ZXN0aW5nLlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAnbW9j
ay9yZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0
Q2hlY2tvdXQsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNl
bGYucGF0aCwgJy5naXQnKSkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0
aCwgJy5zdm4nKSkKIAogICAgIGRlZiB0ZXN0X2NoZWNrb3V0X2dpdChzZWxmKToKICAgICAgICAg
d2l0aCBPdXRwdXRDYXB0dXJlKCksIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5s
b2NhbC5Tdm4oKSwgTW9ja1RpbWU6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS90ZXN0L2ZpbmRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9maW5k
X3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzkzNDMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2ZpbmRfdW5pdHRlc3QucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDE4ICsyMSwyMyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQganNvbgor
aW1wb3J0IG9zCiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB1bml0dGVz
dAogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJl
LCB0ZXN0aW5nCiBmcm9tIHdlYmtpdGNvcmVweS5tb2NrcyBpbXBvcnQgVGltZSBhcyBNb2NrVGlt
ZQogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgcHJvZ3JhbSwgbW9ja3MKIAogCi1jbGFzcyBUZXN0
RmluZCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgcGF0aCA9ICcvbW9jay9yZXBvc2l0b3J5Jwor
Y2xhc3MgVGVzdEZpbmQodGVzdGluZy5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21v
Y2svcmVwb3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVz
dEZpbmQsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYu
cGF0aCwgJy5naXQnKSkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwg
Jy5zdm4nKSkKIAogICAgIGRlZiB0ZXN0X2Jhc2ljX2dpdChzZWxmKToKICAgICAgICAgd2l0aCBP
dXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBt
b2Nrcy5sb2NhbC5Tdm4oKSwgTW9ja1RpbWU6CkBAIC0yMzUsNyArMjQwLDcgQEAgSWRlbnRpZmll
cjogM0B0cnVuawogICAgICAgICApCiAKIAotY2xhc3MgVGVzdEluZm8odW5pdHRlc3QuVGVzdENh
c2UpOgorY2xhc3MgVGVzdEluZm8odGVzdGluZy5UZXN0Q2FzZSk6CiAgICAgcGF0aCA9ICcvbW9j
ay9yZXBvc2l0b3J5JwogCiAgICAgZGVmIHRlc3RfYmFzaWNfZ2l0KHNlbGYpOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5p
dHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI3OTM0MykKKysr
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0
X3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxOCArMjEsMTkgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogaW1wb3J0IG9zCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgdGVtcGZpbGUKLWltcG9y
dCB1bml0dGVzdAogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSB3ZWJraXRj
b3JlcHkgaW1wb3J0IHJ1biwgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJr
aXRjb3JlcHkgaW1wb3J0IHJ1biwgdGVzdGluZywgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0Q2FwdHVy
ZQogZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1wb3J0IFRpbWUgYXMgTW9ja1RpbWUKIGZyb20g
d2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgbG9jYWwsIG1vY2tzLCByZW1vdGUKIAogCi1jbGFz
cyBUZXN0R2l0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBwYXRoID0gJy9tb2NrL3JlcG9zaXRv
cnknCitjbGFzcyBUZXN0R2l0KHRlc3RpbmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9
ICdtb2NrL3JlcG9zaXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVy
KFRlc3RHaXQsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNl
bGYucGF0aCwgJy5naXQnKSkKIAogICAgIGRlZiB0ZXN0X2RldGVjdGlvbihzZWxmKToKICAgICAg
ICAgd2l0aCBPdXRwdXRDYXB0dXJlKCksIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nr
cy5sb2NhbC5Tdm4oKToKQEAgLTc5LDY1ICs4MCw1MiBAQCBjbGFzcyBUZXN0R2l0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWwuR2l0KHNlbGYu
cGF0aCkuZGVmYXVsdF9icmFuY2gsICdtYWluJykKIAogICAgIGRlZiB0ZXN0X3NjbV90eXBlKHNl
bGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUubWtkdGVt
cCgpCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCByZW1vdGU9J2dp
dEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2Fw
dHVyZSgpOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoZGlybmFt
ZSkuaXNfZ2l0KQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobG9jYWwuR2l0KGRp
cm5hbWUpLmlzX3N2bikKLQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFt
ZSwgZ2l0X3N2bj1UcnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYu
cGF0aCkpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgotICAgICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShsb2NhbC5HaXQoZGlybmFtZSkuaXNfZ2l0KQotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoZGlybmFtZSkuaXNfc3ZuKQotCi0gICAgICAgIGZpbmFs
bHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCisgICAgICAgIHdpdGggbW9j
a3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1h
dChzZWxmLnBhdGgpKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoc2VsZi5wYXRoKS5pc19naXQpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGxvY2FsLkdpdChzZWxmLnBhdGgpLmlzX3N2bikKKworICAgICAgICB3
aXRoIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIGdpdF9zdm49VHJ1ZSwgcmVtb3RlPSdnaXRA
ZXhhbXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBhdGgpKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1
cmUoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2NhbC5HaXQoc2VsZi5wYXRoKS5p
c19naXQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobG9jYWwuR2l0KHNlbGYucGF0aCku
aXNfc3ZuKQogCiAgICAgZGVmIHRlc3RfaW5mbyhzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5HaXQoZGlybmFtZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1hdChz
ZWxmLnBhdGgpKSwgTW9ja1RpbWUsIExvZ2dlckNhcHR1cmUoKToKLSAgICAgICAgICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5FeGNlcHRpb24pOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpY3QoKSwgbG9jYWwuR2l0KGRpcm5hbWUpLmluZm8o
KSkKLQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFtZSwgZ2l0X3N2bj1U
cnVlLCByZW1vdGU9J2dpdEBleGFtcGxlLm9yZzp7fScuZm9ybWF0KHNlbGYucGF0aCkpLCBNb2Nr
VGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbCgKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgJ1BhdGgnOiAnLicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAnUmVwb3NpdG9yeSBSb290JzogJ2dpdEBleGFtcGxlLm9yZzovbW9j
ay9yZXBvc2l0b3J5JywKLSAgICAgICAgICAgICAgICAgICAgICAgICdVUkwnOiAnZ2l0QGV4YW1w
bGUub3JnOi9tb2NrL3JlcG9zaXRvcnkvbWFpbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
UmV2aXNpb24nOiAnOScsCi0gICAgICAgICAgICAgICAgICAgICAgICAnTm9kZSBLaW5kJzogJ2Rp
cmVjdG9yeScsCi0gICAgICAgICAgICAgICAgICAgICAgICAnU2NoZWR1bGUnOiAnbm9ybWFsJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICdMYXN0IENoYW5nZWQgQXV0aG9yJzogJ2piZWRhcmRA
YXBwbGUuY29tJywKLSAgICAgICAgICAgICAgICAgICAgICAgICdMYXN0IENoYW5nZWQgUmV2Jzog
JzknLAotICAgICAgICAgICAgICAgICAgICAgICAgJ0xhc3QgQ2hhbmdlZCBEYXRlJzogZGF0ZXRp
bWUuZnJvbXRpbWVzdGFtcCgxNjAxNjY4MDAwKS5zdHJmdGltZSgnJVktJW0tJWQgJUg6JU06JVMn
KSwKLSAgICAgICAgICAgICAgICAgICAgfSwgbG9jYWwuR2l0KGRpcm5hbWUpLmluZm8oKSwKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10
cmVlKGRpcm5hbWUpCisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVt
b3RlPSdnaXRAZXhhbXBsZS5vcmc6bW9jay9yZXBvc2l0b3J5JyksIE1vY2tUaW1lLCBMb2dnZXJD
YXB0dXJlKCk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5F
eGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGljdCgpLCBsb2Nh
bC5HaXQoc2VsZi5wYXRoKS5pbmZvKCkpCisKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQo
c2VsZi5wYXRoLCBnaXRfc3ZuPVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOm1vY2svcmVw
b3NpdG9yeScpLCBNb2NrVGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RGljdEVxdWFsKAor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ1BhdGgnOiAnLicsCisgICAg
ICAgICAgICAgICAgICAgICdSZXBvc2l0b3J5IFJvb3QnOiAnZ2l0QGV4YW1wbGUub3JnOm1vY2sv
cmVwb3NpdG9yeScsCisgICAgICAgICAgICAgICAgICAgICdVUkwnOiAnZ2l0QGV4YW1wbGUub3Jn
Om1vY2svcmVwb3NpdG9yeS9tYWluJywKKyAgICAgICAgICAgICAgICAgICAgJ1JldmlzaW9uJzog
JzknLAorICAgICAgICAgICAgICAgICAgICAnTm9kZSBLaW5kJzogJ2RpcmVjdG9yeScsCisgICAg
ICAgICAgICAgICAgICAgICdTY2hlZHVsZSc6ICdub3JtYWwnLAorICAgICAgICAgICAgICAgICAg
ICAnTGFzdCBDaGFuZ2VkIEF1dGhvcic6ICdqYmVkYXJkQGFwcGxlLmNvbScsCisgICAgICAgICAg
ICAgICAgICAgICdMYXN0IENoYW5nZWQgUmV2JzogJzknLAorICAgICAgICAgICAgICAgICAgICAn
TGFzdCBDaGFuZ2VkIERhdGUnOiBkYXRldGltZS5mcm9tdGltZXN0YW1wKDE2MDE2NjgwMDApLnN0
cmZ0aW1lKCclWS0lbS0lZCAlSDolTTolUycpLAorICAgICAgICAgICAgICAgIH0sIGxvY2FsLkdp
dChzZWxmLnBhdGgpLmluZm8oKSwKKyAgICAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2NvbW1p
dF9yZXZpc2lvbihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRl
bXBmaWxlLm1rZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoZGlybmFt
ZSksIE1vY2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhsb2NhbC5HaXQuRXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJldmlzaW9u
PTEpKQotCi0gICAgICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChkaXJuYW1lLCBnaXRfc3Zu
PVRydWUsIHJlbW90ZT0nZ2l0QGV4YW1wbGUub3JnOnt9Jy5mb3JtYXQoc2VsZi5wYXRoKSksIE1v
Y2tUaW1lLCBMb2dnZXJDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnMUBtYWluJywgc3RyKGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249MSkpKQot
ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzJAbWFpbicsIHN0cihsb2NhbC5HaXQo
ZGlybmFtZSkuY29tbWl0KHJldmlzaW9uPTIpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcyLjFAYnJhbmNoLWEnLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZp
c2lvbj0zKSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnM0BtYWluJywgc3Ry
KGxvY2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249NCkpKQotICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJzIuMkBicmFuY2gtYicsIHN0cihsb2NhbC5HaXQoZGlybmFtZSku
Y29tbWl0KHJldmlzaW9uPTUpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcy
LjJAYnJhbmNoLWEnLCBzdHIobG9jYWwuR2l0KGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj02KSkp
Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMi4zQGJyYW5jaC1iJywgc3RyKGxv
Y2FsLkdpdChkaXJuYW1lKS5jb21taXQocmV2aXNpb249NykpKQotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJzRAbWFpbicsIHN0cihsb2NhbC5HaXQoZGlybmFtZSkuY29tbWl0KHJl
dmlzaW9uPTgpKSkKLQotICAgICAgICAgICAgICAgICMgT3V0LW9mLWJvdW5kcyBjb21taXQKLSAg
ICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGxvY2FsLkdpdC5FeGNlcHRpb24p
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGxvY2FsLkdpdChk
aXJuYW1lKS5jb21taXQocmV2aXNpb249MTApKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChz
ZWxmLnBhdGgpLCBNb2NrVGltZSwgTG9nZ2VyQ2FwdHVyZSgpOgorICAgICAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5HaXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lv
bj0xKSkKKworICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIGdpdF9zdm49
VHJ1ZSwgcmVtb3RlPSdnaXRAZXhhbXBsZS5vcmc6e30nLmZvcm1hdChzZWxmLnBhdGgpKSwgTW9j
a1RpbWUsIExvZ2dlckNhcHR1cmUoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzFA
bWFpbicsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MSkpKQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMkBtYWluJywgc3RyKGxvY2FsLkdpdChzZWxmLnBh
dGgpLmNvbW1pdChyZXZpc2lvbj0yKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcy
LjFAYnJhbmNoLWEnLCBzdHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTMp
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzNAbWFpbicsIHN0cihsb2NhbC5HaXQo
c2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249NCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnMi4yQGJyYW5jaC1iJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZp
c2lvbj01KSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjJAYnJhbmNoLWEnLCBz
dHIobG9jYWwuR2l0KHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTYpKSkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJzIuM0BicmFuY2gtYicsIHN0cihsb2NhbC5HaXQoc2VsZi5wYXRo
KS5jb21taXQocmV2aXNpb249NykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEBt
YWluJywgc3RyKGxvY2FsLkdpdChzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj04KSkpCisKKyAg
ICAgICAgICAgICMgT3V0LW9mLWJvdW5kcyBjb21taXQKKyAgICAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMobG9jYWwuR2l0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChOb25lLCBsb2NhbC5HaXQoc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MTAp
KQogCiAgICAgZGVmIHRlc3RfY29tbWl0X2hhc2goc2VsZik6CiAgICAgICAgIGZvciBtb2NrIGlu
IFttb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwg
Z2l0X3N2bj1UcnVlKV06CkBAIC0yODUsNyArMjczLDcgQEAgY2xhc3MgVGVzdEdpdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jb21taXRzKHNlbGYpOgogICAgICAgICBmb3Ig
bW9jayBpbiBbbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLkdpdChzZWxm
LnBhdGgsIGdpdF9zdm49VHJ1ZSldOgotICAgICAgICAgICAgd2l0aCBtb2NrOgorICAgICAgICAg
ICAgd2l0aCBtb2NrLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICAgICAgZ2l0ID0gbG9j
YWwuR2l0KHNlbGYucGF0aCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENvbW1p
dC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAgICAgICAgICAgICAgIGdpdC5jb21taXQoaGFz
aD0nYmFlNWQxZTknKSwKQEAgLTI5Niw3ICsyODQsNyBAQCBjbGFzcyBUZXN0R2l0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2NvbW1pdHNfYnJhbmNoKHNlbGYpOgogICAgICAg
ICBmb3IgbW9jayBpbiBbbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLkdp
dChzZWxmLnBhdGgsIGdpdF9zdm49VHJ1ZSldOgotICAgICAgICAgICAgd2l0aCBtb2NrOgorICAg
ICAgICAgICAgd2l0aCBtb2NrLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICAgICAgZ2l0
ID0gbG9jYWwuR2l0KHNlbGYucGF0aCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KENvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAgICAgICAgICAgICAgIGdpdC5jb21t
aXQoaGFzaD0nNjIxNjUyYWQnKSwKQEAgLTM3OCw3ICszNjYsNyBAQCBDb21taXREYXRlOiBTYXQg
T2N0IDAzIDAyOjA2OjQwIDIwMjAgKzAwCiAgICAgICAgICAgICApCiAKIAotY2xhc3MgVGVzdEdp
dEh1Yih1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0R2l0SHViKHRlc3RpbmcuVGVzdENh
c2UpOgogICAgIHJlbW90ZSA9ICdodHRwczovL2dpdGh1Yi5leGFtcGxlLmNvbS9XZWJLaXQvV2Vi
S2l0JwogCiAgICAgZGVmIHRlc3RfZGV0ZWN0aW9uKHNlbGYpOgpAQCAtNTMwLDggKzUxOCw3IEBA
IGNsYXNzIFRlc3RHaXRIdWIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXSksIENv
bW1pdC5FbmNvZGVyKCkuZGVmYXVsdChsaXN0KGdpdC5jb21taXRzKGJlZ2luPWRpY3QoYXJndW1l
bnQ9JzliODMxMWYyJyksIGVuZD1kaWN0KGFyZ3VtZW50PSc2MjE2NTJhZCcpKSkpKQogCiAKLQot
Y2xhc3MgVGVzdEJpdEJ1Y2tldCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0Qml0QnVj
a2V0KHRlc3RpbmcuVGVzdENhc2UpOgogICAgIHJlbW90ZSA9ICdodHRwczovL2JpdGJ1Y2tldC5l
eGFtcGxlLmNvbS9wcm9qZWN0cy9XRUJLSVQvcmVwb3Mvd2Via2l0JwogCiAgICAgZGVmIHRlc3Rf
ZGV0ZWN0aW9uKHNlbGYpOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvdGVzdC9zY21fdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zY21fdW5pdHRl
c3QucHkJKHJldmlzaW9uIDI3OTM0MykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc2NtX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0yMCwxMyArMjAsMTkgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAoraW1wb3J0IG9zCiAKLWltcG9ydCB1bml0dGVzdAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0
IHRlc3RpbmcKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsLCBtb2NrcwogCiAKLWNsYXNz
IFRlc3RTY20odW5pdHRlc3QuVGVzdENhc2UpOgotICAgIHBhdGggPSAnL21vY2svZGlyZWN0b3J5
JworY2xhc3MgVGVzdFNjbSh0ZXN0aW5nLlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGggPSAn
bW9jay9yZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihU
ZXN0U2NtLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxm
LnBhdGgsICcuZ2l0JykpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgs
ICcuc3ZuJykpCiAKICAgICBkZWYgdGVzdF9kZXRlY3Rpb24oc2VsZik6CiAgICAgICAgIHdpdGgg
bW9ja3MubG9jYWwuR2l0KCksIG1vY2tzLmxvY2FsLlN2bigpOgpJbmRleDogVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zZXR1cF9naXRfc3ZuX3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc2V0dXBfZ2l0X3N2bl91bml0dGVzdC5weQkocmV2aXNpb24g
Mjc5MzQzKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvdGVzdC9zZXR1cF9naXRfc3ZuX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMSwx
MjMgKzIxLDExMCBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgb3MKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHVuaXR0ZXN0CiAKLWZyb20gZGF0ZXRpbWUgaW1wb3J0
IGRhdGV0aW1lCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0
Q2FwdHVyZQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcK
IGZyb20gd2Via2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lCiBmcm9tIHdl
YmtpdHNjbXB5IGltcG9ydCBwcm9ncmFtLCBtb2NrcwogCiAKLWNsYXNzIFRlc3RTZXR1cEdpdFN2
bih1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0U2V0dXBHaXRTdm4odGVzdGluZy5QYXRo
VGVzdENhc2UpOgogICAgIGdpdF9yZW1vdGUgPSAnZ2l0QGV4YW1wbGUub3JnOkV4YW1wbGUnCiAg
ICAgc3ZuX3JlbW90ZSA9ICdodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L2V4YW1w
bGUnCisgICAgYmFzZXBhdGggPSAnbW9jay9yZXBvc2l0b3J5JwogCi0gICAgZGVmIHRlc3Rfc3Zu
KHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXJuYW1lID0gdGVtcGZpbGUubWtk
dGVtcCgpCi0gICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9j
a3MubG9jYWwuR2l0KCksIG1vY2tzLmxvY2FsLlN2bihkaXJuYW1lLCByZW1vdGU9c2VsZi5zdm5f
cmVtb3RlKSwgTW9ja1RpbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBw
cm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywp
LAotICAgICAgICAgICAgICAgICAgICBwYXRoPWRpcm5hbWUsCi0gICAgICAgICAgICAgICAgICAg
IHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICkpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnQ2Fubm90
IHNldHVwIGdpdC1zdm4gb24gU3VidmVyc2lvbiByZXBvc2l0b3J5XG4nKQorICAgIGRlZiBzZXRV
cChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdFNldHVwR2l0U3ZuLCBzZWxmKS5zZXRVcCgpCisg
ICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuZ2l0JykpCisgICAgICAg
IG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3ZuJykpCiAKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKKyAgICBkZWYgdGVzdF9z
dm4oc2VsZik6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nr
cy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCwgcmVtb3RlPXNlbGYuc3Zu
X3JlbW90ZSksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBwcm9n
cmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4nLCksCisgICAg
ICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgc3VidmVyc2lvbj1z
ZWxmLnN2bl9yZW1vdGUsCisgICAgICAgICAgICApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnQ2Fubm90IHNldHVwIGdpdC1zdm4gb24gU3Vi
dmVyc2lvbiByZXBvc2l0b3J5XG4nKQogCiAgICAgZGVmIHRlc3RfZW1wdHkoc2VsZik6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQo
ZGlybmFtZSwgcmVtb3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxvY2FsLlN2bigpLCBtb2Nr
cy5yZW1vdGUuU3ZuKHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQoJzovLycpWzFdKSwgTW9j
a1RpbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4o
Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdzZXR1cC1naXQtc3ZuJywpLAotICAgICAgICAg
ICAgICAgICAgICBwYXRoPWRpcm5hbWUsCi0gICAgICAgICAgICAgICAgICAgIHN1YnZlcnNpb249
c2VsZi5zdm5fcmVtb3RlLAotICAgICAgICAgICAgICAgICkpCisgICAgICAgIHdpdGggT3V0cHV0
Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9
c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1vY2tzLnJlbW90ZS5Tdm4ocmVt
b3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBNb2NrVGltZToKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgIGFy
Z3M9KCdzZXR1cC1naXQtc3ZuJywpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAor
ICAgICAgICAgICAgICAgIHN1YnZlcnNpb249c2VsZi5zdm5fcmVtb3RlLAorICAgICAgICAgICAg
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGNhcHR1cmVkLnN0ZG91
dC5nZXR2YWx1ZSgpLAorICAgICAgICAgICAgJ0FkZGluZyBzdm4tcmVtb3RlIHRvIGdpdCBjb25m
aWdcbicgKworICAgICAgICAgICAgJ1BvcHVsYXRpbmcgc3ZuIGNvbW1pdCBtYXBwaW5nICh3aWxs
IHRha2UgYSBmZXcgbWludXRlcykuLi5cbicsCisgICAgICAgICkKKworICAgICAgICB3aXRoIG9w
ZW4ob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQvY29uZmlnJykpIGFzIGNvbmZpZzoKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY2FwdHVyZWQuc3Rk
b3V0LmdldHZhbHVlKCksCi0gICAgICAgICAgICAgICAgJ0FkZGluZyBzdm4tcmVtb3RlIHRvIGdp
dCBjb25maWdcbicgKwotICAgICAgICAgICAgICAgICdQb3B1bGF0aW5nIHN2biBjb21taXQgbWFw
cGluZyAod2lsbCB0YWtlIGEgZmV3IG1pbnV0ZXMpLi4uXG4nLAorICAgICAgICAgICAgICAgIGNv
bmZpZy5yZWFkKCksCisgICAgICAgICAgICAgICAgJ1tjb3JlXVxuJworICAgICAgICAgICAgICAg
ICdcdHJlcG9zaXRvcnlmb3JtYXR2ZXJzaW9uID0gMFxuJworICAgICAgICAgICAgICAgICdcdGZp
bGVtb2RlID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdGJhcmUgPSBmYWxzZVxuJworICAg
ICAgICAgICAgICAgICdcdGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVlXG4nCisgICAgICAgICAgICAg
ICAgJ1x0aWdub3JlY2FzZSA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnXHRwcmVjb21wb3Nl
dW5pY29kZSA9IHRydWVcbicKKyAgICAgICAgICAgICAgICAnW3JlbW90ZSAib3JpZ2luIl1cbicK
KyAgICAgICAgICAgICAgICAnXHR1cmwgPSB7Z2l0X3JlbW90ZX1cbicKKyAgICAgICAgICAgICAg
ICAnXHRmZXRjaCA9ICtyZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qXG4nCisgICAg
ICAgICAgICAgICAgJ1ticmFuY2ggIm1haW4iXVxuJworICAgICAgICAgICAgICAgICdcdHJlbW90
ZSA9IG9yaWdpblxuJworICAgICAgICAgICAgICAgICdcdG1lcmdlID0gcmVmcy9oZWFkcy9tYWlu
XG4nCisgICAgICAgICAgICAgICAgJ1tzdm4tcmVtb3RlICJzdm4iXVxuJworICAgICAgICAgICAg
ICAgICdcdHVybCA9IHtzdm5fcmVtb3RlfVxuJworICAgICAgICAgICAgICAgICdcdGZldGNoID0g
dHJ1bms6cmVmcy9yZW1vdGVzL29yaWdpbi9tYWluXG4nLmZvcm1hdCgKKyAgICAgICAgICAgICAg
ICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdpdF9yZW1vdGUsCisgICAgICAgICAgICAgICAgICAgIHN2
bl9yZW1vdGU9c2VsZi5zdm5fcmVtb3RlLAorICAgICAgICAgICAgICAgICksCiAgICAgICAgICAg
ICApCiAKLSAgICAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGlybmFtZSwgJy5naXQv
Y29uZmlnJykpIGFzIGNvbmZpZzoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgICAgICBjb25maWcucmVhZCgpLAotICAgICAgICAgICAgICAgICAgICAn
W2NvcmVdXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHJlcG9zaXRvcnlmb3JtYXR2ZXJzaW9u
ID0gMFxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmaWxlbW9kZSA9IHRydWVcbicKLSAgICAg
ICAgICAgICAgICAgICAgJ1x0YmFyZSA9IGZhbHNlXG4nCi0gICAgICAgICAgICAgICAgICAgICdc
dGxvZ2FsbHJlZnVwZGF0ZXMgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGlnbm9y
ZWNhc2UgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHByZWNvbXBvc2V1bmljb2Rl
ID0gdHJ1ZVxuJwotICAgICAgICAgICAgICAgICAgICAnW3JlbW90ZSAib3JpZ2luIl1cbicKLSAg
ICAgICAgICAgICAgICAgICAgJ1x0dXJsID0ge2dpdF9yZW1vdGV9XG4nCi0gICAgICAgICAgICAg
ICAgICAgICdcdGZldGNoID0gK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLypcbicK
LSAgICAgICAgICAgICAgICAgICAgJ1ticmFuY2ggIm1haW4iXVxuJwotICAgICAgICAgICAgICAg
ICAgICAnXHRyZW1vdGUgPSBvcmlnaW5cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0bWVyZ2Ug
PSByZWZzL2hlYWRzL21haW5cbicKLSAgICAgICAgICAgICAgICAgICAgJ1tzdm4tcmVtb3RlICJz
dm4iXVxuJwotICAgICAgICAgICAgICAgICAgICAnXHR1cmwgPSB7c3ZuX3JlbW90ZX1cbicKLSAg
ICAgICAgICAgICAgICAgICAgJ1x0ZmV0Y2ggPSB0cnVuazpyZWZzL3JlbW90ZXMvb3JpZ2luL21h
aW5cbicuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdp
dF9yZW1vdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdm5fcmVtb3RlPXNlbGYuc3ZuX3Jl
bW90ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKLQogICAgIGRl
ZiB0ZXN0X2FkZChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRl
bXBmaWxlLm1rZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCksIG1vY2tz
LmxvY2FsLkdpdChkaXJuYW1lLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwu
U3ZuKCksIG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8v
JylbMV0pLCBNb2NrVGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHBy
b2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4nLCks
Ci0gICAgICAgICAgICAgICAgICAgIHBhdGg9ZGlybmFtZSwKLSAgICAgICAgICAgICAgICAgICAg
c3VidmVyc2lvbj1zZWxmLnN2bl9yZW1vdGUsCi0gICAgICAgICAgICAgICAgKSkKLQotICAgICAg
ICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChk
aXJuYW1lLCByZW1vdGU9c2VsZi5naXRfcmVtb3RlKSwgbW9ja3MubG9jYWwuU3ZuKCksIG1vY2tz
LnJlbW90ZS5Tdm4ocmVtb3RlPXNlbGYuc3ZuX3JlbW90ZS5zcGxpdCgnOi8vJylbMV0pLCBNb2Nr
VGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigK
LSAgICAgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4nLCAnLS1hbGwtYnJhbmNo
ZXMnKSwKLSAgICAgICAgICAgICAgICAgICAgcGF0aD1kaXJuYW1lLAotICAgICAgICAgICAgICAg
ICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAgICAgICAgICAgICApKQorICAg
ICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVt
b3RlPXNlbGYuZ2l0X3JlbW90ZSksIG1vY2tzLmxvY2FsLlN2bigpLCBtb2Nrcy5yZW1vdGUuU3Zu
KHJlbW90ZT1zZWxmLnN2bl9yZW1vdGUuc3BsaXQoJzovLycpWzFdKSwgTW9ja1RpbWU6CisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAg
ICBhcmdzPSgnc2V0dXAtZ2l0LXN2bicsKSwKKyAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0
aCwKKyAgICAgICAgICAgICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAgICAg
ICAgICkpCisKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tz
LmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90ZT1zZWxmLmdpdF9yZW1vdGUpLCBtb2Nrcy5sb2Nh
bC5Tdm4oKSwgbW9ja3MucmVtb3RlLlN2bihyZW1vdGU9c2VsZi5zdm5fcmVtb3RlLnNwbGl0KCc6
Ly8nKVsxXSksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9n
cmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3NldHVwLWdpdC1zdm4nLCAnLS1hbGwt
YnJhbmNoZXMnKSwKKyAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAg
ICAgICBzdWJ2ZXJzaW9uPXNlbGYuc3ZuX3JlbW90ZSwKKyAgICAgICAgICAgICkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUo
KSwKKyAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90ZSB0byBnaXQgY29uZmlnXG4nICsKKyAg
ICAgICAgICAgICdQb3B1bGF0aW5nIHN2biBjb21taXQgbWFwcGluZyAod2lsbCB0YWtlIGEgZmV3
IG1pbnV0ZXMpLi4uXG4nLAorICAgICAgICApCisKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGgu
am9pbihzZWxmLnBhdGgsICcuZ2l0L2NvbmZpZycpKSBhcyBjb25maWc6CiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1
ZSgpLAotICAgICAgICAgICAgICAgICdBZGRpbmcgc3ZuLXJlbW90ZSB0byBnaXQgY29uZmlnXG4n
ICsKLSAgICAgICAgICAgICAgICAnUG9wdWxhdGluZyBzdm4gY29tbWl0IG1hcHBpbmcgKHdpbGwg
dGFrZSBhIGZldyBtaW51dGVzKS4uLlxuJywKKyAgICAgICAgICAgICAgICBjb25maWcucmVhZCgp
LAorICAgICAgICAgICAgICAgICdbY29yZV1cbicKKyAgICAgICAgICAgICAgICAnXHRyZXBvc2l0
b3J5Zm9ybWF0dmVyc2lvbiA9IDBcbicKKyAgICAgICAgICAgICAgICAnXHRmaWxlbW9kZSA9IHRy
dWVcbicKKyAgICAgICAgICAgICAgICAnXHRiYXJlID0gZmFsc2VcbicKKyAgICAgICAgICAgICAg
ICAnXHRsb2dhbGxyZWZ1cGRhdGVzID0gdHJ1ZVxuJworICAgICAgICAgICAgICAgICdcdGlnbm9y
ZWNhc2UgPSB0cnVlXG4nCisgICAgICAgICAgICAgICAgJ1x0cHJlY29tcG9zZXVuaWNvZGUgPSB0
cnVlXG4nCisgICAgICAgICAgICAgICAgJ1tyZW1vdGUgIm9yaWdpbiJdXG4nCisgICAgICAgICAg
ICAgICAgJ1x0dXJsID0ge2dpdF9yZW1vdGV9XG4nCisgICAgICAgICAgICAgICAgJ1x0ZmV0Y2gg
PSArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKlxuJworICAgICAgICAgICAgICAg
ICdbYnJhbmNoICJtYWluIl1cbicKKyAgICAgICAgICAgICAgICAnXHRyZW1vdGUgPSBvcmlnaW5c
bicKKyAgICAgICAgICAgICAgICAnXHRtZXJnZSA9IHJlZnMvaGVhZHMvbWFpblxuJworICAgICAg
ICAgICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicKKyAgICAgICAgICAgICAgICAnXHR1cmwg
PSB7c3ZuX3JlbW90ZX1cbicKKyAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IHRydW5rOnJlZnMv
cmVtb3Rlcy9vcmlnaW4vbWFpblxuJworICAgICAgICAgICAgICAgICdcdGZldGNoID0gYnJhbmNo
ZXMvYnJhbmNoLWE6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gtYVxuJworICAgICAgICAgICAg
ICAgICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWI6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFu
Y2gtYlxuJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGdpdF9yZW1vdGU9c2VsZi5naXRf
cmVtb3RlLAorICAgICAgICAgICAgICAgICAgICBzdm5fcmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSwK
KyAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKQotCi0gICAgICAgICAgICB3aXRoIG9w
ZW4ob3MucGF0aC5qb2luKGRpcm5hbWUsICcuZ2l0L2NvbmZpZycpKSBhcyBjb25maWc6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgY29uZmln
LnJlYWQoKSwKLSAgICAgICAgICAgICAgICAgICAgJ1tjb3JlXVxuJwotICAgICAgICAgICAgICAg
ICAgICAnXHRyZXBvc2l0b3J5Zm9ybWF0dmVyc2lvbiA9IDBcbicKLSAgICAgICAgICAgICAgICAg
ICAgJ1x0ZmlsZW1vZGUgPSB0cnVlXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGJhcmUgPSBm
YWxzZVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRsb2dhbGxyZWZ1cGRhdGVzID0gdHJ1ZVxu
JwotICAgICAgICAgICAgICAgICAgICAnXHRpZ25vcmVjYXNlID0gdHJ1ZVxuJwotICAgICAgICAg
ICAgICAgICAgICAnXHRwcmVjb21wb3NldW5pY29kZSA9IHRydWVcbicKLSAgICAgICAgICAgICAg
ICAgICAgJ1tyZW1vdGUgIm9yaWdpbiJdXG4nCi0gICAgICAgICAgICAgICAgICAgICdcdHVybCA9
IHtnaXRfcmVtb3RlfVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9ICtyZWZzL2hl
YWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qXG4nCi0gICAgICAgICAgICAgICAgICAgICdbYnJh
bmNoICJtYWluIl1cbicKLSAgICAgICAgICAgICAgICAgICAgJ1x0cmVtb3RlID0gb3JpZ2luXG4n
Ci0gICAgICAgICAgICAgICAgICAgICdcdG1lcmdlID0gcmVmcy9oZWFkcy9tYWluXG4nCi0gICAg
ICAgICAgICAgICAgICAgICdbc3ZuLXJlbW90ZSAic3ZuIl1cbicKLSAgICAgICAgICAgICAgICAg
ICAgJ1x0dXJsID0ge3N2bl9yZW1vdGV9XG4nCi0gICAgICAgICAgICAgICAgICAgICdcdGZldGNo
ID0gdHJ1bms6cmVmcy9yZW1vdGVzL29yaWdpbi9tYWluXG4nCi0gICAgICAgICAgICAgICAgICAg
ICdcdGZldGNoID0gYnJhbmNoZXMvYnJhbmNoLWE6cmVmcy9yZW1vdGVzL29yaWdpbi9icmFuY2gt
YVxuJwotICAgICAgICAgICAgICAgICAgICAnXHRmZXRjaCA9IGJyYW5jaGVzL2JyYW5jaC1iOnJl
ZnMvcmVtb3Rlcy9vcmlnaW4vYnJhbmNoLWJcbicuZm9ybWF0KAotICAgICAgICAgICAgICAgICAg
ICAgICAgZ2l0X3JlbW90ZT1zZWxmLmdpdF9yZW1vdGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBzdm5fcmVtb3RlPXNlbGYuc3ZuX3JlbW90ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICAgICApCi0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNodXRpbC5y
bXRyZWUoZGlybmFtZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3Qvc3ZuX3VuaXR0ZXN0
LnB5CShyZXZpc2lvbiAyNzkzNDMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS90ZXN0L3N2bl91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAt
MjEsMTcgKzIxLDE4IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBvcwotaW1wb3J0IHNodXRp
bAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdW5pdHRlc3QKIAogZnJvbSBkYXRldGltZSBpbXBv
cnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENh
cHR1cmUKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlLCBMb2dnZXJDYXB0
dXJlLCB0ZXN0aW5nCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQsIGxvY2FsLCBtb2Nr
cywgcmVtb3RlCiAKIAotY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg
ICBwYXRoID0gJy9tb2NrL3JlcG9zaXRvcnknCitjbGFzcyBUZXN0TG9jYWxTdm4odGVzdGluZy5Q
YXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRl
ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdExvY2FsU3ZuLCBzZWxmKS5zZXRVcCgp
CisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3ZuJykpCiAKICAg
ICBkZWYgdGVzdF9kZXRlY3Rpb24oc2VsZik6CiAgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3Zu
KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLkdpdCgpOgpAQCAtODEsNyArODIsNyBAQCBjbGFzcyBU
ZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRE
aWN0RXF1YWwoCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB1J1BhdGgn
OiB1Jy4nLAotICAgICAgICAgICAgICAgICAgICB1J1dvcmtpbmcgQ29weSBSb290IFBhdGgnOiB1
Jy9tb2NrL3JlcG9zaXRvcnknLAorICAgICAgICAgICAgICAgICAgICB1J1dvcmtpbmcgQ29weSBS
b290IFBhdGgnOiBzZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgIHUnUmVwb3NpdG9yeSBS
b290JzogdSdodHRwczovL3N2bi5tb2NrLm9yZy9yZXBvc2l0b3J5L3JlcG9zaXRvcnknLAogICAg
ICAgICAgICAgICAgICAgICB1J1VSTCc6IHUnaHR0cHM6Ly9zdm4ubW9jay5vcmcvcmVwb3NpdG9y
eS9yZXBvc2l0b3J5L3RydW5rJywKICAgICAgICAgICAgICAgICAgICAgdSdSZWxhdGl2ZSBVUkwn
OiAgdSdeL3RydW5rJywKQEAgLTk1LDcgKzk2LDcgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2NvbW1pdF9yZXZp
c2lvbihzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0
cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBM
b2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxQHRydW5rJywg
c3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChyZXZpc2lvbj0xKSkpCiAgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcyQHRydW5rJywgc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNv
bW1pdChyZXZpc2lvbj0yKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjFAYnJh
bmNoLWEnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KHJldmlzaW9uPTMpKSkKQEAg
LTExMCwxMyArMTExLDEzIEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBsb2NhbC5Tdm4oc2VsZi5w
YXRoKS5jb21taXQocmV2aXNpb249MTEpKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X2Zyb21fYnJh
bmNoKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRw
dXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExv
Z2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzRAdHJ1bmsnLCBz
dHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGJyYW5jaD0ndHJ1bmsnKSkpCiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcyLjJAYnJhbmNoLWEnLCBzdHIobG9jYWwuU3ZuKHNlbGYu
cGF0aCkuY29tbWl0KGJyYW5jaD0nYnJhbmNoLWEnKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcyLjNAYnJhbmNoLWInLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGJy
YW5jaD0nYnJhbmNoLWInKSkpCiAKICAgICBkZWYgdGVzdF9pZGVudGlmaWVyKHNlbGYpOgotICAg
ICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6Cisg
ICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29t
bWl0KGlkZW50aWZpZXI9JzFAdHJ1bmsnKS5yZXZpc2lvbikKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMiwgbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzJAdHJ1
bmsnKS5yZXZpc2lvbikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbG9jYWwuU3Zu
KHNlbGYucGF0aCkuY29tbWl0KGlkZW50aWZpZXI9JzIuMUBicmFuY2gtYScpLnJldmlzaW9uKQpA
QCAtMTI3LDcgKzEyOCw3IEBAIGNsYXNzIFRlc3RMb2NhbFN2bih1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgsIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNv
bW1pdChpZGVudGlmaWVyPScyLjNAYnJhbmNoLWInKS5yZXZpc2lvbikKIAogICAgIGRlZiB0ZXN0
X25vbl9jYW5ub25pY2FsX2lkZW50aWZpZXJzKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxv
Y2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3Mu
bG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJzJAdHJ1bmsnLCBzdHIobG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KGlk
ZW50aWZpZXI9JzBAYnJhbmNoLWEnKSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcx
QHRydW5rJywgc3RyKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlmaWVyPSctMUBi
cmFuY2gtYScpKSkKIApAQCAtMTgxLDMxICsxODIsMjYgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIuMUBicmFu
Y2gtYScsIHN0cihyZXBvLmNvbW1pdChyZXZpc2lvbj0zKSkpCiAKICAgICBkZWYgdGVzdF9jYWNo
ZShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlybmFtZSA9IHRlbXBmaWxlLm1r
ZHRlbXAoKQotICAgICAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4oZGlybmFtZSkgYXMgbW9j
a19yZXBvLCBPdXRwdXRDYXB0dXJlKCk6Ci0gICAgICAgICAgICAgICAgb3MubWtkaXIob3MucGF0
aC5qb2luKGRpcm5hbWUsICcuc3ZuJykpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnNEB0cnVuaycsIHN0cihsb2NhbC5Tdm4oZGlybmFtZSkuY29tbWl0KCkpKQotCi0gICAgICAg
ICAgICAgICAgbW9ja19yZXBvLmNvbm5lY3RlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgY29t
bWl0ID0gbG9jYWwuU3ZuKGRpcm5hbWUpLmNvbW1pdCgpCi0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnNEB0cnVuaycsIHN0cihjb21taXQpKQotCi0gICAgICAgICAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5Tdm4uRXhjZXB0aW9uKToKLSAgICAgICAgICAgICAg
ICAgICAgbG9jYWwuU3ZuKGRpcm5hbWUpLmNvbW1pdChyZXZpc2lvbj0zKQotICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lKQorICAgICAgICB3aXRoIG1v
Y2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpIGFzIG1vY2tfcmVwbywgT3V0cHV0Q2FwdHVyZSgpOgor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNEB0cnVuaycsIHN0cihsb2NhbC5Tdm4oc2Vs
Zi5wYXRoKS5jb21taXQoKSkpCisKKyAgICAgICAgICAgIG1vY2tfcmVwby5jb25uZWN0ZWQgPSBG
YWxzZQorICAgICAgICAgICAgY29tbWl0ID0gbG9jYWwuU3ZuKHNlbGYucGF0aCkuY29tbWl0KCkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzRAdHJ1bmsnLCBzdHIoY29tbWl0KSkKKwor
ICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsb2NhbC5Tdm4uRXhjZXB0aW9uKToK
KyAgICAgICAgICAgICAgICBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQocmV2aXNpb249MykK
IAogICAgIGRlZiB0ZXN0X3RhZyhzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5Tdm4o
c2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2
bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDksIGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdCh0YWc9J3RhZy0xJykucmV2aXNpb24p
CiAKICAgICBkZWYgdGVzdF90YWdfcHJldmlvdXMoc2VsZik6Ci0gICAgICAgIHdpdGggbW9ja3Mu
bG9jYWwuU3ZuKHNlbGYucGF0aCksIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgTG9nZ2VyQ2FwdHVyZSgpOgogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCg3LCBsb2NhbC5Tdm4oc2VsZi5wYXRoKS5jb21taXQoaWRlbnRpZmllcj0n
Mi4yQHRhZ3MvdGFnLTEnKS5yZXZpc2lvbikKIAogICAgIGRlZiB0ZXN0X2NoZWNrb3V0KHNlbGYp
OgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJl
KCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1
cmUoKToKICAgICAgICAgICAgIHJlcG9zaXRvcnkgPSBsb2NhbC5Tdm4oc2VsZi5wYXRoKQogCiAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDYsIHJlcG9zaXRvcnkuY29tbWl0KCkucmV2aXNp
b24pCkBAIC0yMTksMjAgKzIxNSwyMCBAQCBjbGFzcyBUZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg5LCByZXBvc2l0b3J5LmNvbW1p
dCgpLnJldmlzaW9uKQogCiAgICAgZGVmIHRlc3Rfbm9fbG9nKHNlbGYpOgotICAgICAgICB3aXRo
IG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdp
dGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvY2FsLlN2bihzZWxmLnBhdGgpLmNvbW1pdChpZGVudGlm
aWVyPSc0QHRydW5rJywgaW5jbHVkZV9sb2c9RmFsc2UpLm1lc3NhZ2UpCiAKICAgICBkZWYgdGVz
dF9hbHRlcm5hdGl2ZV9kZWZhdWx0X2JyYW5jaChzZWxmKToKLSAgICAgICAgd2l0aCBtb2Nrcy5s
b2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRoIG1vY2tz
LmxvY2FsLlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHN0cihsb2NhbC5Tdm4oc2VsZi5wYXRoKS5maW5kKCc0QG1haW4nKSksICc0
QHRydW5rJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGxvY2FsLlN2bihzZWxm
LnBhdGgpLmZpbmQoJzRAbWFzdGVyJykpLCAnNEB0cnVuaycpCiAKICAgICBkZWYgdGVzdF9ub19p
ZGVudGlmaWVyKHNlbGYpOgotICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgp
LCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0
aCksIExvZ2dlckNhcHR1cmUoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvY2Fs
LlN2bihzZWxmLnBhdGgpLmZpbmQoJ3RydW5rJywgaW5jbHVkZV9pZGVudGlmaWVyPUZhbHNlKS5p
ZGVudGlmaWVyKQogCiAgICAgZGVmIHRlc3RfY29tbWl0cyhzZWxmKToKLSAgICAgICAgd2l0aCBt
b2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKSwgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICB3aXRo
IG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBMb2dnZXJDYXB0dXJlKCk6CiAgICAgICAgICAg
ICBzdm4gPSBsb2NhbC5Tdm4oc2VsZi5wYXRoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChDb21taXQuRW5jb2RlcigpLmRlZmF1bHQoWwogICAgICAgICAgICAgICAgIHN2bi5jb21taXQo
cmV2aXNpb249J3I2JyksCkBAIC0yNDIsNyArMjM4LDcgQEAgY2xhc3MgVGVzdExvY2FsU3ZuKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIF0pLCBDb21taXQuRW5jb2RlcigpLmRlZmF1
bHQobGlzdChzdm4uY29tbWl0cyhiZWdpbj1kaWN0KHJldmlzaW9uPSdyMScpLCBlbmQ9ZGljdChy
ZXZpc2lvbj0ncjYnKSkpKSkKIAogICAgIGRlZiB0ZXN0X2NvbW1pdHNfYnJhbmNoKHNlbGYpOgot
ICAgICAgICB3aXRoIG1vY2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpLCBPdXRwdXRDYXB0dXJlKCk6
CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuU3ZuKHNlbGYucGF0aCksIExvZ2dlckNhcHR1cmUo
KToKICAgICAgICAgICAgIHN2biA9IGxvY2FsLlN2bihzZWxmLnBhdGgpCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKENvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbCiAgICAgICAgICAgICAg
ICAgc3ZuLmNvbW1pdChyZXZpc2lvbj0ncjcnKSwKQEAgLTI1Miw3ICsyNDgsNyBAQCBjbGFzcyBU
ZXN0TG9jYWxTdm4odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXSksIENvbW1pdC5F
bmNvZGVyKCkuZGVmYXVsdChsaXN0KHN2bi5jb21taXRzKGJlZ2luPWRpY3QoYXJndW1lbnQ9J3Ix
JyksIGVuZD1kaWN0KGFyZ3VtZW50PSdyNycpKSkpKQogCiAKLWNsYXNzIFRlc3RSZW1vdGVTdm4o
dW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdFJlbW90ZVN2bih0ZXN0aW5nLlRlc3RDYXNl
KToKICAgICByZW1vdGUgPSAnaHR0cHM6Ly9zdm4uZXhhbXBsZS5vcmcvcmVwb3NpdG9yeS93ZWJr
aXQnCiAKICAgICBkZWYgdGVzdF9kZXRlY3Rpb24oc2VsZik6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>