<?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>102253</bug_id>
          
          <creation_ts>2012-11-14 11:03:51 -0800</creation_ts>
          <short_desc>Remove uses of deprecated unittest.TestCase aliases</short_desc>
          <delta_ts>2012-11-14 11:30:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>levin</cc>
    
    <cc>levin+watchlist</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>767068</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-14 11:03:51 -0800</bug_when>
    <thetext>Remove uses of deprecated unittest.TestCase aliases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767071</commentid>
    <comment_count>1</comment_count>
      <attachid>174205</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-14 11:07:17 -0800</bug_when>
    <thetext>Created attachment 174205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767072</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-14 11:08:50 -0800</bug_when>
    <thetext>The aliases are deprecated from 2.7 onwards.
http://docs.python.org/2/library/unittest.html#deprecated-aliases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767073</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:11:08 -0800</bug_when>
    <thetext>Attachment 174205 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/BuildSlaveSupport/build.webkit.org-c...&quot; exit_code: 1
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py, line         self.command = self.command_constructor()  # lint warns that command_constructor might not be set, but this is intentional; pylint: disable-msg=E1102
)
  DeprecationWarning)
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py, line         self.command._write = (lambda msg: self.lines.append(msg))  # pylint bug warning about unnecessary lambda? pylint: disable-msg=W0108
)
  DeprecationWarning)
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py, line         self.assertEqual(mock_options.configuration, &apos;default&apos;)  # pylint: disable-msg=E1101
)
  DeprecationWarning)
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:63:  [GenericFileSystemTests.test_glob__trailing_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;assertEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:63:  [GenericFileSystemTests.test_glob__trailing_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;fs&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:67:  [GenericFileSystemTests.test_glob__leading_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;assertEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:67:  [GenericFileSystemTests.test_glob__leading_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;fs&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:71:  [GenericFileSystemTests.test_glob__middle_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;assertEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:71:  [GenericFileSystemTests.test_glob__middle_asterisk] Instance of &apos;GenericFileSystemTests&apos; has no &apos;fs&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:75:  [GenericFileSystemTests.test_glob__period_is_escaped] Instance of &apos;GenericFileSystemTests&apos; has no &apos;assertEqual&apos; member  [pylint/E1101] [5]
Tools/Scripts/webkitpy/common/system/filesystem_unittest.py:75:  [GenericFileSystemTests.test_glob__period_is_escaped] Instance of &apos;GenericFileSystemTests&apos; has no &apos;fs&apos; member  [pylint/E1101] [5]
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py:393: DeprecationWarning: disable-msg is deprecated, replace it by disable (/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py, line         self.assertEqual(ordered_dict.keys()[-2:], options.additional_expectations)  # pylint: disable-msg=E1101
)
  DeprecationWarning)
Total errors found: 8 in 96 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767080</commentid>
    <comment_count>4</comment_count>
      <attachid>174205</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-11-14 11:15:55 -0800</bug_when>
    <thetext>Comment on attachment 174205
Patch

(perhaps obviously) I didn&apos;t realize self.assertEqual() was preferred. Good to know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767106</commentid>
    <comment_count>5</comment_count>
      <attachid>174205</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:30:03 -0800</bug_when>
    <thetext>Comment on attachment 174205
Patch

Clearing flags on attachment: 174205

Committed r134636: &lt;http://trac.webkit.org/changeset/134636&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767107</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:30:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174205</attachid>
            <date>2012-11-14 11:07:17 -0800</date>
            <delta_ts>2012-11-14 11:30:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102253-20121114200515.patch</filename>
            <type>text/plain</type>
            <size>394040</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NjIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI4YWM4NjNkYmFkMjBmZTUzYjZiZWM4NGE0NTAzZWRl
MmJlNjE2MS4uNzFjYmQwMGUxNTZiNDE5MTZkMzJmMzIxNjI0YzE1ZmJjNGJiYzdmMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
NCBAQAorMjAxMi0xMS0xNCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlbW92ZSB1c2VzIG9mIGRlcHJlY2F0ZWQgdW5pdHRlc3QuVGVzdENhc2UgYWxp
YXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAy
MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSB0aGUgZGVwcmVjYXRlZCB1bml0dGVzdC5UZXN0Q2FzZSBtZXRob2RzIHdpdGggdGhlIGNv
cnJlc3BvbmRpbmcgbWV0aG9kcworICAgICAgICBldmVyeXdoZXJlIGluc2lkZSB0aGUgVG9vbHMg
ZGlyZWN0b3J5LiBUaGUgZm9sbG93aW5nIHJlcGxhY2VtZW50cyBhcmUgZG9uZToKKyAgICAgICAg
LSBhc3NlcnRFcXVhbHMgLT4gYXNzZXJ0RXF1YWwKKyAgICAgICAgLSBhc3NlcnRfIC0+IGFzc2Vy
dFRydWUKKyAgICAgICAgLSBmYWlsVW5sZXNzUmFpc2VzIC0+IGFzc2VydFJhaXNlcworCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyY2Zn
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoU1ZOTWlycm9yVGVzdC50ZXN0X0NoZWNrT3V0U291cmNl
KToKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXByb3BlcnR5bWl4aW5f
dW5pdHRlc3QucHk6CisgICAgICAgIChRdWV1ZVByb3BlcnR5TWl4aW5UZXN0LnRlc3RfcXVldWVf
cHJvcGVydHkpOgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlc191bml0
dGVzdC5weToKKyAgICAgICAgKFF1ZXVlVGVzdC5fYXNzZXJ0X3Nob3J0X25hbWUpOgorICAgICAg
ICAoUXVldWVUZXN0Ll9hc3NlcnRfZGlzcGxheV9uYW1lKToKKyAgICAgICAgKFF1ZXVlVGVzdC5f
YXNzZXJ0X25hbWVfd2l0aF91bmRlcnNjb3Jlcyk6CisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2
ZXIvbW9kZWwvd29ya2l0ZW1zX3VuaXR0ZXN0LnB5OgorICAgICAgICAoV29ya0l0ZW1zVGVzdC50
ZXN0X2Rpc3BsYXlfcG9zaXRpb25fZm9yX2F0dGFjaG1lbnQpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weToKKyAgICAgICAg
KHRlc3RfcGFyc2VfbG9nX2VudHJpZXNfZnJvbV9jaGFuZ2Vsb2cpOgorICAgICAgICAodGVzdF9w
YXJzZV9sb2dfZW50cmllc19mcm9tX2Fubm90YXRlZF9maWxlKToKKyAgICAgICAgKF9hc3NlcnRf
cGFyc2VfcmV2aWV3ZXJfdGV4dF9hbmRfbGlzdCk6CisgICAgICAgIChfYXNzZXJ0X3BhcnNlX3Jl
dmlld2VyX3RleHRfbGlzdCk6CisgICAgICAgIChfYXNzZXJ0X2Z1enp5X3Jldmlld2VyX21hdGNo
KToKKyAgICAgICAgKF9hc3NlcnRfcGFyc2VfYXV0aG9ycyk6CisgICAgICAgICh0ZXN0X2xhdGVz
dF9lbnRyeV9wYXJzZSk6CisgICAgICAgICh0ZXN0X2xhdGVzdF9lbnRyeV9wYXJzZV9zaW5nbGVf
ZW50cnkpOgorICAgICAgICAodGVzdF9zZXRfcmV2aWV3ZXIpOgorICAgICAgICAodGVzdF9zZXRf
c2hvcnRfZGVzY3JpcHRpb25fYW5kX2J1Z191cmwpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoRGlm
ZlBhcnNlclRlc3QudGVzdF9kaWZmX3BhcnNlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weToKKyAgICAgICAgKEdpdFNWTlRl
c3QudGVzdF9yZXZpc2lvbnNfY2hhbmdpbmdfZmlsZXNfd2l0aF9sb2NhbF9jb21taXQpOgorICAg
ICAgICAoR2l0U1ZOVGVzdC50ZXN0X3Vwc3RyZWFtX2JyYW5jaCk6CisgICAgICAgIChHaXRTVk5U
ZXN0LnRlc3RfY3JlYXRlX3BhdGNoX3dpdGhfcm1fYW5kX2NoYW5nZWRfZmlsZXMpOgorICAgICAg
ICAoR2l0VGVzdFdpdGhNb2NrLnRlc3RfcHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcl93aXRo
X3VzZXJuYW1lX2FuZF9wYXNzd29yZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0
LnRlc3RfbWFjX3BvcnQpOgorICAgICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfZ3RrX3Bv
cnQpOgorICAgICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfZWZsX3BvcnQpOgorICAgICAg
ICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfcXRfcG9ydCk6CisgICAgICAgIChEZXByZWNhdGVk
UG9ydFRlc3QudGVzdF9jaHJvbWl1bV9wb3J0KToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0VGVz
dC50ZXN0X2Nocm9taXVtX2FuZHJvaWRfcG9ydCk6CisgICAgICAgIChEZXByZWNhdGVkUG9ydFRl
c3QudGVzdF9jaHJvbWl1bV94dmZiX3BvcnQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy91cmxzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVVJMc1Rlc3QudGVzdF9w
YXJzZV9idWdfaWQpOgorICAgICAgICAoVVJMc1Rlc3QudGVzdF9wYXJzZV9hdHRhY2htZW50X2lk
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9maW5kX2ZpbGVzX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoVGVzdFdpbk5vcm1hbGl6ZS5hc3NlcnRfZmlsZXN5c3RlbV9ub3JtYWxp
emVzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVn
emlsbGFfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X3VybF9jcmVhdGlvbik6CisgICAgICAg
ICh0ZXN0X3BhcnNlX2J1Z19pZCk6CisgICAgICAgIChfYXNzZXJ0X2RpY3Rpb25hcmllc19lcXVh
bCk6CisgICAgICAgICh0ZXN0X3BhcnNlX2J1Z3NfZnJvbV94bWwpOgorICAgICAgICAodGVzdF9h
dHRhY2htZW50X2RldGFpbF9idWdfcGFyc2luZyk6CisgICAgICAgIChfYXNzZXJ0X3Jlc3VsdF9j
b3VudCk6CisgICAgICAgICh0ZXN0X3JlcXVlc3RfcGFnZV9wYXJzaW5nKToKKyAgICAgICAgKHRl
c3RfcXVpcF9wYWdlX3BhcnNpbmcpOgorICAgICAgICAoRWRpdFVzZXJzUGFyc2VyVGVzdC5fYXNz
ZXJ0X2xvZ2luX3VzZXJpZF9wYWlycyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9zdGF0
dXNfcGFyc2luZyk6CisgICAgICAgICh0ZXN0X2xhdGVzdF9jYWNoZWRfYnVpbGQpOgorICAgICAg
ICAodGVzdF9yZXN1bHRzX3ppcF91cmwpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weToKKyAgICAgICAgKHRlc3RfY3JlZGVudGlh
bHNfZnJvbV9lbnZpcm9ubWVudCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2ZhaWx1cmVtYXBfdW5pdHRlc3QucHk6CisgICAgICAgIChGYWlsdXJlTWFwVGVzdC50ZXN0
X2ZhaWxpbmdfcmV2aXNpb25zKToKKyAgICAgICAgKEZhaWx1cmVNYXBUZXN0LnRlc3RfbmV3X2Zh
aWx1cmVzKToKKyAgICAgICAgKEZhaWx1cmVNYXBUZXN0LnRlc3RfbmV3X2ZhaWx1cmVzX3dpdGhf
b2xkX3JldmlzaW9ucyk6CisgICAgICAgIChGYWlsdXJlTWFwVGVzdC50ZXN0X25ld19mYWlsdXJl
c193aXRoX21vcmVfb2xkX3JldmlzaW9ucyk6CisgICAgICAgIChGYWlsdXJlTWFwVGVzdC50ZXN0
X3Rlc3RzX2ZhaWxpbmdfZm9yKToKKyAgICAgICAgKEZhaWx1cmVNYXBUZXN0LnRlc3RfZmFpbGlu
Z190ZXN0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHNUZXN0LnRl
c3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291bnQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgIChVbml0VGVz
dFJlc3VsdHNUZXN0LnRlc3Rfbm9zdHJpbmcpOgorICAgICAgICAoVW5pdFRlc3RSZXN1bHRzVGVz
dC50ZXN0X2VtcHR5c3RyaW5nKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9y
ZWFkX2NoZWNrc3VtX2Zyb21fcG5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVhZENoZWNrc3Vt
RnJvbVBuZ1Rlc3QudGVzdF9yZWFkX2NoZWNrc3VtKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZGVwcmVjYXRlZF9sb2dnaW5nX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoTG9nZ2luZ1Rlc3QuYXNzZXJ0X2xvZ19lcXVhbHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHk6CisgICAgICAgIChTY3Jp
cHRFcnJvclRlc3QudGVzdF9zdHJpbmdfZnJvbV9hcmdzKToKKyAgICAgICAgKFNjcmlwdEVycm9y
VGVzdC50ZXN0X21lc3NhZ2Vfd2l0aF9vdXRwdXQpOgorICAgICAgICAoRXhlY3V0aXZlVGVzdC50
ZXN0X3J1bl9jb21tYW5kX3dpdGhfYmFkX2NvbW1hbmQpOgorICAgICAgICAoRXhlY3V0aXZlVGVz
dC50ZXN0X3J1bl9jb21tYW5kX3dpdGhfdW5pY29kZSk6CisgICAgICAgIChFeGVjdXRpdmVUZXN0
LnNlcmlhbF90ZXN0X3J1bl9pbl9wYXJhbGxlbCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9ja191bml0dGVzdC5weToKKyAgICAgICAgKE1v
Y2tGaWxlU3lzdGVtVGVzdC5xdWlja19jaGVjayk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgIChHZW5lcmlj
RmlsZVN5c3RlbVRlc3RzLnRlc3RfZ2xvYl9fdHJhaWxpbmdfYXN0ZXJpc2spOgorICAgICAgICAo
R2VuZXJpY0ZpbGVTeXN0ZW1UZXN0cy50ZXN0X2dsb2JfX2xlYWRpbmdfYXN0ZXJpc2spOgorICAg
ICAgICAoR2VuZXJpY0ZpbGVTeXN0ZW1UZXN0cy50ZXN0X2dsb2JfX21pZGRsZV9hc3Rlcmlzayk6
CisgICAgICAgIChHZW5lcmljRmlsZVN5c3RlbVRlc3RzLnRlc3RfZ2xvYl9fcGVyaW9kX2lzX2Vz
Y2FwZWQpOgorICAgICAgICAoUmVhbEZpbGVTeXN0ZW1UZXN0LnRlc3RfY2hkaXIpOgorICAgICAg
ICAoUmVhbEZpbGVTeXN0ZW1UZXN0LnRlc3RfcmVtb3ZlX2ZpbGVfd2l0aF9yZXRyeSk6CisgICAg
ICAgIChSZWFsRmlsZVN5c3RlbVRlc3QudGVzdF9zZXApOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9sb2d0ZXN0aW5nLnB5OgorICAgICAgICAoVGVzdExvZ1N0cmVh
bS5hc3NlcnRNZXNzYWdlcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2xvZ3V0aWxzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoR2V0TG9nZ2VyVGVzdC50ZXN0X2dl
dF9sb2dnZXJfaW5fd2Via2l0cHkpOgorICAgICAgICAoR2V0TG9nZ2VyVGVzdC50ZXN0X2dldF9s
b2dnZXJfbm90X2luX3dlYmtpdHB5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vb3V0cHV0Y2FwdHVyZS5weToKKyAgICAgICAgKE91dHB1dENhcHR1cmVUZXN0Q2Fz
ZUJhc2UuYXNzZXJ0U3Rkb3V0KToKKyAgICAgICAgKE91dHB1dENhcHR1cmVUZXN0Q2FzZUJhc2Uu
YXNzZXJ0U3RkZXJyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
cGF0aF91bml0dGVzdC5weToKKyAgICAgICAgKEFic3BhdGhUZXN0LnRlc3RfYWJzcGF0aF90b191
cmlfY3lnd2luKToKKyAgICAgICAgKEFic3BhdGhUZXN0LnRlc3RfYWJzcGF0aF90b191cmlfdW5p
eHkpOgorICAgICAgICAoQWJzcGF0aFRlc3QudGVzdF9hYnNwYXRoX3RvX3VyaV93aW4pOgorICAg
ICAgICAoQWJzcGF0aFRlc3QudGVzdF9hYnNwYXRoX3RvX3VyaV9lc2NhcGluZ191bml4eSk6Cisg
ICAgICAgIChBYnNwYXRoVGVzdC50ZXN0X2Fic3BhdGhfdG9fdXJpX2VzY2FwaW5nX2N5Z3dpbik6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191
bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RQbGF0Zm9ybUluZm8udGVzdF9yZWFsX2NvZGUpOgor
ICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X29zX25hbWVfYW5kX3dyYXBwZXJzKToKKyAg
ICAgICAgKFRlc3RQbGF0Zm9ybUluZm8udGVzdF9vc192ZXJzaW9uKToKKyAgICAgICAgKFRlc3RQ
bGF0Zm9ybUluZm8udGVzdF90b3RhbF9ieXRlc19tZW1vcnkpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS91c2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVXNlclRl
c3QudGVzdF9jb25maXJtLm1vY2tfcmF3X2lucHV0KToKKyAgICAgICAgKFVzZXJUZXN0LnRlc3Rf
Y29uZmlybSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3ppcGZp
bGVzZXRfdW5pdHRlc3QucHk6CisgICAgICAgIChaaXBGaWxlU2V0VGVzdC50ZXN0X29wZW4pOgor
ICAgICAgICAoWmlwRmlsZVNldFRlc3QudGVzdF9yZWFkKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5OgorICAgICAgICAo
V2F0Y2hMaXN0VGVzdC50ZXN0X2ZpbGVuYW1lX2RlZmluaXRpb25fbm9fbWF0Y2hlcyk6CisgICAg
ICAgIChXYXRjaExpc3RUZXN0LnRlc3RfZmlsZW5hbWVfZGVmaW5pdGlvbik6CisgICAgICAgIChX
YXRjaExpc3RUZXN0LnRlc3RfY2NfcnVsZXNfc2ltcGxlKToKKyAgICAgICAgKFdhdGNoTGlzdFRl
c3QudGVzdF9jY19ydWxlc19jb21wbGV4KToKKyAgICAgICAgKFdhdGNoTGlzdFRlc3QudGVzdF9j
Y19hbmRfbWVzc2FnZV9ydWxlc19jb21wbGV4KToKKyAgICAgICAgKFdhdGNoTGlzdFRlc3QudGVz
dF9jY19hbmRfbWVzc2FnZV9ydWxlc19ub19tYXRjaGVzKToKKyAgICAgICAgKFdhdGNoTGlzdFRl
c3QudGVzdF9hZGRlZF9tYXRjaCk6CisgICAgICAgIChXYXRjaExpc3RUZXN0LnRlc3RfZGVsZXRl
ZF9tYXRjaCk6CisgICAgICAgIChXYXRjaExpc3RUZXN0LnRlc3RfbW9yZV9hbmRfbGVzc19tYXRj
aCk6CisgICAgICAgIChXYXRjaExpc3RUZXN0LnRlc3RfY29tcGxleF9tYXRjaCk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
cnVubmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTG9ja0NoZWNraW5nUnVubmVyLmhhbmRsZV9m
aW5pc2hlZF9saXN0KToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXJUZXN0cy50ZXN0X2ludGVy
cnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyVGVz
dHMudGVzdF91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdCk6CisgICAgICAgIChMYXlvdXRUZXN0
UnVubmVyVGVzdHMudGVzdF9zZXJ2ZXJzX3N0YXJ0ZWQpOgorICAgICAgICAoU2hhcmRlclRlc3Rz
LmFzc2VydF9zaGFyZHMpOgorICAgICAgICAoU2hhcmRlclRlc3RzLnRlc3Rfc2hhcmRfaW5fdHdv
X2hhc19ub19sb2NrZWRfc2hhcmRzKToKKyAgICAgICAgKFNoYXJkZXJUZXN0cy50ZXN0X3NoYXJk
X2luX3R3b19oYXNfbm9fdW5sb2NrZWRfc2hhcmRzKToKKyAgICAgICAgKE5hdHVyYWxDb21wYXJl
VGVzdC5hc3NlcnRfY21wKToKKyAgICAgICAgKEtleUNvbXBhcmVUZXN0LmFzc2VydF9jbXApOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZp
Z3VyYXRpb25fdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0Q29uZmlndXJhdGlvblRlc3QudGVz
dF9pdGVtcyk6CisgICAgICAgIChUZXN0Q29uZmlndXJhdGlvblRlc3QudGVzdF9rZXlzKToKKyAg
ICAgICAgKFRlc3RDb25maWd1cmF0aW9uVGVzdC50ZXN0X3N0cik6CisgICAgICAgIChUZXN0Q29u
ZmlndXJhdGlvblRlc3QudGVzdF9yZXByKToKKyAgICAgICAgKFRlc3RDb25maWd1cmF0aW9uVGVz
dC50ZXN0X2hhc2gpOgorICAgICAgICAoVGVzdENvbmZpZ3VyYXRpb25UZXN0LnRlc3RfZXEpOgor
ICAgICAgICAoVGVzdENvbmZpZ3VyYXRpb25UZXN0LnRlc3RfdmFsdWVzKToKKyAgICAgICAgKFNw
ZWNpZmllclNvcnRlclRlc3QudGVzdF9pbml0KToKKyAgICAgICAgKFNwZWNpZmllclNvcnRlclRl
c3QudGVzdF9hZGRfc3BlY2lmaWVyKToKKyAgICAgICAgKFNwZWNpZmllclNvcnRlclRlc3QudGVz
dF9hZGRfbWFjcm9zKToKKyAgICAgICAgKFNwZWNpZmllclNvcnRlclRlc3QudGVzdF9jYXRlZ29y
eV9wcmlvcml0eSk6CisgICAgICAgIChTcGVjaWZpZXJTb3J0ZXJUZXN0LnRlc3Rfc3BlY2lmaWVy
X3ByaW9yaXR5KToKKyAgICAgICAgKFNwZWNpZmllclNvcnRlclRlc3QudGVzdF9zb3J0X3NwZWNp
ZmllcnMpOgorICAgICAgICAoVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0LnRlc3Rfc3lt
bWV0cmljX2RpZmZlcmVuY2UpOgorICAgICAgICAoVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJU
ZXN0LnRlc3RfdG9fY29uZmlnX3NldCk6CisgICAgICAgIChUZXN0Q29uZmlndXJhdGlvbkNvbnZl
cnRlclRlc3QudGVzdF9tYWNyb19leHBhbnNpb24pOgorICAgICAgICAoVGVzdENvbmZpZ3VyYXRp
b25Db252ZXJ0ZXJUZXN0LnRlc3RfdG9fc3BlY2lmaWVyX2xpc3RzKToKKyAgICAgICAgKFRlc3RD
b25maWd1cmF0aW9uQ29udmVydGVyVGVzdC50ZXN0X21hY3JvX2NvbGxhcHNpbmcpOgorICAgICAg
ICAoVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0LnRlc3RfY29udmVydGVyX21hY3JvX2Nv
bGxhcHNpbmcpOgorICAgICAgICAoVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0LnRlc3Rf
c3BlY2lmaWVyX2NvbnZlcnRlcl9hY2Nlc3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAg
ICAgKGFzc2VydF9leHApOgorICAgICAgICAoTWlzY1Rlc3RzLnRlc3RfcmVzdWx0X3dhc19leHBl
Y3RlZCk6CisgICAgICAgIChNaXNjVGVzdHMudGVzdF9yZW1vdmVfcGl4ZWxfZmFpbHVyZXMpOgor
ICAgICAgICAoTWlzY1Rlc3RzLnRlc3Rfc3VmZml4ZXNfZm9yX2V4cGVjdGF0aW9ucyk6CisgICAg
ICAgIChNaXNjVGVzdHMudGVzdF9nZXRfZXhwZWN0YXRpb25zX3N0cmluZyk6CisgICAgICAgIChT
a2lwcGVkVGVzdHMuY2hlY2spOgorICAgICAgICAoRXhwZWN0YXRpb25TeW50YXhUZXN0cy5hc3Nl
cnRfdG9rZW5pemVfZXhwKToKKyAgICAgICAgKFNlbWFudGljVGVzdHMudGVzdF9iYWRfYnVnaWQp
OgorICAgICAgICAoU2VtYW50aWNUZXN0cy50ZXN0X21pc3NpbmdfYnVnaWQpOgorICAgICAgICAo
VGVzdEV4cGVjdGF0aW9uU2VyaWFsaXphdGlvblRlc3RzLnRlc3RfcmVjb25zdGl0dXRlX29ubHlf
dGhlc2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2ZhaWx1cmVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEZhaWx1cmVzVGVzdC50ZXN0
X2NyYXNoZXMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZV91bml0dGVzdC5weToKKyAgICAgICAgKFBvcnRUZXN0LnRlc3Rfbm9uZXhpc3RhbnRfZXhw
ZWN0YXRpb25zKToKKyAgICAgICAgKFBvcnRUZXN0LnRlc3RfYWRkaXRpb25hbF9leHBlY3RhdGlv
bnMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRl
cnNfdW5pdHRlc3QucHk6CisgICAgICAgIChCdWlsZGVyc1Rlc3QudGVzdF9wYXRoX2Zyb21fbmFt
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9hbmRyb2lkX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3Qu
dGVzdF9hdHRyaWJ1dGVzKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnRUZXN0LnRlc3Rf
ZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnRUZXN0LnRl
c3RfZ2V0X2RldmljZXNfb25lX2RldmljZSk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWRQb3J0
VGVzdC50ZXN0X2dldF9kZXZpY2VzX3R3b19kZXZpY2VzKToKKyAgICAgICAgKENocm9taXVtQW5k
cm9pZFBvcnRUZXN0LnRlc3RfZ2V0X2RldmljZV9zZXJpYWxfb25lX2RldmljZSk6CisgICAgICAg
IChDaHJvbWl1bUFuZHJvaWRQb3J0VGVzdC50ZXN0X2dldF9kZXZpY2Vfc2VyaWFsX3R3b19kZXZp
Y2VzKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZFBvcnRUZXN0LnRlc3RfbXVzdF9yZXF1aXJl
X2h0dHBfc2VydmVyKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZERyaXZlclRlc3QudGVzdF9n
ZXRfbGFzdF9zdGFja3RyYWNlKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZERyaXZlclRlc3Qu
dGVzdF9nZXRfY3Jhc2hfbG9nKToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZERyaXZlclRlc3Qu
dGVzdF9jbWRfbGluZSk6CisgICAgICAgIChDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0LnRlc3Rf
cmVhZF9wcm9tcHQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVzdC50ZXN0X2Nv
bW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVy
VHdvRHJpdmVyc1Rlc3QudGVzdF90d29fZHJpdmVycyk6CisgICAgICAgIChDaHJvbWl1bUFuZHJv
aWRUd29Qb3J0c1Rlc3QudGVzdF9vcHRpb25zX3dpdGhfdHdvX3BvcnRzKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0
LnB5OgorICAgICAgICAoQ2hyb21pdW1MaW51eFBvcnRUZXN0LmFzc2VydF9hcmNoaXRlY3R1cmUp
OgorICAgICAgICAoQ2hyb21pdW1MaW51eFBvcnRUZXN0LnRlc3RfZGV0ZXJtaW5lX2FyY2hpdGVj
dHVyZV9mYWlscyk6CisgICAgICAgIChDaHJvbWl1bUxpbnV4UG9ydFRlc3QudGVzdF9wYXRoX3Rv
X2ltYWdlX2RpZmYpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ2hyb21pdW1NYWNQb3J0VGVz
dC5hc3NlcnRfbmFtZSk6CisgICAgICAgIChDaHJvbWl1bU1hY1BvcnRUZXN0LnRlc3RfYmFzZWxp
bmVfcGF0aCk6CisgICAgICAgIChDaHJvbWl1bU1hY1BvcnRUZXN0LnRlc3RfcGF0aF90b19pbWFn
ZV9kaWZmKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX3BvcnRfdGVzdGNhc2UucHk6CisgICAgICAgIChDaHJvbWl1bVBvcnRUZXN0Q2FzZS50
ZXN0X2RlZmF1bHRfbWF4X2xvY2tlZF9zaGFyZHMpOgorICAgICAgICAoQ2hyb21pdW1Qb3J0VGVz
dENhc2UudGVzdF9kZWZhdWx0X3RpbWVvdXRfbXMpOgorICAgICAgICAoQ2hyb21pdW1Qb3J0VGVz
dENhc2UudGVzdF9kZWZhdWx0X3BpeGVsX3Rlc3RzKToKKyAgICAgICAgKENocm9taXVtUG9ydFRl
c3RDYXNlLnRlc3RfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMpOgorICAgICAgICAoQ2hyb21pdW1Q
b3J0VGVzdENhc2UudGVzdF9kZWZhdWx0X2NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoQ2hyb21p
dW1Qb3J0VGVzdENhc2UudGVzdF9kaWZmX2ltYWdlKToKKyAgICAgICAgKENocm9taXVtUG9ydFRl
c3RDYXNlLnRlc3RfZGlmZl9pbWFnZV9jcmFzaGVkKToKKyAgICAgICAgKENocm9taXVtUG9ydFRl
c3RDYXNlLnRlc3RfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weToKKyAgICAgICAg
KENocm9taXVtV2luVGVzdC50ZXN0X3NldHVwX2Vudmlyb25fZm9yX3NlcnZlcl9jeWdwYXRoKToK
KyAgICAgICAgKENocm9taXVtV2luVGVzdC5hc3NlcnRfbmFtZSk6CisgICAgICAgIChDaHJvbWl1
bVdpblRlc3QudGVzdF9iYXNlbGluZV9wYXRoKToKKyAgICAgICAgKENocm9taXVtV2luVGVzdC50
ZXN0X3BhdGhfdG9faW1hZ2VfZGlmZik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9kcml2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChEcml2ZXJUZXN0LnRl
c3RfcmVhZF9ibG9jayk6CisgICAgICAgIChEcml2ZXJUZXN0LnRlc3RfcmVhZF9iaW5hcnlfYmxv
Y2spOgorICAgICAgICAoRHJpdmVyVGVzdC50ZXN0X3JlYWRfYmFzZTY0X2Jsb2NrKToKKyAgICAg
ICAgKERyaXZlclRlc3QudGVzdF9ub190aW1lb3V0KToKKyAgICAgICAgKERyaXZlclRlc3QudGVz
dF9jaGVja19mb3JfZHJpdmVyX2NyYXNoLmFzc2VydF9jcmFzaCk6CisgICAgICAgIChEcml2ZXJU
ZXN0LnRlc3RfY3JlYXRpbmdfYV9wb3J0X2RvZXNfbm90X3dyaXRlX3RvX3RoZV9maWxlc3lzdGVt
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rvcnlf
dW5pdHRlc3QucHk6CisgICAgICAgIChGYWN0b3J5VGVzdC50ZXN0X2dldF9mcm9tX2J1aWxkZXJf
bmFtZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGtf
dW5pdHRlc3QucHk6CisgICAgICAgIChHdGtQb3J0VGVzdC50ZXN0X2RlZmF1bHRfdGltZW91dF9t
cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX2xv
Y2tfdW5pdHRlc3QucHk6CisgICAgICAgIChIdHRwTG9ja1Rlc3QudGVzdF9jdXJyZW50X2xvY2tf
cGlkKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ltYWdl
X2RpZmZfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0SW1hZ2VEaWZmZXIudGVzdF9kaWZmX2lt
YWdlX2ZhaWxlZCk6CisgICAgICAgIChUZXN0SW1hZ2VEaWZmZXIudGVzdF9kaWZmX2ltYWdlX3Bh
c3NlZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFr
ZGV0ZWN0b3JfdW5pdHRlc3QucHk6CisgICAgICAgIChMZWFrRGV0ZWN0b3JUZXN0LnRlc3RfbGVh
a3NfYXJncyk6CisgICAgICAgICh0ZXN0X3BhcnNlX2xlYWtzX291dHB1dCk6CisgICAgICAgICh0
ZXN0X2xlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSk6CisgICAgICAgICh0ZXN0X2NvdW50X3RvdGFs
X2xlYWtzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21h
Y191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF9kZWZhdWx0X3RpbWVvdXRfbXMp
OgorICAgICAgICAoYXNzZXJ0X25hbWUpOgorICAgICAgICAodGVzdF9zZXR1cF9lbnZpcm9uX2Zv
cl9zZXJ2ZXIpOgorICAgICAgICAoX2Fzc2VydF9zZWFyY2hfcGF0aCk6CisgICAgICAgICh0ZXN0
XzMyYml0KToKKyAgICAgICAgKHRlc3RfNjRiaXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRlc3QucHk6CisgICAgICAgIChNb2Nr
VGVzdFNoZWxsVGVzdC50ZXN0X3BpeGVsdGVzdF9fZmFpbHMpOgorICAgICAgICAoTW9ja1Rlc3RT
aGVsbFRlc3QudGVzdF90ZXN0X3NoZWxsX3BhcnNlX29wdGlvbnMpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAg
KFBvcnRUZXN0Q2FzZS50ZXN0X2RlZmF1bHRfbWF4X2xvY2tlZF9zaGFyZHMpOgorICAgICAgICAo
UG9ydFRlc3RDYXNlLnRlc3RfZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKFBvcnRUZXN0
Q2FzZS50ZXN0X2RlZmF1bHRfcGl4ZWxfdGVzdHMpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRl
c3RfZGlmZl9pbWFnZSk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kaWZmX2ltYWdlX2Ny
YXNoZWQpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZ2V0X2NyYXNoX2xvZyk6CisgICAg
ICAgIChQb3J0VGVzdENhc2UuYXNzZXJ0X2J1aWxkX3BhdGgpOgorICAgICAgICAoUG9ydFRlc3RD
YXNlLnRlc3RfZXhwZWN0YXRpb25zX29yZGVyaW5nKToKKyAgICAgICAgKF9hc3NlcnRfY29uZmln
X2ZpbGVfZm9yX3BsYXRmb3JtKToKKyAgICAgICAgKHRlc3RfcGF0aF90b19hcGFjaGVfY29uZmln
X2ZpbGUpOgorICAgICAgICAodGVzdF9hZGRpdGlvbmFsX3BsYXRmb3JtX2RpcmVjdG9yeSk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdF91bml0dGVzdC5w
eToKKyAgICAgICAgKFF0UG9ydFRlc3QuX2Fzc2VydF9zZWFyY2hfcGF0aCk6CisgICAgICAgIChR
dFBvcnRUZXN0Ll9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKFF0UG9ydFRl
c3QudGVzdF9zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHk6CisgICAg
ICAgIChUZXN0U2VydmVyUHJvY2Vzcy50ZXN0X2Jhc2ljKToKKyAgICAgICAgKFRlc3RTZXJ2ZXJQ
cm9jZXNzLnRlc3RfYnJva2VuX3BpcGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0ZXN0LnB5OgorICAgICAgICAoV2luUG9ydFRlc3QuX2Fz
c2VydF9zZWFyY2hfcGF0aCk6CisgICAgICAgIChXaW5Qb3J0VGVzdC5fYXNzZXJ0X3ZlcnNpb24p
OgorICAgICAgICAoV2luUG9ydFRlc3QudGVzdF9ydW50aW1lX2ZlYXR1cmVfbGlzdCk6CisgICAg
ICAgIChXaW5Qb3J0VGVzdC50ZXN0X2V4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRl
c3QucHk6CisgICAgICAgIChMaW50VGVzdC50ZXN0X2FsbF9jb25maWd1cmF0aW9ucyk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X2FsbCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlcGVhdF9l
YWNoKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3Rfc2tpcHBlZF9mbGFnKToKKyAgICAgICAgKE1h
aW5UZXN0LnRlc3RfaXRlcmF0aW9ucyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3J1bl9jaHVu
ayk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3J1bl9wYXJ0KToKKyAgICAgICAgKE1haW5UZXN0
LnRlc3RfcnVuX3NpbmdseSk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3J1bl9zaW5nbHlfYWN0
dWFsbHlfcnVuc190ZXN0cyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3NpbmdsZV9maWxlKToK
KyAgICAgICAgKE1haW5UZXN0LnRlc3Rfc2luZ2xlX2ZpbGVfd2l0aF9wcmVmaXgpOgorICAgICAg
ICAoTWFpblRlc3QudGVzdF9zaW5nbGVfc2tpcHBlZF9maWxlKToKKyAgICAgICAgKE1haW5UZXN0
LnRlc3Rfc3RkZXJyX2lzX3NhdmVkKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdGVzdF9saXN0
KToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfdGVzdF9saXN0X3dpdGhfcHJlZml4KToKKyAgICAg
ICAgKE1haW5UZXN0LnRlc3RfbWlzc2luZ19hbmRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAg
ICAgKE1haW5UZXN0LnRlc3RfcGl4ZWxfdGVzdF9kaXJlY3Rvcmllcyk6CisgICAgICAgIChNYWlu
VGVzdC50ZXN0X21pc3NpbmdfYW5kX3VuZXhwZWN0ZWRfcmVzdWx0c193aXRoX2N1c3RvbV9leGl0
X2NvZGUpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9jcmFzaF9sb2cpOgorICAgICAgICAoTWFp
blRlc3QudGVzdF93ZWJfcHJvY2Vzc19jcmFzaF9sb2cpOgorICAgICAgICAoTWFpblRlc3QudGVz
dF9leGl0X2FmdGVyX25fZmFpbHVyZXNfdXBsb2FkKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3Rf
ZXhpdF9hZnRlcl9uX2ZhaWx1cmVzKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3RfZXhpdF9hZnRl
cl9uX2NyYXNoZXMpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9yZXRyeWluZ19hbmRfZmxha3lf
dGVzdHMpOgorICAgICAgICAoTWFpblRlc3QudGVzdF9ydW5fb3JkZXJfX2lubGluZSk6CisgICAg
ICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3RfcnVuKToKKyAgICAgICAgKE1haW5UZXN0LnRlc3Rf
cmVmdGVzdF9ydW5fcmVmdGVzdHNfaWZfcGl4ZWxfdGVzdHNfYXJlX2Rpc2FibGVkKToKKyAgICAg
ICAgKE1haW5UZXN0LnRlc3RfcmVmdGVzdF9za2lwX3JlZnRlc3RzX2lmX25vX3JlZl90ZXN0cyk6
CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3RfZXhwZWN0ZWRfaHRtbF9zaG91bGRfYmVf
aWdub3JlZCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3RfZHJpdmVyX3Nob3VsZF9y
dW5fZXhwZWN0ZWRfaHRtbCk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3JlZnRlc3RfZHJpdmVy
X3Nob3VsZF9ydW5fZXhwZWN0ZWRfbWlzbWF0Y2hfaHRtbCk6CisgICAgICAgIChNYWluVGVzdC50
ZXN0X291dHB1dF9kaWZmcyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3Vuc3VwcG9ydGVkX3Bs
YXRmb3JtKToKKyAgICAgICAgKEVuZFRvRW5kVGVzdC50ZXN0X2VuZF90b19lbmQpOgorICAgICAg
ICAoUmViYXNlbGluZVRlc3QudGVzdF9yZXNldF9yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxp
bmVUZXN0LnRlc3RfbWlzc2luZ19yZXN1bHRzKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0LnRl
c3RfbmV3X2Jhc2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKEJhc2VU
ZXN0LmludGVncmF0aW9uX3Rlc3Rfc2VydmVyX19ub3JtYWwpOgorICAgICAgICAoQmFzZVRlc3Qu
aW50ZWdyYXRpb25fdGVzdF9zZXJ2ZXJfX2ZhaWxzKToKKyAgICAgICAgKEJhc2VUZXN0LmludGVn
cmF0aW9uX3Rlc3RfcG9ydF9hbmRfcm9vdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl91bml0dGVzdC5weToKKyAgICAgICAgKFRl
c3RIdHRwU2VydmVyLnRlc3Rfc3RhcnRfY21kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weToKKyAgICAgICAg
KFJlZ3VsYXJUZXN0LnRlc3RfbG9nZ2luZ19ub3RfaW5jbHVkZWQpOgorICAgICAgICAoUmVndWxh
clRlc3QuX2Jhc2ljKToKKyAgICAgICAgKFJlZ3VsYXJUZXN0LnRlc3RfYmFzaWMpOgorICAgICAg
ICAoUmVndWxhclRlc3QudGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKToKKyAgICAgICAgKFJlZ3VsYXJU
ZXN0LnRlc3RfbG9nX2FyZ3MpOgorICAgICAgICAoVHR5VGVzdC50ZXN0X2Jhc2ljKToKKyAgICAg
ICAgKFR0eVRlc3QudGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKToKKyAgICAgICAgKFZlcmJvc2VUZXN0
LnRlc3RfYmFzaWMpOgorICAgICAgICAoVmVyYm9zZVRlc3QudGVzdF9sb2dfYWZ0ZXJfdXBkYXRl
KToKKyAgICAgICAgKFZlcmJvc2VUZXN0LnRlc3RfbG9nX2FyZ3MpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoVGVzdHByaW50ZXIuYXNzZXJ0V3JpdHRlbik6CisgICAgICAgICh0ZXN0X3Rlc3Rfc3Rh
dHVzX2xpbmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMv
cGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTWFpblRlc3QuYXNzZXJ0V3Jp
dHRlbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoR2xvYmFsVmFyaWFibGVzVGVzdC50ZXN0X3dlYmtpdF9iYXNlX2ZpbHRl
cl9ydWxlcyk6CisgICAgICAgIChDaGVja2VyRGlzcGF0Y2hlclNraXBUZXN0Ll9hc3NlcnRfc2hv
dWxkX3NraXBfd2l0aG91dF93YXJuaW5nKToKKyAgICAgICAgKENoZWNrZXJEaXNwYXRjaGVyQ2Fy
cmlhZ2VSZXR1cm5UZXN0LnRlc3Rfc2hvdWxkX2NoZWNrX2FuZF9zdHJpcF9jYXJyaWFnZV9yZXR1
cm5zKToKKyAgICAgICAgKENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0LmFzc2VydF9jaGVj
a2VyKToKKyAgICAgICAgKENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0LnRlc3RfY2hhbmdl
bG9nX3BhdGhzKToKKyAgICAgICAgKENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0LnRlc3Rf
Y3BwX3BhdGhzKToKKyAgICAgICAgKENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0LnRlc3Rf
anNvbl9wYXRocyk6CisgICAgICAgIChDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdC50ZXN0
X3B5dGhvbl9wYXRocyk6CisgICAgICAgIChDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdC50
ZXN0X3RleHRfcGF0aHMpOgorICAgICAgICAoQ2hlY2tlckRpc3BhdGNoZXJEaXNwYXRjaFRlc3Qu
dGVzdF94bWxfcGF0aHMpOgorICAgICAgICAoU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uVGVz
dC50ZXN0X2luaXQpOgorICAgICAgICAoU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uVGVzdC50
ZXN0X3dyaXRlX3N0eWxlX2Vycm9yX2VtYWNzKToKKyAgICAgICAgKFN0eWxlUHJvY2Vzc29yQ29u
ZmlndXJhdGlvblRlc3QudGVzdF93cml0ZV9zdHlsZV9lcnJvcl92czcpOgorICAgICAgICAoU3R5
bGVQcm9jZXNzb3JfRW5kVG9FbmRUZXN0LnRlc3RfaW5pdCk6CisgICAgICAgIChTdHlsZVByb2Nl
c3Nvcl9FbmRUb0VuZFRlc3QudGVzdF9wcm9jZXNzKToKKyAgICAgICAgKFN0eWxlUHJvY2Vzc29y
X0NvZGVDb3ZlcmFnZVRlc3QudGVzdF9wcm9jZXNzX19jaGVja2VyX2Rpc3BhdGNoZWQpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY2hhbmdlbG9nX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoQ2hhbmdlTG9nQ2hlY2tlclRlc3QuYXNzZXJ0X2Vycm9yLmhhbmRsZV9z
dHlsZV9lcnJvcik6CisgICAgICAgIChDaGFuZ2VMb2dDaGVja2VyVGVzdC50ZXN0X2luaXQpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY29tbW9uX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoQ2FycmlhZ2VSZXR1cm5DaGVja2VyVGVzdC5hc3NlcnRfY2FycmlhZ2Vf
cmV0dXJuKToKKyAgICAgICAgKFRhYkNoZWNrZXJUZXN0LmFzc2VydF90YWIpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoQ3BwRnVuY3Rpb25zVGVzdC50ZXN0X2NvbnZlcnRfdG9fbG93ZXJfd2l0aF91bmRlcnNjb3Jl
cyk6CisgICAgICAgIChDcHBGdW5jdGlvbnNUZXN0LnRlc3RfY3JlYXRlX2Fjcm9ueW0pOgorICAg
ICAgICAoQ3BwRnVuY3Rpb25zVGVzdC50ZXN0X3BhcmFtZXRlcik6CisgICAgICAgIChDcHBGdW5j
dGlvbnNUZXN0LnRlc3Rfc2luZ2xlX2xpbmVfdmlldyk6CisgICAgICAgIChDcHBGdW5jdGlvbnNU
ZXN0LnRlc3RfY3JlYXRlX3NrZWxldG9uX3BhcmFtZXRlcnMpOgorICAgICAgICAoQ3BwRnVuY3Rp
b25zVGVzdC50ZXN0X2ZpbmRfcGFyYW1ldGVyX25hbWVfaW5kZXgpOgorICAgICAgICAoQ3BwRnVu
Y3Rpb25zVGVzdC50ZXN0X3BhcmFtZXRlcl9saXN0KToKKyAgICAgICAgKENwcEZ1bmN0aW9uc1Rl
c3QudGVzdF9jaGVja19wYXJhbWV0ZXJfYWdhaW5zdF90ZXh0KToKKyAgICAgICAgKENwcFN0eWxl
VGVzdEJhc2UucGVyZm9ybV9saW50KToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UuYXNzZXJ0
X2xpbnQpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0QmFzZS5hc3NlcnRfbGludF9vbmVfb2ZfbWFu
eV9lcnJvcnNfcmUpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0QmFzZS5hc3NlcnRfbXVsdGlfbGlu
ZV9saW50KToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UuYXNzZXJ0X2xhbmd1YWdlX3J1bGVz
X2NoZWNrKToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UuYXNzZXJ0X2luY2x1ZGVfd2hhdF95
b3VfdXNlKToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UuYXNzZXJ0X2JsYW5rX2xpbmVzX2No
ZWNrKToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2UuYXNzZXJ0X3Bvc2l0aW9uc19lcXVhbCk6
CisgICAgICAgIChGdW5jdGlvbkRldGVjdGlvblRlc3QucGVyZm9ybV9mdW5jdGlvbl9kZXRlY3Rp
b24pOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfZ2V0X2xpbmVfd2lkdGgpOgorICAgICAg
ICAoQ3BwU3R5bGVUZXN0LnRlc3RfZmluZF9uZXh0X211bHRpX2xpbmVfY29tbWVudF9zdGFydCk6
CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9maW5kX25leHRfbXVsdGlfbGluZV9jb21tZW50
X2VuZCk6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9yZW1vdmVfbXVsdGlfbGluZV9jb21t
ZW50c19mcm9tX3JhbmdlKToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X3Bvc2l0aW9uKToK
KyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X3JmaW5kX2luX2xpbmVzKToKKyAgICAgICAgKENw
cFN0eWxlVGVzdC50ZXN0X2Nsb3NlX2V4cHJlc3Npb24pOgorICAgICAgICAoQ3BwU3R5bGVUZXN0
LnRlc3RfaW5jbHVkZV93aGF0X3lvdV91c2Vfbm9faW1wbGVtZW50YXRpb25fZmlsZXMpOgorICAg
ICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfaW5jbHVkZV93aGF0X3lvdV91c2UpOgorICAgICAgICAo
Q3BwU3R5bGVUZXN0LnRlc3RfZmlsZXNfYmVsb25nX3RvX3NhbWVfbW9kdWxlKToKKyAgICAgICAg
KENwcFN0eWxlVGVzdC50ZXN0X2NsZWFuc2VfbGluZSk6CisgICAgICAgIChDcHBTdHlsZVRlc3Qu
dGVzdF9tdWx0aWxpbmVfc3RyaW5ncyk6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9uZXds
aW5lX2F0X2VvZi5kb190ZXN0KToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2ludmFsaWRf
dXRmOC5kb190ZXN0KToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2lzX2JsYW5rX2xpbmUp
OgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfYWxsb3dfYmxhbmtfbGluZV9iZWZvcmVfY2xv
c2luZ19uYW1lc3BhY2UpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfYWxsb3dfYmxhbmtf
bGluZV9iZWZvcmVfaWZfZWxzZV9jaGFpbik6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9l
bHNlX29uX3NhbWVfbGluZV9hc19jbG9zaW5nX2JyYWNlcyk6CisgICAgICAgIChDcHBTdHlsZVRl
c3QudGVzdF9idWlsZF9oZWFkZXJfZ3VhcmQpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3Rf
bGVnYWxfY29weXJpZ2h0KToKKyAgICAgICAgKENsZWFuc2VkTGluZXNUZXN0LnRlc3RfaW5pdCk6
CisgICAgICAgIChDbGVhbnNlZExpbmVzVGVzdC50ZXN0X2luaXRfZW1wdHkpOgorICAgICAgICAo
Q2xlYW5zZWRMaW5lc1Rlc3QudGVzdF9jb2xsYXBzZV9zdHJpbmdzKToKKyAgICAgICAgKENoZWNr
Rm9yRnVuY3Rpb25MZW5ndGhzVGVzdC5hc3NlcnRfZnVuY3Rpb25fbGVuZ3Roc19jaGVjayk6Cisg
ICAgICAgIChQYXNzUHRyVGVzdC5hc3NlcnRfcGFzc19wdHJfY2hlY2spOgorICAgICAgICAoTGVh
a3lQYXR0ZXJuVGVzdC5hc3NlcnRfbGVha3lfcGF0dGVybl9jaGVjayk6CisgICAgICAgIChXZWJL
aXRTdHlsZVRlc3QudGVzdF9wYXJhbWV0ZXJfbmFtZXMpOgorICAgICAgICAoV2ViS2l0U3R5bGVU
ZXN0LnRlc3Rfd2Via2l0X2V4cG9ydF9jaGVjayk6CisgICAgICAgIChDcHBDaGVja2VyVGVzdC50
ZXN0X2luaXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvanNv
bmNoZWNrZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChKU09OQ2hlY2tlclRlc3QuYXNzZXJ0X2Vy
cm9yLmhhbmRsZV9zdHlsZV9lcnJvcik6CisgICAgICAgIChKU09OQ2hlY2tlclRlc3QudGVzdF9p
bml0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3BuZ191bml0
dGVzdC5weToKKyAgICAgICAgKFBOR0NoZWNrZXJUZXN0LnRlc3RfaW5pdCk6CisgICAgICAgIChQ
TkdDaGVja2VyVGVzdC50ZXN0X2NoZWNrKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weToKKyAgICAgICAgKFB5dGhvbkNoZWNrZXJU
ZXN0LnRlc3RfaW5pdCk6CisgICAgICAgIChQeXRob25DaGVja2VyVGVzdC50ZXN0X2NoZWNrKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRp
b25zX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc1Rlc3RDYXNlLl9leHBl
Y3RfcG9ydF9mb3JfZXhwZWN0YXRpb25zX3BhdGgpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9u
c1Rlc3RDYXNlLmFzc2VydF9saW5lc19saW50KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL3RleHRfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXh0U3R5bGVUZXN0
Q2FzZS5hc3NlcnROb0Vycm9yKToKKyAgICAgICAgKFRleHRTdHlsZVRlc3RDYXNlLmFzc2VydEVy
cm9yLmVycm9yX2Zvcl90ZXN0KToKKyAgICAgICAgKFRleHRTdHlsZVRlc3RDYXNlLmFzc2VydEVy
cm9yKToKKyAgICAgICAgKFRleHRDaGVja2VyVGVzdC50ZXN0X2luaXQpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoV2F0Y2hMaXN0VGVzdC50ZXN0X2Jhc2ljX2Vycm9yX21lc3NhZ2UuaGFuZGxlX3N0eWxl
X2Vycm9yKToKKyAgICAgICAgKFdhdGNoTGlzdFRlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5OgorICAgICAgICAoWGNv
ZGVQcm9qZWN0RmlsZUNoZWNrZXJUZXN0LmFzc2VydF9lcnJvcik6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHk6CisgICAgICAgIChYTUxD
aGVja2VyVGVzdC5hc3NlcnRfZXJyb3IuaGFuZGxlX3N0eWxlX2Vycm9yKToKKyAgICAgICAgKFhN
TENoZWNrZXJUZXN0LnRlc3RfaW5pdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weToKKyAgICAgICAgKERlZmF1bHRTdHlsZUVycm9y
SGFuZGxlclRlc3QuX2NoZWNrX2luaXRpYWxpemVkKToKKyAgICAgICAgKERlZmF1bHRTdHlsZUVy
cm9ySGFuZGxlclRlc3QudGVzdF9ub25fcmVwb3J0YWJsZV9lcnJvcik6CisgICAgICAgIChEZWZh
dWx0U3R5bGVFcnJvckhhbmRsZXJUZXN0LnRlc3RfbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5KToK
KyAgICAgICAgKERlZmF1bHRTdHlsZUVycm9ySGFuZGxlclRlc3QudGVzdF9saW5lX251bWJlcnMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsZXJlYWRlcl91bml0dGVzdC5w
eToKKyAgICAgICAgKFRleHRGaWxlUmVhZGVyVGVzdC5fYXNzZXJ0X2ZpbGVfcmVhZGVyKToKKyAg
ICAgICAgKFRleHRGaWxlUmVhZGVyVGVzdC50ZXN0X3Byb2Nlc3NfZmlsZV9fZG9lc19ub3RfZXhp
c3QpOgorICAgICAgICAoVGV4dEZpbGVSZWFkZXJUZXN0LnRlc3RfY291bnRfZGVsZXRlX29ubHlf
ZmlsZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3Qu
cHk6CisgICAgICAgIChDYXRlZ29yeUZpbHRlclRlc3QudGVzdF9pbml0KToKKyAgICAgICAgKENh
dGVnb3J5RmlsdGVyVGVzdC50ZXN0X2luaXRfZGVmYXVsdF9hcmd1bWVudHMpOgorICAgICAgICAo
Q2F0ZWdvcnlGaWx0ZXJUZXN0LnRlc3Rfc3RyKToKKyAgICAgICAgKEZpbHRlckNvbmZpZ3VyYXRp
b25UZXN0LnRlc3RfaW5pdCk6CisgICAgICAgIChGaWx0ZXJDb25maWd1cmF0aW9uVGVzdC50ZXN0
X2RlZmF1bHRfYXJndW1lbnRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL21h
aW5fdW5pdHRlc3QucHk6CisgICAgICAgIChDaGFuZ2VEaXJlY3RvcnlUZXN0Ll9hc3NlcnRfcmVz
dWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL29wdHBhcnNlcl91bml0dGVz
dC5weToKKyAgICAgICAgKEFyZ3VtZW50UHJpbnRlclRlc3QudGVzdF90b19mbGFnX3N0cmluZyk6
CisgICAgICAgIChBcmd1bWVudFBhcnNlclRlc3QudGVzdF9wYXJzZV9kZWZhdWx0X2FyZ3VtZW50
cyk6CisgICAgICAgIChBcmd1bWVudFBhcnNlclRlc3QudGVzdF9wYXJzZV9leHBsaWNpdF9hcmd1
bWVudHMpOgorICAgICAgICAoQXJndW1lbnRQYXJzZXJUZXN0LnRlc3RfcGFyc2VfZmlsZXMpOgor
ICAgICAgICAoQ29tbWFuZE9wdGlvblZhbHVlc1Rlc3QudGVzdF9pbml0KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
UGF0Y2hSZWFkZXJUZXN0Ll9hc3NlcnRfY2hlY2tlZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90ZXN0L2ZpbmRlcl91bml0dGVzdC5weToKKyAgICAgICAgKEZpbmRlclRlc3QudGVzdF9h
ZGRpdGlvbmFsX3N5c3RlbV9wYXRocyk6CisgICAgICAgIChGaW5kZXJUZXN0LnRlc3RfdG9fbW9k
dWxlKToKKyAgICAgICAgKEZpbmRlclRlc3QuY2hlY2tfbmFtZXMpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdGVyVGVzdC50
ZXN0X2luZGl2aWR1YWxfbmFtZXNfYXJlX25vdF9ydW5fdHdpY2UpOgorICAgICAgICAoVGVzdGVy
VGVzdC50ZXN0X2ludGVncmF0aW9uX3Rlc3RzX2FyZV9ub3RfZm91bmRfYnlfZGVmYXVsdCk6Cisg
ICAgICAgIChUZXN0ZXJUZXN0LnRlc3RfaW50ZWdyYXRpb25fdGVzdHNfYXJlX2ZvdW5kKToKKyAg
ICAgICAgKFRlc3RlclRlc3QuaW50ZWdyYXRpb25fdGVzdF9jb3ZlcmFnZV93b3Jrcyk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weToKKyAgICAgICAg
KFJ1bm5lclRlc3QudGVzdF9ydW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX2V4cGVjdF92YWxpZGF0
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVz
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlc1Rlc3QuX2Fzc2VydF9jYW5f
dHJ1c3QpOgorICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2Zh
aWx1cmVzX29ic2VydmVkKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfdW5l
eHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVfaXNfaG9zZWQpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmVlZGVyc191bml0dGVzdC5weToKKyAgICAgICAg
KHRlc3RfcGF0Y2hlc193aXRoX2FjY2VwdGFibGVfcmV2aWV3X2ZsYWcpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3QucHk6CisgICAgICAg
IChJUkNDb21tYW5kVGVzdC50ZXN0X3dob2lzKToKKyAgICAgICAgKElSQ0NvbW1hbmRUZXN0LnRl
c3RfY3JlYXRlX2J1Zyk6CisgICAgICAgIChJUkNDb21tYW5kVGVzdC50ZXN0X3JvbGxfY2hyb21p
dW1fZGVwcyk6CisgICAgICAgIChJUkNDb21tYW5kVGVzdC50ZXN0X3JvbGxvdXQpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QudGVzdF9taXNz
aW5nX2xheW91dF90ZXN0X3Jlc3VsdHMpOgorICAgICAgICAodGVzdF9taXNzaW5nX3VuaXRfdGVz
dF9yZXN1bHRzX3BhdGgpOgorICAgICAgICAodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5
OgorICAgICAgICAoTG9nZ2luZ0RlbGVnYXRlLnByb2Nlc3Nfd29ya19pdGVtKToKKyAgICAgICAg
KExvZ2dpbmdEZWxlZ2F0ZS5oYW5kbGVfdW5leHBlY3RlZF9lcnJvcik6CisgICAgICAgIChRdWV1
ZUVuZ2luZVRlc3QudGVzdF90cml2aWFsKToKKyAgICAgICAgKFF1ZXVlRW5naW5lVGVzdC50ZXN0
X3VuZXhwZWN0ZWRfZXJyb3IpOgorICAgICAgICAoUXVldWVFbmdpbmVUZXN0LnRlc3RfaGFuZGxl
ZF9lcnJvcik6CisgICAgICAgIChRdWV1ZUVuZ2luZVRlc3QuX3Rlc3RfdGVybWluYXRpbmdfcXVl
dWUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9vcGVuYnVnc191
bml0dGVzdC5weToKKyAgICAgICAgKE9wZW5CdWdzVGVzdC50ZXN0X2ZpbmRfYnVnc19pbl9zdHJp
bmcpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoRmFpbHVyZVJlYXNvblRlc3QudGVzdF9ibGFtZV9saW5lX2Zv
cl9yZXZpc2lvbik6CisgICAgICAgIChQcmludEV4cGVjdGF0aW9uc1Rlc3QucnVuX3Rlc3QpOgor
ICAgICAgICAoUHJpbnRCYXNlbGluZXNUZXN0LnRlc3RfYmFzaWMpOgorICAgICAgICAoUHJpbnRC
YXNlbGluZXNUZXN0LnRlc3RfbXVsdGlwbGUpOgorICAgICAgICAoUHJpbnRCYXNlbGluZXNUZXN0
LnRlc3RfY3N2KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQWJzdHJhY3RRdWV1ZVRlc3QudGVzdF9sb2dfZGly
ZWN0b3J5KToKKyAgICAgICAgKEFic3RyYWN0UGF0Y2hRdWV1ZVRlc3QudGVzdF9uZXh0X3BhdGNo
KToKKyAgICAgICAgKHRlc3RfYXV0b19yZXRyeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X3Jl
YmFzZWxpbmVfdXBkYXRlc19leHBlY3RhdGlvbnNfZmlsZSk6CisgICAgICAgICh0ZXN0X3JlYmFz
ZWxpbmVfZG9lc19ub3RfaW5jbHVkZV9vdmVycmlkZXMpOgorICAgICAgICAodGVzdF9yZWJhc2Vs
aW5lX3Rlc3QpOgorICAgICAgICAodGVzdF9yZWJhc2VsaW5lX3Rlc3Rfd2l0aF9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfdGVzdF9hbmRfcHJpbnRfc2NtX2No
YW5nZXMpOgorICAgICAgICAodGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3QpOgorICAgICAg
ICAodGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Rfbm9fZXhpc3RpbmdfcmVzdWx0KToKKyAg
ICAgICAgKHRlc3RfcmViYXNlbGluZV9hbmRfY29weV90ZXN0X3dpdGhfbGlvbl9yZXN1bHQpOgor
ICAgICAgICAodGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X25vX292ZXJ3cml0ZV90ZXN0KToKKyAg
ICAgICAgKHRlc3RfcmViYXNlbGluZV90ZXN0X2ludGVybmFsX3dpdGhfbW92ZV9vdmVyd3JpdHRl
bl9iYXNlbGluZXNfdG8pOgorICAgICAgICAoVGVzdFJlYmFzZWxpbmVKc29uLnRlc3RfcmViYXNl
bGluZV9hbGwpOgorICAgICAgICAoVGVzdFJlYmFzZWxpbmVKc29uLnRlc3RfcmViYXNlbGluZV9k
ZWJ1Zyk6CisgICAgICAgIChUZXN0UmViYXNlbGluZUpzb24udGVzdF9tb3ZlX292ZXJ3cml0dGVu
KToKKyAgICAgICAgKFRlc3RSZWJhc2VsaW5lSnNvbi50ZXN0X25vX29wdGltaXplKToKKyAgICAg
ICAgKFRlc3RSZWJhc2VsaW5lSnNvbi50ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAg
KFRlc3RSZWJhc2VsaW5lLnRlc3RfcmViYXNlbGluZSk6CisgICAgICAgIChUZXN0UmViYXNlbGlu
ZUV4cGVjdGF0aW9ucy50ZXN0X3JlYmFzZWxpbmVfZXhwZWN0YXRpb25zX25vb3ApOgorICAgICAg
ICAoVGVzdFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMuZGlzYWJsZWRfdGVzdF9vdmVycmlkZXNfYXJl
X2luY2x1ZGVkX2NvcnJlY3RseSk6CisgICAgICAgIChUZXN0QW5hbHl6ZUJhc2VsaW5lcy50ZXN0
X2RlZmF1bHQpOgorICAgICAgICAoVGVzdEFuYWx5emVCYXNlbGluZXMudGVzdF9taXNzaW5nX2Jh
c2VsaW5lcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JvbGxf
dW5pdHRlc3QucHk6CisgICAgICAgIChQb3N0Um9sbENvbW1hbmRzVGVzdC50ZXN0X3ByZXBhcmVf
c3RhdGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmlu
Z3NlcnZlcl91bml0dGVzdC5weToKKyAgICAgICAgKEJ1aWxkQ292ZXJhZ2VFeHRyYXBvbGF0b3JU
ZXN0LnRlc3RfZXh0cmFwb2xhdGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weToKKyAgICAgICAgKEFkZFN2bk1p
bWV0eXBlRm9yUG5nVGVzdC50ZXN0X3J1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dfdW5pdHRlc3QucHk6CisgICAgICAgIChQcmVwYXJl
Q2hhbmdlTG9nVGVzdC50ZXN0X2Vuc3VyZV9idWdfdXJsKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydF91bml0dGVzdC5weToK
KyAgICAgICAgKF9hc3NlcnRfbWVzc2FnZV9mb3JfcmV2ZXJ0X291dHB1dCk6CisgICAgICAgICog
VGVzdFJlc3VsdFNlcnZlci9tb2RlbC9qc29ucmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAg
KEpzb25SZXN1bHRzVGVzdC5fdGVzdF9tZXJnZSk6CisgICAgICAgIChKc29uUmVzdWx0c1Rlc3Qu
X3Rlc3RfZ2V0X3Rlc3RfbGlzdCk6CisKIDIwMTItMTEtMTQgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdW0FSTV0gRml4ICdudWxscHRyJyBp
cyBhIGtleXdvcmQgaW4gQysrMTEgWy1XYysrMHgtY29tcGF0XSB3YXJuaW5nCmRpZmYgLS1naXQg
YS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9tYXN0ZXJj
ZmdfdW5pdHRlc3QucHkgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9tYXN0ZXJjZmdfdW5pdHRlc3QucHkKaW5kZXggZDE2MTRjMGUwYzcxMDUwNzA2N2Jl
MzAyNGNjMzA4ZTg1Mzk2OTQyMi4uYWUyMWUyMzdlYTA4MTVkM2Y1MjVjZThlZGQ5YmZhNmI4OTVj
ZGMyNyAxMDA3NTUKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvbWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21hc3RlcmNmZ191bml0dGVzdC5weQpAQCAtNjEs
NyArNjEsNyBAQCBjbGFzcyBNYXN0ZXJDZmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgICcxIHVuaXF1ZSBsZWFrcyBmb3VuZCEnLAogICAgICAgICBdCiAgICAgICAgIHJ1bl93
ZWJraXRfdGVzdHMuX3BhcnNlTmV3UnVuV2ViS2l0VGVzdHNPdXRwdXQobG9nX3RleHQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJ1bl93ZWJraXRfdGVzdHMuaW5jb3JyZWN0TGF5b3V0TGlu
ZXMsIGV4cGVjdGVkX2luY29ycmVjdF9saW5lcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy
dW5fd2Via2l0X3Rlc3RzLmluY29ycmVjdExheW91dExpbmVzLCBleHBlY3RlZF9pbmNvcnJlY3Rf
bGluZXMpCiAKIAogY2xhc3MgU3R1YlN0ZGlvKG9iamVjdCk6CkBAIC0zNTQsNyArMzU0LDcgQEAg
Y2xhc3MgU1ZOTWlycm9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBmb3Ig
YnVpbGRTdGVwRmFjdG9yeSwga3dhcmdzIGluIGJ1aWxkZXJbJ2ZhY3RvcnknXS5zdGVwczoKICAg
ICAgICAgICAgICAgICBpZiBzdHIoYnVpbGRTdGVwRmFjdG9yeSkuc3BsaXQoJy4nKVstMV0gPT0g
J0NoZWNrT3V0U291cmNlJzoKICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrT3V0U291cmNl
SW5zdGFuY2UgPSBidWlsZFN0ZXBGYWN0b3J5KCoqa3dhcmdzKQotICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoQ2hlY2tPdXRTb3VyY2VJbnN0YW5jZS5iYXNlVVJMLCBz
ZWxmLmdldF9TVk5NaXJyb3JGcm9tQ29uZmlnKGJ1aWxkZXJbJ25hbWUnXSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENoZWNrT3V0U291cmNlSW5zdGFuY2UuYmFz
ZVVSTCwgc2VsZi5nZXRfU1ZOTWlycm9yRnJvbUNvbmZpZyhidWlsZGVyWyduYW1lJ10pKQogCiAK
IGNsYXNzIEJ1aWxkU3RlcHNDb25zdHJ1Y3RvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVwcm9wZXJ0eW1peGlu
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVwcm9wZXJ0
eW1peGluX3VuaXR0ZXN0LnB5CmluZGV4IDlhMzAxZmVlNzY5YzU5ZDA3M2JlOGVlOTAyYjA1MzU1
ZjU3ODM4MWUuLmU4M2MzZjUwZGM0YTQ3ZGY3N2UxMTk4NDg3ZjBmMzljNDZiNmI5ODYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcHJvcGVydHltaXhpbl91
bml0dGVzdC5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXByb3Bl
cnR5bWl4aW5fdW5pdHRlc3QucHkKQEAgLTQyLDEwICs0MiwxMCBAQCBjbGFzcyBRdWV1ZVByb3Bl
cnR5TWl4aW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGVzdF9vYmplY3QgPSBP
YmplY3RXaXRoUXVldWVOYW1lKCkKICAgICAgICAgbWFjX2V3cyA9IFF1ZXVlKCJtYWMtZXdzIikK
ICAgICAgICAgdGVzdF9vYmplY3QucXVldWUgPSBtYWNfZXdzCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHRlc3Rfb2JqZWN0LnF1ZXVlLm5hbWUoKSwgIm1hYy1ld3MiKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyh0ZXN0X29iamVjdC5xdWV1ZV9uYW1lLCAibWFjLWV3cyIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodGVzdF9vYmplY3QucXVldWUubmFtZSgpLCAibWFjLWV3cyIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdF9vYmplY3QucXVldWVfbmFtZSwgIm1hYy1ld3Mi
KQogICAgICAgICB0ZXN0X29iamVjdC5xdWV1ZSA9IE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHModGVzdF9vYmplY3QucXVldWVfbmFtZSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0ZXN0X29iamVjdC5xdWV1ZV9uYW1lLCBOb25lKQogCiAKIGlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1
ZXNfdW5pdHRlc3QucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXNfdW5p
dHRlc3QucHkKaW5kZXggY2ZhN2ZjZGQyN2M2ZjQwYWU0NmI1NWM2Yzg1ZjU0NzE2NWU0OGRlNC4u
NjU0YzhhNjJiMjc5N2U5NTIwMTgyMmFmMjgxZTcwYTc3MmU2NDhiNSAxMDA2NDQKLS0tIGEvVG9v
bHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlc191bml0dGVzdC5weQpAQCAtNDMsNyArNDMs
NyBAQCBjbGFzcyBRdWV1ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgUXVldWUsICgiYm9ndXMiKSkKIAogICAgIGRlZiBf
YXNzZXJ0X3Nob3J0X25hbWUoc2VsZiwgcXVldWVfbmFtZSwgc2hvcnRfbmFtZSk6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKFF1ZXVlKHF1ZXVlX25hbWUpLnNob3J0X25hbWUoKSwgc2hvcnRf
bmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChRdWV1ZShxdWV1ZV9uYW1lKS5zaG9ydF9u
YW1lKCksIHNob3J0X25hbWUpCiAKICAgICBkZWYgdGVzdF9zaG9ydF9uYW1lKHNlbGYpOgogICAg
ICAgICBzZWxmLl9hc3NlcnRfc2hvcnRfbmFtZSgibWFjLWV3cyIsICJNYWMiKQpAQCAtNTIsNyAr
NTIsNyBAQCBjbGFzcyBRdWV1ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxm
Ll9hc3NlcnRfc2hvcnRfbmFtZSgic3R5bGUtcXVldWUiLCAiU3R5bGUiKQogCiAgICAgZGVmIF9h
c3NlcnRfZGlzcGxheV9uYW1lKHNlbGYsIHF1ZXVlX25hbWUsIHNob3J0X25hbWUpOgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhRdWV1ZShxdWV1ZV9uYW1lKS5kaXNwbGF5X25hbWUoKSwgc2hv
cnRfbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChRdWV1ZShxdWV1ZV9uYW1lKS5kaXNw
bGF5X25hbWUoKSwgc2hvcnRfbmFtZSkKIAogICAgIGRlZiB0ZXN0X2Rpc3BsYXlfbmFtZShzZWxm
KToKICAgICAgICAgc2VsZi5fYXNzZXJ0X2Rpc3BsYXlfbmFtZSgibWFjLWV3cyIsICJNYWMgRVdT
IikKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgUXVldWVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgc2VsZi5fYXNzZXJ0X2Rpc3BsYXlfbmFtZSgic3R5bGUtcXVldWUiLCAiU3R5bGUg
UXVldWUiKQogCiAgICAgZGVmIF9hc3NlcnRfbmFtZV93aXRoX3VuZGVyc2NvcmVzKHNlbGYsIHF1
ZXVlX25hbWUsIHNob3J0X25hbWUpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhRdWV1ZShx
dWV1ZV9uYW1lKS5uYW1lX3dpdGhfdW5kZXJzY29yZXMoKSwgc2hvcnRfbmFtZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChRdWV1ZShxdWV1ZV9uYW1lKS5uYW1lX3dpdGhfdW5kZXJzY29yZXMo
KSwgc2hvcnRfbmFtZSkKIAogICAgIGRlZiB0ZXN0X25hbWVfd2l0aF91bmRlcnNjb3JlcyhzZWxm
KToKICAgICAgICAgc2VsZi5fYXNzZXJ0X25hbWVfd2l0aF91bmRlcnNjb3JlcygibWFjLWV3cyIs
ICJtYWNfZXdzIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3dv
cmtpdGVtc191bml0dGVzdC5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3dvcmtp
dGVtc191bml0dGVzdC5weQppbmRleCBiMWZmMWQzMTUxZTk4YWYwNDkwODRmOWFhY2U0MDNlZDhh
ZWRlZGIzLi5mNmNhNzg1NTk3OWUzYWI0ZDU4YTdiZTA1OGY3MDg2NmRlNzg1Y2E2IDEwMDY0NAot
LS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC93b3JraXRlbXNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvd29ya2l0ZW1zX3VuaXR0ZXN0LnB5
CkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFdvcmtJdGVtc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgIGRlZiB0ZXN0X2Rpc3BsYXlfcG9zaXRpb25fZm9yX2F0dGFjaG1lbnQoc2VsZik6CiAg
ICAgICAgIGl0ZW1zID0gV29ya0l0ZW1zKCkKICAgICAgICAgaXRlbXMuaXRlbV9pZHMgPSBbMCwg
MSwgMl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaXRlbXMuZGlzcGxheV9wb3NpdGlvbl9m
b3JfYXR0YWNobWVudCgwKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaXRlbXMuZGlz
cGxheV9wb3NpdGlvbl9mb3JfYXR0YWNobWVudCgxKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoaXRlbXMuZGlzcGxheV9wb3NpdGlvbl9mb3JfYXR0YWNobWVudCgzKSwgTm9uZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5kaXNwbGF5X3Bvc2l0aW9uX2Zvcl9hdHRhY2ht
ZW50KDApLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1zLmRpc3BsYXlfcG9zaXRp
b25fZm9yX2F0dGFjaG1lbnQoMSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMu
ZGlzcGxheV9wb3NpdGlvbl9mb3JfYXR0YWNobWVudCgzKSwgTm9uZSkKIAogCiBpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IDk1OTE3NDRkMTBl
NmNmMTMzMWNkMWViNWIwMThmZTRjOTg4YWM0MjUuLmZhMjMzOWY0NTY2ZTU0OTRiYzIwZjI0ZDJi
NWJiNmYwMjIwZTk0YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkKQEAgLTE4MSw3ICsxODEs
NyBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAn
JycKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyg1Njk4OCwgcGFyc2VfYnVnX2lkX2Zyb21f
Y2hhbmdlbG9nKGNvbW1pdF90ZXh0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1Njk4OCwg
cGFyc2VfYnVnX2lkX2Zyb21fY2hhbmdlbG9nKGNvbW1pdF90ZXh0KSkKIAogICAgICAgICBjb21t
aXRfdGV4dCA9ICcnJwogMjAxMS0wMy0yMyAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3Jn
PgpAQCAtMTk0LDcgKzE5NCw3IEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogCiAgICAgICAgICcnJwogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBw
YXJzZV9idWdfaWRfZnJvbV9jaGFuZ2Vsb2coY29tbWl0X3RleHQpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEyMzQ1LCBwYXJzZV9idWdfaWRfZnJvbV9jaGFuZ2Vsb2coY29tbWl0X3RleHQp
KQogCiAgICAgICAgIGNvbW1pdF90ZXh0ID0gJycnCiAyMDExLTAzLTMxICBBZGFtIFJvYmVuICA8
YXJvYmVuQGFwcGxlLmNvbT4KQEAgLTIxMyw3ICsyMTMsNyBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAnJycKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyg1NzU2OSwgcGFyc2VfYnVnX2lkX2Zyb21fY2hhbmdlbG9nKGNvbW1pdF90ZXh0KSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1NzU2OSwgcGFyc2VfYnVnX2lkX2Zyb21fY2hhbmdl
bG9nKGNvbW1pdF90ZXh0KSkKIAogICAgICAgICBjb21taXRfdGV4dCA9ICcnJwogMjAxMS0wMy0y
OSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CkBAIC0yMzAsMjQgKzIzMCwy
NCBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXh0
cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IHVuYmFsYW5j
ZWQgc2luZ2xlIHF1b3Rlcy4KICAgICAgICAgJycnCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoNTczNTQsIHBhcnNlX2J1Z19pZF9mcm9tX2NoYW5nZWxvZyhjb21taXRfdGV4dCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoNTczNTQsIHBhcnNlX2J1Z19pZF9mcm9tX2NoYW5nZWxvZyhj
b21taXRfdGV4dCkpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9sb2dfZW50cmllc19mcm9tX2NoYW5n
ZWxvZyhzZWxmKToKICAgICAgICAgY2hhbmdlbG9nX2ZpbGUgPSBTdHJpbmdJTyhzZWxmLl9leGFt
cGxlX2NoYW5nZWxvZykKICAgICAgICAgcGFyc2VkX2VudHJpZXMgPSBsaXN0KENoYW5nZUxvZy5w
YXJzZV9lbnRyaWVzX2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmlsZSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGxlbihwYXJzZWRfZW50cmllcyksIDkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHBhcnNlZF9lbnRyaWVzWzBdLnJldmlld2VyX3RleHQoKSwgIkRhdmlkIExldmluIikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNbMV0uYXV0aG9yX2VtYWlsKCks
ICJkZGtpbHplckBhcHBsZS5jb20iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRf
ZW50cmllc1syXS5yZXZpZXdlcl90ZXh0KCksICJNYXJrIFJvd2UiKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwYXJzZWRfZW50cmllc1syXS50b3VjaGVkX2ZpbGVzKCksIFsiRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBhcnNlZF9lbnRyaWVzWzNdLmF1dGhvcl9uYW1lKCksICJCZW5qYW1pbiBQb3VsYWlu
IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNbM10udG91Y2hlZF9m
aWxlcygpLCBbInBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAiLCAicGxhdGZvcm0vbWFjL0tVUkxN
YWMubW0iLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJzZWRfZW50cmllcyksIDkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VkX2VudHJpZXNbMF0ucmV2aWV3ZXJfdGV4
dCgpLCAiRGF2aWQgTGV2aW4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRy
aWVzWzFdLmF1dGhvcl9lbWFpbCgpLCAiZGRraWx6ZXJAYXBwbGUuY29tIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1syXS5yZXZpZXdlcl90ZXh0KCksICJNYXJrIFJv
d2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzJdLnRvdWNoZWRf
ZmlsZXMoKSwgWyJEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cubW0iXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1szXS5hdXRob3JfbmFtZSgp
LCAiQmVuamFtaW4gUG91bGFpbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VkX2Vu
dHJpZXNbM10udG91Y2hlZF9maWxlcygpLCBbInBsYXRmb3JtL2NmL0tVUkxDRk5ldC5jcHAiLCAi
cGxhdGZvcm0vbWFjL0tVUkxNYWMubW0iLAogICAgICAgICAgICAgIldlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAiLCAiZXdrL2V3a19wcml2YXRlLmgiLCAiZXdrL2V3a192aWV3LmNw
cCJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRfZW50cmllc1s0XS5yZXZpZXdl
cl90ZXh0KCksICJEYXZpZCBIeWF0dCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcnNl
ZF9lbnRyaWVzWzVdLnJldmlld2VyX3RleHQoKSwgIkFkYW0gUm9iZW4iKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhwYXJzZWRfZW50cmllc1s2XS5yZXZpZXdlcl90ZXh0KCksICJUb255IENo
YW5nIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNbN10ucmV2aWV3
ZXJfdGV4dCgpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRfZW50cmll
c1s4XS5yZXZpZXdlcl90ZXh0KCksICdEYXJpbiBBZGxlcicpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocGFyc2VkX2VudHJpZXNbNF0ucmV2aWV3ZXJfdGV4dCgpLCAiRGF2aWQgSHlhdHQiKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzVdLnJldmlld2VyX3RleHQo
KSwgIkFkYW0gUm9iZW4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVz
WzZdLnJldmlld2VyX3RleHQoKSwgIlRvbnkgQ2hhbmciKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBhcnNlZF9lbnRyaWVzWzddLnJldmlld2VyX3RleHQoKSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1s4XS5yZXZpZXdlcl90ZXh0KCksICdEYXJpbiBB
ZGxlcicpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9sb2dfZW50cmllc19mcm9tX2Fubm90YXRlZF9m
aWxlKHNlbGYpOgogICAgICAgICAjIE5vdGUgdGhhdCB0aGVyZSBhcmUgdHJhaWxpbmcgc3BhY2Vz
IG9uIHNvbWUgb2YgdGhlIGxpbmVzIGludGVudGlvbmFsbHkuCkBAIC0yODUsMjggKzI4NSwyOCBA
QCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHUi
OTkxODcgYW5kcmVhcy5rbGluZ0Bub2tpYS5jb20gXG4iKQogCiAgICAgICAgIHBhcnNlZF9lbnRy
aWVzID0gbGlzdChDaGFuZ2VMb2cucGFyc2VfZW50cmllc19mcm9tX2ZpbGUoY2hhbmdlbG9nX2Zp
bGUpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRfZW50cmllc1swXS5yZXZpc2lv
bigpLCAxMDAwMDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcnNlZF9lbnRyaWVzWzBd
LnJldmlld2VyX3RleHQoKSwgIlpvbHRhbiBIZXJjemVnIikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMocGFyc2VkX2VudHJpZXNbMF0uYXV0aG9yX25hbWUoKSwgdSJDc2FiYSBPc3p0cm9nb25c
dTAwZTFjIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNbMF0uYXV0
aG9yX2VtYWlsKCksICJvc3N5QHdlYmtpdC5vcmciKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhwYXJzZWRfZW50cmllc1sxXS5yZXZpc2lvbigpLCA5Mzc5OCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMocGFyc2VkX2VudHJpZXNbMV0uYXV0aG9yX25hbWUoKSwgIkFsZXhleSBQcm9za3Vy
eWFrb3YiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRfZW50cmllc1syXS5yZXZp
c2lvbigpLCA5OTE5MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNb
Ml0uYXV0aG9yX25hbWUoKSwgIkFuZHJlYXMgS2xpbmciKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhwYXJzZWRfZW50cmllc1szXS5yZXZpc2lvbigpLCA5OTE4NykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocGFyc2VkX2VudHJpZXNbM10uYXV0aG9yX25hbWUoKSwgIkFuZHJlYXMgS2xp
bmciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzBdLnJldmlzaW9u
KCksIDEwMDAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1swXS5y
ZXZpZXdlcl90ZXh0KCksICJab2x0YW4gSGVyY3plZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGFyc2VkX2VudHJpZXNbMF0uYXV0aG9yX25hbWUoKSwgdSJDc2FiYSBPc3p0cm9nb25cdTAw
ZTFjIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZWRfZW50cmllc1swXS5hdXRob3Jf
ZW1haWwoKSwgIm9zc3lAd2Via2l0Lm9yZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFy
c2VkX2VudHJpZXNbMV0ucmV2aXNpb24oKSwgOTM3OTgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGFyc2VkX2VudHJpZXNbMV0uYXV0aG9yX25hbWUoKSwgIkFsZXhleSBQcm9za3VyeWFrb3Yi
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzJdLnJldmlzaW9uKCks
IDk5MTkwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9lbnRyaWVzWzJdLmF1dGhv
cl9uYW1lKCksICJBbmRyZWFzIEtsaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJz
ZWRfZW50cmllc1szXS5yZXZpc2lvbigpLCA5OTE4NykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYXJzZWRfZW50cmllc1szXS5hdXRob3JfbmFtZSgpLCAiQW5kcmVhcyBLbGluZyIpCiAKICAg
ICBkZWYgX2Fzc2VydF9wYXJzZV9yZXZpZXdlcl90ZXh0X2FuZF9saXN0KHNlbGYsIHRleHQsIGV4
cGVjdGVkX3Jldmlld2VyX3RleHQsIGV4cGVjdGVkX3Jldmlld2VyX3RleHRfbGlzdD1Ob25lKToK
ICAgICAgICAgcmV2aWV3ZXJfdGV4dCwgcmV2aWV3ZXJfdGV4dF9saXN0ID0gQ2hhbmdlTG9nRW50
cnkuX3BhcnNlX3Jldmlld2VyX3RleHQodGV4dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
cmV2aWV3ZXJfdGV4dCwgZXhwZWN0ZWRfcmV2aWV3ZXJfdGV4dCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXZpZXdlcl90ZXh0LCBleHBlY3RlZF9yZXZpZXdlcl90ZXh0KQogICAgICAgICBp
ZiBleHBlY3RlZF9yZXZpZXdlcl90ZXh0X2xpc3Q6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhyZXZpZXdlcl90ZXh0X2xpc3QsIGV4cGVjdGVkX3Jldmlld2VyX3RleHRfbGlzdCkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV2aWV3ZXJfdGV4dF9saXN0LCBleHBlY3RlZF9y
ZXZpZXdlcl90ZXh0X2xpc3QpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhyZXZpZXdlcl90ZXh0X2xpc3QsIFtleHBlY3RlZF9yZXZpZXdlcl90ZXh0XSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV2aWV3ZXJfdGV4dF9saXN0LCBbZXhwZWN0ZWRf
cmV2aWV3ZXJfdGV4dF0pCiAKICAgICBkZWYgX2Fzc2VydF9wYXJzZV9yZXZpZXdlcl90ZXh0X2xp
c3Qoc2VsZiwgdGV4dCwgZXhwZWN0ZWRfcmV2aWV3ZXJfdGV4dF9saXN0KToKICAgICAgICAgcmV2
aWV3ZXJfdGV4dCwgcmV2aWV3ZXJfdGV4dF9saXN0ID0gQ2hhbmdlTG9nRW50cnkuX3BhcnNlX3Jl
dmlld2VyX3RleHQodGV4dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmV2aWV3ZXJfdGV4
dF9saXN0LCBleHBlY3RlZF9yZXZpZXdlcl90ZXh0X2xpc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmV2aWV3ZXJfdGV4dF9saXN0LCBleHBlY3RlZF9yZXZpZXdlcl90ZXh0X2xpc3QpCiAK
ICAgICBkZWYgdGVzdF9wYXJzZV9yZXZpZXdlcl90ZXh0KHNlbGYpOgogICAgICAgICBzZWxmLl9h
c3NlcnRfcGFyc2VfcmV2aWV3ZXJfdGV4dF9hbmRfbGlzdCgnICByZXZpZXdlZCAgYnkgUnlvc3Vr
ZSBOaXdhLCAgIE9saXZlciBIdW50LCBhbmQgIERpbWl0cmkgR2xhemtvdicsCkBAIC0zODgsOCAr
Mzg4LDggQEAgY2xhc3MgQ2hhbmdlTG9nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBk
ZWYgX2Fzc2VydF9mdXp6eV9yZXZpZXdlcl9tYXRjaChzZWxmLCByZXZpZXdlcl90ZXh0LCBleHBl
Y3RlZF90ZXh0X2xpc3QsIGV4cGVjdGVkX2NvbnRyaWJ1dG9ycyk6CiAgICAgICAgIHVudXNlZCwg
cmV2aWV3ZXJfdGV4dF9saXN0ID0gQ2hhbmdlTG9nRW50cnkuX3BhcnNlX3Jldmlld2VyX3RleHQo
cmV2aWV3ZXJfdGV4dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmV2aWV3ZXJfdGV4dF9s
aXN0LCBleHBlY3RlZF90ZXh0X2xpc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYu
X2VudHJ5X3dpdGhfcmV2aWV3ZXIocmV2aWV3ZXJfdGV4dCkucmV2aWV3ZXJzKCksIHNlbGYuX2Nv
bnRyaWJ1dG9ycyhleHBlY3RlZF9jb250cmlidXRvcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJldmlld2VyX3RleHRfbGlzdCwgZXhwZWN0ZWRfdGV4dF9saXN0KQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuX2VudHJ5X3dpdGhfcmV2aWV3ZXIocmV2aWV3ZXJfdGV4dCkucmV2
aWV3ZXJzKCksIHNlbGYuX2NvbnRyaWJ1dG9ycyhleHBlY3RlZF9jb250cmlidXRvcnMpKQogCiAg
ICAgZGVmIHRlc3RfZnV6enlfcmV2aWV3ZXJfbWF0Y2hfX25vbmUoc2VsZik6CiAgICAgICAgIHNl
bGYuX2Fzc2VydF9mdXp6eV9yZXZpZXdlcl9tYXRjaCgnUmV2aWV3ZWQgYnkgQlVJTEQgRklYJywg
WydCVUlMRCBGSVgnXSwgW10pCkBAIC00MjcsNyArNDI3LDcgQEAgY2xhc3MgQ2hhbmdlTG9nVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgX2Fzc2VydF9wYXJzZV9hdXRob3JzKHNl
bGYsIGF1dGhvcl90ZXh0LCBleHBlY3RlZF9jb250cmlidXRvcnMpOgogICAgICAgICBwYXJzZWRf
YXV0aG9ycyA9IFsoYXV0aG9yWyduYW1lJ10sIGF1dGhvclsnZW1haWwnXSkgZm9yIGF1dGhvciBp
biBzZWxmLl9lbnRyeV93aXRoX2F1dGhvcihhdXRob3JfdGV4dCkuYXV0aG9ycygpXQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhwYXJzZWRfYXV0aG9ycywgZXhwZWN0ZWRfY29udHJpYnV0b3Jz
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlZF9hdXRob3JzLCBleHBlY3RlZF9jb250
cmlidXRvcnMpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9hdXRob3JzKHNlbGYpOgogICAgICAgICBz
ZWxmLl9hc3NlcnRfcGFyc2VfYXV0aG9ycyh1J0Fhcm9uIENvbHdlbGwgIDxhY29sd2VsbEBjaHJv
bWl1bS5vcmc+JywgWyh1J0Fhcm9uIENvbHdlbGwnLCB1J2Fjb2x3ZWxsQGNocm9taXVtLm9yZycp
XSkKQEAgLTQ1OCwxMSArNDU4LDExIEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBjaGFuZ2Vsb2dfY29udGVudHMgPSB1IiVzXG4lcyIgJSAoc2VsZi5f
ZXhhbXBsZV9lbnRyeSwgc2VsZi5fZXhhbXBsZV9jaGFuZ2Vsb2cpCiAgICAgICAgIGNoYW5nZWxv
Z19maWxlID0gU3RyaW5nSU8oY2hhbmdlbG9nX2NvbnRlbnRzKQogICAgICAgICBsYXRlc3RfZW50
cnkgPSBDaGFuZ2VMb2cucGFyc2VfbGF0ZXN0X2VudHJ5X2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmls
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGF0ZXN0X2VudHJ5LmNvbnRlbnRzKCksIHNl
bGYuX2V4YW1wbGVfZW50cnkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxhdGVzdF9lbnRy
eS5hdXRob3JfbmFtZSgpLCAiUGV0ZXIgS2FzdGluZyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGxhdGVzdF9lbnRyeS5hdXRob3JfZW1haWwoKSwgInBrYXN0aW5nQGdvb2dsZS5jb20iKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsYXRlc3RfZW50cnkucmV2aWV3ZXJfdGV4dCgpLCB1
IlRvciBBcm5lIFZlc3RiXHhmOCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxhdGVzdF9l
bnRyeS50b3VjaGVkX2ZpbGVzKCksIFsiRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LnZjcHJvaiIsICJEdW1wUmVuZGVyVHJlZS93aW4vSW1hZ2VEaWZmLnZjcHJvaiIsICJEdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi52Y3Byb2oi
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsYXRlc3RfZW50cnkuY29udGVudHMoKSwgc2Vs
Zi5fZXhhbXBsZV9lbnRyeSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsYXRlc3RfZW50cnku
YXV0aG9yX25hbWUoKSwgIlBldGVyIEthc3RpbmciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxhdGVzdF9lbnRyeS5hdXRob3JfZW1haWwoKSwgInBrYXN0aW5nQGdvb2dsZS5jb20iKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxhdGVzdF9lbnRyeS5yZXZpZXdlcl90ZXh0KCksIHUiVG9y
IEFybmUgVmVzdGJceGY4IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsYXRlc3RfZW50cnku
dG91Y2hlZF9maWxlcygpLCBbIkR1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS52Y3By
b2oiLCAiRHVtcFJlbmRlclRyZWUvd2luL0ltYWdlRGlmZi52Y3Byb2oiLCAiRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4udmNwcm9qIl0pCiAK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxhdGVzdF9lbnRyeS5yZXZpZXdlcigpKSAgIyBNYWtl
IHN1cmUgdGhhdCBvdXIgVVRGOC1iYXNlZCBsb29rdXAgb2YgVG9yIHdvcmtzLgogCkBAIC00NzAs
OCArNDcwLDggQEAgY2xhc3MgQ2hhbmdlTG9nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGNoYW5nZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9leGFtcGxlX2VudHJ5
LCBzZWxmLl9yb2xsZWRfb3Zlcl9mb290ZXIpCiAgICAgICAgIGNoYW5nZWxvZ19maWxlID0gU3Ry
aW5nSU8oY2hhbmdlbG9nX2NvbnRlbnRzKQogICAgICAgICBsYXRlc3RfZW50cnkgPSBDaGFuZ2VM
b2cucGFyc2VfbGF0ZXN0X2VudHJ5X2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmlsZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobGF0ZXN0X2VudHJ5LmNvbnRlbnRzKCksIHNlbGYuX2V4YW1wbGVf
ZW50cnkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxhdGVzdF9lbnRyeS5hdXRob3JfbmFt
ZSgpLCAiUGV0ZXIgS2FzdGluZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGF0ZXN0X2Vu
dHJ5LmNvbnRlbnRzKCksIHNlbGYuX2V4YW1wbGVfZW50cnkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGF0ZXN0X2VudHJ5LmF1dGhvcl9uYW1lKCksICJQZXRlciBLYXN0aW5nIikKIAogICAg
IEBzdGF0aWNtZXRob2QKICAgICBkZWYgX3dyaXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoYnl0
ZV9hcnJheSk6CkBAIC01NDMsMTQgKzU0MywxNCBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYWN0dWFsX2NvbnRlbnRzID0gc2VsZi5fcmVhZF9maWxl
X2NvbnRlbnRzKGNoYW5nZWxvZ19wYXRoLCAidXRmLTgiKQogICAgICAgICBleHBlY3RlZF9jb250
ZW50cyA9IGNoYW5nZWxvZ19jb250ZW50cy5yZXBsYWNlKCdOT0JPRFkgKE9PUFMhKScsIHJldmll
d2VyX25hbWUpCiAgICAgICAgIG9zLnJlbW92ZShjaGFuZ2Vsb2dfcGF0aCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoYWN0dWFsX2NvbnRlbnRzLnNwbGl0bGluZXMoKSwgZXhwZWN0ZWRfY29u
dGVudHMuc3BsaXRsaW5lcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9jb250
ZW50cy5zcGxpdGxpbmVzKCksIGV4cGVjdGVkX2NvbnRlbnRzLnNwbGl0bGluZXMoKSkKIAogICAg
ICAgICBjaGFuZ2Vsb2dfY29udGVudHNfd2l0aG91dF9yZXZpZXdlcl9saW5lID0gdSIlc1xuJXMi
ICUgKHNlbGYuX25ld19lbnRyeV9ib2lsZXJwbGF0ZV93aXRob3V0X3Jldmlld2VyX2xpbmUsIHNl
bGYuX2V4YW1wbGVfY2hhbmdlbG9nKQogICAgICAgICBjaGFuZ2Vsb2dfcGF0aCA9IHNlbGYuX3dy
aXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoY2hhbmdlbG9nX2NvbnRlbnRzX3dpdGhvdXRfcmV2
aWV3ZXJfbGluZS5lbmNvZGUoInV0Zi04IikpCiAgICAgICAgIENoYW5nZUxvZyhjaGFuZ2Vsb2df
cGF0aCkuc2V0X3Jldmlld2VyKHJldmlld2VyX25hbWUpCiAgICAgICAgIGFjdHVhbF9jb250ZW50
cyA9IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhjaGFuZ2Vsb2dfcGF0aCwgInV0Zi04IikKICAg
ICAgICAgb3MucmVtb3ZlKGNoYW5nZWxvZ19wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhhY3R1YWxfY29udGVudHMuc3BsaXRsaW5lcygpLCBleHBlY3RlZF9jb250ZW50cy5zcGxpdGxp
bmVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2NvbnRlbnRzLnNwbGl0bGlu
ZXMoKSwgZXhwZWN0ZWRfY29udGVudHMuc3BsaXRsaW5lcygpKQogCiAgICAgICAgIGNoYW5nZWxv
Z19jb250ZW50c193aXRob3V0X3Jldmlld2VyX2xpbmUgPSB1IiVzXG4lcyIgJSAoc2VsZi5fbmV3
X2VudHJ5X2JvaWxlcnBsYXRlX3dpdGhvdXRfcmV2aWV3ZXJfbXVsdGlwbGVfYnVndXJsLCBzZWxm
Ll9leGFtcGxlX2NoYW5nZWxvZykKICAgICAgICAgY2hhbmdlbG9nX3BhdGggPSBzZWxmLl93cml0
ZV90bXBfZmlsZV93aXRoX2NvbnRlbnRzKGNoYW5nZWxvZ19jb250ZW50c193aXRob3V0X3Jldmll
d2VyX2xpbmUuZW5jb2RlKCJ1dGYtOCIpKQpAQCAtNTU5LDcgKzU1OSw3IEBAIGNsYXNzIENoYW5n
ZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjaGFuZ2Vsb2dfY29udGVudHMg
PSB1IiVzXG4lcyIgJSAoc2VsZi5fbmV3X2VudHJ5X2JvaWxlcnBsYXRlX3dpdGhfbXVsdGlwbGVf
YnVndXJsLCBzZWxmLl9leGFtcGxlX2NoYW5nZWxvZykKICAgICAgICAgZXhwZWN0ZWRfY29udGVu
dHMgPSBjaGFuZ2Vsb2dfY29udGVudHMucmVwbGFjZSgnTk9CT0RZIChPT1BTISknLCByZXZpZXdl
cl9uYW1lKQogICAgICAgICBvcy5yZW1vdmUoY2hhbmdlbG9nX3BhdGgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGFjdHVhbF9jb250ZW50cy5zcGxpdGxpbmVzKCksIGV4cGVjdGVkX2NvbnRl
bnRzLnNwbGl0bGluZXMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfY29udGVu
dHMuc3BsaXRsaW5lcygpLCBleHBlY3RlZF9jb250ZW50cy5zcGxpdGxpbmVzKCkpCiAKICAgICBk
ZWYgdGVzdF9zZXRfc2hvcnRfZGVzY3JpcHRpb25fYW5kX2J1Z191cmwoc2VsZik6CiAgICAgICAg
IGNoYW5nZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9uZXdfZW50cnlfYm9pbGVy
cGxhdGVfd2l0aF9idWd1cmwsIHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQpAQCAtNTcxLDcgKzU3
MSw3IEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBl
eHBlY3RlZF9tZXNzYWdlID0gIiVzXG4gICAgICAgICVzIiAlIChzaG9ydF9kZXNjcmlwdGlvbiwg
YnVnX3VybCkKICAgICAgICAgZXhwZWN0ZWRfY29udGVudHMgPSBjaGFuZ2Vsb2dfY29udGVudHMu
cmVwbGFjZSgiTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuIiwgZXhwZWN0ZWRfbWVz
c2FnZSkKICAgICAgICAgb3MucmVtb3ZlKGNoYW5nZWxvZ19wYXRoKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhhY3R1YWxfY29udGVudHMuc3BsaXRsaW5lcygpLCBleHBlY3RlZF9jb250ZW50
cy5zcGxpdGxpbmVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2NvbnRlbnRz
LnNwbGl0bGluZXMoKSwgZXhwZWN0ZWRfY29udGVudHMuc3BsaXRsaW5lcygpKQogCiAgICAgICAg
IGNoYW5nZWxvZ19jb250ZW50cyA9IHUiJXNcbiVzIiAlIChzZWxmLl9uZXdfZW50cnlfYm9pbGVy
cGxhdGUsIHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQogICAgICAgICBjaGFuZ2Vsb2dfcGF0aCA9
IHNlbGYuX3dyaXRlX3RtcF9maWxlX3dpdGhfY29udGVudHMoY2hhbmdlbG9nX2NvbnRlbnRzLmVu
Y29kZSgidXRmLTgiKSkKQEAgLTU4Miw0ICs1ODIsNCBAQCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICIlc1xuICAgICAg
ICAlcyIgJSAoc2hvcnRfZGVzY3JpcHRpb24sIGJ1Z191cmwpCiAgICAgICAgIGV4cGVjdGVkX2Nv
bnRlbnRzID0gY2hhbmdlbG9nX2NvbnRlbnRzLnJlcGxhY2UoIk5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiAoT09QUyEpLlxuICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuIiwgZXhwZWN0
ZWRfbWVzc2FnZSkKICAgICAgICAgb3MucmVtb3ZlKGNoYW5nZWxvZ19wYXRoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhhY3R1YWxfY29udGVudHMuc3BsaXRsaW5lcygpLCBleHBlY3RlZF9j
b250ZW50cy5zcGxpdGxpbmVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2Nv
bnRlbnRzLnNwbGl0bGluZXMoKSwgZXhwZWN0ZWRfY29udGVudHMuc3BsaXRsaW5lcygpKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJz
ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9k
aWZmX3BhcnNlcl91bml0dGVzdC5weQppbmRleCBkNjFhMDk4OWI1NDA2OGY3NzM4ZmZjNGRmOWQx
ZTNlZmIwMjQ2YmZmLi5jYmEwZjI0OWUwZTI4YzZhYmI3YzljNDdmMTdhZjZmMDI4YWEwNGM0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3Bh
cnNlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9kaWZmX3BhcnNlcl91bml0dGVzdC5weQpAQCAtMzYsNDQgKzM2LDQ0IEBAIGNsYXNzIERp
ZmZQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9kaWZmX3BhcnNl
cihzZWxmLCBwYXJzZXIgPSBOb25lKToKICAgICAgICAgaWYgbm90IHBhcnNlcjoKICAgICAgICAg
ICAgIHBhcnNlciA9IGRpZmZfcGFyc2VyLkRpZmZQYXJzZXIoRElGRl9URVNUX0RBVEEuc3BsaXRs
aW5lcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygzLCBsZW4ocGFyc2VyLmZpbGVzKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4ocGFyc2VyLmZpbGVzKSkKIAogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJ1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmgnIGluIHBhcnNlci5maWxlcykKICAgICAgICAgZGlmZiA9IHBhcnNlci5maWxlc1sn
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaCddCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDcsIGxlbihkaWZmLmxpbmVzKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCg3LCBsZW4oZGlmZi5saW5lcykpCiAgICAgICAgICMgVGhlIGZpcnN0IHR3byB1bmNo
YWdlZCBsaW5lcy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDQ3LCA0NyksIGRpZmYubGlu
ZXNbMF1bMDoyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsIGRpZmYubGluZXNbMF1b
Ml0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCg0OCwgNDgpLCBkaWZmLmxpbmVzWzFdWzA6
Ml0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCcgICAgdW5zaWduZWQgYWxpZ24gOiAzOyAv
LyBFQm94QWxpZ25tZW50JywgZGlmZi5saW5lc1sxXVsyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgoNDcsIDQ3KSwgZGlmZi5saW5lc1swXVswOjJdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcnLCBkaWZmLmxpbmVzWzBdWzJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCg0OCwg
NDgpLCBkaWZmLmxpbmVzWzFdWzA6Ml0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyAgICB1
bnNpZ25lZCBhbGlnbiA6IDM7IC8vIEVCb3hBbGlnbm1lbnQnLCBkaWZmLmxpbmVzWzFdWzJdKQog
ICAgICAgICAjIFRoZSBkZWxldGVkIGxpbmUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDUw
LCAwKSwgZGlmZi5saW5lc1szXVswOjJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnICAg
IHVuc2lnbmVkIG9yaWVudDogMTsgLy8gRUJveE9yaWVudCcsIGRpZmYubGluZXNbM11bMl0pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDUwLCAwKSwgZGlmZi5saW5lc1szXVswOjJdKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcgICAgdW5zaWduZWQgb3JpZW50OiAxOyAvLyBFQm94T3Jp
ZW50JywgZGlmZi5saW5lc1szXVsyXSkKIAogICAgICAgICAjIFRoZSBmaXJzdCBmaWxlIGxvb2tz
IE9LLiBMZXQncyBjaGVjayB0aGUgbmV4dCwgbW9yZSBjb21wbGljYXRlZCBmaWxlLgogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJ1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuY3BwJyBpbiBwYXJzZXIuZmlsZXMpCiAgICAgICAgIGRpZmYgPSBwYXJzZXIuZmls
ZXNbJ1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwJ10K
ICAgICAgICAgIyBUaGVyZSBhcmUgMyBjaHVua3MuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDcgKyA3ICsgOSwgbGVuKGRpZmYubGluZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDcg
KyA3ICsgOSwgbGVuKGRpZmYubGluZXMpKQogICAgICAgICAjIEFyb3VuZCBhbiBhZGRlZCBsaW5l
LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoNjAsIDYxKSwgZGlmZi5saW5lc1s5XVswOjJd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoMCwgNjIpLCBkaWZmLmxpbmVzWzEwXVswOjJd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoNjEsIDYzKSwgZGlmZi5saW5lc1sxMV1bMDoy
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoNjAsIDYxKSwgZGlmZi5saW5lc1s5XVswOjJd
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgwLCA2MiksIGRpZmYubGluZXNbMTBdWzA6Ml0p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDYxLCA2MyksIGRpZmYubGluZXNbMTFdWzA6Ml0p
CiAgICAgICAgICMgTG9vayB0aHJvdWdoIHRoZSBsYXN0IGNodW5rLCB3aGljaCBjb250YWlucyBi
b3RoIGFkZCdzIGFuZCBkZWxldGUncy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDgxLCA4
MyksIGRpZmYubGluZXNbMTRdWzA6Ml0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCg4Miwg
ODQpLCBkaWZmLmxpbmVzWzE1XVswOjJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoODMs
IDg1KSwgZGlmZi5saW5lc1sxNl1bMDoyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDg0
LCAwKSwgZGlmZi5saW5lc1sxN11bMDoyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDAs
IDg2KSwgZGlmZi5saW5lc1sxOF1bMDoyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDAs
IDg3KSwgZGlmZi5saW5lc1sxOV1bMDoyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDg1
LCA4OCksIGRpZmYubGluZXNbMjBdWzA6Ml0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCg4
NiwgODkpLCBkaWZmLmxpbmVzWzIxXVswOjJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygo
ODcsIDkwKSwgZGlmZi5saW5lc1syMl1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
ODEsIDgzKSwgZGlmZi5saW5lc1sxNF1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
ODIsIDg0KSwgZGlmZi5saW5lc1sxNV1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
ODMsIDg1KSwgZGlmZi5saW5lc1sxNl1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
ODQsIDApLCBkaWZmLmxpbmVzWzE3XVswOjJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgw
LCA4NiksIGRpZmYubGluZXNbMThdWzA6Ml0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDAs
IDg3KSwgZGlmZi5saW5lc1sxOV1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoODUs
IDg4KSwgZGlmZi5saW5lc1syMF1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoODYs
IDg5KSwgZGlmZi5saW5lc1syMV1bMDoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoODcs
IDkwKSwgZGlmZi5saW5lc1syMl1bMDoyXSkKIAogICAgICAgICAjIENoZWNrIGlmIGEgbmV3bHkg
YWRkZWQgZmlsZSBpcyBjb3JyZWN0bHkgaGFuZGxlZC4KICAgICAgICAgZGlmZiA9IHBhcnNlci5m
aWxlc1snTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZmxleGJveC9ib3gtb3JpZW50LWJ1
dHRvbi1leHBlY3RlZC5jaGVja3N1bSddCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxl
bihkaWZmLmxpbmVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKDAsIDEpLCBkaWZmLmxp
bmVzWzBdWzA6Ml0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGRpZmYubGluZXMp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgwLCAxKSwgZGlmZi5saW5lc1swXVswOjJdKQog
CiAgICAgZGVmIHRlc3RfZ2l0X21uZW1vbmljcHJlZml4KHNlbGYpOgogICAgICAgICBwID0gcmUu
Y29tcGlsZShyJyAoW2F8Yl0pLycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQppbmRleCA4MDJmZTJjZWUy
ZDhhNWU3MzVkMGY1Y2M5MmYzZTdjODY0YmU5ZjJkLi5jZmYyNTRlNjM1NTJjNzViM2FhYTU5MDlm
NmZhNDZhMGI3NTk5ZmE0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3QucHkKQEAgLTYxNSwxMiArNjE1LDEy
IEBAIGNsYXNzIFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNlbGYuX3NldHVwX3dlYmtpdHRv
b2xzX3NjcmlwdHNfc3ltbGluayhzZWxmLnNjbSkKICAgICAgICAgc2VsZi5jaGVja291dC5hcHBs
eV9wYXRjaChzZWxmLl9jcmVhdGVfcGF0Y2gob25lX2xpbmVfb3ZlcmxhcF9wYXRjaCkpCiAgICAg
ICAgIGV4cGVjdGVkX2NoYW5nZWxvZ19jb250ZW50cyA9ICIlc1xuJXMiICUgKHNlbGYuX3NldF9k
YXRlX2FuZF9yZXZpZXdlcihvbmVfbGluZV9vdmVybGFwX2VudHJ5KSwgY2hhbmdlbG9nX2NvbnRl
bnRzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZWFkX2Zyb21fcGF0aCgnQ2hhbmdlTG9n
JyksIGV4cGVjdGVkX2NoYW5nZWxvZ19jb250ZW50cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZWFkX2Zyb21fcGF0aCgnQ2hhbmdlTG9nJyksIGV4cGVjdGVkX2NoYW5nZWxvZ19jb250ZW50
cykKIAogICAgICAgICBzZWxmLnNjbS5yZXZlcnRfZmlsZXMoWydDaGFuZ2VMb2cnXSkKICAgICAg
ICAgc2VsZi5jaGVja291dC5hcHBseV9wYXRjaChzZWxmLl9jcmVhdGVfcGF0Y2godHdvX2xpbmVf
b3ZlcmxhcF9wYXRjaCkpCiAgICAgICAgIGV4cGVjdGVkX2NoYW5nZWxvZ19jb250ZW50cyA9ICIl
c1xuJXMiICUgKHNlbGYuX3NldF9kYXRlX2FuZF9yZXZpZXdlcih0d29fbGluZV9vdmVybGFwX2Vu
dHJ5KSwgY2hhbmdlbG9nX2NvbnRlbnRzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZWFk
X2Zyb21fcGF0aCgnQ2hhbmdlTG9nJyksIGV4cGVjdGVkX2NoYW5nZWxvZ19jb250ZW50cykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkX2Zyb21fcGF0aCgnQ2hhbmdlTG9nJyksIGV4cGVj
dGVkX2NoYW5nZWxvZ19jb250ZW50cykKIAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAg
U1ZOVGVzdFJlcG9zaXRvcnkuc2V0dXAoc2VsZikKQEAgLTExOTIsNyArMTE5Miw3IEBAIGNsYXNz
IEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAKICAgICBkZWYgdGVzdF9yZXZpc2lvbnNfY2hhbmdpbmdf
ZmlsZXNfd2l0aF9sb2NhbF9jb21taXQoc2VsZik6CiAgICAgICAgIHNlbGYuX29uZV9sb2NhbF9j
b21taXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLnNjbS5yZXZpc2lvbnNfY2hh
bmdpbmdfZmlsZSgndGVzdF9maWxlX2NvbW1pdDEnKSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi5zY20ucmV2aXNpb25zX2NoYW5naW5nX2ZpbGUoJ3Rlc3RfZmlsZV9jb21taXQx
JyksIFtdKQogCiAgICAgZGVmIHRlc3RfY29tbWl0X3dpdGhfbWVzc2FnZShzZWxmKToKICAgICAg
ICAgc2VsZi5fb25lX2xvY2FsX2NvbW1pdF9wbHVzX3dvcmtpbmdfY29weV9jaGFuZ2VzKCkKQEAg
LTEzMDIsNyArMTMwMiw3IEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgZGVmIHRl
c3RfdXBzdHJlYW1fYnJhbmNoKHNlbGYpOgogICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdj
aGVja291dCcsICctdCcsICctYicsICdteS1icmFuY2gnXSkKICAgICAgICAgcnVuX2NvbW1hbmQo
WydnaXQnLCAnY2hlY2tvdXQnLCAnLXQnLCAnLWInLCAnbXktc2Vjb25kLWJyYW5jaCddKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLnNjbS5fdXBzdHJlYW1fYnJhbmNoKCksICdteS1i
cmFuY2gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLl91cHN0cmVhbV9icmFu
Y2goKSwgJ215LWJyYW5jaCcpCiAKICAgICBkZWYgdGVzdF9yZW1vdGVfYnJhbmNoX3JlZihzZWxm
KToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5yZW1vdGVfYnJhbmNoX3JlZigp
LCAncmVmcy9yZW1vdGVzL3RydW5rJykKQEAgLTEzNTMsNyArMTM1Myw3IEBAIGNsYXNzIEdpdFNW
TlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIG9zLnJlbW92ZSgndGVzdF9maWxlX2NvbW1pdDEnKQog
ICAgICAgICBwYXRjaCA9IHNjbS5jcmVhdGVfcGF0Y2goKQogICAgICAgICBwYXRjaF93aXRoX2No
YW5nZWRfZmlsZXMgPSBzY20uY3JlYXRlX3BhdGNoKGNoYW5nZWRfZmlsZXM9Wyd0ZXN0X2ZpbGVf
Y29tbWl0MScsICd0ZXN0X2ZpbGVfY29tbWl0MiddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhwYXRjaCwgcGF0Y2hfd2l0aF9jaGFuZ2VkX2ZpbGVzKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBhdGNoLCBwYXRjaF93aXRoX2NoYW5nZWRfZmlsZXMpCiAKICAgICBkZWYgdGVzdF9jcmVh
dGVfcGF0Y2hfZ2l0X2NvbW1pdChzZWxmKToKICAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1p
dHMoKQpAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgY2xhc3MgR2l0VGVzdFdpdGhNb2NrKHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IHNjbS5jcmVhdGVfcGF0Y2gsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAKICAg
ICBkZWYgdGVzdF9wdXNoX2xvY2FsX2NvbW1pdHNfdG9fc2VydmVyX3dpdGhfdXNlcm5hbWVfYW5k
X3Bhc3N3b3JkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2Vfc2Nt
KCkucHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcih1c2VybmFtZT0nZGJhdGVzQHdlYmtpdC5v
cmcnLCBwYXNzd29yZD0nYmxhaCcpLCAiTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3NjbSgpLnB1c2hfbG9jYWxfY29tbWl0
c190b19zZXJ2ZXIodXNlcm5hbWU9J2RiYXRlc0B3ZWJraXQub3JnJywgcGFzc3dvcmQ9J2JsYWgn
KSwgIk1PQ0sgb3V0cHV0IG9mIGNoaWxkIHByb2Nlc3MiKQogCiAgICAgZGVmIHRlc3RfcHVzaF9s
b2NhbF9jb21taXRzX3RvX3NlcnZlcl93aXRob3V0X3VzZXJuYW1lX2FuZF9wYXNzd29yZChzZWxm
KToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXV0aGVudGljYXRpb25FcnJvciwgc2VsZi5t
YWtlX3NjbSgpLnB1c2hfbG9jYWxfY29tbWl0c190b19zZXJ2ZXIpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKaW5kZXgg
MjcyMDUyMzM5NmUyMjhkNzdiNTRmMjhmN2U1ZWQ5YjM0MWExN2M1Mi4uNThkNThkNDczNDQ1MTRi
MmFmZmZmMjMyZmU0NTQwMDBhYTk0ZmViMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQpAQCAtMzQsNDIgKzM0LDQy
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgKgogCiBjbGFzcyBE
ZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X21hY19w
b3J0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhNYWNQb3J0KCkuZmxhZygpLCAi
LS1wb3J0PW1hYyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE1hY1BvcnQoKS5ydW5fd2Vi
a2l0X3Rlc3RzX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgicnVuLXdlYmtpdC10ZXN0cyIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhNYWNQb3J0
KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxf
Y29tbWFuZCgiYnVpbGQtd2Via2l0IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE1hY1Bv
cnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRl
ZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWci
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxs
X2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLXJlbGVhc2UiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChNYWNQb3J0KCkuZmxhZygpLCAiLS1wb3J0PW1hYyIpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTWFjUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXByZWNh
dGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKCksIERl
cHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWls
ZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
YnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChN
YWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVw
cmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0t
cmVsZWFzZSJdKQogCiAgICAgZGVmIHRlc3RfZ3RrX3BvcnQoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKEd0a1BvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrIikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoR3RrUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXBy
ZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikgKyBb
Ii0tZ3RrIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKEd0a1BvcnQoKS5idWlsZF93ZWJr
aXRfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWls
ZC13ZWJraXQiKSArIFsiLS1ndGsiLCAiLS11cGRhdGUtZ3RrIiwgRGVwcmVjYXRlZFBvcnQoKS5t
YWtlQXJncygpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoR3RrUG9ydCgpLmJ1aWxkX3dl
YmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlw
dF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyIsICItLWd0ayIsICIt
LXVwZGF0ZS1ndGsiLCBEZXByZWNhdGVkUG9ydCgpLm1ha2VBcmdzKCldKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEd0a1BvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChHdGtQb3J0KCkucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIERlcHJl
Y2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKSArIFsi
LS1ndGsiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtQb3J0KCkuYnVpbGRfd2Via2l0
X2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQt
d2Via2l0IikgKyBbIi0tZ3RrIiwgIi0tdXBkYXRlLWd0ayIsIERlcHJlY2F0ZWRQb3J0KCkubWFr
ZUFyZ3MoKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrUG9ydCgpLmJ1aWxkX3dlYmtp
dF9jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9z
aGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyIsICItLWd0ayIsICItLXVw
ZGF0ZS1ndGsiLCBEZXByZWNhdGVkUG9ydCgpLm1ha2VBcmdzKCldKQogCiAgICAgZGVmIHRlc3Rf
ZWZsX3BvcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKEVmbFBvcnQoKS5mbGFn
KCksICItLXBvcnQ9ZWZsIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoRWZsUG9ydCgpLmJ1
aWxkX3dlYmtpdF9jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1h
bmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWVmbCIsICItLXVwZGF0ZS1lZmwiLCBEZXByZWNhdGVk
UG9ydCgpLm1ha2VBcmdzKCldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhFZmxQb3J0KCku
YnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0
KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIiwgIi0t
ZWZsIiwgIi0tdXBkYXRlLWVmbCIsIERlcHJlY2F0ZWRQb3J0KCkubWFrZUFyZ3MoKV0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoRWZsUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1lZmwiKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKEVmbFBvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZCgpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsi
LS1lZmwiLCAiLS11cGRhdGUtZWZsIiwgRGVwcmVjYXRlZFBvcnQoKS5tYWtlQXJncygpXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChFZmxQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVp
bGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
ImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIiwgIi0tZWZsIiwgIi0tdXBkYXRlLWVmbCIsIERl
cHJlY2F0ZWRQb3J0KCkubWFrZUFyZ3MoKV0pCiAKICAgICBkZWYgdGVzdF9xdF9wb3J0KHNlbGYp
OgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhRdFBvcnQoKS5mbGFnKCksICItLXBvcnQ9cXQi
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhRdFBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtp
dC10ZXN0cyIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhRdFBvcnQoKS5idWlsZF93ZWJr
aXRfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWls
ZC13ZWJraXQiKSArIFsiLS1xdCIsIERlcHJlY2F0ZWRQb3J0KCkubWFrZUFyZ3MoKV0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFF0UG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxk
X3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJi
dWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyIsICItLXF0IiwgRGVwcmVjYXRlZFBvcnQoKS5tYWtl
QXJncygpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChRdFBvcnQoKS5mbGFnKCksICItLXBv
cnQ9cXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFF0UG9ydCgpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4t
d2Via2l0LXRlc3RzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUXRQb3J0KCkuYnVpbGRf
d2Via2l0X2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
YnVpbGQtd2Via2l0IikgKyBbIi0tcXQiLCBEZXByZWNhdGVkUG9ydCgpLm1ha2VBcmdzKCldKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFF0UG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyIsICItLXF0IiwgRGVwcmVjYXRlZFBvcnQoKS5t
YWtlQXJncygpXSkKIAogICAgIGRlZiB0ZXN0X2Nocm9taXVtX3BvcnQoc2VsZik6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKENocm9taXVtUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1jaHJvbWl1
bSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKENocm9taXVtUG9ydCgpLnJ1bl93ZWJraXRf
dGVzdHNfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJu
ZXctcnVuLXdlYmtpdC10ZXN0cyIpICsgWyItLWNocm9taXVtIiwgIi0tc2tpcC1mYWlsaW5nLXRl
c3RzIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKENocm9taXVtUG9ydCgpLmJ1aWxkX3dl
YmtpdF9jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1
aWxkLXdlYmtpdCIpICsgWyItLWNocm9taXVtIiwgIi0tdXBkYXRlLWNocm9taXVtIl0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKENocm9taXVtUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5k
KGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21t
YW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyIsICItLWNocm9taXVtIiwgIi0tdXBkYXRl
LWNocm9taXVtIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKENocm9taXVtUG9ydCgpLnVw
ZGF0ZV93ZWJraXRfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21t
YW5kKCJ1cGRhdGUtd2Via2l0IikgKyBbIi0tY2hyb21pdW0iXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChDaHJvbWl1bVBvcnQoKS5mbGFnKCksICItLXBvcnQ9Y2hyb21pdW0iKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKENocm9taXVtUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJuZXctcnVuLXdlYmtp
dC10ZXN0cyIpICsgWyItLWNocm9taXVtIiwgIi0tc2tpcC1mYWlsaW5nLXRlc3RzIl0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ2hyb21pdW1Qb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQo
KSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0Iikg
KyBbIi0tY2hyb21pdW0iLCAiLS11cGRhdGUtY2hyb21pdW0iXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChDaHJvbWl1bVBvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0i
ZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Vi
a2l0IikgKyBbIi0tZGVidWciLCAiLS1jaHJvbWl1bSIsICItLXVwZGF0ZS1jaHJvbWl1bSJdKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENocm9taXVtUG9ydCgpLnVwZGF0ZV93ZWJraXRfY29t
bWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ1cGRhdGUtd2Vi
a2l0IikgKyBbIi0tY2hyb21pdW0iXSkKIAogICAgIGRlZiB0ZXN0X2Nocm9taXVtX2FuZHJvaWRf
cG9ydChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoQ2hyb21pdW1BbmRyb2lkUG9y
dCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKCksIENocm9taXVtUG9ydCgpLmJ1aWxkX3dlYmtpdF9j
b21tYW5kKCkgKyBbIi0tY2hyb21pdW0tYW5kcm9pZCJdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhDaHJvbWl1bUFuZHJvaWRQb3J0KCkudXBkYXRlX3dlYmtpdF9jb21tYW5kKCksIENocm9t
aXVtUG9ydCgpLnVwZGF0ZV93ZWJraXRfY29tbWFuZCgpICsgWyItLWNocm9taXVtLWFuZHJvaWQi
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDaHJvbWl1bUFuZHJvaWRQb3J0KCkuYnVpbGRf
d2Via2l0X2NvbW1hbmQoKSwgQ2hyb21pdW1Qb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoKSAr
IFsiLS1jaHJvbWl1bS1hbmRyb2lkIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ2hyb21p
dW1BbmRyb2lkUG9ydCgpLnVwZGF0ZV93ZWJraXRfY29tbWFuZCgpLCBDaHJvbWl1bVBvcnQoKS51
cGRhdGVfd2Via2l0X2NvbW1hbmQoKSArIFsiLS1jaHJvbWl1bS1hbmRyb2lkIl0pCiAKICAgICBk
ZWYgdGVzdF9jaHJvbWl1bV94dmZiX3BvcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKENocm9taXVtWFZGQlBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoKSwgWyd4dmZi
LXJ1biddICsgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgnbmV3LXJ1bi13
ZWJraXQtdGVzdHMnKSArIFsnLS1jaHJvbWl1bScsICctLXNraXAtZmFpbGluZy10ZXN0cyddKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENocm9taXVtWFZGQlBvcnQoKS5ydW5fd2Via2l0X3Rl
c3RzX2NvbW1hbmQoKSwgWyd4dmZiLXJ1biddICsgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hl
bGxfY29tbWFuZCgnbmV3LXJ1bi13ZWJraXQtdGVzdHMnKSArIFsnLS1jaHJvbWl1bScsICctLXNr
aXAtZmFpbGluZy10ZXN0cyddKQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJsc191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy91cmxzX3VuaXR0ZXN0
LnB5CmluZGV4IDJiOTRiODYwZTY5NGZlZDVkMGMwYjBiZTE2ZjJiY2E2M2YzNjNiNWQuLmI0YmY4
OTc4YWExNDMwYjFmODhmYTE5ZDQzNTMxNGU2M2U5MzY1OTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy91cmxzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy91cmxzX3VuaXR0ZXN0LnB5CkBAIC0zNCwy
OCArMzQsMjggQEAgZnJvbSAudXJscyBpbXBvcnQgcGFyc2VfYnVnX2lkLCBwYXJzZV9hdHRhY2ht
ZW50X2lkCiBjbGFzcyBVUkxzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rf
cGFyc2VfYnVnX2lkKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGVzZSB3b3VsZCBiZSBhbGwg
YmV0dGVyIGFzIGRvY3Rlc3RzCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBwYXJz
ZV9idWdfaWQoImh0dHA6Ly93ZWJraXQub3JnL2IvMTIzNDUiKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoMTIzNDUsIHBhcnNlX2J1Z19pZCgiZm9vXG5cbmh0dHA6Ly93ZWJraXQub3JnL2Iv
MTIzNDVcbmJhclxuXG4iKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMTIzNDUsIHBhcnNl
X2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDUiKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMTIzNDUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDUmY3R5cGU9eG1sIikpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBwYXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzQ1JmN0eXBlPXhtbCZleGNsdWRlZmllbGQ9YXR0YWNo
bWVudGRhdGEiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMTIzNDUsIHBhcnNlX2J1Z19p
ZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDVleGNsdWRlZmll
bGQ9YXR0YWNobWVudGRhdGEmY3R5cGU9eG1sIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MTIzNDUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL3dlYmtpdC5vcmcvYi8xMjM0NSIpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEyMzQ1LCBwYXJzZV9idWdfaWQoImZvb1xuXG5odHRwOi8vd2Vi
a2l0Lm9yZy9iLzEyMzQ1XG5iYXJcblxuIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIz
NDUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzNDUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMjM0NSwgcGFyc2VfYnVnX2lkKCJo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NSZjdHlwZT14bWwiKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMjM0NSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NSZjdHlwZT14bWwmZXhjbHVkZWZpZWxk
PWF0dGFjaG1lbnRkYXRhIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIzNDUsIHBhcnNl
X2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDVleGNs
dWRlZmllbGQ9YXR0YWNobWVudGRhdGEmY3R5cGU9eG1sIikpCiAKICAgICAgICAgIyBPdXIgdXJs
IHBhcnNlciBpcyBzdXBlci1mcmFnaWxlLCBidXQgYXQgbGVhc3Qgd2UncmUgdGVzdGluZyBpdC4K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoTm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvYi8xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhOb25lLCBw
YXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2N0eXBlPXht
bCZpZD0xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhOb25lLCBwYXJzZV9idWdf
aWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2N0eXBlPXhtbCZpZD0xMjM0
NSZleGNsdWRlZmllbGQ9YXR0YWNobWVudGRhdGEiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoTm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9jdHlwZT14bWwmZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhJmlkPTEyMzQ1IikpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE5vbmUsIHBhcnNlX2J1Z19pZCgiaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/ZXhjbHVkZWZpZWxkPWF0dGFjaG1lbnRkYXRhJmN0eXBlPXht
bCZpZD0xMjM0NSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhOb25lLCBwYXJzZV9idWdf
aWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2V4Y2x1ZGVmaWVsZD1hdHRh
Y2htZW50ZGF0YSZpZD0xMjM0NSZjdHlwZT14bWwiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBwYXJzZV9idWdfaWQoImh0dHA6Ly93d3cud2Via2l0Lm9yZy9iLzEyMzQ1IikpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcGFyc2VfYnVnX2lkKCJodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9jdHlwZT14bWwmaWQ9MTIzNDUiKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBwYXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2N0eXBlPXhtbCZpZD0xMjM0NSZleGNsdWRlZmllbGQ9YXR0YWNobWVudGRh
dGEiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwYXJzZV9idWdfaWQoImh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2N0eXBlPXhtbCZleGNsdWRlZmllbGQ9YXR0
YWNobWVudGRhdGEmaWQ9MTIzNDUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBw
YXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2V4Y2x1ZGVm
aWVsZD1hdHRhY2htZW50ZGF0YSZjdHlwZT14bWwmaWQ9MTIzNDUiKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChOb25lLCBwYXJzZV9idWdfaWQoImh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2V4Y2x1ZGVmaWVsZD1hdHRhY2htZW50ZGF0YSZpZD0xMjM0NSZjdHlwZT14bWwi
KSkKIAogICAgIGRlZiB0ZXN0X3BhcnNlX2F0dGFjaG1lbnRfaWQoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBwYXJzZV9hdHRhY2htZW50X2lkKCJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0xMjM0NSZhY3Rpb249cmV2aWV3IikpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBwYXJzZV9hdHRhY2htZW50X2lkKCJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0xMjM0NSZhY3Rpb249ZWRpdCIpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxMjM0NSwgcGFyc2VfYXR0YWNobWVudF9pZCgiaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTIzNDUmYWN0aW9uPXByZXR0
eXBhdGNoIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCBwYXJzZV9hdHRhY2ht
ZW50X2lkKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0xMjM0NSZh
Y3Rpb249ZGlmZiIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEyMzQ1LCBwYXJzZV9hdHRh
Y2htZW50X2lkKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0xMjM0
NSZhY3Rpb249cmV2aWV3IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIzNDUsIHBhcnNl
X2F0dGFjaG1lbnRfaWQoImh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lk
PTEyMzQ1JmFjdGlvbj1lZGl0IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIzNDUsIHBh
cnNlX2F0dGFjaG1lbnRfaWQoImh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dp
P2lkPTEyMzQ1JmFjdGlvbj1wcmV0dHlwYXRjaCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEyMzQ1LCBwYXJzZV9hdHRhY2htZW50X2lkKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRh
Y2htZW50LmNnaT9pZD0xMjM0NSZhY3Rpb249ZGlmZiIpKQogCiAgICAgICAgICMgRGlyZWN0IGF0
dGFjaG1lbnQgbGlua3MgYXJlIGhvc3RlZCBmcm9tIHBlci1idWcgc3ViZG9tYWluczoKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoMTIzNDUsIHBhcnNlX2F0dGFjaG1lbnRfaWQoImh0dHBzOi8v
YnVnLTIzNDU2LWF0dGFjaG1lbnRzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTIzNDUi
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMjM0NSwgcGFyc2VfYXR0YWNobWVudF9pZCgi
aHR0cHM6Ly9idWctMjM0NTYtYXR0YWNobWVudHMud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9p
ZD0xMjM0NSIpKQogICAgICAgICAjIE1ha2Ugc3VyZSBzZWN1cmUgYXR0YWNobWVudCBVUkxzIHdv
cmsgdG9vLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxMjM0NSwgcGFyc2VfYXR0YWNobWVu
dF9pZCgiaHR0cHM6Ly9idWctMjM0NTYtYXR0YWNobWVudHMud2Via2l0Lm9yZy9hdHRhY2htZW50
LmNnaT9pZD0xMjM0NSZ0PUJxbnNka2w5ZnMiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
MjM0NSwgcGFyc2VfYXR0YWNobWVudF9pZCgiaHR0cHM6Ly9idWctMjM0NTYtYXR0YWNobWVudHMu
d2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0xMjM0NSZ0PUJxbnNka2w5ZnMiKSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2ZpbmRfZmlsZXNfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9maW5kX2ZpbGVzX3VuaXR0ZXN0LnB5
CmluZGV4IDc1YmVhZjBiNDJkMmFkNjE4YTU2MWJlZTUxNTQxNmU1ODZjOWE1MmUuLjY0MTI1MWYw
ZTVmZDk4ZDNiMjcwYTY2ZTMyOTE0MDAzZDRmMTRlNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2ZpbmRfZmlsZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vZmluZF9maWxlc191bml0dGVzdC5weQpAQCAtNDMsNyArNDMs
NyBAQCBjbGFzcyBNb2NrV2luRmlsZVN5c3RlbShvYmplY3QpOgogCiBjbGFzcyBUZXN0V2luTm9y
bWFsaXplKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgYXNzZXJ0X2ZpbGVzeXN0ZW1fbm9y
bWFsaXplcyhzZWxmLCBmaWxlc3lzdGVtKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmlu
ZF9maWxlcy5fbm9ybWFsaXplKGZpbGVzeXN0ZW0sICJjOlxcZm9vIiwKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmaW5kX2ZpbGVzLl9ub3JtYWxpemUoZmlsZXN5c3RlbSwgImM6XFxmb28iLAog
ICAgICAgICAgICAgWydmYXN0L2h0bWwnLCAnZmFzdC9jYW52YXMvKicsICdjb21wb3NpdGluZy9m
b28uaHRtbCddKSwKICAgICAgICAgICAgIFsnYzpcXGZvb1xcZmFzdFxodG1sJywgJ2M6XFxmb29c
XGZhc3RcY2FudmFzXConLCAnYzpcXGZvb1xjb21wb3NpdGluZ1xcZm9vLmh0bWwnXSkKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3pp
bGxhX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3pp
bGxhL2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CmluZGV4IDYxMDhiNWU4YWExMWNhZDdkOTdjMTk2Mzhi
OGQ2YmNlYjk2NmIxMWQuLjUzOGQzOWU4NWMzNTllYTM1MmE4MTc1NjVhOGUxYWZlMDJmMDA2NTAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9i
dWd6aWxsYV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkKQEAgLTg1LDE2ICs4NSwxNiBAQCBjbGFz
cyBCdWd6aWxsYVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3VybF9jcmVh
dGlvbihzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhlc2Ugd291bGQgYmUgYWxsIGJldHRlciBh
cyBkb2N0ZXN0cwogICAgICAgICBidWdzID0gQnVnemlsbGEoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhOb25lLCBidWdzLmJ1Z191cmxfZm9yX2J1Z19pZChOb25lKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoTm9uZSwgYnVncy5zaG9ydF9idWdfdXJsX2Zvcl9idWdfaWQoTm9uZSkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE5vbmUsIGJ1Z3MuYXR0YWNobWVudF91cmxfZm9y
X2lkKE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGJ1Z3MuYnVnX3VybF9m
b3JfYnVnX2lkKE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGJ1Z3Muc2hv
cnRfYnVnX3VybF9mb3JfYnVnX2lkKE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIGJ1Z3MuYXR0YWNobWVudF91cmxfZm9yX2lkKE5vbmUpKQogCiAgICAgZGVmIHRlc3RfcGFy
c2VfYnVnX2lkKHNlbGYpOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSBjYW4gcGFyc2UgdGhlIHVy
bHMgd2UgcHJvZHVjZS4KICAgICAgICAgYnVncyA9IEJ1Z3ppbGxhKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMTIzNDUsIHVybHMucGFyc2VfYnVnX2lkKGJ1Z3Muc2hvcnRfYnVnX3VybF9m
b3JfYnVnX2lkKDEyMzQ1KSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEyMzQ1LCB1cmxz
LnBhcnNlX2J1Z19pZChidWdzLmJ1Z191cmxfZm9yX2J1Z19pZCgxMjM0NSkpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygxMjM0NSwgdXJscy5wYXJzZV9idWdfaWQoYnVncy5idWdfdXJsX2Zv
cl9idWdfaWQoMTIzNDUsIHhtbD1UcnVlKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIz
NDUsIHVybHMucGFyc2VfYnVnX2lkKGJ1Z3Muc2hvcnRfYnVnX3VybF9mb3JfYnVnX2lkKDEyMzQ1
KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTIzNDUsIHVybHMucGFyc2VfYnVnX2lkKGJ1
Z3MuYnVnX3VybF9mb3JfYnVnX2lkKDEyMzQ1KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MTIzNDUsIHVybHMucGFyc2VfYnVnX2lkKGJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKDEyMzQ1LCB4
bWw9VHJ1ZSkpKQogCiAgICAgX2J1Z194bWwgPSAiIiIKICAgICA8YnVnPgpAQCAtMTk4LDEwICsx
OTgsMTAgQEAgSWdub3JlIHRoaXMgYnVnLiAgSnVzdCBmb3IgdGVzdGluZyBmYWlsdXJlIG1vZGVz
IG9mIHdlYmtpdC1wYXRjaCBhbmQgdGhlIGNvbW1pdC0KICAgICAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBtb3ZlIHRvIGEgY2VudHJhbCBsb2NhdGlvbiBhbmQgYmUgc2hhcmVkIGJ5IG1vcmUgdW5pdCB0
ZXN0cy4KICAgICBkZWYgX2Fzc2VydF9kaWN0aW9uYXJpZXNfZXF1YWwoc2VsZiwgYWN0dWFsLCBl
eHBlY3RlZCk6CiAgICAgICAgICMgTWFrZSBzdXJlIHdlIGFyZW4ndCBwYXJzaW5nIG1vcmUgb3Ig
bGVzcyB0aGFuIHdlIGV4cGVjdAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZWQoYWN0
dWFsLmtleXMoKSksIHNvcnRlZChleHBlY3RlZC5rZXlzKCkpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNvcnRlZChhY3R1YWwua2V5cygpKSwgc29ydGVkKGV4cGVjdGVkLmtleXMoKSkpCiAK
ICAgICAgICAgZm9yIGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gZXhwZWN0ZWQuaXRlbXMoKToKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbFtrZXldLCBleHBlY3RlZF92YWx1ZSwg
KCJGYWlsdXJlIGZvciBrZXk6ICVzOiBBY3R1YWw9JyVzJyBFeHBlY3RlZD0nJXMnIiAlIChrZXks
IGFjdHVhbFtrZXldLCBleHBlY3RlZF92YWx1ZSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChhY3R1YWxba2V5XSwgZXhwZWN0ZWRfdmFsdWUsICgiRmFpbHVyZSBmb3Iga2V5OiAlczog
QWN0dWFsPSclcycgRXhwZWN0ZWQ9JyVzJyIgJSAoa2V5LCBhY3R1YWxba2V5XSwgZXhwZWN0ZWRf
dmFsdWUpKSkKIAogICAgIGRlZiB0ZXN0X3BhcnNlX2J1Z19kaWN0aW9uYXJ5X2Zyb21feG1sKHNl
bGYpOgogICAgICAgICBidWcgPSBCdWd6aWxsYSgpLl9wYXJzZV9idWdfZGljdGlvbmFyeV9mcm9t
X3htbChzZWxmLl9zaW5nbGVfYnVnX3htbCkKQEAgLTIxNywxMCArMjE3LDEwIEBAIElnbm9yZSB0
aGlzIGJ1Zy4gIEp1c3QgZm9yIHRlc3RpbmcgZmFpbHVyZSBtb2RlcyBvZiB3ZWJraXQtcGF0Y2gg
YW5kIHRoZSBjb21taXQtCiAgICAgZGVmIHRlc3RfcGFyc2VfYnVnc19mcm9tX3htbChzZWxmKToK
ICAgICAgICAgYnVnemlsbGEgPSBCdWd6aWxsYSgpCiAgICAgICAgIGJ1Z3MgPSBidWd6aWxsYS5f
cGFyc2VfYnVnc19mcm9tX3htbChzZWxmLl9zYW1wbGVfbXVsdGlfYnVnX3htbCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobGVuKGJ1Z3MpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhidWdzWzBdLmlkKCksIHNlbGYuX2V4cGVjdGVkX2V4YW1wbGVfYnVnX3BhcnNpbmdbJ2lkJ10p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Z3MpLCAyKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1Z3NbMF0uaWQoKSwgc2VsZi5fZXhwZWN0ZWRfZXhhbXBsZV9idWdfcGFyc2lu
Z1snaWQnXSkKICAgICAgICAgYnVncyA9IGJ1Z3ppbGxhLl9wYXJzZV9idWdzX2Zyb21feG1sKCIi
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4oYnVncyksIDApCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKGJ1Z3MpLCAwKQogCiAgICAgIyBUaGlzIGNvdWxkIGJlIGNvbWJpbmVk
IGludG8gdGVzdF9idWdfcGFyc2luZyBsYXRlciBpZiBkZXNpcmVkLgogICAgIGRlZiB0ZXN0X2F0
dGFjaG1lbnRfcGFyc2luZyhzZWxmKToKQEAgLTI0NCw3ICsyNDQsNyBAQCBJZ25vcmUgdGhpcyBi
dWcuICBKdXN0IGZvciB0ZXN0aW5nIGZhaWx1cmUgbW9kZXMgb2Ygd2Via2l0LXBhdGNoIGFuZCB0
aGUgY29tbWl0LQogCiAgICAgZGVmIHRlc3RfYXR0YWNobWVudF9kZXRhaWxfYnVnX3BhcnNpbmco
c2VsZik6CiAgICAgICAgIGJ1Z3ppbGxhID0gQnVnemlsbGEoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygyNzMxNCwgYnVnemlsbGEuX3BhcnNlX2J1Z19pZF9mcm9tX2F0dGFjaG1lbnRfcGFn
ZShzZWxmLl9zYW1wbGVfYXR0YWNobWVudF9kZXRhaWxfcGFnZSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMjczMTQsIGJ1Z3ppbGxhLl9wYXJzZV9idWdfaWRfZnJvbV9hdHRhY2htZW50X3Bh
Z2Uoc2VsZi5fc2FtcGxlX2F0dGFjaG1lbnRfZGV0YWlsX3BhZ2UpKQogCiAgICAgZGVmIHRlc3Rf
YWRkX2NjX3RvX2J1ZyhzZWxmKToKICAgICAgICAgYnVnemlsbGEgPSBCdWd6aWxsYSgpCkBAIC00
MDgsNyArNDA4LDcgQEAgY2xhc3MgQnVnemlsbGFRdWVyaWVzVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAiIiIKIAogICAgIGRlZiBfYXNzZXJ0X3Jlc3VsdF9jb3VudChzZWxmLCBxdWVyaWVzLCBo
dG1sLCBjb3VudCk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHF1ZXJpZXMuX3BhcnNlX3Jl
c3VsdF9jb3VudChodG1sKSwgY291bnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVlcmll
cy5fcGFyc2VfcmVzdWx0X2NvdW50KGh0bWwpLCBjb3VudCkKIAogICAgIGRlZiB0ZXN0X3BhcnNl
X3Jlc3VsdF9jb3VudChzZWxmKToKICAgICAgICAgcXVlcmllcyA9IEJ1Z3ppbGxhUXVlcmllcyhO
b25lKQpAQCAtNDIwLDEyICs0MjAsMTIgQEAgY2xhc3MgQnVnemlsbGFRdWVyaWVzVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9yZXF1ZXN0X3BhZ2VfcGFyc2luZyhzZWxm
KToKICAgICAgICAgcXVlcmllcyA9IEJ1Z3ppbGxhUXVlcmllcyhOb25lKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbNDA1MTEsIDQwNzIyLCA0MDcyM10sIHF1ZXJpZXMuX3BhcnNlX2F0dGFj
aG1lbnRfaWRzX3JlcXVlc3RfcXVlcnkoc2VsZi5fc2FtcGxlX3JlcXVlc3RfcGFnZSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWzQwNTExLCA0MDcyMiwgNDA3MjNdLCBxdWVyaWVzLl9wYXJz
ZV9hdHRhY2htZW50X2lkc19yZXF1ZXN0X3F1ZXJ5KHNlbGYuX3NhbXBsZV9yZXF1ZXN0X3BhZ2Up
KQogCiAgICAgZGVmIHRlc3RfcXVpcF9wYWdlX3BhcnNpbmcoc2VsZik6CiAgICAgICAgIHF1ZXJp
ZXMgPSBCdWd6aWxsYVF1ZXJpZXMoTm9uZSkKICAgICAgICAgZXhwZWN0ZWRfcXVpcHMgPSBbIkV2
ZXJ5dGhpbmcgc2hvdWxkIGJlIG1hZGUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLCBidXQgbm90IHNp
bXBsZXIuIC0gQWxiZXJ0IEVpbnN0ZWluIiwgIkdvb2QgYXJ0aXN0cyBjb3B5LiBHcmVhdCBhcnRp
c3RzIHN0ZWFsLiAtIFBhYmxvIFBpY2Fzc28iLCB1Ilx1MDBlN2d1YSBtb2xlIGVtIHBlZHJhIGR1
cmEsIHRhbnRvIGJhdGUgYXRcdTAwOGUgcXVlIGZ1cmEuIl0KLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoZXhwZWN0ZWRfcXVpcHMsIHF1ZXJpZXMuX3BhcnNlX3F1aXBzKHNlbGYuX3NhbXBsZV9x
dWlwX3BhZ2UpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3F1aXBzLCBxdWVy
aWVzLl9wYXJzZV9xdWlwcyhzZWxmLl9zYW1wbGVfcXVpcF9wYWdlKSkKIAogICAgIGRlZiB0ZXN0
X2xvYWRfcXVlcnkoc2VsZik6CiAgICAgICAgIHF1ZXJpZXMgPSBCdWd6aWxsYVF1ZXJpZXMoTW9j
aygpKQpAQCAtNDgyLDcgKzQ4Miw3IEBAIGNsYXNzIEVkaXRVc2Vyc1BhcnNlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgIGRlZiBfYXNzZXJ0X2xvZ2luX3VzZXJpZF9wYWlycyhzZWxmLCBy
ZXN1bHRzX3BhZ2UsIGV4cGVjdGVkX2xvZ2lucyk6CiAgICAgICAgIHBhcnNlciA9IEVkaXRVc2Vy
c1BhcnNlcigpCiAgICAgICAgIGxvZ2lucyA9IHBhcnNlci5sb2dpbl91c2VyaWRfcGFpcnNfZnJv
bV9lZGl0X3VzZXJfcmVzdWx0cyhyZXN1bHRzX3BhZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGxvZ2lucywgZXhwZWN0ZWRfbG9naW5zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxv
Z2lucywgZXhwZWN0ZWRfbG9naW5zKQogCiAgICAgZGVmIHRlc3RfbG9naW5zX2Zyb21fZWRpdHVz
ZXJzX3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9sb2dpbl91c2VyaWRfcGFp
cnMoc2VsZi5fZXhhbXBsZV91c2VyX3Jlc3VsdHMsIFsoImFiYXJ0aEB3ZWJraXQub3JnIiwgMTIz
NCldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxk
Ym90L2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IDY5Zjg2NDg4OTdhMjNlNTk2
OWM1ZTFlMWQ2YmQ3NzkyYjBkODc3YTkuLjU0N2E4ZTZmZjFmNjkwZGZiZTA3NzdmMjQ1NTg4OTBh
ZjExMjFjZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAgLTIzMiwxMCArMjMy
LDEwIEBAIGNsYXNzIEJ1aWxkQm90VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICBidWlsZGVyID0gYnVpbGRib3QuX3BhcnNlX2J1aWxkZXJfc3RhdHVzX2Zyb21fcm93KHN0YXR1
c19yb3cpCiAKICAgICAgICAgICAgICMgTWFrZSBzdXJlIHdlIGFyZW4ndCBwYXJzaW5nIG1vcmUg
b3IgbGVzcyB0aGFuIHdlIGV4cGVjdAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYnVp
bGRlci5rZXlzKCksIGV4cGVjdGVkX3BhcnNpbmcua2V5cygpKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChidWlsZGVyLmtleXMoKSwgZXhwZWN0ZWRfcGFyc2luZy5rZXlzKCkpCiAKICAg
ICAgICAgICAgIGZvciBrZXksIGV4cGVjdGVkX3ZhbHVlIGluIGV4cGVjdGVkX3BhcnNpbmcuaXRl
bXMoKToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhidWlsZGVyW2tleV0sIGV4
cGVjdGVkX3ZhbHVlLCAoIkJ1aWxkZXIgJWQgcGFyc2UgZmFpbHVyZSBmb3Iga2V5OiAlczogQWN0
dWFsPSclcycgRXhwZWN0ZWQ9JyVzJyIgJSAoeCwga2V5LCBidWlsZGVyW2tleV0sIGV4cGVjdGVk
X3ZhbHVlKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyW2tleV0s
IGV4cGVjdGVkX3ZhbHVlLCAoIkJ1aWxkZXIgJWQgcGFyc2UgZmFpbHVyZSBmb3Iga2V5OiAlczog
QWN0dWFsPSclcycgRXhwZWN0ZWQ9JyVzJyIgJSAoeCwga2V5LCBidWlsZGVyW2tleV0sIGV4cGVj
dGVkX3ZhbHVlKSkpCiAKICAgICBkZWYgdGVzdF9idWlsZGVyX3dpdGhfbmFtZShzZWxmKToKICAg
ICAgICAgYnVpbGRib3QgPSBCdWlsZEJvdCgpCkBAIC00NjQsNyArNDY0LDcgQEAgY2xhc3MgQnVp
bGRCb3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgYiA9IEJ1aWxkZXIoJ2J1aWxk
ZXInLCBCdWlsZEJvdCgpKQogICAgICAgICBiLl9mZXRjaF9idWlsZCA9IHNlbGYuX2ZldGNoX2J1
aWxkCiAgICAgICAgIGIuX2ZldGNoX3JldmlzaW9uX3RvX2J1aWxkX21hcCA9IHNlbGYuX2ZldGNo
X3JldmlzaW9uX3RvX2J1aWxkX21hcAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygiY29ycmVj
dCBidWlsZCIsIGIubGF0ZXN0X2NhY2hlZF9idWlsZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCJjb3JyZWN0IGJ1aWxkIiwgYi5sYXRlc3RfY2FjaGVkX2J1aWxkKCkpCiAKICAgICBkZWYg
cmVzdWx0c191cmwoc2VsZik6CiAgICAgICAgIHJldHVybiAic29tZS11cmwiCkBAIC00NzIsNyAr
NDcyLDcgQEAgY2xhc3MgQnVpbGRCb3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYg
dGVzdF9yZXN1bHRzX3ppcF91cmwoc2VsZik6CiAgICAgICAgIGIgPSBCdWlsZChOb25lLCAxMjMs
IDEyMywgRmFsc2UpCiAgICAgICAgIGIucmVzdWx0c191cmwgPSBzZWxmLnJlc3VsdHNfdXJsCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCJzb21lLXVybC56aXAiLCBiLnJlc3VsdHNfemlwX3Vy
bCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJzb21lLXVybC56aXAiLCBiLnJlc3VsdHNf
emlwX3VybCgpKQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3Qu
cHkKaW5kZXggYTc5N2UzZDFiNzNjM2QyNDIzMWVhMDZhNmFjMGE1YmIxYzgwNmRjOC4uMTU2ODJm
M2I4OTVhMDk4NTcwY2QzMGQzNjljNjIxZjQwMGYwMGFlNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQpA
QCAtMTM1LDggKzEzNSw4IEBAIHBhc3N3b3JkOiAiU0VDUkVUU0FVQ0UiCiAgICAgICAgIG9zLmVu
dmlyb25bJ1dFQktJVF9CVUdaSUxMQV9VU0VSTkFNRSddID0gImZvbyIKICAgICAgICAgb3MuZW52
aXJvblsnV0VCS0lUX0JVR1pJTExBX1BBU1NXT1JEJ10gPSAiYmFyIgogICAgICAgICB1c2VybmFt
ZSwgcGFzc3dvcmQgPSBjcmVkZW50aWFscy5fY3JlZGVudGlhbHNfZnJvbV9lbnZpcm9ubWVudCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHVzZXJuYW1lLCAiZm9vIikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMocGFzc3dvcmQsICJiYXIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHVzZXJuYW1lLCAiZm9vIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXNzd29yZCwgImJh
ciIpCiAgICAgICAgIG9zLmVudmlyb24gPSBzYXZlZF9lbnZpcm9uCiAKICAgICBkZWYgdGVzdF9y
ZWFkX2NyZWRlbnRpYWxzX3dpdGhvdXRfZ2l0X3JlcG8oc2VsZik6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVyZW1hcF91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwX3VuaXR0ZXN0LnB5Cmlu
ZGV4IDlhNjZkOWVkZTIxMTBhODY2YzM0NzFkZTE2ZGZiMzUzZTNiMzgyZTEuLmJkNDEwMzJjYmE0
OTQ5OTcxZDYxODRmMzdjOTQ5ZWJjNGJlMWYyMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwX3VuaXR0ZXN0LnB5CkBAIC01NCwy
NyArNTQsMjcgQEAgY2xhc3MgRmFpbHVyZU1hcFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAg
ICAgZGVmIHRlc3RfZmFpbGluZ19yZXZpc2lvbnMoc2VsZik6CiAgICAgICAgIGZhaWx1cmVfbWFw
ID0gc2VsZi5fbWFrZV9mYWlsdXJlX21hcCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZh
aWx1cmVfbWFwLmZhaWxpbmdfcmV2aXNpb25zKCksIFsxMjM0LCAxMjM1XSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmYWlsdXJlX21hcC5mYWlsaW5nX3JldmlzaW9ucygpLCBbMTIzNCwgMTIz
NV0pCiAKICAgICBkZWYgdGVzdF9uZXdfZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIGZhaWx1cmVf
bWFwID0gc2VsZi5fbWFrZV9mYWlsdXJlX21hcCgpCiAgICAgICAgIGZhaWx1cmVfbWFwLmZpbHRl
cl9vdXRfb2xkX2ZhaWx1cmVzKGxhbWJkYSByZXZpc2lvbjogRmFsc2UpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGZhaWx1cmVfbWFwLmZhaWxpbmdfcmV2aXNpb25zKCksIFsxMjM0LCAxMjM1
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlX21hcC5mYWlsaW5nX3JldmlzaW9u
cygpLCBbMTIzNCwgMTIzNV0pCiAKICAgICBkZWYgdGVzdF9uZXdfZmFpbHVyZXNfd2l0aF9vbGRf
cmV2aXNpb25zKHNlbGYpOgogICAgICAgICBmYWlsdXJlX21hcCA9IHNlbGYuX21ha2VfZmFpbHVy
ZV9tYXAoKQogICAgICAgICBmYWlsdXJlX21hcC5maWx0ZXJfb3V0X29sZF9mYWlsdXJlcyhsYW1i
ZGEgcmV2aXNpb246IHJldmlzaW9uID09IDEyMzQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGZhaWx1cmVfbWFwLmZhaWxpbmdfcmV2aXNpb25zKCksIFtdKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZhaWx1cmVfbWFwLmZhaWxpbmdfcmV2aXNpb25zKCksIFtdKQogCiAgICAgZGVmIHRl
c3RfbmV3X2ZhaWx1cmVzX3dpdGhfbW9yZV9vbGRfcmV2aXNpb25zKHNlbGYpOgogICAgICAgICBm
YWlsdXJlX21hcCA9IHNlbGYuX21ha2VfZmFpbHVyZV9tYXAoKQogICAgICAgICBmYWlsdXJlX21h
cC5maWx0ZXJfb3V0X29sZF9mYWlsdXJlcyhsYW1iZGEgcmV2aXNpb246IHJldmlzaW9uID09IDEy
MzUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZhaWx1cmVfbWFwLmZhaWxpbmdfcmV2aXNp
b25zKCksIFsxMjM0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlX21hcC5mYWls
aW5nX3JldmlzaW9ucygpLCBbMTIzNF0pCiAKICAgICBkZWYgdGVzdF90ZXN0c19mYWlsaW5nX2Zv
cihzZWxmKToKICAgICAgICAgZmFpbHVyZV9tYXAgPSBzZWxmLl9tYWtlX2ZhaWx1cmVfbWFwKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFpbHVyZV9tYXAudGVzdHNfZmFpbGluZ19mb3Io
MTIzNCksIFt1J3Rlc3QxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZV9tYXAu
dGVzdHNfZmFpbGluZ19mb3IoMTIzNCksIFt1J3Rlc3QxJ10pCiAKICAgICBkZWYgdGVzdF9mYWls
aW5nX3Rlc3RzKHNlbGYpOgogICAgICAgICBmYWlsdXJlX21hcCA9IHNlbGYuX21ha2VfZmFpbHVy
ZV9tYXAoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmYWlsdXJlX21hcC5mYWlsaW5nX3Rl
c3RzKCksIHNldChbdSd0ZXN0MSddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJl
X21hcC5mYWlsaW5nX3Rlc3RzKCksIHNldChbdSd0ZXN0MSddKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191
bml0dGVzdC5weQppbmRleCA5MzlhNTZhN2Q2MGY5NDBkYmU5Mjg1OTEwNDBhNjMzYWM4MWI2OWM2
Li40NjJhODhjNjYxM2NlOTNjZWFjZTA5ZDdlMDI0MWM3NGMyZjk2ZGE3IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3Ry
ZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0xMzAsOSArMTMwLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJl
c3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3NldF9mYWlsdXJl
X2xpbWl0X2NvdW50KHNlbGYpOgogICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMo
W10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3Vu
dCgpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHMuZmFpbHVyZV9saW1p
dF9jb3VudCgpLCBOb25lKQogICAgICAgICByZXN1bHRzLnNldF9mYWlsdXJlX2xpbWl0X2NvdW50
KDEwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291
bnQoKSwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0
X2NvdW50KCksIDEwKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21f
c3RyaW5nKE5vbmUpLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L3VuaXR0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC91bml0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggZjg4NTIw
NjJjNjVmNGI4NGY0MDBlMTAxMWRjNjQzNTYyOTEzZDAyYy4uNDBlODAyMzZmMmI5MWZjNTg0YzM3
OTNjYTIzMDNmMWI5NTdhYjkwZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L3VuaXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvdW5pdHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0zNCwx
MCArMzQsMTAgQEAgZnJvbSB1bml0dGVzdHJlc3VsdHMgaW1wb3J0IFVuaXRUZXN0UmVzdWx0cwog
Y2xhc3MgVW5pdFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYg
dGVzdF9ub3N0cmluZyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoTm9uZSwgVW5p
dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoTm9uZSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoTm9uZSkp
CiAKICAgICBkZWYgdGVzdF9lbXB0eXN0cmluZyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoTm9uZSwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoIiIpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFVuaXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21f
c3RyaW5nKCIiKSkKIAogICAgIGRlZiB0ZXN0X25vZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIG5v
X2ZhaWx1cmVzX3htbCA9ICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFVuaXRUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIDx0ZXN0Y2FzZSBuYW1lPSJDcmFzaElmU2V0dGluZ1Vuc2V0Um93SW5kZXgi
IHN0YXR1cz0icnVuIiB0aW1lPSIwLjEyMyIgY2xhc3NuYW1lPSJSZW5kZXJUYWJsZUNlbGxEZWF0
aFRlc3QiIC8+CiAgIDwvdGVzdHN1aXRlPgogPC90ZXN0c3VpdGVzPiIiIgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbXSwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9f
ZmFpbHVyZXNfeG1sKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgVW5pdFRlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfeG1sKSkKIAogICAgIGRlZiB0ZXN0
X29uZWZhaWx1cmUoc2VsZik6CiAgICAgICAgIG9uZV9mYWlsdXJlX3htbCA9ICIiIjw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CkBAIC02Niw3ICs2Niw3IEBAIEV4cGVjdGVk
OiAxXV0+PC9mYWlsdXJlPgogICA8L3Rlc3RzdWl0ZT4KIDwvdGVzdHN1aXRlcz4iIiIKICAgICAg
ICAgZXhwZWN0ZWQgPSBbIldlYkZyYW1lVGVzdC5GQUlMU19EaXZBdXRvWm9vbVBhcmFtc1Rlc3Qi
XQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgVW5pdFRlc3RSZXN1bHRzLnJl
c3VsdHNfZnJvbV9zdHJpbmcob25lX2ZhaWx1cmVfeG1sKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChleHBlY3RlZCwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcob25lX2Zh
aWx1cmVfeG1sKSkKIAogICAgIGRlZiB0ZXN0X211bHRpcGxlX2ZhaWx1cmVzX3Blcl90ZXN0KHNl
bGYpOgogICAgICAgICBtdWx0aXBsZV9mYWlsdXJlc19wZXJfdGVzdF94bWwgPSAiIiI8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgpAQCAtOTEsNyArOTEsNyBAQCBFeHBlY3Rl
ZDogNi4yOF1dPjwvZmFpbHVyZT4KICAgPC90ZXN0c3VpdGU+CiA8L3Rlc3RzdWl0ZXM+IiIiCiAg
ICAgICAgIGV4cGVjdGVkID0gWyJDbGFzc09uZS5UZXN0T25lIiwgIkNsYXNzVHdvLlRlc3RUd28i
XQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgVW5pdFRlc3RSZXN1bHRzLnJl
c3VsdHNfZnJvbV9zdHJpbmcobXVsdGlwbGVfZmFpbHVyZXNfcGVyX3Rlc3RfeG1sKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgVW5pdFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcobXVsdGlwbGVfZmFpbHVyZXNfcGVyX3Rlc3RfeG1sKSkKIAogCiBpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vcmVhZF9jaGVja3N1bV9mcm9tX3BuZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3JlYWRfY2hlY2tzdW1fZnJvbV9wbmdfdW5pdHRlc3QucHkKaW5kZXggZGVm
YmJmODA2MmM4NDJhOGQ2ZTBhMDMyMDQ3YjFjODIyZmE2ODY2Mi4uYTU2YmVjMmU0NmM4NTdiZGVi
ZjUzNGY5NTZjNTg5Yzc1MzNmZTIwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vcmVhZF9jaGVja3N1bV9mcm9tX3BuZ191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9yZWFkX2NoZWNrc3VtX2Zyb21fcG5nX3VuaXR0ZXN0LnB5
CkBAIC0zMiwxMiArMzIsMTIgQEAgY2xhc3MgUmVhZENoZWNrc3VtRnJvbVBuZ1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAjIFRlc3QgYSBmaWxlIHdpdGggdGhlIGNvbW1lbnQuCiAg
ICAgICAgIGZpbGVoYW5kbGUgPSBTdHJpbmdJTy5TdHJpbmdJTygnJydceDg5UE5HXHJcblx4MWFc
blx4MDBceDAwXHgwMFxySUhEUlx4MDBceDAwXHgwMyBceDAwXHgwMFx4MDJYXHgwOFx4MDJceDAw
XHgwMFx4MDBceDE1XHgxNFx4MTUnXHgwMFx4MDBceDAwKXRFWHRjaGVja3N1bVx4MDAzYzQxMzRm
ZTI3Mzk4ODAzNTNmOTFjNWI4NGNhZGJhYUNceGI4P1x4ZWNceDAwXHgwMFx4MTZceGZlSURBVHhc
eDljXHhlZFx4ZGRbXHg4Y1VceGU1XHhjMVx4ZmZceGYxNVRceDE4XHgwZWEsKVx4YTZceDgwWFo8
XHgxMFxuXHhkNkhceGM0Vlx4ODh9XHhiNVx4YTlceGQ2clx4ZDVceDBia2kwXHhhNlx4YjVpaFx4
ZDJceGRlXHg5OFBIelx4ZDFceDAyPVxccSNceDAxXHg4Ylx4YTVySlx4OGJceDg4aVx4YWNNXHhj
NWhceDhjYk1rKFx4MWV6QCFceDBjXHhkNVx4ZDJceGMyXHhiNDRceDFjXHg4NDhceDFkRihceGVi
XHg3Zlx4YjFceGZmXHhkOVx4ZWZ+Z1x4ZDZceGRlM1x4ZTBvXHgxMFx4ZWNceGU3c2E2e1x4ZDZ6
XHhkNlx4YjNceGQ3XHhmM1x4YThfN1x4ZGJNW1lceDk2XHgwNVx4MDBceDAwOVx4YzNceGRlXHhl
Ylx0XHgwMFx4MDBceGJjXHhkZlx4MDgsXHgwMFx4ODAwXHg4MVx4MDVceDAwXHgxMCZceGIwXHgw
MFx4MDBceGMyXHgwNFx4MTZceDAwQFx4OThceGMwXHgwMlx4MDBceDA4XHgxM1hceDAwXHgwMGFc
eDAyXHgwYlx4MDAgTBx4MDFceDAwXHg4NFx0LFx4MDBceDgwMFx4ODFceDA1XHgwMFx4MTBceGQ2
NFx4YjBceGRhXHg5YVx4ZGJceGI2bVx4ZGJceGI0aVx4ZDNceGZhXHg5ZnJceGYzXHhjZDdceDBm
XHhlNVRceDA3XHhlNVx4ZDRceGE5JycnKQogICAgICAgICBjaGVja3N1bSA9IHJlYWRfY2hlY2tz
dW1fZnJvbV9wbmcucmVhZF9jaGVja3N1bShmaWxlaGFuZGxlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscygnM2M0MTM0ZmUyNzM5ODgwMzUzZjkxYzViODRjYWRiYWEnLCBjaGVja3N1bSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnM2M0MTM0ZmUyNzM5ODgwMzUzZjkxYzViODRjYWRiYWEn
LCBjaGVja3N1bSkKIAogICAgICAgICAjIFRlc3QgYSBmaWxlIHdpdGhvdXQgdGhlIGNvbW1lbnQu
CiAgICAgICAgIGZpbGVoYW5kbGUgPSBTdHJpbmdJTy5TdHJpbmdJTygnJydceDg5UE5HXHJcblx4
MWFcblx4MDBceDAwXHgwMFxySUhEUlx4MDBceDAwXHgwMyBceDAwXHgwMFx4MDJYXHgwOFx4MDJc
eDAwXHgwMFx4MDBceDE1XHgxNFx4MTUnXHgwMFx4MDBceDE2XHhmZUlEQVR4XHg5Y1x4ZWRceGRk
W1x4OGNVXHhlNVx4YzFceGZmXHhmMTVUXHgxOFx4MGVhLClceGE2XHg4MFhaPFx4MTBcblx4ZDZI
XHhjNFZceDg4fVx4YjVceGE5XHhkNnJceGQ1XHgwYmtpMFx4YTZceGI1aWhceGQyXHhkZVx4OThQ
SHpceGQxXHgwMj1cXHEjXHgwMVx4OGJceGE1ckpceDhiXHg4OGlceGFjTVx4YzVoXHg4Y2JNayhc
eDFlekAhXHgwY1x4ZDVceGQyXHhjMlx4YjQ0XHgxY1x4ODQ4XHgxZEYoXHhlYlx4N2ZceGIxXHhm
Zlx4ZDlceGVmfmdceGQ2XHhkZTNceGUwb1x4MTBceGVjXHhlN3NhNntceGQ2elx4ZDZceGIzXHhk
N1x4ZjNceGE4XzdceGRiTVtZXHg5Nlx4MDVceDAwXHgwMDlceGMzXHhkZVx4ZWJcdFx4MDBceDAw
XHhiY1x4ZGZceDA4LFx4MDBceDgwMFx4ODFceDA1XHgwMFx4MTAmXHhiMFx4MDBceDAwXHhjMlx4
MDRceDE2XHgwMEBceDk4XHhjMFx4MDJceDAwXHgwOFx4MTNYXHgwMFx4MDBhXHgwMlx4MGJceDAw
IEwceDAxXHgwMFx4ODRcdCxceDAwXHg4MDBceDgxXHgwNVx4MDBceDEwXHhkNjRceGIwXHhkYVx4
OWFceGRiXHhiNm1ceGRiXHhiNGlceGQzXHhmYVx4OWZyXHhmM1x4Y2Q3XHgwZlx4ZTVUXHgwN1x4
ZTVceGQ0XHhhOVNceDhiXHgxNy9ceDFlP35ceGZjXHhmOFx4ZjFceGUzXHhlZlx4YmZceGZmXHhm
ZVx4Zjd6Ok01XHhiYlx4ODdceDE3XHhjYlVaXHg4ZnxWXHhkN1x4YmRceDEwXHhiNlx4Y2R7Ylx4
ODhceGY2alx4YjNceDliP1x4MTRceDliXHhhMT5ceGU2XHhmOVx4ZDlceGNmXHgwMFx4MTdceDkz
JycnKQogICAgICAgICBjaGVja3N1bSA9IHJlYWRfY2hlY2tzdW1fZnJvbV9wbmcucmVhZF9jaGVj
a3N1bShmaWxlaGFuZGxlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhOb25lLCBjaGVja3N1
bSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjaGVja3N1bSkKIAogCiBpZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2RlcHJlY2F0ZWRfbG9nZ2luZ191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9kZXByZWNhdGVkX2xvZ2dpbmdfdW5pdHRlc3QucHkK
aW5kZXggMzc3ODE2MjA3ZDgzMDlmOTNiNjgxZGZlMzA4OTIwNDQyMzcwZjJhNy4uYjk4NjYwOWJi
ZjJiMzlkZDUxMjg3MmFiYzAyY2ZiNGI1NzA2NDU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2RlcHJlY2F0ZWRfbG9nZ2luZ191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZGVwcmVjYXRlZF9sb2dn
aW5nX3VuaXR0ZXN0LnB5CkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIExvZ2dpbmdUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHN5cy5zdGRlcnIg
PSBvcmlnaW5hbF9zdGRlcnIKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWxfb3V0
cHV0LCBleHBlY3RlZF9vdXRwdXQsICJsb2coXCIlc1wiKSBleHBlY3RlZDogJXMgYWN0dWFsOiAl
cyIgJSAobG9nX2lucHV0LCBleHBlY3RlZF9vdXRwdXQsIGFjdHVhbF9vdXRwdXQpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9vdXRwdXQsIGV4cGVjdGVkX291dHB1dCwgImxvZyhc
IiVzXCIpIGV4cGVjdGVkOiAlcyBhY3R1YWw6ICVzIiAlIChsb2dfaW5wdXQsIGV4cGVjdGVkX291
dHB1dCwgYWN0dWFsX291dHB1dCkpCiAKICAgICBkZWYgdGVzdF9sb2coc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0X2xvZ19lcXVhbHMoInRlc3QiLCAidGVzdFxuIikKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0
LnB5CmluZGV4IDU3YzU1NzM2OThlNmM3OTlkMDkxOWNmYTM0ZWY3NWJjZTZkYTBlZGQuLjc1NTk1
NWQzNDBmOWMwMWFiOGZiNDQ0NGU5ZDViNmMzMzBjOGNhZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV91bml0dGVzdC5w
eQpAQCAtNDgsMTkgKzQ4LDE5IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lz
dGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBjbGFzcyBTY3JpcHRFcnJvclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3N0cmluZ19mcm9tX2FyZ3Moc2VsZik6CiAg
ICAgICAgIGVycm9yID0gU2NyaXB0RXJyb3IoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhl
cnJvci5fc3RyaW5nX2Zyb21fYXJncyhOb25lKSwgJ05vbmUnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhlcnJvci5fc3RyaW5nX2Zyb21fYXJncyhbXSksICdbXScpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGVycm9yLl9zdHJpbmdfZnJvbV9hcmdzKG1hcChzdHIsIHJhbmdlKDMwKSkp
LCAiWycwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywgJzEw
JywgJzExJywgJzEyJywgJzEzJywgJzE0JywgJzE1JywgJzE2JywgJzE3Jy4uLiIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3IuX3N0cmluZ19mcm9tX2FyZ3MoTm9uZSksICdOb25lJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvci5fc3RyaW5nX2Zyb21fYXJncyhbXSksICdb
XScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3IuX3N0cmluZ19mcm9tX2FyZ3MobWFw
KHN0ciwgcmFuZ2UoMzApKSksICJbJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAn
NycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInLCAnMTMnLCAnMTQnLCAnMTUnLCAnMTYnLCAn
MTcnLi4uIikKIAogICAgIGRlZiB0ZXN0X21lc3NhZ2Vfd2l0aF9vdXRwdXQoc2VsZik6CiAgICAg
ICAgIGVycm9yID0gU2NyaXB0RXJyb3IoJ015IGN1c3RvbSBtZXNzYWdlIScsICcnLCAtMSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3IubWVzc2FnZV93aXRoX291dHB1dCgpLCAnTXkg
Y3VzdG9tIG1lc3NhZ2UhJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvci5tZXNzYWdl
X3dpdGhfb3V0cHV0KCksICdNeSBjdXN0b20gbWVzc2FnZSEnKQogICAgICAgICBlcnJvciA9IFNj
cmlwdEVycm9yKCdNeSBjdXN0b20gbWVzc2FnZSEnLCAnJywgLTEsICdNeSBvdXRwdXQuJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3IubWVzc2FnZV93aXRoX291dHB1dCgpLCAnTXkg
Y3VzdG9tIG1lc3NhZ2UhXG5cbk15IG91dHB1dC4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGVycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSwgJ015IGN1c3RvbSBtZXNzYWdlIVxuXG5NeSBv
dXRwdXQuJykKICAgICAgICAgZXJyb3IgPSBTY3JpcHRFcnJvcignJywgJ215X2NvbW1hbmQhJywg
LTEsICdNeSBvdXRwdXQuJywgJy9Vc2Vycy91c2VybmFtZS9ibGFoJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZXJyb3IubWVzc2FnZV93aXRoX291dHB1dCgpLCAnRmFpbGVkIHRvIHJ1biAi
bXlfY29tbWFuZCEiIGV4aXRfY29kZTogLTEgY3dkOiAvVXNlcnMvdXNlcm5hbWUvYmxhaFxuXG5N
eSBvdXRwdXQuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvci5tZXNzYWdlX3dpdGhf
b3V0cHV0KCksICdGYWlsZWQgdG8gcnVuICJteV9jb21tYW5kISIgZXhpdF9jb2RlOiAtMSBjd2Q6
IC9Vc2Vycy91c2VybmFtZS9ibGFoXG5cbk15IG91dHB1dC4nKQogICAgICAgICBlcnJvciA9IFNj
cmlwdEVycm9yKCcnLCAnbXlfY29tbWFuZCEnLCAtMSwgJ2FiJyArICcxJyAqIDQ5OSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3IubWVzc2FnZV93aXRoX291dHB1dCgpLCAnRmFpbGVk
IHRvIHJ1biAibXlfY29tbWFuZCEiIGV4aXRfY29kZTogLTFcblxuTGFzdCA1MDAgY2hhcmFjdGVy
cyBvZiBvdXRwdXQ6XG5iJyArICcxJyAqIDQ5OSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
cnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCksICdGYWlsZWQgdG8gcnVuICJteV9jb21tYW5kISIg
ZXhpdF9jb2RlOiAtMVxuXG5MYXN0IDUwMCBjaGFyYWN0ZXJzIG9mIG91dHB1dDpcbmInICsgJzEn
ICogNDk5KQogCiBkZWYgbmV2ZXJfZW5kaW5nX2NvbW1hbmQoKToKICAgICAiIiJBcmd1bWVudHMg
Zm9yIGEgY29tbWFuZCB0aGF0IHdpbGwgbmV2ZXIgZW5kICh1c2VmdWwgZm9yIHRlc3RpbmcgcHJv
Y2VzcwpAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiB0ZXN0X3J1bl9jb21tYW5kX3dpdGhfYmFkX2NvbW1hbmQoc2VsZik6
CiAgICAgICAgIGRlZiBydW5fYmFkX2NvbW1hbmQoKToKICAgICAgICAgICAgIEV4ZWN1dGl2ZSgp
LnJ1bl9jb21tYW5kKFsiZm9vX2Jhcl9jb21tYW5kX2JsYWgiXSwgZXJyb3JfaGFuZGxlcj1FeGVj
dXRpdmUuaWdub3JlX2Vycm9yLCByZXR1cm5fZXhpdF9jb2RlPVRydWUpCi0gICAgICAgIHNlbGYu
ZmFpbFVubGVzc1JhaXNlcyhPU0Vycm9yLCBydW5fYmFkX2NvbW1hbmQpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHJ1bl9iYWRfY29tbWFuZCkKIAogICAgIGRlZiB0ZXN0X3J1
bl9jb21tYW5kX2FyZ3NfdHlwZShzZWxmKToKICAgICAgICAgZXhlY3V0aXZlID0gRXhlY3V0aXZl
KCkKQEAgLTEzMywyNCArMTMzLDI0IEBAIGNsYXNzIEV4ZWN1dGl2ZVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUoKQogCiAgICAgICAgIG91dHB1
dCA9IGV4ZWN1dGl2ZS5ydW5fY29tbWFuZChjb21tYW5kX2xpbmUoJ2NhdCcpLCBpbnB1dD11bmlj
b2RlX3Rvcl9pbnB1dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3V0cHV0LCB1bmljb2Rl
X3Rvcl9vdXRwdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCB1bmljb2RlX3Rv
cl9vdXRwdXQpCiAKICAgICAgICAgb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9jb21tYW5kKGNvbW1h
bmRfbGluZSgnZWNobycsIHVuaWNvZGVfdG9yX2lucHV0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMob3V0cHV0LCB1bmljb2RlX3Rvcl9vdXRwdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwob3V0cHV0LCB1bmljb2RlX3Rvcl9vdXRwdXQpCiAKICAgICAgICAgb3V0cHV0ID0gZXhlY3V0
aXZlLnJ1bl9jb21tYW5kKGNvbW1hbmRfbGluZSgnZWNobycsIHVuaWNvZGVfdG9yX2lucHV0KSwg
ZGVjb2RlX291dHB1dD1GYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3V0cHV0LCBl
bmNvZGVkX3RvcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQsIGVuY29kZWRfdG9y
KQogCiAgICAgICAgICMgTWFrZSBzdXJlIHRoYXQgc3RyKCkgaW5wdXQgYWxzbyB3b3Jrcy4KICAg
ICAgICAgb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9jb21tYW5kKGNvbW1hbmRfbGluZSgnY2F0Jyks
IGlucHV0PWVuY29kZWRfdG9yLCBkZWNvZGVfb3V0cHV0PUZhbHNlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhvdXRwdXQsIGVuY29kZWRfdG9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG91dHB1dCwgZW5jb2RlZF90b3IpCiAKICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIG9ubHkg
aGF2ZSBvbmUgcnVuKiBtZXRob2QgdG8gdGVzdAogICAgICAgICBvdXRwdXQgPSBleGVjdXRpdmUu
cnVuX2FuZF90aHJvd19pZl9mYWlsKGNvbW1hbmRfbGluZSgnZWNobycsIHVuaWNvZGVfdG9yX2lu
cHV0KSwgcXVpZXQ9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3V0cHV0LCB1bmlj
b2RlX3Rvcl9vdXRwdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCB1bmljb2Rl
X3Rvcl9vdXRwdXQpCiAKICAgICAgICAgb3V0cHV0ID0gZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3df
aWZfZmFpbChjb21tYW5kX2xpbmUoJ2VjaG8nLCB1bmljb2RlX3Rvcl9pbnB1dCksIHF1aWV0PVRy
dWUsIGRlY29kZV9vdXRwdXQ9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG91dHB1
dCwgZW5jb2RlZF90b3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCBlbmNvZGVk
X3RvcikKIAogICAgIGRlZiBzZXJpYWxfdGVzdF9raWxsX3Byb2Nlc3Moc2VsZik6CiAgICAgICAg
IGV4ZWN1dGl2ZSA9IEV4ZWN1dGl2ZSgpCkBAIC0yMzYsOCArMjM2LDggQEAgY2xhc3MgRXhlY3V0
aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNvbW1hbmRfb3V0cHV0cyA9IEV4
ZWN1dGl2ZSgpLnJ1bl9pbl9wYXJhbGxlbChjb21tYW5kcywgcHJvY2Vzc2VzPU5VTV9QUk9DRVNT
RVMpCiAgICAgICAgIGRvbmUgPSB0aW1lLnRpbWUoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
ZG9uZSAtIHN0YXJ0IDwgTlVNX1BST0NFU1NFUyAqIERFTEFZX1NFQ1MpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFtvdXRwdXRbMV0gZm9yIG91dHB1dCBpbiBjb21tYW5kX291dHB1dHNdLCBb
ImhlbGxvXG4iXSAqIE5VTV9QUk9DRVNTRVMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtd
LCAgbXVsdGlwcm9jZXNzaW5nLmFjdGl2ZV9jaGlsZHJlbigpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFtvdXRwdXRbMV0gZm9yIG91dHB1dCBpbiBjb21tYW5kX291dHB1dHNdLCBbImhlbGxv
XG4iXSAqIE5VTV9QUk9DRVNTRVMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sICBtdWx0
aXByb2Nlc3NpbmcuYWN0aXZlX2NoaWxkcmVuKCkpCiAKICAgICBkZWYgdGVzdF9ydW5faW5fcGFy
YWxsZWxfYXNzZXJ0X25vbmVtcHR5KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhB
c3NlcnRpb25FcnJvciwgRXhlY3V0aXZlKCkucnVuX2luX3BhcmFsbGVsLCBbXSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2tf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5
c3RlbV9tb2NrX3VuaXR0ZXN0LnB5CmluZGV4IDJhNmNjYmY0YmRmNmQ2MTEzOGUyYjc1Y2Y1OTc4
MTgyMWNjZGJjNzAuLjM5MWMxZDk1NGZjNmFlNWMyNThhNzk5MDkzZTViZjBkMDFiOGEzZjcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVt
X21vY2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2ZpbGVzeXN0ZW1fbW9ja191bml0dGVzdC5weQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBN
b2NrRmlsZVN5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UsIGZpbGVzeXN0ZW1fdW5pdHRlc3Qu
R2VuZXJpY0ZpbGVTeXN0ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBleHBl
Y3RlZCA9IGdvb2RfZm4odGVzdCkKICAgICAgICAgICAgICAgICBhY3R1YWwgPSB0ZXN0X2ZuKHRl
c3QpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgYWN0dWFsLCAnZ2l2
ZW4gJXMsIGV4cGVjdGVkICVzLCBnb3QgJXMnICUgKHJlcHIodGVzdCksIHJlcHIoZXhwZWN0ZWQp
LCByZXByKGFjdHVhbCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
YWN0dWFsLCAnZ2l2ZW4gJXMsIGV4cGVjdGVkICVzLCBnb3QgJXMnICUgKHJlcHIodGVzdCksIHJl
cHIoZXhwZWN0ZWQpLCByZXByKGFjdHVhbCkpKQogCiAgICAgZGVmIHRlc3Rfam9pbihzZWxmKToK
ICAgICAgICAgc2VsZi5xdWlja19jaGVjayhzZWxmLmZzLmpvaW4sCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0
LnB5CmluZGV4IGU2ZDFlNDI4ZjU1NzBlZWNmZjVlYzNmNmZjMWNkZDliMGRiNDM4OTkuLmQ2NTZi
MjU4MDAxNDhkOTQ0MzQ5OWIwOWYzMzUyZWNhNzUzNTBiNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0
LnB5CkBAIC02MCwxOSArNjAsMTkgQEAgY2xhc3MgR2VuZXJpY0ZpbGVTeXN0ZW1UZXN0cyhvYmpl
Y3QpOgogCiAgICAgZGVmIHRlc3RfZ2xvYl9fdHJhaWxpbmdfYXN0ZXJpc2soc2VsZik6CiAgICAg
ICAgIHNlbGYuZnMuY2hkaXIoc2VsZi5nZW5lcmljX3Rlc3RfZGlyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhzZXQoc2VsZi5mcy5nbG9iKCdmbyonKSksIHNldChbJ2Zvby50eHQnLCAnZm9v
YmFyJywgJ2Zvb2RpciddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoc2VsZi5mcy5n
bG9iKCdmbyonKSksIHNldChbJ2Zvby50eHQnLCAnZm9vYmFyJywgJ2Zvb2RpciddKSkKIAogICAg
IGRlZiB0ZXN0X2dsb2JfX2xlYWRpbmdfYXN0ZXJpc2soc2VsZik6CiAgICAgICAgIHNlbGYuZnMu
Y2hkaXIoc2VsZi5nZW5lcmljX3Rlc3RfZGlyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
ZXQoc2VsZi5mcy5nbG9iKCcqeHQnKSksIHNldChbJ2Zvby50eHQnXSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2V0KHNlbGYuZnMuZ2xvYignKnh0JykpLCBzZXQoWydmb28udHh0J10pKQog
CiAgICAgZGVmIHRlc3RfZ2xvYl9fbWlkZGxlX2FzdGVyaXNrKHNlbGYpOgogICAgICAgICBzZWxm
LmZzLmNoZGlyKHNlbGYuZ2VuZXJpY190ZXN0X2RpcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2V0KHNlbGYuZnMuZ2xvYignZipyJykpLCBzZXQoWydmb29iYXInLCAnZm9vZGlyJ10pKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChzZWxmLmZzLmdsb2IoJ2YqcicpKSwgc2V0KFsn
Zm9vYmFyJywgJ2Zvb2RpciddKSkKIAogICAgIGRlZiB0ZXN0X2dsb2JfX3BlcmlvZF9pc19lc2Nh
cGVkKHNlbGYpOgogICAgICAgICBzZWxmLmZzLmNoZGlyKHNlbGYuZ2VuZXJpY190ZXN0X2RpcikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KHNlbGYuZnMuZ2xvYignZm9vLionKSksIHNl
dChbJ2Zvby50eHQnXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHNlbGYuZnMuZ2xv
YignZm9vLionKSksIHNldChbJ2Zvby50eHQnXSkpCiAKIGNsYXNzIFJlYWxGaWxlU3lzdGVtVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSwgR2VuZXJpY0ZpbGVTeXN0ZW1UZXN0cyk6CiAgICAgZGVmIHNl
dFVwKHNlbGYpOgpAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBSZWFsRmlsZVN5c3RlbVRlc3QodW5p
dHRlc3QuVGVzdENhc2UsIEdlbmVyaWNGaWxlU3lzdGVtVGVzdHMpOgogICAgICAgICBpZiBzeXMu
cGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAgICAgICAgIG5ld2RpciA9ICdjOlxcJwogICAgICAg
ICBmcy5jaGRpcihuZXdkaXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZzLmdldGN3ZCgp
LCBuZXdkaXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnMuZ2V0Y3dkKCksIG5ld2RpcikK
ICAgICAgICAgZnMuY2hkaXIoY3dkKQogCiAgICAgZGVmIHRlc3RfY2hkaXJfX25vdGV4aXN0cyhz
ZWxmKToKQEAgLTI0NiwxMyArMjQ2LDEzIEBAIGNsYXNzIFJlYWxGaWxlU3lzdGVtVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSwgR2VuZXJpY0ZpbGVTeXN0ZW1UZXN0cyk6CiAKICAgICAgICAgZnMgPSBG
aWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLnJlbW92ZSgnZmlsZW5hbWUn
LCByZW1vdmVfd2l0aF9leGNlcHRpb24pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygtMSwg
UmVhbEZpbGVTeXN0ZW1UZXN0Ll9yZW1vdmVfZmFpbHVyZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoLTEsIFJlYWxGaWxlU3lzdGVtVGVzdC5fcmVtb3ZlX2ZhaWx1cmVzKQogCiAgICAgZGVm
IHRlc3Rfc2VwKHNlbGYpOgogICAgICAgICBmcyA9IEZpbGVTeXN0ZW0oKQogCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKGZzLnNlcCwgb3Muc2VwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhmcy5qb2luKCJmb28iLCAiYmFyIiksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnMuc2Vw
LCBvcy5zZXApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnMuam9pbigiZm9vIiwgImJhciIp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oImZvbyIsICJiYXIiKSkK
IAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9n
dGVzdGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d0ZXN0
aW5nLnB5CmluZGV4IGUzNjFjYjU5M2IxYTFjZTE4YTQxZDA3NDFhNmVhYTExMzA0ODBlMjMuLjBj
ZmE2Y2IwYWIyNmQ5MDM1ZTYwMTk1ZjRlY2E4NjQ0ZTczMjAyYTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d0ZXN0aW5nLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d0ZXN0aW5nLnB5CkBAIC03Miw3ICs3
Miw3IEBAIGNsYXNzIFRlc3RMb2dTdHJlYW0ob2JqZWN0KToKICAgICAgICAgbWVzc2FnZXM6IEEg
bGlzdCBvZiBsb2cgbWVzc2FnZSBzdHJpbmdzLgogCiAgICAgICAgICIiIgotICAgICAgICBzZWxm
Ll90ZXN0X2Nhc2UuYXNzZXJ0RXF1YWxzKG1lc3NhZ2VzLCBzZWxmLm1lc3NhZ2VzKQorICAgICAg
ICBzZWxmLl90ZXN0X2Nhc2UuYXNzZXJ0RXF1YWwobWVzc2FnZXMsIHNlbGYubWVzc2FnZXMpCiAK
IAogY2xhc3MgTG9nVGVzdGluZyhvYmplY3QpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxzX3VuaXR0ZXN0LnB5CmluZGV4IDcyNzg5
ZWIzN2M1ZDJlNTM0NzNiN2YxMGMzYjE0MDdiMDZkYThmMTkuLjZkN2NjNGRhNGY0MjQ3M2Y4ODE5
MzhhMGNkNGEzODUyZTMyMWZkMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9sb2d1dGlsc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNfdW5pdHRlc3QucHkKQEAgLTM3LDcgKzM3LDcg
QEAgY2xhc3MgR2V0TG9nZ2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVz
dF9nZXRfbG9nZ2VyX2luX3dlYmtpdHB5KHNlbGYpOgogICAgICAgICBsb2dnZXIgPSBsb2d1dGls
cy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsb2dnZXIu
bmFtZSwgIndlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHNfdW5pdHRlc3QiKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxvZ2dlci5uYW1lLCAid2Via2l0cHkuY29tbW9uLnN5c3RlbS5s
b2d1dGlsc191bml0dGVzdCIpCiAKICAgICBkZWYgdGVzdF9nZXRfbG9nZ2VyX25vdF9pbl93ZWJr
aXRweShzZWxmKToKICAgICAgICAgIyBUZW1wb3JhcmlseSBjaGFuZ2UgdGhlIHdvcmtpbmcgZGly
ZWN0b3J5IHNvIHRoYXQgd2UKQEAgLTQ3LDEwICs0NywxMCBAQCBjbGFzcyBHZXRMb2dnZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3MuY2hkaXIocm9vdF9kaXIpCiAKICAgICAg
ICAgbG9nZ2VyID0gbG9ndXRpbHMuZ2V0X2xvZ2dlcigiL1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJr
aXRweSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxvZ2dlci5uYW1lLCAidGVzdC13ZWJr
aXRweSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nZ2VyLm5hbWUsICJ0ZXN0LXdlYmtp
dHB5IikKIAogICAgICAgICBsb2dnZXIgPSBsb2d1dGlscy5nZXRfbG9nZ2VyKCIvVG9vbHMvU2Ny
aXB0cy90ZXN0LXdlYmtpdHB5LnB5IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobG9nZ2Vy
Lm5hbWUsICJ0ZXN0LXdlYmtpdHB5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dnZXIu
bmFtZSwgInRlc3Qtd2Via2l0cHkiKQogCiAgICAgICAgIG9zLmNoZGlyKHdvcmtpbmdfZGlyZWN0
b3J5KQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
b3V0cHV0Y2FwdHVyZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9v
dXRwdXRjYXB0dXJlLnB5CmluZGV4IDc4YTEyZjBlMjQ3ZTk4ZDg2YWI3YmQwMTM3YmFkYjViMDhh
NTc5OWYuLjI2NjcwZDIxNDZmMjdiNTFlMjQ4ODk5ZWYwY2I0NzU4OWYwYWM4NzEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0dXJlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9vdXRwdXRjYXB0dXJl
LnB5CkBAIC0xMTUsNyArMTE1LDcgQEAgY2xhc3MgT3V0cHV0Q2FwdHVyZVRlc3RDYXNlQmFzZSh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLnRlYXJEb3duKHNl
bGYpCiAKICAgICBkZWYgYXNzZXJ0U3Rkb3V0KHNlbGYsIGV4cGVjdGVkX3N0ZG91dCk6Ci0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX3N0ZG91dCwgc2VsZi5fX2NhcHR1cmVkX3N0
ZG91dC5nZXR2YWx1ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3N0ZG91
dCwgc2VsZi5fX2NhcHR1cmVkX3N0ZG91dC5nZXR2YWx1ZSgpKQogCiAgICAgZGVmIGFzc2VydFN0
ZGVycihzZWxmLCBleHBlY3RlZF9zdGRlcnIpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhl
eHBlY3RlZF9zdGRlcnIsIHNlbGYuX19jYXB0dXJlZF9zdGRlcnIuZ2V0dmFsdWUoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9zdGRlcnIsIHNlbGYuX19jYXB0dXJlZF9zdGRl
cnIuZ2V0dmFsdWUoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9wYXRoX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BhdGhfdW5pdHRlc3QucHkKaW5kZXggOTU0ZDMyZDcxZjEzNTNhYjJjZmE5Yzg0YmRh
MDRlZGIwNzRjYjAzNS4uN2E3MTk1ODRkZjQ4MTUyZjNkMWNlYTE5ZGUwYjEwNTMxOThiNjY0NyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BhdGhfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BhdGhf
dW5pdHRlc3QucHkKQEAgLTQxLDI4ICs0MSwyOCBAQCBjbGFzcyBBYnNwYXRoVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfYWJzcGF0aF90b191cmlfY3lnd2luKHNlbGYpOgog
ICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gJ2N5Z3dpbic6CiAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGF0aC5hYnNwYXRoX3RvX3VyaShzZWxmLnBsYXRm
b3JtaW5mbygpLCAnL2N5Z2RyaXZlL2MvZm9vL2Jhci5odG1sJyksCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocGF0aC5hYnNwYXRoX3RvX3VyaShzZWxmLnBsYXRmb3JtaW5mbygpLCAnL2N5Z2Ry
aXZlL2MvZm9vL2Jhci5odG1sJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlOi8v
L0M6L2Zvby9iYXIuaHRtbCcpCiAKICAgICBkZWYgdGVzdF9hYnNwYXRoX3RvX3VyaV91bml4eShz
ZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGF0aC5hYnNwYXRoX3RvX3VyaShNb2Nr
UGxhdGZvcm1JbmZvKCksICIvZm9vL2Jhci5odG1sIiksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGF0aC5hYnNwYXRoX3RvX3VyaShNb2NrUGxhdGZvcm1JbmZvKCksICIvZm9vL2Jhci5odG1s
IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlOi8vL2Zvby9iYXIuaHRtbCcpCiAK
ICAgICBkZWYgdGVzdF9hYnNwYXRoX3RvX3VyaV93aW4oc2VsZik6CiAgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybSAhPSAnd2luMzInOgogICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHBhdGguYWJzcGF0aF90b191cmkoc2VsZi5wbGF0Zm9ybWluZm8oKSwgJ2M6XFxm
b29cXGJhci5odG1sJyksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0aC5hYnNwYXRoX3Rv
X3VyaShzZWxmLnBsYXRmb3JtaW5mbygpLCAnYzpcXGZvb1xcYmFyLmh0bWwnKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZmlsZTovLy9jOi9mb28vYmFyLmh0bWwnKQogCiAgICAgZGVmIHRl
c3RfYWJzcGF0aF90b191cmlfZXNjYXBpbmdfdW5peHkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHBhdGguYWJzcGF0aF90b191cmkoTW9ja1BsYXRmb3JtSW5mbygpLCAnL2Zvby9i
YXIgKyBiYXolPy5odG1sJyksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0aC5hYnNwYXRo
X3RvX3VyaShNb2NrUGxhdGZvcm1JbmZvKCksICcvZm9vL2JhciArIGJheiU/Lmh0bWwnKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovLy9mb28vYmFyJTIwKyUyMGJheiUyNSUzRi5o
dG1sJykKIAogICAgICAgICAjIE5vdGUgdGhhdCB5b3UgY2FuJ3QgaGF2ZSAnPycgaW4gYSBmaWxl
bmFtZSBvbiB3aW5kb3dzLgogICAgIGRlZiB0ZXN0X2Fic3BhdGhfdG9fdXJpX2VzY2FwaW5nX2N5
Z3dpbihzZWxmKToKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICdjeWd3aW4nOgogICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhdGguYWJzcGF0aF90b191
cmkoc2VsZi5wbGF0Zm9ybWluZm8oKSwgJy9jeWdkcml2ZS9jL2Zvby9iYXIgKyBiYXolLmh0bWwn
KSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXRoLmFic3BhdGhfdG9fdXJpKHNlbGYucGxh
dGZvcm1pbmZvKCksICcvY3lnZHJpdmUvYy9mb28vYmFyICsgYmF6JS5odG1sJyksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdmaWxlOi8vL0M6L2Zvby9iYXIlMjArJTIwYmF6JTI1Lmh0bWwn
KQogCiAgICAgZGVmIHRlc3Rfc3RvcF9jeWdwYXRoX3N1YnByb2Nlc3Moc2VsZik6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3Jt
aW5mb191bml0dGVzdC5weQppbmRleCBhMmI0MjU1YjdkN2E4Njk5YjlhNzU5ZTc3N2ExYmJiYmQ0
ODEwMWZiLi4zMjcyMjllYjkzYWY5ZDY4NjM3OTM1MzRhOTNhNTM5NGE1YWU2MzliIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm9fdW5pdHRlc3QucHkKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgVGVzdFBsYXRmb3Jt
SW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlmIGluZm8uaXNfbWFjKCk6CiAgICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSA+IDApCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhpbmZvLnRvdGFsX2J5
dGVzX21lbW9yeSgpLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLnRv
dGFsX2J5dGVzX21lbW9yeSgpLCBOb25lKQogCiAgICAgZGVmIHRlc3Rfb3NfbmFtZV9hbmRfd3Jh
cHBlcnMoc2VsZik6CiAgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnbGlu
dXgyJykpCkBAIC0xMDAsMjggKzEwMCwyOCBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVic2Qo
KSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2RhcndpbicpLCBm
YWtlX3BsYXRmb3JtKCcxMC42LjMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5mby5v
c19uYW1lLCAnbWFjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLm9zX25hbWUsICdt
YWMnKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbGludXgoKSkKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
aW5mby5pc193aW4oKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVic2Qo
KSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywgdHVw
bGUoWzYsIDEsIDc2MDBdKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8ub3NfbmFt
ZSwgJ3dpbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby5vc19uYW1lLCAnd2luJykK
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2xpbnV4KCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoaW5mby5pc19tYWMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluZm8u
aXNfd2luKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19mcmVlYnNkKCkpCiAK
ICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdjeWd3aW4nKSwgZXhlY3V0
aXZlPWZha2VfZXhlY3V0aXZlKCc2LjEuNzYwMCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhpbmZvLm9zX25hbWUsICd3aW4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8ub3Nf
bmFtZSwgJ3dpbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19saW51eCgpKQog
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShpbmZvLmlzX3dpbigpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNf
ZnJlZWJzZCgpKQogCiAgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnZnJl
ZWJzZDgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5mby5vc19uYW1lLCAnZnJlZWJz
ZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby5vc19uYW1lLCAnZnJlZWJzZCcpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19saW51eCgpKQogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5p
c193aW4oKSkKQEAgLTEzMSwyOCArMTMxLDI4IEBAIGNsYXNzIFRlc3RQbGF0Zm9ybUluZm8odW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rfb3NfdmVyc2lvbihzZWxmKToKICAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYubWFrZV9pbmZvLCBmYWtl
X3N5cygnZGFyd2luJyksIGZha2VfcGxhdGZvcm0oJzEwLjQuMycpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnZGFyd2luJyksIGZha2VfcGxhdGZv
cm0oJzEwLjUuMScpKS5vc192ZXJzaW9uLCAnbGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgn
MTAuNi4xJykpLm9zX3ZlcnNpb24sICdzbm93bGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgn
MTAuNy4xJykpLm9zX3ZlcnNpb24sICdsaW9uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
c2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2RhcndpbicpLCBmYWtlX3BsYXRmb3JtKCcxMC44LjEn
KSkub3NfdmVyc2lvbiwgJ21vdW50YWlubGlvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgnMTAuOS4w
JykpLm9zX3ZlcnNpb24sICdmdXR1cmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
bWFrZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgnMTAuNS4xJykpLm9z
X3ZlcnNpb24sICdsZW9wYXJkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2Vf
aW5mbyhmYWtlX3N5cygnZGFyd2luJyksIGZha2VfcGxhdGZvcm0oJzEwLjYuMScpKS5vc192ZXJz
aW9uLCAnc25vd2xlb3BhcmQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9p
bmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgnMTAuNy4xJykpLm9zX3ZlcnNp
b24sICdsaW9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfaW5mbyhmYWtl
X3N5cygnZGFyd2luJyksIGZha2VfcGxhdGZvcm0oJzEwLjguMScpKS5vc192ZXJzaW9uLCAnbW91
bnRhaW5saW9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfaW5mbyhmYWtl
X3N5cygnZGFyd2luJyksIGZha2VfcGxhdGZvcm0oJzEwLjkuMCcpKS5vc192ZXJzaW9uLCAnZnV0
dXJlJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfaW5mbyhmYWtlX3N5
cygnbGludXgyJykpLm9zX3ZlcnNpb24sICdsdWNpZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2xpbnV4MicpKS5vc192ZXJzaW9uLCAnbHVjaWQn
KQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdm
cmVlYnNkOCcpLCBmYWtlX3BsYXRmb3JtKCcnLCAnOC4zLVBSRVJFTEVBU0UnKSkub3NfdmVyc2lv
biwgJzguMy1QUkVSRUxFQVNFJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtl
X2luZm8oZmFrZV9zeXMoJ2ZyZWVic2Q5JyksIGZha2VfcGxhdGZvcm0oJycsICc5LjAtUkVMRUFT
RScpKS5vc192ZXJzaW9uLCAnOS4wLVJFTEVBU0UnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdmcmVlYnNkOCcpLCBmYWtlX3BsYXRmb3JtKCcnLCAn
OC4zLVBSRVJFTEVBU0UnKSkub3NfdmVyc2lvbiwgJzguMy1QUkVSRUxFQVNFJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnZnJlZWJzZDknKSwgZmFr
ZV9wbGF0Zm9ybSgnJywgJzkuMC1SRUxFQVNFJykpLm9zX3ZlcnNpb24sICc5LjAtUkVMRUFTRScp
CiAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYubWFrZV9p
bmZvLCBmYWtlX3N5cygnd2luMzInLCB0dXBsZShbNSwgMCwgMTIzNF0pKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzYs
IDIsIDEyMzRdKSkpLm9zX3ZlcnNpb24sICdmdXR1cmUnKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnd2luMzInLCB0dXBsZShbNiwgMSwgNzYwMF0p
KSkub3NfdmVyc2lvbiwgJzdzcDAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1h
a2VfaW5mbyhmYWtlX3N5cygnd2luMzInLCB0dXBsZShbNiwgMCwgMTIzNF0pKSkub3NfdmVyc2lv
biwgJ3Zpc3RhJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFr
ZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzUsIDEsIDEyMzRdKSkpLm9zX3ZlcnNpb24sICd4cCcpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywg
dHVwbGUoWzYsIDIsIDEyMzRdKSkpLm9zX3ZlcnNpb24sICdmdXR1cmUnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCd3aW4zMicsIHR1cGxlKFs2LCAx
LCA3NjAwXSkpKS5vc192ZXJzaW9uLCAnN3NwMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzYsIDAsIDEyMzRdKSkpLm9z
X3ZlcnNpb24sICd2aXN0YScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX2lu
Zm8oZmFrZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzUsIDEsIDEyMzRdKSkpLm9zX3ZlcnNpb24sICd4
cCcpCiAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYubWFr
ZV9pbmZvLCBmYWtlX3N5cygnd2luMzInKSwgZXhlY3V0aXZlPWZha2VfZXhlY3V0aXZlKCc1LjAu
MTIzNCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfaW5mbyhmYWtlX3N5
cygnY3lnd2luJyksIGV4ZWN1dGl2ZT1mYWtlX2V4ZWN1dGl2ZSgnNi4yLjEyMzQnKSkub3NfdmVy
c2lvbiwgJ2Z1dHVyZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFrZV9pbmZv
KGZha2Vfc3lzKCdjeWd3aW4nKSwgZXhlY3V0aXZlPWZha2VfZXhlY3V0aXZlKCc2LjEuNzYwMCcp
KS5vc192ZXJzaW9uLCAnN3NwMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFr
ZV9pbmZvKGZha2Vfc3lzKCdjeWd3aW4nKSwgZXhlY3V0aXZlPWZha2VfZXhlY3V0aXZlKCc2LjAu
MTIzNCcpKS5vc192ZXJzaW9uLCAndmlzdGEnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
ZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnY3lnd2luJyksIGV4ZWN1dGl2ZT1mYWtlX2V4ZWN1dGl2
ZSgnNS4xLjEyMzQnKSkub3NfdmVyc2lvbiwgJ3hwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnY3lnd2luJyksIGV4ZWN1dGl2ZT1mYWtlX2V4ZWN1
dGl2ZSgnNi4yLjEyMzQnKSkub3NfdmVyc2lvbiwgJ2Z1dHVyZScpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2N5Z3dpbicpLCBleGVjdXRpdmU9ZmFr
ZV9leGVjdXRpdmUoJzYuMS43NjAwJykpLm9zX3ZlcnNpb24sICc3c3AwJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnY3lnd2luJyksIGV4ZWN1dGl2
ZT1mYWtlX2V4ZWN1dGl2ZSgnNi4wLjEyMzQnKSkub3NfdmVyc2lvbiwgJ3Zpc3RhJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnY3lnd2luJyksIGV4
ZWN1dGl2ZT1mYWtlX2V4ZWN1dGl2ZSgnNS4xLjEyMzQnKSkub3NfdmVyc2lvbiwgJ3hwJykKIAog
ICAgIGRlZiB0ZXN0X2Rpc3BsYXlfbmFtZShzZWxmKToKICAgICAgICAgaW5mbyA9IHNlbGYubWFr
ZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSkKQEAgLTE2OSwxNiArMTY5LDE2IEBAIGNsYXNzIFRl
c3RQbGF0Zm9ybUluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfdG90YWxf
Ynl0ZXNfbWVtb3J5KHNlbGYpOgogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9z
eXMoJ2RhcndpbicpLCBmYWtlX3BsYXRmb3JtKCcxMC42LjMnKSwgZmFrZV9leGVjdXRpdmUoJzEy
MzQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5mby50b3RhbF9ieXRlc19tZW1vcnko
KSwgMTIzNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLnRvdGFsX2J5dGVzX21lbW9y
eSgpLCAxMjM0KQogCiAgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnd2lu
MzInLCB0dXBsZShbNiwgMSwgNzYwMF0pKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5m
by50b3RhbF9ieXRlc19tZW1vcnkoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChp
bmZvLnRvdGFsX2J5dGVzX21lbW9yeSgpLCBOb25lKQogCiAgICAgICAgIGluZm8gPSBzZWxmLm1h
a2VfaW5mbyhmYWtlX3N5cygnbGludXgyJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGlu
Zm8udG90YWxfYnl0ZXNfbWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
aW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSwgTm9uZSkKIAogICAgICAgICBpbmZvID0gc2VsZi5t
YWtlX2luZm8oZmFrZV9zeXMoJ2ZyZWVic2Q5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaW5mby50b3RhbF9ieXRlc19tZW1vcnkoKSwgTm9uZSkKIAogCiBpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3VzZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vdXNlcl91bml0dGVzdC5weQppbmRleCA4NmI5ZGI3ZDEyZWViNzYwMDBlODA1NzIwZDQ3MTFk
YTVlZDMzNzY5Li5iZDg2ZDIyOGY1MzJlMWIyYzAwNDVlYjhiMzEyMmNmODk1ODg2Mzc3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlcl91bml0
dGVzdC5weQpAQCAtMTIwLDEyICsxMjAsMTIgQEAgY2xhc3MgVXNlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgZXhwZWN0ZWQsIGlucHV0cyA9IHRlc3RfY2FzZQogCiAgICAg
ICAgICAgICBkZWYgbW9ja19yYXdfaW5wdXQobWVzc2FnZSk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRbMF0sIG1lc3NhZ2UpCisgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RlZFswXSwgbWVzc2FnZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gaW5wdXRzWzFdCiAKICAgICAgICAgICAgIHJlc3VsdCA9IFVzZXIoKS5jb25maXJtKGRlZmF1
bHQ9aW5wdXRzWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3X2lu
cHV0PW1vY2tfcmF3X2lucHV0KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0
ZWRbMV0sIHJlc3VsdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRbMV0s
IHJlc3VsdCkKIAogICAgIGRlZiB0ZXN0X3dhcm5faWZfYXBwbGljYXRpb25faXNfeGNvZGUoc2Vs
Zik6CiAgICAgICAgIG91dHB1dCA9IE91dHB1dENhcHR1cmUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3ppcGZpbGVzZXRfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vemlwZmlsZXNldF91bml0dGVzdC5w
eQppbmRleCAxNmE3NGNiZDczNDFiYzYxNGU5Y2EyMTE5NjY1ZDQxMzhkMTI0OTdkLi4yMmJhNzIw
ODIzMjYxODUxYWZjOWZiOWZhMGFkNmM0YTBlZjVmMjVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vemlwZmlsZXNldF91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vemlwZmlsZXNldF91bml0dGVzdC5w
eQpAQCAtNjcsMTUgKzY3LDE1IEBAIGNsYXNzIFppcEZpbGVTZXRUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKIAogICAgIGRlZiB0ZXN0X29wZW4oc2VsZik6CiAgICAgICAgIGZpbGUgPSBzZWxmLl96
aXAub3BlbignYS9iL3NvbWUtb3RoZXItZmlsZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KCdhL2Ivc29tZS1vdGhlci1maWxlJywgZmlsZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKCdvdGhlciBjb250ZW50cycsIGZpbGUuY29udGVudHMoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnYS9iL3NvbWUtb3RoZXItZmlsZScsIGZpbGUubmFtZSgpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdvdGhlciBjb250ZW50cycsIGZpbGUuY29udGVudHMoKSkKIAogICAg
IGRlZiB0ZXN0X2Nsb3NlKHNlbGYpOgogICAgICAgICB6aXBmaWxlc2V0ID0gWmlwRmlsZVNldCgn
YmxhaCcsIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYubWFrZV9mYWtlX3ppcCkKICAgICAgICAgemlw
ZmlsZXNldC5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygnY29udGVudHMnLCBzZWxmLl96aXAucmVhZCgnc29tZS1maWxlJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NvbnRlbnRzJywgc2VsZi5femlwLnJlYWQoJ3NvbWUt
ZmlsZScpKQogCiAgICAgZGVmIHRlc3RfZXh0cmFjdChzZWxmKToKICAgICAgICAgc2VsZi5fZmls
ZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgnL3NvbWUtZGlyJykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxpc3RfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi93YXRjaGxpc3Qvd2F0Y2hsaXN0X3Vu
aXR0ZXN0LnB5CmluZGV4IDA5MDEwYjI4ODJlNzI4NDYxNzcyN2VhZDY2ZTdjMzY4MjFkNTkyY2Uu
LjY3ZmYzYjAxYWNmYTUyNmE2MmI3OTI2MTlhOTc5NmVlYzA0N2U5NzMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3dhdGNobGlzdC93YXRjaGxpc3RfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vd2F0Y2hsaXN0L3dhdGNobGlz
dF91bml0dGVzdC5weQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBXYXRjaExpc3RUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICcgICAgICAgIF0sJwogICAgICAgICAgICAnICAg
IH0sJwogICAgICAgICAgICAgJ30nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQoW10p
LCB3YXRjaF9saXN0LmZpbmRfbWF0Y2hpbmdfZGVmaW5pdGlvbnMoRElGRl9URVNUX0RBVEEpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChbXSksIHdhdGNoX2xpc3QuZmluZF9tYXRjaGlu
Z19kZWZpbml0aW9ucyhESUZGX1RFU1RfREFUQSkpCiAKICAgICBkZWYgdGVzdF9maWxlbmFtZV9k
ZWZpbml0aW9uKHNlbGYpOgogICAgICAgICB3YXRjaF9saXN0ID0gc2VsZi5fd2F0Y2hfbGlzdF9w
YXJzZXIucGFyc2UoCkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFdhdGNoTGlzdFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJyAgICAgICAgXSwnCiAgICAgICAgICAgICcgICAg
fSwnCiAgICAgICAgICAgICAnfScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChbJ1dh
dGNoTGlzdDEnXSksIHdhdGNoX2xpc3QuZmluZF9tYXRjaGluZ19kZWZpbml0aW9ucyhESUZGX1RF
U1RfREFUQSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KFsnV2F0Y2hMaXN0MSddKSwg
d2F0Y2hfbGlzdC5maW5kX21hdGNoaW5nX2RlZmluaXRpb25zKERJRkZfVEVTVF9EQVRBKSkKIAog
ICAgIGRlZiB0ZXN0X2NjX3J1bGVzX3NpbXBsZShzZWxmKToKICAgICAgICAgd2F0Y2hfbGlzdCA9
IHNlbGYuX3dhdGNoX2xpc3RfcGFyc2VyLnBhcnNlKApAQCAtODUsNyArODUsNyBAQCBjbGFzcyBX
YXRjaExpc3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgJyAgICB9LCcKICAg
ICAgICAgICAgICd9JykKICAgICAgICAgY2NfYW5kX21lc3NhZ2VzID0gd2F0Y2hfbGlzdC5kZXRl
cm1pbmVfY2NfYW5kX21lc3NhZ2VzKERJRkZfVEVTVF9EQVRBKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyh7CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoewogICAgICAgICAgICAgICAgICdj
Y19saXN0JzogWydsZXZpbkBjaHJvbWl1bS5vcmcnXSwKICAgICAgICAgICAgICAgICAnbWVzc2Fn
ZXMnOiBbXSwKICAgICAgICAgICAgICAgICB9LCBjY19hbmRfbWVzc2FnZXMpCkBAIC0xMDksNyAr
MTA5LDcgQEAgY2xhc3MgV2F0Y2hMaXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICAnICAgIH0sJwogICAgICAgICAgICAgJ30nKQogICAgICAgICBjY19hbmRfbWVzc2FnZXMg
PSB3YXRjaF9saXN0LmRldGVybWluZV9jY19hbmRfbWVzc2FnZXMoRElGRl9URVNUX0RBVEEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHsKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7CiAg
ICAgICAgICAgICAgICAgJ2NjX2xpc3QnOiBbJ2xldmluQGNocm9taXVtLm9yZyddLAogICAgICAg
ICAgICAgICAgICdtZXNzYWdlcyc6IFtdLAogICAgICAgICAgICAgICAgIH0sIGNjX2FuZF9tZXNz
YWdlcykKQEAgLTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBXYXRjaExpc3RUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgICAgICcgICAgfSwnCiAgICAgICAgICAgICAnfScpCiAgICAgICAg
IGNjX2FuZF9tZXNzYWdlcyA9IHdhdGNoX2xpc3QuZGV0ZXJtaW5lX2NjX2FuZF9tZXNzYWdlcyhE
SUZGX1RFU1RfREFUQSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoeworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHsKICAgICAgICAgICAgICAgICAnY2NfbGlzdCc6IFsnbGV2aW5AY2hyb21p
dW0ub3JnJ10sCiAgICAgICAgICAgICAgICAgJ21lc3NhZ2VzJzogWydtc2cxJywgJ21zZzInXSwK
ICAgICAgICAgICAgICAgICB9LCBjY19hbmRfbWVzc2FnZXMpCkBAIC0xNjMsNyArMTYzLDcgQEAg
Y2xhc3MgV2F0Y2hMaXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnICAg
IH0sJwogICAgICAgICAgICAgJ30nKQogICAgICAgICBjY19hbmRfbWVzc2FnZXMgPSB3YXRjaF9s
aXN0LmRldGVybWluZV9jY19hbmRfbWVzc2FnZXMoRElGRl9URVNUX0RBVEEpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHsKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7CiAgICAgICAgICAg
ICAgICAgJ2NjX2xpc3QnOiBbXSwKICAgICAgICAgICAgICAgICAnbWVzc2FnZXMnOiBbXSwKICAg
ICAgICAgICAgICAgICB9LCBjY19hbmRfbWVzc2FnZXMpCkBAIC0xODUsNyArMTg1LDcgQEAgY2xh
c3MgV2F0Y2hMaXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnICAgIH0s
JwogICAgICAgICAgICAgJ30nKQogICAgICAgICBjY19hbmRfbWVzc2FnZXMgPSB3YXRjaF9saXN0
LmRldGVybWluZV9jY19hbmRfbWVzc2FnZXMoRElGRl9URVNUX0RBVEEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHsKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh7CiAgICAgICAgICAgICAg
ICAgJ2NjX2xpc3QnOiBbJ2VyaWNAd2Via2l0Lm9yZyddLAogICAgICAgICAgICAgICAgICdtZXNz
YWdlcyc6IFtdLAogICAgICAgICAgICAgICAgIH0sIGNjX2FuZF9tZXNzYWdlcykKQEAgLTIwNyw3
ICsyMDcsNyBAQCBjbGFzcyBXYXRjaExpc3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgICcgICAgfSwnCiAgICAgICAgICAgICAnfScpCiAgICAgICAgIGNjX2FuZF9tZXNzYWdl
cyA9IHdhdGNoX2xpc3QuZGV0ZXJtaW5lX2NjX2FuZF9tZXNzYWdlcyhESUZGX1RFU1RfREFUQSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoeworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHsK
ICAgICAgICAgICAgICAgICAnY2NfbGlzdCc6IFsnYWJhcnRoQHdlYmtpdC5vcmcnXSwKICAgICAg
ICAgICAgICAgICAnbWVzc2FnZXMnOiBbXSwKICAgICAgICAgICAgICAgICB9LCBjY19hbmRfbWVz
c2FnZXMpCkBAIC0yMzYsNyArMjM2LDcgQEAgY2xhc3MgV2F0Y2hMaXN0VGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICAgICAnICAgIH0sJwogICAgICAgICAgICAgJ30nKQogICAgICAg
ICBjY19hbmRfbWVzc2FnZXMgPSB3YXRjaF9saXN0LmRldGVybWluZV9jY19hbmRfbWVzc2FnZXMo
RElGRl9URVNUX0RBVEEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHsKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh7CiAgICAgICAgICAgICAgICAgJ2NjX2xpc3QnOiBbJ2xldmluQGNocm9t
aXVtLm9yZyddLAogICAgICAgICAgICAgICAgICdtZXNzYWdlcyc6IFsiVGVzdCBtZXNzYWdlLiJd
LAogICAgICAgICAgICAgICAgIH0sIGNjX2FuZF9tZXNzYWdlcykKQEAgLTI3MSw3ICsyNzEsNyBA
QCBjbGFzcyBXYXRjaExpc3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICcg
ICAgfSwnCiAgICAgICAgICAgICAnfScpCiAgICAgICAgIGNjX2FuZF9tZXNzYWdlcyA9IHdhdGNo
X2xpc3QuZGV0ZXJtaW5lX2NjX2FuZF9tZXNzYWdlcyhESUZGX1RFU1RfREFUQSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoeworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHsKICAgICAgICAg
ICAgICAgICAnY2NfbGlzdCc6IFsnZXJpY0B3ZWJraXQub3JnJ10sCiAgICAgICAgICAgICAgICAg
J21lc3NhZ2VzJzogWyJUaGlzIGlzIGEgdGVzdCBtZXNzYWdlLiJdLAogICAgICAgICAgICAgICAg
IH0sIGNjX2FuZF9tZXNzYWdlcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90
ZXN0X3J1bm5lcl91bml0dGVzdC5weQppbmRleCA0ZWZhNGUwMGM4NDk5N2FmZTk1OTg0Zjg4ZjVj
MTg4MzYzOTMzYzcyLi41MDFmYjQzMjY0ZDc1NDM4Y2I5M2I0YWMxNjY5NWIwOTBiYTExZjRmIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0
LnB5CkBAIC03NSwxNCArNzUsMTQgQEAgY2xhc3MgTG9ja0NoZWNraW5nUnVubmVyKExheW91dFRl
c3RSdW5uZXIpOgogCiAgICAgZGVmIGhhbmRsZV9maW5pc2hlZF9saXN0KHNlbGYsIHNvdXJjZSwg
bGlzdF9uYW1lLCBudW1fdGVzdHMsIGVsYXBzZWRfdGltZSk6CiAgICAgICAgIGlmIG5vdCBzZWxm
Ll9maW5pc2hlZF9saXN0X2NhbGxlZDoKLSAgICAgICAgICAgIHNlbGYuX3Rlc3Rlci5hc3NlcnRF
cXVhbHMobGlzdF9uYW1lLCAnbG9ja2VkX3Rlc3RzJykKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rl
ci5hc3NlcnRFcXVhbChsaXN0X25hbWUsICdsb2NrZWRfdGVzdHMnKQogICAgICAgICAgICAgc2Vs
Zi5fdGVzdGVyLmFzc2VydFRydWUoc2VsZi5fcmVtYWluaW5nX2xvY2tlZF9zaGFyZHMpCiAgICAg
ICAgICAgICBzZWxmLl90ZXN0ZXIuYXNzZXJ0VHJ1ZShzZWxmLl9oYXNfaHR0cF9sb2NrIGlzIHNl
bGYuX3Nob3VsZF9oYXZlX2h0dHBfbG9jaykKIAogICAgICAgICBzdXBlcihMb2NrQ2hlY2tpbmdS
dW5uZXIsIHNlbGYpLmhhbmRsZV9maW5pc2hlZF9saXN0KHNvdXJjZSwgbGlzdF9uYW1lLCBudW1f
dGVzdHMsIGVsYXBzZWRfdGltZSkKIAogICAgICAgICBpZiBub3Qgc2VsZi5fZmluaXNoZWRfbGlz
dF9jYWxsZWQ6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0ZXIuYXNzZXJ0RXF1YWxzKHNlbGYuX3Jl
bWFpbmluZ19sb2NrZWRfc2hhcmRzLCBbXSkKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rlci5hc3Nl
cnRFcXVhbChzZWxmLl9yZW1haW5pbmdfbG9ja2VkX3NoYXJkcywgW10pCiAgICAgICAgICAgICBz
ZWxmLl90ZXN0ZXIuYXNzZXJ0RmFsc2Uoc2VsZi5faGFzX2h0dHBfbG9jaykKICAgICAgICAgICAg
IHNlbGYuX2ZpbmlzaGVkX2xpc3RfY2FsbGVkID0gVHJ1ZQogCkBAIC0xMzYsOCArMTM2LDggQEAg
Y2xhc3MgTGF5b3V0VGVzdFJ1bm5lclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
IyBJbnRlcnJ1cHQgaWYgd2UndmUgZXhjZWVkZWQgZWl0aGVyIGxpbWl0OgogICAgICAgICBydW5u
ZXIuX29wdGlvbnMuZXhpdF9hZnRlcl9uX2NyYXNoZXNfb3JfdGltZW91dHMgPSAxMAogICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhUZXN0UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24sIHJ1bm5lci5f
aW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRzLCByZXN1bHRfc3VtbWFyeSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0X3N1bW1hcnkucmVzdWx0c1sncGFzc2VzL3RleHQuaHRt
bCddLnR5cGUsIHRlc3RfZXhwZWN0YXRpb25zLlNLSVApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHNbJ3Bhc3Nlcy9pbWFnZS5odG1sJ10udHlwZSwgdGVz
dF9leHBlY3RhdGlvbnMuU0tJUCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRfc3Vt
bWFyeS5yZXN1bHRzWydwYXNzZXMvdGV4dC5odG1sJ10udHlwZSwgdGVzdF9leHBlY3RhdGlvbnMu
U0tJUCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRfc3VtbWFyeS5yZXN1bHRzWydw
YXNzZXMvaW1hZ2UuaHRtbCddLnR5cGUsIHRlc3RfZXhwZWN0YXRpb25zLlNLSVApCiAKICAgICAg
ICAgcnVubmVyLl9vcHRpb25zLmV4aXRfYWZ0ZXJfbl9jcmFzaGVzX29yX3RpbWVvdXRzID0gTm9u
ZQogICAgICAgICBydW5uZXIuX29wdGlvbnMuZXhpdF9hZnRlcl9uX2ZhaWx1cmVzID0gMTAKQEAg
LTE1NCwxNCArMTU0LDE0IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHJlc3VsdF9zdW1tYXJ5ID0gUmVzdWx0U3VtbWFyeShleHBlY3Rh
dGlvbnMsIFt0ZXN0XSwgMSwgc2V0KCkpCiAgICAgICAgIHJlc3VsdCA9IFRlc3RSZXN1bHQodGVz
dF9uYW1lPXRlc3QsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0
Y2hEaWROb3RPY2N1cigpXSwgcmVmdGVzdF90eXBlPVsnIT0nXSkKICAgICAgICAgcnVubmVyLl91
cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChyZXN1bHRfc3VtbWFyeSwgcmVzdWx0KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygxLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoMCwgcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgwLCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQogCiAgICAgICAgIHJl
c3VsdF9zdW1tYXJ5ID0gUmVzdWx0U3VtbWFyeShleHBlY3RhdGlvbnMsIFt0ZXN0XSwgMSwgc2V0
KCkpCiAgICAgICAgIHJlc3VsdCA9IFRlc3RSZXN1bHQodGVzdF9uYW1lPXRlc3QsIGZhaWx1cmVz
PVtdLCByZWZ0ZXN0X3R5cGU9Wyc9PSddKQogICAgICAgICBydW5uZXIuX3VwZGF0ZV9zdW1tYXJ5
X3dpdGhfcmVzdWx0KHJlc3VsdF9zdW1tYXJ5LCByZXN1bHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKDAsIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygxLCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDAsIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQpCiAKICAgICBkZWYgdGVzdF9zZXJ2ZXJzX3N0
YXJ0ZWQoc2VsZik6CiAKQEAgLTE4OSwzMSArMTg5LDMxIEBAIGNsYXNzIExheW91dFRlc3RSdW5u
ZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJ1bm5lci5fbmVlZHNfaHR0cCA9
IFRydWUKICAgICAgICAgcnVubmVyLl9uZWVkc193ZWJzb2NrZXRzID0gRmFsc2UKICAgICAgICAg
cnVubmVyLnN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKG51bWJlcl9vZl9zZXJ2ZXJzPTQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuaHR0cF9zdGFydGVkLCBUcnVlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZWxmLndlYnNvY2tldF9zdGFydGVkLCBGYWxzZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLmh0dHBfc3RhcnRlZCwgVHJ1ZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLndlYnNvY2tldF9zdGFydGVkLCBGYWxzZSkKICAgICAgICAgcnVubmVy
LnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxm
Lmh0dHBfc3RvcHBlZCwgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi53ZWJz
b2NrZXRfc3RvcHBlZCwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5odHRw
X3N0b3BwZWQsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi53ZWJzb2NrZXRf
c3RvcHBlZCwgRmFsc2UpCiAKICAgICAgICAgc2VsZi5odHRwX3N0YXJ0ZWQgPSBzZWxmLmh0dHBf
c3RvcHBlZCA9IHNlbGYud2Vic29ja2V0X3N0YXJ0ZWQgPSBzZWxmLndlYnNvY2tldF9zdG9wcGVk
ID0gRmFsc2UKICAgICAgICAgcnVubmVyLl9uZWVkc19odHRwID0gVHJ1ZQogICAgICAgICBydW5u
ZXIuX25lZWRzX3dlYnNvY2tldHMgPSBUcnVlCiAgICAgICAgIHJ1bm5lci5zdGFydF9zZXJ2ZXJz
X3dpdGhfbG9jayhudW1iZXJfb2Zfc2VydmVycz00KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLmh0dHBfc3RhcnRlZCwgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2Vs
Zi53ZWJzb2NrZXRfc3RhcnRlZCwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
Lmh0dHBfc3RhcnRlZCwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLndlYnNv
Y2tldF9zdGFydGVkLCBUcnVlKQogICAgICAgICBydW5uZXIuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9j
aygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuaHR0cF9zdG9wcGVkLCBUcnVlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLndlYnNvY2tldF9zdG9wcGVkLCBUcnVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaHR0cF9zdG9wcGVkLCBUcnVlKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYud2Vic29ja2V0X3N0b3BwZWQsIFRydWUpCiAKICAgICAg
ICAgc2VsZi5odHRwX3N0YXJ0ZWQgPSBzZWxmLmh0dHBfc3RvcHBlZCA9IHNlbGYud2Vic29ja2V0
X3N0YXJ0ZWQgPSBzZWxmLndlYnNvY2tldF9zdG9wcGVkID0gRmFsc2UKICAgICAgICAgcnVubmVy
Ll9uZWVkc19odHRwID0gRmFsc2UKICAgICAgICAgcnVubmVyLl9uZWVkc193ZWJzb2NrZXRzID0g
RmFsc2UKICAgICAgICAgcnVubmVyLnN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKG51bWJlcl9vZl9z
ZXJ2ZXJzPTQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuaHR0cF9zdGFydGVkLCBG
YWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi53ZWJzb2NrZXRfc3RhcnRlZCwg
RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5odHRwX3N0YXJ0ZWQsIEZhbHNl
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYud2Vic29ja2V0X3N0YXJ0ZWQsIEZhbHNl
KQogICAgICAgICBydW5uZXIuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNlbGYuaHR0cF9zdG9wcGVkLCBGYWxzZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi53ZWJzb2NrZXRfc3RvcHBlZCwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5odHRwX3N0b3BwZWQsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYud2Vic29ja2V0X3N0b3BwZWQsIEZhbHNlKQogCiAKIGNsYXNzIFNoYXJkZXJUZXN0
cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0yNDUsMTEgKzI0NSwxMSBAQCBjbGFzcyBTaGFyZGVy
VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICByZXR1cm4gc2VsZi5zaGFyZGVyLnNo
YXJkX3Rlc3RzKFtzZWxmLmdldF90ZXN0X2lucHV0KHRlc3QpIGZvciB0ZXN0IGluIHRlc3RfbGlz
dF0sIG51bV93b3JrZXJzLCBmdWxseV9wYXJhbGxlbCkKIAogICAgIGRlZiBhc3NlcnRfc2hhcmRz
KHNlbGYsIGFjdHVhbF9zaGFyZHMsIGV4cGVjdGVkX3NoYXJkX25hbWVzKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobGVuKGFjdHVhbF9zaGFyZHMpLCBsZW4oZXhwZWN0ZWRfc2hhcmRfbmFt
ZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhY3R1YWxfc2hhcmRzKSwgbGVuKGV4
cGVjdGVkX3NoYXJkX25hbWVzKSkKICAgICAgICAgZm9yIGksIHNoYXJkIGluIGVudW1lcmF0ZShh
Y3R1YWxfc2hhcmRzKToKICAgICAgICAgICAgIGV4cGVjdGVkX3NoYXJkX25hbWUsIGV4cGVjdGVk
X3Rlc3RfbmFtZXMgPSBleHBlY3RlZF9zaGFyZF9uYW1lc1tpXQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2hhcmQubmFtZSwgZXhwZWN0ZWRfc2hhcmRfbmFtZSkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKFt0ZXN0X2lucHV0LnRlc3RfbmFtZSBmb3IgdGVzdF9pbnB1dCBp
biBzaGFyZC50ZXN0X2lucHV0c10sCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNoYXJk
Lm5hbWUsIGV4cGVjdGVkX3NoYXJkX25hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFt0ZXN0X2lucHV0LnRlc3RfbmFtZSBmb3IgdGVzdF9pbnB1dCBpbiBzaGFyZC50ZXN0X2lucHV0
c10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90ZXN0X25hbWVzKQog
CiAgICAgZGVmIHRlc3Rfc2hhcmRfYnlfZGlyKHNlbGYpOgpAQCAtMzA3LDE0ICszMDcsMTQgQEAg
Y2xhc3MgU2hhcmRlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9zaGFy
ZF9pbl90d29faGFzX25vX2xvY2tlZF9zaGFyZHMoc2VsZik6CiAgICAgICAgIGxvY2tlZCwgdW5s
b2NrZWQgPSBzZWxmLmdldF9zaGFyZHMobnVtX3dvcmtlcnM9MSwgZnVsbHlfcGFyYWxsZWw9RmFs
c2UsCiAgICAgICAgICAgICAgdGVzdF9saXN0PVsnYW5pbWF0aW9ucy9rZXlmcmFtZS5odG1sJ10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihsb2NrZWQpLCAwKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhsZW4odW5sb2NrZWQpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihsb2NrZWQpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih1bmxvY2tlZCks
IDEpCiAKICAgICBkZWYgdGVzdF9zaGFyZF9pbl90d29faGFzX25vX3VubG9ja2VkX3NoYXJkcyhz
ZWxmKToKICAgICAgICAgbG9ja2VkLCB1bmxvY2tlZCA9IHNlbGYuZ2V0X3NoYXJkcyhudW1fd29y
a2Vycz0xLCBmdWxseV9wYXJhbGxlbD1GYWxzZSwKICAgICAgICAgICAgICB0ZXN0X2xpc3Q9Wydo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy91bmljb2RlLmh0bSddKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhsZW4obG9ja2VkKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVu
KHVubG9ja2VkKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obG9ja2VkKSwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odW5sb2NrZWQpLCAwKQogCiAgICAgZGVmIHRl
c3RfbXVsdGlwbGVfbG9ja2VkX3NoYXJkcyhzZWxmKToKICAgICAgICAgbG9ja2VkLCB1bmxvY2tl
ZCA9IHNlbGYuZ2V0X3NoYXJkcyhudW1fd29ya2Vycz00LCBmdWxseV9wYXJhbGxlbD1GYWxzZSwg
bWF4X2xvY2tlZF9zaGFyZHM9MikKQEAgLTMzOSw3ICszMzksNyBAQCBjbGFzcyBTaGFyZGVyVGVz
dHModW5pdHRlc3QuVGVzdENhc2UpOgogCiBjbGFzcyBOYXR1cmFsQ29tcGFyZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3NlcnRfY21wKHNlbGYsIHgsIHksIHJlc3VsdCk6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNtcChTaGFyZGVyLm5hdHVyYWxfc29ydF9rZXkoeCks
IFNoYXJkZXIubmF0dXJhbF9zb3J0X2tleSh5KSksIHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjbXAoU2hhcmRlci5uYXR1cmFsX3NvcnRfa2V5KHgpLCBTaGFyZGVyLm5hdHVyYWxf
c29ydF9rZXkoeSkpLCByZXN1bHQpCiAKICAgICBkZWYgdGVzdF9uYXR1cmFsX2NvbXBhcmUoc2Vs
Zik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2NtcCgnYScsICdhJywgMCkKQEAgLTM2OSw3ICszNjks
NyBAQCBjbGFzcyBLZXlDb21wYXJlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuc2hhcmRlciA9IFNoYXJkZXIoc3BsaXQsICcvJywgMSkKIAogICAgIGRlZiBhc3NlcnRfY21w
KHNlbGYsIHgsIHksIHJlc3VsdCk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNtcChzZWxm
LnNoYXJkZXIudGVzdF9rZXkoeCksIHNlbGYuc2hhcmRlci50ZXN0X2tleSh5KSksIHJlc3VsdCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXAoc2VsZi5zaGFyZGVyLnRlc3Rfa2V5KHgpLCBz
ZWxmLnNoYXJkZXIudGVzdF9rZXkoeSkpLCByZXN1bHQpCiAKICAgICBkZWYgdGVzdF90ZXN0X2tl
eShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfY21wKCcvYScsICcvYScsIDApCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25m
aWd1cmF0aW9uX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbl91bml0dGVzdC5weQppbmRleCA1YzQzYjZhYzZi
ZDA1M2YwMDlmZDM2OGY2YWQxNzRkNGJjZmIxZjk3Li5lYzk5Y2Y2YjQ3ZWRjNWQyMDRiMmQxNGM2
YzJjNjZmMTIxMTczNWE2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb25f
dW5pdHRlc3QucHkKQEAgLTUxLDIyICs1MSwyMiBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvblRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICByZXN1bHRfY29uZmlnX2RpY3QgPSB7fQog
ICAgICAgICBmb3IgY2F0ZWdvcnksIHNwZWNpZmllciBpbiBjb25maWcuaXRlbXMoKToKICAgICAg
ICAgICAgIHJlc3VsdF9jb25maWdfZGljdFtjYXRlZ29yeV0gPSBzcGVjaWZpZXIKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoeyd2ZXJzaW9uJzogJ3hwJywgJ2FyY2hpdGVjdHVyZSc6ICd4ODYn
LCAnYnVpbGRfdHlwZSc6ICdyZWxlYXNlJ30sIHJlc3VsdF9jb25maWdfZGljdCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh7J3ZlcnNpb24nOiAneHAnLCAnYXJjaGl0ZWN0dXJlJzogJ3g4Nics
ICdidWlsZF90eXBlJzogJ3JlbGVhc2UnfSwgcmVzdWx0X2NvbmZpZ19kaWN0KQogCiAgICAgZGVm
IHRlc3Rfa2V5cyhzZWxmKToKICAgICAgICAgY29uZmlnID0gVGVzdENvbmZpZ3VyYXRpb24oJ3hw
JywgJ3g4NicsICdyZWxlYXNlJykKICAgICAgICAgcmVzdWx0X2NvbmZpZ19rZXlzID0gW10KICAg
ICAgICAgZm9yIGNhdGVnb3J5IGluIGNvbmZpZy5rZXlzKCk6CiAgICAgICAgICAgICByZXN1bHRf
Y29uZmlnX2tleXMuYXBwZW5kKGNhdGVnb3J5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
ZXQoWyd2ZXJzaW9uJywgJ2FyY2hpdGVjdHVyZScsICdidWlsZF90eXBlJ10pLCBzZXQocmVzdWx0
X2NvbmZpZ19rZXlzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoWyd2ZXJzaW9uJywg
J2FyY2hpdGVjdHVyZScsICdidWlsZF90eXBlJ10pLCBzZXQocmVzdWx0X2NvbmZpZ19rZXlzKSkK
IAogICAgIGRlZiB0ZXN0X3N0cihzZWxmKToKICAgICAgICAgY29uZmlnID0gVGVzdENvbmZpZ3Vy
YXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Jzx4cCwgeDg2LCByZWxlYXNlPicsIHN0cihjb25maWcpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCc8eHAsIHg4NiwgcmVsZWFzZT4nLCBzdHIoY29uZmlnKSkKIAogICAgIGRlZiB0ZXN0X3Jl
cHIoc2VsZik6CiAgICAgICAgIGNvbmZpZyA9IFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYn
LCAncmVsZWFzZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCJUZXN0Q29uZmlnKHZlcnNp
b249J3hwJywgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPSdyZWxlYXNlJykiLCByZXBy
KGNvbmZpZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlRlc3RDb25maWcodmVyc2lvbj0n
eHAnLCBhcmNoaXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9J3JlbGVhc2UnKSIsIHJlcHIoY29u
ZmlnKSkKIAogICAgIGRlZiB0ZXN0X2hhc2goc2VsZik6CiAgICAgICAgIGNvbmZpZ19kaWN0ID0g
e30KQEAgLTgxLDExICs4MSwxMSBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvblRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoVGVzdENvbmZpZ3VyYXRpb24o
J3hwJywgJ3g4NicsICdyZWxlYXNlJykgaW4gY29uZmlnX2RpY3QpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycpIGluIGNvbmZp
Z19kaWN0KQogICAgICAgICBjb25maWdzX2xpc3QgPSBbVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywg
J3g4NicsICdyZWxlYXNlJyksIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcn
KSwgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycpXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhsZW4oY29uZmlnc19saXN0KSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobGVuKHNldChjb25maWdzX2xpc3QpKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4oY29uZmlnc19saXN0KSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2V0
KGNvbmZpZ3NfbGlzdCkpLCAyKQogCiAgICAgZGVmIHRlc3RfZXEoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScp
LCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwg
VGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJykpCiAgICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWxzKFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScp
LCBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ2RlYnVnJykpCiAKICAgICBkZWYgdGVz
dF92YWx1ZXMoc2VsZik6CkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9u
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJlc3VsdF9jb25maWdfdmFsdWVzID0g
W10KICAgICAgICAgZm9yIHZhbHVlIGluIGNvbmZpZy52YWx1ZXMoKToKICAgICAgICAgICAgIHJl
c3VsdF9jb25maWdfdmFsdWVzLmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2V0KFsneHAnLCAneDg2JywgJ3JlbGVhc2UnXSksIHNldChyZXN1bHRfY29uZmlnX3ZhbHVl
cykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KFsneHAnLCAneDg2JywgJ3JlbGVhc2Un
XSksIHNldChyZXN1bHRfY29uZmlnX3ZhbHVlcykpCiAKIAogY2xhc3MgU3BlY2lmaWVyU29ydGVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xMDMsNDggKzEwMyw0OCBAQCBjbGFzcyBTcGVj
aWZpZXJTb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2luaXQo
c2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcigpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNvcnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdjb250cm9sJyksIE5v
bmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZp
ZXIoJ2NvbnRyb2wnKSwgTm9uZSkKICAgICAgICAgc29ydGVyID0gU3BlY2lmaWVyU29ydGVyKHNl
bGYuX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
b3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcigneHAnKSwgJ3ZlcnNpb24nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCd4cCcpLCAndmVy
c2lvbicpCiAgICAgICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcihzZWxmLl9hbGxfdGVzdF9j
b25maWd1cmF0aW9ucywgTU9DS19NQUNST1MpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNv
cnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdtYWMnKSwgJ3ZlcnNpb24nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdtYWMnKSwgJ3Zl
cnNpb24nKQogCiAgICAgZGVmIHRlc3RfYWRkX3NwZWNpZmllcihzZWxmKToKICAgICAgICAgc29y
dGVyID0gU3BlY2lmaWVyU29ydGVyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVy
LmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2NvbnRyb2wnKSwgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignY29udHJvbCcpLCBOb25l
KQogICAgICAgICBzb3J0ZXIuYWRkX3NwZWNpZmllcigndmVyc2lvbicsICdjb250cm9sJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ2Nv
bnRyb2wnKSwgJ3ZlcnNpb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRl
Z29yeV9mb3Jfc3BlY2lmaWVyKCdjb250cm9sJyksICd2ZXJzaW9uJykKICAgICAgICAgc29ydGVy
LmFkZF9zcGVjaWZpZXIoJ3ZlcnNpb24nLCAnb25lJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ29uZScpLCAndmVyc2lvbicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ29uZScp
LCAndmVyc2lvbicpCiAgICAgICAgIHNvcnRlci5hZGRfc3BlY2lmaWVyKCdhcmNoaXRlY3R1cmUn
LCAncmVuYWlzc2FuY2UnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuY2F0ZWdv
cnlfZm9yX3NwZWNpZmllcignb25lJyksICd2ZXJzaW9uJykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ3JlbmFpc3NhbmNlJyksICdhcmNo
aXRlY3R1cmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRlZ29yeV9mb3Jf
c3BlY2lmaWVyKCdvbmUnKSwgJ3ZlcnNpb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNv
cnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdyZW5haXNzYW5jZScpLCAnYXJjaGl0ZWN0dXJl
JykKIAogICAgIGRlZiB0ZXN0X2FkZF9tYWNyb3Moc2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNw
ZWNpZmllclNvcnRlcihzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucykKICAgICAgICAgc29y
dGVyLmFkZF9tYWNyb3MoTU9DS19NQUNST1MpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNv
cnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdtYWMnKSwgJ3ZlcnNpb24nKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignd2luJyksICd2
ZXJzaW9uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVyLmNhdGVnb3J5X2Zvcl9z
cGVjaWZpZXIoJ3g4NicpLCAnYXJjaGl0ZWN0dXJlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignbWFjJyksICd2ZXJzaW9uJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignd2luJyks
ICd2ZXJzaW9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZXIuY2F0ZWdvcnlfZm9y
X3NwZWNpZmllcigneDg2JyksICdhcmNoaXRlY3R1cmUnKQogCiAgICAgZGVmIHRlc3RfY2F0ZWdv
cnlfcHJpb3JpdHkoc2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNwZWNpZmllclNvcnRlcihzZWxm
Ll9hbGxfdGVzdF9jb25maWd1cmF0aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29y
dGVyLmNhdGVnb3J5X3ByaW9yaXR5KCd2ZXJzaW9uJyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNvcnRlci5jYXRlZ29yeV9wcmlvcml0eSgnYnVpbGRfdHlwZScpLCAyKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRlZ29yeV9wcmlvcml0eSgndmVyc2lvbicpLCAw
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5jYXRlZ29yeV9wcmlvcml0eSgnYnVp
bGRfdHlwZScpLCAyKQogCiAgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX3ByaW9yaXR5KHNlbGYpOgog
ICAgICAgICBzb3J0ZXIgPSBTcGVjaWZpZXJTb3J0ZXIoc2VsZi5fYWxsX3Rlc3RfY29uZmlndXJh
dGlvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNvcnRlci5zcGVjaWZpZXJfcHJpb3Jp
dHkoJ3g4NicpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuc3BlY2lmaWVy
X3ByaW9yaXR5KCdzbm93bGVvcGFyZCcpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNv
cnRlci5zcGVjaWZpZXJfcHJpb3JpdHkoJ3g4NicpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNvcnRlci5zcGVjaWZpZXJfcHJpb3JpdHkoJ3Nub3dsZW9wYXJkJyksIDApCiAKICAgICBk
ZWYgdGVzdF9zb3J0X3NwZWNpZmllcnMoc2VsZik6CiAgICAgICAgIHNvcnRlciA9IFNwZWNpZmll
clNvcnRlcihzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucywgTU9DS19NQUNST1MpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNvcnRlci5zb3J0X3NwZWNpZmllcnMoc2V0KCkpLCBbXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc29ydGVyLnNvcnRfc3BlY2lmaWVycyhzZXQoWyd4
ODYnXSkpLCBbJ3g4NiddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuc29ydF9z
cGVjaWZpZXJzKHNldChbJ3g4NicsICd3aW43J10pKSwgWyd3aW43JywgJ3g4NiddKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuc29ydF9zcGVjaWZpZXJzKHNldChbJ3g4NicsICdk
ZWJ1ZycsICd3aW43J10pKSwgWyd3aW43JywgJ3g4NicsICdkZWJ1ZyddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzb3J0ZXIuc29ydF9zcGVjaWZpZXJzKHNldChbJ3Nub3dsZW9wYXJkJywg
J3g4NicsICdkZWJ1ZycsICd3aW43J10pKSwgWydzbm93bGVvcGFyZCcsICd3aW43JywgJ3g4Nics
ICdkZWJ1ZyddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzb3J0ZXIuc29ydF9zcGVjaWZp
ZXJzKHNldChbJ3g4NicsICdtYWMnLCAnZGVidWcnLCAnd2luNyddKSksIFsnbWFjJywgJ3dpbjcn
LCAneDg2JywgJ2RlYnVnJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLnNvcnRf
c3BlY2lmaWVycyhzZXQoKSksIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5z
b3J0X3NwZWNpZmllcnMoc2V0KFsneDg2J10pKSwgWyd4ODYnXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzb3J0ZXIuc29ydF9zcGVjaWZpZXJzKHNldChbJ3g4NicsICd3aW43J10pKSwgWyd3
aW43JywgJ3g4NiddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlci5zb3J0X3NwZWNp
ZmllcnMoc2V0KFsneDg2JywgJ2RlYnVnJywgJ3dpbjcnXSkpLCBbJ3dpbjcnLCAneDg2JywgJ2Rl
YnVnJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVyLnNvcnRfc3BlY2lmaWVycyhz
ZXQoWydzbm93bGVvcGFyZCcsICd4ODYnLCAnZGVidWcnLCAnd2luNyddKSksIFsnc25vd2xlb3Bh
cmQnLCAnd2luNycsICd4ODYnLCAnZGVidWcnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
b3J0ZXIuc29ydF9zcGVjaWZpZXJzKHNldChbJ3g4NicsICdtYWMnLCAnZGVidWcnLCAnd2luNydd
KSksIFsnbWFjJywgJ3dpbjcnLCAneDg2JywgJ2RlYnVnJ10pCiAKIAogY2xhc3MgVGVzdENvbmZp
Z3VyYXRpb25Db252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE1MywyOCArMTUz
LDI4IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLl9faW5pdF9fKHNlbGYsIHRlc3RGdW5j
KQogCiAgICAgZGVmIHRlc3Rfc3ltbWV0cmljX2RpZmZlcmVuY2Uoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLnN5bW1ldHJpY19kaWZm
ZXJlbmNlKFtzZXQoWydhJywgJ2InXSksIHNldChbJ2InLCAnYyddKV0pLCBzZXQoWydhJywgJ2Mn
XSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVy
LnN5bW1ldHJpY19kaWZmZXJlbmNlKFtzZXQoWydhJywgJ2InXSksIHNldChbJ2InLCAnYyddKSwg
c2V0KFsnYicsICdkJ10pXSksIHNldChbJ2EnLCAnYycsICdkJ10pKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLnN5bW1ldHJpY19kaWZmZXJlbmNl
KFtzZXQoWydhJywgJ2InXSksIHNldChbJ2InLCAnYyddKV0pLCBzZXQoWydhJywgJ2MnXSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIuc3ltbWV0
cmljX2RpZmZlcmVuY2UoW3NldChbJ2EnLCAnYiddKSwgc2V0KFsnYicsICdjJ10pLCBzZXQoWydi
JywgJ2QnXSldKSwgc2V0KFsnYScsICdjJywgJ2QnXSkpCiAKICAgICBkZWYgdGVzdF90b19jb25m
aWdfc2V0KHNlbGYpOgogICAgICAgICBjb252ZXJ0ZXIgPSBUZXN0Q29uZmlndXJhdGlvbkNvbnZl
cnRlcihzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucykKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhjb252ZXJ0ZXIudG9fY29uZmlnX3NldChzZXQoKSksIHNlbGYuX2FsbF90ZXN0X2Nv
bmZpZ3VyYXRpb25zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19jb25m
aWdfc2V0KHNldCgpKSwgc2VsZi5fYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMpCiAKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsnZm9vJ10pKSwg
c2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX2NvbmZpZ19zZXQo
c2V0KFsnZm9vJ10pKSwgc2V0KCkpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVy
dGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsneHAnLCAnZm9vJ10pKSwgc2V0KCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsneHAnLCAnZm9vJ10p
KSwgc2V0KCkpCiAKICAgICAgICAgZXJyb3JzID0gW10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsneHAnLCAnZm9vJ10pLCBlcnJvcnMpLCBz
ZXQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3JzLCBbIlVucmVjb2duaXplZCBt
b2RpZmllciAnZm9vJyJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19j
b25maWdfc2V0KHNldChbJ3hwJywgJ2ZvbyddKSwgZXJyb3JzKSwgc2V0KCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXJyb3JzLCBbIlVucmVjb2duaXplZCBtb2RpZmllciAnZm9vJyJdKQog
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChb
J3hwJywgJ3g4Nl82NCddKSksIHNldCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZl
cnRlci50b19jb25maWdfc2V0KHNldChbJ3hwJywgJ3g4Nl82NCddKSksIHNldCgpKQogCiAgICAg
ICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRp
b24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyksCiAgICAgICAgIF0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChbJ3hwJywgJ3JlbGVhc2UnXSkp
LCBjb25maWdzX3RvX21hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50
b19jb25maWdfc2V0KHNldChbJ3hwJywgJ3JlbGVhc2UnXSkpLCBjb25maWdzX3RvX21hdGNoKQog
CiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAgVGVzdENvbmZp
Z3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdyZWxlYXNlJyksCkBAIC0xODQsMTMgKzE4
NCwxMyBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4NicsICdy
ZWxlYXNlJyksCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2XzY0
JywgJ3JlbGVhc2UnKSwKICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252
ZXJ0ZXIudG9fY29uZmlnX3NldChzZXQoWydyZWxlYXNlJ10pKSwgY29uZmlnc190b19tYXRjaCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb252ZXJ0ZXIudG9fY29uZmlnX3NldChzZXQoWydy
ZWxlYXNlJ10pKSwgY29uZmlnc190b19tYXRjaCkKIAogICAgICAgICBjb25maWdzX3RvX21hdGNo
ID0gc2V0KFsKICAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2XzY0
JywgJ3JlbGVhc2UnKSwKICAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAn
eDg2XzY0JywgJ2RlYnVnJyksCiAgICAgICAgIF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChbJ3g4Nl82NCddKSksIGNvbmZpZ3NfdG9fbWF0
Y2gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0
KFsneDg2XzY0J10pKSwgY29uZmlnc190b19tYXRjaCkKIAogICAgICAgICBjb25maWdzX3RvX21h
dGNoID0gc2V0KFsKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODZf
NjQnLCAncmVsZWFzZScpLApAQCAtMjAwLDcgKzIwMCw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0
aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBUZXN0Q29u
ZmlndXJhdGlvbignc25vd2xlb3BhcmQnLCAneDg2JywgJ3JlbGVhc2UnKSwKICAgICAgICAgICAg
IFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcsICd4ODYnLCAnZGVidWcnKSwKICAgICAg
ICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQo
c2V0KFsnbHVjaWQnLCAnc25vd2xlb3BhcmQnXSkpLCBjb25maWdzX3RvX21hdGNoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChbJ2x1Y2lkJywg
J3Nub3dsZW9wYXJkJ10pKSwgY29uZmlnc190b19tYXRjaCkKIAogICAgICAgICBjb25maWdzX3Rv
X21hdGNoID0gc2V0KFsKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4
ODYnLCAncmVsZWFzZScpLApAQCAtMjA4LDE0ICsyMDgsMTQgQEAgY2xhc3MgVGVzdENvbmZpZ3Vy
YXRpb25Db252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIFRlc3RD
b25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcsICd4ODYnLCAncmVsZWFzZScpLAogICAgICAgICAg
ICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdkZWJ1ZycpLAogICAg
ICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIudG9fY29uZmlnX3Nl
dChzZXQoWydsdWNpZCcsICdzbm93bGVvcGFyZCcsICd4ODYnXSkpLCBjb25maWdzX3RvX21hdGNo
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChb
J2x1Y2lkJywgJ3Nub3dsZW9wYXJkJywgJ3g4NiddKSksIGNvbmZpZ3NfdG9fbWF0Y2gpCiAKICAg
ICAgICAgY29uZmlnc190b19tYXRjaCA9IHNldChbCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJh
dGlvbignbHVjaWQnLCAneDg2XzY0JywgJ3JlbGVhc2UnKSwKICAgICAgICAgICAgIFRlc3RDb25m
aWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAncmVsZWFzZScpLAogICAgICAgICAgICAgVGVzdENv
bmZpZ3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdyZWxlYXNlJyksCiAgICAgICAgIF0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChb
J2x1Y2lkJywgJ3Nub3dsZW9wYXJkJywgJ3JlbGVhc2UnXSkpLCBjb25maWdzX3RvX21hdGNoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19jb25maWdfc2V0KHNldChbJ2x1
Y2lkJywgJ3Nub3dsZW9wYXJkJywgJ3JlbGVhc2UnXSkpLCBjb25maWdzX3RvX21hdGNoKQogCiAg
ICAgZGVmIHRlc3RfbWFjcm9fZXhwYW5zaW9uKHNlbGYpOgogICAgICAgICBjb252ZXJ0ZXIgPSBU
ZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucywg
TU9DS19NQUNST1MpCkBAIC0yMjUsNyArMjI1LDcgQEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25D
b252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIFRlc3RDb25maWd1
cmF0aW9uKCd2aXN0YScsICd4ODYnLCAncmVsZWFzZScpLAogICAgICAgICAgICAgVGVzdENvbmZp
Z3VyYXRpb24oJ3dpbjcnLCAneDg2JywgJ3JlbGVhc2UnKSwKICAgICAgICAgXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX2NvbmZpZ19zZXQoc2V0KFsnd2luJywgJ3Jl
bGVhc2UnXSkpLCBjb25maWdzX3RvX21hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bnZlcnRlci50b19jb25maWdfc2V0KHNldChbJ3dpbicsICdyZWxlYXNlJ10pKSwgY29uZmlnc190
b19tYXRjaCkKIAogICAgICAgICBjb25maWdzX3RvX21hdGNoID0gc2V0KFsKICAgICAgICAgICAg
IFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpLApAQCAtMjM0LDcgKzIz
NCw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2JywgJ3Jl
bGVhc2UnKSwKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODZfNjQn
LCAncmVsZWFzZScpLAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252
ZXJ0ZXIudG9fY29uZmlnX3NldChzZXQoWyd3aW4nLCAnbHVjaWQnLCAncmVsZWFzZSddKSksIGNv
bmZpZ3NfdG9fbWF0Y2gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX2Nv
bmZpZ19zZXQoc2V0KFsnd2luJywgJ2x1Y2lkJywgJ3JlbGVhc2UnXSkpLCBjb25maWdzX3RvX21h
dGNoKQogCiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAgVGVz
dENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyksCkBAIC0yNDIsMzAgKzI0Miwz
MCBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAneDg2JywgJ3JlbGVh
c2UnKSwKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcsICd4ODYn
LCAncmVsZWFzZScpLAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252
ZXJ0ZXIudG9fY29uZmlnX3NldChzZXQoWyd3aW4nLCAnbWFjJywgJ3JlbGVhc2UnXSkpLCBjb25m
aWdzX3RvX21hdGNoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19jb25m
aWdfc2V0KHNldChbJ3dpbicsICdtYWMnLCAncmVsZWFzZSddKSksIGNvbmZpZ3NfdG9fbWF0Y2gp
CiAKICAgICBkZWYgdGVzdF90b19zcGVjaWZpZXJfbGlzdHMoc2VsZik6CiAgICAgICAgIGNvbnZl
cnRlciA9IFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyKHNlbGYuX2FsbF90ZXN0X2NvbmZpZ3Vy
YXRpb25zLCBNT0NLX01BQ1JPUykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0
ZXIudG9fc3BlY2lmaWVyc19saXN0KHNldChzZWxmLl9hbGxfdGVzdF9jb25maWd1cmF0aW9ucykp
LCBbW11dKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIudG9fc3BlY2lmaWVy
c19saXN0KHNldCgpKSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRv
X3NwZWNpZmllcnNfbGlzdChzZXQoc2VsZi5fYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMpKSwgW1td
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19saXN0
KHNldCgpKSwgW10pCiAKICAgICAgICAgY29uZmlnc190b19tYXRjaCA9IHNldChbCiAgICAgICAg
ICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwKICAgICAgICAg
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlz
dChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3JlbGVhc2UnLCAneHAnXSldKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19t
YXRjaCksIFtzZXQoWydyZWxlYXNlJywgJ3hwJ10pXSkKIAogICAgICAgICBjb25maWdzX3RvX21h
dGNoID0gc2V0KFsKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAn
cmVsZWFzZScpLAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdk
ZWJ1ZycpLAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIu
dG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsneHAnXSldKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmln
c190b19tYXRjaCksIFtzZXQoWyd4cCddKV0pCiAKICAgICAgICAgY29uZmlnc190b19tYXRjaCA9
IHNldChbCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2XzY0Jywg
J2RlYnVnJyksCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3Jl
bGVhc2UnKSwKICAgICAgICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVy
LnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3JlbGVhc2UnLCAn
eHAnXSksIHNldChbJ2RlYnVnJywgJ3g4Nl82NCcsICdsaW51eCddKV0pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNo
KSwgW3NldChbJ3JlbGVhc2UnLCAneHAnXSksIHNldChbJ2RlYnVnJywgJ3g4Nl82NCcsICdsaW51
eCddKV0pCiAKICAgICAgICAgY29uZmlnc190b19tYXRjaCA9IHNldChbCiAgICAgICAgICAgICBU
ZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2UnKSwKQEAgLTI3NSw3ICsyNzUs
NyBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdk
ZWJ1ZycpLAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4NicsICdk
ZWJ1ZycpLAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIu
dG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsncmVsZWFzZScsICd4
cCddKSwgc2V0KFsnZGVidWcnLCAnbGludXgnXSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWydy
ZWxlYXNlJywgJ3hwJ10pLCBzZXQoWydkZWJ1ZycsICdsaW51eCddKV0pCiAKICAgICAgICAgY29u
Zmlnc190b19tYXRjaCA9IHNldChbCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAn
LCAneDg2JywgJ3JlbGVhc2UnKSwKQEAgLTI4NSwxMyArMjg1LDEzIEBAIGNsYXNzIFRlc3RDb25m
aWd1cmF0aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBU
ZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2JywgJ3JlbGVhc2UnKSwKICAgICAgICAgICAg
IFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODZfNjQnLCAncmVsZWFzZScpLAogICAgICAg
ICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19s
aXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsncmVsZWFzZSddKV0pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNo
KSwgW3NldChbJ3JlbGVhc2UnXSldKQogCiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQo
WwogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyks
CiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignc25vd2xlb3BhcmQnLCAneDg2JywgJ3Jl
bGVhc2UnKSwKICAgICAgICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVy
LnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3hwJywgJ21hYycs
ICdyZWxlYXNlJ10pXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb252ZXJ0ZXIudG9fc3Bl
Y2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsneHAnLCAnbWFjJywgJ3JlbGVh
c2UnXSldKQogCiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAg
VGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyksCkBAIC0zMDAsMjYgKzMw
MCwyNiBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAneDg2JywgJ2Rl
YnVnJyksCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2JywgJ3Jl
bGVhc2UnKSwKICAgICAgICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVy
LnRvX3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3dpbjcnXSksIHNl
dChbJ3JlbGVhc2UnLCAnbGludXgnLCAneDg2J10pLCBzZXQoWydyZWxlYXNlJywgJ3hwJywgJ21h
YyddKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX3NwZWNpZmllcnNf
bGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3dpbjcnXSksIHNldChbJ3JlbGVhc2UnLCAn
bGludXgnLCAneDg2J10pLCBzZXQoWydyZWxlYXNlJywgJ3hwJywgJ21hYyddKV0pCiAKICAgICBk
ZWYgdGVzdF9tYWNyb19jb2xsYXBzaW5nKHNlbGYpOgogICAgICAgICBtYWNyb3MgPSB7J2Zvbyc6
IFsnYmFyJywgJ2JheiddLCAncGVvcGxlJzogWydib2InLCAnYWxpY2UnLCAnam9obiddfQogCiAg
ICAgICAgIHNwZWNpZmllcnNfbGlzdCA9IFtzZXQoWydqb2huJywgJ2dvZHppbGxhJywgJ2JvYics
ICdhbGljZSddKV0KICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIuY29sbGFwc2Vf
bWFjcm9zKG1hY3Jvcywgc3BlY2lmaWVyc19saXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzcGVjaWZpZXJzX2xpc3QsIFtzZXQoWydwZW9wbGUnLCAnZ29kemlsbGEnXSldKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNwZWNpZmllcnNfbGlzdCwgW3NldChbJ3Blb3BsZScsICdnb2R6
aWxsYSddKV0pCiAKICAgICAgICAgc3BlY2lmaWVyc19saXN0ID0gW3NldChbJ2pvaG4nLCAnZ29k
emlsbGEnLCAnYWxpY2UnXSldCiAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLmNv
bGxhcHNlX21hY3JvcyhtYWNyb3MsIHNwZWNpZmllcnNfbGlzdCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc3BlY2lmaWVyc19saXN0LCBbc2V0KFsnam9obicsICdnb2R6aWxsYScsICdhbGlj
ZScsICdnb2R6aWxsYSddKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BlY2lmaWVyc19s
aXN0LCBbc2V0KFsnam9obicsICdnb2R6aWxsYScsICdhbGljZScsICdnb2R6aWxsYSddKV0pCiAK
ICAgICAgICAgc3BlY2lmaWVyc19saXN0ID0gW3NldChbJ2JhcicsICdnb2R6aWxsYScsICdiYXon
LCAnYm9iJywgJ2FsaWNlJywgJ2pvaG4nXSldCiAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uQ29u
dmVydGVyLmNvbGxhcHNlX21hY3JvcyhtYWNyb3MsIHNwZWNpZmllcnNfbGlzdCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoc3BlY2lmaWVyc19saXN0LCBbc2V0KFsnZm9vJywgJ2dvZHppbGxh
JywgJ3Blb3BsZSddKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BlY2lmaWVyc19saXN0
LCBbc2V0KFsnZm9vJywgJ2dvZHppbGxhJywgJ3Blb3BsZSddKV0pCiAKICAgICAgICAgc3BlY2lm
aWVyc19saXN0ID0gW3NldChbJ2JhcicsICdnb2R6aWxsYScsICdiYXonLCAnYm9iJ10pLCBzZXQo
WydiYXInLCAnYmF6J10pLCBzZXQoWydwZW9wbGUnLCAnYWxpY2UnLCAnYm9iJywgJ2pvaG4nXSld
CiAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLmNvbGxhcHNlX21hY3JvcyhtYWNy
b3MsIHNwZWNpZmllcnNfbGlzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3BlY2lmaWVy
c19saXN0LCBbc2V0KFsnYm9iJywgJ2ZvbycsICdnb2R6aWxsYSddKSwgc2V0KFsnZm9vJ10pLCBz
ZXQoWydwZW9wbGUnXSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNwZWNpZmllcnNfbGlz
dCwgW3NldChbJ2JvYicsICdmb28nLCAnZ29kemlsbGEnXSksIHNldChbJ2ZvbyddKSwgc2V0KFsn
cGVvcGxlJ10pXSkKIAogICAgIGRlZiB0ZXN0X2NvbnZlcnRlcl9tYWNyb19jb2xsYXBzaW5nKHNl
bGYpOgogICAgICAgICBjb252ZXJ0ZXIgPSBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihzZWxm
Ll9hbGxfdGVzdF9jb25maWd1cmF0aW9ucywgTU9DS19NQUNST1MpCkBAIC0zMjksNyArMzI5LDcg
QEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd2aXN0YScsICd4ODYnLCAncmVsZWFz
ZScpLAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAneDg2JywgJ3JlbGVh
c2UnKSwKICAgICAgICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udmVydGVyLnRv
X3NwZWNpZmllcnNfbGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3dpbicsICdyZWxlYXNl
J10pXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19s
aXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsnd2luJywgJ3JlbGVhc2UnXSldKQogCiAgICAg
ICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRp
b24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyksCkBAIC0zMzgsNyArMzM4LDcgQEAgY2xhc3MgVGVz
dENvbmZpZ3VyYXRpb25Db252ZXJ0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAncmVsZWFzZScpLAogICAgICAg
ICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdyZWxlYXNlJyksCiAg
ICAgICAgIF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnZlcnRlci50b19zcGVjaWZp
ZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWyd3aW4nLCAnbGludXgnLCAncmVsZWFz
ZSddKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udmVydGVyLnRvX3NwZWNpZmllcnNf
bGlzdChjb25maWdzX3RvX21hdGNoKSwgW3NldChbJ3dpbicsICdsaW51eCcsICdyZWxlYXNlJ10p
XSkKIAogICAgICAgICBjb25maWdzX3RvX21hdGNoID0gc2V0KFsKICAgICAgICAgICAgIFRlc3RD
b25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpLApAQCAtMzQ2LDcgKzM0Niw3IEBA
IGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignd2luNycsICd4ODYnLCAncmVsZWFzZScp
LAogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdy
ZWxlYXNlJyksCiAgICAgICAgIF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnZlcnRl
ci50b19zcGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWyd3aW4nLCAnbWFj
JywgJ3JlbGVhc2UnXSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19z
cGVjaWZpZXJzX2xpc3QoY29uZmlnc190b19tYXRjaCksIFtzZXQoWyd3aW4nLCAnbWFjJywgJ3Jl
bGVhc2UnXSldKQogCiAgICAgICAgIGNvbmZpZ3NfdG9fbWF0Y2ggPSBzZXQoWwogICAgICAgICAg
ICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyksCkBAIC0zNTQsMTYg
KzM1NCwxNiBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAneDg2Jywg
J3JlbGVhc2UnKSwKICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcs
ICd4ODYnLCAncmVsZWFzZScpLAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhjb252ZXJ0ZXIudG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsn
d2luJywgJ21hYycsICdyZWxlYXNlJ10pXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb252
ZXJ0ZXIudG9fc3BlY2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsnd2luJywg
J21hYycsICdyZWxlYXNlJ10pXSkKIAogICAgICAgICBjb25maWdzX3RvX21hdGNoID0gc2V0KFsK
ICAgICAgICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpLAog
ICAgICAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Zpc3RhJywgJ3g4NicsICdyZWxlYXNlJyks
CiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignd2luNycsICd4ODYnLCAncmVsZWFzZScp
LAogICAgICAgICBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb252ZXJ0ZXIudG9fc3Bl
Y2lmaWVyc19saXN0KGNvbmZpZ3NfdG9fbWF0Y2gpLCBbc2V0KFsnd2luJywgJ3JlbGVhc2UnXSld
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnZlcnRlci50b19zcGVjaWZpZXJzX2xpc3Qo
Y29uZmlnc190b19tYXRjaCksIFtzZXQoWyd3aW4nLCAncmVsZWFzZSddKV0pCiAKICAgICBkZWYg
dGVzdF9zcGVjaWZpZXJfY29udmVydGVyX2FjY2VzcyhzZWxmKToKICAgICAgICAgc3BlY2lmaWVy
X3NvcnRlciA9IFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyKHNlbGYuX2FsbF90ZXN0X2NvbmZp
Z3VyYXRpb25zLCBNT0NLX01BQ1JPUykuc3BlY2lmaWVyX3NvcnRlcigpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNwZWNpZmllcl9zb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcignc25v
d2xlb3BhcmQnKSwgJ3ZlcnNpb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzcGVjaWZp
ZXJfc29ydGVyLmNhdGVnb3J5X2Zvcl9zcGVjaWZpZXIoJ21hYycpLCAndmVyc2lvbicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BlY2lmaWVyX3NvcnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lm
aWVyKCdzbm93bGVvcGFyZCcpLCAndmVyc2lvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c3BlY2lmaWVyX3NvcnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKCdtYWMnKSwgJ3ZlcnNpb24n
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IGQ3
OGFlM2YyYmMwMjJkMTYwYWM2MzEyZjlhNjM5ZmU5NzkwMWI1NWIuLmJiZTAzMWNkZTFkYmM3YTAx
YzJjMjk2ZTYyMGI0MmU0YzViODQ3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnNfdW5pdHRlc3QucHkKQEAgLTg0LDcgKzg0LDcgQEAgQnVnKHRlc3QpIGZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLmh0bWwgWyBXb250Rml4IE1hYyBdCiAgICAgICAgIHNlbGYuX2V4cCA9IFRl
c3RFeHBlY3RhdGlvbnMoc2VsZi5fcG9ydCwgc2VsZi5nZXRfYmFzaWNfdGVzdHMoKSwgZXhwZWN0
YXRpb25zX3RvX2xpbnQ9ZXhwZWN0YXRpb25zX3RvX2xpbnQpCiAKICAgICBkZWYgYXNzZXJ0X2V4
cChzZWxmLCB0ZXN0LCByZXN1bHQpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9l
eHAuZ2V0X2V4cGVjdGF0aW9ucyhzZWxmLmdldF90ZXN0KHRlc3QpKSwKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLl9leHAuZ2V0X2V4cGVjdGF0aW9ucyhzZWxmLmdldF90ZXN0KHRlc3Qp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KFtyZXN1bHRdKSkKIAogICAgIGRlZiBh
c3NlcnRfYmFkX2V4cGVjdGF0aW9ucyhzZWxmLCBleHBlY3RhdGlvbnMsIG92ZXJyaWRlcz1Ob25l
KToKQEAgLTEwOSwyOSArMTA5LDI5IEBAIGNsYXNzIE1pc2NUZXN0cyhCYXNlKToKIAogICAgIGRl
ZiB0ZXN0X3Jlc3VsdF93YXNfZXhwZWN0ZWQoc2VsZik6CiAgICAgICAgICMgdGVzdCBiYXNpY3MK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoVGVzdEV4cGVjdGF0aW9ucy5yZXN1bHRfd2FzX2V4
cGVjdGVkKFBBU1MsIHNldChbUEFTU10pLCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1GYWxzZSwg
dGVzdF9pc19za2lwcGVkPUZhbHNlKSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
VGVzdEV4cGVjdGF0aW9ucy5yZXN1bHRfd2FzX2V4cGVjdGVkKEZBSUwsIHNldChbUEFTU10pLCB0
ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1GYWxzZSwgdGVzdF9pc19za2lwcGVkPUZhbHNlKSwgRmFs
c2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZXN1bHRfd2Fz
X2V4cGVjdGVkKFBBU1MsIHNldChbUEFTU10pLCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1GYWxz
ZSwgdGVzdF9pc19za2lwcGVkPUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93YXNfZXhwZWN0ZWQoRkFJTCwgc2V0KFtQQVNTXSks
IHRlc3RfbmVlZHNfcmViYXNlbGluaW5nPUZhbHNlLCB0ZXN0X2lzX3NraXBwZWQ9RmFsc2UpLCBG
YWxzZSkKIAogICAgICAgICAjIHRlc3QgaGFuZGxpbmcgb2YgU0tJUHBlZCB0ZXN0cyBhbmQgcmVz
dWx0cwotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93
YXNfZXhwZWN0ZWQoU0tJUCwgc2V0KFtDUkFTSF0pLCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1G
YWxzZSwgdGVzdF9pc19za2lwcGVkPVRydWUpLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93YXNfZXhwZWN0ZWQoU0tJUCwgc2V0KFtDUkFT
SF0pLCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1GYWxzZSwgdGVzdF9pc19za2lwcGVkPUZhbHNl
KSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZXN1
bHRfd2FzX2V4cGVjdGVkKFNLSVAsIHNldChbQ1JBU0hdKSwgdGVzdF9uZWVkc19yZWJhc2VsaW5p
bmc9RmFsc2UsIHRlc3RfaXNfc2tpcHBlZD1UcnVlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93YXNfZXhwZWN0ZWQoU0tJUCwgc2V0KFtD
UkFTSF0pLCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1GYWxzZSwgdGVzdF9pc19za2lwcGVkPUZh
bHNlKSwgRmFsc2UpCiAKICAgICAgICAgIyB0ZXN0IGhhbmRsaW5nIG9mIE1JU1NJTkcgcmVzdWx0
cyBhbmQgdGhlIFJFQkFTRUxJTkUgbW9kaWZpZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
VGVzdEV4cGVjdGF0aW9ucy5yZXN1bHRfd2FzX2V4cGVjdGVkKE1JU1NJTkcsIHNldChbUEFTU10p
LCB0ZXN0X25lZWRzX3JlYmFzZWxpbmluZz1UcnVlLCB0ZXN0X2lzX3NraXBwZWQ9RmFsc2UpLCBU
cnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93
YXNfZXhwZWN0ZWQoTUlTU0lORywgc2V0KFtQQVNTXSksIHRlc3RfbmVlZHNfcmViYXNlbGluaW5n
PUZhbHNlLCB0ZXN0X2lzX3NraXBwZWQ9RmFsc2UpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlc3VsdF93YXNfZXhwZWN0ZWQoTUlTU0lORywgc2V0
KFtQQVNTXSksIHRlc3RfbmVlZHNfcmViYXNlbGluaW5nPVRydWUsIHRlc3RfaXNfc2tpcHBlZD1G
YWxzZSksIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5y
ZXN1bHRfd2FzX2V4cGVjdGVkKE1JU1NJTkcsIHNldChbUEFTU10pLCB0ZXN0X25lZWRzX3JlYmFz
ZWxpbmluZz1GYWxzZSwgdGVzdF9pc19za2lwcGVkPUZhbHNlKSwgRmFsc2UpCiAKICAgICBkZWYg
dGVzdF9yZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX3BpeGVsX2ZhaWx1cmVzKHNldChbRkFJTF0pKSwg
c2V0KFtGQUlMXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RFeHBlY3RhdGlvbnMu
cmVtb3ZlX3BpeGVsX2ZhaWx1cmVzKHNldChbUEFTU10pKSwgc2V0KFtQQVNTXSkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX3BpeGVsX2ZhaWx1cmVz
KHNldChbSU1BR0VdKSksIHNldChbUEFTU10pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhU
ZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9waXhlbF9mYWlsdXJlcyhzZXQoW0ZBSUxdKSksIHNldChb
RkFJTF0pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLnJlbW92
ZV9waXhlbF9mYWlsdXJlcyhzZXQoW1BBU1MsIElNQUdFLCBDUkFTSF0pKSwgc2V0KFtQQVNTLCBD
UkFTSF0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3Zl
X3BpeGVsX2ZhaWx1cmVzKHNldChbRkFJTF0pKSwgc2V0KFtGQUlMXSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2V0KFtQ
QVNTXSkpLCBzZXQoW1BBU1NdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0
YXRpb25zLnJlbW92ZV9waXhlbF9mYWlsdXJlcyhzZXQoW0lNQUdFXSkpLCBzZXQoW1BBU1NdKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9waXhlbF9m
YWlsdXJlcyhzZXQoW0ZBSUxdKSksIHNldChbRkFJTF0pKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX3BpeGVsX2ZhaWx1cmVzKHNldChbUEFTUywgSU1B
R0UsIENSQVNIXSkpLCBzZXQoW1BBU1MsIENSQVNIXSkpCiAKICAgICBkZWYgdGVzdF9zdWZmaXhl
c19mb3JfZXhwZWN0YXRpb25zKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0
RXhwZWN0YXRpb25zLnN1ZmZpeGVzX2Zvcl9leHBlY3RhdGlvbnMoc2V0KFtGQUlMXSkpLCBzZXQo
Wyd0eHQnLCAncG5nJywgJ3dhdiddKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoVGVzdEV4
cGVjdGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRpb25zKHNldChbSU1BR0VdKSksIHNldChb
J3BuZyddKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoVGVzdEV4cGVjdGF0aW9ucy5zdWZm
aXhlc19mb3JfZXhwZWN0YXRpb25zKHNldChbRkFJTCwgSU1BR0UsIENSQVNIXSkpLCBzZXQoWyd0
eHQnLCAncG5nJywgJ3dhdiddKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoVGVzdEV4cGVj
dGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRpb25zKHNldCgpKSwgc2V0KCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRp
b25zKHNldChbRkFJTF0pKSwgc2V0KFsndHh0JywgJ3BuZycsICd3YXYnXSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRpb25z
KHNldChbSU1BR0VdKSksIHNldChbJ3BuZyddKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChU
ZXN0RXhwZWN0YXRpb25zLnN1ZmZpeGVzX2Zvcl9leHBlY3RhdGlvbnMoc2V0KFtGQUlMLCBJTUFH
RSwgQ1JBU0hdKSksIHNldChbJ3R4dCcsICdwbmcnLCAnd2F2J10pKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMuc3VmZml4ZXNfZm9yX2V4cGVjdGF0aW9ucyhzZXQo
KSksIHNldCgpKQogCiAgICAgZGVmIHRlc3RfY2F0ZWdvcnlfZXhwZWN0YXRpb25zKHNlbGYpOgog
ICAgICAgICAjIFRoaXMgdGVzdCBjaGVja3MgdW5rbm93biB0ZXN0cyBhcmUgbm90IHByZXNlbnQg
aW4gdGhlCkBAIC0xNTIsNyArMTUyLDcgQEAgY2xhc3MgTWlzY1Rlc3RzKEJhc2UpOgogCiAgICAg
ZGVmIHRlc3RfZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcoc2VsZik6CiAgICAgICAgIHNlbGYucGFy
c2VfZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWxmLl9leHAuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcoCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5fZXhwLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmdldF90ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0
bWwnKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdGQUlMJykKIApAQCAtMjYxLDkgKzI2
MSw5IEBAIGNsYXNzIFNraXBwZWRUZXN0cyhCYXNlKToKICAgICAgICAgZXhwID0gVGVzdEV4cGVj
dGF0aW9ucyhwb3J0LCBbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCddLCBleHBlY3RhdGlv
bnNfdG9fbGludD1leHBlY3RhdGlvbnNfdG9fbGludCkKIAogICAgICAgICAjIENoZWNrIHRoYXQg
dGhlIGV4cGVjdGF0aW9uIGlzIGZvciBCVUdfRFVNTVkgU0tJUCA6IC4uLiBbIFBhc3MgXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhleHAuZ2V0X21vZGlmaWVycygnZmFpbHVyZXMvZXhwZWN0
ZWQvdGV4dC5odG1sJyksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwLmdldF9tb2RpZmll
cnMoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBbVGVzdEV4cGVjdGF0aW9uUGFyc2VyLkRVTU1ZX0JVR19NT0RJRklFUiwgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLlNLSVBfTU9ESUZJRVIsIFRlc3RFeHBlY3RhdGlvblBhcnNlci5XT05URklY
X01PRElGSUVSXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwLmdldF9leHBlY3RhdGlv
bnMoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcpLCBzZXQoW1BBU1NdKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHAuZ2V0X2V4cGVjdGF0aW9ucygnZmFpbHVyZXMvZXhwZWN0ZWQv
dGV4dC5odG1sJyksIHNldChbUEFTU10pKQogCiAgICAgZGVmIHRlc3Rfc2tpcHBlZF90ZXN0c193
b3JrKHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrKGV4cGVjdGF0aW9ucz0nJywgb3ZlcnJpZGVz
PU5vbmUsIHNraXBzPVsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10pCkBAIC0zMTcsMTMg
KzMxNywxMyBAQCBjbGFzcyBFeHBlY3RhdGlvblN5bnRheFRlc3RzKEJhc2UpOgogICAgICAgICBm
aWxlbmFtZSA9ICdUZXN0RXhwZWN0YXRpb25zJwogICAgICAgICBsaW5lX251bWJlciA9IDEKICAg
ICAgICAgZXhwZWN0YXRpb25fbGluZSA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci5fdG9rZW5pemVf
bGluZShmaWxlbmFtZSwgbGluZSwgbGluZV9udW1iZXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGV4cGVjdGF0aW9uX2xpbmUud2FybmluZ3MsIHdhcm5pbmdzKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhleHBlY3RhdGlvbl9saW5lLm5hbWUsIG5hbWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGV4cGVjdGF0aW9uX2xpbmUuZmlsZW5hbWUsIGZpbGVuYW1lKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhleHBlY3RhdGlvbl9saW5lLmxpbmVfbnVtYmVyLCBsaW5lX251bWJl
cikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLndhcm5pbmdzLCB3
YXJuaW5ncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLm5hbWUs
IG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb25fbGluZS5maWxlbmFt
ZSwgZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0YXRpb25fbGluZS5s
aW5lX251bWJlciwgbGluZV9udW1iZXIpCiAgICAgICAgIGlmIG5vdCB3YXJuaW5nczoKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGF0aW9uX2xpbmUubW9kaWZpZXJzLCBtb2Rp
ZmllcnMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RhdGlvbl9saW5lLmV4
cGVjdGF0aW9ucywgZXhwZWN0YXRpb25zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RhdGlvbl9saW5lLm1vZGlmaWVycywgbW9kaWZpZXJzKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RhdGlvbl9saW5lLmV4cGVjdGF0aW9ucywgZXhwZWN0YXRpb25zKQog
CiAgICAgZGVmIHRlc3RfYmFyZV9uYW1lKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF90b2tl
bml6ZV9leHAoJ2Zvby5odG1sJywgbW9kaWZpZXJzPVsnU0tJUCddLCBleHBlY3RhdGlvbnM9WydQ
QVNTJ10pCkBAIC0zNzgsNyArMzc4LDcgQEAgY2xhc3MgU2VtYW50aWNUZXN0cyhCYXNlKToKICAg
ICAgICAgICAgIHNlbGYucGFyc2VfZXhwKCdCVUcxMjM0IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQu
aHRtbCBbIEZhaWx1cmUgXScsIGlzX2xpbnRfbW9kZT1UcnVlKQogICAgICAgICAgICAgc2VsZi5m
YWlsKCdzaG91bGQgaGF2ZSByYWlzZWQgYW4gZXJyb3IgYWJvdXQgYSBiYWQgYnVnIGlkZW50aWZp
ZXInKQogICAgICAgICBleGNlcHQgUGFyc2VFcnJvciwgZXhwOgotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMobGVuKGV4cC53YXJuaW5ncyksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihleHAud2FybmluZ3MpLCAxKQogCiAgICAgZGVmIHRlc3RfbWlzc2luZ19idWdp
ZChzZWxmKToKICAgICAgICAgc2VsZi5wYXJzZV9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQu
aHRtbCBbIEZhaWx1cmUgXScpCkBAIC0zODksNyArMzg5LDcgQEAgY2xhc3MgU2VtYW50aWNUZXN0
cyhCYXNlKToKICAgICAgICAgc2VsZi5wYXJzZV9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQu
aHRtbCBbIEZhaWx1cmUgXScpCiAgICAgICAgIGxpbmUgPSBzZWxmLl9leHAuX21vZGVsLmdldF9l
eHBlY3RhdGlvbl9saW5lKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnKQogICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGxpbmUuaXNfaW52YWxpZCgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhsaW5lLndhcm5pbmdzLCBbJ1Rlc3QgbGFja3MgQlVHIG1vZGlmaWVyLiddKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxpbmUud2FybmluZ3MsIFsnVGVzdCBsYWNrcyBCVUcgbW9kaWZp
ZXIuJ10pCiAKICAgICBkZWYgdGVzdF9za2lwX2FuZF93b250Zml4KHNlbGYpOgogICAgICAgICAj
IFNraXAgYW5kIFdvbnRGaXggYXJlIG5vdCBhbGxvd2VkIHRvIGhhdmUgb3RoZXIgZXhwZWN0YXRp
b25zIGFzIHdlbGwsIGJlY2F1c2UgdGhvc2UKQEAgLTY5Miw5ICs2OTIsOSBAQCBjbGFzcyBUZXN0
RXhwZWN0YXRpb25TZXJpYWxpemF0aW9uVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBhZGRfbGluZShzZXQoW1Rlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScp
XSksIFRydWUpCiAgICAgICAgIGFkZF9saW5lKHNldChbVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywg
J3g4NicsICdyZWxlYXNlJyksIFRlc3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAnZGVidWcn
KV0pLCBGYWxzZSkKICAgICAgICAgc2VyaWFsaXplZCA9IFRlc3RFeHBlY3RhdGlvbnMubGlzdF90
b19zdHJpbmcobGluZXMsIHNlbGYuX2NvbnZlcnRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2VyaWFsaXplZCwgIkJ1Zyh4KSBbIFhQIFJlbGVhc2UgXSBZYXkgWyBJbWFnZU9ubHlGYWls
dXJlIF1cbkJ1Zyh4KSBbIFhQIF0gWWF5IFsgSW1hZ2VPbmx5RmFpbHVyZSBdIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZXJpYWxpemVkLCAiQnVnKHgpIFsgWFAgUmVsZWFzZSBdIFlheSBb
IEltYWdlT25seUZhaWx1cmUgXVxuQnVnKHgpIFsgWFAgXSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJl
IF0iKQogICAgICAgICBzZXJpYWxpemVkID0gVGVzdEV4cGVjdGF0aW9ucy5saXN0X3RvX3N0cmlu
ZyhsaW5lcywgc2VsZi5fY29udmVydGVyLCByZWNvbnN0aXR1dGVfb25seV90aGVzZT1yZWNvbnN0
aXR1dGVfb25seV90aGVzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VyaWFsaXplZCwg
IkJ1Zyh4KSBbIFhQIFJlbGVhc2UgXSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbk5heSIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VyaWFsaXplZCwgIkJ1Zyh4KSBbIFhQIFJlbGVhc2Ug
XSBZYXkgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbk5heSIpCiAKICAgICBkZWYgdGVzdF9zdHJpbmdf
d2hpdGVzcGFjZV9zdHJpcHBpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3JvdW5kX3Ry
aXAoJ1xuJywgJycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVzX3VuaXR0ZXN0LnB5CmluZGV4
IDFjOGYwMjlhNmExYTJlMjZlNjcxNzJkNDA2NWJlMDEzOWU5MmM1ODguLjc0ZWY4Y2JiNDQ2YTE3
NTQyNDBhZWU0YjgyYjk1MTczZWU1NzAyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVzX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVz
X3VuaXR0ZXN0LnB5CkBAIC02OSw1ICs2OSw1IEBAIGNsYXNzIFRlc3RGYWlsdXJlc1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjcmFzaF9zZXQp
LCAyKQogCiAgICAgZGVmIHRlc3RfY3Jhc2hlcyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoRmFpbHVyZUNyYXNoKCkubWVzc2FnZSgpLCAnRHVtcFJlbmRlclRyZWUgY3Jhc2hlZCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKEZhaWx1cmVDcmFzaChwcm9jZXNzX25hbWU9J2Zv
bycsIHBpZD0xMjM0KS5tZXNzYWdlKCksICdmb28gY3Jhc2hlZCBbcGlkPTEyMzRdJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChGYWlsdXJlQ3Jhc2goKS5tZXNzYWdlKCksICdEdW1wUmVuZGVy
VHJlZSBjcmFzaGVkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWlsdXJlQ3Jhc2gocHJv
Y2Vzc19uYW1lPSdmb28nLCBwaWQ9MTIzNCkubWVzc2FnZSgpLCAnZm9vIGNyYXNoZWQgW3BpZD0x
MjM0XScpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2VfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKaW5kZXggMWZlNzVjY2Q0NmRlMTM0ODVjMWQ1YjAyMTNl
YmZkMzRjYjE1NDEwNi4uNzUzZDQ3NDgxZGRjMWVhYmY4NGJmNDBkODQzMjVjNzhmYTFkNTc2ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weQpAQCAtMjY4LDcgKzI2OCw3IEBAIGNsYXNzIFBvcnRUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFt
ZT0nZm9vJykKICAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMgPSBsYW1iZGE6IFsnL21v
Y2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZXhpc3RzL1Rlc3RFeHBlY3RhdGlvbnMn
LCAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbm9uZXhpc3RhbnQvVGVzdEV4
cGVjdGF0aW9ucyddCiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcv
bW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9leGlzdHMvVGVzdEV4cGVjdGF0aW9u
cycsICcnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnXG4nLmpvaW4ocG9ydC5leHBlY3Rh
dGlvbnNfZGljdCgpLmtleXMoKSksICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9leGlzdHMvVGVzdEV4cGVjdGF0aW9ucycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xu
Jy5qb2luKHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKS5rZXlzKCkpLCAnL21vY2stY2hlY2tvdXQv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZXhpc3RzL1Rlc3RFeHBlY3RhdGlvbnMnKQogCiAgICAgZGVm
IHRlc3RfYWRkaXRpb25hbF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydChwb3J0X25hbWU9J2ZvbycpCkBAIC0yNzksMTkgKzI3OSwxOSBAQCBjbGFzcyBQ
b3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0ud3Jp
dGVfdGV4dF9maWxlKAogICAgICAgICAgICAgJy90bXAvYWRkaXRpb25hbC1leHBlY3RhdGlvbnMt
Mi50eHQnLCAnY29udGVudDJcbicpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ1xuJy5q
b2luKHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKS52YWx1ZXMoKSksICcnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdcbicuam9pbihwb3J0LmV4cGVjdGF0aW9uc19kaWN0KCkudmFsdWVzKCkp
LCAnJykKIAogICAgICAgICBwb3J0Ll9vcHRpb25zLmFkZGl0aW9uYWxfZXhwZWN0YXRpb25zID0g
WwogICAgICAgICAgICAgJy90bXAvYWRkaXRpb25hbC1leHBlY3RhdGlvbnMtMS50eHQnXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygnXG4nLmpvaW4ocG9ydC5leHBlY3RhdGlvbnNfZGljdCgp
LnZhbHVlcygpKSwgJ1xuY29udGVudDFcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xu
Jy5qb2luKHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKS52YWx1ZXMoKSksICdcbmNvbnRlbnQxXG4n
KQogCiAgICAgICAgIHBvcnQuX29wdGlvbnMuYWRkaXRpb25hbF9leHBlY3RhdGlvbnMgPSBbCiAg
ICAgICAgICAgICAnL3RtcC9ub25leGlzdGVudC1maWxlJywgJy90bXAvYWRkaXRpb25hbC1leHBl
Y3RhdGlvbnMtMS50eHQnXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnXG4nLmpvaW4ocG9y
dC5leHBlY3RhdGlvbnNfZGljdCgpLnZhbHVlcygpKSwgJ1xuY29udGVudDFcbicpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1xuJy5qb2luKHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKS52YWx1
ZXMoKSksICdcbmNvbnRlbnQxXG4nKQogCiAgICAgICAgIHBvcnQuX29wdGlvbnMuYWRkaXRpb25h
bF9leHBlY3RhdGlvbnMgPSBbCiAgICAgICAgICAgICAnL3RtcC9hZGRpdGlvbmFsLWV4cGVjdGF0
aW9ucy0xLnR4dCcsICcvdG1wL2FkZGl0aW9uYWwtZXhwZWN0YXRpb25zLTIudHh0J10KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoJ1xuJy5qb2luKHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKS52
YWx1ZXMoKSksICdcbmNvbnRlbnQxXG5cbmNvbnRlbnQyXG4nKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdcbicuam9pbihwb3J0LmV4cGVjdGF0aW9uc19kaWN0KCkudmFsdWVzKCkpLCAnXG5j
b250ZW50MVxuXG5jb250ZW50MlxuJykKIAogICAgIGRlZiB0ZXN0X2FkZGl0aW9uYWxfZW52X3Zh
cihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9b3B0cGFyc2Uu
VmFsdWVzKHsnYWRkaXRpb25hbF9lbnZfdmFyJzogWydGT089QkFSJywgJ0JBUj1GT08nXX0pKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWls
ZGVyc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYnVpbGRlcnNfdW5pdHRlc3QucHkKaW5kZXggMTU1MGRmNDk0MWZiODQ4NTkzZTAxMjg5OWFj
MzY1MTY0ZjAxYzk3OC4uNzQzMjBmMmFkYzFhMDlhZTM4MDc5OGFhYmM0M2IzMzE0OWJhNjMwMyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWls
ZGVyc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2J1aWxkZXJzX3VuaXR0ZXN0LnB5CkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEJ1aWxk
ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnKC4pICc6ICdfX19fJywK
ICAgICAgICAgfQogICAgICAgICBmb3IgbmFtZSwgZXhwZWN0ZWQgaW4gdGVzdHMuaXRlbXMoKToK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLCBidWlsZGVycy5idWlsZGVy
X3BhdGhfZnJvbV9uYW1lKG5hbWUpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZCwgYnVpbGRlcnMuYnVpbGRlcl9wYXRoX2Zyb21fbmFtZShuYW1lKSkKIAogaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fYW5kcm9pZF91bml0dGVzdC5weQppbmRleCBmY2U2OWM2N2RmNDk0ZGY2ZmExNjViNzhkYzg0
YTRmNzQ5ZjJlMWVjLi44NTZhYzMxNTE3YzUwZjg5YTQ3MmQ2NTQ1NGRkMzUzNjVhMzI2MmI4IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX2FuZHJvaWRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkX3VuaXR0ZXN0LnB5CkBAIC0xMTksMTEgKzEx
OSwxMSBAQCBjbGFzcyBDaHJvbWl1bUFuZHJvaWRQb3J0VGVzdChjaHJvbWl1bV9wb3J0X3Rlc3Rj
YXNlLkNocm9taXVtUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXMoc2Vs
Zik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgn
Y2hyb21pdW0tYW5kcm9pZCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuYmFzZWxp
bmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tYW5kcm9pZCcp
KQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydChvcHRpb25zPW9wdHBhcnNlLlZhbHVlcyh7J2Nv
bmZpZ3VyYXRpb24nOiAnUmVsZWFzZSd9KSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDEwMDAwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydChvcHRpb25zPW9wdHBhcnNl
LlZhbHVlcyh7J2NvbmZpZ3VyYXRpb24nOiAnRGVidWcnfSkpLmRlZmF1bHRfdGltZW91dF9tcygp
LCAxMDAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRpb25z
PW9wdHBhcnNlLlZhbHVlcyh7J2NvbmZpZ3VyYXRpb24nOiAnUmVsZWFzZSd9KSkuZGVmYXVsdF90
aW1lb3V0X21zKCksIDEwMDAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9w
b3J0KG9wdGlvbnM9b3B0cGFyc2UuVmFsdWVzKHsnY29uZmlndXJhdGlvbic6ICdEZWJ1Zyd9KSku
ZGVmYXVsdF90aW1lb3V0X21zKCksIDEwMDAwKQogCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25z
X2ZpbGVzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBvdmVycmlkZSB0aGlzIHRlc3QgdGVtcG9y
YXJpbHkgd2hpbGUgd2UncmUgc3RpbGwgdXBzdHJlYW1pbmcgdGhlIGFuZHJvaWQgcG9ydCBhbmQK
QEAgLTEzOCwxNCArMTM4LDE0IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZFBvcnRUZXN0KGNocm9t
aXVtX3BvcnRfdGVzdGNhc2UuQ2hyb21pdW1Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2dl
dF9kZXZpY2VzX29uZV9kZXZpY2Uoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9y
dCgpCiAgICAgICAgIHNlbGYubW9ja19ydW5fY29tbWFuZC5tb2NrX29uZV9kZXZpY2UoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1vY2tfcnVuX2NvbW1hbmQuX21vY2tfZGV2aWNl
cywgcG9ydC5fZ2V0X2RldmljZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgcG9y
dC5kZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYubW9ja19ydW5fY29tbWFuZC5fbW9ja19kZXZpY2VzLCBwb3J0Ll9nZXRfZGV2aWNlcygpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHBvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMo
KSkKIAogICAgIGRlZiB0ZXN0X2dldF9kZXZpY2VzX3R3b19kZXZpY2VzKHNlbGYpOgogICAgICAg
ICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBzZWxmLm1vY2tfcnVuX2NvbW1hbmQu
bW9ja190d29fZGV2aWNlcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubW9ja19y
dW5fY29tbWFuZC5fbW9ja19kZXZpY2VzLCBwb3J0Ll9nZXRfZGV2aWNlcygpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygyLCBwb3J0LmRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tb2NrX3J1bl9jb21tYW5kLl9tb2NrX2RldmljZXMs
IHBvcnQuX2dldF9kZXZpY2VzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgcG9ydC5k
ZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcygpKQogCiAgICAgZGVmIHRlc3RfZ2V0X2RldmljZV9zZXJp
YWxfbm9fZGV2aWNlKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQpAQCAt
MTU1LDE5ICsxNTUsMTkgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkUG9ydFRlc3QoY2hyb21pdW1f
cG9ydF90ZXN0Y2FzZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfZ2V0X2Rl
dmljZV9zZXJpYWxfb25lX2RldmljZShzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KCkKICAgICAgICAgc2VsZi5tb2NrX3J1bl9jb21tYW5kLm1vY2tfb25lX2RldmljZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubW9ja19ydW5fY29tbWFuZC5fbW9ja19kZXZp
Y2VzWzBdLCBwb3J0Ll9nZXRfZGV2aWNlX3NlcmlhbCgwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLm1vY2tfcnVuX2NvbW1hbmQuX21vY2tfZGV2aWNlc1swXSwgcG9ydC5fZ2V0X2Rl
dmljZV9zZXJpYWwoMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9y
LCBwb3J0Ll9nZXRfZGV2aWNlX3NlcmlhbCwgMSkKIAogICAgIGRlZiB0ZXN0X2dldF9kZXZpY2Vf
c2VyaWFsX3R3b19kZXZpY2VzKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQo
KQogICAgICAgICBzZWxmLm1vY2tfcnVuX2NvbW1hbmQubW9ja190d29fZGV2aWNlcygpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubW9ja19ydW5fY29tbWFuZC5fbW9ja19kZXZpY2Vz
WzBdLCBwb3J0Ll9nZXRfZGV2aWNlX3NlcmlhbCgwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2VsZi5tb2NrX3J1bl9jb21tYW5kLl9tb2NrX2RldmljZXNbMV0sIHBvcnQuX2dldF9kZXZp
Y2Vfc2VyaWFsKDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubW9ja19ydW5fY29t
bWFuZC5fbW9ja19kZXZpY2VzWzBdLCBwb3J0Ll9nZXRfZGV2aWNlX3NlcmlhbCgwKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1vY2tfcnVuX2NvbW1hbmQuX21vY2tfZGV2aWNlc1sx
XSwgcG9ydC5fZ2V0X2RldmljZV9zZXJpYWwoMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KEFzc2VydGlvbkVycm9yLCBwb3J0Ll9nZXRfZGV2aWNlX3NlcmlhbCwgMikKIAogICAgIGRlZiB0
ZXN0X211c3RfcmVxdWlyZV9odHRwX3NlcnZlcihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYu
bWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5yZXF1aXJlc19odHRw
X3NlcnZlcigpLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucmVxdWlyZXNf
aHR0cF9zZXJ2ZXIoKSwgVHJ1ZSkKIAogCiBjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE4MSwxMyArMTgxLDEzIEBAIGNsYXNzIENocm9taXVt
QW5kcm9pZERyaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZ2V0
X2xhc3Rfc3RhY2t0cmFjZShzZWxmKToKICAgICAgICAgc2VsZi5tb2NrX3J1bl9jb21tYW5kLm1v
Y2tfbm9fdG9tYnN0b25lX2RpcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJp
dmVyLl9nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuZHJpdmVyLl9nZXRfbGFzdF9zdGFja3RyYWNlKCksICcnKQogCiAgICAgICAgIHNlbGYu
bW9ja19ydW5fY29tbWFuZC5tb2NrX25vX3RvbWJzdG9uZV9maWxlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi5kcml2ZXIuX2dldF9sYXN0X3N0YWNrdHJhY2UoKSwgJycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kcml2ZXIuX2dldF9sYXN0X3N0YWNrdHJhY2UoKSwg
JycpCiAKICAgICAgICAgc2VsZi5tb2NrX3J1bl9jb21tYW5kLm1vY2tfdGVuX3RvbWJzdG9uZXMo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fZ2V0X2xhc3Rfc3RhY2t0
cmFjZSgpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZHJpdmVyLl9nZXRfbGFzdF9z
dGFja3RyYWNlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICctcnctLS0tLS0tIDEwMDAg
MTAwMCA0NTMxNiAyMDEyLTA0LTI3IDE2OjMzIHRvbWJzdG9uZV8wM1xuJwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAnL2RhdGEvdG9tYnN0b25lcy90b21ic3RvbmVfMDNcbm1vY2tfY29udGVu
dHNcbicpCiAKQEAgLTE5Niw3ICsxOTYsNyBAQCBjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5tb2NrX3J1bl9jb21tYW5kLm1v
Y2tfdGVuX3RvbWJzdG9uZXMoKQogICAgICAgICBzZWxmLmRyaXZlci5fY3Jhc2hlZF9wcm9jZXNz
X25hbWUgPSAnZm9vJwogICAgICAgICBzZWxmLmRyaXZlci5fY3Jhc2hlZF9waWQgPSAxMjM0Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl9nZXRfY3Jhc2hfbG9nKCdvdXQg
YmFyXG5vdXQgYmF6XG4nLCAnZXJyIGJhclxuZXJyIGJhelxuJywgbmV3ZXJfdGhhbj1Ob25lKSwK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRyaXZlci5fZ2V0X2NyYXNoX2xvZygnb3V0
IGJhclxub3V0IGJhelxuJywgJ2VyciBiYXJcbmVyciBiYXpcbicsIG5ld2VyX3RoYW49Tm9uZSks
CiAgICAgICAgICAgICAoJ2VyciBiYXJcbicKICAgICAgICAgICAgICAnZXJyIGJhelxuJwogICAg
ICAgICAgICAgICcqKioqKioqKiogWzEyMzQ1Njc4OUFCQ0RFRjBdIFRvbWJzdG9uZSBmaWxlOlxu
JwpAQCAtMjE3LDcgKzIxNyw3IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHNlbGYuZHJpdmVyLl9jcmFzaGVkX3Byb2Nlc3Nf
bmFtZSA9IE5vbmUKICAgICAgICAgc2VsZi5kcml2ZXIuX2NyYXNoZWRfcGlkID0gTm9uZQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmRyaXZlci5fZ2V0X2NyYXNoX2xvZyhOb25lLCBO
b25lLCBuZXdlcl90aGFuPU5vbmUpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZHJp
dmVyLl9nZXRfY3Jhc2hfbG9nKE5vbmUsIE5vbmUsIG5ld2VyX3RoYW49Tm9uZSksCiAgICAgICAg
ICAgICAoJyoqKioqKioqKiBbMTIzNDU2Nzg5QUJDREVGMF0gVG9tYnN0b25lIGZpbGU6XG4nCiAg
ICAgICAgICAgICAgJy1ydy0tLS0tLS0gMTAwMCAxMDAwIDQ1MzE2IDIwMTItMDQtMjcgMTY6MzMg
dG9tYnN0b25lXzAzXG4nCiAgICAgICAgICAgICAgJy9kYXRhL3RvbWJzdG9uZXMvdG9tYnN0b25l
XzAzXG4nCkBAIC0yMzIsNyArMjMyLDcgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJpdmVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jbWRfbGluZShzZWxmKToKICAg
ICAgICAgY21kX2xpbmUgPSBzZWxmLmRyaXZlci5jbWRfbGluZShUcnVlLCBbJ2FueXRoaW5nJ10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsnYWRiJywgJy1zJywgc2VsZi5tb2NrX3J1bl9j
b21tYW5kLl9tb2NrX2RldmljZXNbMF0sICdzaGVsbCddLCBjbWRfbGluZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ2FkYicsICctcycsIHNlbGYubW9ja19ydW5fY29tbWFuZC5fbW9ja19k
ZXZpY2VzWzBdLCAnc2hlbGwnXSwgY21kX2xpbmUpCiAKICAgICBkZWYgdGVzdF9kcnRfY21kX2xp
bmUoc2VsZik6CiAgICAgICAgIGNtZF9saW5lID0gc2VsZi5kcml2ZXIuX2RydF9jbWRfbGluZShU
cnVlLCBbJy0tYSddKQpAQCAtMjQyLDE5ICsyNDIsMTkgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lk
RHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9yZWFkX3Byb21w
dChzZWxmKToKICAgICAgICAgc2VsZi5kcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gZHJpdmVyX3Vu
aXR0ZXN0Lk1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsncm9vdEBhbmRyb2lkOi8gIyAnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5kcml2ZXIuX3JlYWRfcHJvbXB0KHRpbWUudGlt
ZSgpICsgMSksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kcml2ZXIuX3Jl
YWRfcHJvbXB0KHRpbWUudGltZSgpICsgMSksIE5vbmUpCiAgICAgICAgIHNlbGYuZHJpdmVyLl9z
ZXJ2ZXJfcHJvY2VzcyA9IGRyaXZlcl91bml0dGVzdC5Nb2NrU2VydmVyUHJvY2VzcyhsaW5lcz1b
JyQgJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl9yZWFkX3Byb21w
dCh0aW1lLnRpbWUoKSArIDEpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
ZHJpdmVyLl9yZWFkX3Byb21wdCh0aW1lLnRpbWUoKSArIDEpLCBOb25lKQogCiAgICAgZGVmIHRl
c3RfY29tbWFuZF9mcm9tX2RyaXZlcl9pbnB1dChzZWxmKToKICAgICAgICAgZHJpdmVyX2lucHV0
ID0gZHJpdmVyLkRyaXZlcklucHV0KCdmb28vYmFyL3Rlc3QuaHRtbCcsIDEwLCAnY2hlY2tzdW0n
LCBUcnVlKQogICAgICAgICBleHBlY3RlZF9jb21tYW5kID0gIi9kYXRhL2xvY2FsL3RtcC90aGly
ZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvZm9vL2Jhci90ZXN0Lmh0bWwnLS1waXhlbC10ZXN0
J2NoZWNrc3VtXG4iCiAgICAgICAgIGlmIChzeXMucGxhdGZvcm0gIT0gImN5Z3dpbiIpOgotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5kcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2
ZXJfaW5wdXQoZHJpdmVyX2lucHV0KSwgZXhwZWN0ZWRfY29tbWFuZCkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5kcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQoZHJp
dmVyX2lucHV0KSwgZXhwZWN0ZWRfY29tbWFuZCkKIAogICAgICAgICBkcml2ZXJfaW5wdXQgPSBk
cml2ZXIuRHJpdmVySW5wdXQoJ2h0dHAvdGVzdHMvZm9vL2Jhci90ZXN0Lmh0bWwnLCAxMCwgJ2No
ZWNrc3VtJywgVHJ1ZSkKICAgICAgICAgZXhwZWN0ZWRfY29tbWFuZCA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvZm9vL2Jhci90ZXN0Lmh0bWwnLS1waXhlbC10ZXN0J2NoZWNrc3VtXG4iCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZHJpdmVyLl9jb21tYW5kX2Zyb21fZHJpdmVyX2lu
cHV0KGRyaXZlcl9pbnB1dCksIGV4cGVjdGVkX2NvbW1hbmQpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi5kcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQoZHJpdmVyX2lucHV0
KSwgZXhwZWN0ZWRfY29tbWFuZCkKIAogCiBjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXJUd29E
cml2ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0yNjgsMTAgKzI2OCwxMCBAQCBjbGFz
cyBDaHJvbWl1bUFuZHJvaWREcml2ZXJUd29Ecml2ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIGRyaXZlcjEgPSBjaHJvbWl1bV9hbmRyb2lkLkNocm9taXVtQW5kcm9pZERyaXZl
cihwb3J0LCB3b3JrZXJfbnVtYmVyPTEsIHBpeGVsX3Rlc3RzPVRydWUpCiAKICAgICAgICAgY21k
X2xpbmUwID0gZHJpdmVyMC5jbWRfbGluZShUcnVlLCBbJ2FueXRoaW5nJ10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFsnYWRiJywgJy1zJywgbW9ja19ydW5fY29tbWFuZC5fbW9ja19kZXZp
Y2VzWzBdLCAnc2hlbGwnXSwgY21kX2xpbmUwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
YWRiJywgJy1zJywgbW9ja19ydW5fY29tbWFuZC5fbW9ja19kZXZpY2VzWzBdLCAnc2hlbGwnXSwg
Y21kX2xpbmUwKQogCiAgICAgICAgIGNtZF9saW5lMSA9IGRyaXZlcjEuY21kX2xpbmUoVHJ1ZSwg
Wydhbnl0aGluZyddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ2FkYicsICctcycsIG1v
Y2tfcnVuX2NvbW1hbmQuX21vY2tfZGV2aWNlc1sxXSwgJ3NoZWxsJ10sIGNtZF9saW5lMSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2FkYicsICctcycsIG1vY2tfcnVuX2NvbW1hbmQuX21v
Y2tfZGV2aWNlc1sxXSwgJ3NoZWxsJ10sIGNtZF9saW5lMSkKIAogCiBjbGFzcyBDaHJvbWl1bUFu
ZHJvaWRUd29Qb3J0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMjg2LDggKzI4Niw4IEBA
IGNsYXNzIENocm9taXVtQW5kcm9pZFR3b1BvcnRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgICAgICAgICAgTW9ja1N5c3RlbUhvc3QoZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUyKHJ1
bl9jb21tYW5kX2ZuPW1vY2tfcnVuX2NvbW1hbmQubW9ja19ydW5fY29tbWFuZF9mbikpLAogICAg
ICAgICAgICAgICAgICdjaHJvbWl1bS1hbmRyb2lkJywgb3B0aW9ucz1vcHRpb25zKQogICAgICAg
ICBjbWRfbGluZSA9IHBvcnQxLmRyaXZlcl9jbWRfbGluZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGNtZF9saW5lLmNvdW50KCctLWVuY29kZS1iaW5hcnknKSwgMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoY21kX2xpbmUuY291bnQoJy0tZW5hYmxlLWhhcmR3YXJlLWdwdScpLCAx
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtZF9saW5lLmNvdW50KCctLWVuY29kZS1iaW5h
cnknKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbWRfbGluZS5jb3VudCgnLS1lbmFi
bGUtaGFyZHdhcmUtZ3B1JyksIDEpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fbGludXhfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CmluZGV4IDE2OWMyZjRmNDM4YTQ2YmIy
NDE2ZmNkZjlhZGY2ZjU5YzVkZjE0MWEuLjQxNjAwMzRlMzc3ZGE1NmQzNGM2NTkzNTA2NmRkOTJh
NDU3NTY5NmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQpAQCAtNDcs
NyArNDcsNyBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydFRlc3QoY2hyb21pdW1fcG9ydF90ZXN0
Y2FzZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAgICAgICAgICAgICBob3N0LmV4ZWN1dGl2ZSA9
IGV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKGZpbGVfb3V0cHV0KQogCiAgICAgICAgIHBv
cnQgPSBzZWxmLm1ha2VfcG9ydChob3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhwb3J0LmFyY2hpdGVjdHVyZSgpLCBleHBlY3RlZF9hcmNoaXRlY3R1
cmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1cmUoKSwgZXhwZWN0
ZWRfYXJjaGl0ZWN0dXJlKQogICAgICAgICBpZiBleHBlY3RlZF9hcmNoaXRlY3R1cmUgPT0gJ3g4
Nic6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5iYXNlbGluZV9wYXRoKCkuZW5k
c3dpdGgoJ2Nocm9taXVtLWxpbnV4LXg4NicpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKVswXS5lbmRzd2l0aCgnY2hyb21pdW0tbGludXgt
eDg2JykpCkBAIC03NCwxNCArNzQsMTQgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnRUZXN0KGNo
cm9taXVtX3BvcnRfdGVzdGNhc2UuQ2hyb21pdW1Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0
X2RldGVybWluZV9hcmNoaXRlY3R1cmVfZmFpbHMoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0
IHdlIGRlZmF1bHQgdG8gJ3g4NicgaWYgdGhlIGRyaXZlciBkb2Vzbid0IGV4aXN0LgogICAgICAg
ICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0
LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0JykKIAogICAgICAgICAjIFRlc3QgdGhhdCB3ZSBkZWZh
dWx0IHRvICd4ODYnIG9uIGFuIHVua25vd24gYXJjaGl0ZWN0dXJlLgogICAgICAgICBob3N0ID0g
TW9ja1N5c3RlbUhvc3QoKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0uZXhpc3RzID0gbGFtYmRh
IHg6IFRydWUKICAgICAgICAgaG9zdC5leGVjdXRpdmUgPSBleGVjdXRpdmVfbW9jay5Nb2NrRXhl
Y3V0aXZlMignd2luMzInKQogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoaG9zdD1ob3N0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0
JykKIAogICAgICAgICAjIFRlc3QgdGhhdCB3ZSByYWlzZSBlcnJvcnMgaWYgc29tZXRoaW5nIHdl
aXJkIGhhcHBlbnMuCiAgICAgICAgIGhvc3QuZXhlY3V0aXZlID0gZXhlY3V0aXZlX21vY2suTW9j
a0V4ZWN1dGl2ZTIoZXhjZXB0aW9uPUFzc2VydGlvbkVycm9yKQpAQCAtMTEyLDcgKzExMiw3IEBA
IGNsYXNzIENocm9taXVtTGludXhQb3J0VGVzdChjaHJvbWl1bV9wb3J0X3Rlc3RjYXNlLkNocm9t
aXVtUG9ydFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWFrZV9wb3J0
KG9wdGlvbnM9TW9ja09wdGlvbnMoZHJpdmVyX25hbWU9J090aGVyRHJpdmVyJykpLl9wYXRoX3Rv
X2RyaXZlcigpLmVuZHN3aXRoKCdPdGhlckRyaXZlcicpKQogCiAgICAgZGVmIHRlc3RfcGF0aF90
b19pbWFnZV9kaWZmKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2Vf
cG9ydCgpLl9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgJy9tb2NrLWNoZWNrb3V0L291dC9SZWxlYXNl
L0ltYWdlRGlmZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQoKS5f
cGF0aF90b19pbWFnZV9kaWZmKCksICcvbW9jay1jaGVja291dC9vdXQvUmVsZWFzZS9JbWFnZURp
ZmYnKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHBvcnRfdGVzdGNhc2UubWFp
bigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CmluZGV4IDdiOTI0YjZmMTNiZTYw
YWNhODM0NGQ4ZDhmYmUyMjlhZjE4YjI2YTcuLmQxMDMyNmYwZTNlODY1ZTIzODUzMTM5YmNmNjI0
NmFlOGI5NTFmMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5CkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIENocm9taXVtTWFjUG9ydFRlc3QoY2hyb21pdW1fcG9ydF90ZXN0Y2Fz
ZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAKICAgICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwgcG9y
dF9uYW1lLCBvc192ZXJzaW9uX3N0cmluZywgZXhwZWN0ZWQpOgogICAgICAgICBwb3J0ID0gc2Vs
Zi5tYWtlX3BvcnQob3NfdmVyc2lvbj1vc192ZXJzaW9uX3N0cmluZywgcG9ydF9uYW1lPXBvcnRf
bmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBwb3J0Lm5hbWUoKSkKIAogICAgIGRl
ZiB0ZXN0X3ZlcnNpb25zKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5tYWtl
X3BvcnQoKS5uYW1lKCkgaW4gKCdjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQnLCAnY2hyb21pdW0t
bWFjLWxpb24nLCAnY2hyb21pdW0tbWFjLW1vdW50YWlubGlvbicsICdjaHJvbWl1bS1tYWMtZnV0
dXJlJykpCkBAIC02NCwxNiArNjQsMTYgQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChjaHJv
bWl1bV9wb3J0X3Rlc3RjYXNlLkNocm9taXVtUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0
X2Jhc2VsaW5lX3BhdGgoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0
X25hbWU9J2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hy
b21pdW0tbWFjLXNub3dsZW9wYXJkJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5i
YXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1bS1tYWMt
c25vd2xlb3BhcmQnKSkKIAogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQocG9ydF9uYW1l
PSdjaHJvbWl1bS1tYWMtbGlvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFz
ZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjLWxp
b24nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9y
dC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLW1hYy1saW9uJykpCiAKICAgICAgICAg
cG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0tbWFjLW1vdW50YWlubGlv
bicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0
Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRo
KCdjaHJvbWl1bS1tYWMnKSkKIAogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQocG9ydF9u
YW1lPSdjaHJvbWl1bS1tYWMtZnV0dXJlJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9y
dC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1bS1t
YWMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9y
dC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLW1hYycpKQogCiAgICAgZGVmIHRlc3Rf
b3BlcmF0aW5nX3N5c3RlbShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbWFjJywg
c2VsZi5tYWtlX3BvcnQoKS5vcGVyYXRpbmdfc3lzdGVtKCkpCkBAIC0xMDAsNyArMTAwLDcgQEAg
Y2xhc3MgQ2hyb21pdW1NYWNQb3J0VGVzdChjaHJvbWl1bV9wb3J0X3Rlc3RjYXNlLkNocm9taXVt
UG9ydFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWFrZV9wb3J0KG9w
dGlvbnM9TW9ja09wdGlvbnMoZHJpdmVyX25hbWU9J090aGVyRHJpdmVyJykpLl9wYXRoX3RvX2Ry
aXZlcigpLmVuZHN3aXRoKCdPdGhlckRyaXZlcicpKQogCiAgICAgZGVmIHRlc3RfcGF0aF90b19p
bWFnZV9kaWZmKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9y
dCgpLl9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgJy9tb2NrLWNoZWNrb3V0L291dC9SZWxlYXNlL0lt
YWdlRGlmZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQoKS5fcGF0
aF90b19pbWFnZV9kaWZmKCksICcvbW9jay1jaGVja291dC9vdXQvUmVsZWFzZS9JbWFnZURpZmYn
KQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3BvcnRfdGVzdGNhc2UucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3BvcnRf
dGVzdGNhc2UucHkKaW5kZXggOTA3ZWIwNzM4OTFjNzY0OTQ2YTdhMmVkYzZhY2JlYTI3MmUyN2Mw
OC4uZGM1NzA2YmViNmJhYWY2YzY4MjVlNmEwOTQ0MGNkNjJjN2NhY2I5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9wb3J0X3Rl
c3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fcG9ydF90ZXN0Y2FzZS5weQpAQCAtNTEsMTYgKzUxLDE2IEBAIGNsYXNzIENocm9t
aXVtUG9ydFRlc3RDYXNlKHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBkZWYgdGVz
dF9kZWZhdWx0X21heF9sb2NrZWRfc2hhcmRzKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5t
YWtlX3BvcnQoKQogICAgICAgICBwb3J0LmRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzID0gbGFtYmRh
OiAxNgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmRlZmF1bHRfbWF4X2xvY2tlZF9z
aGFyZHMoKSwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRlZmF1bHRfbWF4X2xv
Y2tlZF9zaGFyZHMoKSwgNCkKICAgICAgICAgcG9ydC5kZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyA9
IGxhbWJkYTogMgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmRlZmF1bHRfbWF4X2xv
Y2tlZF9zaGFyZHMoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRlZmF1bHRf
bWF4X2xvY2tlZF9zaGFyZHMoKSwgMSkKIAogICAgIGRlZiB0ZXN0X2RlZmF1bHRfdGltZW91dF9t
cyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX3BvcnQob3B0aW9u
cz1Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNlJykpLmRlZmF1bHRfdGltZW91dF9t
cygpLCA2MDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydChvcHRp
b25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykpLmRlZmF1bHRfdGltZW91dF9t
cygpLCAxMjAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRp
b25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0
X21zKCksIDYwMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQob3B0
aW9ucz1Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0X3RpbWVvdXRf
bXMoKSwgMTIwMDApCiAKICAgICBkZWYgdGVzdF9kZWZhdWx0X3BpeGVsX3Rlc3RzKHNlbGYpOgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydCgpLmRlZmF1bHRfcGl4ZWxf
dGVzdHMoKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydCgp
LmRlZmF1bHRfcGl4ZWxfdGVzdHMoKSwgVHJ1ZSkKIAogICAgIGRlZiB0ZXN0X21pc3Npbmdfc3lt
Ym9sX3RvX3NraXBwZWRfdGVzdHMoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIGdldCB0
aGUgY2hyb21pdW0gc2tpcHMgYW5kIG5vdCB0aGUgd2Via2l0IGRlZmF1bHQgc2tpcHMKQEAgLTcy
LDcgKzcyLDcgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdENhc2UocG9ydF90ZXN0Y2FzZS5Qb3J0
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgog
ICAgICAgICAiIiJWYWxpZGF0ZSB0aGUgY29tcGxldGUgc2V0IG9mIGNvbmZpZ3VyYXRpb25zIHRo
aXMgcG9ydCBrbm93cyBhYm91dC4iIiIKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KHBvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlv
bnMoKSksIHNldChbCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHBvcnQuYWxsX3Rlc3Rf
Y29uZmlndXJhdGlvbnMoKSksIHNldChbCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbign
aWNlY3JlYW1zYW5kd2ljaCcsICd4ODYnLCAnZGVidWcnKSwKICAgICAgICAgICAgIFRlc3RDb25m
aWd1cmF0aW9uKCdpY2VjcmVhbXNhbmR3aWNoJywgJ3g4NicsICdyZWxlYXNlJyksCiAgICAgICAg
ICAgICBUZXN0Q29uZmlndXJhdGlvbignc25vd2xlb3BhcmQnLCAneDg2JywgJ2RlYnVnJyksCkBA
IC0xMzAsMTIgKzEzMCwxMiBAQCBjbGFzcyBDaHJvbWl1bVBvcnRUZXN0Q2FzZShwb3J0X3Rlc3Rj
YXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uKHNl
bGYpOgogICAgICAgICBtb2NrX29wdGlvbnMgPSBNb2NrT3B0aW9ucygpCiAgICAgICAgIHBvcnQg
PSBDaHJvbWl1bVBvcnRUZXN0Q2FzZS5UZXN0TGludXhQb3J0KG9wdGlvbnM9bW9ja19vcHRpb25z
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtb2NrX29wdGlvbnMuY29uZmlndXJhdGlvbiwg
J2RlZmF1bHQnKSAgIyBweWxpbnQ6IGRpc2FibGUtbXNnPUUxMTAxCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobW9ja19vcHRpb25zLmNvbmZpZ3VyYXRpb24sICdkZWZhdWx0JykgICMgcHlsaW50
OiBkaXNhYmxlLW1zZz1FMTEwMQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5kZWZhdWx0
X2NvbmZpZ3VyYXRpb25fY2FsbGVkKQogCiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IE1vY2tPcHRp
b25zKGNvbmZpZ3VyYXRpb249Tm9uZSkKICAgICAgICAgcG9ydCA9IENocm9taXVtUG9ydFRlc3RD
YXNlLlRlc3RMaW51eFBvcnQobW9ja19vcHRpb25zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhtb2NrX29wdGlvbnMuY29uZmlndXJhdGlvbiwgJ2RlZmF1bHQnKSAgIyBweWxpbnQ6IGRpc2Fi
bGUtbXNnPUUxMTAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja19vcHRpb25zLmNvbmZp
Z3VyYXRpb24sICdkZWZhdWx0JykgICMgcHlsaW50OiBkaXNhYmxlLW1zZz1FMTEwMQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9ydC5kZWZhdWx0X2NvbmZpZ3VyYXRpb25fY2FsbGVkKQogCiAg
ICAgZGVmIHRlc3RfZGlmZl9pbWFnZShzZWxmKToKQEAgLTE1MiwxMSArMTUyLDExIEBAIGNsYXNz
IENocm9taXVtUG9ydFRlc3RDYXNlKHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKIAogICAg
ICAgICAjIEltYWdlcyBhcmUgZGlmZmVyZW50LgogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBN
b2NrRXhlY3V0aXZlMihydW5fY29tbWFuZF9mbj1tb2NrX3J1bl9jb21tYW5kKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhtb2NrX2ltYWdlX2RpZmYsIHBvcnQuZGlmZl9pbWFnZSgiRVhQRUNU
RUQiLCAiQUNUVUFMIilbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja19pbWFnZV9k
aWZmLCBwb3J0LmRpZmZfaW1hZ2UoIkVYUEVDVEVEIiwgIkFDVFVBTCIpWzBdKQogCiAgICAgICAg
ICMgSW1hZ2VzIGFyZSB0aGUgc2FtZS4KICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4
ZWN1dGl2ZTIoZXhpdF9jb2RlPTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE5vbmUsIHBv
cnQuZGlmZl9pbWFnZSgiRVhQRUNURUQiLCAiQUNUVUFMIilbMF0pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgcG9ydC5kaWZmX2ltYWdlKCJFWFBFQ1RFRCIsICJBQ1RVQUwiKVswXSkK
IAogICAgICAgICAjIFRoZXJlIHdhcyBzb21lIGVycm9yIHJ1bm5pbmcgaW1hZ2VfZGlmZi4KICAg
ICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIoZXhpdF9jb2RlPTIpCkBAIC0x
NzAsNyArMTcwLDcgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdENhc2UocG9ydF90ZXN0Y2FzZS5Q
b3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfY3Jhc2hlZChzZWxmKToKICAg
ICAgICAgcG9ydCA9IENocm9taXVtUG9ydFRlc3RDYXNlLlRlc3RMaW51eFBvcnQoKQogICAgICAg
ICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMihleGl0X2NvZGU9MikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocG9ydC5kaWZmX2ltYWdlKCJFWFBFQ1RFRCIsICJBQ1RVQUwiKSwg
KE5vbmUsIDAsICdpbWFnZSBkaWZmIHJldHVybmVkIGFuIGV4aXQgY29kZSBvZiAyJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKCJFWFBFQ1RFRCIsICJBQ1RVQUwi
KSwgKE5vbmUsIDAsICdpbWFnZSBkaWZmIHJldHVybmVkIGFuIGV4aXQgY29kZSBvZiAyJykpCiAK
ICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBz
ZWxmLm1ha2VfcG9ydCgpCkBAIC0xODUsMTUgKzE4NSwxNSBAQCBjbGFzcyBDaHJvbWl1bVBvcnRU
ZXN0Q2FzZShwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuX2ZpbGVz
eXN0ZW0ud3JpdGVfdGV4dF9maWxlKHNraWFfb3ZlcnJpZGVzX3BhdGgsICdkdW1tYXkgdGV4dCcp
CiAKICAgICAgICAgcG9ydC5fb3B0aW9ucy5idWlsZGVyX25hbWUgPSAnRFVNTVlfQlVJTERFUl9O
QU1FJwotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmV4cGVjdGF0aW9uc19maWxlcygp
LCBbZXhwZWN0YXRpb25zX3BhdGgsIHNraWFfb3ZlcnJpZGVzX3BhdGgsIGNocm9taXVtX292ZXJy
aWRlc19wYXRoXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmV4cGVjdGF0aW9uc19m
aWxlcygpLCBbZXhwZWN0YXRpb25zX3BhdGgsIHNraWFfb3ZlcnJpZGVzX3BhdGgsIGNocm9taXVt
X292ZXJyaWRlc19wYXRoXSkKIAogICAgICAgICBwb3J0Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSA9
ICdidWlsZGVyIChkZXBzKScKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5leHBlY3Rh
dGlvbnNfZmlsZXMoKSwgW2V4cGVjdGF0aW9uc19wYXRoLCBza2lhX292ZXJyaWRlc19wYXRoLCBj
aHJvbWl1bV9vdmVycmlkZXNfcGF0aF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5l
eHBlY3RhdGlvbnNfZmlsZXMoKSwgW2V4cGVjdGF0aW9uc19wYXRoLCBza2lhX292ZXJyaWRlc19w
YXRoLCBjaHJvbWl1bV9vdmVycmlkZXNfcGF0aF0pCiAKICAgICAgICAgIyBBIGJ1aWxkZXIgd2hp
Y2ggZG9lcyBOT1Qgb2JzZXJ2ZSB0aGUgQ2hyb21pdW0gdGVzdF9leHBlY3RhdGlvbnMsCiAgICAg
ICAgICMgYnV0IHN0aWxsIG9ic2VydmVzIHRoZSBTa2lhIHRlc3RfZXhwZWN0YXRpb25zLi4uCiAg
ICAgICAgIHBvcnQuX29wdGlvbnMuYnVpbGRlcl9uYW1lID0gJ2J1aWxkZXInCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKCksIFtleHBlY3RhdGlvbnNf
cGF0aCwgc2tpYV9vdmVycmlkZXNfcGF0aF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5leHBlY3RhdGlvbnNfZmlsZXMoKSwgW2V4cGVjdGF0aW9uc19wYXRoLCBza2lhX292ZXJyaWRl
c19wYXRoXSkKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19vcmRlcmluZyhzZWxmKToKICAg
ICAgICAgIyBzaW5jZSB3ZSBkb24ndCBpbXBsZW1lbnQgc2VsZi5wb3J0X25hbWUgaW4gQ2hyb21p
dW1Qb3J0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQppbmRleCBkYzE4NGZjMTQ1
YjY4YzZmYzkwZGMzNDRmODA5ZjQwZTY2MzRkNTMyLi4xYzBkZGMxZmU4NmUwMDg5NjA4YzliNWJi
N2NmYzY3OWU5ZTAxYjcwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weQpAQCAt
NTksNyArNTksNyBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QoY2hyb21pdW1fcG9ydF90ZXN0Y2Fz
ZS5DaHJvbWl1bVBvcnRUZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rfc2V0dXBfZW52aXJvbl9mb3Jf
c2VydmVyX2N5Z3BhdGgoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAg
ICAgICAgIGVudiA9IHBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHBvcnQuZHJpdmVyX25h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZW52WydDWUdXSU5fUEFUSCddLCAnL21v
Y2stY2hlY2tvdXQvU291cmNlL1dlYktpdC9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jeWd3aW4vYmlu
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbnZbJ0NZR1dJTl9QQVRIJ10sICcvbW9jay1j
aGVja291dC9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3RoaXJkX3BhcnR5L2N5Z3dpbi9iaW4nKQog
CiAgICAgZGVmIHRlc3Rfc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyX3JlZ2lzdGVyX2N5Z3dpbihz
ZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMo
cmVnaXN0ZXJfY3lnd2luPVRydWUsIHJlc3VsdHNfZGlyZWN0b3J5PScvJykpCkBAIC03MCw3ICs3
MCw3IEBAIGNsYXNzIENocm9taXVtV2luVGVzdChjaHJvbWl1bV9wb3J0X3Rlc3RjYXNlLkNocm9t
aXVtUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiBhc3NlcnRfbmFtZShzZWxmLCBwb3J0X25hbWUs
IG9zX3ZlcnNpb25fc3RyaW5nLCBleHBlY3RlZCk6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2Vf
cG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCBvc192ZXJzaW9uPW9zX3ZlcnNpb25fc3RyaW5nKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgcG9ydC5uYW1lKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQogCiAgICAgZGVmIHRlc3Rf
dmVyc2lvbnMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCkBAIC05Miwx
MCArOTIsMTAgQEAgY2xhc3MgQ2hyb21pdW1XaW5UZXN0KGNocm9taXVtX3BvcnRfdGVzdGNhc2Uu
Q2hyb21pdW1Qb3J0VGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxm
KToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0td2lu
LXhwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBv
cnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1bS13aW4teHAnKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgoJ2Nocm9taXVtLXdpbi14cCcpKQogCiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9y
dChwb3J0X25hbWU9J2Nocm9taXVtLXdpbi13aW43JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJv
bWl1bS13aW4nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3BhdGgo
KSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLXdpbicpKQogCiAgICAgZGVm
IHRlc3RfYnVpbGRfcGF0aChzZWxmKToKICAgICAgICAgIyBUZXN0IHRoYXQgb3B0aW9uYWwgcGF0
aHMgYXJlIHVzZWQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgZXhpc3QuCkBAIC0xMjIsNCAr
MTIyLDQgQEAgY2xhc3MgQ2hyb21pdW1XaW5UZXN0KGNocm9taXVtX3BvcnRfdGVzdGNhc2UuQ2hy
b21pdW1Qb3J0VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5tYWtlX3Bv
cnQob3B0aW9ucz1Nb2NrT3B0aW9ucyhkcml2ZXJfbmFtZT0nT3RoZXJEcml2ZXInKSkuX3BhdGhf
dG9fZHJpdmVyKCkuZW5kc3dpdGgoJ090aGVyRHJpdmVyLmV4ZScpKQogCiAgICAgZGVmIHRlc3Rf
cGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxm
Lm1ha2VfcG9ydCgpLl9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgJy9tb2NrLWNoZWNrb3V0L291dC9S
ZWxlYXNlL0ltYWdlRGlmZi5leGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFr
ZV9wb3J0KCkuX3BhdGhfdG9faW1hZ2VfZGlmZigpLCAnL21vY2stY2hlY2tvdXQvb3V0L1JlbGVh
c2UvSW1hZ2VEaWZmLmV4ZScpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5CmluZGV4IDViMTFhZGUyYWU3
MTkyNzZlOGNhODU0ZDdjMjAxNjY1NGVlN2YxNDkuLmEyZDA5MjcxMzJmZmE3OTdlNDMyNzVhOTVm
OTgxZWU5Y2U4OWQ3YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5CkBAIC0xMTksOSArMTE5LDkg
QEAgY2xhc3MgRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAiI0VP
RiIsCiAgICAgICAgIF0pCiAgICAgICAgIGNvbnRlbnRfYmxvY2sgPSBkcml2ZXIuX3JlYWRfYmxv
Y2soMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udGVudF9ibG9jay5jb250ZW50X3R5
cGUsICdteV90eXBlJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udGVudF9ibG9jay5l
bmNvZGluZywgJ25vbmUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb250ZW50X2Jsb2Nr
LmNvbnRlbnRfaGFzaCwgJ2Zvb2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGVu
dF9ibG9jay5jb250ZW50X3R5cGUsICdteV90eXBlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb250ZW50X2Jsb2NrLmVuY29kaW5nLCAnbm9uZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29udGVudF9ibG9jay5jb250ZW50X2hhc2gsICdmb29iYXInKQogICAgICAgICBkcml2ZXIu
X3NlcnZlcl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIHRlc3RfcmVhZF9iaW5hcnlfYmxvY2so
c2VsZik6CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBjbGFzcyBEcml2ZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgICAgICIjRU9GIiwKICAgICAgICAgXSkKICAgICAgICAgY29udGVu
dF9ibG9jayA9IGRyaXZlci5fcmVhZF9ibG9jaygwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhjb250ZW50X2Jsb2NrLmNvbnRlbnRfdHlwZSwgJ2ltYWdlL3BuZycpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGNvbnRlbnRfYmxvY2suY29udGVudF9oYXNoLCAnYWN0dWFsJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udGVudF9ibG9jay5jb250ZW50LCAnMTIzNDU2Nzhcbicp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnRlbnRfYmxvY2suZGVjb2RlZF9jb250ZW50
LCAnMTIzNDU2NzhcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29udGVudF9ibG9jay5j
b250ZW50X3R5cGUsICdpbWFnZS9wbmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRl
bnRfYmxvY2suY29udGVudF9oYXNoLCAnYWN0dWFsJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb250ZW50X2Jsb2NrLmNvbnRlbnQsICcxMjM0NTY3OFxuJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb250ZW50X2Jsb2NrLmRlY29kZWRfY29udGVudCwgJzEyMzQ1Njc4XG4nKQogICAg
ICAgICBkcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIHRlc3RfcmVhZF9i
YXNlNjRfYmxvY2soc2VsZik6CkBAIC0xNTQsMTYgKzE1NCwxNiBAQCBjbGFzcyBEcml2ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdNVEl6TkRVMk56Z0sjRU9GJywKICAg
ICAgICAgXSkKICAgICAgICAgY29udGVudF9ibG9jayA9IGRyaXZlci5fcmVhZF9ibG9jaygwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjb250ZW50X2Jsb2NrLmNvbnRlbnRfdHlwZSwgJ2lt
YWdlL3BuZycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnRlbnRfYmxvY2suY29udGVu
dF9oYXNoLCAnYWN0dWFsJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29udGVudF9ibG9j
ay5lbmNvZGluZywgJ2Jhc2U2NCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbnRlbnRf
YmxvY2suY29udGVudCwgJ01USXpORFUyTnpnSycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGNvbnRlbnRfYmxvY2suZGVjb2RlZF9jb250ZW50LCAnMTIzNDU2NzhcbicpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29udGVudF9ibG9jay5jb250ZW50X3R5cGUsICdpbWFnZS9wbmcnKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRlbnRfYmxvY2suY29udGVudF9oYXNoLCAnYWN0
dWFsJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZW50X2Jsb2NrLmVuY29kaW5nLCAn
YmFzZTY0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZW50X2Jsb2NrLmNvbnRlbnQs
ICdNVEl6TkRVMk56Z0snKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRlbnRfYmxvY2su
ZGVjb2RlZF9jb250ZW50LCAnMTIzNDU2NzhcbicpCiAKICAgICBkZWYgdGVzdF9ub190aW1lb3V0
KHNlbGYpOgogICAgICAgICBwb3J0ID0gVGVzdFdlYktpdFBvcnQoKQogICAgICAgICBkcml2ZXIg
PSBEcml2ZXIocG9ydCwgMCwgcGl4ZWxfdGVzdHM9VHJ1ZSwgbm9fdGltZW91dD1UcnVlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhkcml2ZXIuY21kX2xpbmUoVHJ1ZSwgW10pLCBbJy9tb2Nr
LWJ1aWxkL0R1bXBSZW5kZXJUcmVlJywgJy0tbm8tdGltZW91dCcsICctJ10pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZHJpdmVyLmNtZF9saW5lKFRydWUsIFtdKSwgWycvbW9jay1idWlsZC9E
dW1wUmVuZGVyVHJlZScsICctLW5vLXRpbWVvdXQnLCAnLSddKQogCiAgICAgZGVmIHRlc3RfY2hl
Y2tfZm9yX2RyaXZlcl9jcmFzaChzZWxmKToKICAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0
KCkKQEAgLTE4NiwxMCArMTg2LDEwIEBAIGNsYXNzIERyaXZlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBkZWYgYXNzZXJ0X2NyYXNoKGRy
aXZlciwgZXJyb3JfbGluZSwgY3Jhc2hlZCwgbmFtZSwgcGlkLCB1bnJlc3BvbnNpdmU9RmFsc2Up
OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZHJpdmVyLl9jaGVja19mb3JfZHJpdmVy
X2NyYXNoKGVycm9yX2xpbmUpLCBjcmFzaGVkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoZHJpdmVyLl9jcmFzaGVkX3Byb2Nlc3NfbmFtZSwgbmFtZSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGRyaXZlci5fY3Jhc2hlZF9waWQsIHBpZCkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGRyaXZlci5fc3VicHJvY2Vzc193YXNfdW5yZXNwb25zaXZlLCB1bnJlc3Bv
bnNpdmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyaXZlci5fY2hlY2tfZm9yX2Ry
aXZlcl9jcmFzaChlcnJvcl9saW5lKSwgY3Jhc2hlZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZHJpdmVyLl9jcmFzaGVkX3Byb2Nlc3NfbmFtZSwgbmFtZSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZHJpdmVyLl9jcmFzaGVkX3BpZCwgcGlkKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChkcml2ZXIuX3N1YnByb2Nlc3Nfd2FzX3VucmVzcG9uc2l2ZSwgdW5yZXNw
b25zaXZlKQogICAgICAgICAgICAgZHJpdmVyLnN0b3AoKQogCiAgICAgICAgIGRyaXZlci5fc2Vy
dmVyX3Byb2Nlc3MgPSBGYWtlU2VydmVyUHJvY2VzcyhGYWxzZSkKQEAgLTIzNCw4ICsyMzQsOCBA
QCBjbGFzcyBEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9jcmVh
dGluZ19hX3BvcnRfZG9lc19ub3Rfd3JpdGVfdG9fdGhlX2ZpbGVzeXN0ZW0oc2VsZik6CiAgICAg
ICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydCgpCiAgICAgICAgIGRyaXZlciA9IERyaXZlcihwb3J0
LCAwLCBwaXhlbF90ZXN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9m
aWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMsIHt9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
b3J0Ll9maWxlc3lzdGVtLmxhc3RfdG1wZGlyLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuX2ZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcywge30pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5fZmlsZXN5c3RlbS5sYXN0X3RtcGRpciwgTm9uZSkKIAogICAgIGRlZiB0
ZXN0X3N0b3BfY2xlYW5zX3VwX3Byb3Blcmx5KHNlbGYpOgogICAgICAgICBwb3J0ID0gVGVzdFdl
YktpdFBvcnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5CmluZGV4IDI5ODBjMmQyM2I2ZGRhNTY3
ZWVmODZiY2QzNGI0Yjc1ZWY3ZGVmNTguLjkxNWMxN2Q4OWVjNmRhOTMyMzkzOGJmZGFjYzNjZTlj
NzJlNGI4OTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKQEAgLTEwNSw3ICsxMDUsNyBAQCBj
bGFzcyBGYWN0b3J5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIGZhY3RvcnkuUG9ydEZhY3RvcnkoTW9ja1N5c3Rl
bUhvc3Qob3NfbmFtZT0ndm1zJykpLmdldCkKIAogICAgIGRlZiB0ZXN0X2dldF9mcm9tX2J1aWxk
ZXJfbmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFjdG9yeS5Qb3J0RmFj
dG9yeShNb2NrU3lzdGVtSG9zdCgpKS5nZXRfZnJvbV9idWlsZGVyX25hbWUoJ1dlYktpdCBNYWMx
MC43JykubmFtZSgpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhY3RvcnkuUG9ydEZhY3Rv
cnkoTW9ja1N5c3RlbUhvc3QoKSkuZ2V0X2Zyb21fYnVpbGRlcl9uYW1lKCdXZWJLaXQgTWFjMTAu
NycpLm5hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nocm9taXVtLW1hYy1saW9u
JykKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2d0a191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZ3RrX3VuaXR0ZXN0LnB5CmluZGV4IGYxZGY2YmZhMWRjNDM1OWViMDZmYTcyNDI0NGM3
ZjRjNDJiMDYwZmQuLjZmNWZhZTY4ZGMxZTE0YmVmNGM0ZDhmNDdjYzZkNzIyYTY4YTI3NjQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Z3RrX3VuaXR0ZXN0LnB5CkBAIC01MCwxMCArNTAsMTAgQEAgY2xhc3MgR3RrUG9ydFRlc3QocG9y
dF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgcG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlLCBbInRlc3QuaHRtbCJd
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfZGVmYXVs
dF90aW1lb3V0X21zKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2Vf
cG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVs
dF90aW1lb3V0X21zKCksIDYwMDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFr
ZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nRGVidWcnKSkuZGVmYXVs
dF90aW1lb3V0X21zKCksIDEyMDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1h
a2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlLCBjb25m
aWd1cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0X3RpbWVvdXRfbXMoKSwgODAwMDApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMod2Vi
a2l0X3Rlc3RfcnVubmVyPVRydWUsIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90
aW1lb3V0X21zKCksIDgwMDAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9w
b3J0KG9wdGlvbnM9TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKS5kZWZhdWx0
X3RpbWVvdXRfbXMoKSwgNjAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2Vf
cG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykpLmRlZmF1bHRf
dGltZW91dF9tcygpLCAxMjAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2Vf
cG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlLCBjb25maWd1
cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0X3RpbWVvdXRfbXMoKSwgODAwMDApCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRf
dGVzdF9ydW5uZXI9VHJ1ZSwgY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKS5kZWZhdWx0X3RpbWVv
dXRfbXMoKSwgODAwMDApCiAKICAgICBkZWYgYXNzZXJ0TGluZXNFcXVhbChzZWxmLCBhLCBiKToK
ICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnYXNzZXJ0TXVsdGlMaW5lRXF1YWwnKToKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaHR0cF9sb2Nr
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9o
dHRwX2xvY2tfdW5pdHRlc3QucHkKaW5kZXggZmJmMmQ5ZGYzNDg3MzBjODg5NzE4ZTk1ODdjNmI0
ODM4NzM5NzZmYy4uNjUwYTc2NzBmZWI0OGE4NGE4ODc2NzJkOWY3ZTE4ZGZiNjY5MDMxNiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9odHRwX2xv
Y2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9odHRwX2xvY2tfdW5pdHRlc3QucHkKQEAgLTg4LDcgKzg4LDcgQEAgY2xhc3MgSHR0cExv
Y2tUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBGSVhNRTogT25jZSBFeGVjdXRp
dmUgd3JhcHMgZ2V0cGlkLCB3ZSBjYW4gbW9jayB0aGlzIGFuZCBub3QgdXNlIGEgcmVhbCBwaWQu
CiAgICAgICAgIGN1cnJlbnRfcGlkID0gb3MuZ2V0cGlkKCkKICAgICAgICAgc2VsZi5odHRwX2xv
Y2suX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHNlbGYubG9ja19maWxlX25hbWUsIHN0cihj
dXJyZW50X3BpZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuaHR0cF9sb2NrLl9j
dXJyZW50X2xvY2tfcGlkKCksIGN1cnJlbnRfcGlkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuaHR0cF9sb2NrLl9jdXJyZW50X2xvY2tfcGlkKCksIGN1cnJlbnRfcGlkKQogCiAgICAg
ZGVmIHRlc3RfZXh0cmFjdF9sb2NrX251bWJlcihzZWxmKToKICAgICAgICAgbG9ja19maWxlX2xp
c3QgPSAoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2ltYWdlX2RpZmZfdW5pdHRlc3QucHkKaW5kZXggNDZjYzk4YTExYWMzY2Rh
MTIwYzEyOWZmOTA4NjcxNmM5MTA4OWY5Ny4uMGU1ZjBhMGZmZjBiMWJjMzA4MDU5MjEwODNjZDZj
ODQ1OGRiNTFlOSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9pbWFnZV9kaWZmX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvaW1hZ2VfZGlmZl91bml0dGVzdC5weQpAQCAtNDksOSArNDks
OSBAQCBjbGFzcyBUZXN0SW1hZ2VEaWZmZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0
ZXN0X2RpZmZfaW1hZ2VfZmFpbGVkKHNlbGYpOgogICAgICAgICBwb3J0ID0gRmFrZVBvcnQoWydk
aWZmOiAxMDAlIGZhaWxlZFxuJ10pCiAgICAgICAgIGltYWdlX2RpZmZlciA9IEltYWdlRGlmZmVy
KHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGltYWdlX2RpZmZlci5kaWZmX2ltYWdl
KCdmb28nLCAnYmFyJywgMC4xKSwgKCcnLCAxMDAuMCwgTm9uZSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoaW1hZ2VfZGlmZmVyLmRpZmZfaW1hZ2UoJ2ZvbycsICdiYXInLCAwLjEpLCAoJycs
IDEwMC4wLCBOb25lKSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfcGFzc2VkKHNlbGYpOgog
ICAgICAgICBwb3J0ID0gRmFrZVBvcnQoWydkaWZmOiAwJSBwYXNzZWRcbiddKQogICAgICAgICBp
bWFnZV9kaWZmZXIgPSBJbWFnZURpZmZlcihwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZSgnZm9vJywgJ2JhcicsIDAuMSksIChOb25lLCAwLCBO
b25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZSgn
Zm9vJywgJ2JhcicsIDAuMSksIChOb25lLCAwLCBOb25lKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbGVha2RldGVjdG9yX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3Jf
dW5pdHRlc3QucHkKaW5kZXggNzYyOGJiNzA5Mjg0MmQwYjlmZDc4YTlmMDUxZThiMWZjNTU3ZGQ1
Mi4uMDlkMzdkNzExYTRiN2IyZTNjYzYyYzFmMDVmMjIyN2E1NjAzYzQwMiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9sZWFrZGV0ZWN0b3JfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9s
ZWFrZGV0ZWN0b3JfdW5pdHRlc3QucHkKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgTGVha0RldGVj
dG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRldGVjdG9yLl9jYWxsc3RhY2tz
X3RvX2V4Y2x1ZGVfZnJvbV9sZWFrcyA9IGxhbWJkYTogWydmb28gYmFyJywgJ0JBWiddCiAgICAg
ICAgIGRldGVjdG9yLl90eXBlc190b19leGx1ZGVfZnJvbV9sZWFrcyA9IGxhbWJkYTogWydhYmNk
ZWZnJywgJ2hpIGprbG1ubyddCiAgICAgICAgIGV4cGVjdGVkX2FyZ3MgPSBbJy0tZXhjbHVkZS1j
YWxsc3RhY2s9Zm9vIGJhcicsICctLWV4Y2x1ZGUtY2FsbHN0YWNrPUJBWicsICctLWV4Y2x1ZGUt
dHlwZT1hYmNkZWZnJywgJy0tZXhjbHVkZS10eXBlPWhpIGprbG1ubycsIDEyMzRdCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGRldGVjdG9yLl9sZWFrc19hcmdzKDEyMzQpLCBleHBlY3RlZF9h
cmdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRldGVjdG9yLl9sZWFrc19hcmdzKDEyMzQp
LCBleHBlY3RlZF9hcmdzKQogCiAgICAgZXhhbXBsZV9sZWFrc19vdXRwdXQgPSAiIiJQcm9jZXNz
IDUxMjI6IDY2Mzc0NCBub2RlcyBtYWxsb2NlZCBmb3IgNzg2ODMgS0IKIFByb2Nlc3MgNTEyMjog
MzM3MzAxIGxlYWtzIGZvciA2NTI1MjE2IHRvdGFsIGxlYWtlZCBieXRlcy4KQEAgLTExMCwxOCAr
MTEwLDE4IEBAIEJpbmFyeSBJbWFnZXM6CiAiIiIKIAogICAgIGRlZiB0ZXN0X3BhcnNlX2xlYWtz
X291dHB1dChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fbWFrZV9kZXRl
Y3RvcigpLl9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZi5leGFtcGxlX2xlYWtzX291dHB1dCksICgz
MzczMDEsIDAsIDY1MjUyMTYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9tYWtl
X2RldGVjdG9yKCkuX3BhcnNlX2xlYWtzX291dHB1dChzZWxmLmV4YW1wbGVfbGVha3Nfb3V0cHV0
X3dpdGhfZXhjbHVzaW9ucyksICgyODIsIDE3LCAyMTkyMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi5fbWFrZV9kZXRlY3RvcigpLl9wYXJzZV9sZWFrc19vdXRwdXQoc2VsZi5leGFt
cGxlX2xlYWtzX291dHB1dCksICgzMzczMDEsIDAsIDY1MjUyMTYpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuX21ha2VfZGV0ZWN0b3IoKS5fcGFyc2VfbGVha3Nfb3V0cHV0KHNlbGYu
ZXhhbXBsZV9sZWFrc19vdXRwdXRfd2l0aF9leGNsdXNpb25zKSwgKDI4MiwgMTcsIDIxOTIwKSkK
IAogICAgIGRlZiB0ZXN0X2xlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAg
ZGV0ZWN0b3IgPSBzZWxmLl9tYWtlX2RldGVjdG9yKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoZGV0ZWN0b3IubGVha3NfZmlsZXNfaW5fZGlyZWN0b3J5KCcvYm9ndXMtZGlyZWN0b3J5Jyks
IFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2Rp
cmVjdG9yeSgnL2JvZ3VzLWRpcmVjdG9yeScpLCBbXSkKICAgICAgICAgZGV0ZWN0b3IuX2ZpbGVz
eXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSh7CiAgICAgICAgICAgICAnL21vY2stcmVzdWx0cy9EdW1w
UmVuZGVyVHJlZS0xMjM0LWxlYWtzLnR4dCc6ICcnLAogICAgICAgICAgICAgJy9tb2NrLXJlc3Vs
dHMvRHVtcFJlbmRlclRyZWUtMjM0MjMtbGVha3MudHh0JzogJycsCiAgICAgICAgICAgICAnL21v
Y2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0JzogJycsCiAgICAgICAgIH0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihkZXRlY3Rvci5sZWFrc19maWxlc19pbl9k
aXJlY3RvcnkoJy9tb2NrLXJlc3VsdHMnKSksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGRldGVjdG9yLmxlYWtzX2ZpbGVzX2luX2RpcmVjdG9yeSgnL21vY2stcmVzdWx0cycpKSwg
MykKIAogICAgIGRlZiB0ZXN0X2NvdW50X3RvdGFsX2J5dGVzX2FuZF91bmlxdWVfbGVha3Moc2Vs
Zik6CiAgICAgICAgIGRldGVjdG9yID0gc2VsZi5fbWFrZV9kZXRlY3RvcigpCkBAIC0xMzgsNyAr
MTM4LDcgQEAgdG90YWw6IDUsODg4IGJ5dGVzICgwIGJ5dGVzIGV4Y2x1ZGVkKS4iIiIKICAgICAg
ICAgbGVha19maWxlcyA9IFsnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0xMjM0LWxlYWtz
LnR4dCcsICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVlLTEyMzUtbGVha3MudHh0J10KICAg
ICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIk1PQ0sgX3J1bl9zY3JpcHQ6IHBhcnNlLW1hbGxvYy1o
aXN0b3J5IFsnLS1tZXJnZS1kZXB0aCcsIDUsICcvbW9jay1yZXN1bHRzL0R1bXBSZW5kZXJUcmVl
LTEyMzQtbGVha3MudHh0JywgJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNS1sZWFr
cy50eHQnXVxuIgogICAgICAgICByZXN1bHRzX3R1cGxlID0gT3V0cHV0Q2FwdHVyZSgpLmFzc2Vy
dF9vdXRwdXRzKHNlbGYsIGRldGVjdG9yLmNvdW50X3RvdGFsX2J5dGVzX2FuZF91bmlxdWVfbGVh
a3MsIFtsZWFrX2ZpbGVzXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0c190dXBsZSwgKCI1LDg4OCBieXRlcyIsIDIpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHNfdHVwbGUsICgiNSw4ODggYnl0ZXMiLCAy
KSkKIAogICAgIGRlZiB0ZXN0X2NvdW50X3RvdGFsX2xlYWtzKHNlbGYpOgogICAgICAgICBkZXRl
Y3RvciA9IHNlbGYuX21ha2VfZGV0ZWN0b3IoKQpAQCAtMTQ5LDQgKzE0OSw0IEBAIHRvdGFsOiA1
LDg4OCBieXRlcyAoMCBieXRlcyBleGNsdWRlZCkuIiIiCiAgICAgICAgICAgICAnL21vY2stcmVz
dWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0JzogJ1Byb2Nlc3MgMTIzNTY6IDIzNDEy
IGxlYWtzIGZvciAxOCB0b3RhbCBsZWFrZWQgYnl0ZXMuXG4nLAogICAgICAgICB9KQogICAgICAg
ICBsZWFrX2ZpbGVfcGF0aHMgPSBbJy9tb2NrLXJlc3VsdHMvRHVtcFJlbmRlclRyZWUtMTIzNC1s
ZWFrcy50eHQnLCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS0yMzQyMy1sZWFrcy50eHQn
LCAnL21vY2stcmVzdWx0cy9EdW1wUmVuZGVyVHJlZS04MjMtbGVha3MudHh0J10KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoZGV0ZWN0b3IuY291bnRfdG90YWxfbGVha3MobGVha19maWxlX3Bh
dGhzKSwgMzU3NjUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGV0ZWN0b3IuY291bnRfdG90
YWxfbGVha3MobGVha19maWxlX3BhdGhzKSwgMzU3NjUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CmluZGV4IGMy
YjI2YjJmNzlmZmJiYmIwNDZmNTVjOTIyNGVhY2FiNmE4ZTAwZmYuLjUxMTIwMTQ2NGNkMzQyMjUw
MTBjZGMwMmQ3ZGIzNWYyMTFiZWNjNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC00Nyw3ICs0Nyw3
IEBAIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogCiAgICAgZGVm
IHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgogICAgICAgICBzdXBlcihNYWNUZXN0LCBz
ZWxmKS50ZXN0X2RlZmF1bHRfdGltZW91dF9tcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMoZ3VhcmRfbWFsbG9jPVRydWUpKS5k
ZWZhdWx0X3RpbWVvdXRfbXMoKSwgMzUwMDAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMoZ3VhcmRfbWFsbG9jPVRydWUpKS5kZWZh
dWx0X3RpbWVvdXRfbXMoKSwgMzUwMDAwKQogCiAKICAgICBleGFtcGxlX3NraXBwZWRfZmlsZSA9
IHUiIiIKQEAgLTc3LDcgKzc3LDcgQEAgamF2YS8KICAgICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwg
cG9ydF9uYW1lLCBvc192ZXJzaW9uX3N0cmluZywgZXhwZWN0ZWQpOgogICAgICAgICBob3N0ID0g
TW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0nbWFjJywgb3NfdmVyc2lvbj1vc192ZXJzaW9uX3N0cmlu
ZykKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KGhvc3Q9aG9zdCwgcG9ydF9uYW1lPXBv
cnRfbmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBwb3J0Lm5hbWUoKSkKIAogICAg
IGRlZiB0ZXN0X3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIHBsYXRm
b3JtcyA9IFsnbWFjJywgJ2Nocm9taXVtLWxpbnV4JywgJ21hYy1zbm93bGVvcGFyZCddCkBAIC0x
MTUsMTQgKzExNSwxNCBAQCBqYXZhLwogICAgIGRlZiB0ZXN0X3NldHVwX2Vudmlyb25fZm9yX3Nl
cnZlcihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09w
dGlvbnMobGVha3M9VHJ1ZSwgZ3VhcmRfbWFsbG9jPVRydWUpKQogICAgICAgICBlbnYgPSBwb3J0
LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihwb3J0LmRyaXZlcl9uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKGVudlsnTWFsbG9jU3RhY2tMb2dnaW5nJ10sICcxJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoZW52WydEWUxEX0lOU0VSVF9MSUJSQVJJRVMnXSwgJy91c3IvbGli
L2xpYmdtYWxsb2MuZHlsaWInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVudlsnTWFsbG9j
U3RhY2tMb2dnaW5nJ10sICcxJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbnZbJ0RZTERf
SU5TRVJUX0xJQlJBUklFUyddLCAnL3Vzci9saWIvbGliZ21hbGxvYy5keWxpYicpCiAKICAgICBk
ZWYgX2Fzc2VydF9zZWFyY2hfcGF0aChzZWxmLCBwb3J0X25hbWUsIGJhc2VsaW5lX3BhdGgsIHNl
YXJjaF9wYXRocywgdXNlX3dlYmtpdDI9RmFsc2UpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtl
X3BvcnQocG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVz
dF9ydW5uZXI9dXNlX3dlYmtpdDIpKQogICAgICAgICBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMgPSBt
YXAocG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlYXJjaF9wYXRocykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoKGJhc2VsaW5lX3BhdGgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJh
c2VsaW5lX3NlYXJjaF9wYXRoKCksIGFic29sdXRlX3NlYXJjaF9wYXRocykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgoYmFzZWxpbmVfcGF0aCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5iYXNl
bGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMpCiAKICAgICBkZWYgdGVz
dF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgIyBOb3RlIHRoYXQgd2UgZG9u
J3QgbmVlZCB0b3RhbCBjb3ZlcmFnZSBoZXJlLCBqdXN0IHBhdGggY292ZXJhZ2UsIHNpbmNlIHRo
aXMgaXMgYWxsIGRhdGEgZHJpdmVuLgpAQCAtMjQwLDE4ICsyNDAsMTggQEAgamF2YS8KICAgICAg
ICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKIAogICAgICAgICBwb3J0Ll9ydW5fc2NyaXB0ID0gcnVu
X3NjcmlwdAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmFyY2hpdGVjdHVyZSgpLCAn
eDg2JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmFyY2hpdGVjdHVyZSgpLCAneDg2
JykKICAgICAgICAgcG9ydC5fYnVpbGRfZHJpdmVyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2VsZi5hcmdzLCBbJ0FSQ0hTPWkzODYnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLmFyZ3MsIFsnQVJDSFM9aTM4NiddKQogCiAgICAgZGVmIHRlc3RfNjRiaXQoc2VsZik6CiAg
ICAgICAgICMgQXBwbGUgTWFjIHBvcnQgaXMgNjQtYml0IGJ5IGRlZmF1bHQKICAgICAgICAgcG9y
dCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5hcmNo
aXRlY3R1cmUoKSwgJ3g4Nl82NCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNo
aXRlY3R1cmUoKSwgJ3g4Nl82NCcpCiAKICAgICAgICAgZGVmIHJ1bl9zY3JpcHQoc2NyaXB0LCBh
cmdzPU5vbmUsIGVudj1Ob25lKToKICAgICAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKIAogICAg
ICAgICBwb3J0Ll9ydW5fc2NyaXB0ID0gcnVuX3NjcmlwdAogICAgICAgICBwb3J0Ll9idWlsZF9k
cml2ZXIoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmFyZ3MsIFtdKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuYXJncywgW10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5w
eQppbmRleCAxYWMwNTFhYmRkZWZiMDk0YjFjM2EyODkyNzFhNGNkODE4NWVjYzVmLi5jNGM0M2Y1
ZDhhN2U5ZTNhNDZkMWQ3YzIyYTFkZDY3Y2M1OTQ0NmI2IDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRl
c3QucHkKQEAgLTI1Nyw3ICsyNTcsNyBAQCBjbGFzcyBNb2NrVGVzdFNoZWxsVGVzdChNb2NrRFJU
VGVzdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgJyNFT0ZcbiddLAogICAgICAgICAgICAgaG9zdD1ob3N0KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcywKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcywKICAgICAgICAgICAgIHsn
L3RtcC9wbmdfcmVzdWx0MC5wbmcnOiAnaW1hZ2VfY2hlY2tzdW1ceDhhLXBuZ3RFWHRjaGVja3N1
bVx4MDBpbWFnZV9jaGVja3N1bS1jaGVja3N1bSd9KQogCiAgICAgZGVmIHRlc3RfdGVzdF9zaGVs
bF9wYXJzZV9vcHRpb25zKHNlbGYpOgpAQCAtMjY1LDQgKzI2NSw0IEBAIGNsYXNzIE1vY2tUZXN0
U2hlbGxUZXN0KE1vY2tEUlRUZXN0KToKICAgICAgICAgICAgICctLXBpeGVsLXRlc3RzPS90bXAv
cG5nX3Jlc3VsdDAucG5nJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLnRlc3Rf
c2hlbGwpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcHRpb25zLnBpeGVsX3Rlc3RzKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLnBpeGVsX3BhdGgsICcvdG1wL3BuZ19yZXN1
bHQwLnBuZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5waXhlbF9wYXRoLCAn
L3RtcC9wbmdfcmVzdWx0MC5wbmcnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IGIyYmVmN2VjOTIy
YTRjYWJmZWFiNzBjMDViOTQxODg3YzVlYjg1NmMuLjE5Y2NiZjZiMWZmNWQzYmFhM2Y0OWZjYTQw
MWM1YzEzMzI0NTAxNGEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTk0LDE2ICs5NCwxNiBAQCBj
bGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2RlZmF1
bHRfbWF4X2xvY2tlZF9zaGFyZHMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9y
dCgpCiAgICAgICAgIHBvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMgPSBsYW1iZGE6IDE2Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuZGVmYXVsdF9tYXhfbG9ja2VkX3NoYXJkcygp
LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGVmYXVsdF9tYXhfbG9ja2VkX3No
YXJkcygpLCAxKQogICAgICAgICBwb3J0LmRlZmF1bHRfY2hpbGRfcHJvY2Vzc2VzID0gbGFtYmRh
OiAyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuZGVmYXVsdF9tYXhfbG9ja2VkX3No
YXJkcygpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGVmYXVsdF9tYXhfbG9j
a2VkX3NoYXJkcygpLCAxKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYp
OgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tP
cHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDM1
MDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1v
Y2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCAz
NTAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1v
Y2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21zKCks
IDM1MDAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9
TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0nRGVidWcnKSkuZGVmYXVsdF90aW1lb3V0X21zKCks
IDM1MDAwKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF9waXhlbF90ZXN0cyhzZWxmKToKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX3BvcnQoKS5kZWZhdWx0X3BpeGVsX3Rlc3Rz
KCksIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFrZV9wb3J0KCkuZGVm
YXVsdF9waXhlbF90ZXN0cygpLCBGYWxzZSkKIAogICAgIGRlZiB0ZXN0X2RyaXZlcl9jbWRfbGlu
ZShzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTI2OCwxOCArMjY4
LDE4IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAg
cG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBtYWtlX3Byb2MKICAgICAgICAgcG9y
dC5zZXR1cF90ZXN0X3J1bigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuZGlmZl9p
bWFnZSgnZm9vJywgJ2JhcicpLCAoJycsIDEwMC4wLCBOb25lKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi5wcm9jLmNtZFsxOjNdLCBbIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZSgnZm9vJywgJ2JhcicpLCAoJycs
IDEwMC4wLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kWzE6
M10sIFsiLS10b2xlcmFuY2UiLCAiMC4xIl0pCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
cG9ydC5kaWZmX2ltYWdlKCdmb28nLCAnYmFyJywgTm9uZSksICgnJywgMTAwLjAsIE5vbmUpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLnByb2MuY21kWzE6M10sIFsiLS10b2xlcmFu
Y2UiLCAiMC4xIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKCdm
b28nLCAnYmFyJywgTm9uZSksICgnJywgMTAwLjAsIE5vbmUpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYucHJvYy5jbWRbMTozXSwgWyItLXRvbGVyYW5jZSIsICIwLjEiXSkKIAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmRpZmZfaW1hZ2UoJ2ZvbycsICdiYXInLCAwKSwg
KCcnLCAxMDAuMCwgTm9uZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYucHJvYy5j
bWRbMTozXSwgWyItLXRvbGVyYW5jZSIsICIwIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC5kaWZmX2ltYWdlKCdmb28nLCAnYmFyJywgMCksICgnJywgMTAwLjAsIE5vbmUpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWRbMTozXSwgWyItLXRvbGVyYW5jZSIs
ICIwIl0pCiAKICAgICAgICAgcG9ydC5jbGVhbl91cF90ZXN0X3J1bigpCiAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShzZWxmLnByb2Muc3RvcHBlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
cG9ydC5faW1hZ2VfZGlmZmVyLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQu
X2ltYWdlX2RpZmZlciwgTm9uZSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfY3Jhc2hlZChz
ZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTI5MSw3ICsyOTEsNyBA
QCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHBvcnQu
X3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbWFrZV9wcm9jCiAgICAgICAgIHBvcnQuc2V0
dXBfdGVzdF9ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmRpZmZfaW1hZ2Uo
J2ZvbycsICdiYXInKSwgKCcnLCAwLCAnSW1hZ2VEaWZmIGNyYXNoZWRcbicpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZSgnZm9vJywgJ2JhcicpLCAoJycsIDAsICdJ
bWFnZURpZmYgY3Jhc2hlZFxuJykpCiAgICAgICAgIHBvcnQuY2xlYW5fdXBfdGVzdF9ydW4oKQog
CiAgICAgZGVmIHRlc3RfY2hlY2tfd2RpZmYoc2VsZik6CkBAIC0zODcsMTMgKzM4NywxMyBAQCBj
bGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZ2V0
X2NyYXNoX2xvZyhzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5fZ2V0X2NyYXNoX2xvZyhOb25lLCBOb25lLCBOb25l
LCBOb25lLCBuZXdlcl90aGFuPU5vbmUpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQu
X2dldF9jcmFzaF9sb2coTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSwgbmV3ZXJfdGhhbj1Ob25lKSwK
ICAgICAgICAgICAgKE5vbmUsCiAgICAgICAgICAgICAnY3Jhc2ggbG9nIGZvciA8dW5rbm93biBw
cm9jZXNzIG5hbWU+IChwaWQgPHVua25vd24+KTpcbicKICAgICAgICAgICAgICdTVERPVVQ6IDxl
bXB0eT5cbicKICAgICAgICAgICAgICdTVERFUlI6IDxlbXB0eT5cbicpKQogCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHBvcnQuX2dldF9jcmFzaF9sb2coJ2ZvbycsIDEyMzQsICdvdXQgYmFy
XG5vdXQgYmF6JywgJ2VyciBiYXJcbmVyciBiYXpcbicsIG5ld2VyX3RoYW49Tm9uZSksCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fZ2V0X2NyYXNoX2xvZygnZm9vJywgMTIzNCwgJ291
dCBiYXJcbm91dCBiYXonLCAnZXJyIGJhclxuZXJyIGJhelxuJywgbmV3ZXJfdGhhbj1Ob25lKSwK
ICAgICAgICAgICAgICgnZXJyIGJhclxuZXJyIGJhelxuJywKICAgICAgICAgICAgICAnY3Jhc2gg
bG9nIGZvciBmb28gKHBpZCAxMjM0KTpcbicKICAgICAgICAgICAgICAnU1RET1VUOiBvdXQgYmFy
XG4nCkBAIC00MDEsMTMgKzQwMSwxMyBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgICdTVERFUlI6IGVyciBiYXJcbicKICAgICAgICAgICAgICAn
U1RERVJSOiBlcnIgYmF6XG4nKSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9n
ZXRfY3Jhc2hfbG9nKCdmb28nLCAxMjM0LCAnZm9vXHhhNmJhcicsICdmb29ceGE2YmFyJywgbmV3
ZXJfdGhhbj1Ob25lKSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9nZXRfY3Jhc2hf
bG9nKCdmb28nLCAxMjM0LCAnZm9vXHhhNmJhcicsICdmb29ceGE2YmFyJywgbmV3ZXJfdGhhbj1O
b25lKSwKICAgICAgICAgICAgICgnZm9vXHhhNmJhcicsCiAgICAgICAgICAgICAgdSdjcmFzaCBs
b2cgZm9yIGZvbyAocGlkIDEyMzQpOlxuJwogICAgICAgICAgICAgIHUnU1RET1VUOiBmb29cdWZm
ZmRiYXJcbicKICAgICAgICAgICAgICB1J1NUREVSUjogZm9vXHVmZmZkYmFyXG4nKSkKIAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9nZXRfY3Jhc2hfbG9nKCdmb28nLCAxMjM0LCAn
Zm9vXHhhNmJhcicsICdmb29ceGE2YmFyJywgbmV3ZXJfdGhhbj0xLjApLAorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBvcnQuX2dldF9jcmFzaF9sb2coJ2ZvbycsIDEyMzQsICdmb29ceGE2YmFy
JywgJ2Zvb1x4YTZiYXInLCBuZXdlcl90aGFuPTEuMCksCiAgICAgICAgICAgICAoJ2Zvb1x4YTZi
YXInLAogICAgICAgICAgICAgIHUnY3Jhc2ggbG9nIGZvciBmb28gKHBpZCAxMjM0KTpcbicKICAg
ICAgICAgICAgICB1J1NURE9VVDogZm9vXHVmZmZkYmFyXG4nCkBAIC00MTcsMTQgKzQxNywxNCBA
QCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBwb3J0ID0g
c2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRpb25zKQogICAgICAgICBmb3IgZGlyZWN0b3J5IGlu
IGRpcnM6CiAgICAgICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVj
dG9yeShkaXJlY3RvcnkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX2J1aWxkX3Bh
dGgoKSwgZXhwZWN0ZWRfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9idWls
ZF9wYXRoKCksIGV4cGVjdGVkX3BhdGgpCiAKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfb3Jk
ZXJpbmcoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGZv
ciBwYXRoIGluIHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKCk6CiAgICAgICAgICAgICBwb3J0Ll9m
aWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShwYXRoLCAnJykKICAgICAgICAgb3JkZXJlZF9kaWN0
ID0gcG9ydC5leHBlY3RhdGlvbnNfZGljdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
cnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCksIG9yZGVyZWRfZGljdC5rZXlzKClb
MF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRp
b25zX2ZpbGUoKSwgb3JkZXJlZF9kaWN0LmtleXMoKVswXSkKIAogICAgICAgICBvcHRpb25zID0g
TW9ja09wdGlvbnMoYWRkaXRpb25hbF9leHBlY3RhdGlvbnM9WycvdG1wL2ZvbycsICcvdG1wL2Jh
ciddKQogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRpb25zKQpAQCAt
NDMzLDggKzQzMyw4IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcvdG1wL2ZvbycsICdmb28n
KQogICAgICAgICBwb3J0Ll9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZSgnL3RtcC9iYXInLCAn
YmFyJykKICAgICAgICAgb3JkZXJlZF9kaWN0ID0gcG9ydC5leHBlY3RhdGlvbnNfZGljdCgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9yZGVyZWRfZGljdC5rZXlzKClbLTI6XSwgb3B0aW9u
cy5hZGRpdGlvbmFsX2V4cGVjdGF0aW9ucykgICMgcHlsaW50OiBkaXNhYmxlLW1zZz1FMTEwMQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcmRlcmVkX2RpY3QudmFsdWVzKClbLTI6XSwgWydm
b28nLCAnYmFyJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3JkZXJlZF9kaWN0LmtleXMo
KVstMjpdLCBvcHRpb25zLmFkZGl0aW9uYWxfZXhwZWN0YXRpb25zKSAgIyBweWxpbnQ6IGRpc2Fi
bGUtbXNnPUUxMTAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3JkZXJlZF9kaWN0LnZhbHVl
cygpWy0yOl0sIFsnZm9vJywgJ2JhciddKQogCiAgICAgZGVmIHRlc3RfcGF0aF90b190ZXN0X2V4
cGVjdGF0aW9uc19maWxlKHNlbGYpOgogICAgICAgICBwb3J0ID0gVGVzdFdlYktpdFBvcnQoKQpA
QCAtNTYwLDcgKzU2MCw3IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3V0cHV0LmFzc2VydF9vdXRwdXRzKHNlbGYsIHBv
cnQuX2J1aWxkX2RyaXZlciwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKSkKIAogICAgIGRlZiBfYXNzZXJ0X2NvbmZpZ19maWxlX2Zv
cl9wbGF0Zm9ybShzZWxmLCBwb3J0LCBwbGF0Zm9ybSwgY29uZmlnX2ZpbGUpOgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9hcGFjaGVfY29uZmlnX2ZpbGVfbmFtZV9mb3JfcGxhdGZv
cm0ocGxhdGZvcm0pLCBjb25maWdfZmlsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Ll9hcGFjaGVfY29uZmlnX2ZpbGVfbmFtZV9mb3JfcGxhdGZvcm0ocGxhdGZvcm0pLCBjb25maWdf
ZmlsZSkKIAogICAgIGRlZiB0ZXN0X2xpbnV4X2Rpc3Ryb19kZXRlY3Rpb24oc2VsZik6CiAgICAg
ICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydCgpCkBAIC02MDIsMTkgKzYwMiwxOSBAQCBjbGFzcyBQ
b3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoSU9FcnJvciwgcG9ydC5fcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUpCiAgICAgICAg
ICAgICBwb3J0Ll9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZSgnL2V4aXN0aW5nL2h0dHBkLmNv
bmYnLCAnSGVsbG8sIHdvcmxkIScpCiAgICAgICAgICAgICBvcy5lbnZpcm9uWydXRUJLSVRfSFRU
UF9TRVJWRVJfQ09ORl9QQVRIJ10gPSAnL2V4aXN0aW5nL2h0dHBkLmNvbmYnCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLCAn
L2V4aXN0aW5nL2h0dHBkLmNvbmYnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Ll9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLCAnL2V4aXN0aW5nL2h0dHBkLmNvbmYnKQog
ICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgb3MuZW52aXJvbiA9IHNhdmVkX2Vudmlyb24u
Y29weSgpCiAKICAgICAgICAgIyBNb2NrIG91dCBfYXBhY2hlX2NvbmZpZ19maWxlX25hbWVfZm9y
X3BsYXRmb3JtIHRvIGlnbm9yZSB0aGUgcGFzc2VkIHN5cy5wbGF0Zm9ybSB2YWx1ZS4KICAgICAg
ICAgcG9ydC5fYXBhY2hlX2NvbmZpZ19maWxlX25hbWVfZm9yX3BsYXRmb3JtID0gbGFtYmRhIHBs
YXRmb3JtOiAnaHR0cGQuY29uZicKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5fcGF0
aF90b19hcGFjaGVfY29uZmlnX2ZpbGUoKSwgJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL2h0
dHAvY29uZi9odHRwZC5jb25mJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9wYXRo
X3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLCAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvaHR0
cC9jb25mL2h0dHBkLmNvbmYnKQogCiAgICAgICAgICMgQ2hlY2sgdGhhdCBldmVuIGlmIHdlIG1v
Y2sgb3V0IF9hcGFjaGVfY29uZmlnX2ZpbGVfbmFtZSwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxl
IHRha2VzIHByZWNlZGVuY2UuCiAgICAgICAgIHNhdmVkX2Vudmlyb24gPSBvcy5lbnZpcm9uLmNv
cHkoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5lbnZpcm9uWydXRUJLSVRfSFRUUF9T
RVJWRVJfQ09ORl9QQVRIJ10gPSAnL2V4aXN0aW5nL2h0dHBkLmNvbmYnCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhwb3J0Ll9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLCAnL2V4
aXN0aW5nL2h0dHBkLmNvbmYnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9w
YXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLCAnL2V4aXN0aW5nL2h0dHBkLmNvbmYnKQogICAg
ICAgICBmaW5hbGx5OgogICAgICAgICAgICAgb3MuZW52aXJvbiA9IHNhdmVkX2Vudmlyb24uY29w
eSgpCiAKQEAgLTY0NCw0ICs2NDQsNCBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgZGVmIHRlc3RfYWRkaXRpb25hbF9wbGF0Zm9ybV9kaXJlY3Rvcnkoc2Vs
Zik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGFk
ZGl0aW9uYWxfcGxhdGZvcm1fZGlyZWN0b3J5PVsnL3RtcC9mb28nXSkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKVswXSwgJy90bXAvZm9vJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKClbMF0s
ICcvdG1wL2ZvbycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3F0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9xdF91bml0dGVzdC5weQppbmRleCBjZjA5YmQ4ZTBlNDQ1ZWFmZGQzZjA0M2Iy
MTIzZTQxNGE4NmI5NDlmLi40YTU1OGY4ZGQwMTllNTYxMzQxNTk0N2Y4ZTI3ZmE3YTk1MWE2NTI3
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvcXRfdW5pdHRlc3QucHkKQEAgLTY5LDcgKzY5LDcgQEAgY2xhc3MgUXRQb3J0VGVzdChwb3J0
X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCho
b3N0PWhvc3QsIHF0X3ZlcnNpb249cXRfdmVyc2lvbiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0X3Rl
c3RfcnVubmVyPXVzZV93ZWJraXQyLCBwbGF0Zm9ybT0ncXQnKSkKICAgICAgICAgYWJzb2x1dGVf
c2VhcmNoX3BhdGhzID0gbWFwKHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBzZWFyY2hfcGF0
aHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgo
KSwgYWJzb2x1dGVfc2VhcmNoX3BhdGhzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQu
YmFzZWxpbmVfc2VhcmNoX3BhdGgoKSwgYWJzb2x1dGVfc2VhcmNoX3BhdGhzKQogCiAgICAgZGVm
IF9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYsIHNlYXJjaF9wYXRocywgb3NfbmFtZSwg
dXNlX3dlYmtpdDI9RmFsc2UsIHF0X3ZlcnNpb249JzQuOCcpOgogICAgICAgICAjIEZJWE1FOiBQ
b3J0IGNvbnN0cnVjdG9ycyBzaG91bGQgbm90ICJwYXJzZSIgdGhlIHBvcnQgbmFtZSwgYnV0CkBA
IC04MCw3ICs4MCw3IEBAIGNsYXNzIFF0UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENh
c2UpOgogICAgICAgICBwb3J0X25hbWUgPSAncXQtJyArIG9zX25hbWUKICAgICAgICAgcG9ydCA9
IHNlbGYubWFrZV9wb3J0KGhvc3Q9aG9zdCwgcXRfdmVyc2lvbj1xdF92ZXJzaW9uLCBwb3J0X25h
bWU9cG9ydF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz1Nb2Nr
T3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNlX3dlYmtpdDIsIHBsYXRmb3JtPSdxdCcpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmV4cGVjdGF0aW9uc19maWxlcygpLCBzZWFy
Y2hfcGF0aHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5leHBlY3RhdGlvbnNfZmls
ZXMoKSwgc2VhcmNoX3BhdGhzKQogCiAgICAgZGVmIF9xdF92ZXJzaW9uKHNlbGYsIHF0X3ZlcnNp
b24pOgogICAgICAgICBpZiBxdF92ZXJzaW9uIGluICc0LjgnOgpAQCAtMTEwLDcgKzExMCw3IEBA
IGNsYXNzIFF0UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0
ZXN0X3NldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYu
bWFrZV9wb3J0KCkKICAgICAgICAgZW52ID0gcG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIo
cG9ydC5kcml2ZXJfbmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlbnZbJ1FUV0VC
S0lUX1BMVUdJTl9QQVRIJ10sICcvbW9jay1idWlsZC9saWIvcGx1Z2lucycpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZW52WydRVFdFQktJVF9QTFVHSU5fUEFUSCddLCAnL21vY2stYnVpbGQv
bGliL3BsdWdpbnMnKQogCiAgICAgZGVmIHRlc3Rfb3BlcmF0aW5nX3N5c3RlbShzZWxmKToKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbGludXgnLCBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9
J3F0LWxpbnV4Jywgb3NfbmFtZT0nbGludXgnKS5vcGVyYXRpbmdfc3lzdGVtKCkpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3NlcnZlcl9wcm9j
ZXNzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQppbmRleCA3YTVhYzQ1ZDRkNjgyMzQwZjE2MGQw
NWUxOWJmNGQ5ZDAxMDg3YWExLi5jZDFkYjFmOTZhOTM4NDUwYmU2NTkwMDBmOTc1ZGUyZWM4NzYy
NmIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3NlcnZlcl9wcm9jZXNzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKQEAgLTEwNCwyMyAr
MTA0LDIzIEBAIGNsYXNzIFRlc3RTZXJ2ZXJQcm9jZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgcHJvYyA9IHNlcnZlcl9wcm9jZXNzLlNlcnZlclByb2Nlc3MocG9ydCwgJ3B5dGhvbics
IGNtZCkKICAgICAgICAgcHJvYy53cml0ZSgnJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhwcm9jLnBvbGwoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jLnBvbGwo
KSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jLmhhc19jcmFzaGVkKCkpCiAK
ICAgICAgICAgIyBjaGVjayB0aGF0IGRvaW5nIGEgcmVhZCBhZnRlciBhbiBleHBpcmVkIGRlYWRs
aW5lIHJldHVybnMKICAgICAgICAgIyBub3RoaW5nIGltbWVkaWF0ZWx5LgogICAgICAgICBsaW5l
ID0gcHJvYy5yZWFkX3N0ZG91dF9saW5lKG5vdyAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGxpbmUsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZSwgTm9uZSkKIAog
ICAgICAgICAjIEZJWE1FOiBUaGlzIHBhcnQgYXBwZWFycyB0byBiZSBmbGFreS4gbGluZSBzaG91
bGQgYWx3YXlzIGJlIG5vbi1Ob25lLgogICAgICAgICAjIEZJWE1FOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyODAKICAgICAgICAgbGluZSA9IHByb2MucmVhZF9z
dGRvdXRfbGluZShub3cgKyAxLjApCiAgICAgICAgIGlmIGxpbmU6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhsaW5lLnN0cmlwKCksICJzdGRvdXQiKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsaW5lLnN0cmlwKCksICJzdGRvdXQiKQogCiAgICAgICAgIGxpbmUgPSBwcm9j
LnJlYWRfc3RkZXJyX2xpbmUobm93ICsgMS4wKQogICAgICAgICBpZiBsaW5lOgotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMobGluZS5zdHJpcCgpLCAic3RkZXJyIikKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3RkZXJyIikKIAogICAgICAgICBwcm9j
LnN0b3AoMCkKIApAQCAtMTQxLDEyICsxNDEsMTIgQEAgY2xhc3MgVGVzdFNlcnZlclByb2Nlc3Mo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZXJ2ZXJfcHJvY2Vzcy53cml0ZSgic2hvdWxk
IGJyZWFrIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlcl9wcm9jZXNzLmhhc19jcmFz
aGVkKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWxzKHNlcnZlcl9wcm9jZXNzLnBpZCgp
LCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXJ2ZXJfcHJvY2Vzcy5fcHJvYywg
Tm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VydmVyX3Byb2Nlc3MuYnJva2VuX3Bp
cGVzLCBbc2VydmVyX3Byb2Nlc3Muc3RkaW5dKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
cnZlcl9wcm9jZXNzLl9wcm9jLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZl
cl9wcm9jZXNzLmJyb2tlbl9waXBlcywgW3NlcnZlcl9wcm9jZXNzLnN0ZGluXSkKIAogICAgICAg
ICBwb3J0X29iai5ob3N0LnBsYXRmb3JtLm9zX25hbWUgPSAnbWFjJwogICAgICAgICBzZXJ2ZXJf
cHJvY2VzcyA9IEZha2VTZXJ2ZXJQcm9jZXNzKHBvcnRfb2JqPXBvcnRfb2JqLCBuYW1lPSJ0ZXN0
IiwgY21kPVsidGVzdCJdKQogICAgICAgICBzZXJ2ZXJfcHJvY2Vzcy53cml0ZSgic2hvdWxkIGJy
ZWFrIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlcl9wcm9jZXNzLmhhc19jcmFzaGVk
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlcnZlcl9wcm9jZXNzLl9wcm9jLCBOb25l
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXJ2ZXJfcHJvY2Vzcy5icm9rZW5fcGlwZXMs
IFtzZXJ2ZXJfcHJvY2Vzcy5zdGRpbl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVy
X3Byb2Nlc3MuX3Byb2MsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyX3By
b2Nlc3MuYnJva2VuX3BpcGVzLCBbc2VydmVyX3Byb2Nlc3Muc3RkaW5dKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW5fdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5w
eQppbmRleCA5MzBkY2Q4ZTU5NmNhNDczZDJjZmU2ODJhYmMyOTNhMWRkYzBjNzI5Li4yYmFmYWFi
M2IyYzJhNWZmNDA5MmFhMjY0MTNhMTc5MTcwZDUyNGJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dpbl91bml0dGVzdC5weQpAQCAt
NjAsNyArNjAsNyBAQCBjbGFzcyBXaW5Qb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CiAgICAgZGVmIF9hc3NlcnRfc2VhcmNoX3BhdGgoc2VsZiwgZXhwZWN0ZWRfc2VhcmNoX3Bh
dGhzLCB2ZXJzaW9uLCB1c2Vfd2Via2l0Mj1GYWxzZSk6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1h
a2VfcG9ydChwb3J0X25hbWU9J3dpbicsIG9zX3ZlcnNpb249dmVyc2lvbiwgb3B0aW9ucz1Nb2Nr
T3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNlX3dlYmtpdDIpKQogICAgICAgICBhYnNvbHV0
ZV9zZWFyY2hfcGF0aHMgPSBtYXAocG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIGV4cGVjdGVk
X3NlYXJjaF9wYXRocykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9z
ZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMp
CiAKICAgICBkZWYgdGVzdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgc2Vs
Zi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4tN3NwMCcs
ICd3aW4nLCAnbWFjLWxpb24nLCAnbWFjJ10sICd4cCcpCkBAIC03NCw3ICs3NCw3IEBAIGNsYXNz
IFdpblBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBkZWYgX2Fzc2Vy
dF92ZXJzaW9uKHNlbGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfdmVyc2lvbik6CiAgICAgICAgIGhv
c3QgPSBNb2NrU3lzdGVtSG9zdChvc19uYW1lPSd3aW4nLCBvc192ZXJzaW9uPWV4cGVjdGVkX3Zl
cnNpb24pCiAgICAgICAgIHBvcnQgPSBXaW5Qb3J0KGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQudmVyc2lvbigpLCBleHBlY3RlZF92ZXJz
aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudmVyc2lvbigpLCBleHBlY3RlZF92
ZXJzaW9uKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbnMoc2VsZik6CiAgICAgICAgIHNlbGYuX2Fz
c2VydF92ZXJzaW9uKCd3aW4teHAnLCAneHAnKQpAQCAtMTAwLDEwICsxMDAsMTAgQEAgY2xhc3Mg
V2luUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBwb3J0ID0g
c2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBwb3J0Ll9leGVjdXRpdmUucnVuX2NvbW1hbmQgPSBs
YW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGVycm9yX2hhbmRsZXI9Tm9uZTogIk5vbnNlbnNlIgog
ICAgICAgICAjIHJ1bnRpbWVfZmVhdHVyZXNfbGlzdCByZXR1cm5zIE5vbmUgd2hlbiBpdHMgcmVz
dWx0cyBhcmUgbWVhbmluZ2xlc3MgKGl0IGNvdWxkbid0IHJ1biBEUlQgb3IgcGFyc2UgdGhlIG91
dHB1dCwgZXRjLikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5fcnVudGltZV9mZWF0
dXJlX2xpc3QoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9ydW50aW1l
X2ZlYXR1cmVfbGlzdCgpLCBOb25lKQogICAgICAgICBwb3J0Ll9leGVjdXRpdmUucnVuX2NvbW1h
bmQgPSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGVycm9yX2hhbmRsZXI9Tm9uZTogIlN1cHBv
cnRlZEZlYXR1cmVzOmZvbyBiYXIiCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX3J1
bnRpbWVfZmVhdHVyZV9saXN0KCksIFsnZm9vJywgJ2JhciddKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KCksIFsnZm9vJywgJ2JhciddKQogCiAg
ICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhsZW4oc2VsZi5tYWtlX3BvcnQoKS5leHBlY3RhdGlvbnNfZmlsZXMoKSksIDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tP
cHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlKSkuZXhwZWN0YXRpb25zX2ZpbGVzKCkpLCA0
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLm1ha2VfcG9ydCgpLmV4cGVjdGF0
aW9uc19maWxlcygpKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5tYWtl
X3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSkpLmV4cGVj
dGF0aW9uc19maWxlcygpKSwgNCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlv
bnRlc3QucHkKaW5kZXggNmE5MTYxZmU1ZTk5NjdkYWU2MjMzYWQ0MzFiNTM3M2NmNmE2N2FmYy4u
ZGUxYTIxY2M1Mjc0ZjZhYjk1NjIxOGU5ZDczYjY4Y2RkMmJiOTI5OSAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3Jh
dGlvbnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTI0MiwxMiArMjQyLDEyIEBAIGNs
YXNzIExpbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWtlUG9ydChob3N0
LCAnYicsICdwYXRoLXRvLWInKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmFrZVBvcnQoaG9zdCwgJ2Itd2luJywgJ3BhdGgtdG8tYicpKSkKIAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhydW5fd2Via2l0X3Rlc3RzLmxpbnQoaG9zdC5wb3J0X2Zh
Y3RvcnkucG9ydHNbJ2EnXSwgTW9ja09wdGlvbnMocGxhdGZvcm09Tm9uZSkpLCAwKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhob3N0LnBvcnRzX3BhcnNlZCwgWydhJywgJ2InLCAnYi13aW4n
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5fd2Via2l0X3Rlc3RzLmxpbnQoaG9zdC5w
b3J0X2ZhY3RvcnkucG9ydHNbJ2EnXSwgTW9ja09wdGlvbnMocGxhdGZvcm09Tm9uZSkpLCAwKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhvc3QucG9ydHNfcGFyc2VkLCBbJ2EnLCAnYicsICdi
LXdpbiddKQogCiAgICAgICAgIGhvc3QucG9ydHNfcGFyc2VkID0gW10KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocnVuX3dlYmtpdF90ZXN0cy5saW50KGhvc3QucG9ydF9mYWN0b3J5LnBvcnRz
WydhJ10sIE1vY2tPcHRpb25zKHBsYXRmb3JtPSdhJykpLCAwKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhob3N0LnBvcnRzX3BhcnNlZCwgWydhJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocnVuX3dlYmtpdF90ZXN0cy5saW50KGhvc3QucG9ydF9mYWN0b3J5LnBvcnRzWydhJ10sIE1v
Y2tPcHRpb25zKHBsYXRmb3JtPSdhJykpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhv
c3QucG9ydHNfcGFyc2VkLCBbJ2EnXSkKIAogICAgIGRlZiB0ZXN0X2xpbnRfdGVzdF9maWxlcyhz
ZWxmKToKICAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS1saW50
LXRlc3QtZmlsZXMnXSkKQEAgLTI4OSw3ICsyODksNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAgIGRlZiB0ZXN0X2FsbChzZWxm
KToKICAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFtdLCB0ZXN0c19p
bmNsdWRlZD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMsIHVuZXhwZWN0ZWRf
dGVzdHNfY291bnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX3Rl
c3RzX2NvdW50KQogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwYXNzaW5nX3J1bigpKQpAQCAtNDA1LDcgKzQwNSw3IEBAIGNsYXNzIE1haW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgIGRlZiB0ZXN0X3Jl
cGVhdF9lYWNoKHNlbGYpOgogICAgICAgICB0ZXN0c190b19ydW4gPSBbJ3Bhc3Nlcy9pbWFnZS5o
dG1sJywgJ3Bhc3Nlcy90ZXh0Lmh0bWwnXQogICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNf
cnVuKFsnLS1yZXBlYXQtZWFjaCcsICcyJ10gKyB0ZXN0c190b19ydW4sIHRlc3RzX2luY2x1ZGVk
PVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0
ZXN0c19ydW4sIFsncGFzc2VzL2ltYWdlLmh0bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnLCAncGFz
c2VzL3RleHQuaHRtbCcsICdwYXNzZXMvdGV4dC5odG1sJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGVzdHNfcnVuLCBbJ3Bhc3Nlcy9pbWFnZS5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1s
JywgJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddKQogCiAgICAgZGVmIHRl
c3RfaWdub3JlX2ZsYWcoc2VsZik6CiAgICAgICAgICMgTm90ZSB0aGF0IHBhc3Nlcy9pbWFnZS5o
dG1sIGlzIGV4cGVjdGVkIHRvIGJlIHJ1biBzaW5jZSB3ZSBzcGVjaWZpZWQgaXQgZGlyZWN0bHku
CkBAIC00MTksMjYgKzQxOSwyNiBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwg
U3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgbnVtX3Rlc3RzX3J1bl9ieV9kZWZhdWx0ID0g
bGVuKHRlc3RzX3J1bikKIAogICAgICAgICAjIENoZWNrIHRoYXQgbm90aGluZyBjaGFuZ2VzIHdo
ZW4gd2Ugc3BlY2lmeSBza2lwcGVkPWRlZmF1bHQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGxlbihnZXRfdGVzdHNfcnVuKFsnLS1za2lwcGVkPWRlZmF1bHQnLCAncGFzc2VzJ10sIHRlc3Rz
X2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKSksCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKGdldF90ZXN0c19ydW4oWyctLXNraXBwZWQ9ZGVmYXVsdCcsICdwYXNzZXMn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtX3Rlc3RzX3J1bl9ieV9kZWZhdWx0KQogCiAgICAgICAgICMg
Tm93IGNoZWNrIHRoYXQgd2UgcnVuIG9uZSBtb3JlIHRlc3QgKHRoZSBza2lwcGVkIG9uZSkuCiAg
ICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXNraXBwZWQ9aWdub3JlJywgJ3Bh
c3NlcyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKCdwYXNzZXMvc2tpcHBlZC9za2lwLmh0bWwnIGluIHRlc3RzX3J1
bikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKHRlc3RzX3J1biksIG51bV90ZXN0c19y
dW5fYnlfZGVmYXVsdCArIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRlc3RzX3J1
biksIG51bV90ZXN0c19ydW5fYnlfZGVmYXVsdCArIDEpCiAKICAgICAgICAgIyBOb3cgY2hlY2sg
dGhhdCB3ZSBvbmx5IHJ1biB0aGUgc2tpcHBlZCB0ZXN0LgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhnZXRfdGVzdHNfcnVuKFsnLS1za2lwcGVkPW9ubHknLCAncGFzc2VzJ10sIHRlc3RzX2lu
Y2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKSwKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChnZXRfdGVzdHNfcnVuKFsnLS1za2lwcGVkPW9ubHknLCAncGFzc2VzJ10sIHRlc3RzX2lu
Y2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydwYXNzZXMvc2tpcHBlZC9za2lwLmh0bWwnXSkKIAogICAgICAgICAjIE5vdyBjaGVj
ayB0aGF0IHdlIGRvbid0IHJ1biBhbnl0aGluZy4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Z2V0X3Rlc3RzX3J1bihbJy0tc2tpcHBlZD1hbHdheXMnLCAncGFzc2VzL3NraXBwZWQvc2tpcC5o
dG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKSwKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfdGVzdHNfcnVuKFsnLS1za2lwcGVkPWFsd2F5cycsICdw
YXNzZXMvc2tpcHBlZC9za2lwLmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9i
YXRjaGVzPVRydWUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkKIAogICAgIGRlZiB0
ZXN0X2l0ZXJhdGlvbnMoc2VsZik6CiAgICAgICAgIHRlc3RzX3RvX3J1biA9IFsncGFzc2VzL2lt
YWdlLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddCiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90
ZXN0c19ydW4oWyctLWl0ZXJhdGlvbnMnLCAnMiddICsgdGVzdHNfdG9fcnVuLCB0ZXN0c19pbmNs
dWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHModGVzdHNfcnVuLCBbJ3Bhc3Nlcy9pbWFnZS5odG1sJywgJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAn
cGFzc2VzL2ltYWdlLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRlc3RzX3J1biwgWydwYXNzZXMvaW1hZ2UuaHRtbCcsICdwYXNzZXMvdGV4dC5o
dG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJywgJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSkKIAogICAgIGRl
ZiB0ZXN0X3JlcGVhdF9lYWNoX2l0ZXJhdGlvbnNfbnVtX3Rlc3RzKHNlbGYpOgogICAgICAgICAj
IFRoZSB0b3RhbCBudW1iZXIgb2YgdGVzdHMgc2hvdWxkIGJlOiBudW1iZXJfb2ZfdGVzdHMgKgpA
QCAtNDU2LDEyICs0NTYsMTIgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0
cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIGFjdHVhbGx5IHNlbGVj
dCB0aGUgcmlnaHQgY2h1bmsKICAgICAgICAgYWxsX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4o
ZmxhdHRlbl9iYXRjaGVzPVRydWUpCiAgICAgICAgIGNodW5rX3Rlc3RzX3J1biA9IGdldF90ZXN0
c19ydW4oWyctLXJ1bi1jaHVuaycsICcxOjQnXSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFsbF90ZXN0c19ydW5bNDo4XSwgY2h1bmtfdGVzdHNfcnVu
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFsbF90ZXN0c19ydW5bNDo4XSwgY2h1bmtfdGVz
dHNfcnVuKQogCiAgICAgICAgICMgVGVzdCB0aGF0IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1i
ZXIgb2YgdGVzdHMgaXMgbm90IGV2ZW5seSBkaXZpc2libGUgYnkgdGhlIGNodW5rIHNpemUKICAg
ICAgICAgdGVzdHNfdG9fcnVuID0gWydwYXNzZXMvZXJyb3IuaHRtbCcsICdwYXNzZXMvaW1hZ2Uu
aHRtbCcsICdwYXNzZXMvcGxhdGZvcm1faW1hZ2UuaHRtbCcsICdwYXNzZXMvdGV4dC5odG1sJ10K
ICAgICAgICAgY2h1bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLWNodW5rJywg
JzE6MyddICsgdGVzdHNfdG9fcnVuLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNo
ZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvdGV4dC5odG1sJywg
J3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10sIGNodW5rX3Rlc3RzX3J1
bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAncGFzc2Vz
L2Vycm9yLmh0bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgY2h1bmtfdGVzdHNfcnVuKQogCiAg
ICAgZGVmIHRlc3RfcnVuX2ZvcmNlKHNlbGYpOgogICAgICAgICAjIFRoaXMgcmFpc2VzIGFuIGV4
Y2VwdGlvbiBiZWNhdXNlIHdlIHJ1bgpAQCAtNDc0LDE4ICs0NzQsMTggQEAgY2xhc3MgTWFpblRl
c3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgVGVz
dCB0aGF0IHdlIGFjdHVhbGx5IHNlbGVjdCB0aGUgcmlnaHQgcGFydAogICAgICAgICB0ZXN0c190
b19ydW4gPSBbJ3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJywgJ3Bhc3Nl
cy9wbGF0Zm9ybV9pbWFnZS5odG1sJywgJ3Bhc3Nlcy90ZXh0Lmh0bWwnXQogICAgICAgICB0ZXN0
c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1ydW4tcGFydCcsICcxOjInXSArIHRlc3RzX3RvX3J1
biwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFsncGFzc2VzL2Vycm9yLmh0bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwn
XSwgdGVzdHNfcnVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsncGFzc2VzL2Vycm9yLmh0
bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgdGVzdHNfcnVuKQogCiAgICAgICAgICMgVGVzdCB0
aGF0IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1iZXIgb2YgdGVzdHMgaXMgbm90IGV2ZW5seSBk
aXZpc2libGUgYnkgdGhlIGNodW5rIHNpemUKICAgICAgICAgIyAoaGVyZSB3ZSBlbmQgdXAgd2l0
aCAzIHBhcnRzLCBlYWNoIHdpdGggMiB0ZXN0cywgYW5kIHdlIG9ubHkgaGF2ZSA0IHRlc3RzIHRv
dGFsLCBzbyB0aGUKICAgICAgICAgIyBsYXN0IHBhcnQgcmVwZWF0cyB0aGUgZmlyc3QgdHdvIHRl
c3RzKS4KICAgICAgICAgY2h1bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLXBh
cnQnLCAnMzozJ10gKyB0ZXN0c190b19ydW4sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5f
YmF0Y2hlcz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy9lcnJvci5o
dG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10sIGNodW5rX3Rlc3RzX3J1bikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10s
IGNodW5rX3Rlc3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X3J1bl9zaW5nbHkoc2VsZik6CiAgICAg
ICAgIGJhdGNoX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXJ1bi1zaW5nbHknXSkKICAg
ICAgICAgZm9yIGJhdGNoIGluIGJhdGNoX3Rlc3RzX3J1bjoKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGxlbihiYXRjaCksIDEsICclcyBoYWQgdG9vIG1hbnkgdGVzdHMnICUgJywgJy5q
b2luKGJhdGNoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJhdGNoKSwgMSwg
JyVzIGhhZCB0b28gbWFueSB0ZXN0cycgJSAnLCAnLmpvaW4oYmF0Y2gpKQogCiAgICAgZGVmIHRl
c3Rfc2tpcF9mYWlsaW5nX3Rlc3RzKHNlbGYpOgogICAgICAgICAjIFRoaXMgdGVzdHMgdGhhdCB3
ZSBza2lwIGJvdGgga25vd24gZmFpbGluZyBhbmQga25vd24gZmxha3kgdGVzdHMuIEJlY2F1c2Ug
dGhlcmUgYXJlCkBAIC01MDMsMjggKzUwMywyOCBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAgIGRlZiB0ZXN0X3J1bl9zaW5nbHlf
YWN0dWFsbHlfcnVuc190ZXN0cyhzZWxmKToKICAgICAgICAgcmVzLCBfLCBfLCBfID0gbG9nZ2lu
Z19ydW4oWyctLXJ1bi1zaW5nbHknLCAnZmFpbHVyZXMvdW5leHBlY3RlZCddKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhyZXMsIHVuZXhwZWN0ZWRfZmFpbHVyZXMpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX2ZhaWx1cmVzKQogCiAgICAgZGVmIHRlc3Rfc2lu
Z2xlX2ZpbGUoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciByZXBs
YWNpbmcgbW9yZSBvZiB0aGUgZ2V0X3Rlc3RzX3J1bigpLXN0eWxlIHRlc3RzCiAgICAgICAgICMg
d2l0aCB0ZXN0cyB0aGF0IHJlYWQgdGhlIHRlc3RzX3J1biogZmlsZXMsIGxpa2UgdGhpcyBvbmUu
CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIHRlc3RzX3J1biA9IHBhc3Npbmdf
cnVuKFsncGFzc2VzL3RleHQuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3Qp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmls
ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjAudHh0JyksCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3Bhc3Nlcy90ZXh0Lmh0bWxcbicpCiAKICAgICBkZWYgdGVzdF9zaW5nbGVfZmlsZV93aXRo
X3ByZWZpeChzZWxmKToKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJ0xheW91
dFRlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9i
YXRjaGVzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFzc2VzL3RleHQuaHRt
bCddLCB0ZXN0c19ydW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydwYXNzZXMvdGV4dC5o
dG1sJ10sIHRlc3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X3NpbmdsZV9za2lwcGVkX2ZpbGUoc2Vs
Zik6CiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWydmYWlsdXJlcy9leHBlY3Rl
ZC9rZXliYW9yZC5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1U
cnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgdGVzdHNfcnVuKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFtdLCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF9zdGRlcnJfaXNf
c2F2ZWQoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwYXNzaW5nX3J1bihob3N0PWhvc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9wYXNzZXMvZXJyb3Itc3RkZXJyLnR4dCcpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhv
c3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Bh
c3Nlcy9lcnJvci1zdGRlcnIudHh0JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdHVm
ZiBnb2luZyB0byBzdGRlcnInKQogCiAgICAgZGVmIHRlc3RfdGVzdF9saXN0KHNlbGYpOgpAQCAt
NTMyLDcgKzUzMiw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1U
ZXN0aW5nTWl4aW4pOgogICAgICAgICBmaWxlbmFtZSA9ICcvdG1wL2Zvby50eHQnCiAgICAgICAg
IGhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoZmlsZW5hbWUsICdwYXNzZXMvdGV4dC5o
dG1sJykKICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVz
JyAlIGZpbGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUs
IGhvc3Q9aG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvdGV4dC5odG1s
J10sIHRlc3RzX3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy90ZXh0Lmh0
bWwnXSwgdGVzdHNfcnVuKQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0ucmVtb3ZlKGZpbGVuYW1l
KQogICAgICAgICByZXMsIG91dCwgZXJyLCB1c2VyID0gbG9nZ2luZ19ydW4oWyctLXRlc3QtbGlz
dD0lcycgJSBmaWxlbmFtZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCkBAIC01NDQsNyArNTQ0LDcgQEAg
Y2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAg
ICAgICAgIGZpbGVuYW1lID0gJy90bXAvZm9vLnR4dCcKICAgICAgICAgaG9zdC5maWxlc3lzdGVt
LndyaXRlX3RleHRfZmlsZShmaWxlbmFtZSwgJ0xheW91dFRlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwn
KQogICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS10ZXN0LWxpc3Q9JXMnICUg
ZmlsZW5hbWVdLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSwgaG9z
dD1ob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwg
dGVzdHNfcnVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsncGFzc2VzL3RleHQuaHRtbCdd
LCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzKHNlbGYpOgog
ICAgICAgICAjIFJ1biB0ZXN0cyBpbmNsdWRpbmcgdGhlIHVuZXhwZWN0ZWQgZmFpbHVyZXMuCkBA
IC01NjcsNyArNTY3LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVh
bVRlc3RpbmdNaXhpbik6CiAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhv
c3QsIHJlY29yZF9yZXN1bHRzPVRydWUpCiAgICAgICAgIGZpbGVfbGlzdCA9IGhvc3QuZmlsZXN5
c3RlbS53cml0dGVuX2ZpbGVzLmtleXMoKQogICAgICAgICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHQnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhyZXMsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCAxKQogICAgICAg
ICBleHBlY3RlZF90b2tlbiA9ICcidW5leHBlY3RlZCI6eyJ0ZXh0LWltYWdlLWNoZWNrc3VtLmh0
bWwiOnsiZXhwZWN0ZWQiOiJQQVNTIiwiYWN0dWFsIjoiSU1BR0UrVEVYVCIsImltYWdlX2RpZmZf
cGVyY2VudCI6MX0sIm1pc3NpbmdfdGV4dC5odG1sIjp7ImV4cGVjdGVkIjoiUEFTUyIsImlzX21p
c3NpbmdfdGV4dCI6dHJ1ZSwiYWN0dWFsIjoiTUlTU0lORyJ9JwogICAgICAgICBqc29uX3N0cmlu
ZyA9IGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2Z1bGxfcmVzdWx0cy5qc29uJykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGpzb25fc3Ry
aW5nLmZpbmQoZXhwZWN0ZWRfdG9rZW4pICE9IC0xKQpAQCAtNTg0LDcgKzU4NCw3IEBAIGNsYXNz
IE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAg
ICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL2ltYWdlX25vdF9pbl9waXhlbGRpci5odG1s
J10KICAgICAgICAgcmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9YXJn
cywgaG9zdD1ob3N0LCByZWNvcmRfcmVzdWx0cz1UcnVlLCB0ZXN0c19pbmNsdWRlZD1UcnVlKQog
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXMsIDEpCiAgICAgICAgIGV4cGVjdGVkX3Rva2VuID0gJyJ1bmV4cGVjdGVkIjp7InBp
eGVsZGlyIjp7ImltYWdlX2luX3BpeGVsZGlyLmh0bWwiOnsiZXhwZWN0ZWQiOiJQQVNTIiwiYWN0
dWFsIjoiSU1BR0UiJwogICAgICAgICBqc29uX3N0cmluZyA9IGhvc3QuZmlsZXN5c3RlbS5yZWFk
X3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uJykK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGpzb25fc3RyaW5nLmZpbmQoZXhwZWN0ZWRfdG9rZW4p
ICE9IC0xKQpAQCAtNjA0LDcgKzYwNCw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0
ZWQvbWlzc2luZ190ZXh0Lmh0bWwnLAogICAgICAgICAgICAgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
dGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJ10sCiAgICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1U
cnVlLCBob3N0PWhvc3QsIHJlY29yZF9yZXN1bHRzPVRydWUsIHBvcnRfb2JqPXRlc3RfcG9ydCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlcywgMikKIAogICAgIGRlZiB0ZXN0X2NyYXNoX3dpdGhfc3RkZXJyKHNlbGYpOgogICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQpAQCAtNjQxLDcgKzY0MSw3IEBAIGNsYXNzIE1haW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgcmVj
b3JkX3Jlc3VsdHM9VHJ1ZSwKICAgICAgICAgICAgIGhvc3Q9aG9zdCkKICAgICAgICAgZXhwZWN0
ZWRfY3Jhc2hfbG9nID0gbW9ja19jcmFzaF9yZXBvcnQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC13aXRoLXN0ZGVyci1jcmFzaC1sb2cudHh0Jyks
IGV4cGVjdGVkX2NyYXNoX2xvZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChob3N0LmZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy91
bmV4cGVjdGVkL2NyYXNoLXdpdGgtc3RkZXJyLWNyYXNoLWxvZy50eHQnKSwgZXhwZWN0ZWRfY3Jh
c2hfbG9nKQogCiAgICAgZGVmIHRlc3Rfd2ViX3Byb2Nlc3NfY3Jhc2hfbG9nKHNlbGYpOgogICAg
ICAgICAjIEZJWE1FOiBOZWVkIHRvIHJld3JpdGUgdGhlc2UgdGVzdHMgdG8gbm90IGJlIG1hYy1z
cGVjaWZpYywgb3IgbW92ZSB0aGVtIGVsc2V3aGVyZS4KQEAgLTY1Nyw3ICs2NTcsNyBAQCBjbGFz
cyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAg
ICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsCiAgICAgICAgICAgICByZWNvcmRfcmVzdWx0cz1U
cnVlLAogICAgICAgICAgICAgaG9zdD1ob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyho
b3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9m
YWlsdXJlcy91bmV4cGVjdGVkL3dlYi1wcm9jZXNzLWNyYXNoLXdpdGgtc3RkZXJyLWNyYXNoLWxv
Zy50eHQnKSwgbW9ja19jcmFzaF9yZXBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaG9z
dC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFp
bHVyZXMvdW5leHBlY3RlZC93ZWItcHJvY2Vzcy1jcmFzaC13aXRoLXN0ZGVyci1jcmFzaC1sb2cu
dHh0JyksIG1vY2tfY3Jhc2hfcmVwb3J0KQogCiAgICAgZGVmIHRlc3RfZXhpdF9hZnRlcl9uX2Zh
aWx1cmVzX3VwbG9hZChzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKQEAgLTY3NCw3
ICs2NzQsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGlu
Z01peGluKToKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShob3N0LmZpbGVzeXN0ZW0uZXhpc3Rz
KCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaW5jcmVtZW50YWxfcmVzdWx0cy5qc29uJykpCiAK
ICAgICAgICAgIyBUaGlzIGNoZWNrcyB0aGF0IHdlIHJlcG9ydCBvbmx5IHRoZSBudW1iZXIgb2Yg
dGVzdHMgdGhhdCBhY3R1YWxseSBmYWlsZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl
cywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDEpCiAKICAgICAgICAgIyBUaGlz
IGNoZWNrcyB0aGF0IHBhc3Nlcy90ZXh0Lmh0bWwgaXMgY29uc2lkZXJlZCBTS0lQcGVkLgogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJyJza2lwcGVkIjoxJyBpbiBob3N0LmZpbGVzeXN0ZW0ucmVh
ZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3VsdHMuanNvbicp
KQpAQCAtNjk1LDcgKzY5NSw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBT
dHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIHRlc3RzX2lu
Y2x1ZGVkPVRydWUsCiAgICAgICAgICAgICBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoWydmYWlsdXJlcy91bmV4cGVjdGVkL3RleHQtaW1hZ2UtY2hlY2tz
dW0uaHRtbCddLCB0ZXN0c19ydW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydmYWlsdXJl
cy91bmV4cGVjdGVkL3RleHQtaW1hZ2UtY2hlY2tzdW0uaHRtbCddLCB0ZXN0c19ydW4pCiAKICAg
ICAgICAgIyBCdXQgd2UnbGwga2VlcCBnb2luZyBmb3IgZXhwZWN0ZWQgb25lcy4KICAgICAgICAg
dGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbCkBAIC03MDUsNyArNzA1LDcgQEAgY2xhc3MgTWFp
blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdNaXhpbik6CiAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwKICAgICAgICAgICAgIGZsYXR0
ZW5fYmF0Y2hlcz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ2ZhaWx1cmVzL2V4
cGVjdGVkL3RleHQuaHRtbCcsICdwYXNzZXMvdGV4dC5odG1sJ10sIHRlc3RzX3J1bikKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdwYXNz
ZXMvdGV4dC5odG1sJ10sIHRlc3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X2V4aXRfYWZ0ZXJfbl9j
cmFzaGVzKHNlbGYpOgogICAgICAgICAjIFVuZXhwZWN0ZWQgY3Jhc2hlcyBzaG91bGQgcmVzdWx0
IGluIHRlc3RzIHN0b3BwaW5nLgpAQCAtNzE2LDcgKzcxNiw3IEBAIGNsYXNzIE1haW5UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsCiAgICAgICAgICAgICBmbGF0dGVuX2JhdGNo
ZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydmYWlsdXJlcy91bmV4cGVjdGVk
L2NyYXNoLmh0bWwnXSwgdGVzdHNfcnVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnZmFp
bHVyZXMvdW5leHBlY3RlZC9jcmFzaC5odG1sJ10sIHRlc3RzX3J1bikKIAogICAgICAgICAjIFNh
bWUgd2l0aCB0aW1lb3V0cy4KICAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbCkBA
IC03MjYsNyArNzI2LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVh
bVRlc3RpbmdNaXhpbik6CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgdGVzdHNfaW5jbHVk
ZWQ9VHJ1ZSwKICAgICAgICAgICAgIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvdGltZW91dC5odG1sJ10sIHRlc3Rz
X3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvdGlt
ZW91dC5odG1sJ10sIHRlc3RzX3J1bikKIAogICAgICAgICAjIEJ1dCB3ZSdsbCBrZWVwIGdvaW5n
IGZvciBleHBlY3RlZCBvbmVzLgogICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsK
QEAgLTczNiw3ICs3MzYsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3Ry
ZWFtVGVzdGluZ01peGluKToKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICB0ZXN0c19pbmNs
dWRlZD1UcnVlLAogICAgICAgICAgICAgZmxhdHRlbl9iYXRjaGVzPVRydWUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFsnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsICdwYXNzZXMv
dGV4dC5odG1sJ10sIHRlc3RzX3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddLCB0ZXN0c19ydW4p
CiAKICAgICBkZWYgdGVzdF9yZXN1bHRzX2RpcmVjdG9yeV9hYnNvbHV0ZShzZWxmKToKICAgICAg
ICAgIyBXZSBydW4gYSBjb25maWd1cmF0aW9uIHRoYXQgc2hvdWxkIGZhaWwsIHRvIGdlbmVyYXRl
IG91dHB1dCwgdGhlbgpAQCAtNzY5LDcgKzc2OSw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgIGRlZiB0ZXN0X3JldHJ5aW5nX2Fu
ZF9mbGFreV90ZXN0cyhzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAg
cmVzLCBvdXQsIGVyciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1kZWJ1Zy1yd3QtbG9nZ2luZycsICdm
YWlsdXJlcy9mbGFreSddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBob3N0PWhvc3QpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMs
IDApCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUmV0cnlpbmcnIGluIGVyci5nZXR2YWx1ZSgp
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1VuZXhwZWN0ZWQgZmxha2luZXNzJyBpbiBvdXQu
Z2V0dmFsdWUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhvc3QuZmlsZXN5c3RlbS5leGlz
dHMoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9mbGFreS90ZXh0LWFjdHVhbC50
eHQnKSkKQEAgLTc4MCw3ICs3ODAsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgIyBhbmQgdGhhdCB3ZSBkb24ndCByZXRy
eSBhZ2Fpbi4KICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcmVzLCBvdXQsIGVy
ciwgXyA9IGxvZ2dpbmdfcnVuKFsnLS1uby1yZXRyeS1mYWlsdXJlcycsICctLWNsb2JiZXItb2xk
LXJlc3VsdHMnLCAnZmFpbHVyZXMvZmxha3knXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1o
b3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXMsIDEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0Nsb2JiZXJpbmcgb2xk
IHJlc3VsdHMnIGluIGVyci5nZXR2YWx1ZSgpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2Zs
YWt5L3RleHQuaHRtbCcgaW4gZXJyLmdldHZhbHVlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgnVW5leHBlY3RlZCB0ZXh0LW9ubHkgZmFpbHVyZXMnIGluIG91dC5nZXR2YWx1ZSgpKQpAQCAt
NzkzLDEwICs3OTMsMTAgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVh
bVRlc3RpbmdNaXhpbik6CiAgICAgICAgICMgb3JkZXIgcGVyIGRpcmVjdG9yeS4gSFRUUCB0ZXN0
cyBhcmUgc2hhcmRlZCBzZXBhcmF0ZWx5IGZyb20gb3RoZXIgdGVzdHMsCiAgICAgICAgICMgc28g
d2UgaGF2ZSB0byB0ZXN0IGJvdGguCiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4o
WyctaScsICdwYXNzZXMvcGFzc2VzJywgJ3Bhc3NlcyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBm
bGF0dGVuX2JhdGNoZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNfcnVu
LCBzb3J0ZWQodGVzdHNfcnVuKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0c19ydW4s
IHNvcnRlZCh0ZXN0c19ydW4pKQogCiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4o
WydodHRwL3Rlc3RzL3Bhc3NlcyddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNo
ZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNfcnVuLCBzb3J0ZWQodGVz
dHNfcnVuKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0c19ydW4sIHNvcnRlZCh0ZXN0
c19ydW4pKQogCiAgICAgZGVmIHRlc3RfdG9sZXJhbmNlKHNlbGYpOgogICAgICAgICBjbGFzcyBJ
bWFnZURpZmZUZXN0UG9ydChUZXN0UG9ydCk6CkBAIC04MzEsMjkgKzgzMSwyOSBAQCBjbGFzcyBN
YWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAgIGRl
ZiB0ZXN0X3JlZnRlc3RfcnVuKHNlbGYpOgogICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNf
cnVuKFsncGFzc2VzL3JlZnRlc3QuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVu
X2JhdGNoZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvcmVmdGVz
dC5odG1sJ10sIHRlc3RzX3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy9y
ZWZ0ZXN0Lmh0bWwnXSwgdGVzdHNfcnVuKQogCiAgICAgZGVmIHRlc3RfcmVmdGVzdF9ydW5fcmVm
dGVzdHNfaWZfcGl4ZWxfdGVzdHNfYXJlX2Rpc2FibGVkKHNlbGYpOgogICAgICAgICB0ZXN0c19y
dW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1uby1waXhlbC10ZXN0cycsICdwYXNzZXMvcmVmdGVzdC5o
dG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy9yZWZ0ZXN0Lmh0bWwnXSwgdGVzdHNfcnVuKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsncGFzc2VzL3JlZnRlc3QuaHRtbCddLCB0ZXN0c19y
dW4pCiAKICAgICBkZWYgdGVzdF9yZWZ0ZXN0X3NraXBfcmVmdGVzdHNfaWZfbm9fcmVmX3Rlc3Rz
KHNlbGYpOgogICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1uby1yZWYtdGVz
dHMnLCAncGFzc2VzL3JlZnRlc3QuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVu
X2JhdGNoZXM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHRlc3RzX3J1bikK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgdGVzdHNfcnVuKQogICAgICAgICB0ZXN0c19y
dW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1uby1yZWYtdGVzdHMnLCAnLS1uby1waXhlbC10ZXN0cycs
ICdwYXNzZXMvcmVmdGVzdC5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0
Y2hlcz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgdGVzdHNfcnVuKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF9yZWZ0
ZXN0X2V4cGVjdGVkX2h0bWxfc2hvdWxkX2JlX2lnbm9yZWQoc2VsZik6CiAgICAgICAgIHRlc3Rz
X3J1biA9IGdldF90ZXN0c19ydW4oWydwYXNzZXMvcmVmdGVzdC1leHBlY3RlZC5odG1sJ10sIHRl
c3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhbXSwgdGVzdHNfcnVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCB0
ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF9yZWZ0ZXN0X2RyaXZlcl9zaG91bGRfcnVuX2V4cGVj
dGVkX2h0bWwoc2VsZik6CiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWydwYXNz
ZXMvcmVmdGVzdC5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1U
cnVlLCBpbmNsdWRlX3JlZmVyZW5jZV9odG1sPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKFsncGFzc2VzL3JlZnRlc3QuaHRtbCcsICdwYXNzZXMvcmVmdGVzdC1leHBlY3RlZC5odG1s
J10sIHRlc3RzX3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy9yZWZ0ZXN0
Lmh0bWwnLCAncGFzc2VzL3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCddLCB0ZXN0c19ydW4pCiAKICAg
ICBkZWYgdGVzdF9yZWZ0ZXN0X2RyaXZlcl9zaG91bGRfcnVuX2V4cGVjdGVkX21pc21hdGNoX2h0
bWwoc2VsZik6CiAgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWydwYXNzZXMvbWlz
bWF0Y2guaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSwg
aW5jbHVkZV9yZWZlcmVuY2VfaHRtbD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhb
J3Bhc3Nlcy9taXNtYXRjaC5odG1sJywgJ3Bhc3Nlcy9taXNtYXRjaC1leHBlY3RlZC1taXNtYXRj
aC5odG1sJ10sIHRlc3RzX3J1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Bhc3Nlcy9t
aXNtYXRjaC5odG1sJywgJ3Bhc3Nlcy9taXNtYXRjaC1leHBlY3RlZC1taXNtYXRjaC5odG1sJ10s
IHRlc3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X3JlZnRlc3Rfc2hvdWxkX25vdF91c2VfbmFtaW5n
X2NvbnZlbnRpb25faWZfbm90X2xpc3RlZF9pbl9yZWZ0ZXN0bGlzdChzZWxmKToKICAgICAgICAg
aG9zdCA9IE1vY2tIb3N0KCkKQEAgLTkxNiw4ICs5MTYsOCBAQCBjbGFzcyBNYWluVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKIAogICAgICAgICBmdWxsX3Jlc3Vs
dHNfdGV4dCA9IGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uJykKICAgICAgICAgZnVsbF9yZXN1bHRzID0ganNv
bi5sb2FkcyhmdWxsX3Jlc3VsdHNfdGV4dC5yZXBsYWNlKCJBRERfUkVTVUxUUygiLCAiIikucmVw
bGFjZSgiKTsiLCAiIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZ1bGxfcmVzdWx0c1sn
aGFzX3dkaWZmJ10sIEZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmdWxsX3Jlc3Vs
dHNbJ2hhc19wcmV0dHlfcGF0Y2gnXSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZnVsbF9yZXN1bHRzWydoYXNfd2RpZmYnXSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZnVsbF9yZXN1bHRzWydoYXNfcHJldHR5X3BhdGNoJ10sIEZhbHNlKQogCiAgICAgZGVmIHRl
c3RfdW5zdXBwb3J0ZWRfcGxhdGZvcm0oc2VsZik6CiAgICAgICAgIG9jID0gb3V0cHV0Y2FwdHVy
ZS5PdXRwdXRDYXB0dXJlKCkKQEAgLTkyNywxMiArOTI3LDEyIEBAIGNsYXNzIE1haW5UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICBmaW5hbGx5Ogog
ICAgICAgICAgICAgc3Rkb3V0LCBzdGRlcnIsIGxvZ3MgPSBvYy5yZXN0b3JlX291dHB1dCgpCiAK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzLCBydW5fd2Via2l0X3Rlc3RzLkVYQ0VQVElP
TkFMX0VYSVRfU1RBVFVTKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdGRvdXQsICcnKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgcnVuX3dlYmtpdF90ZXN0cy5FWENFUFRJT05B
TF9FWElUX1NUQVRVUykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQsICcnKQogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoJ3Vuc3VwcG9ydGVkIHBsYXRmb3JtJyBpbiBzdGRlcnIpCiAK
ICAgICAgICAgIyBUaGlzIGlzIGVtcHR5IGJlY2F1c2Ugd2UgZG9uJ3QgZXZlbiBnZXQgYSBjaGFu
Y2UgdG8gY29uZmlndXJlIHRoZSBsb2dnZXIgYmVmb3JlIGZhaWxpbmcuCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGxvZ3MsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ3MsICcn
KQogCiAgICAgZGVmIHRlc3RfdmVyYm9zZV9pbl9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAg
ICAgICMgV2hlbiB3ZSBhY3R1YWxseSBydW4gbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSBtYXkgaGF2
ZSB0byByZWNvbmZpZ3VyZSBsb2dnaW5nIGluIHRoZQpAQCAtOTY0LDExICs5NjQsMTEgQEAgY2xh
c3MgRW5kVG9FbmRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaG9zdCA9IE1vY2tI
b3N0KCkKICAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKHJlY29yZF9y
ZXN1bHRzPVRydWUsIHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCkKIAotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhyZXMsIHVuZXhwZWN0ZWRfdGVzdHNfY291bnQpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVzLCB1bmV4cGVjdGVkX3Rlc3RzX2NvdW50KQogICAgICAgICByZXN1
bHRzID0gc2VsZi5wYXJzZV9mdWxsX3Jlc3VsdHMoaG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9m
aWxlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZnVsbF9yZXN1bHRzLmpzb24nKSkKIAogICAg
ICAgICAjIENoZWNrIHRvIGVuc3VyZSB3ZSdyZSBwYXNzaW5nIGJhY2sgaW1hZ2UgZGlmZiAlYWdl
IGNvcnJlY3RseS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0c1sndGVzdHMnXVsn
ZmFpbHVyZXMnXVsnZXhwZWN0ZWQnXVsnaW1hZ2UuaHRtbCddWydpbWFnZV9kaWZmX3BlcmNlbnQn
XSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzWyd0ZXN0cyddWydmYWlsdXJl
cyddWydleHBlY3RlZCddWydpbWFnZS5odG1sJ11bJ2ltYWdlX2RpZmZfcGVyY2VudCddLCAxKQog
CiAgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSBhdHRlbXB0ZWQgdG8gZGlzcGxheSB0aGUgcmVzdWx0
cyBwYWdlIGluIGEgYnJvd3Nlci4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHVzZXIub3BlbmVk
X3VybHMpCkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RzX2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCwgbmV3X3Jlc3VsdHM9VHJ1ZSkKICAgICAg
ICAgZmlsZV9saXN0ID0gaG9zdC5maWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMua2V5cygpCiAgICAg
ICAgIGZpbGVfbGlzdC5yZW1vdmUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4w
LnR4dCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXMsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0RW1wdHkob3V0KQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA0KQogICAgICAgICBzZWxmLmFzc2Vy
dEJhc2VsaW5lcyhmaWxlX2xpc3QsICJwYXNzZXMvaW1hZ2UiLCBbIi50eHQiLCAiLnBuZyJdLCBl
cnIpCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgICAgICAgICAgICAgIHRlc3Rz
X2luY2x1ZGVkPVRydWUsIGhvc3Q9aG9zdCwgbmV3X3Jlc3VsdHM9VHJ1ZSkKICAgICAgICAgZmls
ZV9saXN0ID0gaG9zdC5maWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMua2V5cygpCiAgICAgICAgIGZp
bGVfbGlzdC5yZW1vdmUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4wLnR4dCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXMsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RW1wdHkob3V0KQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA2KQogICAgICAgICBzZWxmLmFzc2VydEJh
c2VsaW5lcyhmaWxlX2xpc3QsICJmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4dCIsIFsi
LnR4dCJdLCBlcnIpCkBAIC0xMDUyLDcgKzEwNTIsNyBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgICAgICAgICAg
ICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgaG9zdD1ob3N0LCBuZXdfcmVzdWx0cz1UcnVlKQogICAg
ICAgICBmaWxlX2xpc3QgPSBob3N0LmZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcy5rZXlzKCkKICAg
ICAgICAgZmlsZV9saXN0LnJlbW92ZSgnL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1
bjAudHh0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzLCAwKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlcywgMCkKICAgICAgICAgc2VsZi5hc3NlcnRFbXB0eShvdXQpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVfbGlzdCksIDQpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0QmFzZWxpbmVzKGZpbGVfbGlzdCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfaW50ZWdyYXRpb250ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9p
bnRlZ3JhdGlvbnRlc3QucHkKaW5kZXggMjM3ZDY4OWNlYzAzNTFlYjA1OWEzNzM3MjU5M2QxODk5
NjRlMDgzOC4uMzdmYWE2NDI5NGIzM2RlNDE2ZThjMmJmYWU5NDEyMThjZmI1MTljZiAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3Nl
cnZlcl9pbnRlZ3JhdGlvbnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTgwLDkg
KzgwLDkgQEAgY2xhc3MgQmFzZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAg
cmV0dXJuCiAKICAgICAgICAgc2VsZi5hc3NlcnRfc2VydmVyc19hcmVfZG93bigpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYucnVuX3NjcmlwdChbJy0tc2VydmVyJywgJ3N0YXJ0J10p
LCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucnVuX3NjcmlwdChbJy0tc2VydmVy
JywgJ3N0YXJ0J10pLCAwKQogICAgICAgICBzZWxmLmFzc2VydF9zZXJ2ZXJzX2FyZV91cCgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYucnVuX3NjcmlwdChbJy0tc2VydmVyJywgJ3N0
b3AnXSksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5ydW5fc2NyaXB0KFsnLS1z
ZXJ2ZXInLCAnc3RvcCddKSwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRfc2VydmVyc19hcmVfZG93
bigpCiAKICAgICBkZWYgaW50ZWdyYXRpb25fdGVzdF9zZXJ2ZXJfX2ZhaWxzKHNlbGYpOgpAQCAt
OTksMTMgKzk5LDEzIEBAIGNsYXNzIEJhc2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgICAgICAgICAgaWYgZS5lcnJubyBpbiAoZXJybm8uRUFERFJJTlVTRSwgZXJybm8uRUFM
UkVBRFkpOgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdjb3VsZCBub3QgYmlu
ZCB0byBwb3J0ICVkOiAlcycgJSAocG9ydF9udW1iZXIsIHN0cihlKSkpCiAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5ydW5f
c2NyaXB0KFsnLS1zZXJ2ZXInLCAnc3RhcnQnXSksIDEpCisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnJ1bl9zY3JpcHQoWyctLXNlcnZlcicsICdzdGFydCddKSwgMSkKICAg
ICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgc2VsZi5ydW5fc2NyaXB0KFsnLS1z
ZXJ2ZXInLCAnc3RvcCddKQogICAgICAgICAgICAgICAgIHRlc3Rfc29ja2V0LmNsb3NlKCkKIAog
ICAgICAgICAjIFRlc3QgdGhhdCBjYWxsaW5nIHN0b3AoKSB0d2ljZSBpcyBoYXJtbGVzcy4KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5ydW5fc2NyaXB0KFsnLS1zZXJ2ZXInLCAnc3Rv
cCddKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJ1bl9zY3JpcHQoWyctLXNl
cnZlcicsICdzdG9wJ10pLCAwKQogCiAgICAgZGVmIG1heWJlX21ha2VfZGlyKHNlbGYsICpjb21w
cyk6CiAgICAgICAgIHRyeToKQEAgLTEyNCw5ICsxMjQsOSBAQCBjbGFzcyBCYXNlVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYubWF5YmVfbWFrZV9kaXIodG1wZGlyLCAnbWVk
aWEnKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0X3NlcnZlcnNfYXJlX2Rvd24oWzE4MDAwXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5ydW5fc2NyaXB0KFsnLS1zZXJ2ZXInLCAnc3Rh
cnQnLCAnLS1wb3J0PTE4MDAwJywgJy0tcm9vdCcsIHRtcGRpcl0pLCAwKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYucnVuX3NjcmlwdChbJy0tc2VydmVyJywgJ3N0YXJ0JywgJy0tcG9y
dD0xODAwMCcsICctLXJvb3QnLCB0bXBkaXJdKSwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRfc2Vy
dmVyc19hcmVfdXAoWzE4MDAwXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5ydW5f
c2NyaXB0KFsnLS1zZXJ2ZXInLCAnc3RvcCddKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnJ1bl9zY3JpcHQoWyctLXNlcnZlcicsICdzdG9wJ10pLCAwKQogICAgICAgICBzZWxm
LmFzc2VydF9zZXJ2ZXJzX2FyZV9kb3duKFsxODAwMF0pCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9z
ZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggN2ExNDUyNmQxM2UwNzgxMjAzNzk1MTMyYTZhNzA3YmU4
MjQyZDA3OC4uNWNjNGE2ZWUwYzZiODQ1NDdlMTg5NjM2OWU5NDg1YWViZjcyNjgyNSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3Nl
cnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5CkBAIC01Niw3ICs1Niw3IEBAIGNsYXNz
IFRlc3RIdHRwU2VydmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoU2VydmVyRXJyb3IsIHNlcnZlci5zdGFydCkKIAogICAgICAgICBjb25maWdfZmlsZSA9
IGhvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSgiL21vY2svb3V0cHV0X2Rpci9saWdodHRw
ZC5jb25mIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmUuZmluZGFsbChyImFsaWFzLnVy
bC4rIiwgY29uZmlnX2ZpbGUpLCBbCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmUuZmluZGFs
bChyImFsaWFzLnVybC4rIiwgY29uZmlnX2ZpbGUpLCBbCiAgICAgICAgICAgICAnYWxpYXMudXJs
ID0gKCAiL2pzLXRlc3QtcmVzb3VyY2VzIiA9PiAiL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZXNvdXJjZXMiICknLAogICAgICAgICAgICAgJ2FsaWFzLnVybCArPSAoICIvbW9j
ay9vbmUtYWRkaXRpb25hbC1kaXIiID0+ICIvbW9jay1jaGVja291dC9vbmUtYWRkaXRpb25hbC1k
aXIiICknLAogICAgICAgICAgICAgJ2FsaWFzLnVybCArPSAoICIvbW9jay9hbm90aGVyLWFkZGl0
aW9uYWwtZGlyIiA9PiAiL21vY2stY2hlY2tvdXQvb25lLWFkZGl0aW9uYWwtZGlyIiApJywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVy
ZWRfc3RyZWFtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKaW5kZXggYjM4OGVjNjA4NDgzMjQz
OTJjZWRhMzEwOTZhMjE5NjEyOTIwMWZmMy4uNjYyMGNiYjA0YjYwZmQ4NzVkMmZiYTliYzE1ZWUy
MjU2MDU0Mzk4NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKQEAg
LTc2LDcgKzc2LDcgQEAgY2xhc3MgUmVndWxhclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgc2VsZi5tZXRlci53cml0ZV90aHJvdHRsZWRfdXBkYXRlKCdmb28nKQogICAgICAg
ICAgICAgc2VsZi5tZXRlci53cml0ZV91cGRhdGUoJ2JhcicpCiAgICAgICAgICAgICBzZWxmLm1l
dGVyLndyaXRlKCdiYXonKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobG9nZ2luZ19z
dHJlYW0uYnVmbGlzdCwgW10pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ2dpbmdf
c3RyZWFtLmJ1Zmxpc3QsIFtdKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgcm9vdF9s
b2dnZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKQogICAgICAgICAgICAgcm9vdF9sb2dnZXIuc2V0
TGV2ZWwob3JpZ19sZXZlbCkKQEAgLTg4LDEyICs4OCwxMiBAQCBjbGFzcyBSZWd1bGFyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYubWV0ZXIud3JpdGVfdGhyb3R0bGVkX3Vw
ZGF0ZSgnYmF6JykKICAgICAgICAgc2VsZi5tZXRlci53cml0ZV90aHJvdHRsZWRfdXBkYXRlKCdi
YXogMicpCiAgICAgICAgIHNlbGYubWV0ZXIud3JpdGVsbignZG9uZScpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHNlbGYudGltZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYudGltZXMsIFtdKQogICAgICAgICByZXR1cm4gc2VsZi5idWZsaXN0CiAKICAgICBkZWYgdGVz
dF9iYXNpYyhzZWxmKToKICAgICAgICAgYnVmbGlzdCA9IHNlbGYuX2Jhc2ljKFswLCAxLCAyLCAx
MywgMTRdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhidWZsaXN0LCBbJ2Zvb1xuJywgJ2Jh
clxuJywgJ2JheiAyXG4nLCAnZG9uZVxuJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVm
bGlzdCwgWydmb29cbicsICdiYXJcbicsICdiYXogMlxuJywgJ2RvbmVcbiddKQogCiAgICAgZGVm
IF9sb2dfYWZ0ZXJfdXBkYXRlKHNlbGYpOgogICAgICAgICBzZWxmLm1ldGVyLndyaXRlX3VwZGF0
ZSgnZm9vJykKQEAgLTEwMiwxMSArMTAyLDExIEBAIGNsYXNzIFJlZ3VsYXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2xvZ19hZnRlcl91cGRhdGUoc2VsZik6CiAgICAg
ICAgIGJ1Zmxpc3QgPSBzZWxmLl9sb2dfYWZ0ZXJfdXBkYXRlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoYnVmbGlzdCwgWydmb29cbicsICdiYXJcbiddKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGJ1Zmxpc3QsIFsnZm9vXG4nLCAnYmFyXG4nXSkKIAogICAgIGRlZiB0ZXN0X2xvZ19h
cmdzKHNlbGYpOgogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdmb28gJXMgJWQnLCAnYmFyJywg
MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5idWZsaXN0LCBbJ2ZvbyBiYXIgMlxu
J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5idWZsaXN0LCBbJ2ZvbyBiYXIgMlxu
J10pCiAKIGNsYXNzIFR0eVRlc3QoUmVndWxhclRlc3QpOgogICAgIHZlcmJvc2UgPSBGYWxzZQpA
QCAtMTE0LDE0ICsxMTQsMTQgQEAgY2xhc3MgVHR5VGVzdChSZWd1bGFyVGVzdCk6CiAKICAgICBk
ZWYgdGVzdF9iYXNpYyhzZWxmKToKICAgICAgICAgYnVmbGlzdCA9IHNlbGYuX2Jhc2ljKFswLCAx
LCAxLjA1LCAxLjEsIDJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhidWZsaXN0LCBbJ2Zv
bycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmbGlzdCwgWydmb28nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGVyZWRTdHJlYW0uX2VyYXN1cmUoJ2Zvbycp
LCAnYmFyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRlcmVkU3Ry
ZWFtLl9lcmFzdXJlKCdiYXInKSwgJ2JheiAyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNZXRlcmVkU3RyZWFtLl9lcmFzdXJlKCdiYXogMicpLCAnZG9uZVxuJ10pCiAK
ICAgICBkZWYgdGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKHNlbGYpOgogICAgICAgICBidWZsaXN0ID0g
c2VsZi5fbG9nX2FmdGVyX3VwZGF0ZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGJ1Zmxp
c3QsIFsnZm9vJywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWZsaXN0LCBbJ2ZvbycsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0ZXJlZFN0cmVhbS5fZXJhc3Vy
ZSgnZm9vJyksICdiYXJcbiddKQogCiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBjbGFzcyBWZXJib3Nl
VGVzdChSZWd1bGFyVGVzdCk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnXGRc
ZDpcZFxkOjAxLjAwMCA4Njc1IGJhclxuJywgYnVmbGlzdFsxXSkpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZS5tYXRjaCgnXGRcZDpcZFxkOjEzLjAwMCA4Njc1IGJheiAyXG4nLCBidWZsaXN0
WzJdKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdcZFxkOlxkXGQ6MTQuMTIz
IDg2NzUgZG9uZVxuJywgYnVmbGlzdFszXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxl
bihidWZsaXN0KSwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYnVmbGlzdCksIDQp
CiAKICAgICBkZWYgdGVzdF9sb2dfYWZ0ZXJfdXBkYXRlKHNlbGYpOgogICAgICAgICBidWZsaXN0
ID0gc2VsZi5fbG9nX2FmdGVyX3VwZGF0ZSgpCkBAIC0xNDYsMTEgKzE0NiwxMSBAQCBjbGFzcyBW
ZXJib3NlVGVzdChSZWd1bGFyVGVzdCk6CiAgICAgICAgICMgVGhlIHNlY29uZCBhcmd1bWVudCBz
aG91bGQgaGF2ZSBhIHJlYWwgdGltZXN0YW1wIGFuZCBwaWQsIHNvIHdlIGp1c3QgY2hlY2sgdGhl
IGZvcm1hdC4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdcZFxkOlxkXGQ6XGRc
ZC5cZFxkXGQgXGQrIGJhclxuJywgYnVmbGlzdFsxXSkpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobGVuKGJ1Zmxpc3QpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihidWZs
aXN0KSwgMikKIAogICAgIGRlZiB0ZXN0X2xvZ19hcmdzKHNlbGYpOgogICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCdmb28gJXMgJWQnLCAnYmFyJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMobGVuKHNlbGYuYnVmbGlzdCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNl
bGYuYnVmbGlzdCksIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmJ1Zmxpc3RbMF0u
ZW5kc3dpdGgoJ2ZvbyBiYXIgMlxuJykpCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQpp
bmRleCBiYzMwMDkyZjQwYmI3NzY1MjkwMGFhZjUxZjRmZDc4ODA4NjE3YjgxLi5jMGI5MjhiMGNj
ODE5YTBlMDdkZTczYTlkOTNhNWMxNzkwYjQzZTlkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVz
dC5weQpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLmdldHZhbHVlKCkpCiAKICAgICBk
ZWYgYXNzZXJ0V3JpdHRlbihzZWxmLCBzdHJlYW0sIGNvbnRlbnRzKToKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc3RyZWFtLmJ1Zmxpc3QsIGNvbnRlbnRzKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0cmVhbS5idWZsaXN0LCBjb250ZW50cykKIAogICAgIGRlZiByZXNldChzZWxmLCBz
dHJlYW0pOgogICAgICAgICBzdHJlYW0uYnVmbGlzdCA9IFtdCkBAIC0yNTksMjcgKzI1OSwyNyBA
QCBCVUdYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAogICAgICAg
ICBwcmludGVyLCBfLCBfID0gc2VsZi5nZXRfcHJpbnRlcigpCiAgICAgICAgIHByaW50ZXIuX21l
dGVyLm51bWJlcl9vZl9jb2x1bW5zID0gbGFtYmRhOiA4MAogICAgICAgICBhY3R1YWwgPSBwcmlu
dGVyLl90ZXN0X3N0YXR1c19saW5lKCdmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYXNzb2NpYXRl
ZC1lbGVtZW50cy1hZnRlci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCcsICcgcGFzc2VkJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoODAsIGxlbihhY3R1YWwpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhhY3R1YWwsICdbMC8wXSBmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYXNz
b2NpYS4uLmFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoODAsIGxlbihhY3R1YWwpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGFjdHVhbCwgJ1swLzBdIGZhc3QvZG9tL0hUTUxGb3JtRWxlbWVudC9hc3NvY2lhLi4uYWZ0
ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwgcGFzc2VkJykKIAogICAgICAgICBwcmludGVy
Ll9tZXRlci5udW1iZXJfb2ZfY29sdW1ucyA9IGxhbWJkYTogODkKICAgICAgICAgYWN0dWFsID0g
cHJpbnRlci5fdGVzdF9zdGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29j
aWF0ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3Nl
ZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDg5LCBsZW4oYWN0dWFsKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCAnWzAvMF0gZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50
L2Fzc29jaWF0ZWQtLi4uZW50cy1hZnRlci1pbmRleC1hc3NlcnRpb24tZmFpbDEuaHRtbCBwYXNz
ZWQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDg5LCBsZW4oYWN0dWFsKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsICdbMC8wXSBmYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQv
YXNzb2NpYXRlZC0uLi5lbnRzLWFmdGVyLWluZGV4LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3Nl
ZCcpCiAKICAgICAgICAgcHJpbnRlci5fbWV0ZXIubnVtYmVyX29mX2NvbHVtbnMgPSBsYW1iZGE6
IHN5cy5tYXhpbnQKICAgICAgICAgYWN0dWFsID0gcHJpbnRlci5fdGVzdF9zdGF0dXNfbGluZSgn
ZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgt
YXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKDkwLCBsZW4oYWN0dWFsKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCAn
WzAvMF0gZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXIt
aW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwgcGFzc2VkJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCg5MCwgbGVuKGFjdHVhbCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCAn
WzAvMF0gZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxlbWVudHMtYWZ0ZXIt
aW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwgcGFzc2VkJykKIAogICAgICAgICBwcmludGVyLl9t
ZXRlci5udW1iZXJfb2ZfY29sdW1ucyA9IGxhbWJkYTogMTgKICAgICAgICAgYWN0dWFsID0gcHJp
bnRlci5fdGVzdF9zdGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0
ZWQtZWxlbWVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDE4LCBsZW4oYWN0dWFsKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoYWN0dWFsLCAnWzAvMF0gZi4uLmwgcGFzc2VkJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxOCwgbGVuKGFjdHVhbCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YWN0dWFsLCAnWzAvMF0gZi4uLmwgcGFzc2VkJykKIAogICAgICAgICBwcmludGVyLl9tZXRlci5u
dW1iZXJfb2ZfY29sdW1ucyA9IGxhbWJkYTogMTAKICAgICAgICAgYWN0dWFsID0gcHJpbnRlci5f
dGVzdF9zdGF0dXNfbGluZSgnZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L2Fzc29jaWF0ZWQtZWxl
bWVudHMtYWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwnLCAnIHBhc3NlZCcpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbCwgJ1swLzBdIGFzc29jaWF0ZWQtZWxlbWVudHMt
YWZ0ZXItaW5kZXgtYXNzZXJ0aW9uLWZhaWwxLmh0bWwgcGFzc2VkJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChhY3R1YWwsICdbMC8wXSBhc3NvY2lhdGVkLWVsZW1lbnRzLWFmdGVyLWluZGV4
LWFzc2VydGlvbi1mYWlsMS5odG1sIHBhc3NlZCcpCiAKICAgICBkZWYgdGVzdF9kZXRhaWxzKHNl
bGYpOgogICAgICAgICBwcmludGVyLCBlcnIsIF8gPSBzZWxmLmdldF9wcmludGVyKFsnLS1kZXRh
aWxzJ10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rl
c3RzL3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5CmluZGV4IDljOTI5
NWY2MzczMjY1NzkxNzRhYmY1NTM2YzQyOGNjOWEzYzg0MmIuLjYyZTczNTNkZjU3MTQzM2UxNTg3
ODRjOTExYjcxODRiYTJhNzVlYjEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0
ZXN0LnB5CkBAIC00Nyw3ICs0Nyw3IEBAIGZyb20gd2Via2l0cHkucGVyZm9ybWFuY2VfdGVzdHMu
cGVyZnRlc3RzcnVubmVyIGltcG9ydCBQZXJmVGVzdHNSdW5uZXIKIAogY2xhc3MgTWFpblRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3NlcnRXcml0dGVuKHNlbGYsIHN0cmVhbSwg
Y29udGVudHMpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHJlYW0uYnVmbGlzdCwgY29u
dGVudHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmJ1Zmxpc3QsIGNvbnRlbnRz
KQogCiAgICAgZGVmIG5vcm1hbGl6ZUZpbmlzaGVkVGltZShzZWxmLCBsb2cpOgogICAgICAgICBy
ZXR1cm4gcmUuc3ViKHInRmluaXNoZWQ6IFswLTlcLl0rIHMnLCAnRmluaXNoZWQ6IDAuMSBzJywg
bG9nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0
LnB5CmluZGV4IGQ4MzRmZDU1NzA2YWRmOTk1NWIzZmFhMDE0MThhMzMzMGNjOGM4ZWQuLjNkZTM5
ZWJiMGE4N2NjOWRhMWQyYjJhMDFiZDgwOGMxYmM2YmRhY2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTE2OSw3ICsxNjksNyBA
QCBjbGFzcyBHbG9iYWxWYXJpYWJsZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
IyBBbHNvIGRvIHNvbWUgYWRkaXRpb25hbCBjaGVja3MuCiAgICAgICAgIGZvciBydWxlIGluIGJh
c2VfZmlsdGVyX3J1bGVzOgogICAgICAgICAgICAgIyBDaGVjayBubyBsZWFkaW5nIG9yIHRyYWls
aW5nIHdoaXRlIHNwYWNlLgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocnVsZSwgcnVs
ZS5zdHJpcCgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydWxlLCBydWxlLnN0cmlw
KCkpCiAgICAgICAgICAgICAjIEFsbCBjYXRlZ29yaWVzIGFyZSBvbiBieSBkZWZhdWx0LCBzbyBk
ZWZhdWx0cyBzaG91bGQKICAgICAgICAgICAgICMgYmVnaW4gd2l0aCAtLgogICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJ1bGUuc3RhcnRzd2l0aCgnLScpKQpAQCAtMzM1LDggKzMzNSw4IEBA
IGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyU2tpcFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfc3R5bGVfZXJy
b3I9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlu
X2NvbmZpZGVuY2U9MykKICAgICAgICAgbWVzc2FnZSA9ICd3aGlsZSBjaGVja2luZzogJXMnICUg
cGF0aAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyIGlzIE5vbmUsIGlzX2NoZWNr
ZXJfbm9uZSwgbWVzc2FnZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZGlzcGF0
Y2hlci5zaG91bGRfc2tpcF93aXRob3V0X3dhcm5pbmcocGF0aCksCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY2hlY2tlciBpcyBOb25lLCBpc19jaGVja2VyX25vbmUsIG1lc3NhZ2UpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZGlzcGF0Y2hlci5zaG91bGRfc2tpcF93aXRob3V0
X3dhcm5pbmcocGF0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLCBtZXNz
YWdlKQogCiAgICAgZGVmIHRlc3Rfc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nX190cnVlKHNl
bGYpOgpAQCAtMzc4LDcgKzM3OCw3IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyQ2FycmlhZ2VS
ZXR1cm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICBkaXNwYXRjaGVyID0gQ2hl
Y2tlckRpc3BhdGNoZXIoKQogICAgICAgICBmb3IgZmlsZV9wYXRoLCBleHBlY3RlZF9yZXN1bHQg
aW4gZmlsZXMuaXRlbXMoKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRpc3BhdGNo
ZXIuc2hvdWxkX2NoZWNrX2FuZF9zdHJpcF9jYXJyaWFnZV9yZXR1cm5zKGZpbGVfcGF0aCksIGV4
cGVjdGVkX3Jlc3VsdCwgJ0NoZWNraW5nOiAlcycgJSBmaWxlX3BhdGgpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGRpc3BhdGNoZXIuc2hvdWxkX2NoZWNrX2FuZF9zdHJpcF9jYXJyaWFn
ZV9yZXR1cm5zKGZpbGVfcGF0aCksIGV4cGVjdGVkX3Jlc3VsdCwgJ0NoZWNraW5nOiAlcycgJSBm
aWxlX3BhdGgpCiAKIAogY2xhc3MgQ2hlY2tlckRpc3BhdGNoZXJEaXNwYXRjaFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgpAQCAtNDAzLDcgKzQwMyw3IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVy
RGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiQXNzZXJ0IHRoZSB0
eXBlIG9mIHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIuIiIiCiAgICAgICAgIGNoZWNrZXIgPSBzZWxm
LmRpc3BhdGNoKGZpbGVfcGF0aCkKICAgICAgICAgZ290X2NsYXNzID0gY2hlY2tlci5fX2NsYXNz
X18KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZ290X2NsYXNzLCBleHBlY3RlZF9jbGFzcywK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnb3RfY2xhc3MsIGV4cGVjdGVkX2NsYXNzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAnRm9yIHBhdGggIiUoZmlsZV9wYXRoKXMiIGdvdCAlKGdv
dF9jbGFzcylzIHdoZW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0aW5nICUo
ZXhwZWN0ZWRfY2xhc3Mpcy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICUgeyJmaWxlX3Bh
dGgiOiBmaWxlX3BhdGgsCkBAIC00NDksOCArNDQ5LDggQEAgY2xhc3MgQ2hlY2tlckRpc3BhdGNo
ZXJEaXNwYXRjaFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBmaWxlX3BhdGggPSAi
Q2hhbmdlTG9nIgogICAgICAgICBzZWxmLmFzc2VydF9jaGVja2VyX2NoYW5nZWxvZyhmaWxlX3Bh
dGgpCiAgICAgICAgIGNoZWNrZXIgPSBzZWxmLmRpc3BhdGNoKGZpbGVfcGF0aCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5maWxlX3BhdGgsIGZpbGVfcGF0aCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5maWxlX3BhdGgsIGZpbGVfcGF0aCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjaGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKIAogICAgIGRlZiB0ZXN0
X2NwcF9wYXRocyhzZWxmKToKQEAgLTQ3MSwxOCArNDcxLDE4IEBAIGNsYXNzIENoZWNrZXJEaXNw
YXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmlsZV9wYXRo
ID0gZmlsZV9iYXNlICsgIi4iICsgZmlsZV9leHRlbnNpb24KICAgICAgICAgc2VsZi5hc3NlcnRf
Y2hlY2tlcl9jcHAoZmlsZV9wYXRoKQogICAgICAgICBjaGVja2VyID0gc2VsZi5kaXNwYXRjaChm
aWxlX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9leHRlbnNp
b24sIGZpbGVfZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZp
bGVfcGF0aCwgZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhh
bmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5taW5fY29uZmlkZW5jZSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjaGVja2VyLmZpbGVfZXh0ZW5zaW9uLCBmaWxlX2V4dGVuc2lvbikKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLmZpbGVfcGF0aCwgZmlsZV9wYXRoKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuaGFuZGxlX3N0eWxlX2Vycm9yLCBzZWxmLm1v
Y2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIu
bWluX2NvbmZpZGVuY2UsIDMpCiAgICAgICAgICMgQ2hlY2sgIi0iIGZvciBnb29kIG1lYXN1cmUu
CiAgICAgICAgIGZpbGVfYmFzZSA9ICItIgogICAgICAgICBmaWxlX2V4dGVuc2lvbiA9ICIiCiAg
ICAgICAgIGZpbGVfcGF0aCA9IGZpbGVfYmFzZQogICAgICAgICBzZWxmLmFzc2VydF9jaGVja2Vy
X2NwcChmaWxlX3BhdGgpCiAgICAgICAgIGNoZWNrZXIgPSBzZWxmLmRpc3BhdGNoKGZpbGVfcGF0
aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5maWxlX2V4dGVuc2lvbiwgZmls
ZV9leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9wYXRo
LCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5maWxlX2V4dGVu
c2lvbiwgZmlsZV9leHRlbnNpb24pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5m
aWxlX3BhdGgsIGZpbGVfcGF0aCkKIAogICAgIGRlZiB0ZXN0X2pzb25fcGF0aHMoc2VsZik6CiAg
ICAgICAgICIiIlRlc3QgcGF0aHMgdGhhdCBzaG91bGQgYmUgY2hlY2tlZCBhcyBKU09OLiIiIgpA
QCAtNTAwLDcgKzUwMCw3IEBAIGNsYXNzIENoZWNrZXJEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmlsZV9wYXRoID0gZmlsZV9iYXNlICsgIi4iICsg
ZmlsZV9leHRlbnNpb24KICAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tlcl9qc29uKGZpbGVfcGF0
aCkKICAgICAgICAgY2hlY2tlciA9IHNlbGYuZGlzcGF0Y2goZmlsZV9wYXRoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLl9oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5faGFuZGxlX3N0eWxlX2Vycm9yLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQogCiAgICAgZGVmIHRl
c3RfcHl0aG9uX3BhdGhzKHNlbGYpOgpAQCAtNTE5LDggKzUxOSw4IEBAIGNsYXNzIENoZWNrZXJE
aXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmlsZV9w
YXRoID0gZmlsZV9iYXNlICsgIi4iICsgZmlsZV9leHRlbnNpb24KICAgICAgICAgc2VsZi5hc3Nl
cnRfY2hlY2tlcl90ZXh0KGZpbGVfcGF0aCkKICAgICAgICAgY2hlY2tlciA9IHNlbGYuZGlzcGF0
Y2goZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZpbGVfcGF0
aCwgZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhhbmRsZV9z
dHlsZV9lcnJvciwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLmZpbGVfcGF0aCwg
ZmlsZV9wYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuaGFuZGxlX3N0eWxl
X2Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxl
X2Vycm9yKQogCiAgICAgZGVmIHRlc3RfdGV4dF9wYXRocyhzZWxmKToKQEAgLTU2Myw4ICs1NjMs
OCBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIGZpbGVfcGF0aCA9IGZpbGVfYmFzZSArICIuIiArIGZpbGVfZXh0ZW5zaW9u
CiAgICAgICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXJfdGV4dChmaWxlX3BhdGgpCiAgICAgICAgIGNo
ZWNrZXIgPSBzZWxmLmRpc3BhdGNoKGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoY2hlY2tlci5maWxlX3BhdGgsIGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoY2hlY2tlci5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJy
b3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5maWxlX3BhdGgsIGZpbGVfcGF0
aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwg
c2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKIAogICAgIGRlZiB0ZXN0X3htbF9wYXRocyhz
ZWxmKToKICAgICAgICAgIiIiVGVzdCBwYXRocyB0aGF0IHNob3VsZCBiZSBjaGVja2VkIGFzIFhN
TC4iIiIKQEAgLTU4Miw3ICs1ODIsNyBAQCBjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNo
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZpbGVfcGF0aCA9IGZpbGVfYmFzZSAr
ICIuIiArIGZpbGVfZXh0ZW5zaW9uCiAgICAgICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXJfeG1sKGZp
bGVfcGF0aCkKICAgICAgICAgY2hlY2tlciA9IHNlbGYuZGlzcGF0Y2goZmlsZV9wYXRoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLl9oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5faGFuZGxlX3N0eWxlX2Vycm9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQogCiAgICAg
ZGVmIHRlc3Rfbm9uZV9wYXRocyhzZWxmKToKQEAgLTYyNSwxMCArNjI1LDEwIEBAIGNsYXNzIFN0
eWxlUHJvY2Vzc29yQ29uZmlndXJhdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBjb25maWd1cmF0aW9uID0gc2VsZi5fc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9uKCkKIAog
ICAgICAgICAjIENoZWNrIHRoYXQgX19pbml0X18gc2V0cyB0aGUgInB1YmxpYyIgZGF0YSBhdHRy
aWJ1dGVzIGNvcnJlY3RseS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29uZmlndXJhdGlv
bi5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29u
ZmlndXJhdGlvbi5tYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsid2hpdGVzcGFjZS9uZXdsaW5lIjogMX0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGNvbmZpZ3VyYXRpb24uc3RkZXJyX3dyaXRlLCBzZWxmLl9tb2NrX3N0ZGVycl93cml0ZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY29uZmlndXJhdGlvbi5taW5fY29uZmlkZW5jZSwg
MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25maWd1cmF0aW9uLnN0ZGVycl93cml0ZSwg
c2VsZi5fbW9ja19zdGRlcnJfd3JpdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29uZmln
dXJhdGlvbi5taW5fY29uZmlkZW5jZSwgMykKIAogICAgIGRlZiB0ZXN0X2lzX3JlcG9ydGFibGUo
c2VsZik6CiAgICAgICAgICIiIlRlc3QgdGhlIGlzX3JlcG9ydGFibGUoKSBtZXRob2QuIiIiCkBA
IC02NTMsMTMgKzY1MywxMyBAQCBjbGFzcyBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb25UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF93cml0ZV9zdHlsZV9lcnJvcl9lbWFj
cyhzZWxmKToKICAgICAgICAgIiIiVGVzdCB0aGUgd3JpdGVfc3R5bGVfZXJyb3IoKSBtZXRob2Qu
IiIiCiAgICAgICAgIHNlbGYuX2NhbGxfd3JpdGVfc3R5bGVfZXJyb3IoImVtYWNzIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsiZm9vLmg6MTAwOiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbiJdKQogCiAg
ICAgZGVmIHRlc3Rfd3JpdGVfc3R5bGVfZXJyb3JfdnM3KHNlbGYpOgogICAgICAgICAiIiJUZXN0
IHRoZSB3cml0ZV9zdHlsZV9lcnJvcigpIG1ldGhvZC4iIiIKICAgICAgICAgc2VsZi5fY2FsbF93
cml0ZV9zdHlsZV9lcnJvcigidnM3IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5f
ZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXJyb3JfbWVz
c2FnZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZm9vLmgoMTAwKTogIG1lc3NhZ2Ug
IFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iXSkKIAogCkBAIC02ODUsOCArNjg1LDggQEAgY2xhc3Mg
U3R5bGVQcm9jZXNzb3JfRW5kVG9FbmRUZXN0KExvZ2dpbmdUZXN0Q2FzZSk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RkZXJyX3dyaXRlPXNlbGYuX21vY2tfc3RkZXJyX3dyaXRlKQog
ICAgICAgICBwcm9jZXNzb3IgPSBTdHlsZVByb2Nlc3Nvcihjb25maWd1cmF0aW9uKQogCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nlc3Nvci5lcnJvcl9jb3VudCwgMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fbWVzc2FnZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHByb2Nlc3Nvci5lcnJvcl9jb3VudCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLl9tZXNzYWdlcywgW10pCiAKICAgICBkZWYgdGVzdF9wcm9jZXNzKHNlbGYpOgogICAg
ICAgICBjb25maWd1cmF0aW9uID0gU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uKApAQCAtNjk5
LDEwICs2OTksMTAgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3JfRW5kVG9FbmRUZXN0KExvZ2dpbmdU
ZXN0Q2FzZSk6CiAKICAgICAgICAgcHJvY2Vzc29yLnByb2Nlc3MobGluZXM9WydsaW5lMScsICdM
aW5lIHdpdGggdGFiOlx0J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aD0n
Zm9vLnR4dCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nlc3Nvci5lcnJvcl9jb3Vu
dCwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9jZXNzb3IuZXJyb3JfY291bnQsIDEp
CiAgICAgICAgIGV4cGVjdGVkX21lc3NhZ2VzID0gWydmb28udHh0KDIpOiAgTGluZSBjb250YWlu
cyB0YWIgY2hhcmFjdGVyLiAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnW3doaXRl
c3BhY2UvdGFiXSBbNV1cbiddCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX21lc3Nh
Z2VzLCBleHBlY3RlZF9tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9t
ZXNzYWdlcywgZXhwZWN0ZWRfbWVzc2FnZXMpCiAKIAogY2xhc3MgU3R5bGVQcm9jZXNzb3JfQ29k
ZUNvdmVyYWdlVGVzdChMb2dnaW5nVGVzdENhc2UpOgpAQCAtODYxLDE4ICs4NjEsMTggQEAgY2xh
c3MgU3R5bGVQcm9jZXNzb3JfQ29kZUNvdmVyYWdlVGVzdChMb2dnaW5nVGVzdENhc2UpOgogICAg
ICAgICAjIENoZWNrIHRoYXQgdGhlIGNhcnJpYWdlLXJldHVybiBjaGVja2VyIHdhcyBpbnN0YW50
aWF0ZWQgY29ycmVjdGx5CiAgICAgICAgICMgYW5kIHdhcyBwYXNzZWQgbGluZXMgY29ycmVjdGx5
LgogICAgICAgICBjYXJyaWFnZV9jaGVja2VyID0gc2VsZi5jYXJyaWFnZV9jaGVja2VyCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNhcnJpYWdlX2NoZWNrZXIuc3R5bGVfZXJyb3JfaGFuZGxl
ciwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXJyaWFnZV9jaGVja2VyLnN0eWxlX2Vycm9y
X2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2Vycm9yX2hhbmRs
ZXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNhcnJpYWdlX2NoZWNrZXIubGluZXMsIFsn
bGluZTEnLCAnbGluZTInXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXJyaWFnZV9jaGVj
a2VyLmxpbmVzLCBbJ2xpbmUxJywgJ2xpbmUyJ10pCiAKICAgICAgICAgIyBDaGVjayB0aGF0IHRo
ZSBzdHlsZSBjaGVja2VyIHdhcyBkaXNwYXRjaGVkIGNvcnJlY3RseSBhbmQgd2FzCiAgICAgICAg
ICMgcGFzc2VkIGxpbmVzIGNvcnJlY3RseS4KICAgICAgICAgY2hlY2tlciA9IHNlbGYuX21vY2tf
ZGlzcGF0Y2hlci5kaXNwYXRjaGVkX2NoZWNrZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Y2hlY2tlci5maWxlX3BhdGgsICdmb28udHh0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Y2hlY2tlci5taW5fY29uZmlkZW5jZSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hl
Y2tlci5zdHlsZV9lcnJvcl9oYW5kbGVyLCBleHBlY3RlZF9lcnJvcl9oYW5kbGVyKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuZmlsZV9wYXRoLCAnZm9vLnR4dCcpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5taW5fY29uZmlkZW5jZSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjaGVja2VyLnN0eWxlX2Vycm9yX2hhbmRsZXIsIGV4cGVjdGVkX2Vycm9y
X2hhbmRsZXIpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5saW5lcywgWyds
aW5lMScsICdsaW5lMiddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIubGluZXMs
IFsnbGluZTEnLCAnbGluZTInXSkKIAogICAgIGRlZiB0ZXN0X3Byb2Nlc3NfX25vX2NoZWNrZXJf
ZGlzcGF0Y2hlZChzZWxmKToKICAgICAgICAgIiIiVGVzdCB0aGUgcHJvY2VzcygpIG1ldGhvZCBm
b3IgYSBwYXRoIHdpdGggbm8gZGlzcGF0Y2hlZCBjaGVja2VyLiIiIgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVz
dC5weQppbmRleCA5ZmU4YTYwYmMxMWY0NzBjNmE1Y2RhNGUzY2E0ZjlhZGQ2ZjlkZWE3Li4zMTVj
ZDkxYjI2ZTllYWZkNjcyY2UzYWFlY2QyNjkxNWRhMmVmOTU1IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NoYW5nZWxvZ191bml0dGVz
dC5weQpAQCAtNDQsOCArNDQsOCBAQCBjbGFzcyBDaGFuZ2VMb2dDaGVja2VyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKICAgICAgICAgZGVmIGhhbmRsZV9zdHlsZV9lcnJvcihsaW5lX251bWJl
ciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAgICAgc2VsZi5oYWRf
ZXJyb3IgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9saW5l
X251bWJlciwgbGluZV9udW1iZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBl
Y3RlZF9jYXRlZ29yeSwgY2F0ZWdvcnkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4
cGVjdGVkX2xpbmVfbnVtYmVyLCBsaW5lX251bWJlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWRfY2F0ZWdvcnksIGNhdGVnb3J5KQogICAgICAgICBzZWxmLmxpbmVzX3Rv
X2NoZWNrID0gc2V0KGxpbmVzX3RvX2NoZWNrKQogICAgICAgICBjaGVja2VyID0gY2hhbmdlbG9n
LkNoYW5nZUxvZ0NoZWNrZXIoJ0NoYW5nZUxvZycsIGhhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5t
b2NrX3Nob3VsZF9saW5lX2JlX2NoZWNrZWQpCiAgICAgICAgIGNoZWNrZXIuY2hlY2soY2hhbmdl
bG9nX2RhdGEuc3BsaXQoJ1xuJykpCkBAIC01OSw5ICs1OSw5IEBAIGNsYXNzIENoYW5nZUxvZ0No
ZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6
CiAgICAgICAgIGNoZWNrZXIgPSBjaGFuZ2Vsb2cuQ2hhbmdlTG9nQ2hlY2tlcignQ2hhbmdlTG9n
Jywgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2NrX3Nob3VsZF9saW5lX2Jl
X2NoZWNrZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9wYXRoLCAn
Q2hhbmdlTG9nJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5oYW5kbGVfc3R5
bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNoZWNrZXIuc2hvdWxkX2xpbmVfYmVfY2hlY2tlZCwgc2VsZi5tb2NrX3Nob3Vs
ZF9saW5lX2JlX2NoZWNrZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5maWxl
X3BhdGgsICdDaGFuZ2VMb2cnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuaGFu
ZGxlX3N0eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuc2hvdWxkX2xpbmVfYmVfY2hlY2tlZCwgc2VsZi5tb2Nr
X3Nob3VsZF9saW5lX2JlX2NoZWNrZWQpCiAKICAgICBkZWYgdGVzdF9taXNzaW5nX2J1Z19udW1i
ZXIoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2Vycm9yKDEsIHJhbmdlKDEsIDIwKSwgJ2No
YW5nZWxvZy9idWdudW1iZXInLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQppbmRleCAxZmUxMjYzNzI5NjkzOTgw
OTVhNmU2OTZlMjkzMWQ1Y2Y5ZTRlYTk4Li5kZjQ3MDc3MzAwNGJlZWQwMGU5MzBhNDE2NDNiMmUz
NjZjMzFkOGJhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXJzL2NvbW1vbl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQpAQCAtNTksMTIgKzU5LDEyIEBAIGNsYXNzIENh
cnJpYWdlUmV0dXJuQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvdXRw
dXRfbGluZXMgPSBjaGVja2VyLmNoZWNrKGlucHV0X2xpbmVzKQogCiAgICAgICAgICMgQ2hlY2sg
Ym90aCB0aGUgcmV0dXJuIHZhbHVlIGFuZCBlcnJvciBtZXNzYWdlcy4KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMob3V0cHV0X2xpbmVzLCBleHBlY3RlZF9saW5lcykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvdXRwdXRfbGluZXMsIGV4cGVjdGVkX2xpbmVzKQogCiAgICAgICAgIGV4cGVj
dGVkX2Vycm9ycyA9IFsobGluZV9udW1iZXIsIHNlbGYuX2NhdGVnb3J5LCBzZWxmLl9jb25maWRl
bmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGVkX21lc3NhZ2Up
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbGluZV9udW1iZXIgaW4gZXJyb3JfbGlu
ZXNdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX3N0eWxlX2Vycm9ycywgZXhwZWN0
ZWRfZXJyb3JzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3N0eWxlX2Vycm9ycywg
ZXhwZWN0ZWRfZXJyb3JzKQogCiAgICAgZGVmIHRlc3RfZW5kc193aXRoX2NhcnJpYWdlKHNlbGYp
OgogICAgICAgICBzZWxmLmFzc2VydF9jYXJyaWFnZV9yZXR1cm4oWyJjYXJyaWFnZSByZXR1cm5c
ciJdLApAQCAtMTEwLDcgKzExMCw3IEBAIGNsYXNzIFRhYkNoZWNrZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKIAogICAgICAgICBjaGVja2VyID0gVGFiQ2hlY2tlcignJywgc3R5bGVfZXJyb3Jf
aGFuZGxlcikKICAgICAgICAgY2hlY2tlci5jaGVjayhpbnB1dF9saW5lcykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbGluZXMsIGVycm9yX2xpbmVzKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuX2Vycm9yX2xpbmVzLCBlcnJvcl9saW5lcykKIAogICAgIGRl
ZiB0ZXN0X25vdGFiKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF90YWIoWycnXSwgW10pCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0
ZXN0LnB5CmluZGV4IDU1MjIyMDEwMWY4OTUyMDg0ZDg4OGJmYjBiMTg2MjY0NzY1OWY4MmYuLjZk
ZTdkZjYxOTc5ZGU5ODliMDRkNmQ5ODg0ZmMxOWYxMDRhMzQwNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CkBAIC0x
MTYsMTcgKzExNiwxNyBAQCBjbGFzcyBDcHBGdW5jdGlvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAiIiJTdXBwb3J0cyB0ZXN0aW5nIGZ1bmN0aW9ucyB0aGF0IGRvIG5vdCBuZWVkIENw
cFN0eWxlVGVzdEJhc2UuIiIiCiAKICAgICBkZWYgdGVzdF9jb252ZXJ0X3RvX2xvd2VyX3dpdGhf
dW5kZXJzY29yZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9zdHlsZS5f
Y29udmVydF90b19sb3dlcl93aXRoX3VuZGVyc2NvcmVzKCdBQkMnKSwgJ2FiYycpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9zdHlsZS5fY29udmVydF90b19sb3dlcl93aXRoX3VuZGVy
c2NvcmVzKCdhQicpLCAnYV9iJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0eWxl
Ll9jb252ZXJ0X3RvX2xvd2VyX3dpdGhfdW5kZXJzY29yZXMoJ2lzQU5hbWUnKSwgJ2lzX2FfbmFt
ZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9zdHlsZS5fY29udmVydF90b19sb3dl
cl93aXRoX3VuZGVyc2NvcmVzKCdBbm90aGVyVGVzdCcpLCAnYW5vdGhlcl90ZXN0JykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0eWxlLl9jb252ZXJ0X3RvX2xvd2VyX3dpdGhfdW5k
ZXJzY29yZXMoJ1Bhc3NSZWZQdHI8TXlDbGFzcz4nKSwgJ3Bhc3NfcmVmX3B0cjxteV9jbGFzcz4n
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuX2NvbnZlcnRfdG9fbG93ZXJf
d2l0aF91bmRlcnNjb3JlcygnX0FCQycpLCAnX2FiYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY3BwX3N0eWxlLl9jb252ZXJ0X3RvX2xvd2VyX3dpdGhfdW5kZXJzY29yZXMoJ0FCQycpLCAn
YWJjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuX2NvbnZlcnRfdG9fbG93
ZXJfd2l0aF91bmRlcnNjb3JlcygnYUInKSwgJ2FfYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY3BwX3N0eWxlLl9jb252ZXJ0X3RvX2xvd2VyX3dpdGhfdW5kZXJzY29yZXMoJ2lzQU5hbWUn
KSwgJ2lzX2FfbmFtZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwX3N0eWxlLl9jb252
ZXJ0X3RvX2xvd2VyX3dpdGhfdW5kZXJzY29yZXMoJ0Fub3RoZXJUZXN0JyksICdhbm90aGVyX3Rl
c3QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5fY29udmVydF90b19sb3dl
cl93aXRoX3VuZGVyc2NvcmVzKCdQYXNzUmVmUHRyPE15Q2xhc3M+JyksICdwYXNzX3JlZl9wdHI8
bXlfY2xhc3M+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuX2NvbnZlcnRf
dG9fbG93ZXJfd2l0aF91bmRlcnNjb3JlcygnX0FCQycpLCAnX2FiYycpCiAKICAgICBkZWYgdGVz
dF9jcmVhdGVfYWNyb255bShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0
eWxlLl9jcmVhdGVfYWNyb255bSgnQUJDJyksICdBQkMnKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhjcHBfc3R5bGUuX2NyZWF0ZV9hY3JvbnltKCdJc0FOYW1lJyksICdJQU4nKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuX2NyZWF0ZV9hY3JvbnltKCdQYXNzUmVmUHRy
PE15Q2xhc3M+JyksICdQUlA8TUM+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5
bGUuX2NyZWF0ZV9hY3JvbnltKCdBQkMnKSwgJ0FCQycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY3BwX3N0eWxlLl9jcmVhdGVfYWNyb255bSgnSXNBTmFtZScpLCAnSUFOJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuX2NyZWF0ZV9hY3JvbnltKCdQYXNzUmVmUHRyPE15
Q2xhc3M+JyksICdQUlA8TUM+JykKIAogICAgIGRlZiB0ZXN0X2lzX2Nfb3Jfb2JqZWN0aXZlX2Mo
c2VsZik6CiAgICAgICAgIGNsZWFuX2xpbmVzID0gY3BwX3N0eWxlLkNsZWFuc2VkTGluZXMoWycn
XSkKQEAgLTE0MSw2OCArMTQxLDY4IEBAIGNsYXNzIENwcEZ1bmN0aW9uc1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3BhcmFtZXRlcihzZWxmKToKICAgICAgICAgIyBUZXN0
IHR5cGUuCiAgICAgICAgIHBhcmFtZXRlciA9IGNwcF9zdHlsZS5QYXJhbWV0ZXIoJ0V4Y2VwdGlv
bkNvZGUnLCAxMywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLnR5cGUs
ICdFeGNlcHRpb25Db2RlJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLm5h
bWUsICcnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbWV0ZXIucm93LCAxKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtZXRlci50eXBlLCAnRXhjZXB0aW9uQ29kZScpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW1ldGVyLm5hbWUsICcnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhcmFtZXRlci5yb3csIDEpCiAKICAgICAgICAgIyBUZXN0IHR5cGUgYW5k
IG5hbWUuCiAgICAgICAgIHBhcmFtZXRlciA9IGNwcF9zdHlsZS5QYXJhbWV0ZXIoJ1Bhc3NSZWZQ
dHI8TXlDbGFzcz4gcGFyZW50JywgMTksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBh
cmFtZXRlci50eXBlLCAnUGFzc1JlZlB0cjxNeUNsYXNzPicpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBhcmFtZXRlci5uYW1lLCAncGFyZW50JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMocGFyYW1ldGVyLnJvdywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXIu
dHlwZSwgJ1Bhc3NSZWZQdHI8TXlDbGFzcz4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBh
cmFtZXRlci5uYW1lLCAncGFyZW50JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0
ZXIucm93LCAxKQogCiAgICAgICAgICMgVGVzdCB0eXBlLCBubyBuYW1lLCB3aXRoIGRlZmF1bHQg
dmFsdWUuCiAgICAgICAgIHBhcmFtZXRlciA9IGNwcF9zdHlsZS5QYXJhbWV0ZXIoJ015Q2xhc3Mg
PSAwJywgNywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLnR5cGUsICdN
eUNsYXNzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLm5hbWUsICcnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbWV0ZXIucm93LCAwKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhcmFtZXRlci50eXBlLCAnTXlDbGFzcycpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocGFyYW1ldGVyLm5hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBh
cmFtZXRlci5yb3csIDApCiAKICAgICAgICAgIyBUZXN0IHR5cGUsIG5hbWUsIGFuZCBkZWZhdWx0
IHZhbHVlLgogICAgICAgICBwYXJhbWV0ZXIgPSBjcHBfc3R5bGUuUGFyYW1ldGVyKCdNeUNsYXNz
IGEgPSAwJywgNywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLnR5cGUs
ICdNeUNsYXNzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLm5hbWUsICdh
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLnJvdywgMCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXIudHlwZSwgJ015Q2xhc3MnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhcmFtZXRlci5uYW1lLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGFyYW1ldGVyLnJvdywgMCkKIAogICAgIGRlZiB0ZXN0X3NpbmdsZV9saW5lX3ZpZXcoc2Vs
Zik6CiAgICAgICAgIHN0YXJ0X3Bvc2l0aW9uID0gY3BwX3N0eWxlLlBvc2l0aW9uKHJvdz0xLCBj
b2x1bW49MSkKICAgICAgICAgZW5kX3Bvc2l0aW9uID0gY3BwX3N0eWxlLlBvc2l0aW9uKHJvdz0z
LCBjb2x1bW49MSkKICAgICAgICAgc2luZ2xlX2xpbmVfdmlldyA9IGNwcF9zdHlsZS5TaW5nbGVM
aW5lVmlldyhbJzAnLCAnYWJjZGUnLCAnZmdoJywgJ2knXSwgc3RhcnRfcG9zaXRpb24sIGVuZF9w
b3NpdGlvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2luZ2xlX2xpbmVfdmlldy5zaW5n
bGVfbGluZSwgJ2JjZGUgZmdoIGknKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzaW5nbGVf
bGluZV92aWV3LmNvbnZlcnRfY29sdW1uX3RvX3JvdygwKSwgMSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2luZ2xlX2xpbmVfdmlldy5jb252ZXJ0X2NvbHVtbl90b19yb3coNCksIDEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNpbmdsZV9saW5lX3ZpZXcuY29udmVydF9jb2x1bW5f
dG9fcm93KDUpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzaW5nbGVfbGluZV92aWV3
LmNvbnZlcnRfY29sdW1uX3RvX3Jvdyg4KSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
c2luZ2xlX2xpbmVfdmlldy5jb252ZXJ0X2NvbHVtbl90b19yb3coOSksIDMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHNpbmdsZV9saW5lX3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93KDEw
MCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2luZ2xlX2xpbmVfdmlldy5zaW5nbGVf
bGluZSwgJ2JjZGUgZmdoIGknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpbmdsZV9saW5l
X3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93KDApLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNpbmdsZV9saW5lX3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93KDQpLCAxKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNpbmdsZV9saW5lX3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93
KDUpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpbmdsZV9saW5lX3ZpZXcuY29udmVy
dF9jb2x1bW5fdG9fcm93KDgpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpbmdsZV9s
aW5lX3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93KDkpLCAzKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNpbmdsZV9saW5lX3ZpZXcuY29udmVydF9jb2x1bW5fdG9fcm93KDEwMCksIDMpCiAK
ICAgICAgICAgc3RhcnRfcG9zaXRpb24gPSBjcHBfc3R5bGUuUG9zaXRpb24ocm93PTAsIGNvbHVt
bj0zKQogICAgICAgICBlbmRfcG9zaXRpb24gPSBjcHBfc3R5bGUuUG9zaXRpb24ocm93PTAsIGNv
bHVtbj00KQogICAgICAgICBzaW5nbGVfbGluZV92aWV3ID0gY3BwX3N0eWxlLlNpbmdsZUxpbmVW
aWV3KFsnYWJjZGVmJ10sIHN0YXJ0X3Bvc2l0aW9uLCBlbmRfcG9zaXRpb24pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHNpbmdsZV9saW5lX3ZpZXcuc2luZ2xlX2xpbmUsICdkJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzaW5nbGVfbGluZV92aWV3LnNpbmdsZV9saW5lLCAnZCcpCiAK
ICAgICBkZWYgdGVzdF9jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0eWxlLmNyZWF0ZV9za2VsZXRvbl9wYXJhbWV0ZXJzKCcn
KSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9zdHlsZS5jcmVhdGVfc2tlbGV0
b25fcGFyYW1ldGVycygnICcpLCAnICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9z
dHlsZS5jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycygnbG9uZycpLCAnbG9uZywnKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFtZXRlcnMo
J2NvbnN0IHVuc2lnbmVkIGxvbmcgaW50JyksICcgICAgICAgICAgICAgICAgICAgIGludCwnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFt
ZXRlcnMoJ2xvbmcgaW50KicpLCAnICAgICBpbnQgLCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGNwcF9zdHlsZS5jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycygnUGFzc1JlZlB0cjxGb28+
IGEnKSwgJ1Bhc3NSZWZQdHIgICAgICBhLCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNw
cF9zdHlsZS5jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycygKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFtZXRlcnMoJycpLCAnJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFtZXRlcnMo
JyAnKSwgJyAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5jcmVhdGVfc2tl
bGV0b25fcGFyYW1ldGVycygnbG9uZycpLCAnbG9uZywnKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNwcF9zdHlsZS5jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycygnY29uc3QgdW5zaWduZWQg
bG9uZyBpbnQnKSwgJyAgICAgICAgICAgICAgICAgICAgaW50LCcpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY3BwX3N0eWxlLmNyZWF0ZV9za2VsZXRvbl9wYXJhbWV0ZXJzKCdsb25nIGludCon
KSwgJyAgICAgaW50ICwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5jcmVh
dGVfc2tlbGV0b25fcGFyYW1ldGVycygnUGFzc1JlZlB0cjxGb28+IGEnKSwgJ1Bhc3NSZWZQdHIg
ICAgICBhLCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwX3N0eWxlLmNyZWF0ZV9za2Vs
ZXRvbl9wYXJhbWV0ZXJzKAogICAgICAgICAgICAgICAgICdDb21wbGV4VGVtcGxhdGU8TmVzdGVk
VGVtcGxhdGUxPE15Q2xhc3MxLCBNeUNsYXNzMj4sIE5lc3RlZFRlbXBsYXRlMTxNeUNsYXNzMSwg
TXlDbGFzczI+ID4gcGFyYW0sIGludCBzZWNvbmQnKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0NvbXBsZXhUZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbSwgaW50IHNlY29uZCwn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3Bh
cmFtZXRlcnMoJ2ludCA9IDAsIE5hbWVzcGFjZTo6VHlwZSYgYScpLCAnaW50ICAgICwgICAgICAg
ICAgICBUeXBlICBhLCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwX3N0eWxlLmNyZWF0
ZV9za2VsZXRvbl9wYXJhbWV0ZXJzKCdpbnQgPSAwLCBOYW1lc3BhY2U6OlR5cGUmIGEnKSwgJ2lu
dCAgICAsICAgICAgICAgICAgVHlwZSAgYSwnKQogICAgICAgICAjIENyZWF0ZSBza2VsZXRvbiBw
YXJhbWV0ZXJzIGlzIGEgYml0IHRvbyBhZ2dyZXNzaXZlIHdpdGggZnVuY3Rpb24gdmFyaWFibGVz
LCBidXQKICAgICAgICAgIyBpdCBhbGxvd3MgZm9yIHBhcnNpbmcgb3RoZXIgcGFyYW1ldGVycyBh
bmQgZGVjbGFyYXRpb25zIGxpa2UgdGhpcyBhcmUgcmFyZS4KLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoY3BwX3N0eWxlLmNyZWF0ZV9za2VsZXRvbl9wYXJhbWV0ZXJzKCd2b2lkICgqZm4pKGlu
dCBhLCBpbnQgYiksIE5hbWVzcGFjZTo6VHlwZSYgYScpLAorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNwcF9zdHlsZS5jcmVhdGVfc2tlbGV0b25fcGFyYW1ldGVycygndm9pZCAoKmZuKShpbnQg
YSwgaW50IGIpLCBOYW1lc3BhY2U6OlR5cGUmIGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3ZvaWQgICAgICAgICAgICAgICAgICAgICwgICAgICAgICAgICBUeXBlICBhLCcpCiAKICAg
ICAgICAgIyBUaGlzIGRvZXNuJ3QgbG9vayBsaWtlIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMgYnV0
IHRoZSBzaW1wbGlmaWNhdGlvbnMgaGVscCB0byBlbGltaW5hdGUgZmFsc2UgcG9zaXRpdmVzLgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFt
ZXRlcnMoJ2J7ZH0nKSwgJ2IgICAsJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5
bGUuY3JlYXRlX3NrZWxldG9uX3BhcmFtZXRlcnMoJ2J7ZH0nKSwgJ2IgICAsJykKIAogICAgIGRl
ZiB0ZXN0X2ZpbmRfcGFyYW1ldGVyX25hbWVfaW5kZXgoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNwcF9zdHlsZS5maW5kX3BhcmFtZXRlcl9uYW1lX2luZGV4KCcgaW50IGEgJyks
IDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNwcF9zdHlsZS5maW5kX3BhcmFtZXRlcl9u
YW1lX2luZGV4KCcgUGFzc1JlZlB0ciAgICAgJyksIDE2KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhjcHBfc3R5bGUuZmluZF9wYXJhbWV0ZXJfbmFtZV9pbmRleCgnZG91YmxlJyksIDYpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwX3N0eWxlLmZpbmRfcGFyYW1ldGVyX25hbWVfaW5k
ZXgoJyBpbnQgYSAnKSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuZmlu
ZF9wYXJhbWV0ZXJfbmFtZV9pbmRleCgnIFBhc3NSZWZQdHIgICAgICcpLCAxNikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuZmluZF9wYXJhbWV0ZXJfbmFtZV9pbmRleCgnZG91
YmxlJyksIDYpCiAKICAgICBkZWYgdGVzdF9wYXJhbWV0ZXJfbGlzdChzZWxmKToKICAgICAgICAg
ZWxpZGVkX2xpbmVzID0gWydpbnQgYmxhaChQYXNzUmVmUHRyPE15Q2xhc3M+IHBhcmFtTmFtZSwn
LApAQCAtMjE5LDE3ICsyMTksMTcgQEAgY2xhc3MgQ3BwRnVuY3Rpb25zVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIGluZGV4ID0gMAogICAgICAgICBmb3IgcGFyYW1ldGVyIGluIGNw
cF9zdHlsZS5wYXJhbWV0ZXJfbGlzdChlbGlkZWRfbGluZXMsIHN0YXJ0X3Bvc2l0aW9uLCBlbmRf
cG9zaXRpb24pOgogICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1ldGVyID0gZXhwZWN0ZWRfcGFy
YW1ldGVyc1tpbmRleF0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci50
eXBlLCBleHBlY3RlZF9wYXJhbWV0ZXJbJ3R5cGUnXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBhcmFtZXRlci5uYW1lLCBleHBlY3RlZF9wYXJhbWV0ZXJbJ25hbWUnXSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci5yb3csIGV4cGVjdGVkX3BhcmFtZXRl
clsncm93J10pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtZXRlci50eXBlLCBl
eHBlY3RlZF9wYXJhbWV0ZXJbJ3R5cGUnXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGFyYW1ldGVyLm5hbWUsIGV4cGVjdGVkX3BhcmFtZXRlclsnbmFtZSddKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXIucm93LCBleHBlY3RlZF9wYXJhbWV0ZXJbJ3Jvdydd
KQogICAgICAgICAgICAgaW5kZXggKz0gMQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhpbmRl
eCwgbGVuKGV4cGVjdGVkX3BhcmFtZXRlcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlu
ZGV4LCBsZW4oZXhwZWN0ZWRfcGFyYW1ldGVycykpCiAKICAgICBkZWYgdGVzdF9jaGVja19wYXJh
bWV0ZXJfYWdhaW5zdF90ZXh0KHNlbGYpOgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJv
ckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9y
Q29sbGVjdG9yKHNlbGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgcGFyYW1ldGVyID0gY3BwX3N0eWxl
LlBhcmFtZXRlcignRm9vRiBvb0YnLCA0LCAxKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNw
cF9zdHlsZS5fY2hlY2tfcGFyYW1ldGVyX25hbWVfYWdhaW5zdF90ZXh0KHBhcmFtZXRlciwgJ0Zv
b0YnLCBlcnJvcl9jb2xsZWN0b3IpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhlcnJvcl9j
b2xsZWN0b3IucmVzdWx0cygpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbGxl
Y3Rvci5yZXN1bHRzKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgcGFyYW1ldGVy
IG5hbWUgIm9vRiIgYWRkcyBubyBpbmZvcm1hdGlvbiwgc28gaXQgc2hvdWxkIGJlIHJlbW92ZWQu
ICBbcmVhZGFiaWxpdHkvcGFyYW1ldGVyX25hbWVdIFs1XScpCiAKIGNsYXNzIENwcFN0eWxlVGVz
dEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMjUzLDcgKzI1Myw3IEBAIGNsYXNzIENwcFN0
eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9yLCBzZWxmLm1pbl9jb25maWRlbmNlLCB1bml0X3Rlc3Rf
Y29uZmlnKQogCiAgICAgZGVmIHBlcmZvcm1fbGludChzZWxmLCBjb2RlLCBmaWxlbmFtZSwgYmFz
aWNfZXJyb3JfcnVsZXMsIHVuaXRfdGVzdF9jb25maWc9e30sIGxpbmVzX3RvX2NoZWNrPU5vbmUp
OgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8s
IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzaWNfZXJyb3JfcnVsZXMpLCBsaW5lc190b19jaGVjaykK
KyAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVl
LCBGaWx0ZXJDb25maWd1cmF0aW9uKGJhc2ljX2Vycm9yX3J1bGVzKSwgbGluZXNfdG9fY2hlY2sp
CiAgICAgICAgIGxpbmVzID0gY29kZS5zcGxpdCgnXG4nKQogICAgICAgICBleHRlbnNpb24gPSBm
aWxlbmFtZS5zcGxpdCgnLicpWzFdCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmls
ZW5hbWUsIGV4dGVuc2lvbiwgbGluZXMsIGVycm9yX2NvbGxlY3RvciwgdW5pdF90ZXN0X2NvbmZp
ZykKQEAgLTMxMyw3ICszMTMsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRl
c3RDYXNlKToKIAogICAgICMgUGVyZm9ybSBsaW50IGFuZCBjb21wYXJlIHRoZSBlcnJvciBtZXNz
YWdlIHdpdGggImV4cGVjdGVkX21lc3NhZ2UiLgogICAgIGRlZiBhc3NlcnRfbGludChzZWxmLCBj
b2RlLCBleHBlY3RlZF9tZXNzYWdlLCBmaWxlX25hbWU9J2Zvby5jcHAnKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbWVzc2FnZSwgc2VsZi5wZXJmb3JtX3NpbmdsZV9saW5l
X2xpbnQoY29kZSwgZmlsZV9uYW1lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rl
ZF9tZXNzYWdlLCBzZWxmLnBlcmZvcm1fc2luZ2xlX2xpbmVfbGludChjb2RlLCBmaWxlX25hbWUp
KQogCiAgICAgZGVmIGFzc2VydF9saW50X29uZV9vZl9tYW55X2Vycm9yc19yZShzZWxmLCBjb2Rl
LCBleHBlY3RlZF9tZXNzYWdlX3JlLCBmaWxlX25hbWU9J2Zvby5jcHAnKToKICAgICAgICAgbWVz
c2FnZXMgPSBzZWxmLnBlcmZvcm1fc2luZ2xlX2xpbmVfbGludChjb2RlLCBmaWxlX25hbWUpCkBA
IC0zMjEsMTEgKzMyMSwxMSBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgICAgIGlmIHJlLnNlYXJjaChleHBlY3RlZF9tZXNzYWdlX3JlLCBtZXNz
YWdlKToKICAgICAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhleHBlY3RlZF9tZXNzYWdlX3JlLCBtZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZF9tZXNzYWdlX3JlLCBtZXNzYWdlcykKIAogICAgIGRlZiBhc3NlcnRfbXVsdGlf
bGluZV9saW50KHNlbGYsIGNvZGUsIGV4cGVjdGVkX21lc3NhZ2UsIGZpbGVfbmFtZT0nZm9vLmgn
KToKICAgICAgICAgZmlsZV9leHRlbnNpb24gPSBmaWxlX25hbWVbZmlsZV9uYW1lLnJmaW5kKCcu
JykgKyAxOl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbWVzc2FnZSwgc2Vs
Zi5wZXJmb3JtX211bHRpX2xpbmVfbGludChjb2RlLCBmaWxlX2V4dGVuc2lvbikpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbWVzc2FnZSwgc2VsZi5wZXJmb3JtX211bHRpX2xp
bmVfbGludChjb2RlLCBmaWxlX2V4dGVuc2lvbikpCiAKICAgICBkZWYgYXNzZXJ0X211bHRpX2xp
bmVfbGludF9yZShzZWxmLCBjb2RlLCBleHBlY3RlZF9tZXNzYWdlX3JlLCBmaWxlX25hbWU9J2Zv
by5oJyk6CiAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gZmlsZV9uYW1lW2ZpbGVfbmFtZS5yZmlu
ZCgnLicpICsgMTpdCkBAIC0zMzQsMjIgKzMzNCwyMiBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNl
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuZmFpbCgnTWVzc2FnZSB3YXM6
XG4nICsgbWVzc2FnZSArICdFeHBlY3RlZCBtYXRjaCB0byAiJyArIGV4cGVjdGVkX21lc3NhZ2Vf
cmUgKyAnIicpCiAKICAgICBkZWYgYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKHNlbGYsIGZp
bGVfbmFtZSwgY29kZSwgZXhwZWN0ZWRfbWVzc2FnZSwgbGluZXNfdG9fY2hlY2s9Tm9uZSk6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX21lc3NhZ2UsCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5wZXJmb3JtX2xhbmd1YWdlX3J1bGVzX2NoZWNrKGZpbGVfbmFtZSwgY29kZSwgbGluZXNf
dG9fY2hlY2spKQogCiAgICAgZGVmIGFzc2VydF9pbmNsdWRlX3doYXRfeW91X3VzZShzZWxmLCBj
b2RlLCBleHBlY3RlZF9tZXNzYWdlKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0
ZWRfbWVzc2FnZSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9tZXNzYWdlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1faW5jbHVkZV93aGF0X3lvdV91
c2UoY29kZSkpCiAKICAgICBkZWYgYXNzZXJ0X2JsYW5rX2xpbmVzX2NoZWNrKHNlbGYsIGxpbmVz
LCBzdGFydF9lcnJvcnMsIGVuZF9lcnJvcnMpOgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBF
cnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVy
cm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVf
ZGF0YSgnZm9vLmNwcCcsICdjcHAnLCBsaW5lcywgZXJyb3JfY29sbGVjdG9yKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAg
IHN0YXJ0X2Vycm9ycywKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCkuY291
bnQoCiAgICAgICAgICAgICAgICAgJ0JsYW5rIGxpbmUgYXQgdGhlIHN0YXJ0IG9mIGEgY29kZSBi
bG9jay4gIElzIHRoaXMgbmVlZGVkPycKICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9i
bGFua19saW5lXSBbMl0nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICBlbmRfZXJyb3JzLAogICAgICAgICAgICAgZXJy
b3JfY29sbGVjdG9yLnJlc3VsdHMoKS5jb3VudCgKICAgICAgICAgICAgICAgICAnQmxhbmsgbGlu
ZSBhdCB0aGUgZW5kIG9mIGEgY29kZSBibG9jay4gIElzIHRoaXMgbmVlZGVkPycKQEAgLTM2MCw3
ICszNjAsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAog
ICAgICAgICBwb3NpdGlvbjogYSBjcHBfc3R5bGUuUG9zaXRpb24gb2JqZWN0LgogICAgICAgICB0
dXBsZV9wb3NpdGlvbjogYSB0dXBsZSAocm93LCBjb2x1bW4pIHRvIGNvbXBhcmUgYWdhaW5zdC4i
IiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9zaXRpb24sIGNwcF9zdHlsZS5Qb3NpdGlv
bih0dXBsZV9wb3NpdGlvblswXSwgdHVwbGVfcG9zaXRpb25bMV0pLAorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBvc2l0aW9uLCBjcHBfc3R5bGUuUG9zaXRpb24odHVwbGVfcG9zaXRpb25bMF0s
IHR1cGxlX3Bvc2l0aW9uWzFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bvc2l0aW9u
ICVzLCB0dXBsZV9wb3NpdGlvbiAlcycgJSAocG9zaXRpb24sIHR1cGxlX3Bvc2l0aW9uKSkKIAog
CkBAIC0zNjgsMTYgKzM2OCwxNiBAQCBjbGFzcyBGdW5jdGlvbkRldGVjdGlvblRlc3QoQ3BwU3R5
bGVUZXN0QmFzZSk6CiAgICAgZGVmIHBlcmZvcm1fZnVuY3Rpb25fZGV0ZWN0aW9uKHNlbGYsIGxp
bmVzLCBmdW5jdGlvbl9pbmZvcm1hdGlvbiwgZGV0ZWN0aW9uX2xpbmU9MCk6CiAgICAgICAgIGNs
ZWFuX2xpbmVzID0gY3BwX3N0eWxlLkNsZWFuc2VkTGluZXMobGluZXMpCiAgICAgICAgIGZ1bmN0
aW9uX3N0YXRlID0gY3BwX3N0eWxlLl9GdW5jdGlvblN0YXRlKDUpCi0gICAgICAgIGVycm9yX2Nv
bGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVlKQogICAgICAgICBjcHBfc3R5
bGUuZGV0ZWN0X2Z1bmN0aW9ucyhjbGVhbl9saW5lcywgZGV0ZWN0aW9uX2xpbmUsIGZ1bmN0aW9u
X3N0YXRlLCBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIGlmIG5vdCBmdW5jdGlvbl9pbmZvcm1h
dGlvbjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZ1bmN0aW9uX3N0YXRlLmluX2Ff
ZnVuY3Rpb24sIEZhbHNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jdGlvbl9z
dGF0ZS5pbl9hX2Z1bmN0aW9uLCBGYWxzZSkKICAgICAgICAgICAgIHJldHVybgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhmdW5jdGlvbl9zdGF0ZS5pbl9hX2Z1bmN0aW9uLCBUcnVlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhmdW5jdGlvbl9zdGF0ZS5jdXJyZW50X2Z1bmN0aW9uLCBm
dW5jdGlvbl9pbmZvcm1hdGlvblsnbmFtZSddICsgJygpJykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoZnVuY3Rpb25fc3RhdGUubW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSgpLCBmdW5jdGlv
bl9pbmZvcm1hdGlvblsnbW9kaWZpZXJzX2FuZF9yZXR1cm5fdHlwZSddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhmdW5jdGlvbl9zdGF0ZS5pc19wdXJlLCBmdW5jdGlvbl9pbmZvcm1hdGlv
blsnaXNfcHVyZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmdW5jdGlvbl9zdGF0ZS5p
c19kZWNsYXJhdGlvbiwgZnVuY3Rpb25faW5mb3JtYXRpb25bJ2lzX2RlY2xhcmF0aW9uJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuY3Rpb25fc3RhdGUuaW5fYV9mdW5jdGlvbiwgVHJ1
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jdGlvbl9zdGF0ZS5jdXJyZW50X2Z1bmN0
aW9uLCBmdW5jdGlvbl9pbmZvcm1hdGlvblsnbmFtZSddICsgJygpJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmdW5jdGlvbl9zdGF0ZS5tb2RpZmllcnNfYW5kX3JldHVybl90eXBlKCksIGZ1
bmN0aW9uX2luZm9ybWF0aW9uWydtb2RpZmllcnNfYW5kX3JldHVybl90eXBlJ10pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZnVuY3Rpb25fc3RhdGUuaXNfcHVyZSwgZnVuY3Rpb25faW5mb3Jt
YXRpb25bJ2lzX3B1cmUnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jdGlvbl9zdGF0
ZS5pc19kZWNsYXJhdGlvbiwgZnVuY3Rpb25faW5mb3JtYXRpb25bJ2lzX2RlY2xhcmF0aW9uJ10p
CiAgICAgICAgIHNlbGYuYXNzZXJ0X3Bvc2l0aW9uc19lcXVhbChmdW5jdGlvbl9zdGF0ZS5mdW5j
dGlvbl9uYW1lX3N0YXJ0X3Bvc2l0aW9uLCBmdW5jdGlvbl9pbmZvcm1hdGlvblsnZnVuY3Rpb25f
bmFtZV9zdGFydF9wb3NpdGlvbiddKQogICAgICAgICBzZWxmLmFzc2VydF9wb3NpdGlvbnNfZXF1
YWwoZnVuY3Rpb25fc3RhdGUucGFyYW1ldGVyX3N0YXJ0X3Bvc2l0aW9uLCBmdW5jdGlvbl9pbmZv
cm1hdGlvblsncGFyYW1ldGVyX3N0YXJ0X3Bvc2l0aW9uJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0
X3Bvc2l0aW9uc19lcXVhbChmdW5jdGlvbl9zdGF0ZS5wYXJhbWV0ZXJfZW5kX3Bvc2l0aW9uLCBm
dW5jdGlvbl9pbmZvcm1hdGlvblsncGFyYW1ldGVyX2VuZF9wb3NpdGlvbiddKQpAQCAtMzg2LDEz
ICszODYsMTMgQEAgY2xhc3MgRnVuY3Rpb25EZXRlY3Rpb25UZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgICAgICBleHBlY3RlZF9wYXJhbWV0ZXJzID0gZnVuY3Rpb25faW5mb3JtYXRpb24uZ2V0
KCdwYXJhbWV0ZXJfbGlzdCcpCiAgICAgICAgIGlmIGV4cGVjdGVkX3BhcmFtZXRlcnM6CiAgICAg
ICAgICAgICBhY3R1YWxfcGFyYW1ldGVycyA9IGZ1bmN0aW9uX3N0YXRlLnBhcmFtZXRlcl9saXN0
KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihhY3R1YWxfcGFyYW1ldGVycyks
IGxlbihleHBlY3RlZF9wYXJhbWV0ZXJzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGFjdHVhbF9wYXJhbWV0ZXJzKSwgbGVuKGV4cGVjdGVkX3BhcmFtZXRlcnMpKQogICAgICAg
ICAgICAgZm9yIGluZGV4IGluIHJhbmdlKGxlbihleHBlY3RlZF9wYXJhbWV0ZXJzKSk6CiAgICAg
ICAgICAgICAgICAgYWN0dWFsX3BhcmFtZXRlciA9IGFjdHVhbF9wYXJhbWV0ZXJzW2luZGV4XQog
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX3BhcmFtZXRlciA9IGV4cGVjdGVkX3BhcmFtZXRlcnNb
aW5kZXhdCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsX3BhcmFtZXRl
ci50eXBlLCBleHBlY3RlZF9wYXJhbWV0ZXJbJ3R5cGUnXSkKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhhY3R1YWxfcGFyYW1ldGVyLm5hbWUsIGV4cGVjdGVkX3BhcmFtZXRlclsn
bmFtZSddKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbF9wYXJhbWV0
ZXIucm93LCBleHBlY3RlZF9wYXJhbWV0ZXJbJ3JvdyddKQorICAgICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoYWN0dWFsX3BhcmFtZXRlci50eXBlLCBleHBlY3RlZF9wYXJhbWV0ZXJbJ3R5
cGUnXSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9wYXJhbWV0ZXIu
bmFtZSwgZXhwZWN0ZWRfcGFyYW1ldGVyWyduYW1lJ10pCisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChhY3R1YWxfcGFyYW1ldGVyLnJvdywgZXhwZWN0ZWRfcGFyYW1ldGVyWydyb3cn
XSkKIAogICAgIGRlZiB0ZXN0X2Jhc2ljX2Z1bmN0aW9uX2RldGVjdGlvbihzZWxmKToKICAgICAg
ICAgc2VsZi5wZXJmb3JtX2Z1bmN0aW9uX2RldGVjdGlvbigKQEAgLTYzNCw1NCArNjM0LDU0IEBA
IGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKIAogICAgICMgVGVzdCBnZXQg
bGluZSB3aWR0aC4KICAgICBkZWYgdGVzdF9nZXRfbGluZV93aWR0aChzZWxmKToKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoMCwgY3BwX3N0eWxlLmdldF9saW5lX3dpZHRoKCcnKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoMTAsIGNwcF9zdHlsZS5nZXRfbGluZV93aWR0aCh1J3gnICog
MTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxNiwgY3BwX3N0eWxlLmdldF9saW5lX3dp
ZHRoKHUn6YO9fOmBk3zlupx855yMfOaUr+W6gScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDAsIGNwcF9zdHlsZS5nZXRfbGluZV93aWR0aCgnJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMTAsIGNwcF9zdHlsZS5nZXRfbGluZV93aWR0aCh1J3gnICogMTApKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDE2LCBjcHBfc3R5bGUuZ2V0X2xpbmVfd2lkdGgodSfpg7186YGTfOW6nHzn
nIx85pSv5bqBJykpCiAKICAgICBkZWYgdGVzdF9maW5kX25leHRfbXVsdGlfbGluZV9jb21tZW50
X3N0YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBjcHBfc3R5bGUuZmlu
ZF9uZXh0X211bHRpX2xpbmVfY29tbWVudF9zdGFydChbJyddLCAwKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBjcHBfc3R5bGUuZmluZF9uZXh0X211bHRpX2xpbmVfY29tbWVudF9zdGFy
dChbJyddLCAwKSkKIAogICAgICAgICBsaW5lcyA9IFsnYScsICdiJywgJy8qIGMnXQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscygyLCBjcHBfc3R5bGUuZmluZF9uZXh0X211bHRpX2xpbmVfY29t
bWVudF9zdGFydChsaW5lcywgMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgY3BwX3N0
eWxlLmZpbmRfbmV4dF9tdWx0aV9saW5lX2NvbW1lbnRfc3RhcnQobGluZXMsIDApKQogCiAgICAg
ICAgIGxpbmVzID0gWydjaGFyIGFbXSA9ICIvKiI7J10gICMgbm90IHJlY29nbml6ZWQgYXMgY29t
bWVudC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgY3BwX3N0eWxlLmZpbmRfbmV4dF9t
dWx0aV9saW5lX2NvbW1lbnRfc3RhcnQobGluZXMsIDApKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEsIGNwcF9zdHlsZS5maW5kX25leHRfbXVsdGlfbGluZV9jb21tZW50X3N0YXJ0KGxpbmVz
LCAwKSkKIAogICAgIGRlZiB0ZXN0X2ZpbmRfbmV4dF9tdWx0aV9saW5lX2NvbW1lbnRfZW5kKHNl
bGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBjcHBfc3R5bGUuZmluZF9uZXh0X211
bHRpX2xpbmVfY29tbWVudF9lbmQoWycnXSwgMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgY3BwX3N0eWxlLmZpbmRfbmV4dF9tdWx0aV9saW5lX2NvbW1lbnRfZW5kKFsnJ10sIDApKQog
ICAgICAgICBsaW5lcyA9IFsnYScsICdiJywgJyBjICovJ10KLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoMiwgY3BwX3N0eWxlLmZpbmRfbmV4dF9tdWx0aV9saW5lX2NvbW1lbnRfZW5kKGxpbmVz
LCAwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBjcHBfc3R5bGUuZmluZF9uZXh0X211
bHRpX2xpbmVfY29tbWVudF9lbmQobGluZXMsIDApKQogCiAgICAgZGVmIHRlc3RfcmVtb3ZlX211
bHRpX2xpbmVfY29tbWVudHNfZnJvbV9yYW5nZShzZWxmKToKICAgICAgICAgbGluZXMgPSBbJ2En
LCAnICAvKiBjb21tZW50ICcsICcgKiBzdGlsbCBjb21tZW50JywgJyBjb21tZW50ICovICAgJywg
J2InXQogICAgICAgICBjcHBfc3R5bGUucmVtb3ZlX211bHRpX2xpbmVfY29tbWVudHNfZnJvbV9y
YW5nZShsaW5lcywgMSwgNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydhJywgJy8vIGR1
bW15JywgJy8vIGR1bW15JywgJy8vIGR1bW15JywgJ2InXSwgbGluZXMpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydhJywgJy8vIGR1bW15JywgJy8vIGR1bW15JywgJy8vIGR1bW15JywgJ2In
XSwgbGluZXMpCiAKICAgICBkZWYgdGVzdF9wb3NpdGlvbihzZWxmKToKICAgICAgICAgcG9zaXRp
b24gPSBjcHBfc3R5bGUuUG9zaXRpb24oMywgNCkKICAgICAgICAgc2VsZi5hc3NlcnRfcG9zaXRp
b25zX2VxdWFsKHBvc2l0aW9uLCAoMywgNCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBv
c2l0aW9uLnJvdywgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3NpdGlvbi5yb3csIDMp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3NpdGlvbiA+IGNwcF9zdHlsZS5Qb3NpdGlvbihw
b3NpdGlvbi5yb3cgLSAxLCBwb3NpdGlvbi5jb2x1bW4gKyAxKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHBvc2l0aW9uID4gY3BwX3N0eWxlLlBvc2l0aW9uKHBvc2l0aW9uLnJvdywgcG9zaXRp
b24uY29sdW1uIC0gMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3NpdGlvbiA8IGNwcF9z
dHlsZS5Qb3NpdGlvbihwb3NpdGlvbi5yb3csIHBvc2l0aW9uLmNvbHVtbiArIDEpKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9zaXRpb24gPCBjcHBfc3R5bGUuUG9zaXRpb24ocG9zaXRpb24u
cm93ICsgMSwgcG9zaXRpb24uY29sdW1uIC0gMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHBvc2l0aW9uLl9fc3RyX18oKSwgJygzLCA0KScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9zaXRpb24uX19zdHJfXygpLCAnKDMsIDQpJykKIAogICAgIGRlZiB0ZXN0X3JmaW5kX2luX2xp
bmVzKHNlbGYpOgogICAgICAgICBub3RfZm91bmRfcG9zaXRpb24gPSBjcHBfc3R5bGUuUG9zaXRp
b24oMTAsIDExKQogICAgICAgICBzdGFydF9wb3NpdGlvbiA9IGNwcF9zdHlsZS5Qb3NpdGlvbigy
LCAyKQogICAgICAgICBsaW5lcyA9IFsnYWInLCAnYWNlJywgJ3Rlc3QnXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhub3RfZm91bmRfcG9zaXRpb24sIGNwcF9zdHlsZS5fcmZpbmRfaW5fbGlu
ZXMoJ3N0JywgbGluZXMsIHN0YXJ0X3Bvc2l0aW9uLCBub3RfZm91bmRfcG9zaXRpb24pKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG5vdF9mb3VuZF9wb3NpdGlvbiwgY3BwX3N0eWxlLl9yZmlu
ZF9pbl9saW5lcygnc3QnLCBsaW5lcywgc3RhcnRfcG9zaXRpb24sIG5vdF9mb3VuZF9wb3NpdGlv
bikpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjcHBfc3R5bGUuUG9zaXRpb24oMSwgMSkgPT0g
Y3BwX3N0eWxlLl9yZmluZF9pbl9saW5lcygnYScsIGxpbmVzLCBzdGFydF9wb3NpdGlvbiwgbm90
X2ZvdW5kX3Bvc2l0aW9uKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0eWxlLlBv
c2l0aW9uKDIsIDIpLCBjcHBfc3R5bGUuX3JmaW5kX2luX2xpbmVzKCcodGV8YSknLCBsaW5lcywg
c3RhcnRfcG9zaXRpb24sIG5vdF9mb3VuZF9wb3NpdGlvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY3BwX3N0eWxlLlBvc2l0aW9uKDIsIDIpLCBjcHBfc3R5bGUuX3JmaW5kX2luX2xpbmVz
KCcodGV8YSknLCBsaW5lcywgc3RhcnRfcG9zaXRpb24sIG5vdF9mb3VuZF9wb3NpdGlvbikpCiAK
ICAgICBkZWYgdGVzdF9jbG9zZV9leHByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhjcHBfc3R5bGUuUG9zaXRpb24oMSwgLTEpLCBjcHBfc3R5bGUuY2xvc2VfZXhwcmVz
c2lvbihbJykoJ10sIGNwcF9zdHlsZS5Qb3NpdGlvbigwLCAxKSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNwcF9zdHlsZS5Qb3NpdGlvbigxLCAtMSksIGNwcF9zdHlsZS5jbG9zZV9leHBy
ZXNzaW9uKFsnKSAoKSddLCBjcHBfc3R5bGUuUG9zaXRpb24oMCwgMSkpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhjcHBfc3R5bGUuUG9zaXRpb24oMCwgNCksIGNwcF9zdHlsZS5jbG9zZV9l
eHByZXNzaW9uKFsnKVspXSddLCBjcHBfc3R5bGUuUG9zaXRpb24oMCwgMSkpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuUG9zaXRpb24oMCwgNSksIGNwcF9zdHlsZS5jbG9z
ZV9leHByZXNzaW9uKFsnfXt9e30nXSwgY3BwX3N0eWxlLlBvc2l0aW9uKDAsIDMpKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoY3BwX3N0eWxlLlBvc2l0aW9uKDEsIDEpLCBjcHBfc3R5bGUu
Y2xvc2VfZXhwcmVzc2lvbihbJ317fXsnLCAnfSddLCBjcHBfc3R5bGUuUG9zaXRpb24oMCwgMykp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjcHBfc3R5bGUuUG9zaXRpb24oMiwgLTEpLCBj
cHBfc3R5bGUuY2xvc2VfZXhwcmVzc2lvbihbJ11bXVsnLCAnICddLCBjcHBfc3R5bGUuUG9zaXRp
b24oMCwgMykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5Qb3NpdGlvbigx
LCAtMSksIGNwcF9zdHlsZS5jbG9zZV9leHByZXNzaW9uKFsnKSgnXSwgY3BwX3N0eWxlLlBvc2l0
aW9uKDAsIDEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuUG9zaXRpb24o
MSwgLTEpLCBjcHBfc3R5bGUuY2xvc2VfZXhwcmVzc2lvbihbJykgKCknXSwgY3BwX3N0eWxlLlBv
c2l0aW9uKDAsIDEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBfc3R5bGUuUG9zaXRp
b24oMCwgNCksIGNwcF9zdHlsZS5jbG9zZV9leHByZXNzaW9uKFsnKVspXSddLCBjcHBfc3R5bGUu
UG9zaXRpb24oMCwgMSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5Qb3Np
dGlvbigwLCA1KSwgY3BwX3N0eWxlLmNsb3NlX2V4cHJlc3Npb24oWyd9e317fSddLCBjcHBfc3R5
bGUuUG9zaXRpb24oMCwgMykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcF9zdHlsZS5Q
b3NpdGlvbigxLCAxKSwgY3BwX3N0eWxlLmNsb3NlX2V4cHJlc3Npb24oWyd9e317JywgJ30nXSwg
Y3BwX3N0eWxlLlBvc2l0aW9uKDAsIDMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBf
c3R5bGUuUG9zaXRpb24oMiwgLTEpLCBjcHBfc3R5bGUuY2xvc2VfZXhwcmVzc2lvbihbJ11bXVsn
LCAnICddLCBjcHBfc3R5bGUuUG9zaXRpb24oMCwgMykpKQogCiAgICAgZGVmIHRlc3Rfc3BhY2Vz
X2F0X2VuZF9vZl9saW5lKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KApAQCAtODY0
LDEwICs4NjQsMTAgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAg
ICAgZGVmIHRlc3RfaW5jbHVkZV93aGF0X3lvdV91c2Vfbm9faW1wbGVtZW50YXRpb25fZmlsZXMo
c2VsZik6CiAgICAgICAgIGNvZGUgPSAnc3RkOjp2ZWN0b3I8aW50PiBmb287JwotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygnQWRkICNpbmNsdWRlIDx2ZWN0b3I+IGZvciB2ZWN0b3I8PicKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQWRkICNpbmNsdWRlIDx2ZWN0b3I+IGZvciB2ZWN0b3I8
PicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2luY2x1ZGVfd2hhdF95b3Vf
dXNlXSBbNF0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1faW5jbHVk
ZV93aGF0X3lvdV91c2UoY29kZSwgJ2Zvby5oJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KCcnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnBlcmZvcm1faW5jbHVkZV93aGF0X3lvdV91c2UoY29kZSwgJ2Zvby5jcHAnKSkK
IAogICAgIGRlZiB0ZXN0X2luY2x1ZGVfd2hhdF95b3VfdXNlKHNlbGYpOgpAQCAtMTAwMyw3ICsx
MDAzLDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAg
ICAgJyNpbmNsdWRlICJibGFoL2EuaCJcbicsCiAgICAgICAgICAgICBmaWxlbmFtZT0nYmxhaC9h
LmNwcCcsCiAgICAgICAgICAgICBpbz1Nb2NrSW8obW9ja19oZWFkZXJfY29udGVudHMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhtZXNzYWdlLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChtZXNzYWdlLCAnJykKIAogICAgICAgICBtb2NrX2hlYWRlcl9jb250ZW50cyA9IFsnI2lu
Y2x1ZGUgPHNldD4nXQogICAgICAgICBtZXNzYWdlID0gc2VsZi5wZXJmb3JtX2luY2x1ZGVfd2hh
dF95b3VfdXNlKApAQCAtMTAxMyw3ICsxMDEzLDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgc3RkOjpzZXQ8aW50PiBmb287JycnLAogICAg
ICAgICAgICAgZmlsZW5hbWU9J2JsYWgvYS5jcHAnLAogICAgICAgICAgICAgaW89TW9ja0lvKG1v
Y2tfaGVhZGVyX2NvbnRlbnRzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWVzc2FnZSwg
JycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWVzc2FnZSwgJycpCiAKICAgICAgICAgIyBJ
ZiB0aGVyZSdzIGp1c3QgYSAuY3BwIGFuZCB0aGUgaGVhZGVyIGNhbid0IGJlIGZvdW5kIHRoZW4g
aXQncyBvay4KICAgICAgICAgbWVzc2FnZSA9IHNlbGYucGVyZm9ybV9pbmNsdWRlX3doYXRfeW91
X3VzZSgKQEAgLTEwMjIsNyArMTAyMiw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKIAogICAgICAgICAgICAgICAgc3RkOjpzZXQ8aW50PiBmb287JycnLAogICAgICAg
ICAgICAgZmlsZW5hbWU9J2JsYWgvYS5jcHAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyht
ZXNzYWdlLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtZXNzYWdlLCAnJykKIAogICAg
ICAgICAjIE1ha2Ugc3VyZSB3ZSBmaW5kIHRoZSBoZWFkZXJzIHdpdGggcmVsYXRpdmUgcGF0aHMu
CiAgICAgICAgIG1vY2tfaGVhZGVyX2NvbnRlbnRzID0gWycnXQpAQCAtMTAzMyw0MCArMTAzMyw0
MCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAg
ICBzdGQ6OnNldDxpbnQ+IGZvbzsnJycgJSAob3MucGF0aC5iYXNlbmFtZShvcy5nZXRjd2QoKSks
IG9zLnBhdGguc2VwKSwKICAgICAgICAgICAgIGZpbGVuYW1lPSdhLmNwcCcsCiAgICAgICAgICAg
ICBpbz1Nb2NrSW8obW9ja19oZWFkZXJfY29udGVudHMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhtZXNzYWdlLCAnQWRkICNpbmNsdWRlIDxzZXQ+IGZvciBzZXQ8PiAgJworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG1lc3NhZ2UsICdBZGQgI2luY2x1ZGUgPHNldD4gZm9yIHNldDw+ICAn
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbYnVpbGQvaW5jbHVkZV93aGF0
X3lvdV91c2VdIFs0XScpCiAKICAgICBkZWYgdGVzdF9maWxlc19iZWxvbmdfdG9fc2FtZV9tb2R1
bGUoc2VsZik6CiAgICAgICAgIGYgPSBjcHBfc3R5bGUuZmlsZXNfYmVsb25nX3RvX3NhbWVfbW9k
dWxlCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKChUcnVlLCAnJyksIGYoJ2EuY3BwJywgJ2Eu
aCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoVHJ1ZSwgJycpLCBmKCdiYXNlL2dvb2ds
ZS5jcHAnLCAnYmFzZS9nb29nbGUuaCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoVHJ1
ZSwgJycpLCBmKCdiYXNlL2dvb2dsZV90ZXN0LmNwcCcsICdiYXNlL2dvb2dsZS5oJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKChUcnVlLCAnJyksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoKFRydWUsICcnKSwgZignYS5jcHAnLCAnYS5oJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoKFRydWUsICcnKSwgZignYmFzZS9nb29nbGUuY3BwJywgJ2Jhc2UvZ29vZ2xlLmgnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoVHJ1ZSwgJycpLCBmKCdiYXNlL2dvb2dsZV90ZXN0LmNw
cCcsICdiYXNlL2dvb2dsZS5oJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKFRydWUsICcn
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZignYmFzZS9nb29nbGVfdW5pdHRlc3QuY3Bw
JywgJ2Jhc2UvZ29vZ2xlLmgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKFRydWUsICcn
KSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoVHJ1ZSwgJycpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBmKCdiYXNlL2ludGVybmFsL2dvb2dsZV91bml0dGVzdC5jcHAnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdiYXNlL3B1YmxpYy9nb29nbGUuaCcpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygoVHJ1ZSwgJ3h4eC95eXkvJyksCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoKFRydWUsICd4eHgveXl5LycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBmKCd4
eHgveXl5L2Jhc2UvaW50ZXJuYWwvZ29vZ2xlX3VuaXR0ZXN0LmNwcCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2Jhc2UvcHVibGljL2dvb2dsZS5oJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKChUcnVlLCAneHh4L3l5eS8nKSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
VHJ1ZSwgJ3h4eC95eXkvJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGYoJ3h4eC95eXkv
YmFzZS9nb29nbGVfdW5pdHRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
YmFzZS9wdWJsaWMvZ29vZ2xlLmgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKFRydWUs
ICcnKSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoVHJ1ZSwgJycpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBmKCdiYXNlL2dvb2dsZV91bml0dGVzdC5jcHAnLCAnYmFzZS9nb29nbGUt
aW5sLmgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKFRydWUsICcvaG9tZS9idWlsZC9n
b29nbGUzLycpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChUcnVlLCAnL2hvbWUvYnVpbGQv
Z29vZ2xlMy8nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZignL2hvbWUvYnVpbGQvZ29v
Z2xlMy9iYXNlL2dvb2dsZS5jcHAnLCAnYmFzZS9nb29nbGUuaCcpKQogCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKChGYWxzZSwgJycpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChGYWxz
ZSwgJycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBmKCcvaG9tZS9idWlsZC9nb29nbGUz
L2Jhc2UvZ29vZ2xlLmNwcCcsICdiYXN1L2dvb2dsZS5oJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKChGYWxzZSwgJycpLCBmKCdhLmNwcCcsICdiLmgnKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgoRmFsc2UsICcnKSwgZignYS5jcHAnLCAnYi5oJykpCiAKICAgICBkZWYgdGVzdF9j
bGVhbnNlX2xpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdpbnQgZm9vID0g
MDsgICcsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ludCBmb28gPSAwOyAgJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3BwX3N0eWxlLmNsZWFuc2VfY29tbWVudHMoJ2ludCBmb28g
PSAwOyAgLy8gZGFuZ2VyIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnaW50IG8gPSAw
OycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ludCBvID0gMDsnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcHBfc3R5bGUuY2xlYW5zZV9jb21tZW50cygnaW50IC8qIGZvbyAqLyBv
ID0gMDsnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ2ZvbyhpbnQgYSwgaW50IGIpOycs
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbyhpbnQgYSwgaW50IGIpOycsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNwcF9zdHlsZS5jbGVhbnNlX2NvbW1lbnRzKCdmb28oaW50IGEg
LyogYWJjICovLCBpbnQgYik7JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2YoYSwgYik7
JywKICAgICAgICAgICAgICAgICAgICAgICAgICBjcHBfc3R5bGUuY2xlYW5zZV9jb21tZW50cygn
ZihhLCAvKiBuYW1lICovIGIpOycpKQpAQCAtMTExMywxMiArMTExMywxMiBAQCBjbGFzcyBDcHBT
dHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAgICAgICAgZmlsZV9wYXRoID0gJ215ZGly
L2Zvby5jcHAnCiAKLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2Vs
Zi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxm
LmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
Y3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2NvbnN0IGNoYXIqIHN0ciA9
ICJUaGlzIGlzIGFcXCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgbXVsdGls
aW5lIHN0cmluZy4iOyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCiAgICAgICAgICAgICAyLCAgIyBPbmUgcGVyIGxpbmUuCiAgICAgICAgICAgICBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChtdWx0aWxpbmVfc3RyaW5nX2Vycm9yX21l
c3NhZ2UpKQogCkBAIC0xOTAyLDExICsxOTAyLDExIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBT
dHlsZVRlc3RCYXNlKToKIAogICAgIGRlZiB0ZXN0X25ld2xpbmVfYXRfZW9mKHNlbGYpOgogICAg
ICAgICBkZWYgZG9fdGVzdChzZWxmLCBkYXRhLCBpc19taXNzaW5nX2VvZik6Ci0gICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCisgICAgICAg
ICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUpCiAg
ICAgICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsIGRhdGEu
c3BsaXQoJ1xuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvcikKICAgICAgICAgICAgICMgVGhlIHdhcm5pbmcgYXBwZWFycyBvbmx5IG9uY2UuCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCiAgICAgICAgICAgICAgICAgaW50KGlzX21pc3NpbmdfZW9mKSwKICAgICAgICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0cygpLmNvdW50KAogICAgICAgICAgICAgICAgICAgICAn
Q291bGQgbm90IGZpbmQgYSBuZXdsaW5lIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIHRoZSBmaWxl
LicKQEAgLTE5MTcsMTIgKzE5MTcsMTIgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogCiAgICAgZGVmIHRlc3RfaW52YWxpZF91dGY4KHNlbGYpOgogICAgICAgICBkZWYg
ZG9fdGVzdChzZWxmLCByYXdfYnl0ZXMsIGhhc19pbnZhbGlkX3V0ZjgpOgotICAgICAgICAgICAg
ZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVlKQogICAg
ICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlKHJhd19ieXRlcywgJ3V0ZjgnLCAn
cmVwbGFjZScpLnNwbGl0KCdcbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgICAgICAjIFRoZSB3YXJuaW5nIGFwcGVhcnMgb25s
eSBvbmNlLgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAogICAgICAgICAgICAgICAgIGludChoYXNfaW52YWxpZF91dGY4KSwKICAg
ICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0cygpLmNvdW50KAogICAgICAgICAg
ICAgICAgICAgICAnTGluZSBjb250YWlucyBpbnZhbGlkIFVURi04JwpAQCAtMTkzNywxMSArMTkz
NywxMSBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIGRv
X3Rlc3Qoc2VsZiwgJ1x4ZWZceGJmXHhiZFxuJywgVHJ1ZSkKIAogICAgIGRlZiB0ZXN0X2lzX2Js
YW5rX2xpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0XyhjcHBfc3R5bGUuaXNfYmxhbmtf
bGluZSgnJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0XyhjcHBfc3R5bGUuaXNfYmxhbmtfbGluZSgn
ICcpKQotICAgICAgICBzZWxmLmFzc2VydF8oY3BwX3N0eWxlLmlzX2JsYW5rX2xpbmUoJyBcdFxy
XG4nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRfKG5vdCBjcHBfc3R5bGUuaXNfYmxhbmtfbGluZSgn
aW50IGE7JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0Xyhub3QgY3BwX3N0eWxlLmlzX2JsYW5rX2xp
bmUoJ3snKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNwcF9zdHlsZS5pc19ibGFua19saW5l
KCcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNwcF9zdHlsZS5pc19ibGFua19saW5lKCcg
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjcHBfc3R5bGUuaXNfYmxhbmtfbGluZSgnIFx0
XHJcbicpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGNwcF9zdHlsZS5pc19ibGFua19s
aW5lKCdpbnQgYTsnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBjcHBfc3R5bGUuaXNf
YmxhbmtfbGluZSgneycpKQogCiAgICAgZGVmIHRlc3RfYmxhbmtfbGluZXNfY2hlY2soc2VsZik6
CiAgICAgICAgIHNlbGYuYXNzZXJ0X2JsYW5rX2xpbmVzX2NoZWNrKFsne1xuJywgJ1xuJywgJ1xu
JywgJ31cbiddLCAxLCAxKQpAQCAtMTk1MiwxNiArMTk1MiwxNiBAQCBjbGFzcyBDcHBTdHlsZVRl
c3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2JsYW5rX2xpbmVzX2No
ZWNrKFsnXG4nLCAnICBpZiAoZm9vKSB7IHJldHVybiAwOyB9XG4nLCAnXG4nXSwgMCwgMCkKIAog
ICAgIGRlZiB0ZXN0X2FsbG93X2JsYW5rX2xpbmVfYmVmb3JlX2Nsb3NpbmdfbmFtZXNwYWNlKHNl
bGYpOgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2Vy
dF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0
VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnZm9vLmNwcCcsICdjcHAnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnbmFtZXNwYWNlIHsnLCAnJywgJ30gIC8v
IG5hbWVzcGFjZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxl
Y3RvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dHMoKS5jb3VudCgKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBlcnJvcl9jb2xsZWN0b3Iu
cmVzdWx0cygpLmNvdW50KAogICAgICAgICAgICAgJ0JsYW5rIGxpbmUgYXQgdGhlIGVuZCBvZiBh
IGNvZGUgYmxvY2suICBJcyB0aGlzIG5lZWRlZD8nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFj
ZS9ibGFua19saW5lXSBbM10nKSkKIAogICAgIGRlZiB0ZXN0X2FsbG93X2JsYW5rX2xpbmVfYmVm
b3JlX2lmX2Vsc2VfY2hhaW4oc2VsZik6Ci0gICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9y
Q29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JD
b2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVlKQogICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRh
KCdmb28uY3BwJywgJ2NwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAo
aG9nZSkgeycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLCAgIyBObyB3YXJu
aW5nCkBAIC0xOTczLDEyICsxOTczLDEyIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsICAjIFdhcm5pbmcg
b24gdGhpcyBsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9J10sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygxLCBlcnJvcl9jb2xsZWN0b3IucmVzdWx0cygpLmNvdW50KAorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCkuY291bnQoCiAg
ICAgICAgICAgICAnQmxhbmsgbGluZSBhdCB0aGUgZW5kIG9mIGEgY29kZSBibG9jay4gIElzIHRo
aXMgbmVlZGVkPycKICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL2JsYW5rX2xpbmVdIFszXScp
KQogCiAgICAgZGVmIHRlc3RfZWxzZV9vbl9zYW1lX2xpbmVfYXNfY2xvc2luZ19icmFjZXMoc2Vs
Zik6Ci0gICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0
XykKKyAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRU
cnVlKQogICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdmb28uY3BwJywgJ2NwcCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydpZiAoaG9nZSkgeycsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcnLApAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgY2xhc3MgQ3Bw
U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30nXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKDEsIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRzKCkuY291bnQoCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgZXJyb3JfY29sbGVjdG9yLnJlc3VsdHMoKS5jb3VudCgKICAgICAg
ICAgICAgICdBbiBlbHNlIHNob3VsZCBhcHBlYXIgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgcHJl
Y2VkaW5nIH0nCiAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9uZXdsaW5lXSBbNF0nKSkKIApA
QCAtMjE0NCw3ICsyMTQ0LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgICAgICAjIHNpZGUgb2YgdGhpbmdzLCBzbyBqdXN0IHBhcnNlIG91dCB0aGUgc3VnZ2Vz
dGVkIGhlYWRlciBndWFyZC4gVGhpcwogICAgICAgICAjIGRvZXNuJ3QgYWxsb3cgdXMgdG8gdGVz
dCB0aGUgc3VnZ2VzdGVkIGhlYWRlciBndWFyZCwgYnV0IGl0IGRvZXMgbGV0IHVzCiAgICAgICAg
ICMgdGVzdCBhbGwgdGhlIG90aGVyIGhlYWRlciB0ZXN0cy4KLSAgICAgICAgZXJyb3JfY29sbGVj
dG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9jb2xsZWN0
b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYucHJvY2Vz
c19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsIFtdLCBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAg
IGV4cGVjdGVkX2d1YXJkID0gJycKICAgICAgICAgbWF0Y2hlciA9IHJlLmNvbXBpbGUoCkBAIC0y
MTU5LDEwICsyMTU5LDEwIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChleHBlY3RlZF9ndWFyZCwgJycpCiAKICAgICAg
ICAgIyBXcm9uZyBndWFyZAotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rv
cihzZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9y
KHNlbGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3Bh
dGgsICdoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgRk9PX0gn
LCAnI2RlZmluZSBGT09fSCddLCBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgMSwKICAgICAg
ICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAogICAgICAgICAgICAg
ICAgICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVz
JwpAQCAtMjE3MCwxMCArMjE3MCwxMCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0
QmFzZSk6CiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKIAogICAg
ICAgICAjIE5vIGRlZmluZQotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rv
cihzZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9y
KHNlbGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3Bh
dGgsICdoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUg
ZXhwZWN0ZWRfZ3VhcmRdLCBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgMSwKICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAogICAgICAgICAgICAgICAg
ICdObyAjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBp
czogJXMnCkBAIC0yMTgxLDEyICsyMTgxLDEyIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHls
ZVRlc3RCYXNlKToKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpKQog
CiAgICAgICAgICMgTWlzbWF0Y2hlZCBkZWZpbmUKLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0g
RXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBF
cnJvckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxl
X2RhdGEoZmlsZV9wYXRoLCAnaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycj
aWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnI2RlZmluZSBGT09fSCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yX2NvbGxlY3RvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICAxLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9y
LnJlc3VsdF9saXN0KCkuY291bnQoCiAgICAgICAgICAgICAgICAgJ05vICNpZm5kZWYgaGVhZGVy
IGd1YXJkIGZvdW5kLCBzdWdnZXN0ZWQgQ1BQIHZhcmlhYmxlIGlzOiAlcycKQEAgLTIxOTQsNyAr
MjE5NCw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpKQogCiAgICAgICAgICMgTm8gaGVhZGVy
IGd1YXJkIGVycm9ycwotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rvcihz
ZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNl
bGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgs
ICdoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhw
ZWN0ZWRfZ3VhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVz
JyAlIGV4cGVjdGVkX2d1YXJkLApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBjbGFzcyBDcHBTdHls
ZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4
cGVjdGVkIGVycm9yOiAlcycgJSBsaW5lKQogCiAgICAgICAgICMgQ29tcGxldGVseSBpbmNvcnJl
Y3QgaGVhZGVyIGd1YXJkCi0gICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9y
KHNlbGYuYXNzZXJ0XykKKyAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Io
c2VsZi5hc3NlcnRUcnVlKQogICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0
aCwgJ2gnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiBGT08nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSBGT08nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmICAvLyBGT08nXSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgMSwKICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAogICAgICAgICAgICAgICAg
ICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVzJwpA
QCAtMjIxOSw3ICsyMjE5LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCiAKICAgICAgICAg
IyBTcGVjaWFsIGNhc2UgZm9yIGZseW1ha2UKLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJy
b3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJv
ckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2Rh
dGEoJ215ZGlyL0Zvb19mbHltYWtlLmgnLCAnaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnI2RlZmluZSAlcycgJSBleHBlY3RlZF9ndWFyZCwKQEAgLTIyMjksOSAr
MjIyOSw5IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAg
ICAgIGlmIGxpbmUuZmluZCgnYnVpbGQvaGVhZGVyX2d1YXJkJykgIT0gLTE6CiAgICAgICAgICAg
ICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIGVycm9yOiAlcycgJSBsaW5lKQogCi0gICAgICAg
IGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAg
ZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVlKQogICAgICAg
ICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdteWRpci9Gb29fZmx5bWFrZS5oJywgJ2gnLCBbXSwg
ZXJyb3JfY29sbGVjdG9yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0
b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKICAgICAgICAgICAgICAgICAnTm8gI2lmbmRlZiBoZWFk
ZXIgZ3VhcmQgZm91bmQsIHN1Z2dlc3RlZCBDUFAgdmFyaWFibGUgaXM6ICVzJwpAQCAtMjI0Mywy
NyArMjI0MywyNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAKICAg
ICAgICAgIyBBbGxvdyB0aGUgV1RGXyBwcmVmaXggZm9yIGZpbGVzIGluIHRoYXQgZGlyZWN0b3J5
LgogICAgICAgICBoZWFkZXJfZ3VhcmRfZmlsdGVyID0gRmlsdGVyQ29uZmlndXJhdGlvbigoJy0n
LCAnK2J1aWxkL2hlYWRlcl9ndWFyZCcpKQotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJv
ckNvbGxlY3RvcihzZWxmLmFzc2VydF8sIGhlYWRlcl9ndWFyZF9maWx0ZXIpCisgICAgICAgIGVy
cm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0VHJ1ZSwgaGVhZGVyX2d1
YXJkX2ZpbHRlcikKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YSgnU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UZXN0TmFtZS5oJywgJ2gnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnI2lmbmRlZiBXVEZfVGVzdE5hbWVfaCcsICcjZGVmaW5lIFdURl9UZXN0TmFtZV9o
J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBsZW4oZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0
KCkpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihlcnJvcl9jb2xsZWN0b3IucmVz
dWx0X2xpc3QoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5y
ZXN1bHRfbGlzdCgpKQogCiAgICAgICAgICMgQWxzbyBhbGxvdyB0aGUgbm9uIFdURl8gcHJlZml4
IGZvciBmaWxlcyBpbiB0aGF0IGRpcmVjdG9yeS4KLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0g
RXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfLCBoZWFkZXJfZ3VhcmRfZmlsdGVyKQorICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUsIGhlYWRl
cl9ndWFyZF9maWx0ZXIpCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoJ1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvVGVzdE5hbWUuaCcsICdoJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbJyNpZm5kZWYgVGVzdE5hbWVfaCcsICcjZGVmaW5lIFRlc3ROYW1lX2gnXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDAsIGxlbihlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSks
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGVycm9yX2NvbGxlY3Rvci5yZXN1bHRf
bGlzdCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dF9saXN0KCkpCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCB3ZSBzdWdnZXN0IHRoZSBXVEYgcHJl
Zml4IHZlcnNpb24uCi0gICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNl
bGYuYXNzZXJ0XywgaGVhZGVyX2d1YXJkX2ZpbHRlcikKKyAgICAgICAgZXJyb3JfY29sbGVjdG9y
ID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRUcnVlLCBoZWFkZXJfZ3VhcmRfZmlsdGVyKQog
ICAgICAgICBzZWxmLnByb2Nlc3NfZmlsZV9kYXRhKCdTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1Rlc3ROYW1lLmgnLCAnaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZu
ZGVmIEJBRF9UZXN0TmFtZV9oJywgJyNkZWZpbmUgQkFEX1Rlc3ROYW1lX2gnXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgMSwKICAg
ICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAogICAgICAgICAg
ICAgICAgICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6
IFdURl9UZXN0TmFtZV9oJwpAQCAtMjQwMywyOSArMjQwMywyOSBAQCBjbGFzcyBDcHBTdHlsZVRl
c3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIGZpbGVfcGF0aCA9ICdteWRpci9nb29nbGVj
bGllbnQvZm9vLmNwcCcKIAogICAgICAgICAjIFRoZXJlIHNob3VsZCBiZSBhIGNvcHlyaWdodCBt
ZXNzYWdlIGluIHRoZSBmaXJzdCAxMCBsaW5lcwotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBF
cnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVy
cm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVf
ZGF0YShmaWxlX3BhdGgsICdjcHAnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgIDEs
CiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudChsZWdhbF9j
b3B5cmlnaHRfbWVzc2FnZSkpCiAKLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xs
ZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoCiAg
ICAgICAgICAgICBmaWxlX3BhdGgsICdjcHAnLAogICAgICAgICAgICAgWycnIGZvciB1bnVzZWRf
aSBpbiByYW5nZSgxMCldICsgW2NvcHlyaWdodF9saW5lXSwKICAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCiAgICAgICAgICAgICAxLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dF9saXN0KCkuY291bnQobGVnYWxfY29weXJpZ2h0X21lc3NhZ2UpKQogCiAgICAgICAgICMgVGVz
dCB0aGF0IHdhcm5pbmcgaXNuJ3QgaXNzdWVkIGlmIENvcHlyaWdodCBsaW5lIGFwcGVhcnMgZWFy
bHkgZW5vdWdoLgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxm
LmFzc2VydF8pCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYu
YXNzZXJ0VHJ1ZSkKICAgICAgICAgc2VsZi5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdj
cHAnLCBbY29weXJpZ2h0X2xpbmVdLCBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIGZvciBtZXNz
YWdlIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAgICAgICAgICAgaWYgbWVz
c2FnZS5maW5kKCdsZWdhbC9jb3B5cmlnaHQnKSAhPSAtMToKICAgICAgICAgICAgICAgICBzZWxm
LmZhaWwoJ1VuZXhwZWN0ZWQgZXJyb3I6ICVzJyAlIG1lc3NhZ2UpCiAKLSAgICAgICAgZXJyb3Jf
Y29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBlcnJvcl9j
b2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydFRydWUpCiAgICAgICAgIHNlbGYu
cHJvY2Vzc19maWxlX2RhdGEoCiAgICAgICAgICAgICBmaWxlX3BhdGgsICdjcHAnLAogICAgICAg
ICAgICAgWycnIGZvciB1bnVzZWRfaSBpbiByYW5nZSg5KV0gKyBbY29weXJpZ2h0X2xpbmVdLApA
QCAtMjQ1NywxNiArMjQ1NywxNiBAQCBjbGFzcyBDbGVhbnNlZExpbmVzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICdMaW5lIDQgImZvbyInXQogCiAgICAgICAgIGNs
ZWFuX2xpbmVzID0gY3BwX3N0eWxlLkNsZWFuc2VkTGluZXMobGluZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGxpbmVzLCBjbGVhbl9saW5lcy5yYXdfbGluZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKDQsIGNsZWFuX2xpbmVzLm51bV9saW5lcygpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxpbmVzLCBjbGVhbl9saW5lcy5yYXdfbGluZXMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoNCwgY2xlYW5fbGluZXMubnVtX2xpbmVzKCkpCiAKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoWydMaW5lIDEnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnTGluZSAxJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMaW5lIDInLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ0xpbmUgMyAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmUgNCAi
Zm9vIiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhbl9saW5lcy5saW5lcykKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ0xpbmUgMScsCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydMaW5lIDEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmUgMicsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnTGluZSAzICcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnTGluZSA0ICIiJ10sCkBAIC0yNDc0LDMzICsyNDc0LDMzIEBAIGNsYXNzIENsZWFu
c2VkTGluZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2luaXRfZW1w
dHkoc2VsZik6CiAgICAgICAgIGNsZWFuX2xpbmVzID0gY3BwX3N0eWxlLkNsZWFuc2VkTGluZXMo
W10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBjbGVhbl9saW5lcy5yYXdfbGluZXMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIGNsZWFuX2xpbmVzLm51bV9saW5lcygpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBjbGVhbl9saW5lcy5yYXdfbGluZXMpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgY2xlYW5fbGluZXMubnVtX2xpbmVzKCkpCiAKICAgICBk
ZWYgdGVzdF9jb2xsYXBzZV9zdHJpbmdzKHNlbGYpOgogICAgICAgICBjb2xsYXBzZSA9IGNwcF9z
dHlsZS5DbGVhbnNlZExpbmVzLmNvbGxhcHNlX3N0cmluZ3MKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoJyIiJywgY29sbGFwc2UoJyIiJykpICAgICAgICAgICAgICMgIiIgICAgIChlbXB0eSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJyIiIicsIGNvbGxhcHNlKCciIiInKSkgICAgICAg
ICAgICMgIiIiICAgIChiYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCciIicsIGNvbGxh
cHNlKCcieHl6IicpKSAgICAgICAgICAjICJ4eXoiICAoc3RyaW5nKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygnIiInLCBjb2xsYXBzZSgnIlxcXCIiJykpICAgICAgICAgIyAiXCIiICAgKHN0
cmluZykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJyIiJywgY29sbGFwc2UoJyJcJyInKSkg
ICAgICAgICAgICMgIiciICAgIChzdHJpbmcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCci
XCInLCBjb2xsYXBzZSgnIlwiJykpICAgICAgICAgICAjICJcIiAgICAoYmFkKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygnIiInLCBjb2xsYXBzZSgnIlxcXFwiJykpICAgICAgICAgIyAiXFwi
ICAgKHN0cmluZykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJyInLCBjb2xsYXBzZSgnIlxc
XFxcXCInKSkgICAgICAgICMgIlxcXCIgIChiYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KCciIicsIGNvbGxhcHNlKCciXFxcXFxcXFwiJykpICAgICAjICJcXFxcIiAoc3RyaW5nKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdcJ1wnJywgY29sbGFwc2UoJ1wnXCcnKSkgICAgICAg
ICAjICcnICAgICAoZW1wdHkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdcJ1wnJywgY29s
bGFwc2UoJ1wnYVwnJykpICAgICAgICAjICdhJyAgICAoY2hhcikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoJ1wnXCcnLCBjb2xsYXBzZSgnXCdcXFwnXCcnKSkgICAgICMgJ1wnJyAgIChjaGFy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnXCcnLCBjb2xsYXBzZSgnXCdcXFwnJykpICAg
ICAgICAgIyAnXCcgICAgKGJhZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsIGNvbGxh
cHNlKCdcXDAxMicpKSAgICAgICAgICAgICMgJ1wwMTInIChjaGFyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygnJywgY29sbGFwc2UoJ1xceGZGMCcpKSAgICAgICAgICAgIyAnXHhmRjAnIChj
aGFyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnJywgY29sbGFwc2UoJ1xcbicpKSAgICAg
ICAgICAgICAgIyAnXG4nIChjaGFyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnXCMnLCBj
b2xsYXBzZSgnXFwjJykpICAgICAgICAgICAgIyAnXCMnIChiYWQpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoJ1N0cmluZ1JlcGxhY2UoYm9keSwgIiIsICIiKTsnLAorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCciIicsIGNvbGxhcHNlKCciIicpKSAgICAgICAgICAgICAjICIiICAgICAo
ZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyIiIicsIGNvbGxhcHNlKCciIiInKSkg
ICAgICAgICAgICMgIiIiICAgIChiYWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyIiJywg
Y29sbGFwc2UoJyJ4eXoiJykpICAgICAgICAgICMgInh5eiIgIChzdHJpbmcpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJyIiJywgY29sbGFwc2UoJyJcXFwiIicpKSAgICAgICAgICMgIlwiIiAg
IChzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyIiJywgY29sbGFwc2UoJyJcJyIn
KSkgICAgICAgICAgICMgIiciICAgIChzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JyJcIicsIGNvbGxhcHNlKCciXCInKSkgICAgICAgICAgICMgIlwiICAgIChiYWQpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJyIiJywgY29sbGFwc2UoJyJcXFxcIicpKSAgICAgICAgICMgIlxc
IiAgIChzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyInLCBjb2xsYXBzZSgnIlxc
XFxcXCInKSkgICAgICAgICMgIlxcXCIgIChiYWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JyIiJywgY29sbGFwc2UoJyJcXFxcXFxcXCInKSkgICAgICMgIlxcXFwiIChzdHJpbmcpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXCdcJycsIGNvbGxhcHNlKCdcJ1wnJykpICAgICAgICAg
IyAnJyAgICAgKGVtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcJ1wnJywgY29sbGFw
c2UoJ1wnYVwnJykpICAgICAgICAjICdhJyAgICAoY2hhcikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXCdcJycsIGNvbGxhcHNlKCdcJ1xcXCdcJycpKSAgICAgIyAnXCcnICAgKGNoYXIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1wnJywgY29sbGFwc2UoJ1wnXFxcJycpKSAgICAgICAg
ICMgJ1wnICAgIChiYWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGNvbGxhcHNlKCdc
XDAxMicpKSAgICAgICAgICAgICMgJ1wwMTInIChjaGFyKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcnLCBjb2xsYXBzZSgnXFx4ZkYwJykpICAgICAgICAgICAjICdceGZGMCcgKGNoYXIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGNvbGxhcHNlKCdcXG4nKSkgICAgICAgICAgICAg
ICMgJ1xuJyAoY2hhcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXCMnLCBjb2xsYXBzZSgn
XFwjJykpICAgICAgICAgICAgIyAnXCMnIChiYWQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnU3RyaW5nUmVwbGFjZShib2R5LCAiIiwgIiIpOycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbGxhcHNlKCdTdHJpbmdSZXBsYWNlKGJvZHksICJcXFxcIiwgIlxcXFxcXFxcIik7Jykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdcJ1wnICIiJywKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXCdcJyAiIicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlKCdc
JyJcJyAiZm9vIicpKQogCiAKQEAgLTI4OTAsNyArMjg5MCw3IEBAIGNsYXNzIENoZWNrRm9yRnVu
Y3Rpb25MZW5ndGhzVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICBjb2RlOiBDKysg
c291cmNlIGNvZGUgZXhwZWN0ZWQgdG8gZ2VuZXJhdGUgYSB3YXJuaW5nIG1lc3NhZ2UuCiAgICAg
ICAgICAgZXhwZWN0ZWRfbWVzc2FnZTogTWVzc2FnZSBleHBlY3RlZCB0byBiZSBnZW5lcmF0ZWQg
YnkgdGhlIEMrKyBjb2RlLgogICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
ZXhwZWN0ZWRfbWVzc2FnZSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9tZXNz
YWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fZnVuY3Rpb25fbGVu
Z3Roc19jaGVjayhjb2RlKSkKIAogICAgIGRlZiB0cmlnZ2VyX2xpbmVzKHNlbGYsIGVycm9yX2xl
dmVsKToKQEAgLTMzNDYsNyArMzM0Niw3IEBAIGNsYXNzIFBhc3NQdHJUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICAgIGNvZGU6IEMrKyBzb3VyY2UgY29kZSBleHBlY3RlZCB0byBnZW5l
cmF0ZSBhIHdhcm5pbmcgbWVzc2FnZS4KICAgICAgICAgICBleHBlY3RlZF9tZXNzYWdlOiBNZXNz
YWdlIGV4cGVjdGVkIHRvIGJlIGdlbmVyYXRlZCBieSB0aGUgQysrIGNvZGUuCiAgICAgICAgICIi
IgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9tZXNzYWdlLAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX21lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYucGVyZm9ybV9wYXNzX3B0cl9jaGVjayhjb2RlKSkKIAogICAgIGRlZiB0ZXN0X3Bh
c3NfcmVmX3B0cl9pbl9mdW5jdGlvbihzZWxmKToKQEAgLTM0NjEsNyArMzQ2MSw3IEBAIGNsYXNz
IExlYWt5UGF0dGVyblRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgY29kZTogQysr
IHNvdXJjZSBjb2RlIGV4cGVjdGVkIHRvIGdlbmVyYXRlIGEgd2FybmluZyBtZXNzYWdlLgogICAg
ICAgICAgIGV4cGVjdGVkX21lc3NhZ2U6IE1lc3NhZ2UgZXhwZWN0ZWQgdG8gYmUgZ2VuZXJhdGVk
IGJ5IHRoZSBDKysgY29kZS4KICAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGV4cGVjdGVkX21lc3NhZ2UsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbWVz
c2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xlYWt5X3BhdHRl
cm5fY2hlY2soY29kZSkpCiAKICAgICBkZWYgdGVzdF9nZXRfZGMoc2VsZik6CkBAIC00Njg4LDQ1
ICs0Njg4LDQ1IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAg
ICAgICAgcGFyYW1ldGVyX2Vycm9yX3J1bGVzID0gKCctJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcrcmVhZGFiaWxpdHkvcGFyYW1ldGVyX25hbWUnKQogICAgICAgICAjIE5v
IHZhcmlhYmxlIG5hbWUsIHNvIG5vIGVycm9yLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygn
JywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgZnVuYyhpbnQpOycsICd0ZXN0LmNwcCcsIHBhcmFt
ZXRlcl9lcnJvcl9ydWxlcykpCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCBjb3B5aW5nIHRoZSBu
YW1lIG9mIHRoZSBzZXQgZnVuY3Rpb24gY2F1c2VzIHRoZSBlcnJvciAod2l0aCBzb21lIG9kZCBj
YXNpbmcpLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtZWFuaW5nbGVzc192YXJpYWJsZV9u
YW1lX2Vycm9yX21lc3NhZ2UgJSAnaXRlbUNvdW50JywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChtZWFuaW5nbGVzc192YXJpYWJsZV9uYW1lX2Vycm9yX21lc3NhZ2UgJSAnaXRlbUNvdW50JywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgc2V0SXRl
bUNvdW50KHNpemVfdCBpdGVtQ291bnQpOycsICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9lcnJvcl9y
dWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1lYW5pbmdsZXNzX3ZhcmlhYmxlX25h
bWVfZXJyb3JfbWVzc2FnZSAlICdhYmNDb3VudCcsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bWVhbmluZ2xlc3NfdmFyaWFibGVfbmFtZV9lcnJvcl9tZXNzYWdlICUgJ2FiY0NvdW50JywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgc2V0QUJDQ291
bnQoc2l6ZV90IGFiY0NvdW50KTsnLCAndGVzdC5jcHAnLCBwYXJhbWV0ZXJfZXJyb3JfcnVsZXMp
KQogCiAgICAgICAgICMgVmVyaWZ5IHRoYXQgY29weWluZyBhIHR5cGUgbmFtZSB3aWxsIHRyaWdn
ZXIgdGhlIHdhcm5pbmcgKGV2ZW4gaWYgdGhlIHR5cGUgaXMgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIp
LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtZWFuaW5nbGVzc192YXJpYWJsZV9uYW1lX2Vy
cm9yX21lc3NhZ2UgJSAnY29udGV4dCcsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWVhbmlu
Z2xlc3NfdmFyaWFibGVfbmFtZV9lcnJvcl9tZXNzYWdlICUgJ2NvbnRleHQnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBmdW5jdChQYXNzUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQpOycsICd0ZXN0LmNwcCcsIHBhcmFtZXRl
cl9lcnJvcl9ydWxlcykpCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCBhY3JvbnltcyBhcyB2YXJp
YWJsZSBuYW1lcyB0cmlnZ2VyIHRoZSBlcnJvciAoZm9yIGJvdGggc2V0IGZ1bmN0aW9ucyBhbmQg
dHlwZSBuYW1lcykuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1lYW5pbmdsZXNzX3Zhcmlh
YmxlX25hbWVfZXJyb3JfbWVzc2FnZSAlICdlYycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bWVhbmluZ2xlc3NfdmFyaWFibGVfbmFtZV9lcnJvcl9tZXNzYWdlICUgJ2VjJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgc2V0RXhjZXB0aW9uQ29k
ZShpbnQgZWMpOycsICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9lcnJvcl9ydWxlcykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKG1lYW5pbmdsZXNzX3ZhcmlhYmxlX25hbWVfZXJyb3JfbWVzc2Fn
ZSAlICdlYycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWVhbmluZ2xlc3NfdmFyaWFibGVf
bmFtZV9lcnJvcl9tZXNzYWdlICUgJ2VjJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wZXJmb3JtX2xpbnQoJ3ZvaWQgZnVuY3QoRXhjZXB0aW9uQ29kZSBlYyk7JywgJ3Rlc3QuY3Bw
JywgcGFyYW1ldGVyX2Vycm9yX3J1bGVzKSkKIAogICAgICAgICAjICdvYmplY3QnIGFsb25lLCBh
cHBlbmRlZCwgb3IgYXMgcGFydCBvZiBhbiBhY3JvbnltIGlzIG1lYW5pbmdsZXNzLgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhtZWFuaW5nbGVzc192YXJpYWJsZV9uYW1lX2Vycm9yX21lc3Nh
Z2UgJSAnb2JqZWN0JywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtZWFuaW5nbGVzc192YXJp
YWJsZV9uYW1lX2Vycm9yX21lc3NhZ2UgJSAnb2JqZWN0JywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgZnVuY3QoUmVuZGVyVmlldyBvYmplY3QpOycs
ICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9lcnJvcl9ydWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKG1lYW5pbmdsZXNzX3ZhcmlhYmxlX25hbWVfZXJyb3JfbWVzc2FnZSAlICd2aWV3T2Jq
ZWN0JywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtZWFuaW5nbGVzc192YXJpYWJsZV9uYW1l
X2Vycm9yX21lc3NhZ2UgJSAndmlld09iamVjdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucGVyZm9ybV9saW50KCd2b2lkIGZ1bmN0KFJlbmRlclZpZXcgdmlld09iamVjdCk7Jywg
J3Rlc3QuY3BwJywgcGFyYW1ldGVyX2Vycm9yX3J1bGVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobWVhbmluZ2xlc3NfdmFyaWFibGVfbmFtZV9lcnJvcl9tZXNzYWdlICUgJ3J2bycsCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWVhbmluZ2xlc3NfdmFyaWFibGVfbmFtZV9lcnJvcl9t
ZXNzYWdlICUgJ3J2bycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9s
aW50KCd2b2lkIGZ1bmN0KFJlbmRlclZpZXcgcnZvKTsnLCAndGVzdC5jcHAnLCBwYXJhbWV0ZXJf
ZXJyb3JfcnVsZXMpKQogCiAgICAgICAgICMgQ2hlY2sgdGhhdCByLCBnLCBiLCBhbmQgYSBhcmUg
YWxsb3dlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50
KCd2b2lkIHNldFJHQkFWYWx1ZXMoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEpOycsICd0ZXN0
LmNwcCcsIHBhcmFtZXRlcl9lcnJvcl9ydWxlcykpCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCBh
IHNpbXBsZSBzdWJzdHJpbmcgbWF0Y2ggaXNuJ3QgZG9uZSB3aGljaCB3b3VsZCBjYXVzZSBmYWxz
ZSBwb3NpdGl2ZXMuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCcnLAorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1f
bGludCgndm9pZCBzZXROYXRlTGF0ZUNvdW50KHNpemVfdCBlbGF0ZSk7JywgJ3Rlc3QuY3BwJywg
cGFyYW1ldGVyX2Vycm9yX3J1bGVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYucGVyZm9ybV9saW50KCd2b2lkIGZ1bmN0KE5hdGVMYXRlIGVsYXRlKTsnLCAndGVzdC5jcHAn
LCBwYXJhbWV0ZXJfZXJyb3JfcnVsZXMpKQogCiAgICAgICAgICMgRG9uJ3QgaGF2ZSBnZW5lcmF0
ZSB3YXJuaW5ncyBmb3IgZnVuY3Rpb25zIChvbmx5IGRlY2xhcmF0aW9ucykuCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKCcnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBmdW5jdChQYXNzUmVm
UHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQpXG4nCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XG4nCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd9XG4nLCAndGVzdC5jcHAnLCBwYXJhbWV0ZXJfZXJyb3Jf
cnVsZXMpKQpAQCAtNDc0MywzMyArNDc0MywzMyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3Bw
U3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3Rfd2Via2l0X2V4cG9ydF9jaGVjayhzZWxmKToK
ICAgICAgICAgd2Via2l0X2V4cG9ydF9lcnJvcl9ydWxlcyA9ICgnLScsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJytyZWFkYWJpbGl0eS93ZWJraXRfZXhwb3J0JykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoJycsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdXRUJLSVRfRVhQT1JU
IGludCBmb28oKTtcbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdXZWJLaXQvY2hyb21pdW0vcHVibGljL3Rlc3QuaCcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9leHBvcnRfZXJyb3JfcnVsZXMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygnJywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ1dFQktJVF9FWFBP
UlQgaW50IGZvbygpO1xuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ1dlYktpdC9jaHJvbWl1bS90ZXN0cy90ZXN0LmgnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfZXhwb3J0X2Vycm9yX3J1bGVzKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ1dFQktJVF9FWFBPUlQgc2hvdWxkIG9ubHkgYmUgdXNl
ZCBpbiBoZWFkZXIgZmlsZXMuICBbcmVhZGFiaWxpdHkvd2Via2l0X2V4cG9ydF0gWzVdJywKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV0VCS0lUX0VYUE9SVCBzaG91bGQgb25seSBiZSB1c2Vk
IGluIGhlYWRlciBmaWxlcy4gIFtyZWFkYWJpbGl0eS93ZWJraXRfZXhwb3J0XSBbNV0nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgnV0VCS0lUX0VYUE9SVCBp
bnQgZm9vKCk7XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnV2ViS2l0L2Nocm9taXVtL3B1YmxpYy90ZXN0LmNwcCcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9leHBvcnRfZXJyb3JfcnVsZXMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygnV0VCS0lUX0VYUE9SVCBzaG91bGQgb25seSBhcHBlYXIg
aW4gdGhlIGNocm9taXVtIHB1YmxpYyAob3IgdGVzdHMpIGRpcmVjdG9yeS4gIFtyZWFkYWJpbGl0
eS93ZWJraXRfZXhwb3J0XSBbNV0nLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXRUJLSVRf
RVhQT1JUIHNob3VsZCBvbmx5IGFwcGVhciBpbiB0aGUgY2hyb21pdW0gcHVibGljIChvciB0ZXN0
cykgZGlyZWN0b3J5LiAgW3JlYWRhYmlsaXR5L3dlYmtpdF9leHBvcnRdIFs1XScsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdXRUJLSVRfRVhQT1JUIGludCBm
b28oKTtcbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdX
ZWJLaXQvY2hyb21pdW0vc3JjL3Rlc3QuaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdlYmtpdF9leHBvcnRfZXJyb3JfcnVsZXMpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygnV0VCS0lUX0VYUE9SVCBzaG91bGQgbm90IGJlIHVzZWQgb24gYSBmdW5j
dGlvbiB3aXRoIGEgYm9keS4gIFtyZWFkYWJpbGl0eS93ZWJraXRfZXhwb3J0XSBbNV0nLAorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdXRUJLSVRfRVhQT1JUIHNob3VsZCBub3QgYmUgdXNlZCBv
biBhIGZ1bmN0aW9uIHdpdGggYSBib2R5LiAgW3JlYWRhYmlsaXR5L3dlYmtpdF9leHBvcnRdIFs1
XScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdXRUJLSVRf
RVhQT1JUIGludCBmb28oKSB7IH1cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdXZWJLaXQvY2hyb21pdW0vcHVibGljL3Rlc3QuaCcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9leHBvcnRfZXJyb3JfcnVs
ZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnV0VCS0lUX0VYUE9SVCBzaG91bGQgbm90
IGJlIHVzZWQgb24gYSBmdW5jdGlvbiB3aXRoIGEgYm9keS4gIFtyZWFkYWJpbGl0eS93ZWJraXRf
ZXhwb3J0XSBbNV0nLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXRUJLSVRfRVhQT1JUIHNo
b3VsZCBub3QgYmUgdXNlZCBvbiBhIGZ1bmN0aW9uIHdpdGggYSBib2R5LiAgW3JlYWRhYmlsaXR5
L3dlYmtpdF9leHBvcnRdIFs1XScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVy
Zm9ybV9saW50KCdXRUJLSVRfRVhQT1JUIGlubGluZSBpbnQgZm9vKClcbicKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdXZWJLaXQvY2hyb21pdW0vcHVibGljL3Rlc3QuaCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9leHBvcnRf
ZXJyb3JfcnVsZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnV0VCS0lUX0VYUE9SVCBz
aG91bGQgbm90IGJlIHVzZWQgd2l0aCBhIHB1cmUgdmlydHVhbCBmdW5jdGlvbi4gIFtyZWFkYWJp
bGl0eS93ZWJraXRfZXhwb3J0XSBbNV0nLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXRUJL
SVRfRVhQT1JUIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIGEgcHVyZSB2aXJ0dWFsIGZ1bmN0aW9u
LiAgW3JlYWRhYmlsaXR5L3dlYmtpdF9leHBvcnRdIFs1XScsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYucGVyZm9ybV9saW50KCd7fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnV0VCS0lUX0VYUE9SVFxuJwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndmlydHVhbFxuJwpAQCAtNDc3Nyw3ICs0Nzc3LDcg
QEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vKCkgPSAwO1xuJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvdGVzdC5oJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2Via2l0X2V4cG9ydF9lcnJvcl9ydWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCcn
LAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnBlcmZvcm1fbGludCgne31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1dFQktJVF9FWFBPUlRcbicKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3ZpcnR1YWxcbicKQEAgLTQ4MDQsMTAgKzQ4MDQsMTAgQEAg
Y2xhc3MgQ3BwQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2lu
aXQoc2VsZik6CiAgICAgICAgICIiIlRlc3QgX19pbml0X18gY29uc3RydWN0b3IuIiIiCiAgICAg
ICAgIGNoZWNrZXIgPSBzZWxmLl9jaGVja2VyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Y2hlY2tlci5maWxlX2V4dGVuc2lvbiwgImgiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhj
aGVja2VyLmZpbGVfcGF0aCwgImZvbyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNr
ZXIuaGFuZGxlX3N0eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLm1pbl9jb25maWRlbmNlLCAzKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuZmlsZV9leHRlbnNpb24sICJoIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjaGVja2VyLmZpbGVfcGF0aCwgImZvbyIpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2hlY2tlci5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVf
c3R5bGVfZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5taW5fY29uZmlk
ZW5jZSwgMykKIAogICAgIGRlZiB0ZXN0X2VxKHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9fZXFf
XyBlcXVhbGl0eSBmdW5jdGlvbi4iIiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDk3
M2M2NzM4NDliMDgxZWFjOWFlNmFkYThiY2ZhZmUxZjA1ODFiM2EuLmU3ZmJiYjQyYzY4MmUyMjk1
NDk1MzhiYjI0N2Q4ODU0OTM2ODU4MTkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weQpAQCAt
NjcsOCArNjcsOCBAQCBjbGFzcyBKU09OQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiBhc3NlcnRfZXJyb3Ioc2VsZiwgZXhwZWN0ZWRfbGluZV9udW1iZXIsIGV4cGVjdGVk
X2NhdGVnb3J5LCBqc29uX2RhdGEpOgogICAgICAgICBkZWYgaGFuZGxlX3N0eWxlX2Vycm9yKG1v
Y2tfZXJyb3JfaGFuZGxlciwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNz
YWdlKToKICAgICAgICAgICAgIG1vY2tfZXJyb3JfaGFuZGxlci5oYWRfZXJyb3IgPSBUcnVlCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9saW5lX251bWJlciwgbGluZV9u
dW1iZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9jYXRlZ29yeSwg
Y2F0ZWdvcnkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX2xpbmVfbnVt
YmVyLCBsaW5lX251bWJlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRf
Y2F0ZWdvcnksIGNhdGVnb3J5KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhdGVnb3J5
IGluIGpzb25jaGVja2VyLkpTT05DaGVja2VyLmNhdGVnb3JpZXMpCiAKICAgICAgICAgZXJyb3Jf
aGFuZGxlciA9IE1vY2tFcnJvckhhbmRsZXIoaGFuZGxlX3N0eWxlX2Vycm9yKQpAQCAtOTEsNyAr
OTEsNyBAQCBjbGFzcyBKU09OQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRl
ZiB0ZXN0X2luaXQoc2VsZik6CiAgICAgICAgIGVycm9yX2hhbmRsZXIgPSBNb2NrRXJyb3JIYW5k
bGVyKHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGNoZWNrZXIgPSBqc29u
Y2hlY2tlci5KU09OQ2hlY2tlcignZm9vLmpzb24nLCBlcnJvcl9oYW5kbGVyKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLl9oYW5kbGVfc3R5bGVfZXJyb3IsIGVycm9yX2hhbmRs
ZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5faGFuZGxlX3N0eWxlX2Vycm9y
LCBlcnJvcl9oYW5kbGVyKQogCiAgICAgZGVmIHRlc3Rfbm9fZXJyb3Ioc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0X25vX2Vycm9yKCIiInsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvcG5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9wbmdfdW5pdHRlc3QucHkKaW5kZXggNzY0YzI4NTkxMzQ1N2Mw
ZmNkYTI0OWZmY2VjNzRlYzQ0OGJkMDI1OS4uOTJiNWJhNDQ4NzU2NjJlOWExYmYwMzU1MWIwMmUy
MGEyNTBlZGNiOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9wbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9wbmdfdW5pdHRlc3QucHkKQEAgLTUyLDggKzUyLDggQEAgY2xhc3MgUE5HQ2hlY2tl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGNo
ZWNrZXIgPSBQTkdDaGVja2VyKCJ0ZXN0L2NvbmZpZyIsIG1vY2tfaGFuZGxlX3N0eWxlX2Vycm9y
LCBNb2NrU0NNRGV0ZWN0b3IoJ2dpdCcpLCBNb2NrU3lzdGVtSG9zdCgpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhjaGVja2VyLl9maWxlX3BhdGgsICJ0ZXN0L2NvbmZpZyIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuX2hhbmRsZV9zdHlsZV9lcnJvciwgbW9ja19oYW5k
bGVfc3R5bGVfZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5fZmlsZV9w
YXRoLCAidGVzdC9jb25maWciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoZWNrZXIuX2hh
bmRsZV9zdHlsZV9lcnJvciwgbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCiAKICAgICBkZWYgdGVz
dF9jaGVjayhzZWxmKToKICAgICAgICAgZXJyb3JzID0gW10KQEAgLTY5LDggKzY5LDggQEAgY2xh
c3MgUE5HQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzY20gPSBNb2Nr
U0NNRGV0ZWN0b3IoJ3N2bicpCiAgICAgICAgIGNoZWNrZXIgPSBQTkdDaGVja2VyKGZpbGVfcGF0
aCwgbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IsIHNjbSwgTW9ja1N5c3RlbUhvc3QoZmlsZXN5c3Rl
bT1mcykpCiAgICAgICAgIGNoZWNrZXIuY2hlY2soKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhsZW4oZXJyb3JzKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3JzWzBdLAor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihlcnJvcnMpLCAxKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGVycm9yc1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsICdpbWFn
ZS9wbmcnLCA1LCAnU2V0IHRoZSBzdm46bWltZS10eXBlIHByb3BlcnR5IChzdm4gcHJvcHNldCBz
dm46bWltZS10eXBlIGltYWdlL3BuZyApLicpKQogCiAgICAgICAgIGZpbGVzID0geycvVXNlcnMv
bW9jay8uc3VidmVyc2lvbi9jb25maWcnOiAnZW5hYmxlLWF1dG8tcHJvcHMgPSB5ZXNcbioucG5n
ID0gc3ZuOm1pbWUtdHlwZT1pbWFnZS9wbmcnfQpAQCAtNzksNyArNzksNyBAQCBjbGFzcyBQTkdD
aGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGVycm9ycyA9IFtdCiAgICAg
ICAgIGNoZWNrZXIgPSBQTkdDaGVja2VyKCJjb25maWciLCBtb2NrX2hhbmRsZV9zdHlsZV9lcnJv
ciwgc2NtLCBNb2NrU3lzdGVtSG9zdChvc19uYW1lPSdsaW51eCcsIGZpbGVzeXN0ZW09ZnMpKQog
ICAgICAgICBjaGVja2VyLmNoZWNrKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGVy
cm9ycyksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGVycm9ycyksIDApCiAKICAg
ICAgICAgZmlsZXMgPSB7Jy9Vc2Vycy9tb2NrLy5zdWJ2ZXJzaW9uL2NvbmZpZyc6ICcjZW5hYmxl
LWF1dG8tcHJvcHMgPSB5ZXMnfQogICAgICAgICBmcyA9IE1vY2tGaWxlU3lzdGVtKGZpbGVzKQpA
QCAtODcsNyArODcsNyBAQCBjbGFzcyBQTkdDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIGVycm9ycyA9IFtdCiAgICAgICAgIGNoZWNrZXIgPSBQTkdDaGVja2VyKCJjb25m
aWciLCBtb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgc2NtLCBNb2NrU3lzdGVtSG9zdChvc19uYW1l
PSdsaW51eCcsIGZpbGVzeXN0ZW09ZnMpKQogICAgICAgICBjaGVja2VyLmNoZWNrKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGVycm9ycyksIDEpCiAKICAgICAgICAgZmlsZXMgPSB7Jy9Vc2Vycy9tb2NrLy5z
dWJ2ZXJzaW9uL2NvbmZpZyc6ICdlbmFibGUtYXV0by1wcm9wcyA9IHllc1xuI2VuYWJsZS1hdXRv
LXByb3BzID0geWVzXG4qLnBuZyA9IHN2bjptaW1lLXR5cGU9aW1hZ2UvcG5nJ30KICAgICAgICAg
ZnMgPSBNb2NrRmlsZVN5c3RlbShmaWxlcykKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgUE5HQ2hl
Y2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBlcnJvcnMgPSBbXQogICAgICAg
ICBjaGVja2VyID0gUE5HQ2hlY2tlcigiY29uZmlnIiwgbW9ja19oYW5kbGVfc3R5bGVfZXJyb3Is
IHNjbSwgTW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0nbGludXgnLCBmaWxlc3lzdGVtPWZzKSkKICAg
ICAgICAgY2hlY2tlci5jaGVjaygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihlcnJv
cnMpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihlcnJvcnMpLCAwKQogCiAgICAg
ICAgIGZpbGVzID0geycvVXNlcnMvbW9jay8uc3VidmVyc2lvbi9jb25maWcnOiAnI2VuYWJsZS1h
dXRvLXByb3BzID0geWVzXG5lbmFibGUtYXV0by1wcm9wcyA9IHllc1xuKi5wbmcgPSBzdm46bWlt
ZS10eXBlPWltYWdlL3BuZyd9CiAgICAgICAgIGZzID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCkBA
IC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgUE5HQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBlcnJvcnMgPSBbXQogICAgICAgICBjaGVja2VyID0gUE5HQ2hlY2tlcigiY29u
ZmlnIiwgbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IsIHNjbSwgTW9ja1N5c3RlbUhvc3Qob3NfbmFt
ZT0nbGludXgnLCBmaWxlc3lzdGVtPWZzKSkKICAgICAgICAgY2hlY2tlci5jaGVjaygpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihlcnJvcnMpLCAwKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihlcnJvcnMpLCAwKQogCiAgICAgICAgIGZpbGVzID0geycvVXNlcnMvbW9jay8u
c3VidmVyc2lvbi9jb25maWcnOiAnZW5hYmxlLWF1dG8tcHJvcHMgPSBubyd9CiAgICAgICAgIGZz
ID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXMpCkBAIC0xMTEsNyArMTExLDcgQEAgY2xhc3MgUE5HQ2hl
Y2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBlcnJvcnMgPSBbXQogICAgICAg
ICBjaGVja2VyID0gUE5HQ2hlY2tlcigiY29uZmlnIiwgbW9ja19oYW5kbGVfc3R5bGVfZXJyb3Is
IHNjbSwgTW9ja1N5c3RlbUhvc3Qob3NfbmFtZT0nbGludXgnLCBmaWxlc3lzdGVtPWZzKSkKICAg
ICAgICAgY2hlY2tlci5jaGVjaygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihlcnJv
cnMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihlcnJvcnMpLCAxKQogCiAgICAg
ICAgIGZpbGVfcGF0aCA9ICJmb28ucG5nIgogICAgICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShm
aWxlX3BhdGgsICJEdW1teSBiaW5hcnkgZGF0YSIpCkBAIC0xMTksNyArMTE5LDcgQEAgY2xhc3Mg
UE5HQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBlcnJvcnMgPSBbXQog
ICAgICAgICBjaGVja2VyID0gUE5HQ2hlY2tlcihmaWxlX3BhdGgsIG1vY2tfaGFuZGxlX3N0eWxl
X2Vycm9yLCBzY20sIE1vY2tTeXN0ZW1Ib3N0KG9zX25hbWU9J2xpbnV4JywgZmlsZXN5c3RlbT1m
cykpCiAgICAgICAgIGNoZWNrZXIuY2hlY2soKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhs
ZW4oZXJyb3JzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXJyb3JzKSwgMSkK
IAogICAgICAgICBmaWxlX3BhdGggPSAiZm9vLWV4cGVjdGVkLnBuZyIKICAgICAgICAgZnMud3Jp
dGVfYmluYXJ5X2ZpbGUoZmlsZV9wYXRoLCAiRHVtbXkgYmluYXJ5IGRhdGEiKQpAQCAtMTI3LDgg
KzEyNyw4IEBAIGNsYXNzIFBOR0NoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgZXJyb3JzID0gW10KICAgICAgICAgY2hlY2tlciA9IFBOR0NoZWNrZXIoZmlsZV9wYXRoLCBt
b2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgc2NtLCBNb2NrU3lzdGVtSG9zdChvc19uYW1lPSdsaW51
eCcsIGZpbGVzeXN0ZW09ZnMpKQogICAgICAgICBjaGVja2VyLmNoZWNrKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyksIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGVycm9yc1swXSwgKDAsICdpbWFnZS9wbmcnLCA1LCAnSW1hZ2UgbGFja3MgYSBjaGVja3N1bS4g
R2VuZXJhdGUgcG5ncyB1c2luZyBydW4td2Via2l0LXRlc3RzIHRvIGVuc3VyZSB0aGV5IGhhdmUg
YSBjaGVja3N1bS4nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXJyb3JzKSwgMikK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcnNbMF0sICgwLCAnaW1hZ2UvcG5nJywgNSwg
J0ltYWdlIGxhY2tzIGEgY2hlY2tzdW0uIEdlbmVyYXRlIHBuZ3MgdXNpbmcgcnVuLXdlYmtpdC10
ZXN0cyB0byBlbnN1cmUgdGhleSBoYXZlIGEgY2hlY2tzdW0uJykpCiAKIGlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0LnB5CmluZGV4IGQ0
ZDA2NDk3MzEzNGM3MjJjZDI3ZDY2YmU0NzNjZTNkMmQwY2YyOGIuLjczYmRhNzZlMmQwOTBjNTI5
ODNkMGI0YjBkNzM5MTE1ZTQ5MjJhZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0LnB5CkBAIC0zOCw4ICszOCw4
IEBAIGNsYXNzIFB5dGhvbkNoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgIHBhc3MKIAogICAgICAgICBjaGVja2VyID0gUHl0aG9uQ2hlY2tlcigiZm9vLnR4dCIsIF9t
b2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tl
ci5fZmlsZV9wYXRoLCAiZm9vLnR4dCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNr
ZXIuX2hhbmRsZV9zdHlsZV9lcnJvciwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2Vy
Ll9maWxlX3BhdGgsICJmb28udHh0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGVja2Vy
Ll9oYW5kbGVfc3R5bGVfZXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tb2NrX2hh
bmRsZV9zdHlsZV9lcnJvcikKIAogICAgIGRlZiB0ZXN0X2NoZWNrKHNlbGYpOgpAQCAtNTcsNyAr
NTcsNyBAQCBjbGFzcyBQeXRob25DaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGNoZWNrZXIgPSBQeXRob25DaGVja2VyKGZpbGVfcGF0aCwgX21vY2tfaGFuZGxlX3N0eWxl
X2Vycm9yKQogICAgICAgICBjaGVja2VyLmNoZWNrKGxpbmVzPVtdKQogCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGVycm9ycywgWworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9ycywg
WwogICAgICAgICAgICAgKDQsICJwZXA4L1cyOTEiLCA1LCAidHJhaWxpbmcgd2hpdGVzcGFjZSIp
LAogICAgICAgICAgICAgKDQsICJweWxpbnQvRTA2MDIiLCA1LCAiVW5kZWZpbmVkIHZhcmlhYmxl
ICdlcnJvciciKSwKICAgICAgICAgICAgIF0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQppbmRleCAxNTE2ZGU3OTdhNGRjODYyOWI3ZWRiYTRjYjk3MWM3YTVjYmI0NzVlLi5i
MWQ3Zjc3ZjQ1MGVhNDc4NzMwNDgyMDQ0MmI1OWYxYWJlODhiMWUwIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uc1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgcG9ydDoKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Lm5hbWUoKS5zdGFydHN3aXRoKGV4cGVjdGVk
X3BvcnRfaW1wbGVtZW50YXRpb24pKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoTm9uZSwgZXhwZWN0ZWRfcG9ydF9pbXBsZW1lbnRhdGlvbikKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgZXhwZWN0ZWRfcG9ydF9pbXBsZW1lbnRhdGlvbikK
IAogICAgIGRlZiB0ZXN0X2RldGVybWluZV9wb3J0X2Zyb21fZXhwZWN0YXRpb25zX3BhdGgoc2Vs
Zik6CiAgICAgICAgIHNlbGYuX2V4cGVjdF9wb3J0X2Zvcl9leHBlY3RhdGlvbnNfcGF0aChOb25l
LCAnLycpCkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNUZXN0Q2FzZSh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9lcnJvcl9jb2xsZWN0b3IsIGhvc3Q9aG9zdCkKIAogICAgICAgICAjIFdlIHNo
b3VsZCBoYXZlIGZhaWxlZCB0byBmaW5kIGEgdmFsaWQgcG9ydCBvYmplY3QgZm9yIHRoYXQgcGF0
aC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5fcG9ydF9vYmosIE5vbmUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5fcG9ydF9vYmosIE5vbmUpCiAKICAgICAg
ICAgIyBOb3cgdXNlIGEgdGVzdCBwb3J0IHNvIHdlIGNhbiBjaGVjayB0aGUgbGluZXMuCiAgICAg
ICAgIGNoZWNrZXIuX3BvcnRfb2JqID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KCd0ZXN0LW1hYy1s
ZW9wYXJkJykKQEAgLTEwNSw3ICsxMDUsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zVGVzdENh
c2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBzaG91bGRfcGFzczoKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Vycm9yX2NvbGxlY3Rvci5nZXRfZXJyb3Jz
KCkpCiAgICAgICAgIGVsaWYgZXhwZWN0ZWRfb3V0cHV0OgotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoZXhwZWN0ZWRfb3V0cHV0LCBzZWxmLl9lcnJvcl9jb2xsZWN0b3IuZ2V0X2Vycm9y
cygpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9vdXRwdXQsIHNlbGYu
X2Vycm9yX2NvbGxlY3Rvci5nZXRfZXJyb3JzKCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBzZWxmLmFzc2VydE5vdEVxdWFscygnJywgc2VsZi5fZXJyb3JfY29sbGVjdG9yLmdldF9lcnJv
cnMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuX2Vycm9yX2NvbGxlY3Rvci50dXJu
ZWRfb2ZmX2ZpbHRlcmluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvdGV4dF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvdGV4dF91bml0dGVzdC5weQppbmRleCBjZWQ0OWE5NDMzN2FjN2NmMGIzNDdh
MTA5YWI0NjY2OWUzMzMzYzUwLi4xOGRiNmFkM2QxMDgzYjYzNTRjMDk0ODI5MTY4MzBlNTQyMDBk
ZjIwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rl
eHRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy90ZXh0X3VuaXR0ZXN0LnB5CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFRleHRTdHlsZVRlc3RD
YXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuaGFkX2Vycm9yID0gVHJ1
ZQogCiAgICAgICAgIHRleHRfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJycsIGxpbmVzLCBlcnJv
cl9mb3JfdGVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRfKG5vdCBzZWxmLmhhZF9lcnJvciwgJyVz
IHNob3VsZCBub3QgaGF2ZSBhbnkgZXJyb3JzLicgJSBsaW5lcykKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG5vdCBzZWxmLmhhZF9lcnJvciwgJyVzIHNob3VsZCBub3QgaGF2ZSBhbnkgZXJyb3Jz
LicgJSBsaW5lcykKIAogICAgIGRlZiBhc3NlcnRFcnJvcihzZWxmLCBsaW5lcywgZXhwZWN0ZWRf
bGluZV9udW1iZXIpOgogICAgICAgICAiIiJBc3NlcnRzIHRoYXQgdGhlIHNwZWNpZmllZCBsaW5l
cyBoYXMgYW4gZXJyb3IuIiIiCkBAIC01NCwxMiArNTQsMTIgQEAgY2xhc3MgVGV4dFN0eWxlVGVz
dENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGRlZiBlcnJvcl9mb3JfdGVzdChs
aW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAgICAg
IiIiQ2hlY2tzIGlmIHRoZSBleHBlY3RlZCBlcnJvciBvY2N1cnMuIiIiCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9saW5lX251bWJlciwgbGluZV9udW1iZXIpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnd2hpdGVzcGFjZS90YWInLCBjYXRlZ29yeSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbGluZV9udW1iZXIsIGxpbmVfbnVt
YmVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd2hpdGVzcGFjZS90YWInLCBjYXRl
Z29yeSkKICAgICAgICAgICAgIHNlbGYuaGFkX2Vycm9yID0gVHJ1ZQogCiAgICAgICAgIHRleHRf
c3R5bGUucHJvY2Vzc19maWxlX2RhdGEoJycsIGxpbmVzLCBlcnJvcl9mb3JfdGVzdCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRfKHNlbGYuaGFkX2Vycm9yLCAnJXMgc2hvdWxkIGhhdmUgYW4gZXJyb3Ig
W3doaXRlc3BhY2UvdGFiXS4nICUgbGluZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxm
LmhhZF9lcnJvciwgJyVzIHNob3VsZCBoYXZlIGFuIGVycm9yIFt3aGl0ZXNwYWNlL3RhYl0uJyAl
IGxpbmVzKQogCiAKICAgICBkZWYgdGVzdF9ub19lcnJvcihzZWxmKToKQEAgLTg2LDggKzg2LDgg
QEAgY2xhc3MgVGV4dENoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVz
dF9pbml0KHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9faW5pdF9fIGNvbnN0cnVjdG9yLiIiIgog
ICAgICAgICBjaGVja2VyID0gVGV4dENoZWNrZXIoImZvby50eHQiLCBzZWxmLm1vY2tfaGFuZGxl
X3N0eWxlX2Vycm9yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZpbGVfcGF0
aCwgImZvby50eHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhhbmRsZV9z
dHlsZV9lcnJvciwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjaGVja2VyLmZpbGVfcGF0aCwgImZvby50eHQiKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNoZWNrZXIuaGFuZGxlX3N0eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0
eWxlX2Vycm9yKQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3dhdGNobGlzdF91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0
ZXN0LnB5CmluZGV4IGM4ZDI5ZGIwMjMzZmM5N2YyNmU5MmMyM2IzYmVlMjk3NGQzYjQ3YzAuLmZm
M2EzMTVmMWE1NDliNGI2YjM0MWU2ODYzNzMxZjhmMDU1ZjEwOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0
ZXN0LnB5CkBAIC01Niw4ICs1Niw4IEBAIGNsYXNzIFdhdGNoTGlzdFRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiB0ZXN0X2Jhc2ljX2Vycm9yX21lc3NhZ2Uoc2VsZik6CiAgICAgICAg
IGRlZiBoYW5kbGVfc3R5bGVfZXJyb3IobW9ja19lcnJvcl9oYW5kbGVyLCBsaW5lX251bWJlciwg
Y2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAgICAgbW9ja19lcnJvcl9o
YW5kbGVyLmhhZF9lcnJvciA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAs
IGxpbmVfbnVtYmVyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3dhdGNobGlzdC9n
ZW5lcmFsJywgY2F0ZWdvcnkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxpbmVf
bnVtYmVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd2F0Y2hsaXN0L2dlbmVyYWwn
LCBjYXRlZ29yeSkKIAogICAgICAgICBlcnJvcl9oYW5kbGVyID0gTW9ja0Vycm9ySGFuZGxlciho
YW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAgIGVycm9yX2hhbmRsZXIuaGFkX2Vycm9yID0gRmFs
c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNv
ZGVwcm9qX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy94Y29kZXByb2pfdW5pdHRlc3QucHkKaW5kZXggOTc5OWVjMDE2ZjE0ZjcxMDdkOWQzZTUzMWZl
ZWJlMGEyMjZkZGFjOS4uOTcxM2ZkMTU0Nzc2MDUwMTNjYWJmMDFhN2E1YTRmYmZiYjc4MzVhYSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXBy
b2pfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy94Y29kZXByb2pfdW5pdHRlc3QucHkKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgWGNvZGVQcm9q
ZWN0RmlsZUNoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXJyb3JfaGFu
ZGxlciA9IFRlc3RFcnJvckhhbmRsZXIoaGFuZGxlcikKICAgICAgICAgY2hlY2tlciA9IHhjb2Rl
cHJvai5YY29kZVByb2plY3RGaWxlQ2hlY2tlcignJywgZXJyb3JfaGFuZGxlcikKICAgICAgICAg
Y2hlY2tlci5jaGVjayhsaW5lcykKLSAgICAgICAgc2VsZi5hc3NlcnRfKHNlbGYuaGFkX2Vycm9y
LCAnJXMgc2hvdWxkIGhhdmUgZXJyb3I6ICVzLicgJSAobGluZXMsIGV4cGVjdGVkX21lc3NhZ2Up
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5oYWRfZXJyb3IsICclcyBzaG91bGQgaGF2
ZSBlcnJvcjogJXMuJyAlIChsaW5lcywgZXhwZWN0ZWRfbWVzc2FnZSkpCiAKICAgICBkZWYgdGVz
dF9kZXRlY3RfZGV2ZWxvcG1lbnRfcmVnaW9uKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9u
b19lcnJvcihbJ2RldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsnXSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHkKaW5kZXgg
ZTQ4NmY1ZmU0MjgxMmQ0MmRiMTA2NmFmMmZjMzM4ZjQxOWU5MGQ3ZC4uNzA1NWE0ZjkyNjY2YjFl
N2RmYmYxMTYxYTlkYjA1NWYwMjRhZDAwZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHkKQEAgLTU3LDggKzU3LDggQEAg
Y2xhc3MgWE1MQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3NlcnRf
ZXJyb3Ioc2VsZiwgZXhwZWN0ZWRfbGluZV9udW1iZXIsIGV4cGVjdGVkX2NhdGVnb3J5LCB4bWxf
ZGF0YSk6CiAgICAgICAgIGRlZiBoYW5kbGVfc3R5bGVfZXJyb3IobW9ja19lcnJvcl9oYW5kbGVy
LCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAg
ICAgbW9ja19lcnJvcl9oYW5kbGVyLmhhZF9lcnJvciA9IFRydWUKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGV4cGVjdGVkX2xpbmVfbnVtYmVyLCBsaW5lX251bWJlcikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX2NhdGVnb3J5LCBjYXRlZ29yeSkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbGluZV9udW1iZXIsIGxpbmVfbnVtYmVy
KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9jYXRlZ29yeSwgY2F0ZWdv
cnkpCiAKICAgICAgICAgZXJyb3JfaGFuZGxlciA9IE1vY2tFcnJvckhhbmRsZXIoaGFuZGxlX3N0
eWxlX2Vycm9yKQogICAgICAgICBlcnJvcl9oYW5kbGVyLmhhZF9lcnJvciA9IEZhbHNlCkBAIC04
MCw3ICs4MCw3IEBAIGNsYXNzIFhNTENoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICBkZWYgdGVzdF9pbml0KHNlbGYpOgogICAgICAgICBlcnJvcl9oYW5kbGVyID0gTW9ja0Vycm9y
SGFuZGxlcihzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQogICAgICAgICBjaGVja2VyID0g
eG1sLlhNTENoZWNrZXIoJ2Zvby54bWwnLCBlcnJvcl9oYW5kbGVyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhjaGVja2VyLl9oYW5kbGVfc3R5bGVfZXJyb3IsIGVycm9yX2hhbmRsZXIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hlY2tlci5faGFuZGxlX3N0eWxlX2Vycm9yLCBlcnJv
cl9oYW5kbGVyKQogCiAgICAgZGVmIHRlc3RfbWlzc2luZ19jbG9zaW5nX3RhZyhzZWxmKToKICAg
ICAgICAgc2VsZi5hc3NlcnRfZXJyb3IoMywgJ3htbC9zeW50YXgnLCAnPGZvbz5cbjxiYXI+XG48
L2Zvbz5cbicpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9y
X2hhbmRsZXJzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJv
cl9oYW5kbGVyc191bml0dGVzdC5weQppbmRleCA4NjRiYzBmN2EzNGFhODViMWE5NzVkODljYjM1
YWRhNmRmZjMyMjhjLi5jMDIxNDMxNzg1N2IyMzJiMzYyZWI3ZGMyMzIzYzljMDdmOTc4NmI1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxl
cnNfdW5pdHRlc3QucHkKQEAgLTcwLDggKzcwLDggQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JI
YW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgX2NoZWNrX2luaXRpYWxp
emVkKHNlbGYpOgogICAgICAgICAiIiJDaGVjayB0aGF0IGNvdW50IGFuZCBlcnJvciBtZXNzYWdl
cyBhcmUgaW5pdGlhbGl6ZWQuIiIiCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIHNlbGYu
X2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBsZW4oc2VsZi5fZXJy
b3JfbWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHNlbGYuX2Vycm9yX2Nv
dW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihzZWxmLl9lcnJvcl9tZXNzYWdl
cykpCiAKICAgICBkZWYgX2NhbGxfZXJyb3JfaGFuZGxlcihzZWxmLCBoYW5kbGVfZXJyb3IsIGNv
bmZpZGVuY2UsIGxpbmVfbnVtYmVyPTEwMCk6CiAgICAgICAgICIiIkNhbGwgdGhlIGdpdmVuIGVy
cm9yIGhhbmRsZXIgd2l0aCBhIHRlc3QgZXJyb3IuIiIiCkBAIC0xMzEsOCArMTMxLDggQEAgY2xh
c3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGVycm9yX2hhbmRsZXIgPSBzZWxmLl9lcnJvcl9oYW5kbGVyKGNvbmZpZ3VyYXRpb24pCiAg
ICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25maWRlbmNl
KQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIHNlbGYuX2Vycm9yX2NvdW50KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgc2VsZi5fZXJyb3JfbWVzc2FnZXMpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMCwgc2VsZi5fZXJyb3JfY291bnQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoW10sIHNlbGYuX2Vycm9yX21lc3NhZ2VzKQogCiAgICAgIyBBbHNvIHNlcnZlcyBh
cyBhIHJlcG9ydGFibGUgZXJyb3IgdGVzdC4KICAgICBkZWYgdGVzdF9tYXhfcmVwb3J0c19wZXJf
Y2F0ZWdvcnkoc2VsZik6CkBAIC0xNDUsMjcgKzE0NSwyNyBAQCBjbGFzcyBEZWZhdWx0U3R5bGVF
cnJvckhhbmRsZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAjIEZpcnN0IGNh
bGw6IHVzdWFsIHJlcG9ydGluZy4KICAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKGVy
cm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNl
bGYuX2Vycm9yX2NvdW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4oc2VsZi5f
ZXJyb3JfbWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9lcnJvcl9t
ZXNzYWdlcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBzZWxmLl9lcnJvcl9jb3VudCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oc2VsZi5fZXJyb3JfbWVzc2FnZXMpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2Vycm9yX21lc3NhZ2VzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBbImZvby5oKDEwMCk6ICBtZXNzYWdlICBbd2hpdGVzcGFjZS90YWJd
IFs1XVxuIl0pCiAKICAgICAgICAgIyBTZWNvbmQgY2FsbDogc3VwcHJlc3Npb24gbWVzc2FnZSBy
ZXBvcnRlZC4KICAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKGVycm9yX2hhbmRsZXIs
IGNvbmZpZGVuY2UpCiAgICAgICAgICMgVGhlICJTdXBwcmVzc2luZyBmdXJ0aGVyLi4uIiBtZXNz
YWdlIGNvdW50cyBhcyBhbiBhZGRpdGlvbmFsCiAgICAgICAgICMgbWVzc2FnZSAoYnV0IG5vdCBh
cyBhbiBhZGRpdGlvbiB0byB0aGUgZXJyb3IgY291bnQpLgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygyLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMywg
bGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2Vs
Zi5fZXJyb3JfbWVzc2FnZXNbLTJdLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIHNlbGYu
X2Vycm9yX2NvdW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihzZWxmLl9lcnJv
cl9tZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXJyb3JfbWVzc2Fn
ZXNbLTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vLmgoMTAwKTogIG1lc3NhZ2Ug
IFt3aGl0ZXNwYWNlL3RhYl0gWzVdXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxm
Ll9lcnJvcl9tZXNzYWdlc1stMV0sCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXJy
b3JfbWVzc2FnZXNbLTFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VwcHJlc3Npbmcg
ZnVydGhlciBbd2hpdGVzcGFjZS90YWJdIHJlcG9ydHMgIgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZm9yIHRoaXMgZmlsZS5cbiIpCiAKICAgICAgICAgIyBUaGlyZCBjYWxsOiBubyByZXBv
cnQuCiAgICAgICAgIHNlbGYuX2NhbGxfZXJyb3JfaGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25m
aWRlbmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygzLCBzZWxmLl9lcnJvcl9jb3VudCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMywgbGVuKHNlbGYuX2Vycm9yX21lc3NhZ2VzKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBzZWxmLl9lcnJvcl9jb3VudCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oc2VsZi5fZXJyb3JfbWVzc2FnZXMpKQogCiAgICAgZGVm
IHRlc3RfbGluZV9udW1iZXJzKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHRoZSBsaW5lX251bWJl
cnMgcGFyYW1ldGVyLiIiIgpAQCAtMTc3LDIwICsxNzcsMjAgQEAgY2xhc3MgRGVmYXVsdFN0eWxl
RXJyb3JIYW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgIyBFcnJvciBv
biBub24tbW9kaWZpZWQgbGluZTogbm8gZXJyb3IuCiAgICAgICAgIHNlbGYuX2NhbGxfZXJyb3Jf
aGFuZGxlcihlcnJvcl9oYW5kbGVyLCBjb25maWRlbmNlLCBsaW5lX251bWJlcj02MCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoMCwgc2VsZi5fZXJyb3JfY291bnQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFtdLCBzZWxmLl9lcnJvcl9tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgwLCBzZWxmLl9lcnJvcl9jb3VudCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
XSwgc2VsZi5fZXJyb3JfbWVzc2FnZXMpCiAKICAgICAgICAgIyBFcnJvciBvbiBtb2RpZmllZCBs
aW5lOiBlcnJvci4KICAgICAgICAgc2VsZi5fY2FsbF9lcnJvcl9oYW5kbGVyKGVycm9yX2hhbmRs
ZXIsIGNvbmZpZGVuY2UsIGxpbmVfbnVtYmVyPTUwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygxLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5f
ZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgc2VsZi5fZXJyb3Jf
Y291bnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsiZm9vLmgoNTApOiAgbWVzc2FnZSAgW3doaXRlc3Bh
Y2UvdGFiXSBbNV1cbiJdKQogCiAgICAgICAgICMgRXJyb3Igb24gbm9uLW1vZGlmaWVkIGxpbmUg
YWZ0ZXIgdHVybmluZyBvZmYgbGluZSBmaWx0ZXJpbmc6IGVycm9yLgogICAgICAgICBlcnJvcl9o
YW5kbGVyLnR1cm5fb2ZmX2xpbmVfZmlsdGVyaW5nKCkKICAgICAgICAgc2VsZi5fY2FsbF9lcnJv
cl9oYW5kbGVyKGVycm9yX2hhbmRsZXIsIGNvbmZpZGVuY2UsIGxpbmVfbnVtYmVyPTYwKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygyLCBzZWxmLl9lcnJvcl9jb3VudCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5fZXJyb3JfbWVzc2FnZXMsCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMiwgc2VsZi5fZXJyb3JfY291bnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5fZXJyb3JfbWVzc2FnZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnZm9vLmgoNTAp
OiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbicsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZm9vLmgoNjApOiAgbWVzc2FnZSAgW3doaXRlc3BhY2UvdGFiXSBbNV1cbicsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnU3VwcHJlc3NpbmcgZnVydGhlciBbd2hpdGVzcGFj
ZS90YWJdIHJlcG9ydHMgZm9yIHRoaXMgZmlsZS5cbiddKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9maWxlcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IGJjZjk0ZjMzZTY3
ODc1MjA5ZTBhYjI1Nzg2NzEwY2E3MzQwY2M2MmIuLmQ3MjhjNDYzYWEzZmQ5OGQzOWQ2MDNhYTBh
M2I3ZjYyMmYwMTljNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
ZmlsZXJlYWRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2ZpbGVyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTc0LDE0ICs3NCwxNCBAQCBjbGFzcyBUZXh0Rmls
ZVJlYWRlclRlc3QoTG9nZ2luZ1Rlc3RDYXNlKToKIAogICAgIGRlZiBfYXNzZXJ0X2ZpbGVfcmVh
ZGVyKHNlbGYsIHBhc3NlZF90b19wcm9jZXNzb3IsIGZpbGVfY291bnQpOgogICAgICAgICAiIiJB
c3NlcnQgdGhlIHN0YXRlIG9mIHRoZSBmaWxlIHJlYWRlci4iIiIKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMocGFzc2VkX3RvX3Byb2Nlc3Nvciwgc2VsZi5fcGFzc2VkX3RvX3Byb2Nlc3Nvcigp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmaWxlX2NvdW50LCBzZWxmLl9maWxlX3JlYWRl
ci5maWxlX2NvdW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhc3NlZF90b19wcm9jZXNz
b3IsIHNlbGYuX3Bhc3NlZF90b19wcm9jZXNzb3IoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmaWxlX2NvdW50LCBzZWxmLl9maWxlX3JlYWRlci5maWxlX2NvdW50KQogCiAgICAgZGVmIHRl
c3RfcHJvY2Vzc19maWxlX19kb2VzX25vdF9leGlzdChzZWxmKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2VsZi5fZmlsZV9yZWFkZXIucHJvY2Vzc19maWxlKCdkb2VzX25vdF9leGlzdC50
eHQnKQogICAgICAgICBleGNlcHQgU3lzdGVtRXhpdCwgZXJyOgotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc3RyKGVyciksICcxJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c3RyKGVyciksICcxJykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgnTm8g
RXhjZXB0aW9uIHJhaXNlZC4nKQogICAgICAgICBzZWxmLl9hc3NlcnRfZmlsZV9yZWFkZXIoW10s
IDEpCkBAIC0xNTIsNCArMTUyLDQgQEAgY2xhc3MgVGV4dEZpbGVSZWFkZXJUZXN0KExvZ2dpbmdU
ZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfY291bnRfZGVsZXRlX29ubHlfZmlsZShzZWxmKToKICAg
ICAgICAgc2VsZi5fZmlsZV9yZWFkZXIuY291bnRfZGVsZXRlX29ubHlfZmlsZSgpCiAgICAgICAg
IGRlbGV0ZV9vbmx5X2ZpbGVfY291bnQgPSBzZWxmLl9maWxlX3JlYWRlci5kZWxldGVfb25seV9m
aWxlX2NvdW50Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9vbmx5X2ZpbGVfY291
bnQsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZXRlX29ubHlfZmlsZV9jb3VudCwg
MSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZmlsdGVyX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkK
aW5kZXggN2I4YTU0MDJhOGIyM2RmNzliMjExYWFmOTg1MzI2MWY3YzgxODExMC4uYzIwZDk5ODFh
NDZkYzZjMTQ1MzAxM2RkNzIzYTgwZmE4MzhhODUyMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9maWx0ZXJfdW5pdHRlc3QucHkKQEAgLTMwLDcgKzMwLDcgQEAgZnJvbSBm
aWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KIAogIyBPbiBUZXN0aW5nIF9fZXFfXygp
IGFuZCBfX25lX18oKToKICMKLSMgSW4gdGhlIHRlc3RzIGJlbG93LCB3ZSBkZWxpYmVyYXRlbHkg
ZG8gbm90IHVzZSBhc3NlcnRFcXVhbHMoKSBvcgorIyBJbiB0aGUgdGVzdHMgYmVsb3csIHdlIGRl
bGliZXJhdGVseSBkbyBub3QgdXNlIGFzc2VydEVxdWFsKCkgb3IKICMgYXNzZXJ0Tm90RXF1YWxz
KCkgdG8gdGVzdCBfX2VxX18oKSBvciBfX25lX18oKS4gIFdlIGRvIHRoaXMgdG8gYmUKICMgdmVy
eSBleHBsaWNpdCBhYm91dCB3aGF0IHdlIGFyZSB0ZXN0aW5nLCBlc3BlY2lhbGx5IGluIHRoZSBj
YXNlCiAjIG9mIGFzc2VydE5vdEVxdWFscygpLgpAQCAtODgsMTcgKzg4LDE3IEBAIGNsYXNzIENh
dGVnb3J5RmlsdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICIiIlRlc3QgX19p
bml0X18gbWV0aG9kLiIiIgogICAgICAgICAjIFRlc3QgdGhhdCB0aGUgYXR0cmlidXRlcyBhcmUg
Z2V0dGluZyBzZXQgY29ycmVjdGx5LgogICAgICAgICBmaWx0ZXIgPSBDYXRlZ29yeUZpbHRlcihb
IisiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWyIrIl0sIGZpbHRlci5fZmlsdGVyX3J1
bGVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsiKyJdLCBmaWx0ZXIuX2ZpbHRlcl9ydWxl
cykKIAogICAgIGRlZiB0ZXN0X2luaXRfZGVmYXVsdF9hcmd1bWVudHMoc2VsZik6CiAgICAgICAg
ICIiIlRlc3QgX19pbml0X18gbWV0aG9kIGRlZmF1bHQgYXJndW1lbnRzLiIiIgogICAgICAgICBm
aWx0ZXIgPSBDYXRlZ29yeUZpbHRlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBm
aWx0ZXIuX2ZpbHRlcl9ydWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZmlsdGVy
Ll9maWx0ZXJfcnVsZXMpCiAKICAgICBkZWYgdGVzdF9zdHIoc2VsZik6CiAgICAgICAgICIiIlRl
c3QgX19zdHJfXyAidG8gc3RyaW5nIiBvcGVyYXRvci4iIiIKICAgICAgICAgZmlsdGVyID0gQ2F0
ZWdvcnlGaWx0ZXIoWyIrYSIsICItYiJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdHIo
ZmlsdGVyKSwgIithLC1iIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZmlsdGVyKSwg
IithLC1iIikKIAogICAgIGRlZiB0ZXN0X2VxKHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9fZXFf
XyBlcXVhbGl0eSBmdW5jdGlvbi4iIiIKQEAgLTE2MiwxNyArMTYyLDE3IEBAIGNsYXNzIEZpbHRl
ckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICBjb25maWcg
PSBzZWxmLl9jb25maWcoYmFzZV9ydWxlcywgcGF0aF9zcGVjaWZpYywgdXNlcl9ydWxlcykKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhiYXNlX3J1bGVzLCBjb25maWcuX2Jhc2VfcnVsZXMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhdGhfc3BlY2lmaWMsIGNvbmZpZy5fcGF0aF9z
cGVjaWZpYykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModXNlcl9ydWxlcywgY29uZmlnLl91
c2VyX3J1bGVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJhc2VfcnVsZXMsIGNvbmZpZy5f
YmFzZV9ydWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXRoX3NwZWNpZmljLCBjb25m
aWcuX3BhdGhfc3BlY2lmaWMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXNlcl9ydWxlcywg
Y29uZmlnLl91c2VyX3J1bGVzKQogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF9hcmd1bWVudHMoc2Vs
Zik6CiAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBhdHRyaWJ1dGVzIGFyZSBnZXR0aW5nIHNldCBj
b3JyZWN0bHkgdG8gdGhlIGRlZmF1bHRzLgogICAgICAgICBjb25maWcgPSBGaWx0ZXJDb25maWd1
cmF0aW9uKCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl9iYXNlX3J1
bGVzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl9wYXRoX3NwZWNpZmlj
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgY29uZmlnLl91c2VyX3J1bGVzKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBjb25maWcuX2Jhc2VfcnVsZXMpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoW10sIGNvbmZpZy5fcGF0aF9zcGVjaWZpYykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChbXSwgY29uZmlnLl91c2VyX3J1bGVzKQogCiAgICAgZGVmIHRlc3RfZXEoc2Vs
Zik6CiAgICAgICAgICIiIlRlc3QgX19lcV9fIG1ldGhvZC4iIiIKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvbWFpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvbWFpbl91bml0dGVzdC5weQppbmRleCA1NDU3ODMzMDBiOWI4OTI0NjVi
YzEyY2EzZDZhYzg5NTQyZGU3MDYxLi5lMDE5MTY4N2EyZjU2NDM5YTY4YTU4NjA5MDE4OWU1ZWUw
ZTRlZWJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL21haW5fdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9tYWluX3VuaXR0ZXN0
LnB5CkBAIC00Myw5ICs0Myw5IEBAIGNsYXNzIENoYW5nZURpcmVjdG9yeVRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIF9hc3NlcnRfcmVzdWx0KHNlbGYsIGFjdHVhbF9yZXR1cm5f
dmFsdWUsIGV4cGVjdGVkX3JldHVybl92YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWRfbG9nX21lc3NhZ2VzLCBleHBlY3RlZF9jdXJyZW50X2RpcmVjdG9yeSk6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbF9yZXR1cm5fdmFsdWUsIGV4cGVjdGVkX3JldHVybl92
YWx1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmV0dXJuX3ZhbHVlLCBleHBl
Y3RlZF9yZXR1cm5fdmFsdWUpCiAgICAgICAgIHNlbGYuX2xvZy5hc3NlcnRNZXNzYWdlcyhleHBl
Y3RlZF9sb2dfbWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZmlsZXN5
c3RlbS5nZXRjd2QoKSwgZXhwZWN0ZWRfY3VycmVudF9kaXJlY3RvcnkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5maWxlc3lzdGVtLmdldGN3ZCgpLCBleHBlY3RlZF9jdXJyZW50X2Rp
cmVjdG9yeSkKIAogICAgIGRlZiB0ZXN0X3BhdGhzX25vbmUoc2VsZik6CiAgICAgICAgIHBhdGhz
ID0gc2VsZi5fY2hhbmdlX2RpcmVjdG9yeShjaGVja291dF9yb290PXNlbGYuX2NoZWNrb3V0X3Jv
b3QsIHBhdGhzPU5vbmUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L29wdHBhcnNlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0
cGFyc2VyX3VuaXR0ZXN0LnB5CmluZGV4IGE2YjY0ZGE0MjM4NWIwZTFiZjE0NmYxZjRmN2E1ZDJi
MjAyZjc2OTAuLjk3OWIzMWQxYTIwMTc1MDNiMDJhMzhjMTBiN2Y4YWY2MTY1NzU1NzkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0cGFyc2VyX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvb3B0cGFyc2VyX3VuaXR0ZXN0LnB5
CkBAIC00OSwxNCArNDksMTQgQEAgY2xhc3MgQXJndW1lbnRQcmludGVyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF90b19mbGFnX3N0cmluZyhzZWxmKToKICAgICAgICAg
b3B0aW9ucyA9IHNlbGYuX2NyZWF0ZV9vcHRpb25zKCd2czcnLCA1LCBbJytmb28nLCAnLWJhcidd
LCAnZ2l0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJy0tZmlsdGVyPStmb28sLWJhciAt
LWdpdC1jb21taXQ9Z2l0ICcKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLS1maWx0ZXI9K2Zv
bywtYmFyIC0tZ2l0LWNvbW1pdD1naXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1t
aW4tY29uZmlkZW5jZT01IC0tb3V0cHV0PXZzNycsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3ByaW50ZXIudG9fZmxhZ19zdHJpbmcob3B0aW9ucykpCiAKICAgICAgICAgIyBUaGlz
IGlzIHRvIGNoZWNrIHRoYXQgLS1maWx0ZXIgYW5kIC0tZ2l0LWNvbW1pdCBkbyBub3QKICAgICAg
ICAgIyBzaG93IHVwIHdoZW4gbm90IHVzZXItc3BlY2lmaWVkLgogICAgICAgICBvcHRpb25zID0g
c2VsZi5fY3JlYXRlX29wdGlvbnMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnLS1taW4t
Y29uZmlkZW5jZT0zIC0tb3V0cHV0PWVtYWNzJywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
LS1taW4tY29uZmlkZW5jZT0zIC0tb3V0cHV0PWVtYWNzJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcHJpbnRlci50b19mbGFnX3N0cmluZyhvcHRpb25zKSkKIAogCkBAIC0xNDIs
NTMgKzE0Miw1MyBAQCBjbGFzcyBBcmd1bWVudFBhcnNlclRlc3QoTG9nZ2luZ1Rlc3RDYXNlKToK
IAogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoW10pCiAKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZmlsZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzLCBb
XSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9ydWxlcywgW10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZ2l0X2NvbW1pdCwgTm9uZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5kaWZmX2ZpbGVzLCBGYWxzZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5pc192ZXJib3NlLCBGYWxzZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5taW5fY29uZmlkZW5jZSwgMykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMob3B0aW9ucy5vdXRwdXRfZm9ybWF0LCAndnM3JykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChvcHRpb25zLmZpbHRlcl9ydWxlcywgW10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3B0aW9ucy5naXRfY29tbWl0LCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG9wdGlvbnMuZGlmZl9maWxlcywgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
b3B0aW9ucy5pc192ZXJib3NlLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRp
b25zLm1pbl9jb25maWRlbmNlLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMu
b3V0cHV0X2Zvcm1hdCwgJ3ZzNycpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9leHBsaWNpdF9hcmd1
bWVudHMoc2VsZik6CiAgICAgICAgIHBhcnNlID0gc2VsZi5fcGFyc2UKIAogICAgICAgICAjIFBh
c3Mgbm9uLWRlZmF1bHQgZXhwbGljaXQgdmFsdWVzLgogICAgICAgICAoZmlsZXMsIG9wdGlvbnMp
ID0gcGFyc2UoWyctLW1pbi1jb25maWRlbmNlPTQnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMob3B0aW9ucy5taW5fY29uZmlkZW5jZSwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChv
cHRpb25zLm1pbl9jb25maWRlbmNlLCA0KQogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFy
c2UoWyctLW91dHB1dD1lbWFjcyddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25z
Lm91dHB1dF9mb3JtYXQsICdlbWFjcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9u
cy5vdXRwdXRfZm9ybWF0LCAnZW1hY3MnKQogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFy
c2UoWyctZycsICdjb21taXQnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5n
aXRfY29tbWl0LCAnY29tbWl0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmdp
dF9jb21taXQsICdjb21taXQnKQogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoWyct
LWdpdC1jb21taXQ9Y29tbWl0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMu
Z2l0X2NvbW1pdCwgJ2NvbW1pdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5n
aXRfY29tbWl0LCAnY29tbWl0JykKICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsn
LS1naXQtZGlmZj1jb21taXQnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5n
aXRfY29tbWl0LCAnY29tbWl0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmdp
dF9jb21taXQsICdjb21taXQnKQogICAgICAgICAoZmlsZXMsIG9wdGlvbnMpID0gcGFyc2UoWyct
LXZlcmJvc2UnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5pc192ZXJib3Nl
LCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuaXNfdmVyYm9zZSwgVHJ1
ZSkKICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnLS1kaWZmLWZpbGVzJywgJ2Zp
bGUudHh0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuZGlmZl9maWxlcywg
VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmRpZmZfZmlsZXMsIFRydWUp
CiAKICAgICAgICAgIyBQYXNzIHVzZXJfcnVsZXMuCiAgICAgICAgIChmaWxlcywgb3B0aW9ucykg
PSBwYXJzZShbJy0tZmlsdGVyPStidWlsZCwtd2hpdGVzcGFjZSddKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhvcHRpb25zLmZpbHRlcl9ydWxlcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcHRpb25zLmZpbHRlcl9ydWxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgWyIrYnVp
bGQiLCAiLXdoaXRlc3BhY2UiXSkKIAogICAgICAgICAjIFBhc3Mgc3B1cmlvdXMgd2hpdGUgc3Bh
Y2UgaW4gdXNlciBydWxlcy4KICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnLS1m
aWx0ZXI9K2J1aWxkLCAtd2hpdGVzcGFjZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhv
cHRpb25zLmZpbHRlcl9ydWxlcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLmZp
bHRlcl9ydWxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgWyIrYnVpbGQiLCAiLXdoaXRl
c3BhY2UiXSkKIAogICAgIGRlZiB0ZXN0X3BhcnNlX2ZpbGVzKHNlbGYpOgogICAgICAgICBwYXJz
ZSA9IHNlbGYuX3BhcnNlCiAKICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsnZm9v
LmNwcCddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmaWxlcywgWydmb28uY3BwJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXMsIFsnZm9vLmNwcCddKQogCiAgICAgICAgICMg
UGFzcyBtdWx0aXBsZSBmaWxlcy4KICAgICAgICAgKGZpbGVzLCBvcHRpb25zKSA9IHBhcnNlKFsn
LS1vdXRwdXQ9ZW1hY3MnLCAnZm9vLmNwcCcsICdiYXIuY3BwJ10pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGZpbGVzLCBbJ2Zvby5jcHAnLCAnYmFyLmNwcCddKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGZpbGVzLCBbJ2Zvby5jcHAnLCAnYmFyLmNwcCddKQogCiAKIGNsYXNzIENvbW1h
bmRPcHRpb25WYWx1ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE5OSwxMSArMTk5LDEx
IEBAIGNsYXNzIENvbW1hbmRPcHRpb25WYWx1ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgIiIiVGVzdCBfX2luaXRfXyBjb25zdHJ1Y3Rvci4iIiIKICAgICAgICAgIyBDaGVjayBk
ZWZhdWx0IHBhcmFtZXRlcnMuCiAgICAgICAgIG9wdGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3B0aW9ucy5maWx0ZXJfcnVsZXMsIFtdKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRpb25zLmdpdF9jb21taXQsIE5vbmUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMuaXNfdmVyYm9zZSwgRmFsc2UpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKG9wdGlvbnMubWluX2NvbmZpZGVuY2UsIDEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKG9wdGlvbnMub3V0cHV0X2Zvcm1hdCwgImVtYWNzIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChvcHRpb25zLmZpbHRlcl9ydWxlcywgW10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3B0aW9ucy5naXRfY29tbWl0LCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG9wdGlvbnMuaXNfdmVyYm9zZSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
b3B0aW9ucy5taW5fY29uZmlkZW5jZSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRp
b25zLm91dHB1dF9mb3JtYXQsICJlbWFjcyIpCiAKICAgICAgICAgIyBDaGVjayBhcmd1bWVudCB2
YWxpZGF0aW9uLgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQcm9jZXNz
b3JPcHRpb25zLCBvdXRwdXRfZm9ybWF0PSJiYWQiKQpAQCAtMjIwLDExICsyMjAsMTEgQEAgY2xh
c3MgQ29tbWFuZE9wdGlvblZhbHVlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc192ZXJib3NlPVRydWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRlbmNlPTMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dF9mb3JtYXQ9InZzNyIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbIisiXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMob3B0aW9ucy5naXRfY29tbWl0LCAiY29tbWl0IikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMob3B0aW9ucy5pc192ZXJib3NlLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhvcHRpb25zLm1pbl9jb25maWRlbmNlLCAzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhvcHRpb25zLm91dHB1dF9mb3JtYXQsICJ2czciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG9wdGlvbnMuZmlsdGVyX3J1bGVzLCBbIisiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChv
cHRpb25zLmdpdF9jb21taXQsICJjb21taXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9w
dGlvbnMuaXNfdmVyYm9zZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25z
Lm1pbl9jb25maWRlbmNlLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMub3V0
cHV0X2Zvcm1hdCwgInZzNyIpCiAKICAgICBkZWYgdGVzdF9lcShzZWxmKToKICAgICAgICAgIiIi
VGVzdCBfX2VxX18gZXF1YWxpdHkgZnVuY3Rpb24uIiIiCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9wYXRjaHJlYWRlcl91bml0dGVzdC5weQppbmRleCBlYjI2ZDQ3NjE2
NTg5MmI5NDZjZTIxMGQxMTQ3ZWI1OWYwZjFmZTUxLi45ODNiNjA5ZTQ2NTEyM2JkYzg3OGQ3ZjA0
YzQyZDY5MDEzYTI5MGRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L3BhdGNocmVhZGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvcGF0Y2hyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTY0LDkgKzY0LDkgQEAgY2xhc3MgUGF0Y2hS
ZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fcGF0Y2hfY2hlY2tl
ci5jaGVjayhwYXRjaF9zdHJpbmcpCiAKICAgICBkZWYgX2Fzc2VydF9jaGVja2VkKHNlbGYsIHBh
c3NlZF90b19wcm9jZXNzX2ZpbGUsIGRlbGV0ZV9vbmx5X2ZpbGVfY291bnQpOgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZWxmLl9maWxlX3JlYWRlci5wYXNzZWRfdG9fcHJvY2Vzc19maWxl
LAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2ZpbGVfcmVhZGVyLnBhc3NlZF90b19w
cm9jZXNzX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZF90b19wcm9jZXNz
X2ZpbGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2ZpbGVfcmVhZGVyLmRlbGV0
ZV9vbmx5X2ZpbGVfY291bnQsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZmlsZV9y
ZWFkZXIuZGVsZXRlX29ubHlfZmlsZV9jb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVsZXRlX29ubHlfZmlsZV9jb3VudCkKIAogICAgIGRlZiB0ZXN0X2NoZWNrX3BhdGNoKHNlbGYp
OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L2ZpbmRlcl91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9maW5kZXJfdW5pdHRlc3QucHkKaW5k
ZXggNWM4MDhhMTdlNzI3NmNkNzgyMzY0MjkwMTZhMTQ4MmRiMjg2ZmU3Mi4uNjk0YjM4ODRhNTky
ZTIwOGVjM2QwNjhmODUzOWYxZTI2NmU5YjczMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90ZXN0L2ZpbmRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rlc3QvZmluZGVyX3VuaXR0ZXN0LnB5CkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIEZpbmRl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgaGFuZGxlci5sZXZlbCA9IHNl
bGYubG9nX2xldmVscy5wb3AoMCkKIAogICAgIGRlZiB0ZXN0X2FkZGl0aW9uYWxfc3lzdGVtX3Bh
dGhzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmZpbmRlci5hZGRpdGlv
bmFsX3BhdGhzKFsnL3VzciddKSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZpbmRl
ci5hZGRpdGlvbmFsX3BhdGhzKFsnL3VzciddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
WycvZm9vJywgJy9mb28yJ10pCiAKICAgICBkZWYgdGVzdF9pc19tb2R1bGUoc2VsZik6CkBAIC03
MCw5ICs3MCw5IEBAIGNsYXNzIEZpbmRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZmluZGVyLmlzX21vZHVsZSgnYmF6JykpCiAKICAgICBk
ZWYgdGVzdF90b19tb2R1bGUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYu
ZmluZGVyLnRvX21vZHVsZSgnL2Zvby90ZXN0LnB5JyksICd0ZXN0JykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi5maW5kZXIudG9fbW9kdWxlKCcvZm9vL2Jhci90ZXN0LnB5JyksICdi
YXIudGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZmluZGVyLnRvX21vZHVs
ZSgnL2Zvby9iYXIvcHl0ZXN0LnB5JyksICdiYXIucHl0ZXN0JykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLmZpbmRlci50b19tb2R1bGUoJy9mb28vdGVzdC5weScpLCAndGVzdCcpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5maW5kZXIudG9fbW9kdWxlKCcvZm9vL2Jhci90
ZXN0LnB5JyksICdiYXIudGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5maW5k
ZXIudG9fbW9kdWxlKCcvZm9vL2Jhci9weXRlc3QucHknKSwgJ2Jhci5weXRlc3QnKQogCiAgICAg
ZGVmIHRlc3RfY2xlYW4oc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmZzLmV4
aXN0cygnL2ZvbzIvYmFyMi9taXNzaW5nLnB5YycpKQpAQCAtODAsNyArODAsNyBAQCBjbGFzcyBG
aW5kZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShz
ZWxmLmZzLmV4aXN0cygnL2ZvbzIvYmFyMi9taXNzaW5nLnB5YycpKQogCiAgICAgZGVmIGNoZWNr
X25hbWVzKHNlbGYsIG5hbWVzLCBleHBlY3RlZF9uYW1lcywgZmluZF9hbGw9VHJ1ZSk6Ci0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZmluZGVyLmZpbmRfbmFtZXMobmFtZXMsIGZpbmRf
YWxsKSwgZXhwZWN0ZWRfbmFtZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5maW5k
ZXIuZmluZF9uYW1lcyhuYW1lcywgZmluZF9hbGwpLCBleHBlY3RlZF9uYW1lcykKIAogICAgIGRl
ZiB0ZXN0X2RlZmF1bHRfbmFtZXMoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tfbmFtZXMoW10s
IFsnYmFyLmJhel91bml0dGVzdCcsICdiYXIyLmJhejJfaW50ZWdyYXRpb250ZXN0J10sIGZpbmRf
YWxsPVRydWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5
CmluZGV4IDRmYTZlZjM4NGNkZmI3YjMwZDJlNmM0ZDUyY2U5MjRkYzZlNzAzN2MuLjAzMWFiZDY1
YjRlNDcwNDM1M2JjNjA1YTA4ZmUxNTdmNWI2ODA1NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdGVzdC9tYWluX3VuaXR0ZXN0LnB5CkBAIC04MSwyNSArODEsMjUgQEAgY2xhc3MgVGVz
dGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfaW5kaXZpZHVhbF9uYW1l
c19hcmVfbm90X3J1bl90d2ljZShzZWxmKToKICAgICAgICAgYXJncyA9IFtTVFVCU19DTEFTUyAr
ICcudGVzdF9lbXB0eSddCiAgICAgICAgIHBhcmFsbGVsX3Rlc3RzLCBzZXJpYWxfdGVzdHMgPSBz
ZWxmLl9maW5kX3Rlc3RfbmFtZXMoYXJncykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFy
YWxsZWxfdGVzdHMsIGFyZ3MpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlcmlhbF90ZXN0
cywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYWxsZWxfdGVzdHMsIGFyZ3MpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VyaWFsX3Rlc3RzLCBbXSkKIAogICAgIGRlZiB0ZXN0
X2ludGVncmF0aW9uX3Rlc3RzX2FyZV9ub3RfZm91bmRfYnlfZGVmYXVsdChzZWxmKToKICAgICAg
ICAgcGFyYWxsZWxfdGVzdHMsIHNlcmlhbF90ZXN0cyA9IHNlbGYuX2ZpbmRfdGVzdF9uYW1lcyhb
U1RVQlNfQ0xBU1NdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbGxlbF90ZXN0cywg
WworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFsbGVsX3Rlc3RzLCBbCiAgICAgICAgICAg
ICBTVFVCU19DTEFTUyArICcudGVzdF9lbXB0eScsCiAgICAgICAgICAgICBdKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZXJpYWxfdGVzdHMsIFsKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZXJpYWxfdGVzdHMsIFsKICAgICAgICAgICAgIFNUVUJTX0NMQVNTICsgJy5zZXJpYWxfdGVz
dF9lbXB0eScsCiAgICAgICAgICAgICBdKQogCiAgICAgZGVmIHRlc3RfaW50ZWdyYXRpb25fdGVz
dHNfYXJlX2ZvdW5kKHNlbGYpOgogICAgICAgICBwYXJhbGxlbF90ZXN0cywgc2VyaWFsX3Rlc3Rz
ID0gc2VsZi5fZmluZF90ZXN0X25hbWVzKFsnLS1pbnRlZ3JhdGlvbi10ZXN0cycsIFNUVUJTX0NM
QVNTXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYWxsZWxfdGVzdHMsIFsKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbGxlbF90ZXN0cywgWwogICAgICAgICAgICAgU1RVQlNf
Q0xBU1MgKyAnLmludGVncmF0aW9uX3Rlc3RfZW1wdHknLAogICAgICAgICAgICAgU1RVQlNfQ0xB
U1MgKyAnLnRlc3RfZW1wdHknLAogICAgICAgICAgICAgXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc2VyaWFsX3Rlc3RzLCBbCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VyaWFsX3Rl
c3RzLCBbCiAgICAgICAgICAgICBTVFVCU19DTEFTUyArICcuc2VyaWFsX2ludGVncmF0aW9uX3Rl
c3RfZW1wdHknLAogICAgICAgICAgICAgU1RVQlNfQ0xBU1MgKyAnLnNlcmlhbF90ZXN0X2VtcHR5
JywKICAgICAgICAgICAgIF0pCkBAIC0xMTMsNSArMTEzLDUgQEAgY2xhc3MgVGVzdGVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0
PWV4ZWN1dGl2ZS5QSVBFLCBzdGRlcnI9ZXhlY3V0aXZlLlBJUEUpCiAgICAgICAgIG91dCwgXyA9
IHByb2MuY29tbXVuaWNhdGUoKQogICAgICAgICByZXRjb2RlID0gcHJvYy5yZXR1cm5jb2RlCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJldGNvZGUsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmV0Y29kZSwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdDb3ZlcicgaW4gb3V0
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkKaW5k
ZXggOGZlMWIwNjMzM2QwYzI5NWZhYmViNDJmYjcwZTlhNjEyYWNmOWVlOS4uZTViZTE5MjFjNTBk
NmMxYTBhYzIwNzM2NzhjNWMyN2JjZDFmZTdkYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC05Miw5ICs5Miw5IEBAIGNsYXNzIFJ1bm5l
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgn
dGVzdDMgKEZvbyknLCAnRScsICd0ZXN0M1xuZXJyZWQnKSkKICAgICAgICAgcnVubmVyID0gUnVu
bmVyKFByaW50ZXIoc3RyZWFtLCBvcHRpb25zKSwgbG9hZGVyKQogICAgICAgICBydW5uZXIucnVu
KFsnRm9vLnRlc3QxJywgJ0Zvby50ZXN0MicsICdGb28udGVzdDMnXSwgMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMocnVubmVyLnRlc3RzX3J1biwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobGVuKHJ1bm5lci5mYWlsdXJlcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGxlbihydW5uZXIuZXJyb3JzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5uZXIu
dGVzdHNfcnVuLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihydW5uZXIuZmFpbHVy
ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihydW5uZXIuZXJyb3JzKSwgMSkK
IAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQppbmRl
eCA4YjMzNDE2MjM0OTg1ZjMwZmM1N2VkNDE0ZjkyOTFiMWM4Yjg2YTI5Li4yOTU4YzZjYzEyMWNk
YjE1OTJjY2U5NGNhNmJjZTAwMTdlM2IyZmMwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQpAQCAt
NTY0LDcgKzU2NCw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0
byBsYW5kIHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PQ0sgbGFuZCBmCiAgICAgICAgICAgICAgICAg
cmV0dXJuIEV4cGVjdGVkRmFpbHVyZXMoKQogCiAgICAgICAgIHRhc2sgPSBDb21taXRRdWV1ZVRh
c2soTW9ja0RlbGVnYXRlKCksIHBhdGNoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0YXNr
LnZhbGlkYXRlKCksIGlzX3ZhbGlkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudmFs
aWRhdGUoKSwgaXNfdmFsaWQpCiAKICAgICBkZWYgX21vY2tfcGF0Y2goc2VsZiwgYXR0YWNobWVu
dF9kaWN0PXt9LCBidWdfZGljdD17J2J1Z19zdGF0dXMnOiAnTkVXJ30sIGNvbW1pdHRlcj0iZmFr
ZSIpOgogICAgICAgICBidWcgPSBidWd6aWxsYS5CdWcoYnVnX2RpY3QsIE5vbmUpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVy
ZXNfdW5pdHRlc3QucHkKaW5kZXggNGMxYzNkOTI5NGU5YjFkNDk5NTdhYmYwOTY1MmJmNGFhMTEx
MDA1Yi4uM2NlZTNmMDU5NDQ2NTg3OTI3NzMxODBlZjhjZDE3OTNhMmMyMzVlZCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWls
dXJlc191bml0dGVzdC5weQpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBNb2NrUmVzdWx0cyhvYmpl
Y3QpOgogCiBjbGFzcyBFeHBlY3RlZEZhaWx1cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgZGVmIF9hc3NlcnRfY2FuX3RydXN0KHNlbGYsIHJlc3VsdHMsIGNhbl90cnVzdCk6Ci0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKEV4cGVjdGVkRmFpbHVyZXMuX3Nob3VsZF90cnVzdChyZXN1
bHRzKSwgY2FuX3RydXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEV4cGVjdGVkRmFpbHVy
ZXMuX3Nob3VsZF90cnVzdChyZXN1bHRzKSwgY2FuX3RydXN0KQogCiAgICAgZGVmIHRlc3RfY2Fu
X3RydXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9u
ZSwgRmFsc2UpCkBAIC03NywxOSArNzcsMTkgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2Jz
ZXJ2ZWQoc2VsZik6CiAgICAgICAgIGZhaWx1cmVzID0gRXhwZWN0ZWRGYWlsdXJlcygpCiAgICAg
ICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJ10pKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1v
Y2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRtbCddKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19v
YnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJ10pKSwgc2V0KFsnYmF6Lmh0bWwnXSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNl
cnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1sJ10pKSwgc2V0KFsnYmFyLmh0
bWwnXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWls
dXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJ10pKSwgc2V0KFsnYmF6Lmh0bWwn
XSkpCiAgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcs
ICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0zKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91
bmRlZF9yZXN1bHRzKSwgc2V0KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10p
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNf
b2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHMpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcs
ICd0YWNvLmh0bWwnXSkpCiAgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3Rpbmdf
ZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwn
LCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9NCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0
c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0
YWNvLmh0bWwnXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3Rl
ZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1
cmUpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSkpCiAKICAgICBk
ZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkX3doZW5fdHJlZV9pc19ob3NlZChz
ZWxmKToKICAgICAgICAgZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1cmVzKCkKICAgICAgICAgZmFp
bHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZmFp
bHVyZV9saW1pdD0yKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFpbHVyZXMudW5leHBl
Y3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1s
J10pKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFpbHVyZXMudW5leHBlY3Rl
ZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJ10pKSwgTm9uZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2Vy
dmVkKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBOb25lKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQo
TW9ja1Jlc3VsdHMoWydiYXouaHRtbCddKSksIE5vbmUpCiAgICAgICAgIHVuYm91bmRlZF9yZXN1
bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwg
ZmFpbHVyZV9saW1pdD0zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmYWlsdXJlcy51bmV4
cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzKSwgTm9uZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVk
KHVuYm91bmRlZF9yZXN1bHRzKSwgTm9uZSkKICAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHNfd2l0
aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXouaHRtbCcs
ICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD00KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91
bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSksIE5vbmUpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5k
ZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzX3VuaXR0ZXN0LnB5CmluZGV4IGRmZjQ4
YWQ4YjQwZGZkZTY0MmUwOGQ1YjVlNGY0MzlkOWIxZTYwZTAuLjA2MGE1Yzg1YmFhOTBhNTQzZjIw
ZmI3ZjVkMTEzZGVhNWQ2N2FmZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZmVlZGVyc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2ZlZWRlcnNfdW5pdHRlc3QucHkKQEAgLTc3LDQgKzc3LDQgQEAgRmVlZGluZyBj
b21taXQtcXVldWUgaXRlbXMgWzEwMDA1LCAxMDAwMF0KIAogICAgICAgICBmZWVkZXIgPSBDb21t
aXRRdWV1ZUZlZWRlcihNb2NrVG9vbCgpKQogICAgICAgICBwYXRjaGVzID0gW01vY2tQYXRjaCgx
LCBOb25lKSwgTW9ja1BhdGNoKDIsICctJyksIE1vY2tQYXRjaCgzLCAiKyIpXQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbcGF0Y2guaWQgZm9yIHBhdGNoIGluIGZlZWRlci5fcGF0Y2hlc193
aXRoX2FjY2VwdGFibGVfcmV2aWV3X2ZsYWcocGF0Y2hlcyldLCBbMSwgM10pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoW3BhdGNoLmlkIGZvciBwYXRjaCBpbiBmZWVkZXIuX3BhdGNoZXNfd2l0
aF9hY2NlcHRhYmxlX3Jldmlld19mbGFnKHBhdGNoZXMpXSwgWzEsIDNdKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZF91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3QucHkK
aW5kZXggNGRlYzY2OWZkZmU2M2UwZDFhODcxYjNmMWM2ZTRhZmFmMmZjM2I3NC4uNGFiZWU2Njc4
ZGRhYzg5Y2M5Y2U5MTc0YmJhNDhkMDBmZDUzMjlkMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZF91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kX3VuaXR0ZXN0LnB5CkBAIC0zNywz
MCArMzcsMzAgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGlt
cG9ydCBNb2NrRXhlY3V0aXZlCiBjbGFzcyBJUkNDb21tYW5kVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIHRlc3Rfd2hvaXMoc2VsZik6CiAgICAgICAgIHdob2lzID0gV2hvaXMoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygidG9tOiBVc2FnZTogd2hvaXMgU0VBUkNIX1NUUklO
RyIsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRvbTogVXNhZ2U6IHdob2lzIFNFQVJDSF9T
VFJJTkciLAogICAgICAgICAgICAgICAgICAgICAgICAgICB3aG9pcy5leGVjdXRlKCJ0b20iLCBb
XSwgTm9uZSwgTm9uZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCJ0b206IFVzYWdlOiB3
aG9pcyBTRUFSQ0hfU1RSSU5HIiwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidG9tOiBVc2Fn
ZTogd2hvaXMgU0VBUkNIX1NUUklORyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdob2lz
LmV4ZWN1dGUoInRvbSIsIFsiQWRhbSIsICJCYXJ0aCJdLCBOb25lLCBOb25lKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoInRvbTogU29ycnksIEkgZG9uJ3Qga25vdyBhbnkgY29udHJpYnV0
b3JzIG1hdGNoaW5nICd1bmtub3duQGV4YW1wbGUuY29tJy4iLAorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCJ0b206IFNvcnJ5LCBJIGRvbid0IGtub3cgYW55IGNvbnRyaWJ1dG9ycyBtYXRjaGlu
ZyAndW5rbm93bkBleGFtcGxlLmNvbScuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hv
aXMuZXhlY3V0ZSgidG9tIiwgWyJ1bmtub3duQGV4YW1wbGUuY29tIl0sIE5vbmUsIE5vbmUpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygidG9tOiB0b255Z0BjaHJvbWl1bS5vcmcgaXMgdG9u
eWctY3IuIFdoeSBkbyB5b3UgYXNrPyIsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRvbTog
dG9ueWdAY2hyb21pdW0ub3JnIGlzIHRvbnlnLWNyLiBXaHkgZG8geW91IGFzaz8iLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aG9pcy5leGVjdXRlKCJ0b20iLCBbInRvbnlnQGNocm9taXVt
Lm9yZyJdLCBOb25lLCBOb25lKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoInRvbTogVG9u
eUdAQ2hyb21pdW0ub3JnIGlzIHRvbnlnLWNyLiBXaHkgZG8geW91IGFzaz8iLAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCJ0b206IFRvbnlHQENocm9taXVtLm9yZyBpcyB0b255Zy1jci4gV2h5
IGRvIHlvdSBhc2s/IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hvaXMuZXhlY3V0ZSgi
dG9tIiwgWyJUb255R0BDaHJvbWl1bS5vcmciXSwgTm9uZSwgTm9uZSkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKCJ0b206IHJuaXdhIGlzIHJuaXdhIChybml3YUB3ZWJraXQub3JnKS4gV2h5
IGRvIHlvdSBhc2s/IiwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidG9tOiBybml3YSBpcyBy
bml3YSAocm5pd2FAd2Via2l0Lm9yZykuIFdoeSBkbyB5b3UgYXNrPyIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdob2lzLmV4ZWN1dGUoInRvbSIsIFsicm5pd2EiXSwgTm9uZSwgTm9uZSkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCJ0b206IGxvcGV6IGlzIHhhbiAoeGFuLmxvcGV6
QGdtYWlsLmNvbSwgeGFuQGdub21lLm9yZywgeGFuQHdlYmtpdC5vcmcsIHhsb3BlekBpZ2FsaWEu
Y29tKS4gV2h5IGRvIHlvdSBhc2s/IiwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidG9tOiBs
b3BleiBpcyB4YW4gKHhhbi5sb3BlekBnbWFpbC5jb20sIHhhbkBnbm9tZS5vcmcsIHhhbkB3ZWJr
aXQub3JnLCB4bG9wZXpAaWdhbGlhLmNvbSkuIFdoeSBkbyB5b3UgYXNrPyIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdob2lzLmV4ZWN1dGUoInRvbSIsIFsibG9wZXoiXSwgTm9uZSwgTm9u
ZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCd0b206ICJWaWNraSBNdXJsZXkiIDx2aWNr
aUBhcHBsZS5jb20+IGhhc25cJ3QgdG9sZCBtZSB0aGVpciBuaWNrLiBCb28gaG9vIDotKCcsCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3RvbTogIlZpY2tpIE11cmxleSIgPHZpY2tpQGFwcGxl
LmNvbT4gaGFzblwndCB0b2xkIG1lIHRoZWlyIG5pY2suIEJvbyBob28gOi0oJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2hvaXMuZXhlY3V0ZSgidG9tIiwgWyJ2aWNraUBhcHBsZS5jb20i
XSwgTm9uZSwgTm9uZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCd0b206IElcJ20gbm90
IHN1cmUgd2hvIHlvdSBtZWFuPyAgZ2F2aW5wIG9yIGdiYXJyYSBjb3VsZCBiZSBcJ0dhdmluXCcu
JywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndG9tOiBJXCdtIG5vdCBzdXJlIHdobyB5b3Ug
bWVhbj8gIGdhdmlucCBvciBnYmFycmEgY291bGQgYmUgXCdHYXZpblwnLicsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdob2lzLmV4ZWN1dGUoInRvbSIsIFsiR2F2aW4iXSwgTm9uZSwgTm9u
ZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCd0b206IE1vcmUgdGhhbiA1IGNvbnRyaWJ1
dG9ycyBtYXRjaCBcJ2RhdmlkXCcsIGNvdWxkIHlvdSBiZSBtb3JlIHNwZWNpZmljPycsCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3RvbTogTW9yZSB0aGFuIDUgY29udHJpYnV0b3JzIG1hdGNo
IFwnZGF2aWRcJywgY291bGQgeW91IGJlIG1vcmUgc3BlY2lmaWM/JywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2hvaXMuZXhlY3V0ZSgidG9tIiwgWyJkYXZpZCJdLCBOb25lLCBOb25lKSkK
IAogICAgIGRlZiB0ZXN0X2NyZWF0ZV9idWcoc2VsZik6CiAgICAgICAgIGNyZWF0ZV9idWcgPSBD
cmVhdGVCdWcoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygidG9tOiBVc2FnZTogY3JlYXRl
LWJ1ZyBCVUdfVElUTEUiLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0b206IFVzYWdlOiBj
cmVhdGUtYnVnIEJVR19USVRMRSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9i
dWcuZXhlY3V0ZSgidG9tIiwgW10sIE5vbmUsIE5vbmUpKQogCiAgICAgICAgIGV4YW1wbGVfYXJn
cyA9IFsic2hlcnJpZi1ib3QiLCAic2hvdWxkIiwgImhhdmUiLCAiYSIsICJjcmVhdGUtYnVnIiwg
ImNvbW1hbmQiXQpAQCAtNjgsMTkgKzY4LDE5IEBAIGNsYXNzIElSQ0NvbW1hbmRUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAjIE1vY2tCdWd6aWxsYSBoYXMgYSBjcmVhdGVfYnVn
LCBidXQgaXQgbG9ncyB0byBzdGRlcnIsIHRoaXMgYXZvaWRzIGFueSBsb2dnaW5nLgogICAgICAg
ICB0b29sLmJ1Z3MuY3JlYXRlX2J1ZyA9IGxhbWJkYSBhLCBiLCBjYz1Ob25lLCBhc3NpZ25lZT1O
b25lOiA1MDAwNAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygidG9tOiBDcmVhdGVkIGJ1Zzog
aHR0cDovL2V4YW1wbGUuY29tLzUwMDA0IiwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidG9t
OiBDcmVhdGVkIGJ1ZzogaHR0cDovL2V4YW1wbGUuY29tLzUwMDA0IiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlX2J1Zy5leGVjdXRlKCJ0b20iLCBleGFtcGxlX2FyZ3MsIHRvb2ws
IE5vbmUpKQogCiAgICAgICAgIGRlZiBtb2NrX2NyZWF0ZV9idWcodGl0bGUsIGRlc2NyaXB0aW9u
LCBjYz1Ob25lLCBhc3NpZ25lZT1Ob25lKToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi
RXhjZXB0aW9uIGZyb20gYnVnemlsbGEhIikKICAgICAgICAgdG9vbC5idWdzLmNyZWF0ZV9idWcg
PSBtb2NrX2NyZWF0ZV9idWcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoInRvbTogRmFpbGVk
IHRvIGNyZWF0ZSBidWc6XG5FeGNlcHRpb24gZnJvbSBidWd6aWxsYSEiLAorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCJ0b206IEZhaWxlZCB0byBjcmVhdGUgYnVnOlxuRXhjZXB0aW9uIGZyb20g
YnVnemlsbGEhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX2J1Zy5leGVjdXRl
KCJ0b20iLCBleGFtcGxlX2FyZ3MsIHRvb2wsIE5vbmUpKQogCiAgICAgZGVmIHRlc3Rfcm9sbF9j
aHJvbWl1bV9kZXBzKHNlbGYpOgogICAgICAgICByb2xsID0gUm9sbENocm9taXVtREVQUygpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKE5vbmUsIHJvbGwuX3BhcnNlX2FyZ3MoW10pKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygiMTIzNCIsIHJvbGwuX3BhcnNlX2FyZ3MoWyIxMjM0Il0p
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJvbGwuX3BhcnNlX2FyZ3MoW10pKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIxMjM0Iiwgcm9sbC5fcGFyc2VfYXJncyhbIjEyMzQi
XSkpCiAKICAgICBkZWYgdGVzdF9yb2xsb3V0X3VwZGF0ZXNfd29ya2luZ19jb3B5KHNlbGYpOgog
ICAgICAgICByb2xsb3V0ID0gUm9sbG91dCgpCkBAIC05MSwyNyArOTEsMjcgQEAgY2xhc3MgSVJD
Q29tbWFuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rfcm9sbG91dChz
ZWxmKToKICAgICAgICAgcm9sbG91dCA9IFJvbGxvdXQoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygoWzEyMzRdLCAidGVzdGluZyBmb28iKSwKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgo
WzEyMzRdLCAidGVzdGluZyBmb28iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sbG91
dC5fcGFyc2VfYXJncyhbIjEyMzQiLCAidGVzdGluZyIsICJmb28iXSkpCiAKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoKFs1NTRdLCAidGVzdGluZyBmb28iKSwKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgoWzU1NF0sICJ0ZXN0aW5nIGZvbyIpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICByb2xsb3V0Ll9wYXJzZV9hcmdzKFsicjU1NCIsICJ0ZXN0aW5nIiwgImZvbyJdKSkKIAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygoWzU1NiwgNzkyXSwgInRlc3RpbmcgZm9vIiksCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoKFs1NTYsIDc5Ml0sICJ0ZXN0aW5nIGZvbyIpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICByb2xsb3V0Ll9wYXJzZV9hcmdzKFsicjU1NiIsICI3OTIiLCAi
dGVzdGluZyIsICJmb28iXSkpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoKFsxMjgsIDI1
Nl0sICJ0ZXN0aW5nIGZvbyIpLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChbMTI4LCAyNTZd
LCAidGVzdGluZyBmb28iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sbG91dC5fcGFy
c2VfYXJncyhbInIxMjgscjI1NiIsICJ0ZXN0aW5nIiwgImZvbyJdKSkKIAotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygoWzUxMiwgMTAyNCwgMjA0OF0sICJ0ZXN0aW5nIGZvbyIpLAorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKChbNTEyLCAxMDI0LCAyMDQ4XSwgInRlc3RpbmcgZm9vIiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxvdXQuX3BhcnNlX2FyZ3MoWyI1MTIsIiwgIjEw
MjQsMjA0OCIsICJ0ZXN0aW5nIiwgImZvbyJdKSkKIAogICAgICAgICAjIFRlc3QgaW52YWxpZCBh
cmd1bWVudCBwYXJzaW5nOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoTm9uZSwgTm9uZSks
IHJvbGxvdXQuX3BhcnNlX2FyZ3MoW10pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoTm9u
ZSwgTm9uZSksIHJvbGxvdXQuX3BhcnNlX2FyZ3MoWyItLWJhciIsICIxMjM0Il0pKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKChOb25lLCBOb25lKSwgcm9sbG91dC5fcGFyc2VfYXJncyhbXSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKE5vbmUsIE5vbmUpLCByb2xsb3V0Ll9wYXJzZV9h
cmdzKFsiLS1iYXIiLCAiMTIzNCJdKSkKIAogICAgICAgICAjIEludmFsaWQgYXJndW1lbnRzIHJl
c3VsdCBpbiB0aGUgVVNBR0UgbWVzc2FnZS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoInRv
bTogVXNhZ2U6IHJvbGxvdXQgU1ZOX1JFVklTSU9OIFtTVk5fUkVWSVNJT05TXSBSRUFTT04iLAor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0b206IFVzYWdlOiByb2xsb3V0IFNWTl9SRVZJU0lP
TiBbU1ZOX1JFVklTSU9OU10gUkVBU09OIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9s
bG91dC5leGVjdXRlKCJ0b20iLCBbXSwgTm9uZSwgTm9uZSkpCiAKICAgICAgICAgIyBGSVhNRTog
V2UgbmVlZCBhIGJldHRlciB3YXkgdG8gdGVzdCBJUkNDb21tYW5kcyB3aGljaCBjYWxsIHRvb2wu
aXJjKCkucG9zdCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQppbmRleCAw
ZWIzNDgyOTc3ZTNjMzc0NzkyYjc5MDY3YWE4ZDRkN2EyYzhmYWViLi45NmUyZTRlZWY4YWRjM2Yz
OTExYTA2NmNlYzBmYzcwN2FhNTFiZjllIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJv
ciwgdG9vbC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlLCBsYXlvdXRfdGVzdHNfcmVzdWx0c19w
YXRoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCB0b29sLmZpbGVzeXN0ZW0u
cmVhZF90ZXh0X2ZpbGUsIHVuaXRfdGVzdHNfcmVzdWx0c19wYXRoKQogICAgICAgICAjIGxheW91
dF90ZXN0X3Jlc3VsdHMgc2hvdWxkbid0IHJhaXNlIGV2ZW4gaWYgdGhlIHJlc3VsdHMuaHRtbCBm
aWxlIGlzIG1pc3NpbmcuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlYWRlci5yZXN1bHRz
KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVhZGVyLnJlc3VsdHMoKSwgTm9u
ZSkKIAogICAgIGRlZiB0ZXN0X2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0cyhzZWxmKToKICAgICAg
ICAgdG9vbCA9IE1vY2tUb29sKCkKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJl
c3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgPC90ZXN0c3VpdGU+CiA8L3Rl
c3RzdWl0ZXM+IiIiCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKHt1
bml0X3Rlc3RzX3Jlc3VsdHNfcGF0aDogbm9fZmFpbHVyZXNfeG1sfSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocmVhZGVyLl9jcmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMoKSwgW10pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVhZGVyLl9jcmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMoKSwg
W10pCiAKICAgICBkZWYgdGVzdF9taXNzaW5nX3VuaXRfdGVzdF9yZXN1bHRzX3BhdGgoc2VsZik6
CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCkBAIC03MSwxOSArNzEsMTkgQEAgY2xhc3MgTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmVh
ZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3Vs
dHMoW10pCiAgICAgICAgICMgbGF5b3V0X3Rlc3RfcmVzdWx0cyBzaG91bGRuJ3QgcmFpc2UgZXZl
biBpZiB0aGUgdW5pdCB0ZXN0cyB4bWwgZmlsZSBpcyBtaXNzaW5nLgogICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFscyhyZWFkZXIucmVzdWx0cygpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhyZWFkZXIucmVzdWx0cygpLmZhaWxpbmdfdGVzdHMoKSwgW10pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVhZGVyLnJlc3VsdHMoKS5mYWlsaW5nX3Rlc3RzKCksIFtdKQogCiAK
ICAgICBkZWYgdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZWFkZXIg
PSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihNb2NrVG9vbCgpLCAiL3Zhci9sb2dzIikKICAgICAg
ICAgcmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMgPSBsYW1iZGEgcGF0aDogTm9uZQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhyZWFkZXIucmVzdWx0cygpLCBOb25lKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCiAgICAgICAgIHJlYWRlci5fcmVh
ZF9maWxlX2NvbnRlbnRzID0gbGFtYmRhIHBhdGg6ICIiCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVh
ZGVyLnJlc3VsdHMoKSwgTm9uZSkKICAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3Rf
cmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCiAgICAgICAgIHJlc3VsdHMg
PSByZWFkZXIucmVzdWx0cygpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWxzKHJlc3VsdHMs
IE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9j
b3VudCgpLCAzMCkgICMgVGhpcyB2YWx1ZSBtYXRjaGVzIFJ1blRlc3RzLk5PTl9JTlRFUkFDVElW
RV9GQUlMVVJFX0xJTUlUX0NPVU5UCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0cy5m
YWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlzIHZhbHVlIG1hdGNoZXMgUnVuVGVzdHMu
Tk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKIAogICAgIGRlZiB0ZXN0X2FyY2hp
dmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICB0b29sID0gTW9ja1Rv
b2woKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVu
Z2luZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcXVldWVl
bmdpbmVfdW5pdHRlc3QucHkKaW5kZXggZjk1OWVlMTQ5NDM0Nzc5ZWEzNjU3ZDcxYjIyYWNhYTYz
MWY0MDQxOC4uMjY3ODllZjA1ZWQ1NjZiZjMxYzI3ZmRlZWQyNjEwNGRiZWYxZDM1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3Vu
aXR0ZXN0LnB5CkBAIC04MywxMiArODMsMTIgQEAgY2xhc3MgTG9nZ2luZ0RlbGVnYXRlKFF1ZXVl
RW5naW5lRGVsZWdhdGUpOgogCiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHdvcmtf
aXRlbSk6CiAgICAgICAgIHNlbGYucmVjb3JkKCJwcm9jZXNzX3dvcmtfaXRlbSIpCi0gICAgICAg
IHNlbGYuX3Rlc3QuYXNzZXJ0RXF1YWxzKHdvcmtfaXRlbSwgIndvcmtfaXRlbSIpCisgICAgICAg
IHNlbGYuX3Rlc3QuYXNzZXJ0RXF1YWwod29ya19pdGVtLCAid29ya19pdGVtIikKICAgICAgICAg
cmV0dXJuIFRydWUKIAogICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxmLCB3b3Jr
X2l0ZW0sIG1lc3NhZ2UpOgogICAgICAgICBzZWxmLnJlY29yZCgiaGFuZGxlX3VuZXhwZWN0ZWRf
ZXJyb3IiKQotICAgICAgICBzZWxmLl90ZXN0LmFzc2VydEVxdWFscyh3b3JrX2l0ZW0sICJ3b3Jr
X2l0ZW0iKQorICAgICAgICBzZWxmLl90ZXN0LmFzc2VydEVxdWFsKHdvcmtfaXRlbSwgIndvcmtf
aXRlbSIpCiAKICAgICBkZWYgc3RvcF93b3JrX3F1ZXVlKHNlbGYsIG1lc3NhZ2UpOgogICAgICAg
ICBzZWxmLnJlY29yZCgic3RvcF93b3JrX3F1ZXVlIikKQEAgLTEyMCw4ICsxMjAsOCBAQCBjbGFz
cyBRdWV1ZUVuZ2luZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3RyaXZp
YWwoc2VsZik6CiAgICAgICAgIGRlbGVnYXRlID0gTG9nZ2luZ0RlbGVnYXRlKHNlbGYpCiAgICAg
ICAgIHNlbGYuX3J1bl9lbmdpbmUoZGVsZWdhdGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGRlbGVnYXRlLnN0b3BfbWVzc2FnZSwgIkRlbGVnYXRlIHRlcm1pbmF0ZWQgcXVldWUuIikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZWdhdGUuX2NhbGxiYWNrcywgTG9nZ2luZ0RlbGVn
YXRlLmV4cGVjdGVkX2NhbGxiYWNrcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWxlZ2F0
ZS5zdG9wX21lc3NhZ2UsICJEZWxlZ2F0ZSB0ZXJtaW5hdGVkIHF1ZXVlLiIpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuX2NhbGxiYWNrcywgTG9nZ2luZ0RlbGVnYXRlLmV4cGVj
dGVkX2NhbGxiYWNrcykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbihzZWxmLnRlbXBfZGlyLCAicXVldWVfbG9nX3BhdGgiKSkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oc2VsZi50ZW1wX2Rpciwg
IndvcmtfbG9nX3BhdGgiLCAid29ya19pdGVtLmxvZyIpKSkKIApAQCAtMTMzLDEyICsxMzMsMTIg
QEAgY2xhc3MgUXVldWVFbmdpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBU
aGUgdW5leHBlY3RlZCBlcnJvciBzaG91bGQgYmUgaGFuZGxlZCByaWdodCBhZnRlciBwcm9jZXNz
X3dvcmtfaXRlbSBzdGFydHMKICAgICAgICAgIyBidXQgYmVmb3JlIGFueSBvdGhlciBjYWxsYmFj
ay4gIE90aGVyd2lzZSBjYWxsYmFja3Mgc2hvdWxkIGJlIG5vcm1hbC4KICAgICAgICAgZXhwZWN0
ZWRfY2FsbGJhY2tzLmluc2VydCh3b3JrX2l0ZW1faW5kZXggKyAxLCAnaGFuZGxlX3VuZXhwZWN0
ZWRfZXJyb3InKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxlZ2F0ZS5fY2FsbGJhY2tz
LCBleHBlY3RlZF9jYWxsYmFja3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUu
X2NhbGxiYWNrcywgZXhwZWN0ZWRfY2FsbGJhY2tzKQogCiAgICAgZGVmIHRlc3RfaGFuZGxlZF9l
cnJvcihzZWxmKToKICAgICAgICAgZGVsZWdhdGUgPSBSYWlzaW5nRGVsZWdhdGUoc2VsZiwgU2Ny
aXB0RXJyb3IoZXhpdF9jb2RlPVF1ZXVlRW5naW5lLmhhbmRsZWRfZXJyb3JfY29kZSkpCiAgICAg
ICAgIHNlbGYuX3J1bl9lbmdpbmUoZGVsZWdhdGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGRlbGVnYXRlLl9jYWxsYmFja3MsIExvZ2dpbmdEZWxlZ2F0ZS5leHBlY3RlZF9jYWxsYmFja3Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuX2NhbGxiYWNrcywgTG9nZ2luZ0Rl
bGVnYXRlLmV4cGVjdGVkX2NhbGxiYWNrcykKIAogICAgIGRlZiBfcnVuX2VuZ2luZShzZWxmLCBk
ZWxlZ2F0ZSwgZW5naW5lPU5vbmUsIHRlcm1pbmF0aW9uX21lc3NhZ2U9Tm9uZSk6CiAgICAgICAg
IGlmIG5vdCBlbmdpbmU6CkBAIC0xNTgsOCArMTU4LDggQEAgY2xhc3MgUXVldWVFbmdpbmVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZGVsZWdhdGUgPSBSYWlzaW5nRGVsZWdhdGUo
c2VsZiwgZXhjZXB0aW9uKQogICAgICAgICBzZWxmLl9ydW5fZW5naW5lKGRlbGVnYXRlLCB0ZXJt
aW5hdGlvbl9tZXNzYWdlPXRlcm1pbmF0aW9uX21lc3NhZ2UpCiAKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoZGVsZWdhdGUuX2NhbGxiYWNrcywgZXhwZWN0ZWRfY2FsbGJhY2tzKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhkZWxlZ2F0ZS5zdG9wX21lc3NhZ2UsIHRlcm1pbmF0aW9uX21l
c3NhZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsZWdhdGUuX2NhbGxiYWNrcywgZXhw
ZWN0ZWRfY2FsbGJhY2tzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlbGVnYXRlLnN0b3Bf
bWVzc2FnZSwgdGVybWluYXRpb25fbWVzc2FnZSkKIAogICAgIGRlZiB0ZXN0X3Rlcm1pbmF0aW5n
X2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLl90ZXN0X3Rlcm1pbmF0aW5nX3F1ZXVlKEtleWJv
YXJkSW50ZXJydXB0KCksICJVc2VyIHRlcm1pbmF0ZWQgcXVldWUuIikKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9vcGVuYnVnc191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9vcGVuYnVnc191bml0dGVzdC5w
eQppbmRleCA0MGE2ZTFiMmVlMzNhYzMwNGYzZmNiYzI4NDI1ZmRjYWI3ZjQwYTg1Li4wNmRhYzFm
ZDY2NDJlNTQyYTA0NGM0MjlkNDIzNjFjNmUyNzc4MTE1IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvb3BlbmJ1Z3NfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL29wZW5idWdzX3VuaXR0ZXN0LnB5CkBA
IC00Myw3ICs0Myw3IEBAIGNsYXNzIE9wZW5CdWdzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgIGRl
ZiB0ZXN0X2ZpbmRfYnVnc19pbl9zdHJpbmcoc2VsZik6CiAgICAgICAgIG9wZW5idWdzID0gT3Bl
bkJ1Z3MoKQogICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4gc2VsZi5maW5kX2J1Z3NfaW5fc3Ry
aW5nX2V4cGVjdGF0aW9uczoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG9wZW5idWdz
Ll9maW5kX2J1Z3NfaW5fc3RyaW5nKGV4cGVjdGF0aW9uWzBdKSwgZXhwZWN0YXRpb25bMV0pCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZW5idWdzLl9maW5kX2J1Z3NfaW5fc3RyaW5n
KGV4cGVjdGF0aW9uWzBdKSwgZXhwZWN0YXRpb25bMV0pCiAKICAgICBkZWYgdGVzdF9hcmdzX3Bh
cnNpbmcoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIyIGJ1Z3MgZm91bmQgaW4g
aW5wdXQuXG5NT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vMTIzNDVcbk1P
Q0s6IHVzZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS8yMzQ1NlxuIgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllc191bml0dGVz
dC5weQppbmRleCA3OWJmMWNhOWQwYjIxNTJhNzM5NjlmMjg3OWI1MDZiOGU3YzZjOTU5Li5kYmQ0
OGIwMzFhZjlkY2I3ZjgzYTJkMGE1YmQ1ODE2N2QxNjBmNWRkIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllc191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllc191bml0dGVzdC5weQpA
QCAtMTUwLDEyICsxNTAsMTIgQEAgY2xhc3MgRmFpbHVyZVJlYXNvblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBjb21tYW5kID0gRmFpbHVyZVJlYXNvbigpCiAgICAgICAgIGNvbW1h
bmQuYmluZF90b190b29sKHRvb2wpCiAgICAgICAgICMgVGhpcyBpcyBhbiBhcnRpZmljaWFsIGV4
YW1wbGUsIG1vc3RseSB0byB0ZXN0IHRoZSBDb21taXRJbmZvIGxvb2t1cCBmYWlsdXJlIGNhc2Uu
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbW1hbmQuX2JsYW1lX2xpbmVfZm9yX3Jldmlz
aW9uKDApLCAiRkFJTEVEIHRvIGZldGNoIENvbW1pdEluZm8gZm9yIHIwLCBsaWtlbHkgbWlzc2lu
ZyBDaGFuZ2VMb2ciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1hbmQuX2JsYW1lX2xp
bmVfZm9yX3JldmlzaW9uKDApLCAiRkFJTEVEIHRvIGZldGNoIENvbW1pdEluZm8gZm9yIHIwLCBs
aWtlbHkgbWlzc2luZyBDaGFuZ2VMb2ciKQogCiAgICAgICAgIGRlZiByYWlzaW5nX21vY2soc2Vs
Zik6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk1FU1NBR0UiKQogICAgICAgICB0b29s
LmNoZWNrb3V0KCkuY29tbWl0X2luZm9fZm9yX3JldmlzaW9uID0gcmFpc2luZ19tb2NrCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNvbW1hbmQuX2JsYW1lX2xpbmVfZm9yX3JldmlzaW9uKDAp
LCAiRkFJTEVEIHRvIGZldGNoIENvbW1pdEluZm8gZm9yIHIwLCBleGNlcHRpb246IE1FU1NBR0Ui
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1hbmQuX2JsYW1lX2xpbmVfZm9yX3Jldmlz
aW9uKDApLCAiRkFJTEVEIHRvIGZldGNoIENvbW1pdEluZm8gZm9yIHIwLCBleGNlcHRpb246IE1F
U1NBR0UiKQogCiAKIGNsYXNzIFByaW50RXhwZWN0YXRpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CkBAIC0xNzMsNyArMTczLDcgQEAgY2xhc3MgUHJpbnRFeHBlY3RhdGlvbnNUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIGNvbW1hbmQuZXhlY3V0ZShvcHRpb25zLCB0ZXN0
cywgdG9vbCkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHN0ZG91dCwgXywgXyA9IG9j
LnJlc3RvcmVfb3V0cHV0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3Rkb3V0LCBleHBl
Y3RlZF9zdGRvdXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LCBleHBlY3RlZF9z
dGRvdXQpCiAKICAgICBkZWYgdGVzdF9iYXNpYyhzZWxmKToKICAgICAgICAgc2VsZi5ydW5fdGVz
dChbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9pbWFn
ZS5odG1sJ10sCkBAIC0yNDksNyArMjQ5LDcgQEAgY2xhc3MgUHJpbnRCYXNlbGluZXNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5jYXB0dXJlX291dHB1dCgpCiAgICAgICAg
IGNvbW1hbmQuZXhlY3V0ZShNb2NrT3B0aW9ucyhhbGw9RmFsc2UsIGluY2x1ZGVfdmlydHVhbF90
ZXN0cz1GYWxzZSwgY3N2PUZhbHNlLCBwbGF0Zm9ybT1Ob25lKSwgWydwYXNzZXMvdGV4dC5odG1s
J10sIHNlbGYudG9vbCkKICAgICAgICAgc3Rkb3V0LCBfLCBfID0gc2VsZi5yZXN0b3JlX291dHB1
dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0ZG91dCwKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdGRvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgnLy8gRm9yIHRlc3Qt
d2luLXhwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0
ZWQucG5nXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0
ZWQudHh0XG4nKSkKQEAgLTI2MCw3ICsyNjAsNyBAQCBjbGFzcyBQcmludEJhc2VsaW5lc1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmNhcHR1cmVfb3V0cHV0KCkKICAgICAg
ICAgY29tbWFuZC5leGVjdXRlKE1vY2tPcHRpb25zKGFsbD1GYWxzZSwgaW5jbHVkZV92aXJ0dWFs
X3Rlc3RzPUZhbHNlLCBjc3Y9RmFsc2UsIHBsYXRmb3JtPSd0ZXN0LXdpbi0qJyksIFsncGFzc2Vz
L3RleHQuaHRtbCddLCBzZWxmLnRvb2wpCiAgICAgICAgIHN0ZG91dCwgXywgXyA9IHNlbGYucmVz
dG9yZV9vdXRwdXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdGRvdXQsCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAoJy8v
IEZvciB0ZXN0LXdpbi12aXN0YVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3Nl
cy90ZXh0LWV4cGVjdGVkLnBuZ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3Nl
cy90ZXh0LWV4cGVjdGVkLnR4dFxuJwpAQCAtMjc5LDYgKzI3OSw2IEBAIGNsYXNzIFByaW50QmFz
ZWxpbmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuY2FwdHVyZV9vdXRw
dXQoKQogICAgICAgICBjb21tYW5kLmV4ZWN1dGUoTW9ja09wdGlvbnMoYWxsPUZhbHNlLCBwbGF0
Zm9ybT0nKnhwJywgY3N2PVRydWUsIGluY2x1ZGVfdmlydHVhbF90ZXN0cz1GYWxzZSksIFsncGFz
c2VzL3RleHQuaHRtbCddLCBzZWxmLnRvb2wpCiAgICAgICAgIHN0ZG91dCwgXywgXyA9IHNlbGYu
cmVzdG9yZV9vdXRwdXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzdGRvdXQsCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAo
J3Rlc3Qtd2luLXhwLHBhc3Nlcy90ZXh0Lmh0bWwsTm9uZSxwbmcscGFzc2VzL3RleHQtZXhwZWN0
ZWQucG5nLE5vbmVcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LXdpbi14cCxw
YXNzZXMvdGV4dC5odG1sLE5vbmUsdHh0LHBhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dCxOb25lXG4n
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1
ZXNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzX3VuaXR0ZXN0LnB5CmluZGV4IDYzMDFmZWEwYjk1ZGYxYmY4NzdiYTA2ZjlhYWY2MWI3MDJk
ODg0MmIuLjg4YWIzZGUwNmI3YWZiYjAyNjcxNDA3ZGY1YjE5NTc3MDcyOGY1ZjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0
dGVzdC5weQpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBUZXN0RmVlZGVyUXVldWUoRmVlZGVyUXVl
dWUpOgogCiBjbGFzcyBBYnN0cmFjdFF1ZXVlVGVzdChDb21tYW5kc1Rlc3QpOgogICAgIGRlZiB0
ZXN0X2xvZ19kaXJlY3Rvcnkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RR
dWV1ZSgpLl9sb2dfZGlyZWN0b3J5KCksIG9zLnBhdGguam9pbigiLi4iLCAidGVzdC1xdWV1ZS1s
b2dzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdFF1ZXVlKCkuX2xvZ19kaXJlY3Rv
cnkoKSwgb3MucGF0aC5qb2luKCIuLiIsICJ0ZXN0LXF1ZXVlLWxvZ3MiKSkKIAogICAgIGRlZiBf
YXNzZXJ0X3J1bl93ZWJraXRfcGF0Y2goc2VsZiwgcnVuX2FyZ3MsIHBvcnQ9Tm9uZSk6CiAgICAg
ICAgIHF1ZXVlID0gVGVzdFF1ZXVlKCkKQEAgLTE1NywxNSArMTU3LDE1IEBAIGNsYXNzIEFic3Ry
YWN0UGF0Y2hRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAgcXVldWUuYmluZF90b190
b29sKHRvb2wpCiAgICAgICAgIHF1ZXVlLl9vcHRpb25zID0gTW9jaygpCiAgICAgICAgIHF1ZXVl
Ll9vcHRpb25zLnBvcnQgPSBOb25lCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHF1ZXVlLl9u
ZXh0X3BhdGNoKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVldWUuX25leHRf
cGF0Y2goKSwgTm9uZSkKICAgICAgICAgdG9vbC5zdGF0dXNfc2VydmVyID0gTW9ja1N0YXR1c1Nl
cnZlcih3b3JrX2l0ZW1zPVsyLCAxMDAwMCwgMTAwMDFdKQogICAgICAgICBleHBlY3RlZF9zdGRv
dXQgPSAiTU9DSzogZmV0Y2hfYXR0YWNobWVudDogMiBpcyBub3QgYSBrbm93biBhdHRhY2htZW50
IGlkXG4iICAjIEEgbW9jay1vbmx5IG1lc3NhZ2UgdG8gcHJldmVudCB1cyBmcm9tIG1ha2luZyBt
aXN0YWtlcy4KICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0s6IHJlbGVhc2Vfd29ya19p
dGVtOiBOb25lIDJcbiIKICAgICAgICAgcGF0Y2ggPSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgcXVldWUuX25leHRfcGF0Y2gsIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9z
dGRvdXQsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAgICAgICAgICMgVGhlIHBh
dGNoLmlkKCkgPT0gMiBpcyBpZ25vcmVkIGJlY2F1c2UgaXQgZG9lc24ndCBleGlzdC4KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocGF0Y2guaWQoKSwgMTAwMDApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHF1ZXVlLl9uZXh0X3BhdGNoKCkuaWQoKSwgMTAwMDEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHF1ZXVlLl9uZXh0X3BhdGNoKCksIE5vbmUpICAgICMgV2hlbiB0aGUgcXVl
dWUgaXMgZW1wdHkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXRjaC5pZCgpLCAxMDAwMCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxdWV1ZS5fbmV4dF9wYXRjaCgpLmlkKCksIDEwMDAx
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1ZXVlLl9uZXh0X3BhdGNoKCksIE5vbmUpICAg
ICMgV2hlbiB0aGUgcXVldWUgaXMgZW1wdHkKIAogICAgIGRlZiB0ZXN0X3VwbG9hZF9yZXN1bHRz
X2FyY2hpdmVfZm9yX3BhdGNoKHNlbGYpOgogICAgICAgICBxdWV1ZSA9IEFic3RyYWN0UGF0Y2hR
dWV1ZSgpCkBAIC0zNzcsOSArMzc3LDkgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1p
dC1xdWV1ZSAxMDAwNQogICAgICAgICBzdGF0ZSA9IHsncGF0Y2gnOiBOb25lfQogICAgICAgICBP
dXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc2VxdWVuY2UucnVuX2FuZF9oYW5k
bGVfZXJyb3JzLCBbdG9vbCwgb3B0aW9ucywgc3RhdGVdLCBleHBlY3RlZF9leGNlcHRpb249VHJ5
QWdhaW4sIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMob3B0aW9ucy51cGRhdGUsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKG9wdGlvbnMuYnVpbGQsIEZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvcHRp
b25zLnRlc3QsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMudXBkYXRl
LCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuYnVpbGQsIEZhbHNlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMudGVzdCwgRmFsc2UpCiAKICAgICBkZWYg
dGVzdF9tYW51YWxfcmVqZWN0X2R1cmluZ19wcm9jZXNzaW5nKHNlbGYpOgogICAgICAgICBxdWV1
ZSA9IFNlY29uZFRob3VnaHRzQ29tbWl0UXVldWUoTW9ja1Rvb2woKSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRl
c3QucHkKaW5kZXggN2ExOTYzOGVhZjc3N2RhNjc3MmUwNWMzZTM5NTcwM2IxZGNhMGQ5Ny4uY2My
NWZhZTJiOTJkNTdjNjIxMzM1MzUyZTA0MGRjYTU1NDYwMTljMSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRl
c3QucHkKQEAgLTEwNSw3ICsxMDUsNyBAQCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFy
Z2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAgICAgICAgIHNlbGYub3B0
aW9ucy5zdWZmaXhlcyA9ICJwbmcsd2F2LHR4dCIKICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJh
c2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoc2VsZi5vcHRpb25zKQogCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAogICAgICAgICAg
ICAgW3NlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC5w
bmcnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhl
ci10ZXN0LWFjdHVhbC53YXYnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNl
cnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBC
dWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1s
IFsgRmFpbHVyZSBdCiAgICAgICAgIHNlbGYub3B0aW9ucy5zdWZmaXhlcyA9ICdwbmcsd2F2LHR4
dCcKICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBl
Y3RhdGlvbnMoc2VsZi5vcHRpb25zKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYu
dG9vbC53ZWIudXJsc19mZXRjaGVkLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9v
bC53ZWIudXJsc19mZXRjaGVkLAogICAgICAgICAgICAgW3NlbGYuV0VCX1BSRUZJWCArICcvdXNl
cnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC5wbmcnLAogICAgICAgICAgICAgIHNlbGYuV0VC
X1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC53YXYnLAogICAgICAg
ICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVh
bC50eHQnXSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3Mv
bGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAgICAgICAgIHNlbGYu
b3B0aW9ucy5zdWZmaXhlcyA9ICdwbmcsd2F2LHR4dCcKICAgICAgICAgc2VsZi5jb21tYW5kLl9y
ZWJhc2VsaW5lX3Rlc3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoc2VsZi5vcHRpb25zKQogCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLAogICAgICAg
ICAgICAgW3NlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVh
bC5wbmcnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcvdXNlcnNjcmlwdHMvYW5v
dGhlci10ZXN0LWFjdHVhbC53YXYnLAogICAgICAgICAgICAgIHNlbGYuV0VCX1BSRUZJWCArICcv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWFjdHVhbC50eHQnXSkKQEAgLTE0NiwxMyArMTQ2LDEz
IEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVzLWNyYXNo
Lmh0bWwgWyBGYWlsdXJlIF0KIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfdGVzdChzZWxmKToK
ICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3QoIldlYktpdCBMaW51eCIsICJ1
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIE5vbmUsICJ0eHQiLCBzZWxmLldFQl9QUkVG
SVgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVk
LCBbc2VsZi5XRUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4
dCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVk
LCBbc2VsZi5XRUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4
dCddKQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluZV90ZXN0X3dpdGhfcmVzdWx0c19kaXJlY3Rv
cnkoc2VsZik6CiAgICAgICAgIHNlbGYuX3dyaXRlKHNlbGYubGlvbl9leHBlY3RhdGlvbnNfcGF0
aCwgIkJ1Zyh4KSBbIE1hYyBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdXG5idWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdXG4iKQogICAgICAgICBzZWxmLm9wdGlvbnMucmVzdWx0
c19kaXJlY3RvcnkgPSAnL3RtcCcKICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lX3Rl
c3RfYW5kX3VwZGF0ZV9leHBlY3RhdGlvbnMoc2VsZi5vcHRpb25zKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhzZWxmLnRvb2wud2ViLnVybHNfZmV0Y2hlZCwgWydmaWxlOi8vL3RtcC91c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4dCddKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLCBbJ2ZpbGU6Ly8vdG1wL3VzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC1hY3R1YWwudHh0J10pCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX3Rl
c3RfYW5kX3ByaW50X3NjbV9jaGFuZ2VzKHNlbGYpOgogICAgICAgICBzZWxmLmNvbW1hbmQuX3By
aW50X3NjbV9jaGFuZ2VzID0gVHJ1ZQpAQCAtMTYxLDIwICsxNjEsMjAgQEAgQnVnKEEpIFsgRGVi
dWcgXSA6IGZhc3QvY3NzL2xhcmdlLWxpc3Qtb2YtcnVsZXMtY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQogCiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTGludXgi
LCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBOb25lLCAidHh0IiwgTm9uZSkKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmNvbW1hbmQuX3NjbV9jaGFuZ2VzLCB7J2Fk
ZCc6IFsnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCddLCAnZGVsZXRlJzogW119KQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY29tbWFuZC5fc2NtX2NoYW5nZXMsIHsnYWRk
JzogWycvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0J10sICdkZWxldGUnOiBbXX0pCiAK
ICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX2FuZF9jb3B5X3Rlc3Qoc2VsZik6CiAgICAgICAgIHNl
bGYuX3dyaXRlKCJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiwgImdlbmVy
aWMgcmVzdWx0IikKIAogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCgiV2Vi
S2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBbImNocm9taXVt
LW1hYy1zbm93bGVvcGFyZCJdLCAidHh0IiwgTm9uZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLl9yZWFkKCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9h
bm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0JyksIHNlbGYuTU9DS19XRUJfUkVTVUxUKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9yZWFkKCdwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25v
d2xlb3BhcmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCcpLCAnZ2VuZXJp
YyByZXN1bHQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3JlYWQoJ3BsYXRmb3Jt
L2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQn
KSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5f
cmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3Ro
ZXItdGVzdC1leHBlY3RlZC50eHQnKSwgJ2dlbmVyaWMgcmVzdWx0JykKIAogICAgIGRlZiB0ZXN0
X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVzdF9ub19leGlzdGluZ19yZXN1bHQoc2VsZik6CiAgICAg
ICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZV90ZXN0KCJXZWJLaXQgTWFjMTAuNyIsICJ1c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkIl0s
ICJ0eHQiLCBOb25lKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX3JlYWQoJ3Bs
YXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3Rl
ZC50eHQnKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5fcmVhZCgncGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhl
ci10ZXN0LWV4cGVjdGVkLnR4dCcpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShzZWxmLnRvb2wuZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5fZXhwYW5kKCdw
bGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0
LWV4cGVjdGVkLnR4dCcpKSkKIAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfdGVz
dF93aXRoX2xpb25fcmVzdWx0KHNlbGYpOgpAQCAtMTgyLDkgKzE4Miw5IEBAIEJ1ZyhBKSBbIERl
YnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9mLXJ1bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJl
IF0KIAogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCgiV2ViS2l0IE1hYzEw
LjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCBbImNocm9taXVtLW1hYy1zbm93
bGVvcGFyZCJdLCAidHh0Iiwgc2VsZi5XRUJfUFJFRklYKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNlbGYudG9vbC53ZWIudXJsc19mZXRjaGVkLCBbc2VsZi5XRUJfUFJFRklYICsgJy91
c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4dCddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvdXNl
cnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCIpLCAib3JpZ2luYWwgbGlvbiByZXN1
bHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9yZWFkKCJwbGF0Zm9ybS9jaHJv
bWl1bS1tYWMtbGlvbi91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiksIHNl
bGYuTU9DS19XRUJfUkVTVUxUKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC53
ZWIudXJsc19mZXRjaGVkLCBbc2VsZi5XRUJfUFJFRklYICsgJy91c2Vyc2NyaXB0cy9hbm90aGVy
LXRlc3QtYWN0dWFsLnR4dCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3JlYWQo
InBsYXRmb3JtL2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZC91c2Vyc2NyaXB0cy9hbm90aGVyLXRl
c3QtZXhwZWN0ZWQudHh0IiksICJvcmlnaW5hbCBsaW9uIHJlc3VsdCIpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNj
cmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCIpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkK
IAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfYW5kX2NvcHlfbm9fb3ZlcndyaXRlX3Rlc3Qoc2Vs
Zik6CiAgICAgICAgIHNlbGYuX3dyaXRlKCJwbGF0Zm9ybS9jaHJvbWl1bS1tYWMtbGlvbi91c2Vy
c2NyaXB0cy9hbm90aGVyLXRlc3QtZXhwZWN0ZWQudHh0IiwgIm9yaWdpbmFsIGxpb24gcmVzdWx0
IikKQEAgLTE5Miw4ICsxOTIsOCBAQCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2Ut
bGlzdC1vZi1ydWxlcy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiAKICAgICAgICAgc2VsZi5jb21t
YW5kLl9yZWJhc2VsaW5lX3Rlc3QoIldlYktpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRzL2Fub3Ro
ZXItdGVzdC5odG1sIiwgWyJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiXSwgInR4dCIsIE5vbmUp
CiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21p
dW0tbWFjLXNub3dsZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQi
KSwgIm9yaWdpbmFsIHNub3dsZW9wYXJkIHJlc3VsdCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHNlbGYuX3JlYWQoInBsYXRmb3JtL2Nocm9taXVtLW1hYy1saW9uL3VzZXJzY3JpcHRzL2Fu
b3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwgc2VsZi5NT0NLX1dFQl9SRVNVTFQpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3ds
ZW9wYXJkL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQiKSwgIm9yaWdpbmFs
IHNub3dsZW9wYXJkIHJlc3VsdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVh
ZCgicGxhdGZvcm0vY2hyb21pdW0tbWFjLWxpb24vdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4
cGVjdGVkLnR4dCIpLCBzZWxmLk1PQ0tfV0VCX1JFU1VMVCkKIAogICAgIGRlZiB0ZXN0X3JlYmFz
ZWxpbmVfdGVzdF9pbnRlcm5hbF93aXRoX21vdmVfb3ZlcndyaXR0ZW5fYmFzZWxpbmVzX3RvKHNl
bGYpOgogICAgICAgICBzZWxmLnRvb2wuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIoKQpAQCAt
MjIwLDggKzIyMCw4IEBAIEJ1ZyhBKSBbIERlYnVnIF0gOiBmYXN0L2Nzcy9sYXJnZS1saXN0LW9m
LXJ1bGVzLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KICAgICAgICAgICAgIG91dCwgXywgXyA9IG9j
LnJlc3RvcmVfb3V0cHV0KCkKICAgICAgICAgICAgIGJ1aWxkZXJzLl9leGFjdF9tYXRjaGVzID0g
b2xkX2V4YWN0X21hdGNoZXMKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9yZWFk
KHNlbGYudG9vbC5maWxlc3lzdGVtLmpvaW4ocG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksICdwbGF0
Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4
dCcpKSwgJ29yaWdpbmFsIHNub3dsZW9wYXJkIHJlc3VsdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKG91dCwgJ3siYWRkIjogW119XG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuX3JlYWQoc2VsZi50b29sLmZpbGVzeXN0ZW0uam9pbihwb3J0LmxheW91dF90ZXN0c19kaXIo
KSwgJ3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhw
ZWN0ZWQudHh0JykpLCAnb3JpZ2luYWwgc25vd2xlb3BhcmQgcmVzdWx0JykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChvdXQsICd7ImFkZCI6IFtdfVxuJykKIAogCiBjbGFzcyBUZXN0UmViYXNl
bGluZUpzb24oX0Jhc2VUZXN0Q2FzZSk6CkBAIC0yNDYsNyArMjQ2LDcgQEAgY2xhc3MgVGVzdFJl
YmFzZWxpbmVKc29uKF9CYXNlVGVzdENhc2UpOgogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFz
ZWxpbmUob3B0aW9ucywgIHsidXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIjogeyJNT0NL
IGJ1aWxkZXIiOiBbInR4dCIsICJwbmciXX19KQogCiAgICAgICAgICMgTm90ZSB0aGF0IHdlIGhh
dmUgb25lIHJ1bl9pbl9wYXJhbGxlbCgpIGNhbGwgZm9sbG93ZWQgYnkgYSBydW5fY29tbWFuZCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYudG9vbC5leGVjdXRpdmUuY2FsbHMsCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50b29sLmV4ZWN1dGl2ZS5jYWxscywKICAgICAg
ICAgICAgIFtbWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVzdC1pbnRlcm5hbCcsICctLXN1ZmZpeGVz
JywgJ3R4dCxwbmcnLCAnLS1idWlsZGVyJywgJ01PQ0sgYnVpbGRlcicsICctLXRlc3QnLCAndXNl
ci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJywgJy0tdmVyYm9zZSddXSwKICAgICAgICAgICAg
ICBbJ2VjaG8nLCAnLS12ZXJib3NlJywgJ29wdGltaXplLWJhc2VsaW5lcycsICctLXN1ZmZpeGVz
JywgJ3R4dCxwbmcnLCAndXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJ11dKQogCkBAIC0y
NTUsNyArMjU1LDcgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVKc29uKF9CYXNlVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmUob3B0aW9ucywgIHsidXNlci1zY3JpcHRz
L2Fub3RoZXItdGVzdC5odG1sIjogeyJNT0NLIGJ1aWxkZXIgKERlYnVnKSI6IFsidHh0IiwgInBu
ZyJdfX0pCiAKICAgICAgICAgIyBOb3RlIHRoYXQgd2UgaGF2ZSBvbmUgcnVuX2luX3BhcmFsbGVs
KCkgY2FsbCBmb2xsb3dlZCBieSBhIHJ1bl9jb21tYW5kKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoc2VsZi50b29sLmV4ZWN1dGl2ZS5jYWxscywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnRvb2wuZXhlY3V0aXZlLmNhbGxzLAogICAgICAgICAgICAgW1tbJ2VjaG8nLCAncmVi
YXNlbGluZS10ZXN0LWludGVybmFsJywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICctLWJ1aWxk
ZXInLCAnTU9DSyBidWlsZGVyIChEZWJ1ZyknLCAnLS10ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90
aGVyLXRlc3QuaHRtbCcsICctLXZlcmJvc2UnXV0sCiAgICAgICAgICAgICAgWydlY2hvJywgJy0t
dmVyYm9zZScsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywg
J3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddXSkKIApAQCAtMjY0LDcgKzI2NCw3IEBA
IGNsYXNzIFRlc3RSZWJhc2VsaW5lSnNvbihfQmFzZVRlc3RDYXNlKToKICAgICAgICAgc2VsZi5j
b21tYW5kLl9yZWJhc2VsaW5lKG9wdGlvbnMsICB7InVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3Qu
aHRtbCI6IHsiTU9DSyBidWlsZGVyIjogWyJ0eHQiLCAicG5nIl19fSkKIAogICAgICAgICAjIE5v
dGUgdGhhdCB3ZSBoYXZlIG9uZSBydW5faW5fcGFyYWxsZWwoKSBjYWxsIGZvbGxvd2VkIGJ5IGEg
cnVuX2NvbW1hbmQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLnRvb2wuZXhlY3V0
aXZlLmNhbGxzLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC5leGVjdXRpdmUu
Y2FsbHMsCiAgICAgICAgICAgICBbW1snZWNobycsICdyZWJhc2VsaW5lLXRlc3QtaW50ZXJuYWwn
LCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywgJy0tYnVpbGRlcicsICdNT0NLIGJ1aWxkZXInLCAn
LS10ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCcsICctLW1vdmUtb3Zlcndy
aXR0ZW4tYmFzZWxpbmVzLXRvJywgJ3Rlc3QtbWFjLWxlb3BhcmQnLCAnLS12ZXJib3NlJ11dLAog
ICAgICAgICAgICAgIFsnZWNobycsICctLXZlcmJvc2UnLCAnb3B0aW1pemUtYmFzZWxpbmVzJywg
Jy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICd1c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwn
XV0pCiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZUpzb24oX0Jhc2VU
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuY29tbWFuZC5fcmViYXNlbGluZShvcHRpb25zLCAgeyJ1
c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiOiB7Ik1PQ0sgYnVpbGRlciAoRGVidWcpIjog
WyJ0eHQiLCAicG5nIl19fSkKIAogICAgICAgICAjIE5vdGUgdGhhdCB3ZSBoYXZlIG9ubHkgb25l
IHJ1bl9pbl9wYXJhbGxlbCgpIGNhbGwKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi50
b29sLmV4ZWN1dGl2ZS5jYWxscywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRvb2wu
ZXhlY3V0aXZlLmNhbGxzLAogICAgICAgICAgICAgW1tbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0
LWludGVybmFsJywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICctLWJ1aWxkZXInLCAnTU9DSyBi
dWlsZGVyIChEZWJ1ZyknLCAnLS10ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRt
bCcsICctLXZlcmJvc2UnXV1dKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19kaXJlY3Rvcnkoc2Vs
Zik6CkBAIC0yODEsNyArMjgxLDcgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVKc29uKF9CYXNlVGVz
dENhc2UpOgogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmUob3B0aW9ucywgIHsidXNl
ci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIjogeyJNT0NLIGJ1aWxkZXIiOiBbInR4dCIsICJw
bmciXX19KQogCiAgICAgICAgICMgTm90ZSB0aGF0IHdlIGhhdmUgb25seSBvbmUgcnVuX2luX3Bh
cmFsbGVsKCkgY2FsbAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLnRvb2wuZXhlY3V0
aXZlLmNhbGxzLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudG9vbC5leGVjdXRpdmUu
Y2FsbHMsCiAgICAgICAgICAgICBbW1snZWNobycsICdyZWJhc2VsaW5lLXRlc3QtaW50ZXJuYWwn
LCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywgJy0tYnVpbGRlcicsICdNT0NLIGJ1aWxkZXInLCAn
LS10ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCcsICctLXJlc3VsdHMtZGly
ZWN0b3J5JywgJy90bXAnLCAnLS12ZXJib3NlJ11dXSkKIAogCkBAIC0zMTMsNyArMzEzLDcgQEAg
Y2xhc3MgVGVzdFJlYmFzZWxpbmUoX0Jhc2VUZXN0Q2FzZSk6CiAgICAgICAgICAgICBidWlsZGVy
cy5fZXhhY3RfbWF0Y2hlcyA9IG9sZF9leGFjdF9tYXRjaGVzCiAKICAgICAgICAgY2FsbHMgPSBm
aWx0ZXIobGFtYmRhIHg6IHggIT0gWydxbWFrZScsICctdiddIGFuZCB4WzBdICE9ICdwZXJsJywg
c2VsZi50b29sLmV4ZWN1dGl2ZS5jYWxscykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2Fs
bHMsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbHMsCiAgICAgICAgICAgICBbW1snZWNo
bycsICdyZWJhc2VsaW5lLXRlc3QtaW50ZXJuYWwnLCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywg
Jy0tYnVpbGRlcicsICdNT0NLIGJ1aWxkZXInLCAnLS10ZXN0JywgJ21vY2svcGF0aC90by90ZXN0
Lmh0bWwnLCAnLS12ZXJib3NlJ11dXSkKIAogCkBAIC0zNDcsOCArMzQ3LDggQEAgY2xhc3MgVGVz
dFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMoX0Jhc2VUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxm
LmNvbW1hbmQuZXhlY3V0ZShzZWxmLm9wdGlvbnMsIFtdLCBzZWxmLnRvb2wpCiAgICAgICAgIGZp
bmFsbHk6CiAgICAgICAgICAgICBfLCBfLCBsb2dzID0gb2MucmVzdG9yZV9vdXRwdXQoKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi50b29sLmZpbGVzeXN0ZW0ud3JpdHRlbl9m
aWxlcywge30pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsb2dzLCAnRGlkIG5vdCBm
aW5kIGFueSB0ZXN0cyBtYXJrZWQgUmViYXNlbGluZS5cbicpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYudG9vbC5maWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMsIHt9KQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dzLCAnRGlkIG5vdCBmaW5kIGFueSB0ZXN0cyBtYXJr
ZWQgUmViYXNlbGluZS5cbicpCiAKICAgICBkZWYgZGlzYWJsZWRfdGVzdF9vdmVycmlkZXNfYXJl
X2luY2x1ZGVkX2NvcnJlY3RseShzZWxmKToKICAgICAgICAgIyBUaGlzIHRlc3RzIHRoYXQgdGhl
IGFueSB0ZXN0cyBtYXJrZWQgYXMgUkVCQVNFTElORSBpbiB0aGUgb3ZlcnJpZGVzIGFyZSBmb3Vu
ZCwgYnV0CkBAIC0zNjIsOCArMzYyLDggQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVFeHBlY3RhdGlv
bnMoX0Jhc2VUZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICdCdWcoeSkgdXNl
cnNjcmlwdHMvdGVzdC5odG1sIFsgQ3Jhc2ggXVxuJyl9CiAgICAgICAgIHNlbGYuX3dyaXRlKCcv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnLCAnJykKIAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWxmLmNvbW1hbmQuX3Rlc3RzX3RvX3JlYmFzZWxpbmUoc2VsZi5saW9uX3BvcnQp
LCB7J3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJzogc2V0KFsncG5nJywgJ3R4dCcsICd3
YXYnXSl9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9yZWFkKHNlbGYubGlvbl9l
eHBlY3RhdGlvbnNfcGF0aCksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY29t
bWFuZC5fdGVzdHNfdG9fcmViYXNlbGluZShzZWxmLmxpb25fcG9ydCksIHsndXNlcnNjcmlwdHMv
YW5vdGhlci10ZXN0Lmh0bWwnOiBzZXQoWydwbmcnLCAndHh0JywgJ3dhdiddKX0pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fcmVhZChzZWxmLmxpb25fZXhwZWN0YXRpb25zX3BhdGgp
LCAnJykKIAogCiBjbGFzcyBfRmFrZU9wdGltaXplcihCYXNlbGluZU9wdGltaXplcik6CkBAIC0z
ODcsMTQgKzM4NywxNCBAQCBjbGFzcyBUZXN0QW5hbHl6ZUJhc2VsaW5lcyhfQmFzZVRlc3RDYXNl
KToKIAogICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CiAgICAgICAgIHNlbGYuY29tbWFuZC5l
eGVjdXRlKE1vY2tPcHRpb25zKHN1ZmZpeGVzPSd0eHQnLCBtaXNzaW5nPUZhbHNlLCBwbGF0Zm9y
bT1Ob25lKSwgWydwYXNzZXMvdGV4dC5odG1sJ10sIHNlbGYudG9vbCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi5saW5lcywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxp
bmVzLAogICAgICAgICAgICAgWydwYXNzZXMvdGV4dC1leHBlY3RlZC50eHQ6JywKICAgICAgICAg
ICAgICAnICAoZ2VuZXJpYyk6IDEyMzQ1NicsCiAgICAgICAgICAgICAgJyAgdGVzdC1tYWMtbGVv
cGFyZDogYWJjZGVmJ10pCiAKICAgICBkZWYgdGVzdF9taXNzaW5nX2Jhc2VsaW5lcyhzZWxmKToK
ICAgICAgICAgc2VsZi5jb21tYW5kLmV4ZWN1dGUoTW9ja09wdGlvbnMoc3VmZml4ZXM9J3BuZyx0
eHQnLCBtaXNzaW5nPVRydWUsIHBsYXRmb3JtPU5vbmUpLCBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwg
c2VsZi50b29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmxpbmVzLAorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubGluZXMsCiAgICAgICAgICAgICBbJ3Bhc3Nlcy90ZXh0
LWV4cGVjdGVkLnBuZzogKG5vIGJhc2VsaW5lcyBmb3VuZCknLAogICAgICAgICAgICAgICdwYXNz
ZXMvdGV4dC1leHBlY3RlZC50eHQ6JywKICAgICAgICAgICAgICAnICAoZ2VuZXJpYyk6IDEyMzQ1
NicsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcm9s
bF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yb2xs
X3VuaXR0ZXN0LnB5CmluZGV4IDgwMGJjNWI5NmI5ODU0NTMzNDQ4OWFhYWI5MTdkMDlkYzNiMzk1
M2MuLjIzN2ExYzk0ZjI5Zjk0NWFhNWFiZTE1ZTczMWEyMjIxMGZmOTQ4NTAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yb2xsX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yb2xsX3VuaXR0ZXN0LnB5
CkBAIC01Niw4ICs1Niw4IEBAIGNsYXNzIFBvc3RSb2xsQ29tbWFuZHNUZXN0KENvbW1hbmRzVGVz
dCk6CiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCiAgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbCgpCiAgICAgICAgIGxrZ3Jfc3RhdGUgPSBwb3N0cm9sbC5fcHJlcGFyZV9zdGF0ZShvcHRp
b25zLCBbTm9uZSwgImxhc3Qta25vd24gZ29vZCByZXZpc2lvbiJdLCB0b29sKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhOb25lLCBsa2dyX3N0YXRlWyJjaHJvbWl1bV9yZXZpc2lvbiJdKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygiUm9sbCBDaHJvbWl1bSBERVBTIHRvIGxhc3Qta25v
d24gZ29vZCByZXZpc2lvbiIsIGxrZ3Jfc3RhdGVbImJ1Z190aXRsZSJdKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIGxrZ3Jfc3RhdGVbImNocm9taXVtX3JldmlzaW9uIl0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlJvbGwgQ2hyb21pdW0gREVQUyB0byBsYXN0LWtub3duIGdv
b2QgcmV2aXNpb24iLCBsa2dyX3N0YXRlWyJidWdfdGl0bGUiXSkKICAgICAgICAgcmV2aXNpb25f
c3RhdGUgPSBwb3N0cm9sbC5fcHJlcGFyZV9zdGF0ZShvcHRpb25zLCBbIjEyMzQiLCAicjEyMzQi
XSwgdG9vbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoIjEyMzQiLCByZXZpc2lvbl9zdGF0
ZVsiY2hyb21pdW1fcmV2aXNpb24iXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoIlJvbGwg
Q2hyb21pdW0gREVQUyB0byByMTIzNCIsIHJldmlzaW9uX3N0YXRlWyJidWdfdGl0bGUiXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiMTIzNCIsIHJldmlzaW9uX3N0YXRlWyJjaHJvbWl1bV9y
ZXZpc2lvbiJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJSb2xsIENocm9taXVtIERFUFMg
dG8gcjEyMzQiLCByZXZpc2lvbl9zdGF0ZVsiYnVnX3RpdGxlIl0pCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJf
dW5pdHRlc3QucHkKaW5kZXggOTk2MTY0OGRlMzkyY2I5N2VjNzBmMGVmZTY5OWE5NGExOTliMzYx
ZS4uMjBjYmI5YzljZWQ2MjA4NWJmYTUzZTVkZmJjNWE4Y2IyZDQ3NDU5NSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmlu
Z3NlcnZlcl91bml0dGVzdC5weQpAQCAtOTAsNyArOTAsNyBAQCBjbGFzcyBCdWlsZENvdmVyYWdl
RXh0cmFwb2xhdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBob3N0
LnBvcnRfZmFjdG9yeS5nZXQoJ2Nocm9taXVtLXdpbi13aW43JywgTm9uZSkKICAgICAgICAgY29u
dmVydGVyID0gVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIocG9ydC5hbGxfdGVzdF9jb25maWd1
cmF0aW9ucygpLCBwb3J0LmNvbmZpZ3VyYXRpb25fc3BlY2lmaWVyX21hY3JvcygpKQogICAgICAg
ICBleHRyYXBvbGF0b3IgPSBCdWlsZENvdmVyYWdlRXh0cmFwb2xhdG9yKGNvbnZlcnRlcikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXh0cmFwb2xhdG9yLmV4dHJhcG9sYXRlX3Rlc3RfY29u
ZmlndXJhdGlvbnMoIldlYktpdCBYUCIpLCBzZXQoW1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249
J3hwJywgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPSdyZWxlYXNlJyldKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHRyYXBvbGF0b3IuZXh0cmFwb2xhdGVfdGVzdF9jb25maWd1
cmF0aW9ucygiV2ViS2l0IFhQIiksIHNldChbVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj0neHAn
LCBhcmNoaXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9J3JlbGVhc2UnKV0pKQogICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgZXh0cmFwb2xhdG9yLmV4dHJhcG9sYXRlX3Rlc3Rf
Y29uZmlndXJhdGlvbnMsICJQb3RhdG8iKQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9hZGRzdm5taW1ldHlwZWZvcnBuZ191bml0
dGVzdC5weQppbmRleCAyMjFjNmJjOTQzYTI0MGEyODFjYjQzMWYxNmZjMTgxY2FmYWFmN2NkLi45
ZmFiNmY0Mzg2NTE3Y2Q3NGUyZTQ5ZWI2YTYxNmRiZmQ3MWM1MGQ2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYWRkc3ZubWltZXR5cGVmb3JwbmdfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2FkZHN2bm1pbWV0
eXBlZm9ycG5nX3VuaXR0ZXN0LnB5CkBAIC01NSw0ICs1NSw0IEBAIGNsYXNzIEFkZFN2bk1pbWV0
eXBlRm9yUG5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFtzdGF0ZV0pCiAgICAg
ICAgIGV4Y2VwdCBTeXN0ZW1FeGl0LCBlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
ZS5jb2RlLCAxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmNvZGUsIDEpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxv
Z191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJl
Y2hhbmdlbG9nX3VuaXR0ZXN0LnB5CmluZGV4IDg0N2RjMmY5MzM1MGUwOWRlY2NkOGM2NDk0ZjMx
YTkyZjBmOTg1N2MuLmZjMzFkMWZhOTZlM2Y0ZjhjYzU2YjM1YzZhY2JmZDQ4NTZiODNhMzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdl
bG9nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9w
cmVwYXJlY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CkBAIC01NCw0ICs1NCw0IEBAIGNsYXNzIFByZXBh
cmVDaGFuZ2VMb2dUZXN0KGNoYW5nZWxvZ191bml0dGVzdC5DaGFuZ2VMb2dUZXN0KToKICAgICAg
ICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICJFeGFtcGxlIHRpdGxlXG4gICAgICAgIGh0dHA6Ly9leGFt
cGxlLmNvbS8xMjM0IgogICAgICAgICBleHBlY3RlZF9jb250ZW50cyA9IGNoYW5nZWxvZ19jb250
ZW50cy5yZXBsYWNlKCJOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS5cbiAgICAgICAg
TmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLiIsIGV4cGVjdGVkX21lc3NhZ2UpCiAgICAgICAgIG9z
LnJlbW92ZShjaGFuZ2Vsb2dfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFs
X2NvbnRlbnRzLnNwbGl0bGluZXMoKSwgZXhwZWN0ZWRfY29udGVudHMuc3BsaXRsaW5lcygpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9jb250ZW50cy5zcGxpdGxpbmVzKCksIGV4
cGVjdGVkX2NvbnRlbnRzLnNwbGl0bGluZXMoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nZm9ycmV2ZXJ0X3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3Jy
ZXZlcnRfdW5pdHRlc3QucHkKaW5kZXggMDc2ZTYwMjUyMmVjYTdjYzE1MzQ3YzRmY2M3YzA0OWIx
NTRmZjMwMi4uYjgyY2I0YWEyMmIzY2RjY2YwZGE0NDA3NmMzYzU2ODhmZTMwNTQ5NyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dm
b3JyZXZlcnRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnRfdW5pdHRlc3QucHkKQEAgLTExNSwxMSArMTE1
LDExIEBAIGNsYXNzIFVwZGF0ZUNoYW5nZUxvZ3NGb3JSZXZlcnRUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgY2hhbmdlbG9nLnVwZGF0ZV93aXRoX3VucmV2aWV3ZWRfbWVzc2FnZShQ
cmVwYXJlQ2hhbmdlTG9nRm9yUmV2ZXJ0Ll9tZXNzYWdlX2Zvcl9yZXZlcnQoKmFyZ3MpKQogICAg
ICAgICBhY3R1YWxfZW50cnkgPSBjaGFuZ2Vsb2cubGF0ZXN0X2VudHJ5KCkKICAgICAgICAgb3Mu
cmVtb3ZlKGNoYW5nZWxvZ19wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWxf
ZW50cnkuY29udGVudHMoKSwgZXhwZWN0ZWRfZW50cnkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGFjdHVhbF9lbnRyeS5yZXZpZXdlcl90ZXh0KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoYWN0dWFsX2VudHJ5LmNvbnRlbnRzKCksIGV4cGVjdGVkX2VudHJ5KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5yZXZpZXdlcl90ZXh0KCksIE5vbmUpCiAg
ICAgICAgICMgVGhlc2UgY2hlY2tzIGNvdWxkIGJlIHJlbW92ZWQgdG8gYWxsb3cgdGhpcyB0byB3
b3JrIG9uIG90aGVyIGVudHJpZXM6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGFjdHVhbF9l
bnRyeS5hdXRob3JfbmFtZSgpLCAiRXJpYyBTZWlkZWwiKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhhY3R1YWxfZW50cnkuYXV0aG9yX2VtYWlsKCksICJlcmljQHdlYmtpdC5vcmciKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5hdXRob3JfbmFtZSgpLCAiRXJpYyBT
ZWlkZWwiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9lbnRyeS5hdXRob3JfZW1h
aWwoKSwgImVyaWNAd2Via2l0Lm9yZyIpCiAKICAgICBkZWYgdGVzdF9tZXNzYWdlX2Zvcl9yZXZl
cnQoc2VsZik6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9tZXNzYWdlX2Zvcl9yZXZlcnRfb3V0cHV0
KFtbMTIzNDVdLCAiUmVhc29uIl0sIHNlbGYuX3JldmVydF9lbnRyeV93aXRob3V0X2J1Z191cmwp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UmVzdWx0U2VydmVyL21vZGVsL2pzb25yZXN1bHRzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvVGVzdFJlc3VsdFNlcnZlci9tb2RlbC9qc29ucmVzdWx0c191bml0
dGVzdC5weQppbmRleCA0ZDVmYTlkZTlmMjM0ODEwZmM1YjM2ZGYzY2YzZTE3YzlhOTFiMTUxLi4w
ZTY1ZDBiZjI4ZjE4ZTQ1ZDQ2ZWVhNWMwYzI2YWFjNWYwMjg5NjIwIDEwMDc1NQotLS0gYS9Ub29s
cy9UZXN0UmVzdWx0U2VydmVyL21vZGVsL2pzb25yZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1Rlc3RSZXN1bHRTZXJ2ZXIvbW9kZWwvanNvbnJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBjbGFzcyBKc29uUmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgICAgIGlmIGV4cGVjdGVkX2RhdGE6CiAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRz
ID0gc2VsZi5fbWFrZV90ZXN0X2pzb24oZXhwZWN0ZWRfZGF0YSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKG1lcmdlZF9yZXN1bHRzLCBleHBlY3RlZF9yZXN1bHRzKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtZXJnZWRfcmVzdWx0cywgZXhwZWN0ZWRfcmVzdWx0cykKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWVyZ2VkX3Jlc3VsdHMp
CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBjbGFzcyBKc29uUmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBpbnB1dF9yZXN1bHRzID0gc2VsZi5fbWFrZV90ZXN0X2pzb24oaW5w
dXRfZGF0YSkKICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IEpTT05fUkVTVUxUU19URVNUX0xJ
U1RfVEVNUExBVEUucmVwbGFjZSgie1tURVNUREFUQV9URVNUU119Iiwgc2ltcGxlanNvbi5kdW1w
cyhleHBlY3RlZF9kYXRhLCBzZXBhcmF0b3JzPSgnLCcsICc6JykpKQogICAgICAgICBhY3R1YWxf
cmVzdWx0cyA9IEpzb25SZXN1bHRzLmdldF90ZXN0X2xpc3Qoc2VsZi5fYnVpbGRlciwgaW5wdXRf
cmVzdWx0cykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsX3Jlc3VsdHMsIGV4cGVj
dGVkX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3VsdHMsIGV4
cGVjdGVkX3Jlc3VsdHMpCiAKICAgICBkZWYgdGVzdF9tZXJnZV9udWxsX2luY3JlbWVudGFsX3Jl
c3VsdHMoc2VsZik6CiAgICAgICAgICMgRW1wdHkgaW5jcmVtZW50YWwgcmVzdWx0cyBqc29uLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>