<?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>156335</bug_id>
          
          <creation_ts>2016-04-07 02:04:41 -0700</creation_ts>
          <short_desc>Migrate legacy perf dashboard tests to mocha.js based tests</short_desc>
          <delta_ts>2016-04-07 15:10:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181614</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-07 02:04:41 -0700</bug_when>
    <thetext>We have a bunch of legacy tests inside tests/ directory.
Migrate these tests to use the new harness added in http://trac.webkit.org/changeset/198642.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181619</commentid>
    <comment_count>1</comment_count>
      <attachid>275872</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-07 02:21:55 -0700</bug_when>
    <thetext>Created attachment 275872
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181794</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-07 12:31:41 -0700</bug_when>
    <thetext>Patch does not apply?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181800</commentid>
    <comment_count>3</comment_count>
      <attachid>275916</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-07 12:37:33 -0700</bug_when>
    <thetext>Created attachment 275916
Fixed the patch paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181805</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-07 12:38:40 -0700</bug_when>
    <thetext>Still doesn&apos;t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181808</commentid>
    <comment_count>5</comment_count>
      <attachid>275919</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-07 12:47:41 -0700</bug_when>
    <thetext>Created attachment 275919
Another attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181869</commentid>
    <comment_count>6</comment_count>
      <attachid>275919</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-07 14:11:16 -0700</bug_when>
    <thetext>Comment on attachment 275919
Another attempt

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

rs=me

&gt; Websites/perf.webkit.org/ChangeLog:17
&gt; +        Also deceased the timeout in most tests from 10s to 1s so that tests fail early when they timeout.

deceased -&gt; decreased :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181916</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-07 15:10:50 -0700</bug_when>
    <thetext>Committed r199191: &lt;http://trac.webkit.org/changeset/199191&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275872</attachid>
            <date>2016-04-07 02:21:55 -0700</date>
            <delta_ts>2016-04-07 12:37:33 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>fix156335.patch</filename>
            <type>text/plain</type>
            <size>252865</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTE1
MCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE2LTA0
LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1pZ3JhdGUg
bGVnYWN5IHBlcmYgZGFzaGJvYXJkIHRlc3RzIHRvIG1vY2hhLmpzIGJhc2VkIHRlc3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYzMzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaWdyYXRlZCBhbGwg
bGVnYWN5IHJ1bi10ZXN0cy5qcyB0ZXN0cyB0byBtb2NoYS5qcyBiYXNlZCB0ZXN0cy4gU2luY2Ug
dGhlIG5ldyBoYXJuZXNzIHVzZXMgUHJvbWlzZQorICAgICAgICBmb3IgbW9zdCBvZiBhc3luY2hy
b25vdXMgb3BlcmF0aW9ucywgcmVmYWN0b3JlZCB0aGUgdGVzdHMgdG8gdXNlIFByb21pc2VzIGFz
IHdlbGwsIGFuZCBhZGRlZCBtb3JlCisgICAgICAgIGFzc2VydGlvbnMgd2hlcmUgYXBwcm9wcmlh
dGUuCisKKyAgICAgICAgQWxzbyBjb25zb2xpZGF0ZWQgY29tbW9uIGhlbHBlciBmdW5jdGlvbnMg
aW50byBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzLgorICAgICAg
ICBVbmZvcnR1bmF0ZWx5IHRoZXJlIHdlcmUgbXVsdGlwbGUgaW5jb25zaXN0ZW50IGltcGxlbWVu
dGF0aW9ucyBvZiBhZGRCdWlsZGVyL2FkZFNsYXZlLiBTb21lIHdlcmUKKyAgICAgICAgdGFraW5n
IGFuIGFycmF5IG9mIHJlcG9ydHMgd2hpbGUgb3RoZXJzIHdlcmUgdGFraW5nIGEgc2luZ2xlIHJl
cG9ydC4gTmV3IHNoYXJlZCBpbXBsZW1lbnRhdGlvbiBpbgorICAgICAgICBjb21tb24tb3BlcmF0
aW9ucy5qcyBub3cgdGFrZXMgYSBzaW5nbGUgcmVwb3J0LgorCisgICAgICAgIEFsc28gZGVjZWFz
ZWQgdGhlIHRpbWVvdXQgaW4gbW9zdCB0ZXN0cyBmcm9tIDEwcyB0byAxcyBzbyB0aGF0IHRlc3Rz
IGZhaWwgZWFybHkgd2hlbiB0aGV5IHRpbWVvdXQuCisgICAgICAgIE1vc3Qgb2YgdGVzdHMgYXJl
IHBhc3NpbmcgdW5kZXIgMTAwbXMgb24gbXkgY29tcHV0ZXIgc28gMXMgc2hvdWxkIGJlIHBsZW50
eSBzdGlsbC4KKworICAgICAgICAqIHJ1bi10ZXN0cy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzOiBNb3ZlZCBmcm9tIHRlc3RzL2Fk
bWluLXBsYXRmb3Jtcy5qcy4KKyAgICAgICAgKHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMp
OgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpz
OiBNb3ZlZCBmcm9tIHRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQuanMuCisgICAgICAgICgu
YWRkQnVpbGRlcik6IE1vdmVkIHRvIGNvbW1vbi1vcGVyYXRpb25zLmpzLgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6CisgICAgICAgICogc2VydmVy
LXRlc3RzL2FwaS1tYW5pZmVzdC5qczogVXNlIE1vY2tEYXRhLnJlc2V0VjNNb2RlbHMoKSBpbnN0
ZWFkIG9mIG1hbnVhbGx5IGNsZWFyaW5nIG1hcHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL2Fw
aS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanM6IE1vdmVkIGZyb20gdGVzdHMvYXBpLW1lYXN1cmVt
ZW50LXNldC5qcy4KKyAgICAgICAgKC5xdWVyeVBsYXRmb3JtQW5kTWV0cmljKToKKyAgICAgICAg
KC5mb3JtYXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVz
dHMuanM6IE1vdmVkIGZyb20gdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLmpzLgorICAgICAgICAq
IHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOiBNb3ZlZCBmcm9tIHRlc3RzL2FwaS1y
ZXBvcnQuanMuCisgICAgICAgICguZW1wdHlSZXBvcnQpOgorICAgICAgICAoLmVtcHR5U2xhdmVS
ZXBvcnQpOgorICAgICAgICAoLnJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUpOgorICAgICAgICAq
IHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanM6IEFkZGVkLgorICAg
ICAgICAoYWRkQnVpbGRlckZvclJlcG9ydCk6IEV4dHJhY3RlZCBmcm9tIHRlc3RzLgorICAgICAg
ICAoYWRkU2xhdmVGb3JSZXBvcnQpOiBEaXR0by4KKyAgICAgICAgKGNvbm5lY3RUb0RhdGFiYXNl
SW5FdmVyeVRlc3QpOiBBZGRlZC4KKyAgICAgICAgKHN1Ym1pdFJlcG9ydCk6IEV4dHJhY3RlZCBm
cm9tIGFkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmpzOgorICAgICAgICAoVGVzdFNlcnZlcik6IE1ha2UgVGVzdFNl
cnZlciBhIHNpbmdsZXRvbiBzaW5jZSBpdCBkb2Vzbid0IG1ha2UgYW55IHNlbnNlIGZvciBlYWNo
IG1vZHVsZSB0byBzdGFydAorICAgICAgICBpdHMgb3duIEFwYWNoZSBpbnN0YW5jZSAodGhhdCB3
b3VsZCBjZXJ0YWlubHkgd2lsbCBmYWlsKS4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMt
YnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAgICogdGVzdHM6IFJlbW92ZWQu
CisgICAgICAgICogdG9vbHMvanMvZGF0YWJhc2UuanM6CisgICAgICAgIChEYXRhYmFzZS5wcm90
b3R5cGUuc2VsZWN0QWxsKTogQWRkZWQuCisgICAgICAgIChEYXRhYmFzZS5wcm90b3R5cGUuc2Vs
ZWN0Rmlyc3RSb3cpOiBBZGRlZC4KKyAgICAgICAgKERhdGFiYXNlLnByb3RvdHlwZS5zZWxlY3RS
b3dzKTogQWRkZWQuIER5bmFtaWNhbGx5IGNvbnN0cnVjdCBhIHF1ZXJ5IHN0cmluZyBiYXNlZCBv
biBhcmd1bWVudHMuCisKIDIwMTYtMDQtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgTmV3IGJ1aWxkYm90IHN5bmNpbmcgc2NyaXB0cyB0aGF0IHN1cHBvcnRz
IG11bHRpcGxlIGJ1aWxkZXJzIGFuZCBzbGF2ZXMKSW5kZXg6IHJ1bi10ZXN0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBydW4tdGVzdHMuanMJKHJldmlzaW9uIDE5OTEyNCkKKysrIHJ1bi10ZXN0cy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSwzNDAgKzAsMCBAQAotIyEvdXNyL2xvY2FsL2Jpbi9ub2RlCi0K
LXZhciBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKLXZhciBjcnlwdG8gPSByZXF1aXJlKCdj
cnlwdG8nKTsKLXZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7Ci12YXIgaHR0cCA9IHJlcXVpcmUoJ2h0
dHAnKTsKLXZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpOwotdmFyIHZtID0gcmVxdWlyZSgndm0n
KTsKLQotZnVuY3Rpb24gY29ubmVjdChrZWVwQWxpdmUpIHsKLSAgICB2YXIgcGcgPSByZXF1aXJl
KCdwZycpOwotICAgIHZhciBkYXRhYmFzZSA9IGNvbmZpZygnZGF0YWJhc2UnKTsKLSAgICB2YXIg
Y29ubmVjdGlvblN0cmluZyA9ICd0Y3A6Ly8nICsgZGF0YWJhc2UudXNlcm5hbWUgKyAnOicgKyBk
YXRhYmFzZS5wYXNzd29yZCArICdAJyArIGRhdGFiYXNlLmhvc3QgKyAnOicgKyBkYXRhYmFzZS5w
b3J0Ci0gICAgICAgICsgJy8nICsgZGF0YWJhc2UubmFtZTsKLQotICAgIHZhciBjbGllbnQgPSBu
ZXcgcGcuQ2xpZW50KGNvbm5lY3Rpb25TdHJpbmcpOwotICAgIGlmICgha2VlcEFsaXZlKSB7Ci0g
ICAgICAgIGNsaWVudC5vbignZHJhaW4nLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjbGll
bnQuZW5kKCk7Ci0gICAgICAgICAgICBjbGllbnQgPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0pOwot
ICAgIH0KLSAgICBjbGllbnQuY29ubmVjdCgpOwotCi0gICAgcmV0dXJuIGNsaWVudDsKLX0KLQot
ZnVuY3Rpb24gcGF0aFRvRGF0YWJzZVNRTChyZWxhdGl2ZVBhdGgpIHsKLSAgICByZXR1cm4gcGF0
aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2luaXQtZGF0YWJhc2Uuc3FsJyk7Ci19Ci0KLWZ1bmN0aW9u
IHBhdGhUb1Rlc3RzKHRlc3ROYW1lKSB7Ci0gICAgcmV0dXJuIHRlc3ROYW1lID8gcGF0aC5yZXNv
bHZlKF9fZGlybmFtZSwgJ3Rlc3RzJywgdGVzdE5hbWUpIDogcGF0aC5yZXNvbHZlKF9fZGlybmFt
ZSwgJ3Rlc3RzJyk7Ci19Ci0KLXZhciBjb25maWd1cmF0aW9uSlNPTiA9IHJlcXVpcmUoJy4vY29u
ZmlnLmpzb24nKTsKLWZ1bmN0aW9uIGNvbmZpZyhrZXkpIHsKLSAgICByZXR1cm4gY29uZmlndXJh
dGlvbkpTT05ba2V5XTsKLX0KLQotZnVuY3Rpb24gVGFza1F1ZXVlKCkgewotICAgIHZhciBxdWV1
ZSA9IFtdOwotICAgIHZhciBudW1iZXJPZlJlbWFpbmluZ1Rhc2tzID0gMDsKLSAgICB2YXIgZW1w
dHlRdWV1ZUNhbGxiYWNrOwotCi0gICAgZnVuY3Rpb24gc3RhcnRUYXNrc0luUXVldWUoKSB7Ci0g
ICAgICAgIGlmICghcXVldWUubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGVtcHR5UXVldWVD
YWxsYmFjaygpOwotCi0gICAgICAgIHZhciBzd2FwcGVkUXVldWUgPSBxdWV1ZTsKLSAgICAgICAg
cXVldWUgPSBbXTsKLQotICAgICAgICAvLyBJbmNyZWFzZSB0aGUgY291bnRlciBiZWZvcmUgdGhl
IGxvb3AgaW4gdGhlIGNhc2UgdGFza0NhbGxiYWNrIGlzIGNhbGxlZCBzeW5jaHJvbm91c2x5Lgot
ICAgICAgICBudW1iZXJPZlJlbWFpbmluZ1Rhc2tzICs9IHN3YXBwZWRRdWV1ZS5sZW5ndGg7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3dhcHBlZFF1ZXVlLmxlbmd0aDsgKytpKQotICAg
ICAgICAgICAgc3dhcHBlZFF1ZXVlW2ldKG51bGwsIHRhc2tDYWxsYmFjayk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdGFza0NhbGxiYWNrKGVycm9yKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5k
bGUgZXJyb3IuCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG51bWJlck9mUmVtYWluaW5nVGFza3Mg
PiAwKTsKLSAgICAgICAgbnVtYmVyT2ZSZW1haW5pbmdUYXNrcy0tOwotICAgICAgICBpZiAoIW51
bWJlck9mUmVtYWluaW5nVGFza3MpCi0gICAgICAgICAgICBzZXRUaW1lb3V0KHN0YXJ0VGFza3NJ
blF1ZXVlLCAwKTsKLSAgICB9Ci0KLSAgICB0aGlzLmFkZFRhc2sgPSBmdW5jdGlvbiAodGFzaykg
eyBxdWV1ZS5wdXNoKHRhc2spOyB9Ci0gICAgdGhpcy5zdGFydCA9IGZ1bmN0aW9uIChjYWxsYmFj
aykgewotICAgICAgICBlbXB0eVF1ZXVlQ2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICAgICAgc3Rh
cnRUYXNrc0luUXVldWUoKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIFNlcmlhbGl6ZWRUYXNrUXVl
dWUoKSB7Ci0gICAgdmFyIHF1ZXVlID0gW107Ci0KLSAgICBmdW5jdGlvbiBleGVjdXRlTmV4dFRh
c2soZXJyb3IpIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBlcnJvci4KLSAgICAgICAgdmFy
IGNhbGxiYWNrID0gcXVldWUucG9wKCk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkg
eyBjYWxsYmFjayhudWxsLCBleGVjdXRlTmV4dFRhc2spOyB9LCAwKTsKLSAgICB9Ci0KLSAgICB0
aGlzLmFkZFRhc2sgPSBmdW5jdGlvbiAodGFzaykgeyBxdWV1ZS5wdXNoKHRhc2spOyB9Ci0gICAg
dGhpcy5zdGFydCA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAgICBxdWV1ZS5wdXNoKGNh
bGxiYWNrKTsKLSAgICAgICAgcXVldWUucmV2ZXJzZSgpOwotICAgICAgICBleGVjdXRlTmV4dFRh
c2soKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIG1haW4oYXJndikgewotICAgIHZhciBjbGllbnQg
PSBjb25uZWN0KHRydWUpOwotICAgIHZhciBmaWx0ZXIgPSBhcmd2WzJdOwotICAgIGNvbmZpcm1V
c2VyV2FudHNEYXRhYmFzZVRvQmVJbml0aWFsaXplZElmTmVlZGVkKGNsaWVudCwgZnVuY3Rpb24g
KGVycm9yLCBzaG91bGRDb250aW51ZSkgewotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAg
ICBjb25zb2xlLmVycm9yKGVycm9yKTsKLQotICAgICAgICBpZiAoZXJyb3IgfHwgIXNob3VsZENv
bnRpbnVlKSB7Ci0gICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICBwcm9jZXNz
LmV4aXQoMSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpbml0
aWFsaXplRGF0YWJhc2UoY2xpZW50LCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIGlm
IChlcnJvcikgewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0
aWFsaXplIHRoZSBkYXRhYmFzZScsIGVycm9yKTsKLSAgICAgICAgICAgICAgICBjbGllbnQuZW5k
KCk7Ci0gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB2YXIgdGVzdENhc2VRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVlKCk7
Ci0gICAgICAgICAgICB2YXIgdGVzdEZpbGVRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVl
KCk7Ci0gICAgICAgICAgICBmcy5yZWFkZGlyU3luYyhwYXRoVG9UZXN0cygpKS5tYXAoZnVuY3Rp
b24gKHRlc3RGaWxlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0ZXN0RmlsZS5tYXRjaCgvLmpz
JC8pIHx8IChmaWx0ZXIgJiYgdGVzdEZpbGUuaW5kZXhPZihmaWx0ZXIpICE9IDApKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgdGVzdEZpbGVRdWV1ZS5hZGRU
YXNrKGZ1bmN0aW9uIChlcnJvciwgY2FsbGJhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IHRlc3RDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSwgJ3V0
Zi04Jyk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBlbnZpcm9ubWVudCA9IG5ldyBUZXN0RW52
aXJvbm1lbnQodGVzdENhc2VRdWV1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZtLnJ1bkluTmV3
Q29udGV4dCh0ZXN0Q29udGVudCwgZW52aXJvbm1lbnQsIHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSk7
Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RGaWxlUXVldWUuc3RhcnQoZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgIGNsaWVudC5lbmQoKTsKLSAgICAgICAgICAgICAgICB0ZXN0
Q2FzZVF1ZXVlLnN0YXJ0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc29s
ZS5sb2coJ0RPTkUnKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gY29uZmlybVVzZXJXYW50c0RhdGFiYXNl
VG9CZUluaXRpYWxpemVkSWZOZWVkZWQoY2xpZW50LCBjYWxsYmFjaykgewotICAgIGZ1bmN0aW9u
IGZldGNoVGFibGVOYW1lcyhlcnJvciwgY2FsbGJhY2spIHsKLSAgICAgICAgaWYgKGVycm9yKQot
ICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yKTsKLQotICAgICAgICBjbGllbnQucXVl
cnkoJ1NFTEVDVCB0YWJsZV9uYW1lIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBXSEVS
RSB0YWJsZV90eXBlID0gXCdCQVNFIFRBQkxFXCcgYW5kIHRhYmxlX3NjaGVtYSA9IFwncHVibGlj
XCcnLCBmdW5jdGlvbiAoZXJyb3IsIHJlc3VsdCkgewotICAgICAgICAgICAgaWYgKGVycm9yKQot
ICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvcik7Ci0gICAgICAgICAgICBjYWxs
YmFjayhudWxsLCByZXN1bHQucm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wyd0
YWJsZV9uYW1lJ107IH0pKTsgICAgICAgICAgICAKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZmluZE5vbkVtcHR5VGFibGUoZXJyb3IsIGxpc3QsIGNhbGxiYWNrKSB7Ci0gICAg
ICAgIGlmIChlcnJvciB8fCAhbGlzdC5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soZXJyb3IpOwotCi0gICAgICAgIHZhciB0YWJsZU5hbWUgPSBsaXN0LnNoaWZ0KCk7Ci0gICAg
ICAgIGNsaWVudC5xdWVyeSgnU0VMRUNUIENPVU5UKCopIEZST00gJyArIHRhYmxlTmFtZSArICcg
TElNSVQgMScsIGZ1bmN0aW9uIChlcnJvciwgcmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAoZXJy
b3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yKTsKLQotICAgICAgICAg
ICAgaWYgKHJlc3VsdC5yb3dzWzBdWydjb3VudCddKQotICAgICAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhudWxsLCB0YWJsZU5hbWUpOwotCi0gICAgICAgICAgICBmaW5kTm9uRW1wdHlUYWJs
ZShudWxsLCBsaXN0LCBjYWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZldGNo
VGFibGVOYW1lcyhudWxsLCBmdW5jdGlvbiAoZXJyb3IsIHRhYmxlTmFtZXMpIHsKLSAgICAgICAg
aWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLCBmYWxzZSk7Ci0K
LSAgICAgICAgZmluZE5vbkVtcHR5VGFibGUobnVsbCwgdGFibGVOYW1lcywgZnVuY3Rpb24gKGVy
cm9yLCBub25FbXB0eVRhYmxlKSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGlmICgh
bm9uRW1wdHlUYWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1
ZSk7Ci0KLSAgICAgICAgICAgIGNvbnNvbGUud2FybignVGFibGUgJyArIG5vbkVtcHR5VGFibGUg
KyAnIGlzIG5vdCBlbXB0eSBidXQgcnVubmluZyB0ZXN0cyB3aWxsIGRyb3AgYWxsIHRhYmxlcy4n
KTsKLSAgICAgICAgICAgIGFza1llc09yTm9RdWVzdGlvbihudWxsLCAnRG8geW91IHJlYWxseSB3
YW50IHRvIGNvbnRpbnVlPycsIGNhbGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0K
LWZ1bmN0aW9uIGFza1llc09yTm9RdWVzdGlvbihlcnJvciwgcXVlc3Rpb24sIGNhbGxiYWNrKSB7
Ci0gICAgaWYgKGVycm9yKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IpOwotCi0gICAg
cHJvY2Vzcy5zdGRvdXQud3JpdGUocXVlc3Rpb24gKyAnICh5L24pOicpOwotICAgIHByb2Nlc3Mu
c3RkaW4ucmVzdW1lKCk7Ci0gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmLTgnKTsK
LSAgICBwcm9jZXNzLnN0ZGluLm9uKCdkYXRhJywgZnVuY3Rpb24gKGxpbmUpIHsKLSAgICAgICAg
bGluZSA9IGxpbmUudHJpbSgpOwotICAgICAgICBpZiAobGluZSA9PT0gJ3knKSB7Ci0gICAgICAg
ICAgICBwcm9jZXNzLnN0ZGluLnBhdXNlKCk7Ci0gICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0
cnVlKTsKLSAgICAgICAgfSBlbHNlIGlmIChsaW5lID09PSAnbicpIHsKLSAgICAgICAgICAgIHBy
b2Nlc3Muc3RkaW4ucGF1c2UoKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGZhbHNlKTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgaW5wdXQ6
JywgbGluZSk7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVEYXRhYmFzZShjbGll
bnQsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGNvbW1hU2VwYXJhdGVkU3FsU3RhdGVtZW50cyA9IGZz
LnJlYWRGaWxlU3luYyhwYXRoVG9EYXRhYnNlU1FMKCksICJ1dGY4Iik7Ci0KLSAgICB2YXIgZmly
c3RFcnJvcjsKLSAgICB2YXIgcXVldWUgPSBuZXcgVGFza1F1ZXVlKCk7Ci0gICAgY29tbWFTZXBh
cmF0ZWRTcWxTdGF0ZW1lbnRzLnNwbGl0KC87XHMqKD89Q1JFQVRFfERST1ApLykuZm9yRWFjaChm
dW5jdGlvbiAoc3RhdGVtZW50KSB7Ci0gICAgICAgIHF1ZXVlLmFkZFRhc2soZnVuY3Rpb24gKGVy
cm9yLCBjYWxsYmFjaykgewotICAgICAgICAgICAgY2xpZW50LnF1ZXJ5KHN0YXRlbWVudCwgZnVu
Y3Rpb24gKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yICYmICFmaXJzdEVycm9y
KQotICAgICAgICAgICAgICAgICAgICBmaXJzdEVycm9yID0gZXJyb3I7Ci0gICAgICAgICAgICAg
ICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KQotICAgIH0pOwotCi0g
ICAgcXVldWUuc3RhcnQoZnVuY3Rpb24gKCkgeyBjYWxsYmFjayhmaXJzdEVycm9yKTsgfSk7Ci19
Ci0KLXZhciBjdXJyZW50VGVzdENvbnRleHQ7Ci1mdW5jdGlvbiBUZXN0RW52aXJvbm1lbnQodGVz
dENhc2VRdWV1ZSkgewotICAgIHZhciBjdXJyZW50VGVzdEdyb3VwOwotCi0gICAgdGhpcy5hc3Nl
cnQgPSBhc3NlcnQ7Ci0gICAgdGhpcy5jb25zb2xlID0gY29uc29sZTsKLQotICAgIC8vIGRlc2Ny
aWJlKCJ+IiwgZnVuY3Rpb24gKCkgewotICAgIC8vICAgICBpdCgifiIsIGZ1bmN0aW9uICgpIHsg
YXNzZXJ0KHRydWUpOyB9KTsKLSAgICAvLyB9KTsKLSAgICB0aGlzLmRlc2NyaWJlID0gZnVuY3Rp
b24gKHRlc3RHcm91cCwgY2FsbGJhY2spIHsKLSAgICAgICAgY3VycmVudFRlc3RHcm91cCA9IHRl
c3RHcm91cDsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0KLSAgICB0aGlzLml0ID0gZnVu
Y3Rpb24gKHRlc3RDYXNlRGVzY3JpcHRpb24sIHRlc3RDYXNlKSB7Ci0gICAgICAgIHRlc3RDYXNl
UXVldWUuYWRkVGFzayhmdW5jdGlvbiAoZXJyb3IsIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBj
dXJyZW50VGVzdENvbnRleHQgPSBuZXcgVGVzdENvbnRleHQoY3VycmVudFRlc3RHcm91cCwgdGVz
dENhc2VEZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1cnJlbnRU
ZXN0Q29udGV4dCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGFiYXNlKGNv
bm5lY3QoKSwgY2FsbGJhY2spOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2Fz
ZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB0aGlzLnBvc3RKU09OID0gZnVuY3Rpb24g
KHBhdGgsIGNvbnRlbnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHNlbmRIdHRwUmVxdWVzdChwYXRo
LCAnUE9TVCcsICdhcHBsaWNhdGlvbi9qc29uJywgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIGZ1
bmN0aW9uIChlcnJvciwgcmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVy
cm9yKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlKTsKLSAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgdGhpcy5odHRwR2V0ID0gZnVuY3Rpb24gKHBhdGgsIGNhbGxiYWNrKSB7Ci0gICAg
ICAgIHNlbmRIdHRwUmVxdWVzdChwYXRoLCAnR0VUJywgbnVsbCwgJycsIGZ1bmN0aW9uIChlcnJv
ciwgcmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAgICAg
ICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhp
cy5odHRwUG9zdD0gZnVuY3Rpb24gKHBhdGgsIGNvbnRlbnQsIGNhbGxiYWNrKSB7Ci0gICAgICAg
IHZhciBjb250ZW50VHlwZSA9IG51bGw7Ci0gICAgICAgIGlmICh0eXBlb2YoY29udGVudCkgIT0g
InN0cmluZyIpIHsKLSAgICAgICAgICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3
LWZvcm0tdXJsZW5jb2RlZCc7Ci0gICAgICAgICAgICB2YXIgY29tcG9uZW50cyA9IFtdOwotICAg
ICAgICAgICAgZm9yICh2YXIga2V5IGluIGNvbnRlbnQpCi0gICAgICAgICAgICAgICAgY29tcG9u
ZW50cy5wdXNoKGtleSArICc9JyArIGVzY2FwZShjb250ZW50W2tleV0pKTsKLSAgICAgICAgICAg
IGNvbnRlbnQgPSBjb21wb25lbnRzLmpvaW4oJyYnKTsKLSAgICAgICAgfQotICAgICAgICBzZW5k
SHR0cFJlcXVlc3QocGF0aCwgJ1BPU1QnLCBjb250ZW50VHlwZSwgY29udGVudCwgZnVuY3Rpb24g
KGVycm9yLCByZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmlmRXJyb3IoZXJyb3IpOwot
ICAgICAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAg
ICB0aGlzLnF1ZXJ5QW5kRmV0Y2hBbGwgPSBmdW5jdGlvbiAocXVlcnksIHBhcmFtZXRlcnMsIGNh
bGxiYWNrKSB7Ci0gICAgICAgIHZhciBjbGllbnQgPSBjb25uZWN0KCk7Ci0gICAgICAgIGNsaWVu
dC5xdWVyeShxdWVyeSwgcGFyYW1ldGVycywgZnVuY3Rpb24gKGVycm9yLCByZXN1bHQpIHsKLSAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5pZkVycm9yKGVycm9yKTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQucm93cyk7
Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5zaGEy
NTYgPSBmdW5jdGlvbiAoZGF0YSkgewotICAgICAgICB2YXIgaGFzaCA9IGNyeXB0by5jcmVhdGVI
YXNoKCdzaGEyNTYnKTsKLSAgICAgICAgaGFzaC51cGRhdGUoZGF0YSk7Ci0gICAgICAgIHJldHVy
biBoYXNoLmRpZ2VzdCgnaGV4Jyk7Ci0gICAgfQotCi0gICAgdGhpcy5jb25maWcgPSBjb25maWc7
Ci0KLSAgICB0aGlzLm5vdGlmeURvbmUgPSBmdW5jdGlvbiAoKSB7IGN1cnJlbnRUZXN0Q29udGV4
dC5kb25lKCk7IH0KLX0KLQotcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlv
biAoZXJyb3IpIHsKLSAgICBpZiAoIWN1cnJlbnRUZXN0Q29udGV4dCkKLSAgICAgICAgdGhyb3cg
ZXJyb3I7Ci0gICAgY3VycmVudFRlc3RDb250ZXh0LmxvZ0Vycm9yKCdVbmNhdWdodCBleGNlcHRp
b24nLCBlcnJvcik7Ci0gICAgY3VycmVudFRlc3RDb250ZXh0LmRvbmUoKTsKLX0pOwotCi1mdW5j
dGlvbiBzZW5kSHR0cFJlcXVlc3QocGF0aCwgbWV0aG9kLCBjb250ZW50VHlwZSwgY29udGVudCwg
Y2FsbGJhY2spIHsKLSAgICB2YXIgb3B0aW9ucyA9IGNvbmZpZygndGVzdFNlcnZlcicpOwotICAg
IG9wdGlvbnMucGF0aCA9IHBhdGg7Ci0gICAgb3B0aW9ucy5tZXRob2QgPSBtZXRob2Q7Ci0KLSAg
ICB2YXIgcmVxdWVzdCA9IGh0dHAucmVxdWVzdChvcHRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKLSAgICAgICAgdmFyIHJlc3BvbnNlVGV4dCA9ICcnOwotICAgICAgICByZXNwb25zZS5zZXRF
bmNvZGluZygndXRmOCcpOwotICAgICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uIChj
aHVuaykgeyByZXNwb25zZVRleHQgKz0gY2h1bms7IH0pOwotICAgICAgICByZXNwb25zZS5vbign
ZW5kJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwge3N0YXR1c0NvZGU6IHJlc3BvbnNlLnN0
YXR1c0NvZGUsIHJlc3BvbnNlVGV4dDogcmVzcG9uc2VUZXh0fSk7Ci0gICAgICAgICAgICB9LCAw
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgcmVxdWVzdC5vbignZXJyb3InLCBjYWxsYmFj
ayk7Ci0gICAgaWYgKGNvbnRlbnRUeXBlKQotICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29u
dGVudC1UeXBlJywgY29udGVudFR5cGUpOwotICAgIGlmIChjb250ZW50KQotICAgICAgICByZXF1
ZXN0LndyaXRlKGNvbnRlbnQpOwotICAgIHJlcXVlc3QuZW5kKCk7Ci19Ci0KLWZ1bmN0aW9uIFRl
c3RDb250ZXh0KHRlc3RHcm91cCwgdGVzdENhc2UsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGZhaWxl
ZCA9IGZhbHNlOwotCi0gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcmV0dXJuIHRlc3RHcm91cCArICcgJyArIHRlc3RDYXNlOwotICAgIH0KLSAgICB0aGlzLmRv
bmUgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICghZmFpbGVkKQotICAgICAgICAgICAgY29u
c29sZS5sb2coJ1BBU1MnKTsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0gICAgdGhpcy5s
b2dFcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgZGV0YWlscykgewotICAgICAgICBmYWlsZWQgPSB0
cnVlOwotICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yLCBkZXRhaWxzKTsKLSAgICB9Ci0KLSAg
ICBwcm9jZXNzLnN0ZG91dC53cml0ZSh0aGlzLmRlc2NyaXB0aW9uKCkgKyAnOiAnKTsKLX0KLQot
bWFpbihwcm9jZXNzLmFyZ3YpOwpJbmRleDogc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jtcy10
ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3Rz
LmpzCSh3b3JraW5nIGNvcHkpCisrKyBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3Rz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyMiArMSwxNDUgQEAKKyd1c2Ugc3RyaWN0JzsKKwor
Y29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IFRlc3RTZXJ2ZXIgPSBy
ZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgY29ubmVjdFRvRGF0
YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25z
LmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKK2NvbnN0IHN1Ym1pdFJlcG9ydCA9
IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuc3VibWl0UmVwb3J0
OworCiBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
cmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcyA9IFsKKyAgICB0aGlzLnRpbWVvdXQoMTAwMCk7
CisgICAgVGVzdFNlcnZlci5pbmplY3QoKTsKKyAgICBjb25uZWN0VG9EYXRhYmFzZUluRXZlcnlU
ZXN0KCk7CisKKyAgICBmdW5jdGlvbiByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zKCkKICAg
ICB7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIzMDAxIiwKLSAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDA5OjAxOjQ3IiwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWls
ZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAg
ICAicGxhdGZvcm0iOiAiTWF2ZXJpY2tzIiwKLSAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAi
bWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbMSwgMSwgMV0sIFsxLCAxLCAx
XV0gfSB9IH0gfSwKLSAgICB9LAotICAgIHsKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDEi
LAotICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAotICAgICAgICAi
YnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjog
InNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAg
ICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3Vy
cmVudCI6IFtbMiwgMiwgMl0sIFsyLCAyLCAyXV0gfSwgIkNvbWJpbmVkIjogeyAiY3VycmVudCI6
IFtbMywgMywgM10sIFszLCAzLCAzXV0gfX0gfSB9LAotICAgIH0sCi0gICAgewotICAgICAgICAi
YnVpbGROdW1iZXIiOiAiMzAwMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQx
Mjo1NjoyNiIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAg
ICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjog
IlRydW5rIE1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7InRlc3QiOiB7ICJtZXRy
aWNzIjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1s0LCA0LCA0XSwgWzQsIDQsIDRdXSB9
IH0gfSB9Ci0gICAgfV07CisgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDEiLAorICAgICAgICAgICAgICAgICJidWlsZFRp
bWUiOiAiMjAxMy0wMi0yOFQwOTowMTo0NyIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1l
IjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCisg
ICAgICAgICAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRl
IjogeyAiY3VycmVudCI6IFtbMSwgMSwgMV0sIFsxLCAxLCAxXV0gfSB9IH0gfSwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMw
MDEiLAorICAgICAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMyIs
CisgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAg
ICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICAgICAg
ICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6
IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzIsIDIs
IDJdLCBbMiwgMiwgMl1dIH0sICJDb21iaW5lZCI6IHsgImN1cnJlbnQiOiBbWzMsIDMsIDNdLCBb
MywgMywgM11dIH19IH0gfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAorICAgICAgICAgICAgICAgICJidWlsZFRp
bWUiOiAiMjAxMy0wMi0yOFQxMjo1NjoyNiIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1l
IjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtIjogIlRydW5rIE1vdW50YWlu
IExpb24iLAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7
IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzQsIDQsIDRdLCBbNCwgNCwgNF1dIH0gfSB9IH0K
KyAgICAgICAgICAgIH1dOworICAgIH0gCiAKLSAgICBmdW5jdGlvbiBzdWJtaXRSZXBvcnQocmVw
b3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBi
dWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEs
ICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0
WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCBk
ZWxldGUgdGhlIHBsYXRmb3JtIHRoYXQgZ290IG1lcmdlZCBpbnRvIGFub3RoZXIgb25lIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0c0ZvckRpZmZlcmVudFBsYXRm
b3JtcywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSBwbGF0Zm9ybXMgT1JERVIgYnkgcGxhdGZvcm1fbmFtZScsIFtdLCBmdW5jdGlvbiAo
b2xkUGxhdGZvcm1zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jt
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNb
MF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24n
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzJdWydwbGF0Zm9y
bV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgaHR0cFBv
c3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQ
bGF0Zm9ybXNbMV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1sy
XVsncGxhdGZvcm1faWQnXX0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBwbGF0Zm9ybXMgT1JERVIg
YnkgcGxhdGZvcm1fbmFtZScsIFtdLCBmdW5jdGlvbiAobmV3UGxhdGZvcm1zKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3JtcywgW29sZFBsYXRm
b3Jtc1swXSwgb2xkUGxhdGZvcm1zWzJdXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgZGVsZXRlIHRoZSBw
bGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVyIG9uZSIsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBs
ZXQgb2xkUGxhdGZvcm1zOyAgICAgICAgCisgICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9y
RGlmZmVyZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJywgJ25hbWUnKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAocGxhdGZvcm1zKSB7CisgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9y
bXM7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlj
a3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwg
J01vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNb
Ml1bJ25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCisgICAgICAgICAgICAg
ICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQbGF0Zm9ybXNbMV1bJ2lkJ10sICdkZXN0
aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1syXVsnaWQnXX0pOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3BsYXRmb3JtcycpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChuZXdQbGF0Zm9ybXMpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAg
aXQoInNob3VsZCBtb3ZlIHRlc3QgcnVucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhl
IGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBzdWJtaXRSZXBv
cnQocmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcywgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgdmFyIHF1ZXJ5Rm9yUnVucyA9ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9jb25m
aWd1cmF0aW9ucywgcGxhdGZvcm1zIFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIGNv
bmZpZ19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsKLSAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG9s
ZFRlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydw
bGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBM
aW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5f
c3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1
bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICAgICAgaHR0
cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBv
bGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNb
M11bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG5l
d1Rlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVz
dFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1
bnNbMV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5f
c3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCdd
LCBvbGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFp
biBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1
bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydy
dW5fY29uZmlnJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBydW5zIGZyb20gdGhlIG1l
cmdlZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0iLCBmdW5jdGlvbiAoZG9u
ZSkgeworICAgICAgICBsZXQgb2xkVGVzdFJ1bnM7CisgICAgICAgIGNvbnN0IHF1ZXJ5Rm9yUnVu
cyA9ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9jb25maWd1cmF0aW9ucywgcGxhdGZv
cm1zIFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIGNvbmZpZ19wbGF0Zm9ybSA9IHBs
YXRmb3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsKKyAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlm
ZmVyZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Vs
dCkgeworICAgICAgICAgICAgb2xkVGVzdFJ1bnMgPSByZXN1bHQucm93czsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFt
ZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRl
c3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCisgICAgICAgICAgICAgICAg
eydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwg
J2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119KTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlG
b3JSdW5zKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAg
ICBjb25zdCBuZXdUZXN0UnVucyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZl
cmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1
bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsn
cnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExp
b24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9j
YWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9u
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2Fj
aGUnXSwgMTgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5f
aWQnXSwgb2xkVGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hl
J10sIDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2Nv
bmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKKyAgICAgICAgICAgIGRvbmUo
KTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIG1v
dmUgdGVzdCBjb25maWd1cmF0aW9ucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRl
c3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICByZXBvcnRzRm9yRGlm
ZmVyZW50UGxhdGZvcm1zWzBdWyd0ZXN0cyddID0geyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJh
bWVSYXRlIjogeyAiYmFzZWxpbmUiOiBbWzEsIDEsIDFdLCBbMSwgMSwgMV1dIH0gfSB9IH07Ci0g
ICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICB2YXIgcXVlcnlGb3JDb25maWcgPSAnU0VMRUNUICogZnJvbSB0
ZXN0X2NvbmZpZ3VyYXRpb25zLCBwbGF0Zm9ybXMsIHRlc3RfbWV0cmljcycKLSAgICAgICAgICAg
ICAgICArICcgd2hlcmUgY29uZmlnX3BsYXRmb3JtID0gcGxhdGZvcm1faWQgYW5kIGNvbmZpZ19t
ZXRyaWMgPSBtZXRyaWNfaWQgYW5kIHBsYXRmb3JtX25hbWUgaW4gKCQxLCAkMikgb3JkZXIgYnkg
Y29uZmlnX2lkJzsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JDb25maWcs
IFtyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzRm9y
RGlmZmVyZW50UGxhdGZvcm1zWzJdWydwbGF0Zm9ybSddXSwgZnVuY3Rpb24gKGNvbmZpZ3MpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlncy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9y
dHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdi
YXNlbGluZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydwbGF0
Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMl1bJ3BsYXRmb3JtJ10p
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydtZXRyaWNfbmFtZSdd
LCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1b
J2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9h
ZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBjb25maWdzWzBd
WydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBjb25maWdzWzFdWydwbGF0Zm9ybV9pZCdd
fSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1sw
XVsncGxhdGZvcm0nXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0n
XV0sIGZ1bmN0aW9uIChuZXdDb25maWdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRp
ZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2Nv
bmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVu
dFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190
eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgbW92ZSB0ZXN0IGNvbmZpZ3VyYXRp
b25zIGZyb20gdGhlIG1lcmdlZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0i
LCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgb2xkQ29uZmlnczsKKyAgICAgICAgY29u
c3QgcmVwb3J0cyA9IHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMoKTsKKyAgICAgICAgcmVw
b3J0c1swXVsndGVzdHMnXSA9IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsg
ImJhc2VsaW5lIjogW1sxLCAxLCAxXSwgWzEsIDEsIDFdXSB9IH0gfSB9OworICAgICAgICBjb25z
dCBxdWVyeUZvckNvbmZpZyA9ICdTRUxFQ1QgKiBmcm9tIHRlc3RfY29uZmlndXJhdGlvbnMsIHBs
YXRmb3JtcywgdGVzdF9tZXRyaWNzJworICAgICAgICAgICAgKyAnIHdoZXJlIGNvbmZpZ19wbGF0
Zm9ybSA9IHBsYXRmb3JtX2lkIGFuZCBjb25maWdfbWV0cmljID0gbWV0cmljX2lkIGFuZCBwbGF0
Zm9ybV9uYW1lIGluICgkMSwgJDIpIG9yZGVyIGJ5IGNvbmZpZ19pZCc7CisgICAgICAgIGNvbnN0
IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0
cykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlG
b3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSdd
XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgb2xk
Q29uZmlncyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZp
Z3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydw
bGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFz
ZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9y
bXMucGhwJywKKyAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZENv
bmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3NbMV1bJ3Bs
YXRmb3JtX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSdd
LCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJl
c3VsdCkgeworICAgICAgICAgICAgY29uc3QgbmV3Q29uZmlncyA9IHJlc3VsdC5yb3dzOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1b
J3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21l
dHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdD
b25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRm
b3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJpY19u
YW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdz
WzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAgICAgICAgZG9uZSgpOworICAg
ICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAogfSk7CkluZGV4OiBzZXJ2ZXItdGVzdHMv
YWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzZXJ2ZXItdGVz
dHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQorKysgc2Vy
dmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSwxNyBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKKworY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rl
c3Qtc2VydmVyLmpzJyk7Citjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVyRm9yUmVwb3J0OworY29u
c3QgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2Nv
bW1vbi1vcGVyYXRpb25zLmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKKwogZGVz
Y3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVuY3Rpb24gKCkgewotICAgIHZhciBz
aW1wbGVSZXBvcnQgPSBbeworICAgIHRoaXMudGltZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVy
LmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKTsKKworICAgIGNv
bnN0IHNpbXBsZVJlcG9ydCA9IFt7CiAgICAgICAgICJidWlsZE51bWJlciI6ICIxOTg2IiwKICAg
ICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKICAgICAgICAgImJ1aWxk
ZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKQEAgLTEyLDY1ICsyNCw2MyBAQAogICAgICAgICAgICAg
fSwKICAgICAgICAgfV07CiAKLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVyKHJlcG9ydCwgY2FsbGJh
Y2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRlcnMgKGJ1
aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAg
ICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9ydFswXS5idWlsZGVy
UGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGl0KCJzaG91bGQgYWRkIGJ1aWxk
IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHNpbXBsZVJlcG9ydCwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9y
dCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1
bmN0aW9uIChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSb3dzWzBdWydidWlsZF9udW1iZXInXSwgMTk4Nik7Ci0gICAgICAgICAgICAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocmVw
b3J0Um93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydFJv
d3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRSb3dzWzBdWydyZXBvcnRfYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWls
ZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkczsgU0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwg
ZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcmVwb3J0SWQgPSByZXBvcnRSb3dzWzBdWydyZXBvcnRfaWQnXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9
JyArIHJlcG9ydElkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwg
ZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93c1swXVsnYnVpbGRfbnVtYmVy
J10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGFkZCBidWlsZCIsIGZ1bmN0aW9uIChkb25lKSB7Cisg
ICAgICAgIGxldCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgbGV0IHJlcG9y
dElkOworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFswXSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0pOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkcyA9IHJlc3Vs
dFswXTsKKyAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRbMV07CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRzWzBdWydudW1iZXInXSwgMTk4Nik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgcmVwb3J0SWQgPSByZXBvcnRzWzBdWydp
ZCddOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1bJ2J1aWxkX251bWJlcidd
LCAxOTg2KTsKKyAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBEQVRFIHJlcG9ydHMgU0VU
IHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2J1aWxk
cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChidWlsZHMpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYWRtaW4vcmVwcm9jZXNzLXJlcG9y
dD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzWzBdWydudW1iZXInXSwg
MTk4Nik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAg
IH0pOwogCi0gICAgaXQoInNob3VsZCBub3QgZHVwbGljYXRlIHRoZSByZXByb2Nlc3NlZCByZXBv
cnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoc2ltcGxlUmVwb3J0LCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVw
b3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSByZXBvcnRzJywgW10s
IGZ1bmN0aW9uIChvcmlnaW5hbFJlcHJvdFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9yaWdpbmFsUmVwcm90Um93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
ICAgICBxdWVyeUFuZEZldGNoQWxsKCdVUERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxkID0g
TlVMTDsgREVMRVRFIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGh0dHBHZXQoJy9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0P3JlcG9ydD0nICsg
b3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfaWQnXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVw
b3J0cycsIFtdLCBmdW5jdGlvbiAocmVwb3J0Um93cykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9jb21taXR0ZWRfYXQnXSA9
IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFJvd3NbMF1bJ3Jl
cG9ydF9jb21taXR0ZWRfYXQnXSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9idWlsZCdd
LCByZXBvcnRSb3dzWzBdWydyZXBvcnRfYnVpbGQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9yaWdpbmFsUmVwcm90Um93c1swXVsncmVwb3J0X2J1aWxkJ10gPSBudWxsOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRSb3dzWzBdWydyZXBvcnRfYnVp
bGQnXSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVwb3J0Um93cywgb3JpZ2luYWxSZXByb3RSb3dzKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAg
IGl0KCJzaG91bGQgbm90IGR1cGxpY2F0ZSB0aGUgcmVwcm9jZXNzZWQgcmVwb3J0IiwgZnVuY3Rp
b24gKGRvbmUpIHsKKyAgICAgICAgbGV0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
ICAgICBsZXQgb3JpZ2luYWxSZXByb3Q7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoc2lt
cGxlUmVwb3J0WzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcG9y
dHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBvcmlnaW5hbFJlcHJvdCA9IHJlcG9ydHNbMF07CisgICAgICAgICAgICByZXR1cm4g
ZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUg
RlJPTSBidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FkbWlu
L3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7b3JpZ2luYWxSZXByb3RbJ2lkJ119YCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29u
c3QgbmV3UG9ydCA9IHJlcG9ydHNbMF07CisgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdFsnY29t
bWl0dGVkX2F0J10gPSBudWxsOworICAgICAgICAgICAgbmV3UG9ydFsnY29tbWl0dGVkX2F0J10g
PSBudWxsOworICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90WydidWls
ZCddLCBuZXdQb3J0WydidWlsZCddKTsKKyAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90WydidWls
ZCddID0gbnVsbDsKKyAgICAgICAgICAgIG5ld1BvcnRbJ2J1aWxkJ10gPSBudWxsOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJlcHJvdCwgbmV3UG9ydCk7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogfSk7CkluZGV4
OiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMJKHJldmlzaW9uIDE5OTEy
NCkKKysrIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTYsNyArNiw3IEBACiBsZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiAKIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywg
ZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0
KDEwMDApOwogICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0
aW9uICgpIHsKSW5kZXg6IHNlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC5qcwkocmV2aXNpb24gMTk5MTI0KQorKysgc2Vy
dmVyLXRlc3RzL2FwaS1tYW5pZmVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtNywxNiArNywxMSBA
QAogbGV0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycp
OwogCiBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKLSAgICB0aGlzLnRp
bWVvdXQoMTAwMDApOworICAgIHRoaXMudGltZW91dCgxMDAwKTsKICAgICBUZXN0U2VydmVyLmlu
amVjdCgpOwogCiAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEJ1aWxkZXIu
Y2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgQnVnVHJhY2tlci5jbGVhclN0YXRpY01hcCgpOwot
ICAgICAgICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgICAgIE1ldHJpYy5jbGVhclN0YXRp
Y01hcCgpOwotICAgICAgICBQbGF0Zm9ybS5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBSZXBv
c2l0b3J5LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIE1vY2tEYXRhLnJlc2V0VjNNb2RlbHMo
KTsKICAgICB9KTsKIAogICAgIGl0KCJzaG91bGQgZ2VuZXJhdGUgYW4gZW1wdHkgbWFuaWZlc3Qg
d2hlbiBkYXRhYmFzZSBpcyBlbXB0eSIsIGZ1bmN0aW9uIChkb25lKSB7CkluZGV4OiBzZXJ2ZXIt
dGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzZXJ2ZXIt
dGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQorKysgc2Vy
dmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTggKzEsMzAgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgn
YXNzZXJ0Jyk7Citjb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsKKworY29uc3QgVGVz
dFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25zdCBh
ZGRCdWlsZGVyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMnKS5hZGRCdWlsZGVyRm9yUmVwb3J0OworY29uc3QgY29ubmVjdFRvRGF0YWJhc2VJbkV2
ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuY29u
bmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKKwogZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQt
c2V0IiwgZnVuY3Rpb24gKCkgewotICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXIocmVwb3J0LCBjYWxs
YmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZGVycyAo
YnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0g
ICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0WzBdLmJ1aWxk
ZXJQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQorICAgIHRoaXMudGltZW91dCgxMDAwKTsK
KyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRl
c3QoKTsKIAotICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1l
LCBtZXRyaWNOYW1lLCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgKiBGUk9NIHBsYXRmb3JtcyBXSEVSRSBwbGF0Zm9ybV9uYW1lID0gJDEnLCBbcGxhdGZvcm1O
YW1lXSwgZnVuY3Rpb24gKHBsYXRmb3JtUm93cykgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0X21ldHJpY3MgV0hFUkUgbWV0cmljX25hbWUgPSAkMScs
IFttZXRyaWNOYW1lXSwgZnVuY3Rpb24gKG1ldHJpY1Jvd3MpIHsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjayhwbGF0Zm9ybVJvd3NbMF1bJ3BsYXRmb3JtX2lkJ10sIG1ldHJpY1Jvd3NbMF1bJ21l
dHJpY19pZCddKTsKLSAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1B
bmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lKQorICAgIHsKKyAgICAgICAgY29uc3Qg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
CisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJvdygncGxhdGZvcm1zJywge25hbWU6ICdNb3Vu
dGFpbiBMaW9uJ30pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfbWV0cmlj
cycsIHtuYW1lOiAnVGltZSd9KSwKKyAgICAgICAgXSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7
CisgICAgICAgICAgICByZXR1cm4ge3BsYXRmb3JtSWQ6IHJlc3VsdFswXVsnaWQnXSwgbWV0cmlj
SWQ6IHJlc3VsdFsxXVsnaWQnXX07CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IGZvcm1hdChmb3JtYXRNYXAsIHJvdykgeworICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXRNYXAs
IHJvdykKKyAgICB7CiAgICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBmb3JtYXRNYXAubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZhciBrZXkg
PSBmb3JtYXRNYXBbaV07CkBAIC0yMywxOCArMzUsMTggQEAKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKLSAgICB2YXIgY2x1c3RlclN0YXJ0ID0gY29uZmlnKCdjbHVzdGVyU3RhcnQn
KTsKKyAgICBsZXQgY2x1c3RlclN0YXJ0ID0gVGVzdFNlcnZlci50ZXN0Q29uZmlnKCkuY2x1c3Rl
clN0YXJ0OwogICAgIGNsdXN0ZXJTdGFydCA9ICtEYXRlLlVUQyhjbHVzdGVyU3RhcnRbMF0sIGNs
dXN0ZXJTdGFydFsxXSAtIDEsIGNsdXN0ZXJTdGFydFsyXSwgY2x1c3RlclN0YXJ0WzNdLCBjbHVz
dGVyU3RhcnRbNF0pOwogCi0gICAgdmFyIGNsdXN0ZXJTaXplID0gY29uZmlnKCdjbHVzdGVyU2l6
ZScpOwotICAgIHZhciBEQVkgPSAyNCAqIDM2MDAgKiAxMDAwOwotICAgIHZhciBZRUFSID0gMzY1
LjI0ICogREFZOwotICAgIHZhciBNT05USCA9IDMwICogREFZOworICAgIGxldCBjbHVzdGVyU2l6
ZSA9IFRlc3RTZXJ2ZXIudGVzdENvbmZpZygpLmNsdXN0ZXJTaXplOworICAgIGNvbnN0IERBWSA9
IDI0ICogMzYwMCAqIDEwMDA7CisgICAgY29uc3QgWUVBUiA9IDM2NS4yNCAqIERBWTsKKyAgICBj
b25zdCBNT05USCA9IDMwICogREFZOwogICAgIGNsdXN0ZXJTaXplID0gY2x1c3RlclNpemVbMF0g
KiBZRUFSICsgY2x1c3RlclNpemVbMV0gKiBNT05USCArIGNsdXN0ZXJTaXplWzJdICogREFZOwog
CiAgICAgZnVuY3Rpb24gY2x1c3RlclRpbWUoaW5kZXgpIHsgcmV0dXJuIG5ldyBEYXRlKGNsdXN0
ZXJTdGFydCArIGNsdXN0ZXJTaXplICogaW5kZXgpOyB9CiAKLSAgICB2YXIgcmVwb3J0V2l0aEJ1
aWxkVGltZSA9IFt7CisgICAgY29uc3QgcmVwb3J0V2l0aEJ1aWxkVGltZSA9IFt7CiAgICAgICAg
ICJidWlsZE51bWJlciI6ICIxMjMiLAogICAgICAgICAiYnVpbGRUaW1lIjogY2x1c3RlclRpbWUo
Ny44KS50b0lTT1N0cmluZygpLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LApAQCAtNTEsNyArNjMsNyBAQAogICAgICAgICB9fV07CiAgICAgcmVwb3J0V2l0aEJ1aWxkVGlt
ZS5zdGFydFRpbWUgPSArY2x1c3RlclRpbWUoNyk7CiAKLSAgICB2YXIgcmVwb3J0V2l0aFJldmlz
aW9uID0gW3sKKyAgICBjb25zdCByZXBvcnRXaXRoUmV2aXNpb24gPSBbewogICAgICAgICAiYnVp
bGROdW1iZXIiOiAiMTI0IiwKICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDE1OjM0
OjUxIiwKICAgICAgICAgInJldmlzaW9ucyI6IHsKQEAgLTczLDcgKzg1LDcgQEAKICAgICAgICAg
ICAgIH0sCiAgICAgICAgIH19XTsKIAotICAgIHZhciByZXBvcnRXaXRoTmV3UmV2aXNpb24gPSBb
eworICAgIGNvbnN0IHJlcG9ydFdpdGhOZXdSZXZpc2lvbiA9IFt7CiAgICAgICAgICJidWlsZE51
bWJlciI6ICIxMjUiLAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMjE6NDU6MTci
LAogICAgICAgICAicmV2aXNpb25zIjogewpAQCAtOTUsNyArMTA3LDcgQEAKICAgICAgICAgICAg
IH0sCiAgICAgICAgIH19XTsKIAotICAgIHZhciByZXBvcnRXaXRoQW5jZW50UmV2aXNpb24gPSBb
eworICAgIGNvbnN0IHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiA9IFt7CiAgICAgICAgICJidWls
ZE51bWJlciI6ICIxMjYiLAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMjM6MDc6
MjUiLAogICAgICAgICAicmV2aXNpb25zIjogewpAQCAtMTE3LDE1NCArMTI5LDE0NSBAQAogICAg
ICAgICAgICAgfSwKICAgICAgICAgfX1dOwogCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBw
bGF0Zm9ybSBJRCBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVy
KHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAw
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9y
bUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQs
IG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9tZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHBsYXRmb3JtIElEIGlzIG1p
c3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdU
aW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1z
ZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0p
LmNhdGNoKGRvbmUpOworICAgIH0pOwogCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Cisg
ICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBtZXRyaWMgSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9u
IChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGlt
ZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSk7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBx
dWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHty
ZXN1bHQucGxhdGZvcm1JZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2Up
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3Vv
dXNSZXF1ZXN0Jyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUp
OwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBtZXRyaWMgSUQgaXMgbWlz
c2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRU
aW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50
YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAg
ICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09
JyArIHBsYXRmb3JtSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBh
biBpbnZhbGlkIHBsYXRmb3JtIG5hbWUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygn
TW91bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Vs
dCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihg
L2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9YSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52
YWxpZFBsYXRmb3JtJyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52YWxpZCBwbGF0Zm9y
bSBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWls
ZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91
bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9y
bT0nICsgcGxhdGZvcm1JZCArICdhJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
KyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24g
KGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1l
WzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jl
c3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YmApOworICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVj
dCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWls
ZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0
Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3Jt
SWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3Vy
ZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJ
ZCArICdiJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwg
J0ludmFsaWRNZXRyaWMnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgaXQoInNo
b3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGEgcmVwb3J0ZWQgdmFsdWUiLCBmdW5jdGlvbiAoZG9u
ZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0p
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQ
bGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9y
bT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBjb25zdCBidWls
ZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkVGltZSddKSk7
CiAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2UpLnNvcnQoKSwKKyAgICAgICAgICAg
ICAgICBbJ2NsdXN0ZXJDb3VudCcsICdjbHVzdGVyU2l6ZScsICdjbHVzdGVyU3RhcnQnLAorICAg
ICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJywgJ2VsYXBzZWRUaW1lJywgJ2VuZFRpbWUn
LCAnZm9ybWF0TWFwJywgJ2xhc3RNb2RpZmllZCcsICdzdGFydFRpbWUnLCAnc3RhdHVzJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBbCisgICAgICAg
ICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1
bScsICdtYXJrZWRPdXRsaWVyJywKKyAgICAgICAgICAgICAgICAncmV2aXNpb25zJywgJ2NvbW1p
dFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkTnVtYmVyJywgJ2J1aWxkZXInXSk7
CiAKLSAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gcmV0cmlldmUgYSByZXBvcnRlZCB2YWx1ZSIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExp
b24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAg
ICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBs
YXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVzcG9uc2UucmVzcG9uc2VU
ZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsK
KyAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2RpZmllZCddKSA9PSAn
bnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKIAotICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0
aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBbJ2N1cnJlbnQnXSk7
CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMo
cGFyZXNkUmVzdWx0KS5zb3J0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWydjbHVz
dGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFwc2VkVGltZScsICdlbmRUaW1l
JywgJ2Zvcm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywgJ3N0YXR1cyddKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RS
ZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwgWwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50JywgJ3N1bScsICdzcXVh
cmVTdW0nLCAnbWFya2VkT3V0bGllcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jl
dmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1aWxkJywgJ2J1aWxkVGltZScsICdidWlsZE51bWJl
cicsICdidWlsZGVyJ10pOworICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3dzID0gcmVzcG9uc2Vb
J2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
dXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRS
b3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxlbmd0aCk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFwJ10sIGN1cnJlbnRS
b3dzWzBdKSwgeworICAgICAgICAgICAgICAgIG1lYW46IDMsCisgICAgICAgICAgICAgICAgaXRl
cmF0aW9uQ291bnQ6IDUsCisgICAgICAgICAgICAgICAgc3VtOiAxNSwKKyAgICAgICAgICAgICAg
ICBzcXVhcmVTdW06IDU1LAorICAgICAgICAgICAgICAgIG1hcmtlZE91dGxpZXI6IGZhbHNlLAor
ICAgICAgICAgICAgICAgIHJldmlzaW9uczogW10sCisgICAgICAgICAgICAgICAgY29tbWl0VGlt
ZTogYnVpbGRUaW1lLAorICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogYnVpbGRUaW1lLAorICAg
ICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTIzJ30pOworICAgICAgICAgICAgZG9uZSgpOwor
ICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKIAotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWls
ZFRpbWUuc3RhcnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2Yo
cGFyZXNkUmVzdWx0WydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICdsYXN0TW9kaWZpZWQg
dGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CisgICAgaXQoInNob3VsZCByZXR1cm4gcmV0dXJu
IHRoZSByaWdodCBJRHMgZm9yIG1lYXN1cmVtZW50LCBidWlsZCwgYW5kIGJ1aWxkZXIiLCBmdW5j
dGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWls
ZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRp
bWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1
cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwor
ICAgICAgICAgICAgICAgIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyksCisgICAgICAgICAgICAg
ICAgZGIuc2VsZWN0QWxsKCdidWlsZHMnKSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RBbGwo
J2J1aWxkZXJzJyksCisgICAgICAgICAgICAgICAgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBs
YXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKSwKKyAgICAgICAgICAgIF0pOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1
bnMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBidWlsZHMgPSByZXN1bHRbMV07Cisg
ICAgICAgICAgICBjb25zdCBidWlsZGVycyA9IHJlc3VsdFsyXTsKKyAgICAgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gcmVzdWx0WzNdOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE9iamVjdC5rZXlzKHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXSksIFsn
Y3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IG1lYXN1
cmVtZW50SWQgPSBydW5zWzBdWydpZCddOworICAgICAgICAgICAgY29uc3QgYnVpbGRJZCA9IGJ1
aWxkc1swXVsnaWQnXTsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBd
WydpZCddOwogCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFJvd3MgPSBwYXJl
c2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcGFyZXNkUmVz
dWx0Wydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChmb3JtYXQocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3Nb
MF0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxdWFyZVN1bTog
NTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGllcjogZmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnVpbGROdW1iZXI6ICcxMjMnfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50
J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50ID0gcmVzcG9uc2Vb
J2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9u
c2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhP
ZignYnVpbGQnKV0sIGJ1aWxkSWQpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVt
ZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQp
OwogCi0gICAgaXQoInNob3VsZCByZXR1cm4gcmV0dXJuIHRoZSByaWdodCBJRHMgZm9yIG1lYXN1
cmVtZW50LCBidWlsZCwgYW5kIGJ1aWxkZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1
aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeVBs
YXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZv
cm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogRlJPTSB0ZXN0X3J1bnMnLCBbXSwgZnVuY3Rpb24gKHJ1bnMpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnRJZCA9IHJ1bnNbMF1bJ3J1bl9pZCddOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWls
ZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgYnVpbGRJZCA9IGJ1aWxkc1swXVsnYnVpbGRfaWQnXTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkZXJzJywg
W10sIGZ1bmN0aW9uIChidWlsZGVycykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydidWlsZGVyX2lkJ107Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3Vs
dFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnQgPSBwYXJlc2RSZXN1bHRbJ2Nv
bmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVu
dFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBtZWFzdXJlbWVudElk
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFz
dXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkJyldLCBidWls
ZElkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCht
ZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1aWxkZXInKV0s
IGJ1aWxkZXJJZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsK
ICAgICB9KTsKIAotICAgIGZ1bmN0aW9uIHBvc3RSZXBvcnRzKHJlcG9ydHMsIGNhbGxiYWNrKSB7
CisgICAgZnVuY3Rpb24gcG9zdFJlcG9ydHMocmVwb3J0cywgY2FsbGJhY2spCisgICAgewogICAg
ICAgICBpZiAoIXJlcG9ydHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7
CiAKQEAgLTI3NiwxMjkgKzI3OSwxMzUgQEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVu
Y3Rpb24gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KHBsYXRmb3JtTmFtZSwg
bWV0cmljTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5UGxh
dGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBmdW5jdGlvbiAocGxhdGZv
cm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IEZST00gcmVwb3NpdG9yaWVzIFdIRVJFIHJlcG9zaXRvcnlfbmFtZSA9ICQxJywgW3JlcG9zaXRv
cnlOYW1lXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhwbGF0
Zm9ybUlkLCBtZXRyaWNJZCwgcm93c1swXVsncmVwb3NpdG9yeV9pZCddKTsKLSAgICAgICAgICAg
IH0pOworICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeShw
bGF0Zm9ybU5hbWUsIG1ldHJpY05hbWUsIHJlcG9zaXRvcnlOYW1lKQorICAgIHsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHJldHVybiBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJvdygncGxhdGZvcm1zJywge25hbWU6
IHBsYXRmb3JtTmFtZX0pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfbWV0
cmljcycsIHtuYW1lOiBtZXRyaWNOYW1lfSksCisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJv
dygncmVwb3NpdG9yaWVzJywge25hbWU6IHJlcG9zaXRvcnlOYW1lfSksCisgICAgICAgIF0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIHtwbGF0Zm9ybUlkOiBy
ZXN1bHRbMF1bJ2lkJ10sIG1ldHJpY0lkOiByZXN1bHRbMV1bJ2lkJ10sIHJlcG9zaXRvcnlJZDog
cmVzdWx0WzJdWydpZCddfTsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgaXQoInNob3VsZCBv
cmRlciByZXN1bHRzIGJ5IGNvbW1pdCB0aW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBv
c3RSZXBvcnRzKFtyZXBvcnRXaXRoQnVpbGRUaW1lLCByZXBvcnRXaXRoUmV2aXNpb25dLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBv
c2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAnV2ViS2l0JywgZnVuY3Rpb24gKHBsYXRm
b3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaHR0
cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJyZt
ZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGNvbW1p
dCB0aW1lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJZDsKKyAgICAgICAgYWRk
QnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhS
ZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbics
ICdUaW1lJywgJ1dlYktpdCcpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
KyAgICAgICAgICAgIHJlcG9zaXRvcnlJZCA9IHJlc3VsdC5yZXBvc2l0b3J5SWQ7CisgICAgICAg
ICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lk
fWApOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
Y29uc3QgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCdd
OworICAgICAgICAgICAgY29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVp
bGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOworICAgICAgICAgICAgY29uc3QgcmV2aXNpb25UaW1l
ID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucyddWydXZWJLaXQn
XVsndGltZXN0YW1wJ10pKTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uQnVpbGRUaW1lID0g
KyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBidWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF1bJ2J1aWxkVGltZSddKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIg
cmV2aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9u
cyddWydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciByZXZpc2lvbkJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydi
dWlsZFRpbWUnXSkpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFJvd3Mg
PSBwYXJzZWRSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyc2VkUmVzdWx0Wydm
b3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZWFuOiAxMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiA2NSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNxdWFyZVN1bTogODU1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFy
a2VkT3V0bGllcjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbnM6
IFtbMSwgcmVwb3NpdG9yeUlkLCAnMTQ0MDAwJywgcmV2aXNpb25UaW1lXV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjQnIH0pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyc2VkUmVzdWx0Wydmb3JtYXRNYXAnXSwg
Y3VycmVudFJvd3NbMV0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNxdWFyZVN1bTogNTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGll
cjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjMnIH0pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVu
dFJvd3NbMF0pLCB7CisgICAgICAgICAgICAgICBtZWFuOiAxMywKKyAgICAgICAgICAgICAgIGl0
ZXJhdGlvbkNvdW50OiA1LAorICAgICAgICAgICAgICAgc3VtOiA2NSwKKyAgICAgICAgICAgICAg
IHNxdWFyZVN1bTogODU1LAorICAgICAgICAgICAgICAgbWFya2VkT3V0bGllcjogZmFsc2UsCisg
ICAgICAgICAgICAgICByZXZpc2lvbnM6IFtbMSwgcmVwb3NpdG9yeUlkLCAnMTQ0MDAwJywgcmV2
aXNpb25UaW1lXV0sCisgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCisg
ICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAorICAgICAgICAgICAg
ICAgYnVpbGROdW1iZXI6ICcxMjQnIH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChm
b3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAg
ICAgICAgICBtZWFuOiAzLAorICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAorICAg
ICAgICAgICAgICAgIHN1bTogMTUsCisgICAgICAgICAgICAgICAgc3F1YXJlU3VtOiA1NSwKKyAg
ICAgICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKKyAgICAgICAgICAgICAgICByZXZp
c2lvbnM6IFtdLAorICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IGJ1aWxkVGltZSwKKyAgICAg
ICAgICAgICAgICBidWlsZFRpbWU6IGJ1aWxkVGltZSwKKyAgICAgICAgICAgICAgICBidWlsZE51
bWJlcjogJzEyMycgfSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOwogICAgIH0pOwogCi0gICAgZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBhcnNlZFJlc3VsdCwg
Y29uZmlnKSB7CisgICAgZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBhcnNlZFJlc3VsdCwgY29uZmln
KQorICAgIHsKICAgICAgICAgcmV0dXJuIHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVtj
b25maWddLm1hcChmdW5jdGlvbiAocm93KSB7CiAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KHBh
cnNlZFJlc3VsdFsnZm9ybWF0TWFwJ10sIHJvdylbJ2J1aWxkTnVtYmVyJ107CiAgICAgICAgIH0p
OwogICAgIH0KIAotICAgIGl0KCJzaG91bGQgaW5jbHVkZSBvbmUgZGF0YSBwb2ludCBhZnRlciB0
aGUgY3VycmVudCB0aW1lIHJhbmdlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVy
KHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RSZXBv
cnRzKFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb24sIHJlcG9ydFdpdGhOZXdSZXZpc2lvbl0sIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJl
cG9zaXRvcnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxh
dGZvcm1JZCwgbWV0cmljSWQsIHJlcG9zaXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBo
dHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAn
Jm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChwYXJzZWRSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0
ZXJzJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkTnVt
YmVycyhwYXJzZWRSZXN1bHQsICdjdXJyZW50JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvblswXVsnYnVpbGROdW1iZXInXSwgcmVwb3J0V2l0
aE5ld1JldmlzaW9uWzBdWydidWlsZE51bWJlciddXSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
IH0pOyAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBp
dCgic2hvdWxkIGluY2x1ZGUgb25lIGRhdGEgcG9pbnQgYWZ0ZXIgdGhlIGN1cnJlbnQgdGltZSBy
YW5nZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1
aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVtb3Rl
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQW5jZW50UmV2aXNpb24pOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhOZXdSZXZpc2lvbik7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMo
YC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRy
aWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIs
ICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoYnVpbGROdW1iZXJzKHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgICAgIFty
ZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhOZXdS
ZXZpc2lvblswXVsnYnVpbGROdW1iZXInXV0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAg
ICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgYXNz
dW1lcyBhIGNsdXN0ZXIgc3RlcCBvZiAyLTMgbW9udGhzCi0gICAgaXQoInNob3VsZCBhbHdheXMg
aW5jbHVkZSBvbmUgb2xkIGRhdGEgcG9pbnQgYmVmb3JlIHRoZSBjdXJyZW50IHRpbWUgcmFuZ2Ui
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhCdWlsZFRp
bWUsIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExpb24n
LCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJlcG9z
aXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50
LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZFJl
c3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ2NsdXN0ZXJD
b3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBjdXJyZW50Um93cyA9IHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMn
XVsnY3VycmVudCddOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJl
bnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50
cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZE51bWJl
cnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF1bJ2J1aWxkTnVtYmVyJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJz
aG91bGQgYWx3YXlzIGluY2x1ZGUgb25lIG9sZCBkYXRhIHBvaW50IGJlZm9yZSB0aGUgY3VycmVu
dCB0aW1lIHJhbmdlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgcmVtb3RlID0g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBv
cnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUu
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbik7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZv
cm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhT
dGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlk
fSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJD
b3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBsZXQg
Y3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250
YWluIHR3byBkYXRhIHBvaW50cycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWls
ZE51bWJlcnMocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25b
MF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkTnVtYmVyJ11d
KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7
CiAKLSAgICAvLyBGSVhNRTogVGhpcyB0ZXN0IGFzc3VtZXMgYSBjbHVzdGVyIHN0ZXAgb2YgMi0z
IG1vbnRocwotICAgIGl0KCJzaG91bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVw
b3J0V2l0aFJldmlzaW9uLCByZXBvcnRXaXRoTmV3UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3Vu
dGFpbiBMaW9uJywgJ1RpbWUnLCAnV2ViS2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJp
Y0lkLCByZXBvc2l0b3J5SWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9t
ZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1l
dHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBwYXJzZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FjaGVQcmVmaXggPSAnL2RhdGEv
bWVhc3VyZW1lbnQtc2V0LScgKyBwbGF0Zm9ybUlkICsgJy0nICsgbWV0cmljSWQ7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBodHRwR2V0KGNhY2hlUHJlZml4ICsgJy5qc29uJywgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZENhY2hl
ZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHBhcnNlZFJlc3VsdCwgcGFyc2VkQ2Fj
aGVkUmVzdWx0KTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoY2FjaGVQ
cmVmaXggKyAnLScgKyBwYXJzZWRSZXN1bHRbJ3N0YXJ0VGltZSddICsgJy5qc29uJywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJz
ZWRPbGRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVt
YmVycyhwYXJzZWRPbGRSZXN1bHQsICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBuZXdCdWlsZE51bWJlcnMgPSBidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0
LCAnY3VycmVudCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQob2xk
QnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG9sZCBjbHVzdGVyIHNob3VsZCBjb250YWlu
IGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQobmV3QnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVy
IHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9sZEJ1aWxkTnVtYmVycy5zbGlj
ZShvbGRCdWlsZE51bWJlcnMubGVuZ3RoIC0gMiksIG5ld0J1aWxkTnVtYmVycy5zbGljZSgwLCAy
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUd28gY29uc2VxY3V0aXZl
IGNsdXN0ZXJzIHNob3VsZCBzaGFyZSB0d28gZGF0YSBwb2ludHMnKTsKLQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAorICAgIGl0KCJzaG91
bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25z
dCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICBsZXQgY2FjaGVQcmVm
aXg7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVtb3RlLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQW5jZW50UmV2aXNpb24pOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
cmVwb3J0V2l0aE5ld1JldmlzaW9uKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbics
ICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAg
ICAgY2FjaGVQcmVmaXggPSAnL2RhdGEvbWVhc3VyZW1lbnQtc2V0LScgKyByZXN1bHQucGxhdGZv
cm1JZCArICctJyArIHJlc3VsdC5tZXRyaWNJZDsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3Vs
dC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKG5ld1Jlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRK
U09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0uanNvbmApLnRoZW4oZnVuY3Rpb24gKGNhY2hl
ZFJlc3VsdCkgeworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UmVzdWx0LCBj
YWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhT
dGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2FjaGVkUmVzdWx0WydzdGFydFRpbWUnXX0uanNvbmAp
OworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAob2xkUmVzdWx0KSB7CisgICAgICAgICAg
ICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhvbGRSZXN1bHQsICdjdXJy
ZW50Jyk7CisgICAgICAgICAgICAgICAgdmFyIG5ld0J1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVy
cyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KG9sZEJ1aWxk
TnVtYmVycy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3RlciBzaG91bGQgY29udGFpbiBhdCBs
ZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQobmV3QnVpbGRO
dW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxl
YXN0IHR3byBkYXRhIHBvaW50cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
b2xkQnVpbGROdW1iZXJzLnNsaWNlKG9sZEJ1aWxkTnVtYmVycy5sZW5ndGggLSAyKSwgbmV3QnVp
bGROdW1iZXJzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgICAgICAnVHdvIGNvbnNlcWN1
dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7CisgICAgICAgICAg
ICAgICAgZG9uZSgpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9KS5j
YXRjaChkb25lKTsKICAgICB9KTsKIAogfSk7CkluZGV4OiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9y
dC1jb21taXRzLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKKysrIHNlcnZlci10ZXN0cy9hcGktcmVw
b3J0LWNvbW1pdHMtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSwyMiBAQAorJ3Vz
ZSBzdHJpY3QnOworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKK2NvbnN0IGNy
eXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOworCitjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgn
Li9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0g
cmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJl
cG9ydDsKK2NvbnN0IGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRl
c3Q7CisKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKLSAg
ICB2YXIgZW1wdHlSZXBvcnQgPSB7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOworICAgIFRlc3RT
ZXJ2ZXIuaW5qZWN0KCk7CisgICAgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCgpOworCisg
ICAgY29uc3QgZW1wdHlSZXBvcnQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICB9OwotICAg
IHZhciBzdWJ2ZXJzaW9uQ29tbWl0ID0geworICAgIGNvbnN0IHN1YnZlcnNpb25Db21taXQgPSB7
CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dv
cmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgImNvbW1pdHMiOiBbCkBAIC0xNiw3ICsyOSw3
IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgfTsKLSAgICB2YXIgc3VidmVyc2lv
bkludmFsaWRDb21taXQgPSB7CisgICAgY29uc3Qgc3VidmVyc2lvbkludmFsaWRDb21taXQgPSB7
CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dv
cmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgImNvbW1pdHMiOiBbCkBAIC0yOSw3ICs0Miw3
IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgfTsKLSAgICB2YXIgc3VidmVyc2lv
blR3b0NvbW1pdHMgPSB7CisgICAgY29uc3Qgc3VidmVyc2lvblR3b0NvbW1pdHMgPSB7CiAgICAg
ICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKICAgICAgICAgImNvbW1pdHMiOiBbCkBAIC01MSwxODcgKzY0LDE5OCBA
QAogICAgICAgICBdCiAgICAgfQogCi0gICAgZnVuY3Rpb24gYWRkU2xhdmUocmVwb3J0LCBjYWxs
YmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZF9zbGF2
ZXMgKHNsYXZlX25hbWUsIHNsYXZlX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0g
ICAgICAgICAgICBbcmVwb3J0LnNsYXZlTmFtZSwgc2hhMjU2KHJlcG9ydC5zbGF2ZVBhc3N3b3Jk
KV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVu
IHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKLSAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgfSk7CisgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBzbGF2ZSBuYW1lIGlzIG1p
c3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHt9KS50aGVuKGZ1bmN0aW9uIChyZXNw
b25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01p
c3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBu
byBzbGF2ZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikg
ZnJvbSBjb21taXRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3
aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5
UmVwb3J0KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1NsYXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
Lmxlbmd0aCwgMCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUp
OwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBhY2NlcHQgYW4gZW1wdHkgcmVwb3J0IiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAg
aXQoInNob3VsZCBhY2NlcHQgYW4gZW1wdHkgcmVwb3J0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAg
ICAgICAgYWRkU2xhdmVGb3JSZXBvcnQoZW1wdHlSZXBvcnQpLnRoZW4oZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwog
ICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBhZGQgYSBtaXNzaW5nIHJlcG9zaXRvcnkiLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRv
cmllcycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXVsncmVwb3NpdG9yeV9uYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsn
cmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91
bGQgYWRkIGEgbWlzc2luZyByZXBvc2l0b3J5IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkNvbW1pdCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ25hbWUnXSwg
c3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91
bGQgc3RvcmUgYSBjb21taXQgZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAg
ICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIEpPSU4gY29tbWl0dGVy
cyBPTiBjb21taXRfY29tbWl0dGVyID0gY29tbWl0dGVyX2lkJywgW10sIGZ1bmN0aW9uIChyb3dz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNv
bW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwgbmV3
IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWRE
YXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHN0b3JlIGEgY29tbWl0IGZyb20gYSB2YWxpZCBz
bGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRl
cnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAg
IGxldCBjb21taXRzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSBy
ZXN1bHRbMV07CisgICAgICAgICAgICBsZXQgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1p
dC5jb21taXRzWzBdOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERh
dGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3Rp
bWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBy
ZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
bmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxk
IHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIG51bWJlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
c3VidmVyc2lvbkNvbW1pdAotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkludmFsaWRDb21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24g
bnVtYmVyIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkU2xhdmVGb3JSZXBvcnQoc3Vi
dmVyc2lvbkNvbW1pdCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2
ZXJzaW9uSW52YWxpZENvbW1pdCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFJldmlzaW9uJyk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyb3dzKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgZG9u
ZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQg
c3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAg
ICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uVHdvQ29tbWl0cywgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1p
dHMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBj
b21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQgT1JERVIgQlkgY29t
bWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9y
dGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6
MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2Nv
dW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfbWVzc2FnZSddLCByZXBvcnRlZERh
dGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBz
dWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1sxXVsnY29tbWl0X3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXRf
dGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0
cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1p
dHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXR0ZXJfYWNjb3VudCddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1sxXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdl
J10pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBzdG9yZSB0
d28gY29tbWl0cyBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAg
ICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYWRkU2xhdmVGb3JS
ZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgn
Y29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRb
MF07CisgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMik7CisKKyAgICAgICAgICAgIGxldCByZXBvcnRlZERh
dGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCks
IG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVz
c2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRh
WydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAgcmVwb3J0ZWREYXRhID0gc3Vi
dmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sxXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXRzWzFdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0
ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMV1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1b
J25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXR0ZXJzWzFdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21t
aXQgaWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgk
MSkgUkVUVVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0g
ICAgICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5
X2lkJ107Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5j
b21taXRzWzBdOwotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29t
bWl0cyAoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZB
TFVFUyAoJDEsICQyLCAkMykgUkVUVVJOSU5HIConLAotICAgICAgICAgICAgICAgIFtyZXBvc2l0
b3J5SWQsIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWyd0aW1lJ11dLCBm
dW5jdGlvbiAoZXhpc3RpbmdDb21taXRzKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbW1pdElk
ID0gZXhpc3RpbmdDb21taXRzWzBdWydjb21taXRfaWQnXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZXhpc3RpbmdDb21taXRzWzBdWydjb21taXRfbWVzc2FnZSddLCBudWxsKTsKLSAg
ICAgICAgICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZl
cnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21t
aXR0ZXIgPSBjb21taXR0ZXJfaWQnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNv
bW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRl
cl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdl
J10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7CisgICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0IGlmIHRoZXJl
IGlzIG9uZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29t
bWl0LmNvbW1pdHNbMF07CisgICAgICAgIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFt
ZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydy
ZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGlt
ZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgICAgIF0pOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRl
cnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAg
IGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJz
ID0gcmVzdWx0WzFdOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0
YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21t
aXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0
ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAgZG9uZSgpOworICAg
ICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgbm90IHVwZGF0
ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVT
ICgkMSkgUkVUVVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7
Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0
b3J5X2lkJ107Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0Nv
bW1pdHMuY29tbWl0c1sxXTsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJ
TlRPIGNvbW1pdHMgKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24sIGNvbW1pdF90
aW1lKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFJFVFVSTklORyAqJywKLSAgICAgICAgICAgICAgICBb
cmVwb3NpdG9yeUlkLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGlt
ZSddXSwgZnVuY3Rpb24gKGV4aXN0aW5nQ29tbWl0cykgewotICAgICAgICAgICAgICAgIHJlcG9y
dGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9zaXRv
cnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykgUkVU
VVJOSU5HIConLAotICAgICAgICAgICAgICAgICAgICBbcmVwb3NpdG9yeUlkLCByZXBvcnRlZERh
dGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IGNvbW1pdHMgTEVGVCBPVVRFUiBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRlciA9
IGNvbW1pdHRlcl9pZCBPUkRFUiBCWSBjb21taXRfdGltZScsIFtdLCBmdW5jdGlvbiAocm93cykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Mu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydu
YW1lJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1b
J2NvbW1pdHRlcl9uYW1lJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIG51bGwpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1b
J2NvbW1pdF9tZXNzYWdlJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwor
ICAgIGl0KCJzaG91bGQgbm90IHVwZGF0ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgZnVuY3Rpb24g
KGRvbmUpIHsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAg
ICAgIGNvbnN0IGZpcnN0RGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Cisg
ICAgICAgIGNvbnN0IHNlY29uZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFd
OworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30p
LAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsnaWQnOiAyLCAncmVwb3Np
dG9yeSc6IDEsICdyZXZpc2lvbic6IGZpcnN0RGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnOiBmaXJz
dERhdGFbJ3RpbWUnXX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsn
aWQnOiAzLCAncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6IHNlY29uZERhdGFbJ3JldmlzaW9u
J10sICd0aW1lJzogc2Vjb25kRGF0YVsndGltZSddfSkKKyAgICAgICAgICAgIF0pOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21t
aXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21t
aXR0ZXJzID0gcmVzdWx0WzFdOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5s
ZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydpZCddLCAyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVz
c2FnZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXIn
XSwgY29tbWl0dGVyc1swXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRo
b3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sx
XVsnY29tbWl0dGVyJ10sIG51bGwpOworCisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0p
LmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3Rp
bmcgY29tbWl0dGVyIGlmIHRoZXJlIGlzIG9uZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gcmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X2lkLCBy
ZXBvc2l0b3J5X25hbWUpIFZBTFVFUyAoMSwgXCdXZWJLaXRcJyknLCBbXSwgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgdmFyIGF1dGhvciA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsn
YXV0aG9yJ107Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21t
aXR0ZXJzIChjb21taXR0ZXJfcmVwb3NpdG9yeSwgY29tbWl0dGVyX2FjY291bnQpIFZBTFVFUyAo
MSwgJDEpJywgW2F1dGhvclsnYWNjb3VudCddXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1p
dCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVD
VCAqIEZST00gY29tbWl0dGVycycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10s
IGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBl
eGlzdGluZyBjb21taXR0ZXIgaWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAg
ICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGF1
dGhvciA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsnYXV0aG9yJ107CisgICAgICAgIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQo
J3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXR0ZXJzJywgeydyZXBvc2l0b3J5JzogMSwgJ2FjY291bnQn
OiBhdXRob3JbJ2FjY291bnQnXX0pLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoY29tbWl0dGVy
cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFt
ZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10s
IGF1dGhvclsnYWNjb3VudCddKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0
Y2goZG9uZSk7CiAgICAgfSk7CiAKIH0pOwpJbmRleDogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
dGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMJ
KHdvcmtpbmcgY29weSkKKysrIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMxNCArMSwzNjAgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNz
ZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcu
L3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRkQnVpbGRlckZvclJlcG9ydCA9
IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkQnVpbGRlckZv
clJlcG9ydDsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMv
Y29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9ydDsKK2NvbnN0IGNvbm5lY3RU
b0RhdGFiYXNlSW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0
aW9ucy5qcycpLmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3Q7CisKIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZW1wdHlSZXBvcnQgPSBbewotICAgICAg
ICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4
VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIs
Ci0gICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAgICAgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlv
biIsCi0gICAgICAgICJ0ZXN0cyI6IHt9LAotICAgICAgICAicmV2aXNpb25zIjogewotICAgICAg
ICAgICAgIk9TIFgiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2
MCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAi
MjAxMy0wMi0wNlQwODo1NToyMC45WiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOworICAg
IHRoaXMudGltZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5l
Y3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKTsKIAotICAgIHZhciBlbXB0eVNsYXZlUmVwb3J0ID0g
W3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0g
ICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQi
OiAib3RoZXJQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwK
LSAgICAgICAgInRlc3RzIjoge30sCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAg
ICAiT1MgWCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjE0MTk3NyIsCi0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEz
LTAyLTA2VDA4OjU1OjIwLjlaIgorICAgIGZ1bmN0aW9uIGVtcHR5UmVwb3J0KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKKyAgICAg
ICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAorICAgICAg
ICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJzbGF2ZU5h
bWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAg
ICAgICAgICJ0ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAg
ICAgICAgICAiT1MgWCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjgu
MiAxMkM2MCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7
CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAg
ICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9fV07Ci0KLSAgICBmdW5jdGlvbiBhZGRC
dWlsZGVyKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5T
RVJUIElOVE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2
YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hh
MjU2KHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOworICAgICAgICB9Owog
ICAgIH0KIAotICAgIGZ1bmN0aW9uIGFkZFNsYXZlKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRfc2xhdmVzIChzbGF2ZV9uYW1l
LCBzbGF2ZV9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3Jl
cG9ydFswXS5zbGF2ZU5hbWUsIHNoYTI1NihyZXBvcnRbMF0uc2xhdmVQYXNzd29yZCldLCBjYWxs
YmFjayk7CisgICAgZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgpCisgICAgeworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCisgICAgICAgICAgICAi
YnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKKyAgICAgICAgICAgICJi
dWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAic2xhdmVOYW1lIjogInNv
bWVTbGF2ZSIsCisgICAgICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJvdGhlclBhc3N3b3JkIiwK
KyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0
ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAgICAi
T1MgWCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICAgICAi
dGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9OwogICAgIH0KIAotICAgIGl0KCJzaG91bGQgcmVqZWN0
IGVycm9yIHdoZW4gYnVpbGRlciBuYW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQx
MDoxMjowMy4zODgzMDQifV0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3Np
bmdCdWlsZGVyTmFtZScpOwotICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICB9KTsK
KyAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIGJ1aWxkZXIgbmFtZSBpcyBtaXNzaW5n
IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMu
Mzg4MzA0In1dKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZGVyTmFtZScpOworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0
KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLCAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCJ9XSwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRUaW1lJyk7Ci0gICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7CisgICAgaXQoInNob3Vs
ZCByZWplY3QgZXJyb3Igd2hlbiBidWlsZCB0aW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9u
ZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1
aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQifV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBi
dWlsZGVycyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0g
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRz
JywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF0uY291bnQsIDApOwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFy
ZSBubyBidWlsZGVycyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSkudGhlbihm
dW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5s
ZW5ndGgsIDApOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsK
ICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVwb3J0IHdpdGhvdXQgYSBidWls
ZGVyIHBhc3N3b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVw
b3J0LCBmdW5jdGlvbiAoKSB7CisgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aG91
dCBhIGJ1aWxkZXIgcGFzc3dvcmQiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWls
ZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgdmFyIHJlcG9ydCA9IFt7CiAgICAgICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIs
CiAgICAgICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCiAgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAg
ICAgICAgICAgICAidGVzdHMiOiB7fSwKICAgICAgICAgICAgICAgICAicmV2aXNpb25zIjoge319
XTsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJl
U3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXS5jb3VudCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZh
bHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucydd
LCAwKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxs
KCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBz
dG9yZSBhIHJlcG9ydCBmcm9tIGEgdmFsaWQgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBv
cnQgZnJvbSBhIHZhbGlkIGJ1aWxkZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRC
dWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFtlbXB0eVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MSk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3Qg
c3VibWl0dGVkQ29udGVudCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgICAgICBjb25zdCBzdG9y
ZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOworCisgICAgICAg
ICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsnYnVpbGRlclBhc3N3b3JkJ107CisgICAgICAg
ICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKKyAgICAgICAgICAgIGRlbGV0
ZSBzdG9yZWRDb250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
dG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKworICAgICAgICAgICAgZG9uZSgpOwor
ICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgdHJlYXQg
dGhlIHNsYXZlIHBhc3N3b3JkIGFzIHRoZSBidWlsZGVyIHBhc3N3b3JkIGlmIHRoZXJlIGlzIG5v
IG1hdGNoaW5nIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5
UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnc2xhdmVQ
YXNzd29yZCddID0gZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddOwotICAgICAgICAg
ICAgZGVsZXRlIGVtcHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQnXTsKLSAgICAgICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddID0g
ZW1wdHlSZXBvcnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKLSAgICAgICAgICAgICAgICBkZWxldGUg
ZW1wdHlSZXBvcnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKKyAgICBpdCgic2hvdWxkIHRyZWF0IHRo
ZSBzbGF2ZSBwYXNzd29yZCBhcyB0aGUgYnVpbGRlciBwYXNzd29yZCBpZiB0aGVyZSBpcyBubyBt
YXRjaGluZyBzbGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGxldCByZXBvcnQgPSBl
bXB0eVJlcG9ydCgpOworICAgICAgICByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXSA9IHJlcG9ydFsn
YnVpbGRlclBhc3N3b3JkJ107CisgICAgICAgIGRlbGV0ZSByZXBvcnRbJ2J1aWxkZXJQYXNzd29y
ZCddOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUs
IDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwg
ZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Ci0gICAgICAgICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlv
biAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3Vu
dCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgYWRkU2xhdmVGb3JS
ZXBvcnQocmVwb3J0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFy
c2UocmVwb3J0c1swXVsnY29udGVudCddKTsKKworICAgICAgICAgICAgZGVsZXRlIHJlcG9ydFsn
c2xhdmVQYXNzd29yZCddOworICAgICAgICAgICAgZGVsZXRlIHJlcG9ydFsndGVzdHMnXTsKKyAg
ICAgICAgICAgIGRlbGV0ZSBzdG9yZWRDb250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250ZW50LCByZXBvcnQpOworCisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBz
dG9yZSBhIHJlcG9ydCBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IGFkZFNsYXZlKGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBm
YWxzZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9u
IChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50
LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgc3RvcmUg
YSByZXBvcnQgZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAg
YWRkU2xhdmVGb3JSZXBvcnQoZW1wdHlTbGF2ZVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbZW1wdHlTbGF2ZVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0
b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nl
c3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRz
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgY29uc3Qgc3VibWl0dGVkQ29udGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKKyAgICAg
ICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRl
bnQnXSk7CisKKyAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3
b3JkJ107CisgICAgICAgICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKKyAg
ICAgICAgICAgIGRlbGV0ZSBzdG9yZWRDb250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0
KCJzaG91bGQgc3RvcmUgdGhlIGJ1aWxkZXIgbmFtZSBidXQgbm90IHRoZSBidWlsZGVyIHBhc3N3
b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBv
cnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ1NFTEVDVCByZXBvcnRfY29udGVudCBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNl
KHJvd3NbMF0ucmVwb3J0X2NvbnRlbnQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJO
YW1lJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRlclBhc3N3b3JkJyBp
biBzdG9yZWRDb250ZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgi
c2hvdWxkIHN0b3JlIHRoZSBidWlsZGVyIG5hbWUgYnV0IG5vdCB0aGUgYnVpbGRlciBwYXNzd29y
ZCIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlS
ZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5w
YXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0
b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10p
OworICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1aWxkZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVu
dCkpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9
KTsKIAotICAgIGl0KCJzaG91bGQgYWRkIGEgc2xhdmUgaWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0
aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1
aWxkX3NsYXZlcycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zbGF2ZV9uYW1lLCBlbXB0eVJlcG9ydFswXS5zbGF2
ZU5hbWUpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBhZGQg
YSBzbGF2ZSBpZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQgd2FzIGF1dGhlbnRpY2F0
ZWQgYnkgYSBidWlsZGVyIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZv
clJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1w
dHlSZXBvcnQoKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkX3Ns
YXZlcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChzbGF2ZXMpIHsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzbGF2ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzbGF2ZXNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0
KCJzaG91bGQgYWRkIGEgYnVpbGRlciBpZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQg
d2FzIGF1dGhlbnRpY2F0ZWQgYnkgYSBzbGF2ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRk
U2xhdmUoZW1wdHlTbGF2ZVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkg
ewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRl
cnMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3NbMF0uYnVpbGRlcl9uYW1lLCBlbXB0eVJlcG9ydFswXS5idWlsZGVyTmFt
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGFkZCBhIGJ1
aWxkZXIgaWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVk
IGJ5IGEgc2xhdmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRTbGF2ZUZvclJlcG9y
dChlbXB0eVNsYXZlUmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0
eVNsYXZlUmVwb3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsK
KyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWls
ZGVycycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChidWlsZGVycykgeworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7
CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwog
Ci0gICAgaXQoInNob3VsZCBhZGQgYSBidWlsZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRk
QnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkcycsIFtdLCBm
dW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cm93c1swXS5idWlsZF9udW1iZXIsIDEyMyk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURv
bmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
KyAgICBpdCgic2hvdWxkIGFkZCBhIGJ1aWxkIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAg
YWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBbZW1wdHlSZXBvcnQoKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWls
ZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRzWzBdWydudW1iZXInXSwgMTIzKTsKKyAgICAgICAgICAg
IGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hv
dWxkIGFkZCB0aGUgcGxhdGZvcm0iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIo
ZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogZnJvbSBwbGF0Zm9ybXMnLCBbXSwgZnVuY3Rp
b24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3Nb
MF0ucGxhdGZvcm1fbmFtZSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOworICAgIGl0KCJzaG91bGQgYWRkIHRoZSBwbGF0Zm9ybSIsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgncGxhdGZvcm1zJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHBsYXRmb3Jt
cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlv
bicpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9
KTsKIAotICAgIGl0KCJzaG91bGQgYWRkIHJlcG9zaXRvcmllcyBhbmQgYnVpbGQgcmV2aXNpb25z
IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J1NFTEVDVCAqIEZST00gcmVwb3NpdG9yaWVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm93cy5tYXAoZnVuY3Rpb24gKHJvdykg
eyByZXR1cm4gcm93WydyZXBvc2l0b3J5X25hbWUnXTsgfSksIFsnT1MgWCcsICdXZWJLaXQnXSk7
CisgICAgaXQoInNob3VsZCBhZGQgcmVwb3NpdG9yaWVzIGFuZCBidWlsZCByZXZpc2lvbnMiLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0
KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBjb25zdCBkYiA9
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChb
CisgICAgICAgICAgICAgICAgZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwKKyAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwKKyAgICAgICAgICAgICAgICBkYi5zZWxl
Y3RBbGwoJ2J1aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0JyksCisgICAgICAgICAgICBdKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBy
ZXBvc2l0b3JpZXMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVz
dWx0WzFdOworICAgICAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0
WzJdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKGZ1bmN0aW9uIChy
b3cpIHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksIFsnT1MgWCcsICdXZWJLaXQnXSk7
CiAKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OwotICAg
ICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdykgeyByZXBvc2l0b3J5
SWRUb05hbWVbcm93WydyZXBvc2l0b3J5X2lkJ11dID0gcm93WydyZXBvc2l0b3J5X25hbWUnXTsg
fSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
YnVpbGRfY29tbWl0cywgY29tbWl0cyBXSEVSRSBidWlsZF9jb21taXQgPSBjb21taXRfaWQnLCBb
XSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvc2l0
b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvd3Mu
Zm9yRWFjaChmdW5jdGlvbiAocm93KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtyb3dbJ2NvbW1pdF9y
ZXBvc2l0b3J5J11dXSA9IHJvdzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJv
d1snT1MgWCddWydjb21taXRfcmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1sn
V2ViS2l0J11bJ2NvbW1pdF9yZXZpc2lvbiddLCAnMTQxOTc3Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQn
XVsnY29tbWl0X3RpbWUnXS50b1N0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0
J10sIGNvbW1pdHNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29t
bWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1
aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOwogCi0gICAg
aXQoInNob3VsZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWls
ZCBudW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0
eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoxMjowNCc7Ci0gICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGxldCByZXBvc2l0
b3J5SWRUb05hbWUgPSB7fTsKKyAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVw
b3NpdG9yaWVzKQorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5
WydpZCddXSA9IHJlcG9zaXRvcnlbJ25hbWUnXTsKIAotICAgICAgICAgICAgICAgIGVtcHR5UmVw
b3J0WzBdWydidWlsZFRpbWUnXSA9ICcyMDEzLTAyLTI4VDEwOjIyOjAzJzsKLSAgICAgICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgbGV0
IHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICAgICAgZm9yIChsZXQg
Y29tbWl0IG9mIGNvbW1pdHMpCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1Jldmlz
aW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0
OwogCi0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
YnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ09TIFgnXVsncmV2aXNpb24nXSwgJzEwLjguMiAx
MkM2MCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lv
blJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10udG9T
dHJpbmcoKSwKKyAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45
JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBjcmVhdGUgZGlzdGluY3QgYnVpbGRzIGZv
ciB0aGUgc2FtZSBidWlsZCBudW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGZhciBhcGFydCIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhU
MTA6MTI6MDMnOwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVw
b3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
aXQoInNob3VsZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWls
ZCBudW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAg
ICAgICAgbGV0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgZmlyc3RSZXBv
cnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOworICAgICAgICBsZXQgc2Vj
b25kUmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgc2Vjb25kUmVwb3J0WydidWlsZFRp
bWUnXSA9ICcyMDEzLTAyLTI4VDEwOjIyOjAzJzsKIAotICAgICAgICAgICAgICAgIHF1ZXJ5QW5k
RmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdi
dWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3NlY29uZFJlcG9y
dF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKGJ1aWxkcykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25l
KTsKKyAgICB9KTsKIAotICAgICAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnYnVpbGRU
aW1lJ10gPSAnMjAxNC0wMS0yMFQyMjoyMzozNCc7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICBpdCgic2hvdWxkIGNy
ZWF0ZSBkaXN0aW5jdCBidWlsZHMgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0
aW1lcyBhcmUgZmFyIGFwYXJ0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgbGV0IGZpcnN0
UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSdd
ID0gJzIwMTMtMDItMjhUMTA6MTI6MDMnOworICAgICAgICBsZXQgc2Vjb25kUmVwb3J0ID0gZW1w
dHlSZXBvcnQoKTsKKyAgICAgICAgc2Vjb25kUmVwb3J0WydidWlsZFRpbWUnXSA9ICcyMDE0LTAx
LTIwVDIyOjIzOjM0JzsKIAotICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnU0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChl
bXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRd
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChidWlsZHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRz
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQo
InNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGluZyByZXZpc2lvbiBpbmZvIiwg
ZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNpb25zJ10gPSB7Ci0gICAgICAg
ICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0
MTk3NyIsCi0gICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1
NToyMC45NloiCi0gICAgICAgICAgICAgICAgfQorICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVw
b3J0IHdpdGggbWlzbWF0Y2hpbmcgcmV2aXNpb24gaW5mbyIsIGZ1bmN0aW9uIChkb25lKSB7Cisg
ICAgICAgIGxldCBmaXJzdFJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgIGZpcnN0UmVw
b3J0WydyZXZpc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6
ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjk2WiIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAg
ZW1wdHlSZXBvcnRbMF1bJ3JldmlzaW9ucyddID0gewotICAgICAgICAgICAgICAgICAgICAiV2Vi
S2l0IjogewotICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1MDAwMCIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDUtMTNUMTA6NTA6Mjku
NloiCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlc3BvbnNlLnJlc3BvbnNlVGV4dC5pbmRleE9mKCcxNDE5NzcnKSA+
PSAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlc3BvbnNlLnJlc3BvbnNlVGV4dC5p
bmRleE9mKCcxNTAwMDAnKSA+PSAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCB0cnVl
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAwKTsKLSAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOworICAgICAgICBsZXQgc2Vjb25kUmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAg
ICAgc2Vjb25kUmVwb3J0WydyZXZpc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7
CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1MDAwMCIsCisgICAgICAgICAgICAgICAg
InRpbWVzdGFtcCI6ICIyMDEzLTA1LTEzVDEwOjUwOjI5LjZaIgorICAgICAgICAgICAgfQorICAg
ICAgICB9OworCisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0pOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGJ1aWxk
cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFtzZWNvbmRSZXBvcnRdKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2Up
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRj
aGluZ0NvbW1pdFJldmlzaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnko
cmVzcG9uc2UpLmluZGV4T2YoJzE0MTk3NycpID49IDApOworICAgICAgICAgICAgYXNzZXJ0KEpT
T04uc3RyaW5naWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcxNTAwMDAnKSA+PSAwKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKKyAgICAg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2
YXIgcmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zID0gW3sKKyAgICBjb25zdCByZXBv
cnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMgPSB7CiAgICAgICAgICJidWlsZE51bWJlciI6
ICIxMjMiLAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0
IiwKICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKQEAgLTM1MCwxNSArMzk2
LDIyIEBACiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCiAgICAgICAgICAg
ICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgogICAgICAgICAgICAg
fQotICAgICAgICB9fV07CisgICAgICAgIH19OwogCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRlckFu
ZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIo
cmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNF
UlQgSU5UTyBhZ2dyZWdhdG9ycyAoYWdncmVnYXRvcl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRp
b24pIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICAgICAgWydBcml0aG1ldGljJywgJ3Zh
bHVlcy5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSAvIHZhbHVlcy5s
ZW5ndGgnXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J0lOU0VSVCBJTlRPIGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVm
aW5pdGlvbikgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgICAgICAgICAgWydHZW9tZXRy
aWMnLCAnTWF0aC5wb3codmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAq
IGI7IH0pLCAxIC8gdmFsdWVzLmxlbmd0aCknXSwgY2FsbGJhY2spOwotICAgICAgICAgICAgfSk7
CisgICAgZnVuY3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVw
b3J0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRh
YmFzZSgpOworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2FnZ3JlZ2F0b3JzJywge25hbWU6ICdBcml0aG1ldGljJ30pLAorICAgICAg
ICAgICAgICAgIGRiLmluc2VydCgnYWdncmVnYXRvcnMnLCB7bmFtZTogJ0dlb21ldHJpYyd9KSwK
KyAgICAgICAgICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbcmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAg
ICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMzcyLDIz
NSArNDI1LDIxNyBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpdCgic2hvdWxkIG5vdCBy
ZWplY3Qgd2hlbiBhZ2dyZWdhdG9ycyBhcmUgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdv
TGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQo
InNob3VsZCBhY2NlcHQgYSByZXBvcnQgd2l0aCBhZ2dyZWdhdG9ycyIsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9y
dFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQo
InNob3VsZCBhZGQgdGVzdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRN
ZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFR3
b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cycsIFtdLCBmdW5jdGlv
biAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJvd3MubWFw
KGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuIHJvd1sndGVzdF9uYW1lJ107IH0pLnNvcnQoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScsICdEdW1teUJlbmNobWFyaycsICdE
dW1teVBhZ2VMb2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1RyYXZlcnNlTm9kZXMnLCAnYXBwbGUu
Y29tJywgJ3dlYmtpdC5vcmcnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBd
LnRlc3RzID0ge307Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxk
IGFkZCB0ZXN0cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5n
QnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucyku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAodGVzdHMp
IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdHMubWFwKGZ1bmN0aW9uIChyb3cp
IHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAgICAgICAgICAgWydDU1Mn
LCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9k
ZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKKyAgICAg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBp
dCgic2hvdWxkIGFkZCBtZXRyaWNzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVy
QW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdp
dGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRy
aWNzIExFRlQgSk9JTiBhZ2dyZWdhdG9ycyBPTiBtZXRyaWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0
b3JfaWQgV0hFUkUgbWV0cmljX3Rlc3QgPSB0ZXN0X2lkJywKLSAgICAgICAgICAgICAgICAgICAg
W10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0ZXN0TmFtZVRv
TWV0cmljcyA9IHt9OwotICAgICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24g
KHJvdykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEocm93Wyd0ZXN0X25hbWUnXSBp
biB0ZXN0TmFtZVRvTWV0cmljcykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdE5h
bWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3db
J21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRvcl9uYW1lJ11dKTsKLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ0NTUyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1l
JywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJr
J10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGlt
ZScsICdBcml0aG1ldGljJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh0ZXN0TmFtZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1Ry
YXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywg
bnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRv
TWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOworICAgIGl0KCJzaG91bGQg
YWRkIG1ldHJpY3MiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICByZXBvcnRBZnRlckFkZGlu
Z0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMp
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5xdWVyeSgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNzIExFRlQgSk9JTiBh
Z2dyZWdhdG9ycyBPTiBtZXRyaWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3JfaWQgV0hFUkUgbWV0
cmljX3Rlc3QgPSB0ZXN0X2lkJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
eworICAgICAgICAgICAgbGV0IHRlc3ROYW1lVG9NZXRyaWNzID0ge307CisgICAgICAgICAgICBy
ZXN1bHQucm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IShyb3dbJ3Rlc3RfbmFtZSddIGluIHRlc3ROYW1lVG9NZXRyaWNzKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7Cisg
ICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0ucHVzaChb
cm93WydtZXRyaWNfbmFtZSddLCByb3dbJ2FnZ3JlZ2F0b3JfbmFtZSddXSk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1RpbWUnLCAnQXJp
dGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1RpbWUnLCAn
QXJpdGhtZXRpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9N
ZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydNb2RpZnlOb2Rl
cyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVz
dE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20nXSwg
W1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGZ1bmN0aW9u
IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUsIGNh
bGxiYWNrKSB7Ci0gICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3Rz
LCB0ZXN0X21ldHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMsIHRlc3RfcnVucyBXSEVSRSBtZXRy
aWNfdGVzdCA9IHRlc3RfaWQgQU5EIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQnCi0gICAgICAg
ICAgICArICcgQU5EIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIHRlc3RfbmFtZSA9ICQxIEFO
RCBtZXRyaWNfbmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24gKHJ1
blJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIHZhciBydW4gPSBydW5Sb3dzWzBdOwotICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcnVuX2l0ZXJhdGlvbnMgV0hFUkUgaXRl
cmF0aW9uX3J1biA9ICQxIE9SREVSIEJZIGl0ZXJhdGlvbl9vcmRlcicsIFtydW5bJ3J1bl9pZCdd
XSwgZnVuY3Rpb24gKGl0ZXJhdGlvblJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJh
Y2socnVuLCBpdGVyYXRpb25Sb3dzKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICBmdW5jdGlv
biBmZXRjaFRlc3RDb25maWcodGVzdE5hbWUsIG1ldHJpY05hbWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0
ZXN0X21ldHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMKKyAgICAgICAgICAgIFdIRVJFIHRlc3Rf
aWQgPSBtZXRyaWNfdGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYworICAgICAgICAg
ICAgQU5EIHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBt
ZXRyaWNOYW1lXSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3VsdC5yb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdC5yb3dzWzBdOwogICAgICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgaXQoInNob3Vs
ZCBzdG9yZSBydW4gdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5k
TWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywgJ1RpbWUn
LCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBy
dW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaXRlcmF0aW9ucywgWwotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46
IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0
aW9uX3ZhbHVlOiA1MDAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAx
LCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTEwLCBpdGVyYXRpb25f
cmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9u
X3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBp
dGVyYXRpb25fdmFsdWU6IDUyMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAg
ICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3Jk
ZXI6IDMsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MzAsIGl0ZXJh
dGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfV0pOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3Vt
ID0gNTAwICsgNTEwICsgNTIwICsgNTMwOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2Fj
aGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKLQot
ICAgICAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1Mn
LCAnVGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9u
X2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwMSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6
IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5J
ZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1
ZTogMTAyLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0
ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDMsIGl0ZXJhdGlvbl9yZWxhdGl2
ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1
bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRp
b25fdmFsdWU6IDEwNCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVy
OiA0LCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTA1LCBpdGVyYXRpb25f
cmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJh
dGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDUsIGl0ZXJhdGlvbl9ncm91cDogMSwg
aXRlcmF0aW9uX3ZhbHVlOiAxMDYsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlv
bl9vcmRlcjogNiwgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwNywgaXRl
cmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA3LCBpdGVyYXRpb25fZ3Jv
dXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTA4LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVs
bH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBp
dGVyYXRpb25fb3JkZXI6IDgsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAx
MDksIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogOSwgaXRlcmF0
aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDExMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3Rp
bWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBy
dW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25f
dmFsdWU6IDExMSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAx
MSwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMiwgaXRlcmF0aW9uX3Jl
bGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMiwgaXRlcmF0aW9uX2dyb3VwOiAyLCBp
dGVyYXRpb25fdmFsdWU6IDExMywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9u
X29yZGVyOiAxMywgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExNCwgaXRl
cmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxNCwgaXRlcmF0aW9uX2dy
b3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExNSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51
bGx9XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBzcXVhcmVTdW0gPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yICh2YXIgdmFsdWUgPSAxMDE7IHZhbHVlIDw9IDExNTsgKyt2YWx1ZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1bSArPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzcXVhcmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2Nh
Y2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFy
ZVN1bSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIGZldGNoVGVz
dFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUpCisgICAgeworICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZl
dGNoVGVzdENvbmZpZyh0ZXN0TmFtZSwgbWV0cmljTmFtZSkudGhlbihmdW5jdGlvbiAoY29uZmln
KSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfcnVucycsIHtj
b25maWc6IGNvbmZpZ1snY29uZmlnX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
cnVuKSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncnVuX2l0ZXJhdGlvbnMn
LCB7cnVuOiBydW5bJ2lkJ119LCB7c29ydEJ5OiAnb3JkZXInfSkudGhlbihmdW5jdGlvbiAoaXRl
cmF0aW9ucykgeworICAgICAgICAgICAgICAgIHJldHVybiB7cnVuOiBydW4sIGl0ZXJhdGlvbnM6
IGl0ZXJhdGlvbnN9OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworICAgIH0KKworICAg
IGl0KCJzaG91bGQgc3RvcmUgcnVuIHZhbHVlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAg
IHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZl
bHNPZkFnZ3JlZ2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4g
ZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywgJ1RpbWUnKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBydW4g
PSByZXN1bHQucnVuOworICAgICAgICAgICAgY29uc3QgcnVuSWQgPSBydW5bJ2lkJ107CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAg
ICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDUwMCwgcmVs
YXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAx
LCBncm91cDogbnVsbCwgdmFsdWU6IDUxMCwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAg
ICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDUyMCwg
cmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVy
OiAzLCBncm91cDogbnVsbCwgdmFsdWU6IDUzMCwgcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKKyAg
ICAgICAgICAgIHZhciBzdW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxl
bmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICog
NTAwICsgNTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIHJl
dHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9
IHJlc3VsdC5ydW47CisgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAg
ICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2
ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdy
b3VwOiAwLCB2YWx1ZTogMTAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90
aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3Vw
OiAwLCB2YWx1ZTogMTA0LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7
cnVuOiBydW5JZCwgb3JkZXI6IDQsIGdyb3VwOiAwLCB2YWx1ZTogMTA1LCByZWxhdGl2ZV90aW1l
OiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDUsIGdyb3VwOiAx
LCB2YWx1ZTogMTA2LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVu
OiBydW5JZCwgb3JkZXI6IDYsIGdyb3VwOiAxLCB2YWx1ZTogMTA3LCByZWxhdGl2ZV90aW1lOiBu
dWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDcsIGdyb3VwOiAxLCB2
YWx1ZTogMTA4LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBy
dW5JZCwgb3JkZXI6IDgsIGdyb3VwOiAxLCB2YWx1ZTogMTA5LCByZWxhdGl2ZV90aW1lOiBudWxs
fSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDksIGdyb3VwOiAxLCB2YWx1
ZTogMTEwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDEwLCBncm91cDogMiwgdmFsdWU6IDExMSwgcmVsYXRpdmVfdGltZTogbnVsbH0s
CisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxMSwgZ3JvdXA6IDIsIHZhbHVl
OiAxMTIsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMTIsIGdyb3VwOiAyLCB2YWx1ZTogMTEzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
KyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEzLCBncm91cDogMiwgdmFsdWU6
IDExNCwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAxNCwgZ3JvdXA6IDIsIHZhbHVlOiAxMTUsIHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7
CisgICAgICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAgICAgICAgIGxldCBzcXVhcmVTdW0gPSAw
OworICAgICAgICAgICAgZm9yIChsZXQgdmFsdWUgPSAxMDE7IHZhbHVlIDw9IDExNTsgKyt2YWx1
ZSkgeworICAgICAgICAgICAgICAgIHN1bSArPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBzcXVh
cmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0p
OworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsK
IAotICAgIGl0KCJzaG91bGQgc3RvcmUgYWdncmVnYXRlZCBydW4gdmFsdWVzIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29M
ZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygnRHVtbXlQYWdlTG9hZGluZycsICdUaW1lJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0
aW9ucykgewotICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwot
ICAgICAgICAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbKDUwMCArIDEwMCkgLyAy
LCAoNTEwICsgMTEwKSAvIDIsICg1MjAgKyAxMjApIC8gMiwgKDUzMCArIDEzMCkgLyAyXTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBbCi0gICAgICAg
ICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjog
MCwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVz
WzBdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9u
X2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCBpdGVyYXRp
b25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0
aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxs
LCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzJdLCBpdGVyYXRpb25fcmVsYXRpdmVf
dGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25f
dmFsdWU6IGV4cGVjdGVkVmFsdWVzWzNdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH1d
KTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1bSA9IGV4cGVjdGVkVmFsdWVzLnJlZHVjZShm
dW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDApOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBp
dGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0
aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHN0b3JlIGFnZ3JlZ2F0
ZWQgcnVuIHZhbHVlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRk
aW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9u
cykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRl
cmF0aW9uc0Zvck1ldHJpYygnRHVtbXlQYWdlTG9hZGluZycsICdUaW1lJyk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0
LnJ1bjsKKyAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKKyAgICAg
ICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDEx
MCkgLyAyLCAoNTIwICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICAgICAge3J1
bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBd
LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6
IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisg
ICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6
IGV4cGVjdGVkVmFsdWVzWzNdLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOworICAgICAgICAgICAg
Y29uc3Qgc3VtID0gZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7
IHJldHVybiBzdW0gKyB2YWx1ZTsgfSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNl
KGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAw
KSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0p
OwogCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9m
IGFnZ3JlZ2F0ZWQgdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5k
TWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAn
VGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIGV4cGVjdGVkSXRlcmF0aW9ucyA9IFtdOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3Vt
ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHNxdWFyZVN1bSA9IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTU7ICsraSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIHZhbHVlID0gaSArIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIg
RE9NTWVhbiA9ICgoMTAgKyB2YWx1ZSkgKyAoMzAgKyB2YWx1ZSkpIC8gMjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gKERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkg
LyAyOwotICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVk
VmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7
aXRlcmF0aW9uX3J1bjogcnVuWydydW5faWQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25fb3JkZXI6IGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0
aW9uX2dyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIGV4
cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBz
cXVhcmVTdW0pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBi
ZSBhYmxlIHRvIGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0ZWQgdmFsdWVzIiwg
ZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdn
cmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmlj
KCdEdW1teUJlbmNobWFyaycsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJl
c3VsdCkgeworICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKKyAgICAgICAgICAg
IGNvbnN0IHJ1bklkID0gcnVuWydpZCddOworICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRJdGVy
YXRpb25zID0gW107CisgICAgICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAgICAgICAgIGxldCBz
cXVhcmVTdW0gPSAwOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpICsgMTsKKyAgICAgICAgICAgICAgICBj
b25zdCBET01NZWFuID0gKCgxMCArIHZhbHVlKSArICgzMCArIHZhbHVlKSkgLyAyOworICAgICAg
ICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSAoRE9NTWVhbiArIDEwMCArIHZhbHVlKSAv
IDI7CisgICAgICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7CisgICAgICAgICAgICAg
ICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOworICAgICAgICAg
ICAgICAgIGV4cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3Jv
dXA6IE1hdGguZmxvb3IoaSAvIDUpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXN1bHQuaXRlcmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3Ro
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0p
OworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsK
IAotICAgIHZhciByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lID0gW3sKLSAgICAgICAgImJ1aWxk
TnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjow
My4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAg
ICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6
ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgIlN1aXRl
MSI6IHsKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0
ZXN0MSI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAi
Y3VycmVudCI6IFsxLCAyLCAzLCA0LCA1XSB9fQotICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICAidGVzdDIiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbNiwgNywgOCwgOSwgMTBdIH19CisgICAgZnVu
Y3Rpb24gcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCisgICAgICAgICAgICAiYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKKyAgICAgICAgICAgICJidWlsZGVy
TmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisg
ICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgIlN1aXRlMSI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Qx
IjogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAi
Y3VycmVudCI6IFsxLCAyLCAzLCA0LCA1XSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0MiI6IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbNiwgNywgOCwgOSwgMTBd
IH19CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIlN1aXRlMiI6IHsK
LSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVu
dCI6IFsxMSwgMTIsIDEzLCAxNCwgMTVdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRy
aWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxNiwgMTcsIDE4LCAxOSwgMjBdIH19CisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiU3VpdGUyIjogeworICAgICAgICAgICAg
ICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50
IjogWzExLCAxMiwgMTMsIDE0LCAxNV0gfX0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdDIiOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzE2LCAxNywgMTgsIDE5LCAy
MF0gfX0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOworICAgICAgICB9
OworICAgIH0KIAotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBz
YW1lIHN1YnRlc3QgbmFtZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1l
YW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0
TmFtZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5m
YWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxz
ZSk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBzYW1l
IHN1YnRlc3QgbmFtZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRk
aW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKSkudGhl
bihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJldXNlIHRoZSBzYW1l
IHRlc3Qgcm93cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dy
ZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogRlJPTSB0ZXN0cycsIFtdLCBmdW5jdGlvbiAodGVzdFJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJvd3MubGVuZ3RoLCA2KTsKLSAgICAgICAgICAg
ICAgICAgICByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLmJ1aWxkTnVtYmVyID0gIjEyNSI7Ci0g
ICAgICAgICAgICAgICAgICAgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZS5idWlsZFRpbWUgPSAi
MjAxMy0wMi0yOFQxMjoxNzoyNC4xIjsKLQotICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NF
TEVDVCAqIEZST00gdGVzdHMnLCBbXSwgZnVuY3Rpb24gKHRlc3RSb3dzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJvd3MubGVuZ3RoLCA2KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBiZSBh
YmxlIHRvIHJldXNlIHRoZSBzYW1lIHRlc3Qgcm93cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAg
ICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1l
U3VidGVzdE5hbWUoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAodGVzdHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgs
IDYpOworICAgICAgICAgICAgbGV0IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5h
bWUoKTsKKyAgICAgICAgICAgIG5ld1JlcG9ydC5idWlsZE51bWJlciA9ICIxMjUiOworICAgICAg
ICAgICAgbmV3UmVwb3J0LmJ1aWxkVGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOworICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIFtuZXdSZXBvcnRdKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2Up
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3Rz
Jyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHRlc3RzKSB7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVTaW5nbGVW
YWx1ZSA9IFt7CisgICAgY29uc3QgcmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSA9IHsKICAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0y
OFQxMDoxMjowMy4zODgzMDQiLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LApAQCAtNjE4LDM3ICs2NTMsMjkgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0sCi0gICAgICAgIH19XTsKKyAgICAgICAgfX07CiAKLSAg
ICBpdCgic2hvdWxkIGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2luZ2xlIHZhbHVlIHJl
c3VsdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRv
cnMocmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU2luZ2xlVmFsdWUsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAg
ICAgIEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9
IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwg
bnVsbCwgcmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAg
ICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QxJywgJ0NvbWJp
bmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCAzKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCAzKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2Fj
aGUnXSwgOSk7Ci0gICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JN
ZXRyaWMoJ3N1aXRlJywgJ0NvbWJpbmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlvbl9j
b3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3J1bl9tZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQo
InNob3VsZCBiZSBhYmxlIHRvIGFkZCBhIHJlcG9ydCB3aXRoIHNpbmdsZSB2YWx1ZSByZXN1bHRz
IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSkudGhlbihmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVz
dDEnLCAnQ29tYmluZWQnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Cisg
ICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3N1bV9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgOSk7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIHZhciByZXBvcnRXaXRo
U2FtZVZhbHVlUGFpcnMgPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycyA9
IHsKICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLApAQCAtNjU5LDEwMSArNjg2LDg4IEBACiAgICAgICAgICAgICAgICAgICAgICJt
ZXRyaWNzIjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1tbMCwgNF0sIFsxMDAsIDVdLCBb
MjA1LCAzXV1dIH19CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgIH0sCi0gICAgICAg
IH1dOworICAgICAgICB9OwogCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGFkZCBhIHJlcG9y
dCB3aXRoIChyZWxhdGl2ZSB0aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJz
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVw
b3J0V2l0aFNhbWVWYWx1ZVBhaXJzLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWls
dXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRp
b25zRm9yTWV0cmljKCd0ZXN0JywgJ0ZyYW1lUmF0ZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlv
bnMpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlv
bl9jb3VudF9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsncnVuX21lYW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWwotICAgICAgICAgICAgICAgICAgICAg
ICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9n
cm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA0LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTog
MH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJh
dGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUs
IGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiAxMDB9LAotICAgICAgICAgICAgICAgICAgICAgICAg
e2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91
cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiAzLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMjA1
fV0pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBiZSBhYmxl
IHRvIGFkZCBhIHJlcG9ydCB3aXRoIChyZWxhdGl2ZSB0aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5j
dGlvbiAoZG9uZSkgeworICAgICAgICByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdh
dG9ycyhyZXBvcnRXaXRoU2FtZVZhbHVlUGFpcnMpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QnLCAnRnJh
bWVSYXRlJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAg
ICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ21lYW5fY2FjaGUnXSwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1f
Y2FjaGUnXSwgMTIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9j
YWNoZSddLCAxNiArIDI1ICsgOSk7CisKKyAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydp
ZCddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWwor
ICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVl
OiA0LCByZWxhdGl2ZV90aW1lOiAwfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKKyAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywg
cmVsYXRpdmVfdGltZTogMjA1fV0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5j
YXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIHZhciByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRU
ZXN0cyA9IFsKLSAgICAgICAgW3sKKyAgICBjb25zdCByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRU
ZXN0cyA9IFsKKyAgICAgICAgewogICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAg
ICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAogICAgICAgICAg
ICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFp
biBMaW9uIiwKICAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRp
bWUiOiB7ImN1cnJlbnQiOiAzfX19fQotICAgICAgICB9XSwKLSAgICAgICAgW3sKKyAgICAgICAg
fSwKKyAgICAgICAgewogICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCiAgICAgICAg
ICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTE6MzE6MjEiLAogICAgICAgICAgICAgImJ1
aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9u
IiwKICAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDIiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7
ImN1cnJlbnQiOiAzfX19fQotICAgICAgICB9XSwKLSAgICAgICAgW3sKKyAgICAgICAgfSwKKyAg
ICAgICAgewogICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNSIsCiAgICAgICAgICAgICAi
YnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTI6NDU6MzQiLAogICAgICAgICAgICAgImJ1aWxkZXJO
YW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29t
ZVBhc3N3b3JkIiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKICAg
ICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1cnJl
bnQiOiAzfX19fQotICAgICAgICB9XSwKKyAgICAgICAgfSwKICAgICBdOwogCi0gICAgZnVuY3Rp
b24gZmV0Y2hUZXN0Q29uZmlnKHRlc3ROYW1lLCBtZXRyaWNOYW1lLCBjYWxsYmFjaykgewotICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNz
LCB0ZXN0X2NvbmZpZ3VyYXRpb25zIFdIRVJFIHRlc3RfaWQgPSBtZXRyaWNfdGVzdCBBTkQgbWV0
cmljX2lkID0gY29uZmlnX21ldHJpYycKLSAgICAgICAgICAgICsgJyBBTkQgdGVzdF9uYW1lID0g
JDEgQU5EIG1ldHJpY19uYW1lID0gJDInLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVdLCBmdW5jdGlv
biAocnVuUm93cykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2socnVuUm93c1swXSk7CisgICAgaXQoInNo
b3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB0ZXN0IGNvbmZpZ3VyYXRpb25z
IHdpdGggbmV3IHJ1bnMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9y
UmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVz
dENvbmZpZygndGVzdDEnLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChvcmln
aW5hbENvbmZpZykgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sy
XV0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RD
b25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGNv
bmZpZykgeworICAgICAgICAgICAgICAgIGFzc2VydChvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1
bnNfbGFzdF9tb2RpZmllZCddIGluc3RhbmNlb2YgRGF0ZSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0KGNvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddIGluc3RhbmNlb2YgRGF0ZSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0KCtvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1bnNfbGFz
dF9tb2RpZmllZCddIDwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAg
ICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgi
c2hvdWxkIHVwZGF0ZSB0aGUgbGFzdCBtb2RpZmllZCBkYXRlIG9mIHRlc3QgY29uZmlndXJhdGlv
bnMgd2l0aCBuZXcgcnVucyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBv
cnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBd
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWco
J3Rlc3QxJywgJ1RpbWUnLCBmdW5jdGlvbiAob3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVu
dFRlc3RzWzJdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
ICAgICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZp
ZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCgrb3JpZ2lu
YWxDb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1
bnNfbGFzdF9tb2RpZmllZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Cisg
ICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCB1cGRhdGUg
dGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB1bnJlbGF0ZWQgdGVzdCBjb25maWd1cmF0aW9ucyIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRzVXBkYXRpbmdEaWZmZXJl
bnRUZXN0c1swXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnLCBm
dW5jdGlvbiAob3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZpZykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5z
X2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7CisgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2Yg
dW5yZWxhdGVkIHRlc3QgY29uZmlndXJhdGlvbnMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAg
ICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHNbMF1dKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
cmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChvcmlnaW5hbENvbmZpZykgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdE
aWZmZXJlbnRUZXN0c1sxXV0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOworICAgICAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAoY29uZmlnKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KG9y
aWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRl
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlm
aWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29y
aWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZp
Z19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsK
IH0pOwpJbmRleDogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpz
CShyZXZpc2lvbiAwKQorKysgc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisKK2NvbnN0IGNyeXB0byA9IHJl
cXVpcmUoJ2NyeXB0bycpOworCitmdW5jdGlvbiBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydCkK
K3sKKyAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVpbGRlcnMnLCB7
CisgICAgICAgIG5hbWU6IHJlcG9ydC5idWlsZGVyTmFtZSwKKyAgICAgICAgcGFzc3dvcmRfaGFz
aDogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShyZXBvcnQuYnVpbGRlclBhc3N3
b3JkKS5kaWdlc3QoJ2hleCcpCisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGFkZFNsYXZlRm9yUmVw
b3J0KHJlcG9ydCkKK3sKKyAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgn
YnVpbGRfc2xhdmVzJywgeworICAgICAgICBuYW1lOiByZXBvcnQuc2xhdmVOYW1lLAorICAgICAg
ICBwYXNzd29yZF9oYXNoOiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHJlcG9y
dC5zbGF2ZVBhc3N3b3JkKS5kaWdlc3QoJ2hleCcpCisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNv
bm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKQoreworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g
KCkgeworICAgICAgICBUZXN0U2VydmVyLmRhdGFiYXNlKCkuY29ubmVjdCh7a2VlcEFsaXZlOiB0
cnVlfSk7CisgICAgfSk7CisKKyAgICBhZnRlckVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICBU
ZXN0U2VydmVyLmRhdGFiYXNlKCkuZGlzY29ubmVjdCgpOworICAgIH0pOworfQorCitmdW5jdGlv
biBzdWJtaXRSZXBvcnQocmVwb3J0KQoreworICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNl
KCkuaW5zZXJ0KCdidWlsZGVycycsIHsKKyAgICAgICAgbmFtZTogcmVwb3J0WzBdLmJ1aWxkZXJO
YW1lLAorICAgICAgICBwYXNzd29yZF9oYXNoOiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyku
dXBkYXRlKHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpLmRpZ2VzdCgnaGV4JykKKyAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydCk7CisgICAgfSk7Cit9CisKK2lmICh0eXBl
b2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKSB7CisgICAgbW9kdWxlLmV4cG9ydHMuYWRkQnVpbGRl
ckZvclJlcG9ydCA9IGFkZEJ1aWxkZXJGb3JSZXBvcnQ7CisgICAgbW9kdWxlLmV4cG9ydHMuYWRk
U2xhdmVGb3JSZXBvcnQgPSBhZGRTbGF2ZUZvclJlcG9ydDsKKyAgICBtb2R1bGUuZXhwb3J0cy5j
b25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0ID0gY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVz
dDsKKyAgICBtb2R1bGUuZXhwb3J0cy5zdWJtaXRSZXBvcnQgPSBzdWJtaXRSZXBvcnQ7Cit9Cklu
ZGV4OiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMJKHJldmlzaW9uIDE5OTEyNCkK
KysrIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMJKHdvcmtpbmcgY29weSkK
QEAgLTksNyArOSw3IEBACiBsZXQgRGF0YWJhc2UgPSByZXF1aXJlKCcuLi8uLi90b29scy9qcy9k
YXRhYmFzZS5qcycpOwogbGV0IFJlbW90ZUFQSSA9IHJlcXVpcmUoJy4uLy4uL3Rvb2xzL2pzL3Jl
bW90ZS5qcycpLlJlbW90ZUFQSTsKIAotbGV0IFRlc3RTZXJ2ZXIgPSAobmV3IGNsYXNzIFRlc3RT
ZXJ2ZXIgeworY2xhc3MgVGVzdFNlcnZlciB7CiAgICAgY29uc3RydWN0b3IoKQogICAgIHsKICAg
ICAgICAgdGhpcy5fcGlkRmlsZSA9IG51bGw7CkBAIC0yNDEsOCArMjQxLDEwIEBACiAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5zdG9wKCk7CiAgICAgICAgIH0pOwogICAgIH0KLX0pOworfQogCitp
ZiAoIWdsb2JhbC5UZXN0U2VydmVyKQorICAgIGdsb2JhbC5UZXN0U2VydmVyID0gbmV3IFRlc3RT
ZXJ2ZXI7CiAKIGlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQotICAgIG1vZHVsZS5l
eHBvcnRzID0gVGVzdFNlcnZlcjsKKyAgICBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5UZXN0U2Vy
dmVyOwpJbmRleDogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3Rz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHNlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwkocmV2aXNpb24gMTk5MTI0KQorKysgc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxk
Ym90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw3ICsxOCw3IEBA
CiB9CiAKIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewotICAg
IHRoaXMudGltZW91dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOwogICAgIFRlc3RT
ZXJ2ZXIuaW5qZWN0KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKSW5kZXg6IHRl
c3RzL2FkbWluLXBsYXRmb3Jtcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMuanMJKHJldmlzaW9uIDE5OTEyNCkKKysrIHRlc3RzL2FkbWluLXBsYXRmb3Jtcy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMSwxMjIgKzAsMCBAQAotZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMi
LCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMgPSBb
Ci0gICAgewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCi0gICAgICAgICJidWlsZFRp
bWUiOiAiMjAxMy0wMi0yOFQwOTowMTo0NyIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21l
QnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAg
ICAgICAgInBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCi0gICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6
IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzEsIDEsIDFdLCBbMSwg
MSwgMV1dIH0gfSB9IH0sCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIz
MDAxIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKLSAgICAg
ICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIs
Ci0gICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsg
ImN1cnJlbnQiOiBbWzIsIDIsIDJdLCBbMiwgMiwgMl1dIH0sICJDb21iaW5lZCI6IHsgImN1cnJl
bnQiOiBbWzMsIDMsIDNdLCBbMywgMywgM11dIH19IH0gfSwKLSAgICB9LAotICAgIHsKLSAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAotICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDIt
MjhUMTI6NTY6MjYiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAg
ICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9y
bSI6ICJUcnVuayBNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAi
bWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbNCwgNCwgNF0sIFs0LCA0LCA0
XV0gfSB9IH0gfQotICAgIH1dOwotCi0gICAgZnVuY3Rpb24gc3VibWl0UmVwb3J0KHJlcG9ydCwg
Y2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRl
cnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMikn
LAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9ydFswXS5i
dWlsZGVyUGFzc3dvcmQpXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJzaG91bGQgZGVsZXRl
IHRoZSBwbGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVyIG9uZSIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gcGxhdGZvcm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24gKG9sZFBs
YXRmb3JtcykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzBdWydw
bGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1syXVsncGxhdGZvcm1fbmFt
ZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgIGh0dHBQb3N0KCcv
YWRtaW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkUGxhdGZv
cm1zWzFdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRQbGF0Zm9ybXNbMl1bJ3Bs
YXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcGxhdGZvcm1zIE9SREVSIGJ5IHBs
YXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24gKG5ld1BsYXRmb3JtcykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXMsIFtvbGRQbGF0Zm9ybXNb
MF0sIG9sZFBsYXRmb3Jtc1syXV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgbW92ZSB0
ZXN0IHJ1bnMgZnJvbSB0aGUgbWVyZ2VkIHBsYXRmb3JtIHRvIHRoZSBkZXN0aW5hdGlvbiBwbGF0
Zm9ybSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNGb3JEaWZm
ZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBxdWVyeUZvclJ1
bnMgPSAnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMsIHRlc3RfY29uZmlndXJhdGlvbnMsIHBsYXRm
b3JtcyBXSEVSRSBydW5fY29uZmlnID0gY29uZmlnX2lkIEFORCBjb25maWdfcGxhdGZvcm0gPSBw
bGF0Zm9ybV9pZCBPUkRFUiBieSBydW5fbWVhbl9jYWNoZSc7Ci0gICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChvbGRUZXN0UnVucykgewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFtZSddLCAn
TWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBd
WydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRU
ZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0Zm9ybV9u
YW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9s
ZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWlu
IExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3J1
bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgICAgIGh0dHBQb3N0KCcvYWRtaW4vcGxh
dGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkVGVzdFJ1bnNbMV1bJ3Bs
YXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9ybV9pZCdd
fSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChuZXdUZXN0UnVucykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zLmxlbmd0aCwgNCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlj
a3MnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sw
XVsncnVuX3N1bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3Bs
YXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1
bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBN
b3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbM11b
J3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2Nh
Y2hlJ10sIDI0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBjb25maWd1cmF0aW9ucyBmcm9tIHRo
ZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWyd0ZXN0cyddID0g
eyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiYmFzZWxpbmUiOiBbWzEsIDEs
IDFdLCBbMSwgMSwgMV1dIH0gfSB9IH07Ci0gICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9y
RGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIgcXVlcnlG
b3JDb25maWcgPSAnU0VMRUNUICogZnJvbSB0ZXN0X2NvbmZpZ3VyYXRpb25zLCBwbGF0Zm9ybXMs
IHRlc3RfbWV0cmljcycKLSAgICAgICAgICAgICAgICArICcgd2hlcmUgY29uZmlnX3BsYXRmb3Jt
ID0gcGxhdGZvcm1faWQgYW5kIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQgYW5kIHBsYXRmb3Jt
X25hbWUgaW4gKCQxLCAkMikgb3JkZXIgYnkgY29uZmlnX2lkJzsKLSAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1z
WzBdWydwbGF0Zm9ybSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzJdWydwbGF0Zm9y
bSddXSwgZnVuY3Rpb24gKGNvbmZpZ3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdz
WzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMF1bJ3Bs
YXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBdWydtZXRy
aWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJl
bnRQbGF0Zm9ybXNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0g
ICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24n
OiAnbWVyZ2UnLCAnaWQnOiBjb25maWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24n
OiBjb25maWdzWzFdWydwbGF0Zm9ybV9pZCddfSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yQ29uZmlnLCBbcmVw
b3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c0ZvckRpZmZl
cmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXV0sIGZ1bmN0aW9uIChuZXdDb25maWdzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlncy5sZW5ndGgsIDIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3Bs
YXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0n
XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsn
bWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ3BsYXRmb3Jt
X25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmlj
X25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
Ci19KTsKSW5kZXg6IHRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC5qcwkocmV2aXNpb24gMTk5MTI0KQorKysg
dGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3NiAr
MCwwIEBACi1kZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7
Ci0gICAgdmFyIHNpbXBsZVJlcG9ydCA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxOTg2
IiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKLSAgICAgICAg
ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0g
ICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAidGVzdCI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzEsIDIsIDNd
LCBbNCwgNSwgNl1dIH19Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIH0sCi0gICAg
ICAgIH1dOwotCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRlcihyZXBvcnQsIGNhbGxiYWNrKSB7Ci0g
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxkZXJzIChidWlsZGVyX25h
bWUsIGJ1aWxkZXJfcGFzc3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAg
IFtyZXBvcnRbMF0uYnVpbGRlck5hbWUsIHNoYTI1NihyZXBvcnRbMF0uYnVpbGRlclBhc3N3b3Jk
KV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBidWlsZCIsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5z
dGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAo
YnVpbGRSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3Mu
bGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93c1sw
XVsnYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJlcG9ydFJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRSb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0Um93c1sw
XVsncmVwb3J0X2J1aWxkX251bWJlciddLCAxOTg2KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBOVUxM
OyBERUxFVEUgRlJPTSBidWlsZHM7IFNFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9u
IChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSb3dzLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJl
cG9ydElkID0gcmVwb3J0Um93c1swXVsncmVwb3J0X2lkJ107Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PScgKyByZXBv
cnRJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9u
IChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3NbMF1bJ2J1aWxkX251bWJlciddLCAxOTg2
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG5vdCBkdXBsaWNhdGUgdGhlIHJlcHJvY2Vzc2Vk
IHJlcG9ydCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihzaW1wbGVSZXBvcnQs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1w
bGVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMn
LCBbXSwgZnVuY3Rpb24gKG9yaWdpbmFsUmVwcm90Um93cykgewotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3JpZ2luYWxSZXByb3RSb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVp
bGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0
PScgKyBvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9pZCddLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJP
TSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyZXBvcnRSb3dzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Um93c1swXVsncmVwb3J0X2NvbW1pdHRlZF9h
dCddID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Um93c1sw
XVsncmVwb3J0X2NvbW1pdHRlZF9hdCddID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90Um93c1swXVsncmVwb3J0X2J1
aWxkJ10sIHJlcG9ydFJvd3NbMF1bJ3JlcG9ydF9idWlsZCddKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfYnVpbGQnXSA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFJvd3NbMF1bJ3JlcG9y
dF9idWlsZCddID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXBvcnRSb3dzLCBvcmlnaW5hbFJlcHJvdFJvd3MpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19KTsKSW5kZXg6IHRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC5qcwkocmV2aXNpb24gMTk5MTI0KQor
KysgdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0MDQg
KzAsMCBAQAotZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewot
ICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXIocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVy
X3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBd
LmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBjYWxsYmFj
ayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYyhwbGF0Zm9y
bU5hbWUsIG1ldHJpY05hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J1NFTEVDVCAqIEZST00gcGxhdGZvcm1zIFdIRVJFIHBsYXRmb3JtX25hbWUgPSAkMScsIFtwbGF0
Zm9ybU5hbWVdLCBmdW5jdGlvbiAocGxhdGZvcm1Sb3dzKSB7Ci0gICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RfbWV0cmljcyBXSEVSRSBtZXRyaWNfbmFtZSA9
ICQxJywgW21ldHJpY05hbWVdLCBmdW5jdGlvbiAobWV0cmljUm93cykgewotICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKHBsYXRmb3JtUm93c1swXVsncGxhdGZvcm1faWQnXSwgbWV0cmljUm93c1sw
XVsnbWV0cmljX2lkJ10pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXRNYXAsIHJvdykgewotICAgICAgICB2YXIgcmVzdWx0
ID0ge307Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0TWFwLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICB2YXIga2V5ID0gZm9ybWF0TWFwW2ldOwotICAgICAgICAgICAgaWYg
KGtleSA9PSAnaWQnIHx8IGtleSA9PSAnYnVpbGQnIHx8IGtleSA9PSAnYnVpbGRlcicpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByZXN1bHRba2V5XSA9IHJvd1tpXTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZhciBjbHVz
dGVyU3RhcnQgPSBjb25maWcoJ2NsdXN0ZXJTdGFydCcpOwotICAgIGNsdXN0ZXJTdGFydCA9ICtE
YXRlLlVUQyhjbHVzdGVyU3RhcnRbMF0sIGNsdXN0ZXJTdGFydFsxXSAtIDEsIGNsdXN0ZXJTdGFy
dFsyXSwgY2x1c3RlclN0YXJ0WzNdLCBjbHVzdGVyU3RhcnRbNF0pOwotCi0gICAgdmFyIGNsdXN0
ZXJTaXplID0gY29uZmlnKCdjbHVzdGVyU2l6ZScpOwotICAgIHZhciBEQVkgPSAyNCAqIDM2MDAg
KiAxMDAwOwotICAgIHZhciBZRUFSID0gMzY1LjI0ICogREFZOwotICAgIHZhciBNT05USCA9IDMw
ICogREFZOwotICAgIGNsdXN0ZXJTaXplID0gY2x1c3RlclNpemVbMF0gKiBZRUFSICsgY2x1c3Rl
clNpemVbMV0gKiBNT05USCArIGNsdXN0ZXJTaXplWzJdICogREFZOwotCi0gICAgZnVuY3Rpb24g
Y2x1c3RlclRpbWUoaW5kZXgpIHsgcmV0dXJuIG5ldyBEYXRlKGNsdXN0ZXJTdGFydCArIGNsdXN0
ZXJTaXplICogaW5kZXgpOyB9Ci0KLSAgICB2YXIgcmVwb3J0V2l0aEJ1aWxkVGltZSA9IFt7Ci0g
ICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAotICAgICAgICAiYnVpbGRUaW1lIjogY2x1c3Rl
clRpbWUoNy44KS50b0lTT1N0cmluZygpLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1
aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAg
ICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAg
ICAgICAgICAgIlN1aXRlIjogewotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAg
ICAgICAgICAgICAgInRlc3QxIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3Mi
OiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzEsIDIsIDMsIDQsIDVdIH19Ci0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgfX1d
OwotICAgIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lID0gK2NsdXN0ZXJUaW1lKDcpOwot
Ci0gICAgdmFyIHJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6
ICIxMjQiLAotICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTU6MzQ6NTEiLAotICAg
ICAgICAicmV2aXNpb25zIjogewotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMTQ0MDAwIiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjog
Y2x1c3RlclRpbWUoMTAuMykudG9JU09TdHJpbmcoKSwKLSAgICAgICAgICAgIH0sCi0gICAgICAg
IH0sCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWls
ZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50
YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAiU3VpdGUiOiB7Ci0g
ICAgICAgICAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQi
OiBbMTEsIDEyLCAxMywgMTQsIDE1XSB9fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgfX1dOwotCi0gICAgdmFyIHJlcG9y
dFdpdGhOZXdSZXZpc2lvbiA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAotICAg
ICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMjE6NDU6MTciLAotICAgICAgICAicmV2aXNp
b25zIjogewotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMTYwNjA5IiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogY2x1c3RlclRpbWUo
MTIuMSkudG9JU09TdHJpbmcoKQotICAgICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAg
ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0g
ICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICJTdWl0ZSI6IHsKLSAgICAgICAgICAgICAg
ICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxNiwgMTcsIDE4
LCAxOSwgMjBdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9LAotICAgICAgICB9fV07Ci0KLSAgICB2YXIgcmVwb3J0V2l0aEFuY2VudFJl
dmlzaW9uID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNiIsCi0gICAgICAgICJidWls
ZFRpbWUiOiAiMjAxMy0wMi0yOFQyMzowNzoyNSIsCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0g
ICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMzc3
OTMiLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBjbHVzdGVyVGltZSgxLjgpLnRvSVNP
U3RyaW5nKCkKLSAgICAgICAgICAgIH0sCi0gICAgICAgIH0sCi0gICAgICAgICJidWlsZGVyTmFt
ZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3
b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAidGVz
dHMiOiB7Ci0gICAgICAgICAgICAiU3VpdGUiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjog
ewotICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMjEsIDIyLCAyMywgMjQsIDI1XSB9
fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSwKLSAgICAgICAgfX1dOwotCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBwbGF0Zm9ybSBJ
RCBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdp
dGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJp
YygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9t
ZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOwotICAgICAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9
KTsKLQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNo
b3VsZCByZWplY3Qgd2hlbiBtZXRyaWMgSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
ICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0
aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0
KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZv
cm0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcGxh
dGZvcm0gbmFtZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRo
QnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMo
J01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkg
ewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxh
dGZvcm09JyArIHBsYXRmb3JtSWQgKyAnYSZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnSW52YWxpZFBsYXRmb3JtJyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBu
YW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRp
bWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRh
aW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0n
ICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCArICdiJywgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBhIHJlcG9ydGVk
IHZhbHVlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWls
ZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91
bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9y
bT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBwYXJlc2RSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5y
ZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1l
WzBdWydidWlsZFRpbWUnXSkpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE9iamVjdC5rZXlzKHBhcmVzZFJlc3VsdCkuc29ydCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsnY2x1c3RlckNvdW50JywgJ2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFy
dCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnLCAnZWxh
cHNlZFRpbWUnLCAnZW5kVGltZScsICdmb3JtYXRNYXAnLCAnbGFzdE1vZGlmaWVkJywgJ3N0YXJ0
VGltZScsICdzdGF0dXMnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cGFyZXNkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0WydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHBhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10s
IFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnLCAnbWVhbicsICdpdGVyYXRpb25D
b3VudCcsICdzdW0nLCAnc3F1YXJlU3VtJywgJ21hcmtlZE91dGxpZXInLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdyZXZpc2lvbnMnLCAnY29tbWl0VGltZScsICdidWlsZCcsICdidWls
ZFRpbWUnLCAnYnVpbGROdW1iZXInLCAnYnVpbGRlciddKTsKLQotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhC
dWlsZFRpbWUuc3RhcnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBl
b2YocGFyZXNkUmVzdWx0WydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICdsYXN0TW9kaWZp
ZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9u
cyddKSwgWydjdXJyZW50J10pOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVu
dFJvd3MgPSBwYXJlc2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0
aCwgcGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwg
Y3VycmVudFJvd3NbMF0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNxdWFyZVN1bTogNTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGll
cjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjMnfSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgIH0pOwotCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBp
dCgic2hvdWxkIHJldHVybiByZXR1cm4gdGhlIHJpZ2h0IElEcyBmb3IgbWVhc3VyZW1lbnQsIGJ1
aWxkLCBhbmQgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBv
cnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRy
aWNJZCkgewotICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBG
Uk9NIHRlc3RfcnVucycsIFtdLCBmdW5jdGlvbiAocnVucykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBtZWFzdXJlbWVudElkID0gcnVuc1swXVsncnVuX2lkJ107Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBm
dW5jdGlvbiAoYnVpbGRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBi
dWlsZElkID0gYnVpbGRzWzBdWydidWlsZF9pZCddOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRlcnMnLCBbXSwgZnVuY3Rp
b24gKGJ1aWxkZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZGVycy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgYnVpbGRlcklkID0gYnVpbGRlcnNbMF1bJ2J1aWxkZXJfaWQnXTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlc2RS
ZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0Wydjb25maWd1
cmF0aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVudCA9IHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlv
bnMnXVsnY3VycmVudCddWzBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJl
c3VsdFsnZm9ybWF0TWFwJ10uaW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3Bh
cmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50
W3BhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklk
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBwb3N0UmVwb3J0cyhyZXBvcnRzLCBjYWxsYmFjaykg
ewotICAgICAgICBpZiAoIXJlcG9ydHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKCk7Ci0KLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNbMF0sIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgIHBvc3RS
ZXBvcnRzKHJlcG9ydHMuc2xpY2UoMSksIGNhbGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KHBsYXRm
b3JtTmFtZSwgbWV0cmljTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAg
IHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBmdW5jdGlv
biAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J1NFTEVDVCAqIEZST00gcmVwb3NpdG9yaWVzIFdIRVJFIHJlcG9zaXRvcnlfbmFtZSA9ICQxJywg
W3JlcG9zaXRvcnlOYW1lXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcm93c1swXVsncmVwb3NpdG9yeV9pZCddKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIG9yZGVy
IHJlc3VsdHMgYnkgY29tbWl0IHRpbWUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxk
ZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJl
cG9ydHMoW3JlcG9ydFdpdGhCdWlsZFRpbWUsIHJlcG9ydFdpdGhSZXZpc2lvbl0sIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRv
cnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1J
ZCwgbWV0cmljSWQsIHJlcG9zaXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0
KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJp
Yz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0
YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9
ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciByZXZpc2lvblRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdp
dGhSZXZpc2lvblswXVsncmV2aXNpb25zJ11bJ1dlYktpdCddWyd0aW1lc3RhbXAnXSkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHJldmlzaW9uQnVpbGRUaW1lID0gKyhuZXcgRGF0ZShy
ZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSddKSk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBjdXJyZW50Um93cyA9IHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsn
Y3VycmVudCddOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRS
b3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGZvcm1hdChwYXJzZWRSZXN1bHRbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW46IDEzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdW06
IDY1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3F1YXJlU3VtOiA4NTUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldmlzaW9uczogW1sxLCByZXBvc2l0b3J5SWQsICcxNDQwMDAnLCByZXZp
c2lvblRpbWVdXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJldmlz
aW9uVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25C
dWlsZFRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZE51bWJlcjogJzEyNCcg
fSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChwYXJz
ZWRSZXN1bHRbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZWFuOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJh
dGlvbkNvdW50OiA1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bTogMTUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3F1YXJlU3VtOiA1NSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXZpc2lvbnM6IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRp
bWU6IGJ1aWxkVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZFRpbWU6IGJ1
aWxkVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZE51bWJlcjogJzEyMycg
fSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOyAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGJ1aWxkTnVtYmVy
cyhwYXJzZWRSZXN1bHQsIGNvbmZpZykgewotICAgICAgICByZXR1cm4gcGFyc2VkUmVzdWx0Wydj
b25maWd1cmF0aW9ucyddW2NvbmZpZ10ubWFwKGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAg
IHJldHVybiBmb3JtYXQocGFyc2VkUmVzdWx0Wydmb3JtYXRNYXAnXSwgcm93KVsnYnVpbGROdW1i
ZXInXTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCBpbmNsdWRlIG9uZSBk
YXRhIHBvaW50IGFmdGVyIHRoZSBjdXJyZW50IHRpbWUgcmFuZ2UiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVwb3J0V2l0
aE5ld1JldmlzaW9uXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZv
cm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktp
dCcsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3NpdG9yeUlkKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0n
ICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVzdWx0ID0gSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHBhcnNlZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnY2x1c3RlckNvdW50J10sIDIsICdzaG91
bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYnVpbGROdW1iZXJzKHBhcnNlZFJlc3VsdCwgJ2N1cnJlbnQnKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uWzBdWydidWlsZE51
bWJlciddLCByZXBvcnRXaXRoTmV3UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ11dKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgLy8gRklYTUU6IFRoaXMgdGVzdCBhc3N1bWVzIGEg
Y2x1c3RlciBzdGVwIG9mIDItMyBtb250aHMKLSAgICBpdCgic2hvdWxkIGFsd2F5cyBpbmNsdWRl
IG9uZSBvbGQgZGF0YSBwb2ludCBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSByYW5nZSIsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBwb3N0UmVwb3J0cyhbcmVwb3J0V2l0aEJ1aWxkVGltZSwgcmVw
b3J0V2l0aEFuY2VudFJldmlzaW9uXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbicsICdUaW1l
JywgJ1dlYktpdCcsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3NpdG9yeUlk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVzdWx0ID0g
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnY2x1c3RlckNvdW50J10s
IDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKLQotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIGN1cnJlbnRSb3dzID0gcGFyc2VkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJy
ZW50J107Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3Mu
bGVuZ3RoLCAyLCAnc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkTnVtYmVycyhwYXJz
ZWRSZXN1bHQsICdjdXJyZW50JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9y
dFdpdGhBbmNlbnRSZXZpc2lvblswXVsnYnVpbGROdW1iZXInXSwgcmVwb3J0V2l0aEJ1aWxkVGlt
ZVswXVsnYnVpbGROdW1iZXInXV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAv
LyBGSVhNRTogVGhpcyB0ZXN0IGFzc3VtZXMgYSBjbHVzdGVyIHN0ZXAgb2YgMi0zIG1vbnRocwot
ICAgIGl0KCJzaG91bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVwb3J0V2l0aFJl
dmlzaW9uLCByZXBvcnRXaXRoTmV3UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9u
JywgJ1RpbWUnLCAnV2ViS2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBv
c2l0b3J5SWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRS
ZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FjaGVQcmVmaXggPSAnL2RhdGEvbWVhc3VyZW1l
bnQtc2V0LScgKyBwbGF0Zm9ybUlkICsgJy0nICsgbWV0cmljSWQ7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBodHRwR2V0KGNhY2hlUHJlZml4ICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZENhY2hlZFJlc3VsdCA9
IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHBhcnNlZFJlc3VsdCwgcGFyc2VkQ2FjaGVkUmVzdWx0
KTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoY2FjaGVQcmVmaXggKyAn
LScgKyBwYXJzZWRSZXN1bHRbJ3N0YXJ0VGltZSddICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRPbGRSZXN1
bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhwYXJz
ZWRPbGRSZXN1bHQsICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBuZXdCdWlsZE51bWJlcnMgPSBidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVu
dCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQob2xkQnVpbGROdW1i
ZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG9sZCBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0
IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQobmV3QnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBj
b250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9sZEJ1aWxkTnVtYmVycy5zbGljZShvbGRCdWls
ZE51bWJlcnMubGVuZ3RoIC0gMiksIG5ld0J1aWxkTnVtYmVycy5zbGljZSgwLCAyKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUd28gY29uc2VxY3V0aXZlIGNsdXN0ZXJz
IHNob3VsZCBzaGFyZSB0d28gZGF0YSBwb2ludHMnKTsKLQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotCi19KTsKSW5kZXg6IHRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSB0ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMuanMJKHJldmlzaW9uIDE5
OTEyNCkKKysrIHRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSwyMzcgKzAsMCBAQAotZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewotICAgIHZhciBlbXB0eVJlcG9ydCA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJzb21l
U2xhdmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgIH07
Ci0gICAgdmFyIHN1YnZlcnNpb25Db21taXQgPSB7Ci0gICAgICAgICJzbGF2ZU5hbWUiOiAic29t
ZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAg
ICAgImNvbW1pdHMiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgInJlcG9zaXRv
cnkiOiAiV2ViS2l0IiwKLSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKLSAg
ICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKLSAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCi0gICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICB9OwotICAgIHZhciBz
dWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAi
Y29tbWl0cyI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJfMTQxOTc3IiwKLSAgICAg
ICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKLSAgICAgICAgICAg
ICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnIn0sCi0gICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBt
ZXNzYWdlIiwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICB9OwotICAgIHZhciBzdWJ2
ZXJzaW9uVHdvQ29tbWl0cyA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAot
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAiY29tbWl0
cyI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAgICAgICAg
ICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAotICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmcifSwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2Ui
LAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVwb3Np
dG9yeSI6ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICJwYXJlbnQiOiAiMTQxOTc3IiwKLSAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4IiwKLSAgICAgICAgICAgICAgICAidGlt
ZSI6ICIyMDEzLTAyLTA2VDA5OjU0OjU2LjBaIiwKLSAgICAgICAgICAgICAgICAiYXV0aG9yIjog
eyJuYW1lIjogIk1pa2hhaWwgUG96ZG55YWtvdiIsICJhY2NvdW50IjogIm1pa2hhaWwucG96ZG55
YWtvdkBpbnRlbC5jb20ifSwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVyIG1l
c3NhZ2UiLAotICAgICAgICAgICAgfQotICAgICAgICBdCi0gICAgfQotCi0gICAgZnVuY3Rpb24g
YWRkU2xhdmUocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJ
TlNFUlQgSU5UTyBidWlsZF9zbGF2ZXMgKHNsYXZlX25hbWUsIHNsYXZlX3Bhc3N3b3JkX2hhc2gp
IHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0LnNsYXZlTmFtZSwgc2hhMjU2
KHJlcG9ydC5zbGF2ZVBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgic2hv
dWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30sIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKLSAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJl
amVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVz
cG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSBjb21taXRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWNjZXB0IGFuIGVtcHR5IHJlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkU2xhdmUoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
Ci0gICAgaXQoInNob3VsZCBhZGQgYSBtaXNzaW5nIHJlcG9zaXRvcnkiLCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRvcmllcycsIFtd
LCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsn
cmVwb3NpdG9yeV9uYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9y
eSddKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNo
b3VsZCBzdG9yZSBhIGNvbW1pdCBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0
ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQu
Y29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2Nv
bW1pdF9yZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X3RpbWUnXS50b1N0cmluZygpLCBu
ZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
YWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2Nv
bW1pdF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52YWxp
ZCByZXZpc2lvbiBudW1iZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZl
cnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN1YnZlcnNpb25Db21taXQK
LSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25J
bnZhbGlkQ29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwg
J09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBj
b21taXRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNs
YXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uVHdvQ29tbWl0
cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClb
J3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBj
b21taXR0ZXJfaWQgT1JERVIgQlkgY29tbWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNv
bW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwgbmV3
IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWRE
YXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2Fj
Y291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X3JldmlzaW9u
J10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzFdWydjb21taXRfdGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEz
LTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydj
b21taXR0ZXJfYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X21lc3NhZ2Un
XSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgaWYg
dGhlcmUgaXMgb25lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJ
TlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgkMSkgUkVU
VVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0gICAgICAg
ICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5X2lkJ107
Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRz
WzBdOwotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAo
Y29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAo
JDEsICQyLCAkMykgUkVUVVJOSU5HIConLAotICAgICAgICAgICAgICAgIFtyZXBvc2l0b3J5SWQs
IHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWyd0aW1lJ11dLCBmdW5jdGlv
biAoZXhpc3RpbmdDb21taXRzKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbW1pdElkID0gZXhp
c3RpbmdDb21taXRzWzBdWydjb21taXRfaWQnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZXhpc3RpbmdDb21taXRzWzBdWydjb21taXRfbWVzc2FnZSddLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIg
PSBjb21taXR0ZXJfaWQnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNb
MF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2Nv
bW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2Nv
dW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdlJ10sIHJl
cG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG5vdCB1cGRhdGUgYW4gdW5yZWxhdGVkIGNvbW1p
dCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8g
cmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X25hbWUpIFZBTFVFUyAoJDEpIFJFVFVSTklORyAqJywg
WydXZWJLaXQnXSwgZnVuY3Rpb24gKHJlcG9zaXRvcmllcykgewotICAgICAgICAgICAgdmFyIHJl
cG9zaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXVsncmVwb3NpdG9yeV9pZCddOwotICAgICAgICAg
ICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07Ci0g
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21taXRzIChjb21taXRf
cmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21taXRfdGltZSkgVkFMVUVTICgkMSwgJDIs
ICQzKSBSRVRVUk5JTkcgKicsCi0gICAgICAgICAgICAgICAgW3JlcG9zaXRvcnlJZCwgcmVwb3J0
ZWREYXRhWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3RpbWUnXV0sIGZ1bmN0aW9uIChleGlz
dGluZ0NvbW1pdHMpIHsKLSAgICAgICAgICAgICAgICByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9u
VHdvQ29tbWl0cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J0lOU0VSVCBJTlRPIGNvbW1pdHMgKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24s
IGNvbW1pdF90aW1lKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFJFVFVSTklORyAqJywKLSAgICAgICAg
ICAgICAgICAgICAgW3JlcG9zaXRvcnlJZCwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCByZXBv
cnRlZERhdGFbJ3RpbWUnXV0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9u
Q29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIExFRlQgT1VURVIg
Sk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQgT1JERVIg
QlkgY29tbWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0
dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJf
YWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9t
ZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXR0ZXJfbmFtZSddLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzFdWydjb21taXR0ZXJfYWNjb3VudCddLCBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXRfbWVzc2FnZSddLCBu
dWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJz
aG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1pdHRlciBpZiB0aGVyZSBpcyBvbmUiLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIHJlcG9zaXRv
cmllcyAocmVwb3NpdG9yeV9pZCwgcmVwb3NpdG9yeV9uYW1lKSBWQUxVRVMgKDEsIFwnV2ViS2l0
XCcpJywgW10sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBhdXRob3IgPSBzdWJ2ZXJz
aW9uQ29tbWl0LmNvbW1pdHNbMF1bJ2F1dGhvciddOwotICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnSU5TRVJUIElOVE8gY29tbWl0dGVycyAoY29tbWl0dGVyX3JlcG9zaXRvcnksIGNvbW1p
dHRlcl9hY2NvdW50KSBWQUxVRVMgKDEsICQxKScsIFthdXRob3JbJ2FjY291bnQnXV0sIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHRlcnMnLCBbXSwgZnVuY3Rpb24g
KHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdWydjb21taXR0ZXJfbmFtZSddLCBhdXRob3JbJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIGF1
dGhvclsnYWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25l
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci0KLX0pOwpJbmRleDogdGVzdHMvYXBpLXJlcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0
cy9hcGktcmVwb3J0LmpzCShyZXZpc2lvbiAxOTkxMjQpCisrKyB0ZXN0cy9hcGktcmVwb3J0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDc1OSArMCwwIEBACi1kZXNjcmliZSgiL2FwaS9yZXBvcnQi
LCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGVtcHR5UmVwb3J0ID0gW3sKLSAgICAgICAgImJ1aWxk
TnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjow
My4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAg
ICAgICAidGVzdHMiOiB7fSwKLSAgICAgICAgInJldmlzaW9ucyI6IHsKLSAgICAgICAgICAgICJP
UyBYIjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJDNjAiCi0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTQxOTc3IiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDIt
MDZUMDg6NTU6MjAuOVoiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH19XTsKLQotICAgIHZhciBl
bXB0eVNsYXZlUmVwb3J0ID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAg
ICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAi
YnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjog
InNvbWVQYXNzd29yZCIsCi0gICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAg
ICAgInNsYXZlUGFzc3dvcmQiOiAib3RoZXJQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6
ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjoge30sCi0gICAgICAgICJyZXZpc2lv
bnMiOiB7Ci0gICAgICAgICAgICAiT1MgWCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNpb24i
OiAiMTAuOC4yIDEyQzYwIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJXZWJLaXQiOiB7
Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCi0gICAgICAgICAgICAgICAg
InRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgotICAgICAgICAgICAgfQotICAg
ICAgICB9fV07Ci0KLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVyKHJlcG9ydCwgY2FsbGJhY2spIHsK
LSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRlcnMgKGJ1aWxkZXJf
bmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAg
ICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9ydFswXS5idWlsZGVyUGFzc3dv
cmQpXSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFkZFNsYXZlKHJlcG9ydCwg
Y2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRf
c2xhdmVzIChzbGF2ZV9uYW1lLCBzbGF2ZV9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMikn
LAotICAgICAgICAgICAgW3JlcG9ydFswXS5zbGF2ZU5hbWUsIHNoYTI1NihyZXBvcnRbMF0uc2xh
dmVQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCByZWplY3Qg
ZXJyb3Igd2hlbiBidWlsZGVyIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEw
OjEyOjAzLjM4ODMwNCJ9XSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlzc2lu
Z0J1aWxkZXJOYW1lJyk7Ci0gICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgIH0pOwot
ICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWlsZCB0aW1lIGlz
IG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJi
dWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3
b3JkIn1dLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3NpbmdC
dWlsZFRpbWUnKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRo
ZXJlIGFyZSBubyBidWlsZGVycyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5z
J10sIDApOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikg
ZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91
bGQgcmVqZWN0IGEgcmVwb3J0IHdpdGhvdXQgYSBidWlsZGVyIHBhc3N3b3JkIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICB2YXIgcmVwb3J0ID0gW3sKLSAgICAgICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAi
MTIzIiwKLSAgICAgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMu
Mzg4MzA0IiwKLSAgICAgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAot
ICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAotICAgICAgICAgICAgICAgICJyZXZpc2lvbnMi
OiB7fX1dOwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydCwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7Ci0KLSAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBv
cnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmNvdW50LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSBhIHJlcG9ydCBmcm9tIGEgdmFsaWQgYnVpbGRl
ciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
ZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKLSAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBv
cnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgaXQoInNob3VsZCB0cmVhdCB0aGUgc2xhdmUgcGFzc3dvcmQgYXMgdGhlIGJ1
aWxkZXIgcGFzc3dvcmQgaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgc2xhdmUiLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBhc3N3b3JkJ10gPSBlbXB0eVJlcG9ydFswXVsn
YnVpbGRlclBhc3N3b3JkJ107Ci0gICAgICAgICAgICBkZWxldGUgZW1wdHlSZXBvcnRbMF1bJ2J1
aWxkZXJQYXNzd29yZCddOwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVt
cHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBlbXB0eVJl
cG9ydFswXVsnYnVpbGRlclBhc3N3b3JkJ10gPSBlbXB0eVJlcG9ydFswXVsnc2xhdmVQYXNzd29y
ZCddOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBlbXB0eVJlcG9ydFswXVsnc2xhdmVQYXNzd29y
ZCddOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUs
IDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwg
ZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Ci0gICAgICAgICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlv
biAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3Vu
dCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJz
aG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRTbGF2ZShlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlTbGF2ZVJlcG9ydCwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9y
ZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Ci0gICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBm
dW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XS5jb3VudCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAg
IGl0KCJzaG91bGQgc3RvcmUgdGhlIGJ1aWxkZXIgbmFtZSBidXQgbm90IHRoZSBidWlsZGVyIHBh
c3N3b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlS
ZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCByZXBvcnRfY29udGVudCBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24g
KHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlZENvbnRlbnQgPSBKU09OLnBh
cnNlKHJvd3NbMF0ucmVwb3J0X2NvbnRlbnQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnRbMF1bJ2J1aWxk
ZXJOYW1lJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRlclBhc3N3b3Jk
JyBpbiBzdG9yZWRDb250ZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsK
LSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIGEgc2xhdmUgaWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0
aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1
aWxkX3NsYXZlcycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zbGF2ZV9uYW1lLCBlbXB0eVJlcG9ydFswXS5zbGF2
ZU5hbWUpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgi
c2hvdWxkIGFkZCBhIGJ1aWxkZXIgaWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0IHdh
cyBhdXRoZW50aWNhdGVkIGJ5IGEgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNs
YXZlKGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkZXJz
JywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzWzBdLmJ1aWxkZXJfbmFtZSwgZW1wdHlSZXBvcnRbMF0uYnVpbGRlck5hbWUp
OwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxk
IGFkZCBhIGJ1aWxkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVw
b3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
ZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmJ1aWxkX251
bWJlciwgMTIzKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAg
aXQoInNob3VsZCBhZGQgdGhlIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gcGxhdGZvcm1zJywgW10s
IGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyb3dzWzBdLnBsYXRmb3JtX25hbWUsICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIHJlcG9zaXRvcmll
cyBhbmQgYnVpbGQgcmV2aXNpb25zIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVy
KGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVwb3NpdG9yaWVzJywgW10sIGZ1
bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm93
cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93WydyZXBvc2l0b3J5X25hbWUnXTsgfSks
IFsnT1MgWCcsICdXZWJLaXQnXSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRv
cnlJZFRvTmFtZSA9IHt9OwotICAgICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rp
b24gKHJvdykgeyByZXBvc2l0b3J5SWRUb05hbWVbcm93WydyZXBvc2l0b3J5X2lkJ11dID0gcm93
WydyZXBvc2l0b3J5X25hbWUnXTsgfSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29tbWl0cywgY29tbWl0cyBXSEVSRSBidWlsZF9j
b21taXQgPSBjb21taXRfaWQnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAocm93KSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJ
ZFRvTmFtZVtyb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J11dXSA9IHJvdzsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9z
aXRvcnlOYW1lVG9SZXZpc2lvblJvd1snT1MgWCddWydjb21taXRfcmV2aXNpb24nXSwgJzEwLjgu
MiAxMkM2MCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ2NvbW1pdF9yZXZpc2lvbiddLCAnMTQxOTc3
Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVU
b1JldmlzaW9uUm93WydXZWJLaXQnXVsnY29tbWl0X3RpbWUnXS50b1N0cmluZygpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50
b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBs
aWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUg
Y2xvc2UiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydidWlsZFRpbWUnXSA9ICcy
MDEzLTAyLTI4VDEwOjEyOjA0JzsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdP
SycpOwotCi0gICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIw
MTMtMDItMjhUMTA6MjI6MDMnOwotICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0g
ICAgaXQoInNob3VsZCBjcmVhdGUgZGlzdGluY3QgYnVpbGRzIGZvciB0aGUgc2FtZSBidWlsZCBu
dW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGZhciBhcGFydCIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZW1w
dHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDMnOwotICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAocm93cykg
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotCi0g
ICAgICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydidWlsZFRpbWUnXSA9ICcyMDE0LTAx
LTIwVDIyOjIzOjM0JzsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAocm93cykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNo
b3VsZCByZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGluZyByZXZpc2lvbiBpbmZvIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNpb25zJ10gPSB7Ci0gICAgICAgICAg
ICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3
NyIsCi0gICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToy
MC45NloiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFsw
XVsncmV2aXNpb25zJ10gPSB7Ci0gICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTUwMDAwIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wNS0xM1QxMDo1MDoyOS42WiIKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQocmVzcG9uc2UucmVzcG9uc2VUZXh0LmluZGV4T2YoJzE0MTk3NycpID49IDApOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQocmVzcG9uc2UucmVzcG9uc2VUZXh0LmluZGV4T2YoJzE1MDAw
MCcpID49IDApOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
Wydwcm9jZXNzZWRSdW5zJ10sIDApOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci0KLSAgICB2YXIgcmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zID0gW3sKLSAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxk
ZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAg
ICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAg
ICAgICAgIkR1bW15UGFnZUxvYWRpbmciOiB7Ci0gICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
IlRpbWUiOiB7ICJhZ2dyZWdhdG9ycyIgOiBbIkFyaXRobWV0aWMiXSwgImN1cnJlbnQiOiBbMzAw
LCAzMTAsIDMyMCwgMzMwXSB9fSwKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAg
ICAgICAgICAgICAgICJhcHBsZS5jb20iOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbNTAwLCA1MTAsIDUyMCwgNTMwXSB9fSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovL3d3dy5hcHBsZS5jb20iCi0gICAg
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICJ3ZWJraXQub3JnIjogewot
ICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50Ijog
WzEwMCwgMTEwLCAxMjAsIDEzMF0gfX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHA6Ly93d3cud2Via2l0Lm9yZyIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAiRHVtbXlCZW5jaG1hcmsiOiB7
Ci0gICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiBbIkFyaXRobWV0aWMiXX0sCi0g
ICAgICAgICAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgICAgICAgICAiRE9NIjogewot
ICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiBbIkdlb21ldHJpYyIs
ICJBcml0aG1ldGljIl19LAotICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RzIjogewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJNb2RpZnlOb2RlcyI6IHsibWV0cmljcyI6IHsiVGlt
ZSI6IHsgImN1cnJlbnQiOiBbWzExLCAxMiwgMTMsIDE0LCAxNV0sIFsxNiwgMTcsIDE4LCAxOSwg
MjBdLCBbMjEsIDIyLCAyMywgMjQsIDI1XV0gfX19LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUcmF2ZXJzZU5vZGVzIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFtb
MzEsIDMyLCAzMywgMzQsIDM1XSwgWzM2LCAzNywgMzgsIDM5LCA0MF0sIFs0MSwgNDIsIDQzLCA0
NCwgNDVdXSB9fX0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICAgICAgIkNTUyI6IHsibWV0cmljcyI6IHsiVGltZSI6IHsg
ImN1cnJlbnQiOiBbWzEwMSwgMTAyLCAxMDMsIDEwNCwgMTA1XSwgWzEwNiwgMTA3LCAxMDgsIDEw
OSwgMTEwXSwgWzExMSwgMTEyLCAxMTMsIDExNCwgMTE1XV0gfX19Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICAicmV2aXNpb25zIjogewotICAg
ICAgICAgICAgIk9TIFgiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAx
MkM2MCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAg
ICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAi
OiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOwot
Ci0gICAgZnVuY3Rpb24gYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnQsIGNhbGxi
YWNrKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBhZ2dyZWdhdG9ycyAoYWdncmVnYXRv
cl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAg
ICAgICAgICAgWydBcml0aG1ldGljJywgJ3ZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHsg
cmV0dXJuIGEgKyBiOyB9KSAvIHZhbHVlcy5sZW5ndGgnXSwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGFnZ3JlZ2F0b3JzIChhZ2dy
ZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikgdmFsdWVzICgkMSwgJDIpJywKLSAg
ICAgICAgICAgICAgICAgICAgWydHZW9tZXRyaWMnLCAnTWF0aC5wb3codmFsdWVzLnJlZHVjZShm
dW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAqIGI7IH0pLCAxIC8gdmFsdWVzLmxlbmd0aCknXSwg
Y2FsbGJhY2spOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGZldGNoUnVuRm9yTWV0cmljKHRlc3ROYW1lLCBtZXRyaWNOYW1lLGNhbGxiYWNrKSB7
Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdF9ydW5zIFdIRVJF
IHJ1bl9jb25maWcgSU4nCi0gICAgICAgICAgICArICcoU0VMRUNUIGNvbmZpZ19pZCBGUk9NIHRl
c3RfY29uZmlndXJhdGlvbnMsIHRlc3RfbWV0cmljcywgdGVzdHMgV0hFUkUgY29uZmlnX21ldHJp
YyA9IG1ldHJpY19pZCBBTkQgbWV0cmljX3Rlc3QgPSB0ZXN0X2lkIEFORCcKLSAgICAgICAgICAg
ICsgJ3Rlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyKScsCi0gICAgICAgICAgICBb
J0FyaXRobWV0aWMnLCAndmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAr
IGI7IH0pIC8gdmFsdWVzLmxlbmd0aCddLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBhZ2dyZWdhdG9ycyAoYWdncmVnYXRvcl9uYW1lLCBh
Z2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICAgICAg
WydHZW9tZXRyaWMnLCAnTWF0aC5wb3codmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyBy
ZXR1cm4gYSAqIGI7IH0pLCAxIC8gdmFsdWVzLmxlbmd0aCknXSwgY2FsbGJhY2spOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIG5vdCByZWplY3Qgd2hlbiBhZ2dyZWdhdG9y
cyBhcmUgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRX
aXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFk
ZCB0ZXN0cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdh
dG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZB
Z2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm93cy5tYXAoZnVuY3Rpb24g
KHJvdykgeyByZXR1cm4gcm93Wyd0ZXN0X25hbWUnXTsgfSkuc29ydCgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgWydDU1MnLCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxv
YWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Vi
a2l0Lm9yZyddKTsKLSAgICAgICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF0udGVzdHMgPSB7
fTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3Vs
ZCBhZGQgbWV0cmljcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5B
Z2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2
ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcyBMRUZU
IEpPSU4gYWdncmVnYXRvcnMgT04gbWV0cmljX2FnZ3JlZ2F0b3IgPSBhZ2dyZWdhdG9yX2lkIFdI
RVJFIG1ldHJpY190ZXN0ID0gdGVzdF9pZCcsCi0gICAgICAgICAgICAgICAgICAgIFtdLCBmdW5j
dGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICB2YXIgdGVzdE5hbWVUb01ldHJpY3Mg
PSB7fTsKLSAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHJvd1sndGVzdF9uYW1lJ10gaW4gdGVzdE5h
bWVUb01ldHJpY3MpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRy
aWNzW3Jvd1sndGVzdF9uYW1lJ11dID0gbmV3IEFycmF5OwotICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0ucHVzaChbcm93WydtZXRyaWNf
bmFtZSddLCByb3dbJ2FnZ3JlZ2F0b3JfbmFtZSddXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
WydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0
aG1ldGljJ10sIFsnVGltZScsICdHZW9tZXRyaWMnXV0pOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydU
aW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJp
dGhtZXRpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5h
bWVUb01ldHJpY3NbJ01vZGlmeU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5v
ZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J3dlYmtpdC5vcmcnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JN
ZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJpY3MsIHRlc3RfY29uZmln
dXJhdGlvbnMsIHRlc3RfcnVucyBXSEVSRSBtZXRyaWNfdGVzdCA9IHRlc3RfaWQgQU5EIGNvbmZp
Z19tZXRyaWMgPSBtZXRyaWNfaWQnCi0gICAgICAgICAgICArICcgQU5EIHJ1bl9jb25maWcgPSBj
b25maWdfaWQgQU5EIHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyJywgW3Rlc3RO
YW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24gKHJ1blJvd3MpIHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIHZhciBydW4g
PSBydW5Sb3dzWzBdOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IEZST00gcnVuX2l0ZXJhdGlvbnMgV0hFUkUgaXRlcmF0aW9uX3J1biA9ICQxIE9SREVSIEJZIGl0
ZXJhdGlvbl9vcmRlcicsIFtydW5bJ3J1bl9pZCddXSwgZnVuY3Rpb24gKGl0ZXJhdGlvblJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socnVuLCBpdGVyYXRpb25Sb3dzKTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJzaG91
bGQgc3RvcmUgcnVuIHZhbHVlcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFu
ZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
VHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ2FwcGxlLmNvbScsICdUaW1l
JywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICB2YXIg
cnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVu
OiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJh
dGlvbl92YWx1ZTogNTAwLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjog
MSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUxMCwgaXRlcmF0aW9u
X3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlv
bl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwg
aXRlcmF0aW9uX3ZhbHVlOiA1MjAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29y
ZGVyOiAzLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTMwLCBpdGVy
YXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1
bSA9IDUwMCArIDUxMCArIDUyMCArIDUzMDsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgc3VtIC8gaXRlcmF0aW9ucy5sZW5ndGgpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIHN1bSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2Nh
Y2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAqIDUyMCArIDUzMCAqIDUzMCk7Ci0K
LSAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnQ1NT
JywgJ1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBbCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlv
bl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDEsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1l
OiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFs
dWU6IDEwMiwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAyLCBp
dGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTAzLCBpdGVyYXRpb25fcmVsYXRp
dmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9y
dW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDMsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0
aW9uX3ZhbHVlOiAxMDQsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRl
cjogNCwgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwNSwgaXRlcmF0aW9u
X3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVy
YXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA1LCBpdGVyYXRpb25fZ3JvdXA6IDEs
IGl0ZXJhdGlvbl92YWx1ZTogMTA2LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRp
b25fb3JkZXI6IDYsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDcsIGl0
ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogNywgaXRlcmF0aW9uX2dy
b3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwOCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51
bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwg
aXRlcmF0aW9uX29yZGVyOiA4LCBpdGVyYXRpb25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTog
MTA5LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDksIGl0ZXJh
dGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMTAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90
aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjog
cnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTAsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9u
X3ZhbHVlOiAxMTEsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjog
MTEsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTIsIGl0ZXJhdGlvbl9y
ZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0
aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTIsIGl0ZXJhdGlvbl9ncm91cDogMiwg
aXRlcmF0aW9uX3ZhbHVlOiAxMTMsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlv
bl9vcmRlcjogMTMsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTQsIGl0
ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTQsIGl0ZXJhdGlvbl9n
cm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTUsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBu
dWxsfV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN1bSA9IDA7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgc3F1YXJlU3VtID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGZvciAodmFyIHZhbHVlID0gMTAxOyB2YWx1ZSA8PSAxMTU7ICsrdmFsdWUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9j
YWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVh
cmVTdW0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgYWdncmVnYXRlZCBydW4g
dmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0
b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFn
Z3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hU
ZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlQYWdlTG9hZGluZycsICdUaW1lJywgZnVu
Y3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQg
PSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZXMg
PSBbKDUwMCArIDEwMCkgLyAyLCAoNTEwICsgMTEwKSAvIDIsICg1MjAgKyAxMjApIC8gMiwgKDUz
MCArIDEzMCkgLyAyXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVy
YXRpb25zLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQs
IGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFs
dWU6IGV4cGVjdGVkVmFsdWVzWzBdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9v
cmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVk
VmFsdWVzWzFdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRl
cmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzJdLCBp
dGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7
aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3Vw
OiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzNdLCBpdGVyYXRpb25fcmVs
YXRpdmVfdGltZTogbnVsbH1dKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1bSA9IGV4cGVj
dGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFs
dWU7IH0sIDApOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVh
bl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRW
YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAq
IHZhbHVlOyB9LCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQot
ICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBjb21wdXRlIHRoZSBhZ2dyZWdhdGlvbiBvZiBhZ2dy
ZWdhdGVkIHZhbHVlcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5B
Z2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2
ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15QmVuY2htYXJrJywgJ1RpbWUn
LCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBl
eHBlY3RlZEl0ZXJhdGlvbnMgPSBbXTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1bSA9IDA7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzcXVhcmVTdW0gPSAwOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE1OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciB2YWx1ZSA9IGkgKyAxOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIERPTU1l
YW4gPSAoKDEwICsgdmFsdWUpICsgKDMwICsgdmFsdWUpKSAvIDI7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IChET01NZWFuICsgMTAwICsgdmFsdWUpIC8gMjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN1bSArPSBleHBlY3RlZFZhbHVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVl
OwotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRJdGVyYXRpb25zLnB1c2goe2l0ZXJh
dGlvbl9ydW46IHJ1blsncnVuX2lkJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRl
cmF0aW9uX29yZGVyOiBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbl9n
cm91cDogTWF0aC5mbG9vcihpIC8gNSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRl
cmF0aW9uX3ZhbHVlOiBleHBlY3RlZFZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBleHBlY3Rl
ZEl0ZXJhdGlvbnMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5f
bWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgc3F1YXJl
U3VtKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgdmFyIHJl
cG9ydFdpdGhTYW1lU3VidGVzdE5hbWUgPSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIz
IiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0g
ICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExp
b24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAiU3VpdGUxIjogewotICAgICAg
ICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgInRlc3QxIjogewotICAg
ICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzEs
IDIsIDMsIDQsIDVdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1l
IjogeyAiY3VycmVudCI6IFs2LCA3LCA4LCA5LCAxMF0gfX0KLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAiU3VpdGUy
IjogewotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgInRl
c3QxIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJj
dXJyZW50IjogWzExLCAxMiwgMTMsIDE0LCAxNV0gfX0KLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgInRlc3QyIjogewotICAgICAgICAgICAgICAgICAgICAgICAg
Im1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzE2LCAxNywgMTgsIDE5LCAyMF0gfX0K
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgfX1dOwotCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGFkZCBhIHJlcG9ydCB3
aXRoIHNhbWUgc3VidGVzdCBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVy
QW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoU2FtZVN1
YnRlc3ROYW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0g
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gcmV1c2Ug
dGhlIHNhbWUgdGVzdCByb3dzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5k
TWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoU2FtZVN1YnRl
c3ROYW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywgW10sIGZ1bmN0aW9uICh0ZXN0Um93cykgewot
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0Um93cy5sZW5ndGgsIDYpOwotICAg
ICAgICAgICAgICAgICAgIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUuYnVpbGROdW1iZXIgPSAi
MTI1IjsKLSAgICAgICAgICAgICAgICAgICByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLmJ1aWxk
VGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOwotCi0gICAgICAgICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cycsIFtdLCBmdW5jdGlvbiAodGVzdFJvd3MpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0Um93cy5sZW5ndGgs
IDYpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQot
ICAgIHZhciByZXBvcnRXaXRoU2FtZVNpbmdsZVZhbHVlID0gW3sKLSAgICAgICAgImJ1aWxkTnVt
YmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4z
ODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAi
YnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJN
b3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgInN1aXRlIjog
ewotICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJDb21iaW5lZCI6IFsiQXJpdGhtZXRpYyJd
fSwKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0
MSI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJDb21iaW5lZCI6IHsg
ImN1cnJlbnQiOiAzIH19Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJDb21i
aW5lZCI6IHsgImN1cnJlbnQiOiA3IH19Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICB9fV07Ci0KLSAgICBpdCgic2hvdWxk
IGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2luZ2xlIHZhbHVlIHJlc3VsdHMiLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0
aFNhbWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU2luZ2xlVmFsdWUsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJv
cikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVzcG9u
c2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGZl
dGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QxJywgJ0NvbWJpbmVkJywgZnVuY3Rp
b24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCAzKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3N1aXRl
JywgJ0NvbWJpbmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlvbl9jb3VudF9jYWNoZSdd
LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFu
X2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
cnVuX3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIg
cmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
MyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAot
ICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBh
c3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBM
aW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgICAgICJ0ZXN0IjogewotICAg
ICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtb
WzAsIDRdLCBbMTAwLCA1XSwgWzIwNSwgM11dXSB9fQotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICB9LAotICAgICAgICB9XTsKLQotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQg
YSByZXBvcnQgd2l0aCAocmVsYXRpdmUgdGltZSwgdmFsdWUpIHBhaXJzIiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lVmFs
dWVQYWlycywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAg
ICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25z
ZVRleHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVu
SXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnLCBmdW5jdGlvbiAocnVuLCBp
dGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9p
dGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIDQpOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOwot
ICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVy
YXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNCwgaXRlcmF0aW9uX3JlbGF0aXZl
X3RpbWU6IDB9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklk
LCBpdGVyYXRpb25fb3JkZXI6IDEsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3Zh
bHVlOiA1LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMTAwfSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAyLCBpdGVyYXRp
b25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogMywgaXRlcmF0aW9uX3JlbGF0aXZlX3Rp
bWU6IDIwNX1dKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAg
dmFyIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzID0gWwotICAgICAgICBbewotICAgICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIw
MTMtMDItMjhUMTA6MTI6MDMiLAotICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWls
ZGVyIiwKLSAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAg
ICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgICAgICJ0ZXN0
cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1cnJlbnQiOiAzfX19fQotICAg
ICAgICB9XSwKLSAgICAgICAgW3sKLSAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjQiLAot
ICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDExOjMxOjIxIiwKLSAgICAgICAg
ICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICAgICAiYnVpbGRlclBh
c3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRh
aW4gTGlvbiIsCi0gICAgICAgICAgICAidGVzdHMiOiB7InRlc3QyIjogeyJtZXRyaWNzIjogeyJU
aW1lIjogeyJjdXJyZW50IjogM319fX0KLSAgICAgICAgfV0sCi0gICAgICAgIFt7Ci0gICAgICAg
ICAgICAiYnVpbGROdW1iZXIiOiAiMTI1IiwKLSAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAx
My0wMi0yOFQxMjo0NTozNCIsCi0gICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxk
ZXIiLAotICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAg
ICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAgICAgInRlc3Rz
IjogeyJ0ZXN0MSI6IHsibWV0cmljcyI6IHsiVGltZSI6IHsiY3VycmVudCI6IDN9fX19Ci0gICAg
ICAgIH1dLAotICAgIF07Ci0KLSAgICBmdW5jdGlvbiBmZXRjaFRlc3RDb25maWcodGVzdE5hbWUs
IG1ldHJpY05hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMgV0hFUkUg
dGVzdF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljJwotICAg
ICAgICAgICAgKyAnIEFORCB0ZXN0X25hbWUgPSAkMSBBTkQgbWV0cmljX25hbWUgPSAkMicsIFt0
ZXN0TmFtZSwgbWV0cmljTmFtZV0sIGZ1bmN0aW9uIChydW5Sb3dzKSB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhydW5Sb3dzWzBdKTsKLSAgICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJzaG91
bGQgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2YgdGVzdCBjb25maWd1cmF0aW9ucyB3
aXRoIG5ldyBydW5zIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydHNV
cGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF0sIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGZldGNoVGVzdENvbmZpZygndGVz
dDEnLCAnVGltZScsIGZ1bmN0aW9uIChvcmlnaW5hbENvbmZpZykgewotICAgICAgICAgICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHNbMl0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnLCBmdW5jdGlvbiAoY29uZmlnKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKCtvcmlnaW5hbENv
bmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddLCArY29uZmlnWydjb25maWdfcnVuc19s
YXN0X21vZGlmaWVkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
KTsKLQotICAgIGl0KCJzaG91bGQgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2YgdW5y
ZWxhdGVkIHRlc3QgY29uZmlndXJhdGlvbnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1
aWxkZXIocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF0sIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzVXBkYXRpbmdEaWZmZXJl
bnRUZXN0c1swXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hU
ZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKG9yaWdpbmFsQ29uZmlnKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzVXBkYXRp
bmdEaWZmZXJlbnRUZXN0c1sxXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScsIGZ1bmN0
aW9uIChjb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
K29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2Nv
bmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotfSk7CkluZGV4OiB0b29scy9qcy9kYXRhYmFzZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSB0b29scy9qcy9kYXRhYmFzZS5qcwkocmV2aXNpb24gMTk5MTI0KQorKysgdG9vbHMvanMv
ZGF0YWJhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAidXNlIHN0cmljdCI7
CiAKLXZhciBwZyA9IHJlcXVpcmUoJ3BnJyk7Ci12YXIgY29uZmlnID0gcmVxdWlyZSgnLi9jb25m
aWcuanMnKTsKK2NvbnN0IHBnID0gcmVxdWlyZSgncGcnKTsKK2NvbnN0IGNvbmZpZyA9IHJlcXVp
cmUoJy4vY29uZmlnLmpzJyk7CiAKIGNsYXNzIERhdGFiYXNlIHsKICAgICBjb25zdHJ1Y3Rvcihk
YXRhYmFzZU5hbWUpCkBAIC0yMywxMSArMjMsOCBAQAogICAgICAgICBsZXQgY29ubmVjdGlvblN0
cmluZyA9IGB0Y3A6Ly8ke3VzZXJuYW1lfToke3Bhc3N3b3JkfUAke2hvc3R9OiR7cG9ydH0vJHt0
aGlzLl9kYXRhYmFzZU5hbWV9YDsKIAogICAgICAgICBsZXQgY2xpZW50ID0gbmV3IHBnLkNsaWVu
dChjb25uZWN0aW9uU3RyaW5nKTsKLSAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmtl
ZXBBbGl2ZSkgewotICAgICAgICAgICAgY2xpZW50Lm9uKCdkcmFpbicsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fQorICAgICAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMua2VlcEFsaXZlKQorICAgICAgICAg
ICAgY2xpZW50Lm9uKCdkcmFpbicsIHRoaXMuZGlzY29ubmVjdC5iaW5kKHRoaXMpKTsKIAogICAg
ICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7CiAKQEAgLTYyLDYgKzU5LDU2IEBACiAgICAgICAg
IH0pOwogICAgIH0KIAorICAgIHNlbGVjdEFsbCh0YWJsZSwgY29sdW1uVG9Tb3J0QnkpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RSb3dzKHRhYmxlLCB7fSwge3NvcnRCeTogY29s
dW1uVG9Tb3J0Qnl9KTsKKyAgICB9CisKKyAgICBzZWxlY3RGaXJzdFJvdyh0YWJsZSwgcGFyYW1z
LCBjb2x1bW5Ub1NvcnRCeSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdFJvd3Mo
dGFibGUsIHBhcmFtcywge3NvcnRCeTogY29sdW1uVG9Tb3J0QnksIGxpbWl0OiAxfSkudGhlbihm
dW5jdGlvbiAocm93cykgeworICAgICAgICAgICAgcmV0dXJuIHJvd3NbMF07CisgICAgICAgIH0p
OworICAgIH0KKworICAgIHNlbGVjdFJvd3ModGFibGUsIHBhcmFtcywgb3B0aW9ucykKKyAgICB7
CisgICAgICAgIGxldCBwcmVmaXggPSAnJzsKKyAgICAgICAgaWYgKHRhYmxlIGluIHRhYmxlVG9Q
cmVmaXhNYXApCisgICAgICAgICAgICBwcmVmaXggPSB0YWJsZVRvUHJlZml4TWFwW3RhYmxlXSAr
ICdfJzsKKworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKKworICAgICAgICBsZXQg
Y29sdW1uTmFtZXMgPSBbXTsKKyAgICAgICAgbGV0IHBsYWNlaG9sZGVycyA9IFtdOworICAgICAg
ICBsZXQgdmFsdWVzID0gW107CisgICAgICAgIGZvciAobGV0IG5hbWUgaW4gcGFyYW1zKSB7Cisg
ICAgICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKHByZWZpeCArIG5hbWUpOworICAgICAgICAgICAg
cGxhY2Vob2xkZXJzLnB1c2goJyQnICsgY29sdW1uTmFtZXMubGVuZ3RoKTsKKyAgICAgICAgICAg
IHZhbHVlcy5wdXNoKHBhcmFtc1tuYW1lXSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgcXVh
bGlmaWVyID0gJyc7CisgICAgICAgIGlmIChjb2x1bW5OYW1lcy5sZW5ndGgpCisgICAgICAgICAg
ICBxdWFsaWZpZXIgKz0gYCBXSEVSRSAoJHtjb2x1bW5OYW1lcy5qb2luKCcsJyl9KSA9ICgke3Bs
YWNlaG9sZGVycy5qb2luKCcsJyl9KWA7CisgICAgICAgIHF1YWxpZmllciArPSBgIE9SREVSIEJZ
ICR7cHJlZml4fSR7b3B0aW9ucy5zb3J0QnkgfHwgJ2lkJ31gOworICAgICAgICBpZiAob3B0aW9u
cyAmJiBvcHRpb25zLmxpbWl0KQorICAgICAgICAgICAgcXVhbGlmaWVyICs9IGAgTElNSVQgJHtv
cHRpb25zLmxpbWl0fWA7CisKKyAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkoYFNFTEVDVCAqIEZS
T00gJHt0YWJsZX0ke3F1YWxpZmllcn1gLCB2YWx1ZXMpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
eworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yb3dzLm1hcChmdW5jdGlvbiAocm93KSB7Cisg
ICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFJlc3VsdCA9IHt9OworICAgICAgICAgICAgICAg
IGZvciAobGV0IGNvbHVtbk5hbWUgaW4gcm93KSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBm
b3JtYXR0ZWROYW1lID0gY29sdW1uTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1h
dHRlZE5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9y
bWF0dGVkTmFtZSA9IGZvcm1hdHRlZE5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpOworICAg
ICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHRbZm9ybWF0dGVkTmFtZV0gPSByb3dbY29s
dW1uTmFtZV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmb3Jt
YXR0ZWRSZXN1bHQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAg
aW5zZXJ0KHRhYmxlLCBwYXJhbWV0ZXJzKQogICAgIHsKICAgICAgICAgbGV0IGNvbHVtbk5hbWVz
ID0gW107CkBAIC03OCw3ICsxMjUsNyBAQAogICAgIH0KIH0KIAotbGV0IHRhYmxlVG9QcmVmaXhN
YXAgPSB7Citjb25zdCB0YWJsZVRvUHJlZml4TWFwID0gewogICAgICdhZ2dyZWdhdG9ycyc6ICdh
Z2dyZWdhdG9yJywKICAgICAnYW5hbHlzaXNfdGFza3MnOiAndGFzaycsCiAgICAgJ2FuYWx5c2lz
X3Rlc3RfZ3JvdXBzJzogJ3Rlc3Rncm91cCcsCkBAIC04NiwxNiArMTMzLDIxIEBACiAgICAgJ2J1
aWxkX3RyaWdnZXJhYmxlcyc6ICd0cmlnZ2VyYWJsZScsCiAgICAgJ2J1aWxkX3JlcXVlc3RzJzog
J3JlcXVlc3QnLAogICAgICdidWlsZF9zbGF2ZXMnOiAnc2xhdmUnLAorICAgICdidWlsZHMnOiAn
YnVpbGQnLAogICAgICdidWlsZGVycyc6ICdidWlsZGVyJywKICAgICAnY29tbWl0cyc6ICdjb21t
aXQnLAorICAgICdjb21taXR0ZXJzJzogJ2NvbW1pdHRlcicsCiAgICAgJ3Rlc3RfY29uZmlndXJh
dGlvbnMnOiAnY29uZmlnJywKICAgICAndGVzdF9tZXRyaWNzJzogJ21ldHJpYycsCisgICAgJ3Rl
c3RfcnVucyc6ICdydW4nLAogICAgICd0ZXN0cyc6ICd0ZXN0JywKICAgICAndHJhY2tlcl9yZXBv
c2l0b3JpZXMnOiAndHJhY3JlcG8nLAogICAgICdwbGF0Zm9ybXMnOiAncGxhdGZvcm0nLAorICAg
ICdyZXBvcnRzJzogJ3JlcG9ydCcsCiAgICAgJ3JlcG9zaXRvcmllcyc6ICdyZXBvc2l0b3J5JywK
ICAgICAncm9vdF9zZXRzJzogJ3Jvb3RzZXQnLAogICAgICdyb290cyc6ICdyb290JywKKyAgICAn
cnVuX2l0ZXJhdGlvbnMnOiAnaXRlcmF0aW9uJywKIH0KIAogaWYgKHR5cGVvZiBtb2R1bGUgIT0g
J3VuZGVmaW5lZCcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275916</attachid>
            <date>2016-04-07 12:37:33 -0700</date>
            <delta_ts>2016-04-07 12:47:38 -0700</delta_ts>
            <desc>Fixed the patch paths</desc>
            <filename>fix156335b.patch</filename>
            <type>text/plain</type>
            <size>254215</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MTUwKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUyIEBACisyMDE2LTA0LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1pZ3JhdGUgbGVnYWN5IHBlcmYgZGFzaGJvYXJkIHRlc3RzIHRvIG1vY2hhLmpz
IGJhc2VkIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTYzMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNaWdyYXRlZCBhbGwgbGVnYWN5IHJ1bi10ZXN0cy5qcyB0ZXN0cyB0byBtb2NoYS5qcyBi
YXNlZCB0ZXN0cy4gU2luY2UgdGhlIG5ldyBoYXJuZXNzIHVzZXMgUHJvbWlzZQorICAgICAgICBm
b3IgbW9zdCBvZiBhc3luY2hyb25vdXMgb3BlcmF0aW9ucywgcmVmYWN0b3JlZCB0aGUgdGVzdHMg
dG8gdXNlIFByb21pc2VzIGFzIHdlbGwsIGFuZCBhZGRlZCBtb3JlCisgICAgICAgIGFzc2VydGlv
bnMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgQWxzbyBjb25zb2xpZGF0ZWQgY29tbW9u
IGhlbHBlciBmdW5jdGlvbnMgaW50byBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzLgorICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoZXJlIHdlcmUgbXVsdGlwbGUgaW5j
b25zaXN0ZW50IGltcGxlbWVudGF0aW9ucyBvZiBhZGRCdWlsZGVyL2FkZFNsYXZlLiBTb21lIHdl
cmUKKyAgICAgICAgdGFraW5nIGFuIGFycmF5IG9mIHJlcG9ydHMgd2hpbGUgb3RoZXJzIHdlcmUg
dGFraW5nIGEgc2luZ2xlIHJlcG9ydC4gTmV3IHNoYXJlZCBpbXBsZW1lbnRhdGlvbiBpbgorICAg
ICAgICBjb21tb24tb3BlcmF0aW9ucy5qcyBub3cgdGFrZXMgYSBzaW5nbGUgcmVwb3J0LgorCisg
ICAgICAgIEFsc28gZGVjZWFzZWQgdGhlIHRpbWVvdXQgaW4gbW9zdCB0ZXN0cyBmcm9tIDEwcyB0
byAxcyBzbyB0aGF0IHRlc3RzIGZhaWwgZWFybHkgd2hlbiB0aGV5IHRpbWVvdXQuCisgICAgICAg
IE1vc3Qgb2YgdGVzdHMgYXJlIHBhc3NpbmcgdW5kZXIgMTAwbXMgb24gbXkgY29tcHV0ZXIgc28g
MXMgc2hvdWxkIGJlIHBsZW50eSBzdGlsbC4KKworICAgICAgICAqIHJ1bi10ZXN0cy5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzOiBN
b3ZlZCBmcm9tIHRlc3RzL2FkbWluLXBsYXRmb3Jtcy5qcy4KKyAgICAgICAgKHJlcG9ydHNGb3JE
aWZmZXJlbnRQbGF0Zm9ybXMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nl
c3MtcmVwb3J0LXRlc3RzLmpzOiBNb3ZlZCBmcm9tIHRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBv
cnQuanMuCisgICAgICAgICguYWRkQnVpbGRlcik6IE1vdmVkIHRvIGNvbW1vbi1vcGVyYXRpb25z
LmpzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC5qczogVXNlIE1vY2tEYXRhLnJl
c2V0VjNNb2RlbHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNsZWFyaW5nIG1hcHMuCisgICAgICAg
ICogc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanM6IE1vdmVkIGZyb20g
dGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC5qcy4KKyAgICAgICAgKC5xdWVyeVBsYXRmb3JtQW5k
TWV0cmljKToKKyAgICAgICAgKC5mb3JtYXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6IE1vdmVkIGZyb20gdGVzdHMvYXBpLXJlcG9ydC1jb21t
aXRzLmpzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOiBNb3Zl
ZCBmcm9tIHRlc3RzL2FwaS1yZXBvcnQuanMuCisgICAgICAgICguZW1wdHlSZXBvcnQpOgorICAg
ICAgICAoLmVtcHR5U2xhdmVSZXBvcnQpOgorICAgICAgICAoLnJlcG9ydFdpdGhTYW1lU3VidGVz
dE5hbWUpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanM6IEFkZGVkLgorICAgICAgICAoYWRkQnVpbGRlckZvclJlcG9ydCk6IEV4dHJhY3RlZCBm
cm9tIHRlc3RzLgorICAgICAgICAoYWRkU2xhdmVGb3JSZXBvcnQpOiBEaXR0by4KKyAgICAgICAg
KGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QpOiBBZGRlZC4KKyAgICAgICAgKHN1Ym1pdFJl
cG9ydCk6IEV4dHJhY3RlZCBmcm9tIGFkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcy4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzOgorICAgICAgICAoVGVzdFNl
cnZlcik6IE1ha2UgVGVzdFNlcnZlciBhIHNpbmdsZXRvbiBzaW5jZSBpdCBkb2Vzbid0IG1ha2Ug
YW55IHNlbnNlIGZvciBlYWNoIG1vZHVsZSB0byBzdGFydAorICAgICAgICBpdHMgb3duIEFwYWNo
ZSBpbnN0YW5jZSAodGhhdCB3b3VsZCBjZXJ0YWlubHkgd2lsbCBmYWlsKS4KKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAg
ICogdGVzdHM6IFJlbW92ZWQuCisgICAgICAgICogdG9vbHMvanMvZGF0YWJhc2UuanM6CisgICAg
ICAgIChEYXRhYmFzZS5wcm90b3R5cGUuc2VsZWN0QWxsKTogQWRkZWQuCisgICAgICAgIChEYXRh
YmFzZS5wcm90b3R5cGUuc2VsZWN0Rmlyc3RSb3cpOiBBZGRlZC4KKyAgICAgICAgKERhdGFiYXNl
LnByb3RvdHlwZS5zZWxlY3RSb3dzKTogQWRkZWQuIER5bmFtaWNhbGx5IGNvbnN0cnVjdCBhIHF1
ZXJ5IHN0cmluZyBiYXNlZCBvbiBhcmd1bWVudHMuCisKIDIwMTYtMDQtMDUgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTmV3IGJ1aWxkYm90IHN5bmNpbmcgc2Ny
aXB0cyB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGJ1aWxkZXJzIGFuZCBzbGF2ZXMKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9ydW4tdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3J1bi10ZXN0cy5qcwkocmV2aXNpb24gMTk5MTUwKQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3J1bi10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwz
NDAgKzAsMCBAQAotIyEvdXNyL2xvY2FsL2Jpbi9ub2RlCi0KLXZhciBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKLXZhciBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsKLXZhciBmcyA9IHJl
cXVpcmUoJ2ZzJyk7Ci12YXIgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTsKLXZhciBwYXRoID0gcmVx
dWlyZSgncGF0aCcpOwotdmFyIHZtID0gcmVxdWlyZSgndm0nKTsKLQotZnVuY3Rpb24gY29ubmVj
dChrZWVwQWxpdmUpIHsKLSAgICB2YXIgcGcgPSByZXF1aXJlKCdwZycpOwotICAgIHZhciBkYXRh
YmFzZSA9IGNvbmZpZygnZGF0YWJhc2UnKTsKLSAgICB2YXIgY29ubmVjdGlvblN0cmluZyA9ICd0
Y3A6Ly8nICsgZGF0YWJhc2UudXNlcm5hbWUgKyAnOicgKyBkYXRhYmFzZS5wYXNzd29yZCArICdA
JyArIGRhdGFiYXNlLmhvc3QgKyAnOicgKyBkYXRhYmFzZS5wb3J0Ci0gICAgICAgICsgJy8nICsg
ZGF0YWJhc2UubmFtZTsKLQotICAgIHZhciBjbGllbnQgPSBuZXcgcGcuQ2xpZW50KGNvbm5lY3Rp
b25TdHJpbmcpOwotICAgIGlmICgha2VlcEFsaXZlKSB7Ci0gICAgICAgIGNsaWVudC5vbignZHJh
aW4nLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAg
ICBjbGllbnQgPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICBjbGllbnQuY29u
bmVjdCgpOwotCi0gICAgcmV0dXJuIGNsaWVudDsKLX0KLQotZnVuY3Rpb24gcGF0aFRvRGF0YWJz
ZVNRTChyZWxhdGl2ZVBhdGgpIHsKLSAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwg
J2luaXQtZGF0YWJhc2Uuc3FsJyk7Ci19Ci0KLWZ1bmN0aW9uIHBhdGhUb1Rlc3RzKHRlc3ROYW1l
KSB7Ci0gICAgcmV0dXJuIHRlc3ROYW1lID8gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3Rlc3Rz
JywgdGVzdE5hbWUpIDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3Rlc3RzJyk7Ci19Ci0KLXZh
ciBjb25maWd1cmF0aW9uSlNPTiA9IHJlcXVpcmUoJy4vY29uZmlnLmpzb24nKTsKLWZ1bmN0aW9u
IGNvbmZpZyhrZXkpIHsKLSAgICByZXR1cm4gY29uZmlndXJhdGlvbkpTT05ba2V5XTsKLX0KLQot
ZnVuY3Rpb24gVGFza1F1ZXVlKCkgewotICAgIHZhciBxdWV1ZSA9IFtdOwotICAgIHZhciBudW1i
ZXJPZlJlbWFpbmluZ1Rhc2tzID0gMDsKLSAgICB2YXIgZW1wdHlRdWV1ZUNhbGxiYWNrOwotCi0g
ICAgZnVuY3Rpb24gc3RhcnRUYXNrc0luUXVldWUoKSB7Ci0gICAgICAgIGlmICghcXVldWUubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuIGVtcHR5UXVldWVDYWxsYmFjaygpOwotCi0gICAgICAg
IHZhciBzd2FwcGVkUXVldWUgPSBxdWV1ZTsKLSAgICAgICAgcXVldWUgPSBbXTsKLQotICAgICAg
ICAvLyBJbmNyZWFzZSB0aGUgY291bnRlciBiZWZvcmUgdGhlIGxvb3AgaW4gdGhlIGNhc2UgdGFz
a0NhbGxiYWNrIGlzIGNhbGxlZCBzeW5jaHJvbm91c2x5LgotICAgICAgICBudW1iZXJPZlJlbWFp
bmluZ1Rhc2tzICs9IHN3YXBwZWRRdWV1ZS5sZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc3dhcHBlZFF1ZXVlLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgc3dhcHBlZFF1ZXVl
W2ldKG51bGwsIHRhc2tDYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGFza0NhbGxi
YWNrKGVycm9yKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXJyb3IuCi0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KG51bWJlck9mUmVtYWluaW5nVGFza3MgPiAwKTsKLSAgICAgICAgbnVtYmVy
T2ZSZW1haW5pbmdUYXNrcy0tOwotICAgICAgICBpZiAoIW51bWJlck9mUmVtYWluaW5nVGFza3Mp
Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KHN0YXJ0VGFza3NJblF1ZXVlLCAwKTsKLSAgICB9Ci0K
LSAgICB0aGlzLmFkZFRhc2sgPSBmdW5jdGlvbiAodGFzaykgeyBxdWV1ZS5wdXNoKHRhc2spOyB9
Ci0gICAgdGhpcy5zdGFydCA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAgICBlbXB0eVF1
ZXVlQ2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICAgICAgc3RhcnRUYXNrc0luUXVldWUoKTsKLSAg
ICB9Ci19Ci0KLWZ1bmN0aW9uIFNlcmlhbGl6ZWRUYXNrUXVldWUoKSB7Ci0gICAgdmFyIHF1ZXVl
ID0gW107Ci0KLSAgICBmdW5jdGlvbiBleGVjdXRlTmV4dFRhc2soZXJyb3IpIHsKLSAgICAgICAg
Ly8gRklYTUU6IEhhbmRsZSBlcnJvci4KLSAgICAgICAgdmFyIGNhbGxiYWNrID0gcXVldWUucG9w
KCk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBjYWxsYmFjayhudWxsLCBleGVj
dXRlTmV4dFRhc2spOyB9LCAwKTsKLSAgICB9Ci0KLSAgICB0aGlzLmFkZFRhc2sgPSBmdW5jdGlv
biAodGFzaykgeyBxdWV1ZS5wdXNoKHRhc2spOyB9Ci0gICAgdGhpcy5zdGFydCA9IGZ1bmN0aW9u
IChjYWxsYmFjaykgewotICAgICAgICBxdWV1ZS5wdXNoKGNhbGxiYWNrKTsKLSAgICAgICAgcXVl
dWUucmV2ZXJzZSgpOwotICAgICAgICBleGVjdXRlTmV4dFRhc2soKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIG1haW4oYXJndikgewotICAgIHZhciBjbGllbnQgPSBjb25uZWN0KHRydWUpOwotICAg
IHZhciBmaWx0ZXIgPSBhcmd2WzJdOwotICAgIGNvbmZpcm1Vc2VyV2FudHNEYXRhYmFzZVRvQmVJ
bml0aWFsaXplZElmTmVlZGVkKGNsaWVudCwgZnVuY3Rpb24gKGVycm9yLCBzaG91bGRDb250aW51
ZSkgewotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9y
KTsKLQotICAgICAgICBpZiAoZXJyb3IgfHwgIXNob3VsZENvbnRpbnVlKSB7Ci0gICAgICAgICAg
ICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpbml0aWFsaXplRGF0YWJhc2UoY2xpZW50
LCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBkYXRhYmFzZScs
IGVycm9yKTsKLSAgICAgICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICAgICAg
cHJvY2Vzcy5leGl0KDEpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgdGVzdENh
c2VRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVlKCk7Ci0gICAgICAgICAgICB2YXIgdGVz
dEZpbGVRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVlKCk7Ci0gICAgICAgICAgICBmcy5y
ZWFkZGlyU3luYyhwYXRoVG9UZXN0cygpKS5tYXAoZnVuY3Rpb24gKHRlc3RGaWxlKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0RmlsZS5tYXRjaCgvLmpzJC8pIHx8IChmaWx0ZXIgJiYgdGVz
dEZpbGUuaW5kZXhPZihmaWx0ZXIpICE9IDApKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgdGVzdEZpbGVRdWV1ZS5hZGRUYXNrKGZ1bmN0aW9uIChlcnJvciwg
Y2FsbGJhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHRlc3RDb250ZW50ID0gZnMucmVh
ZEZpbGVTeW5jKHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSwgJ3V0Zi04Jyk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBlbnZpcm9ubWVudCA9IG5ldyBUZXN0RW52aXJvbm1lbnQodGVzdENhc2VRdWV1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZtLnJ1bkluTmV3Q29udGV4dCh0ZXN0Q29udGVudCwg
ZW52aXJvbm1lbnQsIHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIHRlc3RGaWxlUXVldWUuc3RhcnQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAg
IGNsaWVudC5lbmQoKTsKLSAgICAgICAgICAgICAgICB0ZXN0Q2FzZVF1ZXVlLnN0YXJ0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0RPTkUnKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0K
LQotZnVuY3Rpb24gY29uZmlybVVzZXJXYW50c0RhdGFiYXNlVG9CZUluaXRpYWxpemVkSWZOZWVk
ZWQoY2xpZW50LCBjYWxsYmFjaykgewotICAgIGZ1bmN0aW9uIGZldGNoVGFibGVOYW1lcyhlcnJv
ciwgY2FsbGJhY2spIHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKGVycm9yKTsKLQotICAgICAgICBjbGllbnQucXVlcnkoJ1NFTEVDVCB0YWJsZV9uYW1l
IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBXSEVSRSB0YWJsZV90eXBlID0gXCdCQVNF
IFRBQkxFXCcgYW5kIHRhYmxlX3NjaGVtYSA9IFwncHVibGljXCcnLCBmdW5jdGlvbiAoZXJyb3Is
IHJlc3VsdCkgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhlcnJvcik7Ci0gICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQucm93
cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wyd0YWJsZV9uYW1lJ107IH0pKTsgICAg
ICAgICAgICAKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluZE5vbkVtcHR5
VGFibGUoZXJyb3IsIGxpc3QsIGNhbGxiYWNrKSB7Ci0gICAgICAgIGlmIChlcnJvciB8fCAhbGlz
dC5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IpOwotCi0gICAgICAg
IHZhciB0YWJsZU5hbWUgPSBsaXN0LnNoaWZ0KCk7Ci0gICAgICAgIGNsaWVudC5xdWVyeSgnU0VM
RUNUIENPVU5UKCopIEZST00gJyArIHRhYmxlTmFtZSArICcgTElNSVQgMScsIGZ1bmN0aW9uIChl
cnJvciwgcmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKGVycm9yKTsKLQotICAgICAgICAgICAgaWYgKHJlc3VsdC5yb3dzWzBd
Wydjb3VudCddKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB0YWJsZU5h
bWUpOwotCi0gICAgICAgICAgICBmaW5kTm9uRW1wdHlUYWJsZShudWxsLCBsaXN0LCBjYWxsYmFj
ayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZldGNoVGFibGVOYW1lcyhudWxsLCBmdW5j
dGlvbiAoZXJyb3IsIHRhYmxlTmFtZXMpIHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLCBmYWxzZSk7Ci0KLSAgICAgICAgZmluZE5vbkVtcHR5
VGFibGUobnVsbCwgdGFibGVOYW1lcywgZnVuY3Rpb24gKGVycm9yLCBub25FbXB0eVRhYmxlKSB7
Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KGVycm9yLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGlmICghbm9uRW1wdHlUYWJsZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGNv
bnNvbGUud2FybignVGFibGUgJyArIG5vbkVtcHR5VGFibGUgKyAnIGlzIG5vdCBlbXB0eSBidXQg
cnVubmluZyB0ZXN0cyB3aWxsIGRyb3AgYWxsIHRhYmxlcy4nKTsKLSAgICAgICAgICAgIGFza1ll
c09yTm9RdWVzdGlvbihudWxsLCAnRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlPycsIGNh
bGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGFza1llc09yTm9R
dWVzdGlvbihlcnJvciwgcXVlc3Rpb24sIGNhbGxiYWNrKSB7Ci0gICAgaWYgKGVycm9yKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IpOwotCi0gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUo
cXVlc3Rpb24gKyAnICh5L24pOicpOwotICAgIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7Ci0gICAg
cHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmLTgnKTsKLSAgICBwcm9jZXNzLnN0ZGluLm9u
KCdkYXRhJywgZnVuY3Rpb24gKGxpbmUpIHsKLSAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOwot
ICAgICAgICBpZiAobGluZSA9PT0gJ3knKSB7Ci0gICAgICAgICAgICBwcm9jZXNzLnN0ZGluLnBh
dXNlKCk7Ci0gICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0cnVlKTsKLSAgICAgICAgfSBlbHNl
IGlmIChsaW5lID09PSAnbicpIHsKLSAgICAgICAgICAgIHByb2Nlc3Muc3RkaW4ucGF1c2UoKTsK
LSAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGZhbHNlKTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgaW5wdXQ6JywgbGluZSk7Ci0gICAgfSk7Ci19
Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVEYXRhYmFzZShjbGllbnQsIGNhbGxiYWNrKSB7Ci0gICAg
dmFyIGNvbW1hU2VwYXJhdGVkU3FsU3RhdGVtZW50cyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoVG9E
YXRhYnNlU1FMKCksICJ1dGY4Iik7Ci0KLSAgICB2YXIgZmlyc3RFcnJvcjsKLSAgICB2YXIgcXVl
dWUgPSBuZXcgVGFza1F1ZXVlKCk7Ci0gICAgY29tbWFTZXBhcmF0ZWRTcWxTdGF0ZW1lbnRzLnNw
bGl0KC87XHMqKD89Q1JFQVRFfERST1ApLykuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGVtZW50KSB7
Ci0gICAgICAgIHF1ZXVlLmFkZFRhc2soZnVuY3Rpb24gKGVycm9yLCBjYWxsYmFjaykgewotICAg
ICAgICAgICAgY2xpZW50LnF1ZXJ5KHN0YXRlbWVudCwgZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGVycm9yICYmICFmaXJzdEVycm9yKQotICAgICAgICAgICAgICAgICAg
ICBmaXJzdEVycm9yID0gZXJyb3I7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KQotICAgIH0pOwotCi0gICAgcXVldWUuc3RhcnQoZnVuY3Rp
b24gKCkgeyBjYWxsYmFjayhmaXJzdEVycm9yKTsgfSk7Ci19Ci0KLXZhciBjdXJyZW50VGVzdENv
bnRleHQ7Ci1mdW5jdGlvbiBUZXN0RW52aXJvbm1lbnQodGVzdENhc2VRdWV1ZSkgewotICAgIHZh
ciBjdXJyZW50VGVzdEdyb3VwOwotCi0gICAgdGhpcy5hc3NlcnQgPSBhc3NlcnQ7Ci0gICAgdGhp
cy5jb25zb2xlID0gY29uc29sZTsKLQotICAgIC8vIGRlc2NyaWJlKCJ+IiwgZnVuY3Rpb24gKCkg
ewotICAgIC8vICAgICBpdCgifiIsIGZ1bmN0aW9uICgpIHsgYXNzZXJ0KHRydWUpOyB9KTsKLSAg
ICAvLyB9KTsKLSAgICB0aGlzLmRlc2NyaWJlID0gZnVuY3Rpb24gKHRlc3RHcm91cCwgY2FsbGJh
Y2spIHsKLSAgICAgICAgY3VycmVudFRlc3RHcm91cCA9IHRlc3RHcm91cDsKLSAgICAgICAgY2Fs
bGJhY2soKTsKLSAgICB9Ci0KLSAgICB0aGlzLml0ID0gZnVuY3Rpb24gKHRlc3RDYXNlRGVzY3Jp
cHRpb24sIHRlc3RDYXNlKSB7Ci0gICAgICAgIHRlc3RDYXNlUXVldWUuYWRkVGFzayhmdW5jdGlv
biAoZXJyb3IsIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBjdXJyZW50VGVzdENvbnRleHQgPSBu
ZXcgVGVzdENvbnRleHQoY3VycmVudFRlc3RHcm91cCwgdGVzdENhc2VEZXNjcmlwdGlvbiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1cnJlbnRUZXN0Q29udGV4dCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGFiYXNlKGNvbm5lY3QoKSwgY2FsbGJhY2spOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZSgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICB0aGlzLnBvc3RKU09OID0gZnVuY3Rpb24gKHBhdGgsIGNvbnRlbnQsIGNhbGxi
YWNrKSB7Ci0gICAgICAgIHNlbmRIdHRwUmVxdWVzdChwYXRoLCAnUE9TVCcsICdhcHBsaWNhdGlv
bi9qc29uJywgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIGZ1bmN0aW9uIChlcnJvciwgcmVzcG9u
c2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAgICAgICAgICAgIGNh
bGxiYWNrKHJlc3BvbnNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5odHRwR2V0
ID0gZnVuY3Rpb24gKHBhdGgsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHNlbmRIdHRwUmVxdWVzdChw
YXRoLCAnR0VUJywgbnVsbCwgJycsIGZ1bmN0aW9uIChlcnJvciwgcmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3Bv
bnNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5odHRwUG9zdD0gZnVuY3Rpb24g
KHBhdGgsIGNvbnRlbnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBjb250ZW50VHlwZSA9IG51
bGw7Ci0gICAgICAgIGlmICh0eXBlb2YoY29udGVudCkgIT0gInN0cmluZyIpIHsKLSAgICAgICAg
ICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc7Ci0g
ICAgICAgICAgICB2YXIgY29tcG9uZW50cyA9IFtdOwotICAgICAgICAgICAgZm9yICh2YXIga2V5
IGluIGNvbnRlbnQpCi0gICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKGtleSArICc9JyAr
IGVzY2FwZShjb250ZW50W2tleV0pKTsKLSAgICAgICAgICAgIGNvbnRlbnQgPSBjb21wb25lbnRz
LmpvaW4oJyYnKTsKLSAgICAgICAgfQotICAgICAgICBzZW5kSHR0cFJlcXVlc3QocGF0aCwgJ1BP
U1QnLCBjb250ZW50VHlwZSwgY29udGVudCwgZnVuY3Rpb24gKGVycm9yLCByZXNwb25zZSkgewot
ICAgICAgICAgICAgYXNzZXJ0LmlmRXJyb3IoZXJyb3IpOwotICAgICAgICAgICAgY2FsbGJhY2so
cmVzcG9uc2UpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB0aGlzLnF1ZXJ5QW5kRmV0Y2hB
bGwgPSBmdW5jdGlvbiAocXVlcnksIHBhcmFtZXRlcnMsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZh
ciBjbGllbnQgPSBjb25uZWN0KCk7Ci0gICAgICAgIGNsaWVudC5xdWVyeShxdWVyeSwgcGFyYW1l
dGVycywgZnVuY3Rpb24gKGVycm9yLCByZXN1bHQpIHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAg
ICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQucm93cyk7Ci0gICAgICAgICAgICB9LCAwKTsK
LSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5zaGEyNTYgPSBmdW5jdGlvbiAoZGF0YSkg
ewotICAgICAgICB2YXIgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKTsKLSAgICAg
ICAgaGFzaC51cGRhdGUoZGF0YSk7Ci0gICAgICAgIHJldHVybiBoYXNoLmRpZ2VzdCgnaGV4Jyk7
Ci0gICAgfQotCi0gICAgdGhpcy5jb25maWcgPSBjb25maWc7Ci0KLSAgICB0aGlzLm5vdGlmeURv
bmUgPSBmdW5jdGlvbiAoKSB7IGN1cnJlbnRUZXN0Q29udGV4dC5kb25lKCk7IH0KLX0KLQotcHJv
Y2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICBpZiAo
IWN1cnJlbnRUZXN0Q29udGV4dCkKLSAgICAgICAgdGhyb3cgZXJyb3I7Ci0gICAgY3VycmVudFRl
c3RDb250ZXh0LmxvZ0Vycm9yKCdVbmNhdWdodCBleGNlcHRpb24nLCBlcnJvcik7Ci0gICAgY3Vy
cmVudFRlc3RDb250ZXh0LmRvbmUoKTsKLX0pOwotCi1mdW5jdGlvbiBzZW5kSHR0cFJlcXVlc3Qo
cGF0aCwgbWV0aG9kLCBjb250ZW50VHlwZSwgY29udGVudCwgY2FsbGJhY2spIHsKLSAgICB2YXIg
b3B0aW9ucyA9IGNvbmZpZygndGVzdFNlcnZlcicpOwotICAgIG9wdGlvbnMucGF0aCA9IHBhdGg7
Ci0gICAgb3B0aW9ucy5tZXRob2QgPSBtZXRob2Q7Ci0KLSAgICB2YXIgcmVxdWVzdCA9IGh0dHAu
cmVxdWVzdChvcHRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgdmFyIHJlc3Bv
bnNlVGV4dCA9ICcnOwotICAgICAgICByZXNwb25zZS5zZXRFbmNvZGluZygndXRmOCcpOwotICAg
ICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykgeyByZXNwb25zZVRleHQg
Kz0gY2h1bms7IH0pOwotICAgICAgICByZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY2Fs
bGJhY2sobnVsbCwge3N0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsIHJlc3BvbnNlVGV4
dDogcmVzcG9uc2VUZXh0fSk7Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci0gICAgcmVxdWVzdC5vbignZXJyb3InLCBjYWxsYmFjayk7Ci0gICAgaWYgKGNvbnRlbnRU
eXBlKQotICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVudFR5
cGUpOwotICAgIGlmIChjb250ZW50KQotICAgICAgICByZXF1ZXN0LndyaXRlKGNvbnRlbnQpOwot
ICAgIHJlcXVlc3QuZW5kKCk7Ci19Ci0KLWZ1bmN0aW9uIFRlc3RDb250ZXh0KHRlc3RHcm91cCwg
dGVzdENhc2UsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGZhaWxlZCA9IGZhbHNlOwotCi0gICAgdGhp
cy5kZXNjcmlwdGlvbiA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRlc3RHcm91cCAr
ICcgJyArIHRlc3RDYXNlOwotICAgIH0KLSAgICB0aGlzLmRvbmUgPSBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGlmICghZmFpbGVkKQotICAgICAgICAgICAgY29uc29sZS5sb2coJ1BBU1MnKTsKLSAg
ICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0gICAgdGhpcy5sb2dFcnJvciA9IGZ1bmN0aW9uIChl
cnJvciwgZGV0YWlscykgewotICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICBjb25zb2xl
LmVycm9yKGVycm9yLCBkZXRhaWxzKTsKLSAgICB9Ci0KLSAgICBwcm9jZXNzLnN0ZG91dC53cml0
ZSh0aGlzLmRlc2NyaXB0aW9uKCkgKyAnOiAnKTsKLX0KLQotbWFpbihwcm9jZXNzLmFyZ3YpOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyMiArMSwxNDUgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29u
c3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgY29ubmVjdFRvRGF0YWJh
c2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpz
JykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKK2NvbnN0IHN1Ym1pdFJlcG9ydCA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuc3VibWl0UmVwb3J0Owor
CiBkZXNjcmliZSgiL2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgcmVw
b3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcyA9IFsKKyAgICB0aGlzLnRpbWVvdXQoMTAwMCk7Cisg
ICAgVGVzdFNlcnZlci5pbmplY3QoKTsKKyAgICBjb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0
KCk7CisKKyAgICBmdW5jdGlvbiByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zKCkKICAgICB7
Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIzMDAxIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIy
MDEzLTAyLTI4VDA5OjAxOjQ3IiwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVy
IiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAi
cGxhdGZvcm0iOiAiTWF2ZXJpY2tzIiwKLSAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0
cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbMSwgMSwgMV0sIFsxLCAxLCAxXV0g
fSB9IH0gfSwKLSAgICB9LAotICAgIHsKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDEiLAot
ICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAotICAgICAgICAiYnVp
bGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAg
ICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVu
dCI6IFtbMiwgMiwgMl0sIFsyLCAyLCAyXV0gfSwgIkNvbWJpbmVkIjogeyAiY3VycmVudCI6IFtb
MywgMywgM10sIFszLCAzLCAzXV0gfX0gfSB9LAotICAgIH0sCi0gICAgewotICAgICAgICAiYnVp
bGROdW1iZXIiOiAiMzAwMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMjo1
NjoyNiIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJi
dWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIlRy
dW5rIE1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7InRlc3QiOiB7ICJtZXRyaWNz
IjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1s0LCA0LCA0XSwgWzQsIDQsIDRdXSB9IH0g
fSB9Ci0gICAgfV07CisgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDEiLAorICAgICAgICAgICAgICAgICJidWlsZFRpbWUi
OiAiMjAxMy0wMi0yOFQwOTowMTo0NyIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjog
InNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCisgICAg
ICAgICAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjog
eyAiY3VycmVudCI6IFtbMSwgMSwgMV0sIFsxLCAxLCAxXV0gfSB9IH0gfSwKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDEi
LAorICAgICAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMyIsCisg
ICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAg
ICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICAgICAgICAg
InBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsi
dGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzIsIDIsIDJd
LCBbMiwgMiwgMl1dIH0sICJDb21iaW5lZCI6IHsgImN1cnJlbnQiOiBbWzMsIDMsIDNdLCBbMywg
MywgM11dIH19IH0gfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAorICAgICAgICAgICAgICAgICJidWlsZFRpbWUi
OiAiMjAxMy0wMi0yOFQxMjo1NjoyNiIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjog
InNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtIjogIlRydW5rIE1vdW50YWluIExp
b24iLAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZy
YW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzQsIDQsIDRdLCBbNCwgNCwgNF1dIH0gfSB9IH0KKyAg
ICAgICAgICAgIH1dOworICAgIH0gCiAKLSAgICBmdW5jdGlvbiBzdWJtaXRSZXBvcnQocmVwb3J0
LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWls
ZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQy
KScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0WzBd
LmJ1aWxkZXJQYXNzd29yZCldLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCBkZWxl
dGUgdGhlIHBsYXRmb3JtIHRoYXQgZ290IG1lcmdlZCBpbnRvIGFub3RoZXIgb25lIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jt
cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICog
RlJPTSBwbGF0Zm9ybXMgT1JERVIgYnkgcGxhdGZvcm1fbmFtZScsIFtdLCBmdW5jdGlvbiAob2xk
UGxhdGZvcm1zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtcy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMF1b
J3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvbGRQbGF0Zm9ybXNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzJdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgaHR0cFBvc3Qo
Jy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQbGF0
Zm9ybXNbMV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1syXVsn
cGxhdGZvcm1faWQnXX0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBwbGF0Zm9ybXMgT1JERVIgYnkg
cGxhdGZvcm1fbmFtZScsIFtdLCBmdW5jdGlvbiAobmV3UGxhdGZvcm1zKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3JtcywgW29sZFBsYXRmb3Jt
c1swXSwgb2xkUGxhdGZvcm1zWzJdXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgZGVsZXRlIHRoZSBwbGF0
Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVyIG9uZSIsIGZ1bmN0aW9uIChkb25lKSB7
CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBsZXQg
b2xkUGxhdGZvcm1zOyAgICAgICAgCisgICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlm
ZmVyZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJywgJ25hbWUnKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocGxhdGZvcm1zKSB7CisgICAgICAgICAgICBvbGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zLmxlbmd0aCwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzBdWyduYW1lJ10sICdNYXZlcmlja3Mn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01v
dW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1b
J25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9y
bVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCisgICAgICAgICAgICAgICAg
eydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQbGF0Zm9ybXNbMV1bJ2lkJ10sICdkZXN0aW5h
dGlvbic6IG9sZFBsYXRmb3Jtc1syXVsnaWQnXX0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3BsYXRmb3JtcycpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChuZXdQbGF0Zm9ybXMpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9ybXNbMF0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9sZFBsYXRmb3Jtc1syXSk7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQo
InNob3VsZCBtb3ZlIHRlc3QgcnVucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRl
c3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBzdWJtaXRSZXBvcnQo
cmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
dmFyIHF1ZXJ5Rm9yUnVucyA9ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9jb25maWd1
cmF0aW9ucywgcGxhdGZvcm1zIFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIGNvbmZp
Z19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsKLSAgICAg
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG9sZFRl
c3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0
Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3Vt
X2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
Ml1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAn
VHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRU
ZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICAgICAgaHR0cFBv
c3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRU
ZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11b
J3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG5ld1Rl
c3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1
bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdU
ZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25h
bWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNb
MV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdU
ZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fc3Vt
X2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdU
ZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25h
bWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBv
bGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBM
aW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNb
M11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydydW5f
Y29uZmlnJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBydW5zIGZyb20gdGhlIG1lcmdl
ZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0iLCBmdW5jdGlvbiAoZG9uZSkg
eworICAgICAgICBsZXQgb2xkVGVzdFJ1bnM7CisgICAgICAgIGNvbnN0IHF1ZXJ5Rm9yUnVucyA9
ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9jb25maWd1cmF0aW9ucywgcGxhdGZvcm1z
IFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIGNvbmZpZ19wbGF0Zm9ybSA9IHBsYXRm
b3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0
U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlmZmVy
ZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIGRi
LnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
eworICAgICAgICAgICAgb2xkVGVzdFJ1bnMgPSByZXN1bHQucm93czsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSdd
LCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5z
WzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRU
ZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAn
VHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVy
bGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsCisgICAgICAgICAgICAgICAgeydh
Y3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rl
c3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119KTsKKyAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JS
dW5zKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBj
b25zdCBuZXdUZXN0UnVucyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zLmxlbmd0aCwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVz
dFJ1bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlj
a3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX3N1bV9j
YWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVu
X2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24n
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNo
ZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9p
ZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUn
XSwgMTgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQn
XSwgb2xkVGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10s
IDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZp
ZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZyddKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIG1vdmUg
dGVzdCBjb25maWd1cmF0aW9ucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3Rp
bmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICByZXBvcnRzRm9yRGlmZmVy
ZW50UGxhdGZvcm1zWzBdWyd0ZXN0cyddID0geyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVS
YXRlIjogeyAiYmFzZWxpbmUiOiBbWzEsIDEsIDFdLCBbMSwgMSwgMV1dIH0gfSB9IH07Ci0gICAg
ICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICB2YXIgcXVlcnlGb3JDb25maWcgPSAnU0VMRUNUICogZnJvbSB0ZXN0
X2NvbmZpZ3VyYXRpb25zLCBwbGF0Zm9ybXMsIHRlc3RfbWV0cmljcycKLSAgICAgICAgICAgICAg
ICArICcgd2hlcmUgY29uZmlnX3BsYXRmb3JtID0gcGxhdGZvcm1faWQgYW5kIGNvbmZpZ19tZXRy
aWMgPSBtZXRyaWNfaWQgYW5kIHBsYXRmb3JtX25hbWUgaW4gKCQxLCAkMikgb3JkZXIgYnkgY29u
ZmlnX2lkJzsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JDb25maWcsIFty
ZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzRm9yRGlm
ZmVyZW50UGxhdGZvcm1zWzJdWydwbGF0Zm9ybSddXSwgZnVuY3Rpb24gKGNvbmZpZ3MpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNG
b3JEaWZmZXJlbnRQbGF0Zm9ybXNbMF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNl
bGluZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMl1bJ3BsYXRmb3JtJ10pOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAn
RnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ2Nv
bmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9hZG1p
bi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBjb25maWdzWzBdWydw
bGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBjb25maWdzWzFdWydwbGF0Zm9ybV9pZCddfSwg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1swXVsn
cGxhdGZvcm0nXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXV0s
IGZ1bmN0aW9uIChuZXdDb25maWdzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZl
cmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZp
Z190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld0NvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBs
YXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBl
J10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgbW92ZSB0ZXN0IGNvbmZpZ3VyYXRpb25z
IGZyb20gdGhlIG1lcmdlZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0iLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgb2xkQ29uZmlnczsKKyAgICAgICAgY29uc3Qg
cmVwb3J0cyA9IHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMoKTsKKyAgICAgICAgcmVwb3J0
c1swXVsndGVzdHMnXSA9IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImJh
c2VsaW5lIjogW1sxLCAxLCAxXSwgWzEsIDEsIDFdXSB9IH0gfSB9OworICAgICAgICBjb25zdCBx
dWVyeUZvckNvbmZpZyA9ICdTRUxFQ1QgKiBmcm9tIHRlc3RfY29uZmlndXJhdGlvbnMsIHBsYXRm
b3JtcywgdGVzdF9tZXRyaWNzJworICAgICAgICAgICAgKyAnIHdoZXJlIGNvbmZpZ19wbGF0Zm9y
bSA9IHBsYXRmb3JtX2lkIGFuZCBjb25maWdfbWV0cmljID0gbWV0cmljX2lkIGFuZCBwbGF0Zm9y
bV9uYW1lIGluICgkMSwgJDIpIG9yZGVyIGJ5IGNvbmZpZ19pZCc7CisgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0cyku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JD
b25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgb2xkQ29u
ZmlncyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3Mu
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydwbGF0
Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxp
bmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydwbGF0Zm9ybV9u
YW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMu
cGhwJywKKyAgICAgICAgICAgICAgICB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IG9sZENvbmZp
Z3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZENvbmZpZ3NbMV1bJ3BsYXRm
b3JtX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCBy
ZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Vs
dCkgeworICAgICAgICAgICAgY29uc3QgbmV3Q29uZmlncyA9IHJlc3VsdC5yb3dzOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3Bs
YXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJp
Y19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25m
aWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3Jt
J10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ21ldHJpY19uYW1l
J10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzFd
Wydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAg
ICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAogfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1y
ZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQtdGVzdHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwxNyBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCBh
c3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKKworY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVy
Rm9yUmVwb3J0OworY29uc3QgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2
ZXJ5VGVzdDsKKwogZGVzY3JpYmUoIi9hZG1pbi9yZXByb2Nlc3MtcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewotICAgIHZhciBzaW1wbGVSZXBvcnQgPSBbeworICAgIHRoaXMudGltZW91dCgxMDAwKTsK
KyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRl
c3QoKTsKKworICAgIGNvbnN0IHNpbXBsZVJlcG9ydCA9IFt7CiAgICAgICAgICJidWlsZE51bWJl
ciI6ICIxOTg2IiwKICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwK
ICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKQEAgLTEyLDY1ICsyNCw2MyBA
QAogICAgICAgICAgICAgfSwKICAgICAgICAgfV07CiAKLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVy
KHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElO
VE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMg
KCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJl
cG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGl0KCJz
aG91bGQgYWRkIGJ1aWxkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHNpbXBs
ZVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
YnVpbGRzJywgW10sIGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSb3dzWzBdWydidWlsZF9udW1iZXInXSwgMTk4Nik7Ci0gICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVwb3J0cycsIFtd
LCBmdW5jdGlvbiAocmVwb3J0Um93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9ydFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvcnRSb3dzWzBdWydyZXBvcnRfYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnVVBEQVRFIHJlcG9ydHMg
U0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkczsgU0VMRUNUICogRlJP
TSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAwKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0SWQgPSByZXBvcnRSb3dzWzBdWydyZXBvcnRfaWQn
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYWRtaW4vcmVwcm9jZXNz
LXJlcG9ydD9yZXBvcnQ9JyArIHJlcG9ydElkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJP
TSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93c1sw
XVsnYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGFkZCBidWlsZCIsIGZ1bmN0
aW9uIChkb25lKSB7CisgICAgICAgIGxldCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAg
ICAgICAgbGV0IHJlcG9ydElkOworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJl
cG9ydFswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2J1aWxkcycpLCBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMnKV0p
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0
IGJ1aWxkcyA9IHJlc3VsdFswXTsKKyAgICAgICAgICAgIGNvbnN0IHJlcG9ydHMgPSByZXN1bHRb
MV07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzWzBdWydudW1iZXInXSwgMTk4Nik7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgcmVwb3J0SWQg
PSByZXBvcnRzWzBdWydpZCddOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHNbMF1b
J2J1aWxkX251bWJlciddLCAxOTg2KTsKKyAgICAgICAgICAgIHJldHVybiBkYi5xdWVyeSgnVVBE
QVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkcycp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ2J1aWxkcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChidWlsZHMpIHsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAwKTsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYWRtaW4v
cmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JHtyZXBvcnRJZH1gKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRz
WzBdWydudW1iZXInXSwgMTk4Nik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNh
dGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBub3QgZHVwbGljYXRlIHRoZSBy
ZXByb2Nlc3NlZCByZXBvcnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoc2lt
cGxlUmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgc2ltcGxlUmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJP
TSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChvcmlnaW5hbFJlcHJvdFJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9yaWdpbmFsUmVwcm90Um93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdVUERBVEUgcmVwb3J0cyBTRVQg
cmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hZG1pbi9yZXByb2Nlc3MtcmVw
b3J0P3JlcG9ydD0nICsgb3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfaWQnXSwgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NF
TEVDVCAqIEZST00gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocmVwb3J0Um93cykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9j
b21taXR0ZWRfYXQnXSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cG9ydFJvd3NbMF1bJ3JlcG9ydF9jb21taXR0ZWRfYXQnXSA9IG51bGw7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvcmlnaW5hbFJlcHJvdFJvd3NbMF1b
J3JlcG9ydF9idWlsZCddLCByZXBvcnRSb3dzWzBdWydyZXBvcnRfYnVpbGQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Um93c1swXVsncmVwb3J0X2J1
aWxkJ10gPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRSb3dz
WzBdWydyZXBvcnRfYnVpbGQnXSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVwb3J0Um93cywgb3JpZ2luYWxSZXByb3RSb3dzKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgbm90IGR1cGxpY2F0ZSB0aGUgcmVwcm9jZXNzZWQg
cmVwb3J0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgbGV0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICBsZXQgb3JpZ2luYWxSZXByb3Q7CisgICAgICAgIGFkZEJ1aWxk
ZXJGb3JSZXBvcnQoc2ltcGxlUmVwb3J0WzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBzaW1wbGVSZXBvcnQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdCA9IHJlcG9ydHNbMF07CisgICAg
ICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQg
PSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0
aFN0YXR1cyhgL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7b3JpZ2luYWxSZXByb3Rb
J2lkJ119YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIGRiLnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXBvcnRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgY29uc3QgbmV3UG9ydCA9IHJlcG9ydHNbMF07CisgICAgICAgICAgICBvcmln
aW5hbFJlcHJvdFsnY29tbWl0dGVkX2F0J10gPSBudWxsOworICAgICAgICAgICAgbmV3UG9ydFsn
Y29tbWl0dGVkX2F0J10gPSBudWxsOworICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdp
bmFsUmVwcm90WydidWlsZCddLCBuZXdQb3J0WydidWlsZCddKTsKKyAgICAgICAgICAgIG9yaWdp
bmFsUmVwcm90WydidWlsZCddID0gbnVsbDsKKyAgICAgICAgICAgIG5ld1BvcnRbJ2J1aWxkJ10g
PSBudWxsOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvcmlnaW5hbFJlcHJvdCwgbmV3
UG9ydCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAg
IH0pOwogfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwkocmV2aXNp
b24gMTk5MTUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiBs
ZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiAK
IGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMu
dGltZW91dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOwogICAgIFRlc3RTZXJ2ZXIu
aW5qZWN0KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0Lmpz
CShyZXZpc2lvbiAxOTkxNTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1tYW5pZmVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtNywxNiArNywxMSBAQAogbGV0
IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogCiBk
ZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKLSAgICB0aGlzLnRpbWVvdXQo
MTAwMDApOworICAgIHRoaXMudGltZW91dCgxMDAwKTsKICAgICBUZXN0U2VydmVyLmluamVjdCgp
OwogCiAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIEJ1aWxkZXIuY2xlYXJT
dGF0aWNNYXAoKTsKLSAgICAgICAgQnVnVHJhY2tlci5jbGVhclN0YXRpY01hcCgpOwotICAgICAg
ICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgICAgIE1ldHJpYy5jbGVhclN0YXRpY01hcCgp
OwotICAgICAgICBQbGF0Zm9ybS5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBSZXBvc2l0b3J5
LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIE1vY2tEYXRhLnJlc2V0VjNNb2RlbHMoKTsKICAg
ICB9KTsKIAogICAgIGl0KCJzaG91bGQgZ2VuZXJhdGUgYW4gZW1wdHkgbWFuaWZlc3Qgd2hlbiBk
YXRhYmFzZSBpcyBlbXB0eSIsIGZ1bmN0aW9uIChkb25lKSB7CkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVh
c3VyZW1lbnQtc2V0LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTggKzEsMzAgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0
ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7Citjb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsK
KworY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpz
Jyk7Citjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29t
bW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVyRm9yUmVwb3J0OworY29uc3QgY29ubmVjdFRv
RGF0YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRp
b25zLmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKKwogZGVzY3JpYmUoIi9hcGkv
bWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewotICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXIo
cmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5U
TyBidWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAo
JDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVw
b3J0WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQorICAgIHRoaXMudGlt
ZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFi
YXNlSW5FdmVyeVRlc3QoKTsKIAotICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMo
cGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHBsYXRmb3JtcyBXSEVSRSBwbGF0Zm9ybV9uYW1lID0gJDEn
LCBbcGxhdGZvcm1OYW1lXSwgZnVuY3Rpb24gKHBsYXRmb3JtUm93cykgewotICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0X21ldHJpY3MgV0hFUkUgbWV0cmlj
X25hbWUgPSAkMScsIFttZXRyaWNOYW1lXSwgZnVuY3Rpb24gKG1ldHJpY1Jvd3MpIHsKLSAgICAg
ICAgICAgICAgICBjYWxsYmFjayhwbGF0Zm9ybVJvd3NbMF1bJ3BsYXRmb3JtX2lkJ10sIG1ldHJp
Y1Jvd3NbMF1bJ21ldHJpY19pZCddKTsKLSAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lKQorICAgIHsKKyAg
ICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHJldHVybiBQ
cm9taXNlLmFsbChbCisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJvdygncGxhdGZvcm1zJywg
e25hbWU6ICdNb3VudGFpbiBMaW9uJ30pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmlyc3RSb3co
J3Rlc3RfbWV0cmljcycsIHtuYW1lOiAnVGltZSd9KSwKKyAgICAgICAgXSkudGhlbihmdW5jdGlv
biAocmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4ge3BsYXRmb3JtSWQ6IHJlc3VsdFswXVsn
aWQnXSwgbWV0cmljSWQ6IHJlc3VsdFsxXVsnaWQnXX07CiAgICAgICAgIH0pOwogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXRNYXAsIHJvdykgeworICAgIGZ1bmN0aW9uIGZvcm1h
dChmb3JtYXRNYXAsIHJvdykKKyAgICB7CiAgICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRNYXAubGVuZ3RoOyBpKyspIHsKICAgICAgICAg
ICAgIHZhciBrZXkgPSBmb3JtYXRNYXBbaV07CkBAIC0yMywxOCArMzUsMTggQEAKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2YXIgY2x1c3RlclN0YXJ0ID0gY29uZmlnKCdj
bHVzdGVyU3RhcnQnKTsKKyAgICBsZXQgY2x1c3RlclN0YXJ0ID0gVGVzdFNlcnZlci50ZXN0Q29u
ZmlnKCkuY2x1c3RlclN0YXJ0OwogICAgIGNsdXN0ZXJTdGFydCA9ICtEYXRlLlVUQyhjbHVzdGVy
U3RhcnRbMF0sIGNsdXN0ZXJTdGFydFsxXSAtIDEsIGNsdXN0ZXJTdGFydFsyXSwgY2x1c3RlclN0
YXJ0WzNdLCBjbHVzdGVyU3RhcnRbNF0pOwogCi0gICAgdmFyIGNsdXN0ZXJTaXplID0gY29uZmln
KCdjbHVzdGVyU2l6ZScpOwotICAgIHZhciBEQVkgPSAyNCAqIDM2MDAgKiAxMDAwOwotICAgIHZh
ciBZRUFSID0gMzY1LjI0ICogREFZOwotICAgIHZhciBNT05USCA9IDMwICogREFZOworICAgIGxl
dCBjbHVzdGVyU2l6ZSA9IFRlc3RTZXJ2ZXIudGVzdENvbmZpZygpLmNsdXN0ZXJTaXplOworICAg
IGNvbnN0IERBWSA9IDI0ICogMzYwMCAqIDEwMDA7CisgICAgY29uc3QgWUVBUiA9IDM2NS4yNCAq
IERBWTsKKyAgICBjb25zdCBNT05USCA9IDMwICogREFZOwogICAgIGNsdXN0ZXJTaXplID0gY2x1
c3RlclNpemVbMF0gKiBZRUFSICsgY2x1c3RlclNpemVbMV0gKiBNT05USCArIGNsdXN0ZXJTaXpl
WzJdICogREFZOwogCiAgICAgZnVuY3Rpb24gY2x1c3RlclRpbWUoaW5kZXgpIHsgcmV0dXJuIG5l
dyBEYXRlKGNsdXN0ZXJTdGFydCArIGNsdXN0ZXJTaXplICogaW5kZXgpOyB9CiAKLSAgICB2YXIg
cmVwb3J0V2l0aEJ1aWxkVGltZSA9IFt7CisgICAgY29uc3QgcmVwb3J0V2l0aEJ1aWxkVGltZSA9
IFt7CiAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAogICAgICAgICAiYnVpbGRUaW1lIjog
Y2x1c3RlclRpbWUoNy44KS50b0lTT1N0cmluZygpLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLApAQCAtNTEsNyArNjMsNyBAQAogICAgICAgICB9fV07CiAgICAgcmVwb3J0
V2l0aEJ1aWxkVGltZS5zdGFydFRpbWUgPSArY2x1c3RlclRpbWUoNyk7CiAKLSAgICB2YXIgcmVw
b3J0V2l0aFJldmlzaW9uID0gW3sKKyAgICBjb25zdCByZXBvcnRXaXRoUmV2aXNpb24gPSBbewog
ICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEz
LTAyLTI4VDE1OjM0OjUxIiwKICAgICAgICAgInJldmlzaW9ucyI6IHsKQEAgLTczLDcgKzg1LDcg
QEAKICAgICAgICAgICAgIH0sCiAgICAgICAgIH19XTsKIAotICAgIHZhciByZXBvcnRXaXRoTmV3
UmV2aXNpb24gPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhOZXdSZXZpc2lvbiA9IFt7CiAgICAg
ICAgICJidWlsZE51bWJlciI6ICIxMjUiLAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDIt
MjhUMjE6NDU6MTciLAogICAgICAgICAicmV2aXNpb25zIjogewpAQCAtOTUsNyArMTA3LDcgQEAK
ICAgICAgICAgICAgIH0sCiAgICAgICAgIH19XTsKIAotICAgIHZhciByZXBvcnRXaXRoQW5jZW50
UmV2aXNpb24gPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiA9IFt7CiAg
ICAgICAgICJidWlsZE51bWJlciI6ICIxMjYiLAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMt
MDItMjhUMjM6MDc6MjUiLAogICAgICAgICAicmV2aXNpb25zIjogewpAQCAtMTE3LDE1NCArMTI5
LDE0NSBAQAogICAgICAgICAgICAgfSwKICAgICAgICAgfX1dOwogCi0gICAgaXQoInNob3VsZCBy
ZWplY3Qgd2hlbiBwbGF0Zm9ybSBJRCBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
cXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24g
KHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHBsYXRm
b3JtIElEIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVy
Rm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRh
aW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewor
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9t
ZWFzdXJlbWVudC1zZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKKyAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAgICAgICAgICBkb25lKCk7
CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOwogCi0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7CisgICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBtZXRyaWMgSUQgaXMgbWlzc2lu
ZyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0
V2l0aEJ1aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aEJ1aWxkVGltZSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUn
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNldC8/
cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0p
LmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBtZXRy
aWMgSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBv
cnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRy
aWNJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVz
cG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hv
dWxkIHJlamVjdCBhbiBpbnZhbGlkIHBsYXRmb3JtIG5hbWUiLCBmdW5jdGlvbiAoZG9uZSkgewor
ICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9y
bUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRm
b3JtSWR9YSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnSW52YWxpZFBsYXRmb3JtJyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAg
IH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52
YWxpZCBwbGF0Zm9ybSBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJl
cG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFu
ZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1l
dHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICdhJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxh
dGZvcm0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1l
IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRX
aXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
QnVpbGRUaW1lKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9w
bGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YmAp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKKyAgICAgICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgi
c2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAg
ICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rp
b24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQo
Jy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmlj
PScgKyBtZXRyaWNJZCArICdiJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7
CisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGEgcmVwb3J0ZWQgdmFsdWUiLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhC
dWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWls
ZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBy
ZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmlj
SWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICBjb25zdCBidWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1
aWxkVGltZSddKSk7CiAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2UpLnNvcnQoKSwK
KyAgICAgICAgICAgICAgICBbJ2NsdXN0ZXJDb3VudCcsICdjbHVzdGVyU2l6ZScsICdjbHVzdGVy
U3RhcnQnLAorICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJywgJ2VsYXBzZWRUaW1l
JywgJ2VuZFRpbWUnLCAnZm9ybWF0TWFwJywgJ2xhc3RNb2RpZmllZCcsICdzdGFydFRpbWUnLCAn
c3RhdHVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCdd
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2VbJ2Zvcm1hdE1hcCdd
LCBbCisgICAgICAgICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3Vt
JywgJ3NxdWFyZVN1bScsICdtYXJrZWRPdXRsaWVyJywKKyAgICAgICAgICAgICAgICAncmV2aXNp
b25zJywgJ2NvbW1pdFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkTnVtYmVyJywg
J2J1aWxkZXInXSk7CiAKLSAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gcmV0cmlldmUgYSByZXBv
cnRlZCB2YWx1ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRo
QnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMo
J01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkg
ewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxh
dGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChy
ZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVzcG9u
c2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUu
c3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocmVzcG9uc2VbJ2xhc3RNb2Rp
ZmllZCddKSA9PSAnbnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0aW1lIHNob3VsZCBiZSBhIG51bWVy
aWMnKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9ICsobmV3IERh
dGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBb
J2N1cnJlbnQnXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
T2JqZWN0LmtleXMocGFyZXNkUmVzdWx0KS5zb3J0KCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydjbHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFwc2VkVGlt
ZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRUaW1lJywg
J3N0YXR1cyddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RS
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChwYXJlc2RSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwgWwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50Jywg
J3N1bScsICdzcXVhcmVTdW0nLCAnbWFya2VkT3V0bGllcicsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1aWxkJywgJ2J1aWxkVGltZScs
ICdidWlsZE51bWJlcicsICdidWlsZGVyJ10pOworICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmxlbmd0aCk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChyZXNwb25zZVsnZm9ybWF0TWFw
J10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAgICAgICAgIG1lYW46IDMsCisgICAgICAg
ICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCisgICAgICAgICAgICAgICAgc3VtOiAxNSwKKyAg
ICAgICAgICAgICAgICBzcXVhcmVTdW06IDU1LAorICAgICAgICAgICAgICAgIG1hcmtlZE91dGxp
ZXI6IGZhbHNlLAorICAgICAgICAgICAgICAgIHJldmlzaW9uczogW10sCisgICAgICAgICAgICAg
ICAgY29tbWl0VGltZTogYnVpbGRUaW1lLAorICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogYnVp
bGRUaW1lLAorICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTIzJ30pOworICAgICAgICAg
ICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKIAotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhcnRUaW1lJ10sIHJl
cG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydCh0eXBlb2YocGFyZXNkUmVzdWx0WydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICds
YXN0TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CisgICAgaXQoInNob3VsZCBy
ZXR1cm4gcmV0dXJuIHRoZSByaWdodCBJRHMgZm9yIG1lYXN1cmVtZW50LCBidWlsZCwgYW5kIGJ1
aWxkZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdU
aW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyksCisg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0QWxsKCdidWlsZHMnKSwKKyAgICAgICAgICAgICAgICBk
Yi5zZWxlY3RBbGwoJ2J1aWxkZXJzJyksCisgICAgICAgICAgICAgICAgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAg
ICAgIGNvbnN0IHJ1bnMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBidWlsZHMgPSBy
ZXN1bHRbMV07CisgICAgICAgICAgICBjb25zdCBidWlsZGVycyA9IHJlc3VsdFsyXTsKKyAgICAg
ICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0WzNdOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHBhcmVzZFJlc3VsdFsnY29uZmlndXJh
dGlvbnMnXSksIFsnY3VycmVudCddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGNvbnN0IG1lYXN1cmVtZW50SWQgPSBydW5zWzBdWydpZCddOworICAgICAgICAgICAgY29uc3Qg
YnVpbGRJZCA9IGJ1aWxkc1swXVsnaWQnXTsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJJZCA9
IGJ1aWxkZXJzWzBdWydpZCddOwogCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVu
dFJvd3MgPSBwYXJlc2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0
aCwgcGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwg
Y3VycmVudFJvd3NbMF0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNxdWFyZVN1bTogNTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGll
cjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjMnfSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjb25maWd1cmF0aW9u
cyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOwogCi0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3Vy
ZW1lbnRbcmVzcG9uc2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBtZWFzdXJlbWVudElk
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0
TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG1lYXN1cmVtZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyld
LCBidWlsZGVySWQpOwogCi0gICAgaXQoInNob3VsZCByZXR1cm4gcmV0dXJuIHRoZSByaWdodCBJ
RHMgZm9yIG1lYXN1cmVtZW50LCBidWlsZCwgYW5kIGJ1aWxkZXIiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5j
dGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMnLCBbXSwgZnVuY3Rpb24gKHJ1bnMp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnRJZCA9IHJ1bnNbMF1bJ3J1
bl9pZCddOwotICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkcykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgYnVpbGRJZCA9IGJ1aWxkc1swXVsnYnVpbGRfaWQnXTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IGJ1aWxkZXJzJywgW10sIGZ1bmN0aW9uIChidWlsZGVycykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBdWydidWls
ZGVyX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkv
bWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBt
ZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnQgPSBwYXJl
c2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBt
ZWFzdXJlbWVudElkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2J1
aWxkJyldLCBidWlsZElkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2Yo
J2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5j
YXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGZ1bmN0aW9uIHBvc3RSZXBvcnRzKHJlcG9ydHMs
IGNhbGxiYWNrKSB7CisgICAgZnVuY3Rpb24gcG9zdFJlcG9ydHMocmVwb3J0cywgY2FsbGJhY2sp
CisgICAgewogICAgICAgICBpZiAoIXJlcG9ydHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKCk7CiAKQEAgLTI3NiwxMjkgKzI3OSwxMzUgQEAKICAgICAgICAgfSk7CiAgICAg
fQogCi0gICAgZnVuY3Rpb24gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KHBs
YXRmb3JtTmFtZSwgbWV0cmljTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGNhbGxiYWNrKSB7Ci0gICAg
ICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBmdW5j
dGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ1NFTEVDVCAqIEZST00gcmVwb3NpdG9yaWVzIFdIRVJFIHJlcG9zaXRvcnlfbmFtZSA9ICQx
JywgW3JlcG9zaXRvcnlOYW1lXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjayhwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcm93c1swXVsncmVwb3NpdG9yeV9pZCddKTsK
LSAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRo
UmVwb3NpdG9yeShwbGF0Zm9ybU5hbWUsIG1ldHJpY05hbWUsIHJlcG9zaXRvcnlOYW1lKQorICAg
IHsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJvdygncGxhdGZv
cm1zJywge25hbWU6IHBsYXRmb3JtTmFtZX0pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmlyc3RS
b3coJ3Rlc3RfbWV0cmljcycsIHtuYW1lOiBtZXRyaWNOYW1lfSksCisgICAgICAgICAgICBkYi5z
ZWxlY3RGaXJzdFJvdygncmVwb3NpdG9yaWVzJywge25hbWU6IHJlcG9zaXRvcnlOYW1lfSksCisg
ICAgICAgIF0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIHtw
bGF0Zm9ybUlkOiByZXN1bHRbMF1bJ2lkJ10sIG1ldHJpY0lkOiByZXN1bHRbMV1bJ2lkJ10sIHJl
cG9zaXRvcnlJZDogcmVzdWx0WzJdWydpZCddfTsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
aXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGNvbW1pdCB0aW1lIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRoQnVpbGRUaW1lLCByZXBvcnRXaXRoUmV2
aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1l
dHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAnV2ViS2l0JywgZnVu
Y3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0
Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgaXQoInNob3VsZCBvcmRlciByZXN1
bHRzIGJ5IGNvbW1pdCB0aW1lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgcmVt
b3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJZDsK
KyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91
bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktpdCcpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJlcG9zaXRvcnlJZCA9IHJlc3VsdC5yZXBvc2l0b3J5
SWQ7CisgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21l
YXN1cmVtZW50LXNldC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVz
dWx0Lm1ldHJpY0lkfWApOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewor
ICAgICAgICAgICAgY29uc3QgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMn
XVsnY3VycmVudCddOworICAgICAgICAgICAgY29uc3QgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShy
ZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOworICAgICAgICAgICAgY29uc3Qg
cmV2aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9u
cyddWydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9u
QnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ2J1aWxkVGltZSdd
KSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBidWlsZFRpbWUgPSArKG5ldyBEYXRl
KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkVGltZSddKSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgcmV2aXNpb25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25b
MF1bJ3JldmlzaW9ucyddWydXZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciByZXZpc2lvbkJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJl
dmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIg
Y3VycmVudFJvd3MgPSBwYXJzZWRSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFy
c2VkUmVzdWx0Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZWFuOiAxMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJh
dGlvbkNvdW50OiA1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiA2NSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNxdWFyZVN1bTogODU1LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWFya2VkT3V0bGllcjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXZpc2lvbnM6IFtbMSwgcmVwb3NpdG9yeUlkLCAnMTQ0MDAwJywgcmV2aXNpb25UaW1lXV0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjQnIH0pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyc2VkUmVzdWx0Wydm
b3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMV0pLCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVhbjogMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDog
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNxdWFyZVN1bTogNTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWFya2VkT3V0bGllcjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNp
b25zOiBbXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRp
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjMnIH0pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB9KTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHJlc3BvbnNlWydmb3JtYXRN
YXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CisgICAgICAgICAgICAgICBtZWFuOiAxMywKKyAgICAg
ICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAorICAgICAgICAgICAgICAgc3VtOiA2NSwKKyAg
ICAgICAgICAgICAgIHNxdWFyZVN1bTogODU1LAorICAgICAgICAgICAgICAgbWFya2VkT3V0bGll
cjogZmFsc2UsCisgICAgICAgICAgICAgICByZXZpc2lvbnM6IFtbMSwgcmVwb3NpdG9yeUlkLCAn
MTQ0MDAwJywgcmV2aXNpb25UaW1lXV0sCisgICAgICAgICAgICAgICBjb21taXRUaW1lOiByZXZp
c2lvblRpbWUsCisgICAgICAgICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAor
ICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjQnIH0pOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1sxXSks
IHsKKyAgICAgICAgICAgICAgICBtZWFuOiAzLAorICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNv
dW50OiA1LAorICAgICAgICAgICAgICAgIHN1bTogMTUsCisgICAgICAgICAgICAgICAgc3F1YXJl
U3VtOiA1NSwKKyAgICAgICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKKyAgICAgICAg
ICAgICAgICByZXZpc2lvbnM6IFtdLAorICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IGJ1aWxk
VGltZSwKKyAgICAgICAgICAgICAgICBidWlsZFRpbWU6IGJ1aWxkVGltZSwKKyAgICAgICAgICAg
ICAgICBidWlsZE51bWJlcjogJzEyMycgfSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAg
IH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBh
cnNlZFJlc3VsdCwgY29uZmlnKSB7CisgICAgZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBhcnNlZFJl
c3VsdCwgY29uZmlnKQorICAgIHsKICAgICAgICAgcmV0dXJuIHBhcnNlZFJlc3VsdFsnY29uZmln
dXJhdGlvbnMnXVtjb25maWddLm1hcChmdW5jdGlvbiAocm93KSB7CiAgICAgICAgICAgICByZXR1
cm4gZm9ybWF0KHBhcnNlZFJlc3VsdFsnZm9ybWF0TWFwJ10sIHJvdylbJ2J1aWxkTnVtYmVyJ107
CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGl0KCJzaG91bGQgaW5jbHVkZSBvbmUgZGF0YSBw
b2ludCBhZnRlciB0aGUgY3VycmVudCB0aW1lIHJhbmdlIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb24sIHJlcG9ydFdpdGhOZXdS
ZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5k
TWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBm
dW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJlcG9zaXRvcnlJZCkgewotICAgICAgICAg
ICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBs
YXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhh
dmUgdHdvIGNsdXN0ZXJzJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGJ1aWxkTnVtYmVycyhwYXJzZWRSZXN1bHQsICdjdXJyZW50JyksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvblswXVsnYnVpbGROdW1iZXIn
XSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWlsZE51bWJlciddXSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIH0pOyAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKKyAgICBpdCgic2hvdWxkIGluY2x1ZGUgb25lIGRhdGEgcG9pbnQgYWZ0ZXIgdGhlIGN1
cnJlbnQgdGltZSByYW5nZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IHJlbW90
ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQW5jZW50UmV2
aXNpb24pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhOZXdSZXZpc2lvbik7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5
UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNP
TldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0
Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnY2x1c3Rl
ckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1c3RlcnMnKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoYnVpbGROdW1iZXJzKHJlc3BvbnNlLCAnY3VycmVudCcpLAorICAgICAg
ICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJl
cG9ydFdpdGhOZXdSZXZpc2lvblswXVsnYnVpbGROdW1iZXInXV0pOworICAgICAgICAgICAgZG9u
ZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIC8vIEZJWE1FOiBU
aGlzIHRlc3QgYXNzdW1lcyBhIGNsdXN0ZXIgc3RlcCBvZiAyLTMgbW9udGhzCi0gICAgaXQoInNo
b3VsZCBhbHdheXMgaW5jbHVkZSBvbmUgb2xkIGRhdGEgcG9pbnQgYmVmb3JlIHRoZSBjdXJyZW50
IHRpbWUgcmFuZ2UiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0
aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9y
dFdpdGhCdWlsZFRpbWUsIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01v
dW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0
cmljSWQsIHJlcG9zaXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBp
L21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsg
bWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1
bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50Um93cyA9IHBhcnNlZFJlc3VsdFsnY29u
ZmlndXJhdGlvbnMnXVsnY3VycmVudCddOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIGF0IGxlYXN0IHR3
byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10s
IHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkTnVtYmVyJ11dKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0p
OworICAgIGl0KCJzaG91bGQgYWx3YXlzIGluY2x1ZGUgb25lIG9sZCBkYXRhIHBvaW50IGJlZm9y
ZSB0aGUgY3VycmVudCB0aW1lIHJhbmdlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29u
c3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgYWRkQnVpbGRlckZv
clJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhC
dWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJl
dHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhBbmNlbnRSZXZp
c2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3Vs
dC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAg
ICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25zZVsnY29uZmlndXJhdGlvbnMnXVsnY3Vy
cmVudCddOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwg
J3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChidWlsZE51bWJlcnMocmVzcG9uc2UsICdjdXJyZW50JyksIFtyZXBvcnRXaXRoQW5j
ZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1
aWxkTnVtYmVyJ11dKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9u
ZSk7CiAgICAgfSk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyB0ZXN0IGFzc3VtZXMgYSBjbHVzdGVy
IHN0ZXAgb2YgMi0zIG1vbnRocwotICAgIGl0KCJzaG91bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMi
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRS
ZXZpc2lvbiwgcmVwb3J0V2l0aFJldmlzaW9uLCByZXBvcnRXaXRoTmV3UmV2aXNpb25dLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBv
c2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAnV2ViS2l0JywgZnVuY3Rpb24gKHBsYXRm
b3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaHR0
cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJyZt
ZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FjaGVQcmVm
aXggPSAnL2RhdGEvbWVhc3VyZW1lbnQtc2V0LScgKyBwbGF0Zm9ybUlkICsgJy0nICsgbWV0cmlj
SWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRwR2V0KGNhY2hlUHJlZml4ICsgJy5qc29u
JywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IHBhcnNlZENhY2hlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHBhcnNlZFJlc3Vs
dCwgcGFyc2VkQ2FjaGVkUmVzdWx0KTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0
dHBHZXQoY2FjaGVQcmVmaXggKyAnLScgKyBwYXJzZWRSZXN1bHRbJ3N0YXJ0VGltZSddICsgJy5q
c29uJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBwYXJzZWRPbGRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVy
cyA9IGJ1aWxkTnVtYmVycyhwYXJzZWRPbGRSZXN1bHQsICdjdXJyZW50Jyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdCdWlsZE51bWJlcnMgPSBidWlsZE51bWJlcnMo
cGFyc2VkUmVzdWx0LCAnY3VycmVudCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQob2xkQnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG9sZCBjbHVzdGVyIHNo
b3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQobmV3QnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhl
IG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG9sZEJ1aWxk
TnVtYmVycy5zbGljZShvbGRCdWlsZE51bWJlcnMubGVuZ3RoIC0gMiksIG5ld0J1aWxkTnVtYmVy
cy5zbGljZSgwLCAyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUd28g
Y29uc2VxY3V0aXZlIGNsdXN0ZXJzIHNob3VsZCBzaGFyZSB0d28gZGF0YSBwb2ludHMnKTsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAor
ICAgIGl0KCJzaG91bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAoZG9uZSkgewor
ICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICBs
ZXQgY2FjaGVQcmVmaXg7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1
aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVtb3Rl
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQW5jZW50UmV2aXNpb24pOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aE5ld1JldmlzaW9uKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91
bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkg
eworICAgICAgICAgICAgY2FjaGVQcmVmaXggPSAnL2RhdGEvbWVhc3VyZW1lbnQtc2V0LScgKyBy
ZXN1bHQucGxhdGZvcm1JZCArICctJyArIHJlc3VsdC5tZXRyaWNJZDsKKyAgICAgICAgICAgIHJl
dHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0
Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YCk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKG5ld1Jlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJu
IHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZpeH0uanNvbmApLnRoZW4oZnVu
Y3Rpb24gKGNhY2hlZFJlc3VsdCkgeworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
bmV3UmVzdWx0LCBjYWNoZWRSZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUu
Z2V0SlNPTldpdGhTdGF0dXMoYCR7Y2FjaGVQcmVmaXh9LSR7Y2FjaGVkUmVzdWx0WydzdGFydFRp
bWUnXX0uanNvbmApOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAob2xkUmVzdWx0KSB7
CisgICAgICAgICAgICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhvbGRS
ZXN1bHQsICdjdXJyZW50Jyk7CisgICAgICAgICAgICAgICAgdmFyIG5ld0J1aWxkTnVtYmVycyA9
IGJ1aWxkTnVtYmVycyhuZXdSZXN1bHQsICdjdXJyZW50Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0KG9sZEJ1aWxkTnVtYmVycy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1c3RlciBzaG91bGQg
Y29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQobmV3QnVpbGROdW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBj
b250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob2xkQnVpbGROdW1iZXJzLnNsaWNlKG9sZEJ1aWxkTnVtYmVycy5sZW5ndGgg
LSAyKSwgbmV3QnVpbGROdW1iZXJzLnNsaWNlKDAsIDIpLAorICAgICAgICAgICAgICAgICAgICAn
VHdvIGNvbnNlcWN1dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRzJyk7
CisgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwor
ICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAogfSk7CkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1y
ZXBvcnQtY29tbWl0cy10ZXN0cy5qcwkod29ya2luZyBjb3B5KQorKysgV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsOSArMSwyMiBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCBhc3NlcnQg
PSByZXF1aXJlKCdhc3NlcnQnKTsKK2NvbnN0IGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOwor
Citjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMn
KTsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9u
LW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9ydDsKK2NvbnN0IGNvbm5lY3RUb0RhdGFi
YXNlSW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5q
cycpLmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3Q7CisKIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZW1wdHlSZXBvcnQgPSB7CisgICAg
dGhpcy50aW1lb3V0KDEwMDApOworICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7CisgICAgY29ubmVj
dFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCgpOworCisgICAgY29uc3QgZW1wdHlSZXBvcnQgPSB7CiAg
ICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKICAgICB9OwotICAgIHZhciBzdWJ2ZXJzaW9uQ29tbWl0ID0gewor
ICAgIGNvbnN0IHN1YnZlcnNpb25Db21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29t
ZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAg
ICAgImNvbW1pdHMiOiBbCkBAIC0xNiw3ICsyOSw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAg
IF0sCiAgICAgfTsKLSAgICB2YXIgc3VidmVyc2lvbkludmFsaWRDb21taXQgPSB7CisgICAgY29u
c3Qgc3VidmVyc2lvbkludmFsaWRDb21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29t
ZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAg
ICAgImNvbW1pdHMiOiBbCkBAIC0yOSw3ICs0Miw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAg
IF0sCiAgICAgfTsKLSAgICB2YXIgc3VidmVyc2lvblR3b0NvbW1pdHMgPSB7CisgICAgY29uc3Qg
c3VidmVyc2lvblR3b0NvbW1pdHMgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgImNv
bW1pdHMiOiBbCkBAIC01MSwxODcgKzY0LDE5OCBAQAogICAgICAgICBdCiAgICAgfQogCi0gICAg
ZnVuY3Rpb24gYWRkU2xhdmUocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZF9zbGF2ZXMgKHNsYXZlX25hbWUsIHNsYXZlX3Bhc3N3
b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0LnNsYXZlTmFt
ZSwgc2hhMjU2KHJlcG9ydC5zbGF2ZVBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAg
ICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30s
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKLSAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCByZWpl
Y3QgZXJyb3Igd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgewor
ICAgICAgICBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIHt9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKKyAgICAgICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSBjb21taXRzJywgW10sIGZ1bmN0aW9u
IChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDAp
OwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0KS50aGVuKGZ1bmN0aW9uIChyZXNw
b25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ1Ns
YXZlTm90Rm91bmQnKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCku
c2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJvd3MpIHsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBk
b25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3Vs
ZCBhY2NlcHQgYW4gZW1wdHkgcmVwb3J0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2
ZShlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBhY2NlcHQgYW4gZW1wdHkg
cmVwb3J0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkU2xhdmVGb3JSZXBvcnQoZW1w
dHlSZXBvcnQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBv
cnQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBh
ZGQgYSBtaXNzaW5nIHJlcG9zaXRvcnkiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZl
KHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRvcmllcycsIFtdLCBmdW5jdGlvbiAocm93cykg
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsncmVwb3NpdG9yeV9uYW1lJ10s
IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKLSAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgYWRkIGEgbWlzc2luZyByZXBvc2l0b3J5
IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFi
YXNlKCk7CisgICAgICAgIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyb3dzKSB7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ25hbWUnXSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBd
WydyZXBvc2l0b3J5J10pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChk
b25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgc3RvcmUgYSBjb21taXQgZnJvbSBhIHZh
bGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29t
bWl0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSBjb21taXRzIEpPSU4gY29tbWl0dGVycyBPTiBjb21taXRfY29tbWl0dGVyID0gY29t
bWl0dGVyX2lkJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciByZXBv
cnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRh
WydyZXZpc2lvbiddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1b
J2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAu
OScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFb
J21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxk
IHN0b3JlIGEgY29tbWl0IGZyb20gYSB2YWxpZCBzbGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7Cisg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29t
bWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGxldCBjb21taXRzID0gcmVzdWx0WzBdOwor
ICAgICAgICAgICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CisgICAgICAgICAgICBsZXQg
cmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgn
MjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25h
bWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9u
ZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9u
IG51bWJlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1p
dCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc3VidmVyc2lvbkNvbW1pdAotICAgICAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkludmFsaWRDb21t
aXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMnLCBb
XSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91
bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbnVtYmVyIiwgZnVuY3Rpb24gKGRvbmUpIHsK
KyAgICAgICAgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uJyk7CisgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDApOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25l
KTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZh
bGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uVHdv
Q29tbWl0cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0
ZXIgPSBjb21taXR0ZXJfaWQgT1JERVIgQlkgY29tbWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21t
aXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
Wydjb21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmco
KSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9y
J11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
Wydjb21taXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRz
WzFdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X3Jl
dmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXRfdGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRl
KCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsn
YXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzFdWydjb21taXR0ZXJfYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X21l
c3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7CisgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBmcm9tIGEgdmFsaWQgc2xh
dmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKKyAgICAgICAgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMp
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1p
dHMpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21t
aXR0ZXJzID0gcmVzdWx0WzFdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMik7
CisKKyAgICAgICAgICAgIGxldCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5j
b21taXRzWzBdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9u
J10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1swXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1
OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBd
WydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERh
dGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRl
cnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKwor
ICAgICAgICAgICAgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sx
XTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydyZXZpc2lvbiddLCByZXBv
cnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNb
MV1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwOTo1NDo1Ni4wJyku
dG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnbWVzc2Fn
ZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMV1bJ2lkJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRo
b3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzFdWydh
Y2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgi
c2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgaWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0b3Jp
ZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgkMSkgUkVUVVJOSU5HIConLCBbJ1dlYktpdCdd
LCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeUlk
ID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5X2lkJ107Ci0gICAgICAgICAgICB2YXIgcmVw
b3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwotICAgICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9zaXRvcnksIGNv
bW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykgUkVUVVJOSU5H
IConLAotICAgICAgICAgICAgICAgIFtyZXBvc2l0b3J5SWQsIHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSwgcmVwb3J0ZWREYXRhWyd0aW1lJ11dLCBmdW5jdGlvbiAoZXhpc3RpbmdDb21taXRzKSB7
Ci0gICAgICAgICAgICAgICAgdmFyIGNvbW1pdElkID0gZXhpc3RpbmdDb21taXRzWzBdWydjb21t
aXRfaWQnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZXhpc3RpbmdDb21taXRzWzBd
Wydjb21taXRfbWVzc2FnZSddLCBudWxsKTsKLSAgICAgICAgICAgICAgICBhZGRTbGF2ZShzdWJ2
ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMg
Sk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQnLCBbXSwg
ZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBv
cnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9y
dGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsn
YXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSdd
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCB1cGRh
dGUgYW4gZXhpc3RpbmcgY29tbWl0IGlmIHRoZXJlIGlzIG9uZSIsIGZ1bmN0aW9uIChkb25lKSB7
CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25z
dCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF07CisgICAgICAgIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQo
J3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzog
cmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkK
KyAgICAgICAgICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29t
bWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMF07
CisgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCdd
KTsKKworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9
KTsKIAotICAgIGl0KCJzaG91bGQgbm90IHVwZGF0ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0
b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgkMSkgUkVUVVJOSU5HIConLCBbJ1dlYktp
dCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9y
eUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5X2lkJ107Ci0gICAgICAgICAgICB2YXIg
cmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sxXTsKLSAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGNvbW1pdHMgKGNvbW1pdF9yZXBvc2l0
b3J5LCBjb21taXRfcmV2aXNpb24sIGNvbW1pdF90aW1lKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFJF
VFVSTklORyAqJywKLSAgICAgICAgICAgICAgICBbcmVwb3NpdG9yeUlkLCByZXBvcnRlZERhdGFb
J3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwgZnVuY3Rpb24gKGV4aXN0aW5nQ29t
bWl0cykgewotICAgICAgICAgICAgICAgIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21t
aXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJU
IElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0
X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykgUkVUVVJOSU5HIConLAotICAgICAgICAgICAgICAg
ICAgICBbcmVwb3NpdG9yeUlkLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0
YVsndGltZSddXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2xh
dmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgTEVGVCBPVVRFUiBKT0lOIGNv
bW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCBPUkRFUiBCWSBjb21t
aXRfdGltZScsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFt
ZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X21lc3NhZ2Un
XSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9uYW1lJ10sIG51bGwpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1b
J2NvbW1pdHRlcl9hY2NvdW50J10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdF9tZXNzYWdlJ10sIG51bGwpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgbm90IHVwZGF0ZSBh
biB1bnJlbGF0ZWQgY29tbWl0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgZGIg
PSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGZpcnN0RGF0YSA9IHN1YnZl
cnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07CisgICAgICAgIGNvbnN0IHNlY29uZERhdGEgPSBz
dWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOworICAgICAgICBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMn
LCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgICAgIGRiLmluc2Vy
dCgnY29tbWl0cycsIHsnaWQnOiAyLCAncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6IGZpcnN0
RGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnOiBmaXJzdERhdGFbJ3RpbWUnXX0pLAorICAgICAgICAg
ICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsnaWQnOiAzLCAncmVwb3NpdG9yeSc6IDEsICdy
ZXZpc2lvbic6IHNlY29uZERhdGFbJ3JldmlzaW9uJ10sICd0aW1lJzogc2Vjb25kRGF0YVsndGlt
ZSddfSkKKyAgICAgICAgICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFs
bCgnY29tbWl0cycpLCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1
bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21taXR0ZXJzID0gcmVzdWx0WzFdOworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRzWzBdWydpZCddLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRz
WzBdWydtZXNzYWdlJ10sIGZpcnN0RGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCBmaXJzdERhdGFb
J2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNb
MF1bJ2FjY291bnQnXSwgZmlyc3REYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2lkJ10sIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ21lc3NhZ2UnXSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsnY29tbWl0dGVyJ10sIG51bGwpOworCisg
ICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0g
ICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0dGVyIGlmIHRoZXJlIGlzIG9u
ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8g
cmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X2lkLCByZXBvc2l0b3J5X25hbWUpIFZBTFVFUyAoMSwg
XCdXZWJLaXRcJyknLCBbXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIGF1dGhvciA9
IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsnYXV0aG9yJ107Ci0gICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21taXR0ZXJzIChjb21taXR0ZXJfcmVwb3NpdG9y
eSwgY29tbWl0dGVyX2FjY291bnQpIFZBTFVFUyAoMSwgJDEpJywgW2F1dGhvclsnYWNjb3VudCdd
XSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21t
aXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0dGVycycsIFtdLCBm
dW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291
bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
KTsKKyAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXR0ZXIgaWYgdGhlcmUg
aXMgb25lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGF1dGhvciA9IHN1YnZlcnNpb25Db21taXQuY29t
bWl0c1swXVsnYXV0aG9yJ107CisgICAgICAgIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAn
bmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXR0ZXJz
JywgeydyZXBvc2l0b3J5JzogMSwgJ2FjY291bnQnOiBhdXRob3JbJ2FjY291bnQnXX0pLAorICAg
ICAgICAgICAgXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAoY29tbWl0dGVycykgeworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNjb3VudCddKTsKKyAgICAg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKIH0pOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRl
c3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXJlcG9ydC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQorKysgV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMxNCArMSwzNjAgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0ID0gcmVx
dWlyZSgnYXNzZXJ0Jyk7CisKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRkQnVpbGRlckZvclJlcG9ydCA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkQnVpbGRlckZvclJlcG9ydDsK
K2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9w
ZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9ydDsKK2NvbnN0IGNvbm5lY3RUb0RhdGFiYXNl
SW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycp
LmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3Q7CisKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZW1wdHlSZXBvcnQgPSBbewotICAgICAgICAiYnVpbGRO
dW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAz
LjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAg
ICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAg
ICAgICJ0ZXN0cyI6IHt9LAotICAgICAgICAicmV2aXNpb25zIjogewotICAgICAgICAgICAgIk9T
IFgiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIxNDE5NzciLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0w
NlQwODo1NToyMC45WiIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOworICAgIHRoaXMudGlt
ZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFi
YXNlSW5FdmVyeVRlc3QoKTsKIAotICAgIHZhciBlbXB0eVNsYXZlUmVwb3J0ID0gW3sKLSAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0y
OFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJz
bGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAib3RoZXJQ
YXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAg
InRlc3RzIjoge30sCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiT1MgWCI6
IHsKLSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjE0MTk3NyIsCi0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4
OjU1OjIwLjlaIgorICAgIGZ1bmN0aW9uIGVtcHR5UmVwb3J0KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKKyAgICAgICAgICAgICJi
dWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAorICAgICAgICAgICAgImJ1
aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJzbGF2ZU5hbWUiOiAic29t
ZVNsYXZlIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
KyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0
ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAgICAi
T1MgWCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICAgICAi
dGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotICAgICAgICB9fV07Ci0KLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVyKHJl
cG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8g
YnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQx
LCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9y
dFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOworICAgICAgICB9OwogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGFkZFNsYXZlKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVpbGRfc2xhdmVzIChzbGF2ZV9uYW1lLCBzbGF2ZV9w
YXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5z
bGF2ZU5hbWUsIHNoYTI1NihyZXBvcnRbMF0uc2xhdmVQYXNzd29yZCldLCBjYWxsYmFjayk7Cisg
ICAgZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgpCisgICAgeworICAgICAgICByZXR1cm4gewor
ICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCisgICAgICAgICAgICAiYnVpbGRUaW1l
IjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKKyAgICAgICAgICAgICJidWlsZGVyTmFt
ZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIs
CisgICAgICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJvdGhlclBhc3N3b3JkIiwKKyAgICAgICAg
ICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHt9
LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAgICAiT1MgWCI6IHsK
KyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1w
IjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9OwogICAgIH0KIAotICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdo
ZW4gYnVpbGRlciBuYW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4z
ODgzMDQifV0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZGVy
TmFtZScpOwotICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICB9KTsKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIGJ1aWxkZXIgbmFtZSBpcyBtaXNzaW5nIiwgZnVuY3Rp
b24gKGRvbmUpIHsKKyAgICAgICAgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW3siYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0In1d
KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZGVyTmFtZScpOworICAgICAgICAgICAgZG9u
ZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQg
cmVqZWN0IGVycm9yIHdoZW4gYnVpbGQgdGltZSBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LCAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCJ9XSwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVz
cG9uc2VUZXh0KVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRUaW1lJyk7Ci0gICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCByZWplY3Qg
ZXJyb3Igd2hlbiBidWlsZCB0aW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAg
ICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQifV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNw
b25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01p
c3NpbmdCdWlsZFRpbWUnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVw
b3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1
bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291
bnQsIDApOwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWls
ZGVycyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSkudGhlbihmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdCdWlsZGVyTm90Rm91bmQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
ZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5k
YXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXBvcnRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDAp
OworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsK
IAotICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVwb3J0IHdpdGhvdXQgYSBidWlsZGVyIHBhc3N3
b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5j
dGlvbiAoKSB7CisgICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aG91dCBhIGJ1aWxk
ZXIgcGFzc3dvcmQiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVw
b3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdmFyIHJl
cG9ydCA9IFt7CiAgICAgICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAg
ICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCiAgICAg
ICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICAg
ICAidGVzdHMiOiB7fSwKICAgICAgICAgICAgICAgICAicmV2aXNpb25zIjoge319XTsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10s
IGZhbHNlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5j
dGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5j
b3VudCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnQp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKKyAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRz
Jyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAg
ICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBzdG9yZSBhIHJl
cG9ydCBmcm9tIGEgdmFsaWQgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVp
bGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
cHJvY2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBh
IHZhbGlkIGJ1aWxkZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9y
UmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0
eVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3Qgc3VibWl0dGVk
Q29udGVudCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50
ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOworCisgICAgICAgICAgICBkZWxl
dGUgc3VibWl0dGVkQ29udGVudFsnYnVpbGRlclBhc3N3b3JkJ107CisgICAgICAgICAgICBkZWxl
dGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKKyAgICAgICAgICAgIGRlbGV0ZSBzdG9yZWRD
b250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzdG9yZWRDb250
ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9
KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgdHJlYXQgdGhlIHNsYXZl
IHBhc3N3b3JkIGFzIHRoZSBidWlsZGVyIHBhc3N3b3JkIGlmIHRoZXJlIGlzIG5vIG1hdGNoaW5n
IHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnc2xhdmVQYXNzd29yZCdd
ID0gZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddOwotICAgICAgICAgICAgZGVsZXRl
IGVtcHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQnXTsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddID0gZW1wdHlSZXBv
cnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKLSAgICAgICAgICAgICAgICBkZWxldGUgZW1wdHlSZXBv
cnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKKyAgICBpdCgic2hvdWxkIHRyZWF0IHRoZSBzbGF2ZSBw
YXNzd29yZCBhcyB0aGUgYnVpbGRlciBwYXNzd29yZCBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBz
bGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGxldCByZXBvcnQgPSBlbXB0eVJlcG9y
dCgpOworICAgICAgICByZXBvcnRbJ3NsYXZlUGFzc3dvcmQnXSA9IHJlcG9ydFsnYnVpbGRlclBh
c3N3b3JkJ107CisgICAgICAgIGRlbGV0ZSByZXBvcnRbJ2J1aWxkZXJQYXNzd29yZCddOwogCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykg
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgYWRkU2xhdmVGb3JSZXBvcnQocmVw
b3J0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0XSk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXBvcnRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgY29uc3Qgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2UocmVwb3J0
c1swXVsnY29udGVudCddKTsKKworICAgICAgICAgICAgZGVsZXRlIHJlcG9ydFsnc2xhdmVQYXNz
d29yZCddOworICAgICAgICAgICAgZGVsZXRlIHJlcG9ydFsndGVzdHMnXTsKKyAgICAgICAgICAg
IGRlbGV0ZSBzdG9yZWRDb250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzdG9yZWRDb250ZW50LCByZXBvcnQpOworCisgICAgICAgICAgICBkb25lKCk7CisgICAg
ICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBzdG9yZSBhIHJl
cG9ydCBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZl
KGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQg
ZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkU2xhdmVG
b3JSZXBvcnQoZW1wdHlTbGF2ZVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCBbZW1wdHlTbGF2ZVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBm
YWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMSk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFs
bCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29u
c3Qgc3VibWl0dGVkQ29udGVudCA9IGVtcHR5U2xhdmVSZXBvcnQoKTsKKyAgICAgICAgICAgIGNv
bnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9ydHNbMF1bJ2NvbnRlbnQnXSk7CisK
KyAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50WydzbGF2ZVBhc3N3b3JkJ107Cisg
ICAgICAgICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsndGVzdHMnXTsKKyAgICAgICAgICAg
IGRlbGV0ZSBzdG9yZWRDb250ZW50Wyd0ZXN0cyddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChzdG9yZWRDb250ZW50LCBzdWJtaXR0ZWRDb250ZW50KTsKKworICAgICAgICAgICAgZG9u
ZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQg
c3RvcmUgdGhlIGJ1aWxkZXIgbmFtZSBidXQgbm90IHRoZSBidWlsZGVyIHBhc3N3b3JkIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVD
VCByZXBvcnRfY29udGVudCBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJvd3NbMF0u
cmVwb3J0X2NvbnRlbnQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RvcmVk
Q29udGVudFsnYnVpbGRlck5hbWUnXSwgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJOYW1lJ10pOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQoISgnYnVpbGRlclBhc3N3b3JkJyBpbiBzdG9yZWRD
b250ZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHN0
b3JlIHRoZSBidWlsZGVyIG5hbWUgYnV0IG5vdCB0aGUgYnVpbGRlciBwYXNzd29yZCIsIGZ1bmN0
aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBv
cnRzWzBdWydjb250ZW50J10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENvbnRl
bnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxkZXJOYW1lJ10pOworICAgICAg
ICAgICAgYXNzZXJ0KCEoJ2J1aWxkZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOworICAg
ICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAg
IGl0KCJzaG91bGQgYWRkIGEgc2xhdmUgaWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0
IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
YWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkX3NsYXZl
cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocm93c1swXS5zbGF2ZV9uYW1lLCBlbXB0eVJlcG9ydFswXS5zbGF2ZU5hbWUpOwot
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBhZGQgYSBzbGF2ZSBp
ZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQgd2FzIGF1dGhlbnRpY2F0ZWQgYnkgYSBi
dWlsZGVyIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChl
bXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1wdHlSZXBvcnQo
KV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkX3NsYXZlcycpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChzbGF2ZXMpIHsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzbGF2ZXMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzbGF2ZXNb
MF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnc2xhdmVOYW1lJ10pOworICAgICAgICAgICAgZG9u
ZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQg
YWRkIGEgYnVpbGRlciBpZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQgd2FzIGF1dGhl
bnRpY2F0ZWQgYnkgYSBzbGF2ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoZW1w
dHlTbGF2ZVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRlcnMnLCBbXSwg
ZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3NbMF0uYnVpbGRlcl9uYW1lLCBlbXB0eVJlcG9ydFswXS5idWlsZGVyTmFtZSk7Ci0gICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGFkZCBhIGJ1aWxkZXIgaWYg
dGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgc2xh
dmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChlbXB0eVNs
YXZlUmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNsYXZlUmVw
b3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChidWlsZGVycykgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQo
InNob3VsZCBhZGQgYSBidWlsZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihl
bXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAo
cm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5i
dWlsZF9udW1iZXIsIDEyMyk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgi
c2hvdWxkIGFkZCBhIGJ1aWxkIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRl
ckZvclJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBb
ZW1wdHlSZXBvcnQoKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRzWzBdWydudW1iZXInXSwgMTIzKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIGFkZCB0
aGUgcGxhdGZvcm0iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBv
cnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBl
bXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUICogZnJvbSBwbGF0Zm9ybXMnLCBbXSwgZnVuY3Rpb24gKHJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0ucGxhdGZv
cm1fbmFtZSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwor
ICAgIGl0KCJzaG91bGQgYWRkIHRoZSBwbGF0Zm9ybSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAg
ICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cGxhdGZvcm1zJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHBsYXRmb3JtcykgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHBsYXRmb3Jtcy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBsYXRmb3Jtc1swXVsnbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAg
ICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAg
IGl0KCJzaG91bGQgYWRkIHJlcG9zaXRvcmllcyBhbmQgYnVpbGQgcmV2aXNpb25zIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IEZST00gcmVwb3NpdG9yaWVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4g
cm93WydyZXBvc2l0b3J5X25hbWUnXTsgfSksIFsnT1MgWCcsICdXZWJLaXQnXSk7CisgICAgaXQo
InNob3VsZCBhZGQgcmVwb3NpdG9yaWVzIGFuZCBidWlsZCByZXZpc2lvbnMiLCBmdW5jdGlvbiAo
ZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAgICAgZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwKKyAgICAgICAgICAgICAgICBk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RBbGwoJ2J1
aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0JyksCisgICAgICAgICAgICBdKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCByZXBvc2l0b3Jp
ZXMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzFdOwor
ICAgICAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJdOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0
dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksIFsnT1MgWCcsICdXZWJLaXQnXSk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OwotICAgICAgICAgICAg
ICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdykgeyByZXBvc2l0b3J5SWRUb05hbWVb
cm93WydyZXBvc2l0b3J5X2lkJ11dID0gcm93WydyZXBvc2l0b3J5X25hbWUnXTsgfSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cyBXSEVSRSBidWlsZF9jb21taXQgPSBjb21taXRfaWQnLCBbXSwgZnVuY3Rp
b24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZVRv
UmV2aXNpb25Sb3cgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChm
dW5jdGlvbiAocm93KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5h
bWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtyb3dbJ2NvbW1pdF9yZXBvc2l0b3J5
J11dXSA9IHJvdzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snT1MgWCdd
Wydjb21taXRfcmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11b
J2NvbW1pdF9yZXZpc2lvbiddLCAnMTQxOTc3Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsnY29tbWl0
X3RpbWUnXS50b1N0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRl
KCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0
aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1
aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOwogCi0gICAgaXQoInNob3Vs
ZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWlsZCBudW1iZXIg
aWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWls
ZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFsw
XVsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoxMjowNCc7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGxldCByZXBvc2l0b3J5SWRUb05h
bWUgPSB7fTsKKyAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVwb3NpdG9yaWVz
KQorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5WydpZCddXSA9
IHJlcG9zaXRvcnlbJ25hbWUnXTsKIAotICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydi
dWlsZFRpbWUnXSA9ICcyMDEzLTAyLTI4VDEwOjIyOjAzJzsKLSAgICAgICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAw
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgbGV0IHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9m
IGNvbW1pdHMpCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3Jl
cG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OwogCi0gICAg
ICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywg
W10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
TmFtZVRvUmV2aXNpb25Sb3dbJ09TIFgnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2Vi
S2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwK
KyAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAg
IH0pOwogCi0gICAgaXQoInNob3VsZCBjcmVhdGUgZGlzdGluY3QgYnVpbGRzIGZvciB0aGUgc2Ft
ZSBidWlsZCBudW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGZhciBhcGFydCIsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDMn
OwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgaXQoInNob3Vs
ZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWlsZCBudW1iZXIg
aWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgbGV0
IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxk
VGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOworICAgICAgICBsZXQgc2Vjb25kUmVwb3J0
ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgc2Vjb25kUmVwb3J0WydidWlsZFRpbWUnXSA9ICcy
MDEzLTAyLTI4VDEwOjIyOjAzJzsKIAotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAgICAgIGFkZEJ1aWxk
ZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywg
W2ZpcnN0UmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZHMnKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3NlY29uZFJlcG9ydF0pOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKGJ1aWxkcykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9
KTsKIAotICAgICAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10gPSAn
MjAxNC0wMS0yMFQyMjoyMzozNCc7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICBpdCgic2hvdWxkIGNyZWF0ZSBkaXN0
aW5jdCBidWlsZHMgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUg
ZmFyIGFwYXJ0IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgbGV0IGZpcnN0UmVwb3J0ID0g
ZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMt
MDItMjhUMTA6MTI6MDMnOworICAgICAgICBsZXQgc2Vjb25kUmVwb3J0ID0gZW1wdHlSZXBvcnQo
KTsKKyAgICAgICAgc2Vjb25kUmVwb3J0WydidWlsZFRpbWUnXSA9ICcyMDE0LTAxLTIwVDIyOjIz
OjM0JzsKIAotICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9y
dCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChidWlsZHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBy
ZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGluZyByZXZpc2lvbiBpbmZvIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNpb25zJ10gPSB7Ci0gICAgICAgICAgICAgICAg
IldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCi0g
ICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45Nloi
Ci0gICAgICAgICAgICAgICAgfQorICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVwb3J0IHdpdGgg
bWlzbWF0Y2hpbmcgcmV2aXNpb24gaW5mbyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGxl
dCBmaXJzdFJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgIGZpcnN0UmVwb3J0WydyZXZp
c2lvbnMnXSA9IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgInJl
dmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAy
LTA2VDA4OjU1OjIwLjk2WiIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICB9OwogCi0gICAgICAgICAgICAgICAgZW1wdHlSZXBv
cnRbMF1bJ3JldmlzaW9ucyddID0gewotICAgICAgICAgICAgICAgICAgICAiV2ViS2l0Ijogewot
ICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE1MDAwMCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDUtMTNUMTA6NTA6MjkuNloiCi0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0KHJlc3BvbnNlLnJlc3BvbnNlVGV4dC5pbmRleE9mKCcxNDE5NzcnKSA+PSAwKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlc3BvbnNlLnJlc3BvbnNlVGV4dC5pbmRleE9mKCcx
NTAwMDAnKSA+PSAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsncHJvY2Vzc2VkUnVucyddLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwor
ICAgICAgICBsZXQgc2Vjb25kUmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgc2Vjb25k
UmVwb3J0WydyZXZpc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjE1MDAwMCIsCisgICAgICAgICAgICAgICAgInRpbWVzdGFt
cCI6ICIyMDEzLTA1LTEzVDEwOjUwOjI5LjZaIgorICAgICAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZmlyc3RSZXBvcnQpLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFtmaXJzdFJlcG9ydF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dEFsbCgnYnVpbGRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGJ1aWxkcykgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtzZWNv
bmRSZXBvcnRdKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNtYXRjaGluZ0NvbW1p
dFJldmlzaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2Up
LmluZGV4T2YoJzE0MTk3NycpID49IDApOworICAgICAgICAgICAgYXNzZXJ0KEpTT04uc3RyaW5n
aWZ5KHJlc3BvbnNlKS5pbmRleE9mKCcxNTAwMDAnKSA+PSAwKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCB0cnVlKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2YXIgcmVwb3J0
V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zID0gW3sKKyAgICBjb25zdCByZXBvcnRXaXRoVHdv
TGV2ZWxzT2ZBZ2dyZWdhdGlvbnMgPSB7CiAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAog
ICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKICAgICAg
ICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKQEAgLTM1MCwxNSArMzk2LDIyIEBACiAg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCiAgICAgICAgICAgICAgICAgInRp
bWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgogICAgICAgICAgICAgfQotICAgICAg
ICB9fV07CisgICAgICAgIH19OwogCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRlckFuZE1lYW5BZ2dy
ZWdhdG9ycyhyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBh
Z2dyZWdhdG9ycyAoYWdncmVnYXRvcl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVl
cyAoJDEsICQyKScsCi0gICAgICAgICAgICAgICAgWydBcml0aG1ldGljJywgJ3ZhbHVlcy5yZWR1
Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSAvIHZhbHVlcy5sZW5ndGgnXSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJ
TlRPIGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikg
dmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgICAgICAgICAgWydHZW9tZXRyaWMnLCAnTWF0
aC5wb3codmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAqIGI7IH0pLCAx
IC8gdmFsdWVzLmxlbmd0aCknXSwgY2FsbGJhY2spOwotICAgICAgICAgICAgfSk7CisgICAgZnVu
Y3Rpb24gcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0KS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwor
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNl
cnQoJ2FnZ3JlZ2F0b3JzJywge25hbWU6ICdBcml0aG1ldGljJ30pLAorICAgICAgICAgICAgICAg
IGRiLmluc2VydCgnYWdncmVnYXRvcnMnLCB7bmFtZTogJ0dlb21ldHJpYyd9KSwKKyAgICAgICAg
ICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0
XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzcG9uc2U7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMzcyLDIzNSArNDI1LDIx
NyBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpdCgic2hvdWxkIG5vdCByZWplY3Qgd2hl
biBhZ2dyZWdhdG9ycyBhcmUgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVp
bGRlcihyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZB
Z2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBh
Y2NlcHQgYSByZXBvcnQgd2l0aCBhZ2dyZWdhdG9ycyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAg
ICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29M
ZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBh
ZGQgdGVzdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVn
YXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFR3b0xldmVsc09m
QWdncmVnYXRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVz
cG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cycsIFtdLCBmdW5jdGlvbiAocm93cykg
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJvd3MubWFwKGZ1bmN0aW9u
IChyb3cpIHsgcmV0dXJuIHJvd1sndGVzdF9uYW1lJ107IH0pLnNvcnQoKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFsnQ1NTJywgJ0RPTScsICdEdW1teUJlbmNobWFyaycsICdEdW1teVBhZ2VM
b2FkaW5nJywgJ01vZGlmeU5vZGVzJywgJ1RyYXZlcnNlTm9kZXMnLCAnYXBwbGUuY29tJywgJ3dl
YmtpdC5vcmcnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdLnRlc3RzID0g
e307Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGFkZCB0ZXN0
cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRlckFu
ZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAodGVzdHMpIHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdHMubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJu
IHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9NJywg
J0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJh
dmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxk
IGFkZCBtZXRyaWNzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFn
Z3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZl
bHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNzIExFRlQg
Sk9JTiBhZ2dyZWdhdG9ycyBPTiBtZXRyaWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3JfaWQgV0hF
UkUgbWV0cmljX3Rlc3QgPSB0ZXN0X2lkJywKLSAgICAgICAgICAgICAgICAgICAgW10sIGZ1bmN0
aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0ZXN0TmFtZVRvTWV0cmljcyA9
IHt9OwotICAgICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEocm93Wyd0ZXN0X25hbWUnXSBpbiB0ZXN0TmFt
ZVRvTWV0cmljcykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJp
Y3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19u
YW1lJ10sIHJvd1snYWdncmVnYXRvcl9uYW1lJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J0NTUyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0FyaXRo
bWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0
aG1ldGljJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFt
ZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9k
ZXMnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1sn
d2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgYWRkIG1ldHJp
Y3MiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJB
bmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMpLnRoZW4oZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5xdWVy
eSgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNzIExFRlQgSk9JTiBhZ2dyZWdhdG9y
cyBPTiBtZXRyaWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3JfaWQgV0hFUkUgbWV0cmljX3Rlc3Qg
PSB0ZXN0X2lkJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAg
ICAgICAgbGV0IHRlc3ROYW1lVG9NZXRyaWNzID0ge307CisgICAgICAgICAgICByZXN1bHQucm93
cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShyb3dbJ3Rl
c3RfbmFtZSddIGluIHRlc3ROYW1lVG9NZXRyaWNzKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7CisgICAgICAgICAg
ICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0ucHVzaChbcm93WydtZXRy
aWNfbmFtZSddLCByb3dbJ2FnZ3JlZ2F0b3JfbmFtZSddXSk7CiAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
WydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYydd
LCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRp
YyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydE
dW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydNb2RpZnlOb2RlcyddLCBbWydU
aW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20nXSwgW1snVGltZScs
IG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
Wyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAgICAgICAgZG9uZSgpOwor
ICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGZ1bmN0aW9uIGZldGNoVGVz
dFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUsIGNhbGxiYWNrKSB7
Ci0gICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21l
dHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMsIHRlc3RfcnVucyBXSEVSRSBtZXRyaWNfdGVzdCA9
IHRlc3RfaWQgQU5EIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQnCi0gICAgICAgICAgICArICcg
QU5EIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNf
bmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24gKHJ1blJvd3MpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIHZhciBydW4gPSBydW5Sb3dzWzBdOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5k
RmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcnVuX2l0ZXJhdGlvbnMgV0hFUkUgaXRlcmF0aW9uX3J1
biA9ICQxIE9SREVSIEJZIGl0ZXJhdGlvbl9vcmRlcicsIFtydW5bJ3J1bl9pZCddXSwgZnVuY3Rp
b24gKGl0ZXJhdGlvblJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socnVuLCBp
dGVyYXRpb25Sb3dzKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICBmdW5jdGlvbiBmZXRjaFRl
c3RDb25maWcodGVzdE5hbWUsIG1ldHJpY05hbWUpCisgICAgeworICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KGBTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJp
Y3MsIHRlc3RfY29uZmlndXJhdGlvbnMKKyAgICAgICAgICAgIFdIRVJFIHRlc3RfaWQgPSBtZXRy
aWNfdGVzdCBBTkQgbWV0cmljX2lkID0gY29uZmlnX21ldHJpYworICAgICAgICAgICAgQU5EIHRl
c3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyYCwgW3Rlc3ROYW1lLCBtZXRyaWNOYW1l
XSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdC5yb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
b3dzWzBdOwogICAgICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgaXQoInNob3VsZCBzdG9yZSBy
dW4gdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3Jl
Z2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNP
ZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0
Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywgJ1RpbWUnLCBmdW5jdGlv
biAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1
blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0
aW9ucywgWwotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBp
dGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVl
OiA1MDAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBpdGVyYXRp
b25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTEwLCBpdGVyYXRpb25fcmVsYXRpdmVf
dGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25f
dmFsdWU6IDUyMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDMsIGl0
ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MzAsIGl0ZXJhdGlvbl9yZWxh
dGl2ZV90aW1lOiBudWxsfV0pOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gNTAwICsg
NTEwICsgNTIwICsgNTMwOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydy
dW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAw
ICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKLQotICAgICAgICAg
ICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScs
IGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRl
cmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9uX2dyb3VwOiAw
LCBpdGVyYXRpb25fdmFsdWU6IDEwMSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0
aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTAyLCBp
dGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9n
cm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDMsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBu
dWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQs
IGl0ZXJhdGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6
IDEwNCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA0LCBpdGVy
YXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTA1LCBpdGVyYXRpb25fcmVsYXRpdmVf
dGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46
IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDUsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9u
X3ZhbHVlOiAxMDYsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjog
NiwgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwNywgaXRlcmF0aW9uX3Jl
bGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA3LCBpdGVyYXRpb25fZ3JvdXA6IDEsIGl0
ZXJhdGlvbl92YWx1ZTogMTA4LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25f
b3JkZXI6IDgsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDksIGl0ZXJh
dGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogOSwgaXRlcmF0aW9uX2dyb3Vw
OiAxLCBpdGVyYXRpb25fdmFsdWU6IDExMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRl
cmF0aW9uX29yZGVyOiAxMCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDEx
MSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMSwgaXRlcmF0
aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMiwgaXRlcmF0aW9uX3JlbGF0aXZlX3Rp
bWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBy
dW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMiwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25f
dmFsdWU6IDExMywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAx
MywgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExNCwgaXRlcmF0aW9uX3Jl
bGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxNCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBp
dGVyYXRpb25fdmFsdWU6IDExNSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9XSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBzcXVhcmVTdW0gPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIg
dmFsdWUgPSAxMDE7IHZhbHVlIDw9IDExNTsgKyt2YWx1ZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN1bSArPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcXVh
cmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIHN1
bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIGZldGNoVGVzdFJ1bkl0ZXJh
dGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUpCisgICAgeworICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZldGNoVGVzdENv
bmZpZyh0ZXN0TmFtZSwgbWV0cmljTmFtZSkudGhlbihmdW5jdGlvbiAoY29uZmlnKSB7CisgICAg
ICAgICAgICByZXR1cm4gZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1snY29uZmlnX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocnVuKSB7Cisg
ICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0Um93cygncnVuX2l0ZXJhdGlvbnMnLCB7cnVuOiBy
dW5bJ2lkJ119LCB7c29ydEJ5OiAnb3JkZXInfSkudGhlbihmdW5jdGlvbiAoaXRlcmF0aW9ucykg
eworICAgICAgICAgICAgICAgIHJldHVybiB7cnVuOiBydW4sIGl0ZXJhdGlvbnM6IGl0ZXJhdGlv
bnN9OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworICAgIH0KKworICAgIGl0KCJzaG91
bGQgc3RvcmUgcnVuIHZhbHVlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFm
dGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3Jl
Z2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywgJ1RpbWUnKTsKKyAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQu
cnVuOworICAgICAgICAgICAgY29uc3QgcnVuSWQgPSBydW5bJ2lkJ107CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICAgICAge3J1
bjogcnVuSWQsIG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IDUwMCwgcmVsYXRpdmVfdGlt
ZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxLCBncm91cDog
bnVsbCwgdmFsdWU6IDUxMCwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAg
e3J1bjogcnVuSWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDUyMCwgcmVsYXRpdmVf
dGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91
cDogbnVsbCwgdmFsdWU6IDUzMCwgcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKKyAgICAgICAgICAg
IHZhciBzdW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEw
ICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKKyAgICAgICAgICAgIHJldHVybiBmZXRj
aFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5y
dW47CisgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgICAgICB7cnVu
OiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiAwLCB2YWx1ZTogMTAxLCByZWxhdGl2ZV90aW1lOiBu
dWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiAwLCB2
YWx1ZTogMTAyLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBy
dW5JZCwgb3JkZXI6IDIsIGdyb3VwOiAwLCB2YWx1ZTogMTAzLCByZWxhdGl2ZV90aW1lOiBudWxs
fSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiAwLCB2YWx1
ZTogMTA0LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDQsIGdyb3VwOiAwLCB2YWx1ZTogMTA1LCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
KyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDUsIGdyb3VwOiAxLCB2YWx1ZTog
MTA2LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwg
b3JkZXI6IDYsIGdyb3VwOiAxLCB2YWx1ZTogMTA3LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAg
ICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDcsIGdyb3VwOiAxLCB2YWx1ZTogMTA4
LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3Jk
ZXI6IDgsIGdyb3VwOiAxLCB2YWx1ZTogMTA5LCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDksIGdyb3VwOiAxLCB2YWx1ZTogMTEwLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDEwLCBncm91cDogMiwgdmFsdWU6IDExMSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAg
ICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxMSwgZ3JvdXA6IDIsIHZhbHVlOiAxMTIsIHJl
bGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjog
MTIsIGdyb3VwOiAyLCB2YWx1ZTogMTEzLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEzLCBncm91cDogMiwgdmFsdWU6IDExNCwgcmVs
YXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAx
NCwgZ3JvdXA6IDIsIHZhbHVlOiAxMTUsIHJlbGF0aXZlX3RpbWU6IG51bGx9XSk7CisgICAgICAg
ICAgICBsZXQgc3VtID0gMDsKKyAgICAgICAgICAgIGxldCBzcXVhcmVTdW0gPSAwOworICAgICAg
ICAgICAgZm9yIChsZXQgdmFsdWUgPSAxMDE7IHZhbHVlIDw9IDExNTsgKyt2YWx1ZSkgeworICAg
ICAgICAgICAgICAgIHN1bSArPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBzcXVhcmVTdW0gKz0g
dmFsdWUgKiB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0
KCJzaG91bGQgc3RvcmUgYWdncmVnYXRlZCBydW4gdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAg
ICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFn
Z3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygn
RHVtbXlQYWdlTG9hZGluZycsICdUaW1lJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewot
ICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAg
ICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbKDUwMCArIDEwMCkgLyAyLCAoNTEwICsg
MTEwKSAvIDIsICg1MjAgKyAxMjApIC8gMiwgKDUzMCArIDEzMCkgLyAyXTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBbCi0gICAgICAgICAgICAgICAg
ICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0
aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCBpdGVy
YXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRl
cmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBu
dWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCBpdGVyYXRpb25fcmVsYXRp
dmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjog
cnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRp
b25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzJdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVs
bH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJh
dGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4
cGVjdGVkVmFsdWVzWzNdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIHN1bSA9IGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAo
c3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDApOwotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25z
Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1f
Y2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVu
X3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0s
IHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHN0b3JlIGFnZ3JlZ2F0ZWQgcnVuIHZh
bHVlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRl
ckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucykudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygnRHVtbXlQYWdlTG9hZGluZycsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKKyAg
ICAgICAgICAgIGNvbnN0IHJ1bklkID0gcmVzdWx0LnJ1blsnaWQnXTsKKyAgICAgICAgICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDApIC8gMiwgKDUxMCArIDExMCkgLyAyLCAo
NTIwICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdC5pdGVyYXRpb25zLCBbCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAwLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCByZWxhdGl2
ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdy
b3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3JvdXA6IG51bGwsIHZh
bHVlOiBleHBlY3RlZFZhbHVlc1syXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAg
ICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAzLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVk
VmFsdWVzWzNdLCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOworICAgICAgICAgICAgY29uc3Qgc3Vt
ID0gZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBz
dW0gKyB2YWx1ZTsgfSwgMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2Nh
Y2hlJ10sIHN1bSAvIHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9u
IChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAg
aXQoInNob3VsZCBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0
ZWQgdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3Jl
Z2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNP
ZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0
Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScsIGZ1
bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVj
dGVkSXRlcmF0aW9ucyA9IFtdOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHNxdWFyZVN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHZhbHVlID0gaSArIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgRE9NTWVhbiA9
ICgoMTAgKyB2YWx1ZSkgKyAoMzAgKyB2YWx1ZSkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBleHBlY3RlZFZhbHVlID0gKERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkgLyAyOwotICAg
ICAgICAgICAgICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVkVmFsdWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7aXRlcmF0aW9u
X3J1bjogcnVuWydydW5faWQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRp
b25fb3JkZXI6IGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX2dyb3Vw
OiBNYXRoLmZsb29yKGkgLyA1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRp
b25fdmFsdWU6IGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRl
cmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIGV4cGVjdGVkSXRl
cmF0aW9ucyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFu
X2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0p
OwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRv
IGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0ZWQgdmFsdWVzIiwgZnVuY3Rpb24g
KGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMo
cmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdEdW1teUJl
bmNobWFyaycsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewor
ICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKKyAgICAgICAgICAgIGNvbnN0IHJ1
bklkID0gcnVuWydpZCddOworICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRJdGVyYXRpb25zID0g
W107CisgICAgICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAgICAgICAgIGxldCBzcXVhcmVTdW0g
PSAwOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgY29uc3QgdmFsdWUgPSBpICsgMTsKKyAgICAgICAgICAgICAgICBjb25zdCBET01N
ZWFuID0gKCgxMCArIHZhbHVlKSArICgzMCArIHZhbHVlKSkgLyAyOworICAgICAgICAgICAgICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWUgPSAoRE9NTWVhbiArIDEwMCArIHZhbHVlKSAvIDI7CisgICAg
ICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7CisgICAgICAgICAgICAgICAgc3F1YXJl
U3VtICs9IGV4cGVjdGVkVmFsdWUgKiBleHBlY3RlZFZhbHVlOworICAgICAgICAgICAgICAgIGV4
cGVjdGVkSXRlcmF0aW9ucy5wdXNoKHtydW46IHJ1bklkLCBvcmRlcjogaSwgZ3JvdXA6IE1hdGgu
Zmxvb3IoaSAvIDUpLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZSwgcmVsYXRpdmVfdGltZTogbnVsbH0p
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRl
cmF0aW9ucywgZXhwZWN0ZWRJdGVyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ21lYW5fY2FjaGUnXSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIHZh
ciByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjog
IjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQi
LAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRl
clBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFp
biBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgIlN1aXRlMSI6IHsKLSAg
ICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6
IFsxLCAyLCAzLCA0LCA1XSB9fQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgICAgICAidGVzdDIiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsi
VGltZSI6IHsgImN1cnJlbnQiOiBbNiwgNywgOCwgOSwgMTBdIH19CisgICAgZnVuY3Rpb24gcmVw
b3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIw
MTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKKyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJz
b21lQnVpbGRlciIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29y
ZCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisgICAgICAgICAg
ICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgIlN1aXRlMSI6IHsKKyAgICAgICAgICAgICAg
ICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QxIjogeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6
IFsxLCAyLCAzLCA0LCA1XSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0MiI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbNiwgNywgOCwgOSwgMTBdIH19CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIlN1aXRlMiI6IHsKLSAgICAgICAg
ICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxMSwg
MTIsIDEzLCAxNCwgMTVdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJU
aW1lIjogeyAiY3VycmVudCI6IFsxNiwgMTcsIDE4LCAxOSwgMjBdIH19CisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICAiU3VpdGUyIjogeworICAgICAgICAgICAgICAgICAgICAi
dGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExLCAx
MiwgMTMsIDE0LCAxNV0gfX0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAidGVzdDIiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1l
dHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzE2LCAxNywgMTgsIDE5LCAyMF0gfX0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOworICAgICAgICB9OworICAgIH0K
IAotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBzYW1lIHN1YnRl
c3QgbmFtZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdh
dG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAg
IH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5mYWlsKGVycm9y
LCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwor
ICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBzYW1lIHN1YnRlc3Qg
bmFtZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5nQnVpbGRl
ckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAg
IH0pOwogCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJldXNlIHRoZSBzYW1lIHRlc3Qgcm93
cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhy
ZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICog
RlJPTSB0ZXN0cycsIFtdLCBmdW5jdGlvbiAodGVzdFJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodGVzdFJvd3MubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICAgICBy
ZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLmJ1aWxkTnVtYmVyID0gIjEyNSI7Ci0gICAgICAgICAg
ICAgICAgICAgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZS5idWlsZFRpbWUgPSAiMjAxMy0wMi0y
OFQxMjoxNzoyNC4xIjsKLQotICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gdGVzdHMnLCBbXSwgZnVuY3Rpb24gKHRlc3RSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdFJvd3MubGVuZ3RoLCA2KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJl
dXNlIHRoZSBzYW1lIHRlc3Qgcm93cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9y
dEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5h
bWUoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5k
YXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
dGVzdHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAg
ICAgICAgICAgbGV0IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKKyAg
ICAgICAgICAgIG5ld1JlcG9ydC5idWlsZE51bWJlciA9ICIxMjUiOworICAgICAgICAgICAgbmV3
UmVwb3J0LmJ1aWxkVGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtu
ZXdSZXBvcnRdKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHRlc3RzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSA9IFt7
CisgICAgY29uc3QgcmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSA9IHsKICAgICAgICAgImJ1aWxk
TnVtYmVyIjogIjEyMyIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjow
My4zODgzMDQiLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLApAQCAtNjE4
LDM3ICs2NTMsMjkgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0sCi0gICAgICAgIH19XTsKKyAgICAgICAgfX07CiAKLSAgICBpdCgic2hv
dWxkIGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2luZ2xlIHZhbHVlIHJlc3VsdHMiLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0
V2l0aFNhbWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU2luZ2xlVmFsdWUsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9IGNhdGNoIChl
cnJvcikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAg
IGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QxJywgJ0NvbWJpbmVkJywgZnVu
Y3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuWydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCAzKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCAzKTsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgOSk7
Ci0gICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3N1
aXRlJywgJ0NvbWJpbmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlvbl9jb3VudF9jYWNo
ZSddLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9t
ZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsncnVuX3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBi
ZSBhYmxlIHRvIGFkZCBhIHJlcG9ydCB3aXRoIHNpbmdsZSB2YWx1ZSByZXN1bHRzIiwgZnVuY3Rp
b24gKGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRv
cnMocmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdDEnLCAnQ29t
YmluZWQnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAg
ICBjb25zdCBydW4gPSByZXN1bHQucnVuOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
aXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnbWVhbl9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3N1bV9j
YWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgOSk7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1l
dHJpYygnc3VpdGUnLCAnQ29tYmluZWQnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVz
dWx0KSB7CisgICAgICAgICAgICBjb25zdCBydW4gPSByZXN1bHQucnVuOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3N1bV9jYWNoZSddLCA1KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAg
ICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIHZhciByZXBvcnRXaXRoU2FtZVZhbHVl
UGFpcnMgPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycyA9IHsKICAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0y
OFQxMDoxMjowMy4zODgzMDQiLAogICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LApAQCAtNjU5LDEwMSArNjg2LDg4IEBACiAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjog
eyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1tbMCwgNF0sIFsxMDAsIDVdLCBbMjA1LCAzXV1d
IH19CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgIH0sCi0gICAgICAgIH1dOworICAg
ICAgICB9OwogCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGFkZCBhIHJlcG9ydCB3aXRoIChy
ZWxhdGl2ZSB0aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1
aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNh
bWVWYWx1ZVBhaXJzLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICB0cnkg
ewotICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7
Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVk
J10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0
cmljKCd0ZXN0JywgJ0ZyYW1lUmF0ZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlvbl9jb3VudF9j
YWNoZSddLCAzKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21l
YW5fY2FjaGUnXSwgNCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1
bl9zdW1fY2FjaGUnXSwgMTIpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWwotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJh
dGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVs
bCwgaXRlcmF0aW9uX3ZhbHVlOiA0LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMH0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRl
cjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUsIGl0ZXJhdGlv
bl9yZWxhdGl2ZV90aW1lOiAxMDB9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlv
bl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwg
aXRlcmF0aW9uX3ZhbHVlOiAzLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMjA1fV0pOwotICAg
ICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGFkZCBh
IHJlcG9ydCB3aXRoIChyZWxhdGl2ZSB0aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5jdGlvbiAoZG9u
ZSkgeworICAgICAgICByZXBvcnRBZnRlckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBv
cnRXaXRoU2FtZVZhbHVlUGFpcnMpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3QnLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3Qg
cnVuID0gcmVzdWx0LnJ1bjsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ2l0ZXJhdGlv
bl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5f
Y2FjaGUnXSwgNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydzdW1fY2FjaGUnXSwg
MTIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAx
NiArIDI1ICsgOSk7CisKKyAgICAgICAgICAgIGNvbnN0IHJ1bklkID0gcnVuWydpZCddOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAg
ICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiA0LCByZWxh
dGl2ZV90aW1lOiAwfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdy
b3VwOiBudWxsLCB2YWx1ZTogNSwgcmVsYXRpdmVfdGltZTogMTAwfSwKKyAgICAgICAgICAgICAg
ICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogMywgcmVsYXRpdmVf
dGltZTogMjA1fV0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25l
KTsKICAgICB9KTsKIAotICAgIHZhciByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0cyA9IFsK
LSAgICAgICAgW3sKKyAgICBjb25zdCByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0cyA9IFsK
KyAgICAgICAgewogICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICAg
ICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAogICAgICAgICAgICAgImJ1aWxk
ZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwK
ICAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1
cnJlbnQiOiAzfX19fQotICAgICAgICB9XSwKLSAgICAgICAgW3sKKyAgICAgICAgfSwKKyAgICAg
ICAgewogICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCiAgICAgICAgICAgICAiYnVp
bGRUaW1lIjogIjIwMTMtMDItMjhUMTE6MzE6MjEiLAogICAgICAgICAgICAgImJ1aWxkZXJOYW1l
IjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKICAgICAg
ICAgICAgICJ0ZXN0cyI6IHsidGVzdDIiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1cnJlbnQi
OiAzfX19fQotICAgICAgICB9XSwKLSAgICAgICAgW3sKKyAgICAgICAgfSwKKyAgICAgICAgewog
ICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNSIsCiAgICAgICAgICAgICAiYnVpbGRUaW1l
IjogIjIwMTMtMDItMjhUMTI6NDU6MzQiLAogICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNv
bWVCdWlsZGVyIiwKICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3Jk
IiwKICAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKICAgICAgICAgICAg
ICJ0ZXN0cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1cnJlbnQiOiAzfX19
fQotICAgICAgICB9XSwKKyAgICAgICAgfSwKICAgICBdOwogCi0gICAgZnVuY3Rpb24gZmV0Y2hU
ZXN0Q29uZmlnKHRlc3ROYW1lLCBtZXRyaWNOYW1lLCBjYWxsYmFjaykgewotICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNzLCB0ZXN0X2Nv
bmZpZ3VyYXRpb25zIFdIRVJFIHRlc3RfaWQgPSBtZXRyaWNfdGVzdCBBTkQgbWV0cmljX2lkID0g
Y29uZmlnX21ldHJpYycKLSAgICAgICAgICAgICsgJyBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1l
dHJpY19uYW1lID0gJDInLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVdLCBmdW5jdGlvbiAocnVuUm93
cykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgY2FsbGJhY2socnVuUm93c1swXSk7CisgICAgaXQoInNob3VsZCB1cGRh
dGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggbmV3
IHJ1bnMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKKyAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygn
dGVzdDEnLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChvcmlnaW5hbENvbmZp
ZykgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXV0pLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RDb25maWcoJ3Rl
c3QxJywgJ1RpbWUnKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGNvbmZpZykgewor
ICAgICAgICAgICAgICAgIGFzc2VydChvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9t
b2RpZmllZCddIGluc3RhbmNlb2YgRGF0ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGNvbmZp
Z1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddIGluc3RhbmNlb2YgRGF0ZSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0KCtvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmll
ZCddIDwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAgICAgICAgICAg
ICAgICBkb25lKCk7CiAgICAgICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIHVw
ZGF0ZSB0aGUgbGFzdCBtb2RpZmllZCBkYXRlIG9mIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBu
ZXcgcnVucyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRzVXBkYXRp
bmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywg
J1RpbWUnLCBmdW5jdGlvbiAob3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAg
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzJd
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAg
ZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZpZykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbCgrb3JpZ2luYWxDb25maWdb
J2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9t
b2RpZmllZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0p
LmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCB1cGRhdGUgdGhlIGxhc3Qg
bW9kaWZpZWQgZGF0ZSBvZiB1bnJlbGF0ZWQgdGVzdCBjb25maWd1cmF0aW9ucyIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sw
XSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAg
ICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnLCBmdW5jdGlvbiAo
b3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0
ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZpZykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9k
aWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAg
aXQoInNob3VsZCBub3QgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2YgdW5yZWxhdGVk
IHRlc3QgY29uZmlndXJhdGlvbnMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdKS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGZl
dGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
IChvcmlnaW5hbENvbmZpZykgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRU
ZXN0c1sxXV0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOworICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoY29uZmlnKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29u
ZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQoY29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10gaW5z
dGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29u
ZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIH0pOwpJbmRl
eDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9u
LW9wZXJhdGlvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMJKHJldmlzaW9uIDApCisr
KyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisKK2NvbnN0IGNy
eXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOworCitmdW5jdGlvbiBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydCkKK3sKKyAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLmluc2VydCgnYnVp
bGRlcnMnLCB7CisgICAgICAgIG5hbWU6IHJlcG9ydC5idWlsZGVyTmFtZSwKKyAgICAgICAgcGFz
c3dvcmRfaGFzaDogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShyZXBvcnQuYnVp
bGRlclBhc3N3b3JkKS5kaWdlc3QoJ2hleCcpCisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGFkZFNs
YXZlRm9yUmVwb3J0KHJlcG9ydCkKK3sKKyAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgp
Lmluc2VydCgnYnVpbGRfc2xhdmVzJywgeworICAgICAgICBuYW1lOiByZXBvcnQuc2xhdmVOYW1l
LAorICAgICAgICBwYXNzd29yZF9oYXNoOiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBk
YXRlKHJlcG9ydC5zbGF2ZVBhc3N3b3JkKS5kaWdlc3QoJ2hleCcpCisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKQoreworICAgIGJlZm9yZUVhY2go
ZnVuY3Rpb24gKCkgeworICAgICAgICBUZXN0U2VydmVyLmRhdGFiYXNlKCkuY29ubmVjdCh7a2Vl
cEFsaXZlOiB0cnVlfSk7CisgICAgfSk7CisKKyAgICBhZnRlckVhY2goZnVuY3Rpb24gKCkgewor
ICAgICAgICBUZXN0U2VydmVyLmRhdGFiYXNlKCkuZGlzY29ubmVjdCgpOworICAgIH0pOworfQor
CitmdW5jdGlvbiBzdWJtaXRSZXBvcnQocmVwb3J0KQoreworICAgIHJldHVybiBUZXN0U2VydmVy
LmRhdGFiYXNlKCkuaW5zZXJ0KCdidWlsZGVycycsIHsKKyAgICAgICAgbmFtZTogcmVwb3J0WzBd
LmJ1aWxkZXJOYW1lLAorICAgICAgICBwYXNzd29yZF9oYXNoOiBjcnlwdG8uY3JlYXRlSGFzaCgn
c2hhMjU2JykudXBkYXRlKHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpLmRpZ2VzdCgnaGV4JykK
KyAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydCk7CisgICAgfSk7Cit9CisK
K2lmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKSB7CisgICAgbW9kdWxlLmV4cG9ydHMu
YWRkQnVpbGRlckZvclJlcG9ydCA9IGFkZEJ1aWxkZXJGb3JSZXBvcnQ7CisgICAgbW9kdWxlLmV4
cG9ydHMuYWRkU2xhdmVGb3JSZXBvcnQgPSBhZGRTbGF2ZUZvclJlcG9ydDsKKyAgICBtb2R1bGUu
ZXhwb3J0cy5jb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0ID0gY29ubmVjdFRvRGF0YWJhc2VJ
bkV2ZXJ5VGVzdDsKKyAgICBtb2R1bGUuZXhwb3J0cy5zdWJtaXRSZXBvcnQgPSBzdWJtaXRSZXBv
cnQ7Cit9CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZXN0LXNlcnZlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcwkocmV2aXNpb24gMTk5MTUw
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiBsZXQgRGF0YWJhc2Ug
PSByZXF1aXJlKCcuLi8uLi90b29scy9qcy9kYXRhYmFzZS5qcycpOwogbGV0IFJlbW90ZUFQSSA9
IHJlcXVpcmUoJy4uLy4uL3Rvb2xzL2pzL3JlbW90ZS5qcycpLlJlbW90ZUFQSTsKIAotbGV0IFRl
c3RTZXJ2ZXIgPSAobmV3IGNsYXNzIFRlc3RTZXJ2ZXIgeworY2xhc3MgVGVzdFNlcnZlciB7CiAg
ICAgY29uc3RydWN0b3IoKQogICAgIHsKICAgICAgICAgdGhpcy5fcGlkRmlsZSA9IG51bGw7CkBA
IC0yNDEsOCArMjQxLDEwIEBACiAgICAgICAgICAgICByZXR1cm4gc2VsZi5zdG9wKCk7CiAgICAg
ICAgIH0pOwogICAgIH0KLX0pOworfQogCitpZiAoIWdsb2JhbC5UZXN0U2VydmVyKQorICAgIGds
b2JhbC5UZXN0U2VydmVyID0gbmV3IFRlc3RTZXJ2ZXI7CiAKIGlmICh0eXBlb2YgbW9kdWxlICE9
ICd1bmRlZmluZWQnKQotICAgIG1vZHVsZS5leHBvcnRzID0gVGVzdFNlcnZlcjsKKyAgICBtb2R1
bGUuZXhwb3J0cyA9IGdsb2JhbC5UZXN0U2VydmVyOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCShyZXZpc2lvbiAxOTkxNTApCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJh
YmxlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw3ICsxOCw3IEBACiB9CiAKIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewotICAgIHRoaXMudGltZW91
dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOwogICAgIFRlc3RTZXJ2ZXIuaW5qZWN0
KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90ZXN0cy9hZG1pbi1wbGF0Zm9ybXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FkbWluLXBsYXRmb3Jtcy5qcwkocmV2aXNpb24gMTk5
MTUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FkbWluLXBsYXRmb3Jtcy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMSwxMjIgKzAsMCBAQAotZGVzY3JpYmUoIi9hZG1pbi9wbGF0
Zm9ybXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9y
bXMgPSBbCi0gICAgewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCi0gICAgICAgICJi
dWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQwOTowMTo0NyIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6
ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3Jk
IiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCi0gICAgICAgICJ0ZXN0cyI6IHsi
dGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzEsIDEsIDFd
LCBbMSwgMSwgMV1dIH0gfSB9IH0sCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJidWlsZE51bWJl
ciI6ICIzMDAxIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwK
LSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQ
YXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0
ZSI6IHsgImN1cnJlbnQiOiBbWzIsIDIsIDJdLCBbMiwgMiwgMl1dIH0sICJDb21iaW5lZCI6IHsg
ImN1cnJlbnQiOiBbWzMsIDMsIDNdLCBbMywgMywgM11dIH19IH0gfSwKLSAgICB9LAotICAgIHsK
LSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAotICAgICAgICAiYnVpbGRUaW1lIjogIjIw
MTMtMDItMjhUMTI6NTY6MjYiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJw
bGF0Zm9ybSI6ICJUcnVuayBNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogeyJ0ZXN0
IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbNCwgNCwgNF0sIFs0
LCA0LCA0XV0gfSB9IH0gfQotICAgIH1dOwotCi0gICAgZnVuY3Rpb24gc3VibWl0UmVwb3J0KHJl
cG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8g
YnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQx
LCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9y
dFswXS5idWlsZGVyUGFzc3dvcmQpXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJzaG91bGQg
ZGVsZXRlIHRoZSBwbGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVyIG9uZSIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0
Zm9ybXMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVD
VCAqIEZST00gcGxhdGZvcm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24g
KG9sZFBsYXRmb3JtcykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9y
bXMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1z
WzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9u
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1syXVsncGxhdGZv
cm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgIGh0dHBQ
b3N0KCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xk
UGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRQbGF0Zm9ybXNb
Ml1bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcGxhdGZvcm1zIE9SREVS
IGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24gKG5ld1BsYXRmb3JtcykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXMsIFtvbGRQbGF0
Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1syXV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQg
bW92ZSB0ZXN0IHJ1bnMgZnJvbSB0aGUgbWVyZ2VkIHBsYXRmb3JtIHRvIHRoZSBkZXN0aW5hdGlv
biBwbGF0Zm9ybSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNG
b3JEaWZmZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBxdWVy
eUZvclJ1bnMgPSAnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMsIHRlc3RfY29uZmlndXJhdGlvbnMs
IHBsYXRmb3JtcyBXSEVSRSBydW5fY29uZmlnID0gY29uZmlnX2lkIEFORCBjb25maWdfcGxhdGZv
cm0gPSBwbGF0Zm9ybV9pZCBPUkRFUiBieSBydW5fbWVhbl9jYWNoZSc7Ci0gICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChvbGRUZXN0UnVucykg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsncGxhdGZvcm1fbmFt
ZSddLCAnTWF2ZXJpY2tzJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RS
dW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSdd
LCAxMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydwbGF0
Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1v
dW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNb
M11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgICAgIGh0dHBQb3N0KCcvYWRt
aW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xkVGVzdFJ1bnNb
MV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5zWzNdWydwbGF0Zm9y
bV9pZCddfSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChuZXdUZXN0UnVucykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zLmxlbmd0
aCwgNCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNb
MF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdN
YXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0
UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5f
aWQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNb
MV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSdd
LCAxMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNb
Ml1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10sICdU
cnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1
bnNbM11bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5f
c3VtX2NhY2hlJ10sIDI0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZydd
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBjb25maWd1cmF0aW9ucyBm
cm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWyd0ZXN0
cyddID0geyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiYmFzZWxpbmUiOiBb
WzEsIDEsIDFdLCBbMSwgMSwgMV1dIH0gfSB9IH07Ci0gICAgICAgIHN1Ym1pdFJlcG9ydChyZXBv
cnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIg
cXVlcnlGb3JDb25maWcgPSAnU0VMRUNUICogZnJvbSB0ZXN0X2NvbmZpZ3VyYXRpb25zLCBwbGF0
Zm9ybXMsIHRlc3RfbWV0cmljcycKLSAgICAgICAgICAgICAgICArICcgd2hlcmUgY29uZmlnX3Bs
YXRmb3JtID0gcGxhdGZvcm1faWQgYW5kIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQgYW5kIHBs
YXRmb3JtX25hbWUgaW4gKCQxLCAkMikgb3JkZXIgYnkgY29uZmlnX2lkJzsKLSAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzRm9yRGlmZmVyZW50UGxh
dGZvcm1zWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzJdWydw
bGF0Zm9ybSddXSwgZnVuY3Rpb24gKGNvbmZpZ3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29uZmlncy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNb
MF1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBd
WydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JE
aWZmZXJlbnRQbGF0Zm9ybXNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50
Jyk7Ci0gICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydh
Y3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBjb25maWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGlu
YXRpb24nOiBjb25maWdzWzFdWydwbGF0Zm9ybV9pZCddfSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yQ29uZmln
LCBbcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c0Zv
ckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXV0sIGZ1bmN0aW9uIChuZXdDb25maWdz
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlncy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3Nb
MF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxh
dGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmln
c1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ3Bs
YXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0n
XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsn
bWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi19KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hZG1pbi1y
ZXByb2Nlc3MtcmVwb3J0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LmpzCShyZXZpc2lvbiAxOTkxNTApCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMSw3NiArMCwwIEBACi1kZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHNpbXBsZVJlcG9ydCA9IFt7Ci0gICAg
ICAgICJidWlsZE51bWJlciI6ICIxOTg2IiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAy
LTI4VDEwOjEyOjAzIiwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAg
ICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZv
cm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAg
ICAidGVzdCI6IHsKLSAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6
IHsgImN1cnJlbnQiOiBbWzEsIDIsIDNdLCBbNCwgNSwgNl1dIH19Ci0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIH0sCi0gICAgICAgIH1dOwotCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRl
cihyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJ
TlRPIGJ1aWxkZXJzIChidWlsZGVyX25hbWUsIGJ1aWxkZXJfcGFzc3dvcmRfaGFzaCkgdmFsdWVz
ICgkMSwgJDIpJywKLSAgICAgICAgICAgIFtyZXBvcnRbMF0uYnVpbGRlck5hbWUsIHNoYTI1Nihy
ZXBvcnRbMF0uYnVpbGRlclBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgi
c2hvdWxkIGFkZCBidWlsZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihzaW1w
bGVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoYnVpbGRSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUm93c1swXVsnYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBb
XSwgZnVuY3Rpb24gKHJlcG9ydFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvcnRSb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3J0Um93c1swXVsncmVwb3J0X2J1aWxkX251bWJlciddLCAxOTg2KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRz
IFNFVCByZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHM7IFNFTEVDVCAqIEZS
T00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSb3dzLmxlbmd0aCwgMCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydElkID0gcmVwb3J0Um93c1swXVsncmVwb3J0X2lk
J107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vz
cy1yZXBvcnQ/cmVwb3J0PScgKyByZXBvcnRJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3Nb
MF1bJ2J1aWxkX251bWJlciddLCAxOTg2KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG5vdCBk
dXBsaWNhdGUgdGhlIHJlcHJvY2Vzc2VkIHJlcG9ydCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
YWRkQnVpbGRlcihzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKG9yaWdpbmFsUmVwcm90Um93
cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3JpZ2luYWxSZXByb3RSb3dz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFU
RSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnLCBb
XSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FkbWlu
L3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PScgKyBvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9y
dF9pZCddLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyZXBvcnRS
b3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Um93
c1swXVsncmVwb3J0X2NvbW1pdHRlZF9hdCddID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwb3J0Um93c1swXVsncmVwb3J0X2NvbW1pdHRlZF9hdCddID0gbnVsbDsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFs
UmVwcm90Um93c1swXVsncmVwb3J0X2J1aWxkJ10sIHJlcG9ydFJvd3NbMF1bJ3JlcG9ydF9idWls
ZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RSb3dz
WzBdWydyZXBvcnRfYnVpbGQnXSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcG9ydFJvd3NbMF1bJ3JlcG9ydF9idWlsZCddID0gbnVsbDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvcnRSb3dzLCBvcmlnaW5hbFJl
cHJvdFJvd3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKSW5kZXg6IFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LmpzCShy
ZXZpc2lvbiAxOTkxNTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYXBpLW1l
YXN1cmVtZW50LXNldC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0MDQgKzAsMCBAQAotZGVzY3Jp
YmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpb24gKCkgewotICAgIGZ1bmN0aW9uIGFk
ZEJ1aWxkZXIocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJ
TlNFUlQgSU5UTyBidWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gp
IHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBz
aGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYyhwbGF0Zm9ybU5hbWUsIG1ldHJpY05h
bWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
cGxhdGZvcm1zIFdIRVJFIHBsYXRmb3JtX25hbWUgPSAkMScsIFtwbGF0Zm9ybU5hbWVdLCBmdW5j
dGlvbiAocGxhdGZvcm1Sb3dzKSB7Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgKiBGUk9NIHRlc3RfbWV0cmljcyBXSEVSRSBtZXRyaWNfbmFtZSA9ICQxJywgW21ldHJpY05h
bWVdLCBmdW5jdGlvbiAobWV0cmljUm93cykgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHBs
YXRmb3JtUm93c1swXVsncGxhdGZvcm1faWQnXSwgbWV0cmljUm93c1swXVsnbWV0cmljX2lkJ10p
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZv
cm1hdChmb3JtYXRNYXAsIHJvdykgewotICAgICAgICB2YXIgcmVzdWx0ID0ge307Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0TWFwLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAg
ICB2YXIga2V5ID0gZm9ybWF0TWFwW2ldOwotICAgICAgICAgICAgaWYgKGtleSA9PSAnaWQnIHx8
IGtleSA9PSAnYnVpbGQnIHx8IGtleSA9PSAnYnVpbGRlcicpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICByZXN1bHRba2V5XSA9IHJvd1tpXTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZhciBjbHVzdGVyU3RhcnQgPSBjb25m
aWcoJ2NsdXN0ZXJTdGFydCcpOwotICAgIGNsdXN0ZXJTdGFydCA9ICtEYXRlLlVUQyhjbHVzdGVy
U3RhcnRbMF0sIGNsdXN0ZXJTdGFydFsxXSAtIDEsIGNsdXN0ZXJTdGFydFsyXSwgY2x1c3RlclN0
YXJ0WzNdLCBjbHVzdGVyU3RhcnRbNF0pOwotCi0gICAgdmFyIGNsdXN0ZXJTaXplID0gY29uZmln
KCdjbHVzdGVyU2l6ZScpOwotICAgIHZhciBEQVkgPSAyNCAqIDM2MDAgKiAxMDAwOwotICAgIHZh
ciBZRUFSID0gMzY1LjI0ICogREFZOwotICAgIHZhciBNT05USCA9IDMwICogREFZOwotICAgIGNs
dXN0ZXJTaXplID0gY2x1c3RlclNpemVbMF0gKiBZRUFSICsgY2x1c3RlclNpemVbMV0gKiBNT05U
SCArIGNsdXN0ZXJTaXplWzJdICogREFZOwotCi0gICAgZnVuY3Rpb24gY2x1c3RlclRpbWUoaW5k
ZXgpIHsgcmV0dXJuIG5ldyBEYXRlKGNsdXN0ZXJTdGFydCArIGNsdXN0ZXJTaXplICogaW5kZXgp
OyB9Ci0KLSAgICB2YXIgcmVwb3J0V2l0aEJ1aWxkVGltZSA9IFt7Ci0gICAgICAgICJidWlsZE51
bWJlciI6ICIxMjMiLAotICAgICAgICAiYnVpbGRUaW1lIjogY2x1c3RlclRpbWUoNy44KS50b0lT
T1N0cmluZygpLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAg
ICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6
ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgIlN1aXRl
IjogewotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgInRl
c3QxIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJj
dXJyZW50IjogWzEsIDIsIDMsIDQsIDVdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgfX1dOwotICAgIHJlcG9ydFdp
dGhCdWlsZFRpbWUuc3RhcnRUaW1lID0gK2NsdXN0ZXJUaW1lKDcpOwotCi0gICAgdmFyIHJlcG9y
dFdpdGhSZXZpc2lvbiA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxMjQiLAotICAgICAg
ICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTU6MzQ6NTEiLAotICAgICAgICAicmV2aXNpb25z
IjogewotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNpb24i
OiAiMTQ0MDAwIiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogY2x1c3RlclRpbWUoMTAu
MykudG9JU09TdHJpbmcoKSwKLSAgICAgICAgICAgIH0sCi0gICAgICAgIH0sCi0gICAgICAgICJi
dWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAg
ICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAiU3VpdGUiOiB7Ci0gICAgICAgICAgICAgICAg
InRlc3RzIjogewotICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTEsIDEyLCAxMywg
MTQsIDE1XSB9fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSwKLSAgICAgICAgfX1dOwotCi0gICAgdmFyIHJlcG9ydFdpdGhOZXdSZXZpc2lv
biA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAotICAgICAgICAiYnVpbGRUaW1l
IjogIjIwMTMtMDItMjhUMjE6NDU6MTciLAotICAgICAgICAicmV2aXNpb25zIjogewotICAgICAg
ICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTYwNjA5IiwK
LSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogY2x1c3RlclRpbWUoMTIuMSkudG9JU09TdHJp
bmcoKQotICAgICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjog
InNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6
IHsKLSAgICAgICAgICAgICJTdWl0ZSI6IHsKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0g
ICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJt
ZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxNiwgMTcsIDE4LCAxOSwgMjBdIH19Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAot
ICAgICAgICB9fV07Ci0KLSAgICB2YXIgcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uID0gW3sKLSAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNiIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQyMzowNzoyNSIsCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiV2Vi
S2l0IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMzc3OTMiLAotICAgICAgICAg
ICAgICAgICJ0aW1lc3RhbXAiOiBjbHVzdGVyVGltZSgxLjgpLnRvSVNPU3RyaW5nKCkKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgIH0sCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAg
InBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAg
ICAgICAiU3VpdGUiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAg
ICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsi
VGltZSI6IHsgImN1cnJlbnQiOiBbMjEsIDIyLCAyMywgMjQsIDI1XSB9fQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgfX1d
OwotCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiBwbGF0Zm9ybSBJRCBpcyBtaXNzaW5nIiwg
ZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRX
aXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09L
Jyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlv
bicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9tZXRyaWM9JyArIG1ldHJp
Y0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAn
SW52YWxpZE1ldHJpYycpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwot
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3Qgd2hl
biBtZXRyaWMgSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRl
cihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIw
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVz
cG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZv
cm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlk
LCBtZXRyaWNJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9u
c2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
KTsKLQotICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcGxhdGZvcm0gbmFtZSIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24n
LCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAgICAg
ICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRm
b3JtSWQgKyAnYSZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnSW52YWxpZFBsYXRmb3JtJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0K
LSAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRU
aW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAg
ICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1l
JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCAr
ICcmbWV0cmljPScgKyBtZXRyaWNJZCArICdiJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAg
IGl0KCJzaG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBhIHJlcG9ydGVkIHZhbHVlIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVp
bGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0g
ICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdU
aW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1J
ZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBw
YXJlc2RSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIg
YnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUn
XSkpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5r
ZXlzKHBhcmVzZFJlc3VsdCkuc29ydCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn
Y2x1c3RlckNvdW50JywgJ2NsdXN0ZXJTaXplJywgJ2NsdXN0ZXJTdGFydCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnLCAnZWxhcHNlZFRpbWUnLCAnZW5k
VGltZScsICdmb3JtYXRNYXAnLCAnbGFzdE1vZGlmaWVkJywgJ3N0YXJ0VGltZScsICdzdGF0dXMn
XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0Wydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFy
ZXNkUmVzdWx0WydjbHVzdGVyQ291bnQnXSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHBhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10sIFsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnaWQnLCAnbWVhbicsICdpdGVyYXRpb25Db3VudCcsICdzdW0nLCAn
c3F1YXJlU3VtJywgJ21hcmtlZE91dGxpZXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdyZXZpc2lvbnMnLCAnY29tbWl0VGltZScsICdidWlsZCcsICdidWlsZFRpbWUnLCAnYnVpbGRO
dW1iZXInLCAnYnVpbGRlciddKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHBhcmVzZFJlc3VsdFsnc3RhcnRUaW1lJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRU
aW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlb2YocGFyZXNkUmVzdWx0
WydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICdsYXN0TW9kaWZpZWQgdGltZSBzaG91bGQg
YmUgYSBudW1lcmljJyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoT2JqZWN0LmtleXMocGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddKSwgWydjdXJyZW50
J10pOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFJvd3MgPSBwYXJlc2RS
ZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzWzBdLmxlbmd0aCwgcGFyZXNkUmVzdWx0
Wydmb3JtYXRNYXAnXS5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChmb3JtYXQocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0p
LCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdW06IDE1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxdWFyZVN1bTogNTUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGllcjogZmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnVpbGROdW1iZXI6ICcxMjMnfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25l
KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJldHVy
biByZXR1cm4gdGhlIHJpZ2h0IElEcyBmb3IgbWVhc3VyZW1lbnQsIGJ1aWxkLCBhbmQgYnVpbGRl
ciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1l
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVw
b3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWlu
IExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucycs
IFtdLCBmdW5jdGlvbiAocnVucykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtZWFzdXJl
bWVudElkID0gcnVuc1swXVsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoYnVpbGRz
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBidWlsZElkID0gYnVpbGRz
WzBdWydidWlsZF9pZCddOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRlcnMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkZXJzKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVpbGRlcklk
ID0gYnVpbGRlcnNbMF1bJ2J1aWxkZXJfaWQnXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9y
bUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlc2RSZXN1bHQgPSBKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJy
ZW50J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBtZWFzdXJlbWVudCA9IHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCdd
WzBdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBh
cmVzZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsnZm9ybWF0TWFw
J10uaW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsnZm9y
bWF0TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsn
Zm9ybWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAg
ICBmdW5jdGlvbiBwb3N0UmVwb3J0cyhyZXBvcnRzLCBjYWxsYmFjaykgewotICAgICAgICBpZiAo
IXJlcG9ydHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7Ci0KLSAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNbMF0sIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgIHBvc3RSZXBvcnRzKHJlcG9ydHMu
c2xpY2UoMSksIGNhbGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
cXVlcnlQbGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KHBsYXRmb3JtTmFtZSwgbWV0cmlj
TmFtZSwgcmVwb3NpdG9yeU5hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5UGxhdGZvcm1B
bmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwg
bWV0cmljSWQpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
cmVwb3NpdG9yaWVzIFdIRVJFIHJlcG9zaXRvcnlfbmFtZSA9ICQxJywgW3JlcG9zaXRvcnlOYW1l
XSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhwbGF0Zm9ybUlk
LCBtZXRyaWNJZCwgcm93c1swXVsncmVwb3NpdG9yeV9pZCddKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIG9yZGVyIHJlc3VsdHMgYnkgY29t
bWl0IHRpbWUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1
aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdp
dGhCdWlsZFRpbWUsIHJlcG9ydFdpdGhSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExp
b24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJl
cG9zaXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNl
ZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
LQotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVw
b3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciByZXZpc2lvblRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhSZXZpc2lvblswXVsn
cmV2aXNpb25zJ11bJ1dlYktpdCddWyd0aW1lc3RhbXAnXSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHJldmlzaW9uQnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNp
b25bMF1bJ2J1aWxkVGltZSddKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJy
ZW50Um93cyA9IHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChwYXJzZWRS
ZXN1bHRbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93c1swXSksIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lYW46IDEzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9u
Q291bnQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdW06IDY1LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3F1YXJlU3VtOiA4NTUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dmlzaW9uczogW1sxLCByZXBvc2l0b3J5SWQsICcxNDQwMDAnLCByZXZpc2lvblRpbWVdXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IHJldmlzaW9uVGltZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogcmV2aXNpb25CdWlsZFRpbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBidWlsZE51bWJlcjogJzEyNCcgfSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChwYXJzZWRSZXN1bHRbJ2Zvcm1h
dE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZWFuOiAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bTogMTUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3F1YXJlU3VtOiA1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJr
ZWRPdXRsaWVyOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbnM6
IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IGJ1aWxkVGltZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZFRpbWU6IGJ1aWxkVGltZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBidWlsZE51bWJlcjogJzEyMycgfSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIH0pOyAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGJ1aWxkTnVtYmVycyhwYXJzZWRSZXN1bHQs
IGNvbmZpZykgewotICAgICAgICByZXR1cm4gcGFyc2VkUmVzdWx0Wydjb25maWd1cmF0aW9ucydd
W2NvbmZpZ10ubWFwKGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAgIHJldHVybiBmb3JtYXQo
cGFyc2VkUmVzdWx0Wydmb3JtYXRNYXAnXSwgcm93KVsnYnVpbGROdW1iZXInXTsKLSAgICAgICAg
fSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCBpbmNsdWRlIG9uZSBkYXRhIHBvaW50IGFmdGVy
IHRoZSBjdXJyZW50IHRpbWUgcmFuZ2UiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxk
ZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJl
cG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVwb3J0V2l0aE5ld1JldmlzaW9uXSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRo
UmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktpdCcsIGZ1bmN0aW9uIChw
bGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3NpdG9yeUlkKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCAr
ICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHBhcnNlZFJlc3VsdFsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1
c3RlcnMnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGRO
dW1iZXJzKHBhcnNlZFJlc3VsdCwgJ2N1cnJlbnQnKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uWzBdWydidWlsZE51bWJlciddLCByZXBvcnRX
aXRoTmV3UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ11dKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgLy8gRklYTUU6IFRoaXMgdGVzdCBhc3N1bWVzIGEgY2x1c3RlciBzdGVwIG9m
IDItMyBtb250aHMKLSAgICBpdCgic2hvdWxkIGFsd2F5cyBpbmNsdWRlIG9uZSBvbGQgZGF0YSBw
b2ludCBiZWZvcmUgdGhlIGN1cnJlbnQgdGltZSByYW5nZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBwb3N0UmVwb3J0cyhbcmVwb3J0V2l0aEJ1aWxkVGltZSwgcmVwb3J0V2l0aEFuY2VudFJl
dmlzaW9uXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktpdCcsIGZ1
bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3NpdG9yeUlkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxh
dGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHBhcnNlZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2
ZSB0d28gY2x1c3RlcnMnKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRS
b3dzID0gcGFyc2VkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyLCAnc2hv
dWxkIGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkTnVtYmVycyhwYXJzZWRSZXN1bHQsICdjdXJy
ZW50JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFdpdGhBbmNlbnRSZXZp
c2lvblswXVsnYnVpbGROdW1iZXInXSwgcmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGROdW1i
ZXInXV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyB0
ZXN0IGFzc3VtZXMgYSBjbHVzdGVyIHN0ZXAgb2YgMi0zIG1vbnRocwotICAgIGl0KCJzaG91bGQg
Y3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIo
cmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJlcG9y
dHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVwb3J0V2l0aFJldmlzaW9uLCByZXBvcnRX
aXRoTmV3UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0
Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAnV2Vi
S2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgY2FjaGVQcmVmaXggPSAnL2RhdGEvbWVhc3VyZW1lbnQtc2V0LScgKyBwbGF0
Zm9ybUlkICsgJy0nICsgbWV0cmljSWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRwR2V0
KGNhY2hlUHJlZml4ICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZENhY2hlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHBhcnNlZFJlc3VsdCwgcGFyc2VkQ2FjaGVkUmVzdWx0KTsKLQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoY2FjaGVQcmVmaXggKyAnLScgKyBwYXJzZWRSZXN1
bHRbJ3N0YXJ0VGltZSddICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRPbGRSZXN1bHQgPSBKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhwYXJzZWRPbGRSZXN1bHQsICdj
dXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdCdWlsZE51
bWJlcnMgPSBidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQob2xkQnVpbGROdW1iZXJzLmxlbmd0aCA+PSAy
LCAnVGhlIG9sZCBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50
cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQobmV3QnVpbGROdW1i
ZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0
IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG9sZEJ1aWxkTnVtYmVycy5zbGljZShvbGRCdWlsZE51bWJlcnMubGVuZ3Ro
IC0gMiksIG5ld0J1aWxkTnVtYmVycy5zbGljZSgwLCAyKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdUd28gY29uc2VxY3V0aXZlIGNsdXN0ZXJzIHNob3VsZCBzaGFyZSB0
d28gZGF0YSBwb2ludHMnKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotCi19KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3Rz
L2FwaS1yZXBvcnQtY29tbWl0cy5qcwkocmV2aXNpb24gMTk5MTUwKQorKysgV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMSwyMzcgKzAsMCBAQAotZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewotICAgIHZhciBlbXB0eVJlcG9ydCA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJz
b21lU2xhdmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAg
IH07Ci0gICAgdmFyIHN1YnZlcnNpb25Db21taXQgPSB7Ci0gICAgICAgICJzbGF2ZU5hbWUiOiAi
c29tZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAg
ICAgICAgImNvbW1pdHMiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiV2ViS2l0IiwKLSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwK
LSAgICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKLSAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50Ijog
ImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCi0gICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAi
c29tZSBtZXNzYWdlIiwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICB9OwotICAgIHZh
ciBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJzb21l
U2xhdmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAg
ICAiY29tbWl0cyI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJfMTQxOTc3IiwKLSAg
ICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKLSAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCi0gICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICB9OwotICAgIHZhciBz
dWJ2ZXJzaW9uVHdvQ29tbWl0cyA9IHsKLSAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUi
LAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAiY29t
bWl0cyI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAotICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmcifSwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3Nh
Z2UiLAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICJwYXJlbnQiOiAiMTQxOTc3IiwK
LSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4IiwKLSAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDEzLTAyLTA2VDA5OjU0OjU2LjBaIiwKLSAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIk1pa2hhaWwgUG96ZG55YWtvdiIsICJhY2NvdW50IjogIm1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20ifSwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVy
IG1lc3NhZ2UiLAotICAgICAgICAgICAgfQotICAgICAgICBdCi0gICAgfQotCi0gICAgZnVuY3Rp
b24gYWRkU2xhdmUocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdJTlNFUlQgSU5UTyBidWlsZF9zbGF2ZXMgKHNsYXZlX25hbWUsIHNsYXZlX3Bhc3N3b3JkX2hh
c2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0LnNsYXZlTmFtZSwgc2hh
MjU2KHJlcG9ydC5zbGF2ZVBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgi
c2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30sIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsKLSAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxk
IHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBzbGF2ZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSBjb21taXRzJywgW10sIGZ1bmN0aW9uIChyb3dz
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAg
ICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWNjZXB0IGFuIGVtcHR5IHJlcG9ydCIsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGVtcHR5UmVwb3J0LCBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5w
YXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotCi0gICAgaXQoInNob3VsZCBhZGQgYSBtaXNzaW5nIHJlcG9zaXRvcnkiLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21t
aXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRvcmllcycs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XVsncmVwb3NpdG9yeV9uYW1lJ10sIHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsncmVwb3Np
dG9yeSddKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQo
InNob3VsZCBzdG9yZSBhIGNvbW1pdCBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNw
b25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21t
aXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQnLCBbXSwgZnVuY3Rpb24g
KHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21t
aXQuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1b
J2NvbW1pdF9yZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X3RpbWUnXS50b1N0cmluZygp
LCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3In
XVsnYWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1b
J2NvbW1pdF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52
YWxpZCByZXZpc2lvbiBudW1iZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKHN1
YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN1YnZlcnNpb25Db21t
aXQKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25JbnZhbGlkQ29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJP
TSBjb21taXRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURv
bmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlk
IHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uVHdvQ29t
bWl0cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIg
PSBjb21taXR0ZXJfaWQgT1JERVIgQlkgY29tbWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRz
LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydj
b21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwg
bmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0
ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydj
b21taXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFd
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X3Jldmlz
aW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzWzFdWydjb21taXRfdGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcy
MDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0
aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFd
Wydjb21taXR0ZXJfYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10p
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X21lc3Nh
Z2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQg
aWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgkMSkg
UkVUVVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0gICAg
ICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5X2lk
J107Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21t
aXRzWzBdOwotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0
cyAoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVF
UyAoJDEsICQyLCAkMykgUkVUVVJOSU5HIConLAotICAgICAgICAgICAgICAgIFtyZXBvc2l0b3J5
SWQsIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWyd0aW1lJ11dLCBmdW5j
dGlvbiAoZXhpc3RpbmdDb21taXRzKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbW1pdElkID0g
ZXhpc3RpbmdDb21taXRzWzBdWydjb21taXRfaWQnXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZXhpc3RpbmdDb21taXRzWzBdWydjb21taXRfbWVzc2FnZSddLCBudWxsKTsKLSAgICAg
ICAgICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0
ZXIgPSBjb21taXR0ZXJfaWQnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1p
dHNbMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1b
J2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9h
Y2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdlJ10s
IHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIG5vdCB1cGRhdGUgYW4gdW5yZWxhdGVkIGNv
bW1pdCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElO
VE8gcmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X25hbWUpIFZBTFVFUyAoJDEpIFJFVFVSTklORyAq
JywgWydXZWJLaXQnXSwgZnVuY3Rpb24gKHJlcG9zaXRvcmllcykgewotICAgICAgICAgICAgdmFy
IHJlcG9zaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXVsncmVwb3NpdG9yeV9pZCddOwotICAgICAg
ICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMV07
Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21taXRzIChjb21t
aXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21taXRfdGltZSkgVkFMVUVTICgkMSwg
JDIsICQzKSBSRVRVUk5JTkcgKicsCi0gICAgICAgICAgICAgICAgW3JlcG9zaXRvcnlJZCwgcmVw
b3J0ZWREYXRhWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3RpbWUnXV0sIGZ1bmN0aW9uIChl
eGlzdGluZ0NvbW1pdHMpIHsKLSAgICAgICAgICAgICAgICByZXBvcnRlZERhdGEgPSBzdWJ2ZXJz
aW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ0lOU0VSVCBJTlRPIGNvbW1pdHMgKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNp
b24sIGNvbW1pdF90aW1lKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFJFVFVSTklORyAqJywKLSAgICAg
ICAgICAgICAgICAgICAgW3JlcG9zaXRvcnlJZCwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3RpbWUnXV0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJz
aW9uQ29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIExFRlQgT1VU
RVIgSk9JTiBjb21taXR0ZXJzIE9OIGNvbW1pdF9jb21taXR0ZXIgPSBjb21taXR0ZXJfaWQgT1JE
RVIgQlkgY29tbWl0X3RpbWUnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29t
bWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0
ZXJfYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1p
dF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXR0ZXJfbmFtZSdd
LCBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyb3dzWzFdWydjb21taXR0ZXJfYWNjb3VudCddLCBudWxsKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydjb21taXRfbWVzc2FnZSdd
LCBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0
KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1pdHRlciBpZiB0aGVyZSBpcyBvbmUiLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIHJlcG9z
aXRvcmllcyAocmVwb3NpdG9yeV9pZCwgcmVwb3NpdG9yeV9uYW1lKSBWQUxVRVMgKDEsIFwnV2Vi
S2l0XCcpJywgW10sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBhdXRob3IgPSBzdWJ2
ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF1bJ2F1dGhvciddOwotICAgICAgICAgICAgcXVlcnlBbmRG
ZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0dGVycyAoY29tbWl0dGVyX3JlcG9zaXRvcnksIGNv
bW1pdHRlcl9hY2NvdW50KSBWQUxVRVMgKDEsICQxKScsIFthdXRob3JbJ2FjY291bnQnXV0sIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHRlcnMnLCBbXSwgZnVuY3Rp
b24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCBhdXRob3JbJ25hbWUnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10s
IGF1dGhvclsnYWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci0KLX0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FwaS1y
ZXBvcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2Fw
aS1yZXBvcnQuanMJKHJldmlzaW9uIDE5OTE1MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90ZXN0cy9hcGktcmVwb3J0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc1OSArMCwwIEBACi1k
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGVtcHR5UmVwb3J0
ID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUi
OiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLAotICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCi0gICAgICAg
ICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjog
Ik1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7fSwKLSAgICAgICAgInJldmlzaW9u
cyI6IHsKLSAgICAgICAgICAgICJPUyBYIjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxMC44LjIgMTJDNjAiCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIldlYktpdCI6IHsK
LSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKLSAgICAgICAgICAgICAgICAi
dGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCi0gICAgICAgICAgICB9Ci0gICAg
ICAgIH19XTsKLQotICAgIHZhciBlbXB0eVNsYXZlUmVwb3J0ID0gW3sKLSAgICAgICAgImJ1aWxk
TnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjow
My4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAg
ICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJzbGF2ZU5hbWUi
OiAic29tZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAib3RoZXJQYXNzd29yZCIs
Ci0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjog
e30sCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiT1MgWCI6IHsKLSAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3
NyIsCi0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjla
IgotICAgICAgICAgICAgfQotICAgICAgICB9fV07Ci0KLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVy
KHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElO
VE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMg
KCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJl
cG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGFkZFNsYXZlKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnSU5TRVJUIElOVE8gYnVpbGRfc2xhdmVzIChzbGF2ZV9uYW1lLCBzbGF2ZV9wYXNzd29yZF9o
YXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5zbGF2ZU5hbWUs
IHNoYTI1NihyZXBvcnRbMF0uc2xhdmVQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQotCi0g
ICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWlsZGVyIG5hbWUgaXMgbWlzc2luZyIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxk
VGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCJ9XSwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJOYW1lJyk7Ci0gICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgZXJy
b3Igd2hlbiBidWlsZCB0aW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFk
ZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsICJidWlsZGVy
UGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIn1dLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKLSAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLQotICAgIGl0KCJzaG91bGQgcmVqZWN0IGEgcmVwb3J0IHdpdGhvdXQgYSBidWlsZGVy
IHBhc3N3b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ID0gW3sKLSAgICAgICAgICAg
ICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgICAgICAgICAiYnVpbGRUaW1lIjog
IjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKLSAgICAgICAgICAgICAgICAiYnVpbGRlck5h
bWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAotICAgICAg
ICAgICAgICAgICJyZXZpc2lvbnMiOiB7fX1dOwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nl
c3NlZFJ1bnMnXSwgMCk7Ci0KLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAwKTsKLSAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSBhIHJlcG9y
dCBmcm9tIGEgdmFsaWQgYnVpbGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRl
cihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJv
Y2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCB0cmVhdCB0aGUgc2xh
dmUgcGFzc3dvcmQgYXMgdGhlIGJ1aWxkZXIgcGFzc3dvcmQgaWYgdGhlcmUgaXMgbm8gbWF0Y2hp
bmcgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBhc3N3b3Jk
J10gPSBlbXB0eVJlcG9ydFswXVsnYnVpbGRlclBhc3N3b3JkJ107Ci0gICAgICAgICAgICBkZWxl
dGUgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddOwotICAgICAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnYnVpbGRlclBhc3N3b3JkJ10gPSBlbXB0eVJl
cG9ydFswXVsnc2xhdmVQYXNzd29yZCddOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBlbXB0eVJl
cG9ydFswXVsnc2xhdmVQYXNzd29yZCddOwotCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMSk7
Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCopIGZyb20g
cmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocm93c1swXS5jb3VudCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURv
bmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBvcnQgZnJvbSBhIHZhbGlkIHNs
YXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShlbXB0eVNsYXZlUmVwb3J0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlT
bGF2ZVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMn
XSwgMSk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIENPVU5UKCop
IGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgdGhlIGJ1aWxkZXIgbmFtZSBi
dXQgbm90IHRoZSBidWlsZGVyIHBhc3N3b3JkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCByZXBvcnRfY29udGVudCBmcm9tIHJl
cG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN0
b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJvd3NbMF0ucmVwb3J0X2NvbnRlbnQpOwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3RvcmVkQ29udGVudFsnYnVpbGRlck5hbWUnXSwg
ZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJOYW1lJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQoISgnYnVpbGRlclBhc3N3b3JkJyBpbiBzdG9yZWRDb250ZW50KSk7Ci0gICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIGEgc2xhdmUgaWYg
dGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgYnVp
bGRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVw
b3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkX3NsYXZlcycsIFtdLCBmdW5jdGlvbiAocm93cykgewot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5zbGF2ZV9uYW1l
LCBlbXB0eVJlcG9ydFswXS5zbGF2ZU5hbWUpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBhIGJ1aWxkZXIgaWYgdGhlcmUgaXNuJ3Qg
b25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgc2xhdmUiLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgKiBmcm9tIGJ1aWxkZXJzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLmJ1aWxkZXJfbmFtZSwgZW1wdHlS
ZXBvcnRbMF0uYnVpbGRlck5hbWUpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBhIGJ1aWxkIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRzJywg
W10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyb3dzWzBdLmJ1aWxkX251bWJlciwgMTIzKTsKLSAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQgdGhlIHBsYXRmb3JtIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IGZyb20gcGxhdGZvcm1zJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnBsYXRmb3JtX25hbWUsICdNb3VudGFpbiBM
aW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJz
aG91bGQgYWRkIHJlcG9zaXRvcmllcyBhbmQgYnVpbGQgcmV2aXNpb25zIiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
cmVwb3NpdG9yaWVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wydy
ZXBvc2l0b3J5X25hbWUnXTsgfSksIFsnT1MgWCcsICdXZWJLaXQnXSk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgdmFyIHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OwotICAgICAgICAgICAgICAgICAg
ICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdykgeyByZXBvc2l0b3J5SWRUb05hbWVbcm93Wydy
ZXBvc2l0b3J5X2lkJ11dID0gcm93WydyZXBvc2l0b3J5X25hbWUnXTsgfSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29tbWl0cywg
Y29tbWl0cyBXSEVSRSBidWlsZF9jb21taXQgPSBjb21taXRfaWQnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZVRvUmV2aXNp
b25Sb3cgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlv
biAocm93KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1Jl
dmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtyb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J11dXSA9
IHJvdzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snT1MgWCddWydjb21t
aXRfcmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ2NvbW1p
dF9yZXZpc2lvbiddLCAnMTQxOTc3Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsnY29tbWl0X3RpbWUn
XS50b1N0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKCcyMDEz
LTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hv
dWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJl
ciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1
aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGVtcHR5UmVwb3J0
WzBdWydidWlsZFRpbWUnXSA9ICcyMDEzLTAyLTI4VDEwOjEyOjA0JzsKLSAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRb
MF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MjI6MDMnOwotICAgICAgICAgICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24g
KHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBjcmVhdGUgZGlzdGluY3QgYnVpbGRz
IGZvciB0aGUgc2FtZSBidWlsZCBudW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGZhciBhcGFydCIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDIt
MjhUMTA6MTI6MDMnOwotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5
UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0K
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDEpOwotCi0gICAgICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydi
dWlsZFRpbWUnXSA9ICcyMDE0LTAxLTIwVDIyOjIzOjM0JzsKLSAgICAgICAgICAgICAgICAgICAg
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtd
LCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5
RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGlu
ZyByZXZpc2lvbiBpbmZvIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5
UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNp
b25zJ10gPSB7Ci0gICAgICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjE0MTk3NyIsCi0gICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAi
OiAiMjAxMy0wMi0wNlQwODo1NToyMC45NloiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5w
YXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAg
ICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNpb25zJ10gPSB7Ci0gICAgICAgICAgICAgICAg
ICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTUw
MDAwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wNS0xM1Qx
MDo1MDoyOS42WiIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQocmVzcG9uc2UucmVzcG9uc2VUZXh0LmluZGV4T2YoJzE0
MTk3NycpID49IDApOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQocmVzcG9uc2UucmVzcG9u
c2VUZXh0LmluZGV4T2YoJzE1MDAwMCcpID49IDApOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVk
J10sIHRydWUpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDApOwotICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgcmVwb3J0V2l0aFR3b0xldmVsc09m
QWdncmVnYXRpb25zID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAg
ICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVp
bGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAg
ICAgInRlc3RzIjogewotICAgICAgICAgICAgIkR1bW15UGFnZUxvYWRpbmciOiB7Ci0gICAgICAg
ICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJhZ2dyZWdhdG9ycyIgOiBbIkFyaXRobWV0
aWMiXSwgImN1cnJlbnQiOiBbMzAwLCAzMTAsIDMyMCwgMzMwXSB9fSwKLSAgICAgICAgICAgICAg
ICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJhcHBsZS5jb20iOiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbNTAwLCA1
MTAsIDUyMCwgNTMwXSB9fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDov
L3d3dy5hcHBsZS5jb20iCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICJ3ZWJraXQub3JnIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
IlRpbWUiOiB7ICJjdXJyZW50IjogWzEwMCwgMTEwLCAxMjAsIDEzMF0gfX0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly93d3cud2Via2l0Lm9yZyIKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAiRHVtbXlCZW5jaG1hcmsiOiB7Ci0gICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUi
OiBbIkFyaXRobWV0aWMiXX0sCi0gICAgICAgICAgICAgICAgInRlc3RzIjogewotICAgICAgICAg
ICAgICAgICAgICAiRE9NIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
IlRpbWUiOiBbIkdlb21ldHJpYyIsICJBcml0aG1ldGljIl19LAotICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3RzIjogewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb2RpZnlOb2Rl
cyI6IHsibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbWzExLCAxMiwgMTMsIDE0LCAx
NV0sIFsxNiwgMTcsIDE4LCAxOSwgMjBdLCBbMjEsIDIyLCAyMywgMjQsIDI1XV0gfX19LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJUcmF2ZXJzZU5vZGVzIjogeyJtZXRyaWNzIjogeyJU
aW1lIjogeyAiY3VycmVudCI6IFtbMzEsIDMyLCAzMywgMzQsIDM1XSwgWzM2LCAzNywgMzgsIDM5
LCA0MF0sIFs0MSwgNDIsIDQzLCA0NCwgNDVdXSB9fX0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgIkNTUyI6IHsi
bWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbWzEwMSwgMTAyLCAxMDMsIDEwNCwgMTA1
XSwgWzEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwXSwgWzExMSwgMTEyLCAxMTMsIDExNCwgMTE1XV0g
fX19Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgICAg
ICAicmV2aXNpb25zIjogewotICAgICAgICAgICAgIk9TIFgiOiB7Ci0gICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAi
V2ViS2l0IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAg
ICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfX1dOwotCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRlckFuZE1lYW5BZ2dy
ZWdhdG9ycyhyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0LCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBh
Z2dyZWdhdG9ycyAoYWdncmVnYXRvcl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVl
cyAoJDEsICQyKScsCi0gICAgICAgICAgICAgICAgWydBcml0aG1ldGljJywgJ3ZhbHVlcy5yZWR1
Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSAvIHZhbHVlcy5sZW5ndGgnXSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJ
TlRPIGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikg
dmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgICAgICAgICAgWydHZW9tZXRyaWMnLCAnTWF0
aC5wb3codmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAqIGI7IH0pLCAx
IC8gdmFsdWVzLmxlbmd0aCknXSwgY2FsbGJhY2spOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZldGNoUnVuRm9yTWV0cmljKHRlc3ROYW1lLCBt
ZXRyaWNOYW1lLGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IEZST00gdGVzdF9ydW5zIFdIRVJFIHJ1bl9jb25maWcgSU4nCi0gICAgICAgICAgICArICcoU0VM
RUNUIGNvbmZpZ19pZCBGUk9NIHRlc3RfY29uZmlndXJhdGlvbnMsIHRlc3RfbWV0cmljcywgdGVz
dHMgV0hFUkUgY29uZmlnX21ldHJpYyA9IG1ldHJpY19pZCBBTkQgbWV0cmljX3Rlc3QgPSB0ZXN0
X2lkIEFORCcKLSAgICAgICAgICAgICsgJ3Rlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9
ICQyKScsCi0gICAgICAgICAgICBbJ0FyaXRobWV0aWMnLCAndmFsdWVzLnJlZHVjZShmdW5jdGlv
biAoYSwgYikgeyByZXR1cm4gYSArIGI7IH0pIC8gdmFsdWVzLmxlbmd0aCddLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBhZ2dyZWdhdG9y
cyAoYWdncmVnYXRvcl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVlcyAoJDEsICQy
KScsCi0gICAgICAgICAgICAgICAgWydHZW9tZXRyaWMnLCAnTWF0aC5wb3codmFsdWVzLnJlZHVj
ZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAqIGI7IH0pLCAxIC8gdmFsdWVzLmxlbmd0aCkn
XSwgY2FsbGJhY2spOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIG5vdCBy
ZWplY3Qgd2hlbiBhZ2dyZWdhdG9ycyBhcmUgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdv
TGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
Ci0KLSAgICBpdCgic2hvdWxkIGFkZCB0ZXN0cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRk
QnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlv
bnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsK
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywg
W10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wyd0ZXN0X25hbWUnXTsgfSku
c29ydCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9NJywgJ0R1bW15QmVu
Y2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAnVHJhdmVyc2VOb2Rl
cycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKLSAgICAgICAgICAgICAgICAgICAgZW1w
dHlSZXBvcnRbMF0udGVzdHMgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQgbWV0cmljcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dy
ZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVz
dHMsIHRlc3RfbWV0cmljcyBMRUZUIEpPSU4gYWdncmVnYXRvcnMgT04gbWV0cmljX2FnZ3JlZ2F0
b3IgPSBhZ2dyZWdhdG9yX2lkIFdIRVJFIG1ldHJpY190ZXN0ID0gdGVzdF9pZCcsCi0gICAgICAg
ICAgICAgICAgICAgIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICB2
YXIgdGVzdE5hbWVUb01ldHJpY3MgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JF
YWNoKGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHJvd1sn
dGVzdF9uYW1lJ10gaW4gdGVzdE5hbWVUb01ldHJpY3MpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dID0gbmV3IEFycmF5Owot
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUn
XV0ucHVzaChbcm93WydtZXRyaWNfbmFtZSddLCByb3dbJ2FnZ3JlZ2F0b3JfbmFtZSddXSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0RPTSddLnNv
cnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10sIFsnVGltZScsICdHZW9tZXRyaWMnXV0pOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydE
dW1teUJlbmNobWFyayddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2Fk
aW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ01vZGlmeU5vZGVzJ10sIFtbJ1RpbWUn
LCBudWxsXV0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5jb20n
XSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGltZScsIG51bGxdXSk7Ci0g
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGZldGNo
VGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUsIGNhbGxiYWNr
KSB7Ci0gICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0
X21ldHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMsIHRlc3RfcnVucyBXSEVSRSBtZXRyaWNfdGVz
dCA9IHRlc3RfaWQgQU5EIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQnCi0gICAgICAgICAgICAr
ICcgQU5EIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIHRlc3RfbmFtZSA9ICQxIEFORCBtZXRy
aWNfbmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24gKHJ1blJvd3Mp
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOwotICAg
ICAgICAgICAgICAgIHZhciBydW4gPSBydW5Sb3dzWzBdOwotICAgICAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcnVuX2l0ZXJhdGlvbnMgV0hFUkUgaXRlcmF0aW9u
X3J1biA9ICQxIE9SREVSIEJZIGl0ZXJhdGlvbl9vcmRlcicsIFtydW5bJ3J1bl9pZCddXSwgZnVu
Y3Rpb24gKGl0ZXJhdGlvblJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socnVu
LCBpdGVyYXRpb25Sb3dzKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgIH0KLQotICAgIGl0KCJzaG91bGQgc3RvcmUgcnVuIHZhbHVlcyIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxz
T2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChy
ZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRy
aWMoJ2FwcGxlLmNvbScsICdUaW1lJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVyYXRp
b25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTAwLCBpdGVyYXRpb25fcmVsYXRpdmVf
dGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25f
dmFsdWU6IDUxMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0
ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MjAsIGl0ZXJhdGlvbl9yZWxh
dGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVu
OiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAzLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJh
dGlvbl92YWx1ZTogNTMwLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIHN1bSA9IDUwMCArIDUxMCArIDUyMCArIDUzMDsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgc3VtIC8gaXRl
cmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydy
dW5fc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIDUwMCAqIDUwMCArIDUxMCAqIDUxMCArIDUyMCAq
IDUyMCArIDUzMCAqIDUzMCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRl
cmF0aW9uc0Zvck1ldHJpYygnQ1NTJywgJ1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25z
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBbCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRp
b25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDEsIGl0
ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dy
b3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwMiwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51
bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwg
aXRlcmF0aW9uX29yZGVyOiAyLCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTog
MTAzLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDMsIGl0ZXJh
dGlvbl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDQsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90
aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjog
cnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogNCwgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25f
dmFsdWU6IDEwNSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA1
LCBpdGVyYXRpb25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTA2LCBpdGVyYXRpb25fcmVs
YXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlv
bl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDYsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRl
cmF0aW9uX3ZhbHVlOiAxMDcsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9v
cmRlcjogNywgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwOCwgaXRlcmF0
aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtp
dGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA4LCBpdGVyYXRpb25fZ3JvdXA6
IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTA5LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVy
YXRpb25fb3JkZXI6IDksIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMTAs
IGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTAsIGl0ZXJhdGlv
bl9ncm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTEsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1l
OiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMTEsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9uX3Zh
bHVlOiAxMTIsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTIs
IGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTMsIGl0ZXJhdGlvbl9yZWxh
dGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9u
X3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMTMsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRl
cmF0aW9uX3ZhbHVlOiAxMTQsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9v
cmRlcjogMTQsIGl0ZXJhdGlvbl9ncm91cDogMiwgaXRlcmF0aW9uX3ZhbHVlOiAxMTUsIGl0ZXJh
dGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IHN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3F1YXJlU3VtID0gMDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHZhbHVlID0gMTAxOyB2YWx1ZSA8PSAxMTU7
ICsrdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdmFsdWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10s
IHN1bSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1
YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQg
c3RvcmUgYWdncmVnYXRlZCBydW4gdmFsdWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9u
cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlQYWdl
TG9hZGluZycsICdUaW1lJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbKDUwMCArIDEwMCkgLyAyLCAoNTEwICsgMTEwKSAvIDIs
ICg1MjAgKyAxMjApIC8gMiwgKDUzMCArIDEzMCkgLyAyXTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChpdGVyYXRpb25zLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7
aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9uX2dyb3Vw
OiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzBdLCBpdGVyYXRpb25fcmVs
YXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1
bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVy
YXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTog
bnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0
ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6
IGV4cGVjdGVkVmFsdWVzWzJdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRl
cjogMywgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFs
dWVzWzNdLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIHN1bSA9IGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1
ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDApOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwg
c3VtKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9z
dW1fY2FjaGUnXSwgZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7
IHJldHVybiBzdW0gKyB2YWx1ZSAqIHZhbHVlOyB9LCAwKSk7Ci0gICAgICAgICAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBjb21wdXRlIHRo
ZSBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGVkIHZhbHVlcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dy
ZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1
bW15QmVuY2htYXJrJywgJ1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZEl0ZXJhdGlvbnMgPSBbXTsKLSAgICAgICAgICAg
ICAgICAgICAgdmFyIHN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzcXVhcmVTdW0g
PSAwOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE1OyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGkgKyAxOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIERPTU1lYW4gPSAoKDEwICsgdmFsdWUpICsgKDMwICsgdmFsdWUpKSAv
IDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IChET01NZWFu
ICsgMTAwICsgdmFsdWUpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN1bSArPSBleHBl
Y3RlZFZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgc3F1YXJlU3VtICs9IGV4cGVjdGVk
VmFsdWUgKiBleHBlY3RlZFZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRJ
dGVyYXRpb25zLnB1c2goe2l0ZXJhdGlvbl9ydW46IHJ1blsncnVuX2lkJ10sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX29yZGVyOiBpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGl0ZXJhdGlvbl9ncm91cDogTWF0aC5mbG9vcihpIC8gNSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX3ZhbHVlOiBleHBlY3RlZFZhbHVlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChpdGVyYXRpb25zLCBleHBlY3RlZEl0ZXJhdGlvbnMpOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0
aCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUn
XSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFy
ZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICAgIH0pOwotCi0gICAgdmFyIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUgPSBbewotICAgICAg
ICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4
VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIs
Ci0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBs
YXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAg
ICAiU3VpdGUxIjogewotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAg
ICAgICAgInRlc3QxIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRp
bWUiOiB7ICJjdXJyZW50IjogWzEsIDIsIDMsIDQsIDVdIH19Ci0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFs2LCA3LCA4LCA5LCAxMF0gfX0K
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAiU3VpdGUyIjogewotICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAg
ICAgICAgICAgICAgICAgICAgInRlc3QxIjogewotICAgICAgICAgICAgICAgICAgICAgICAgIm1l
dHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExLCAxMiwgMTMsIDE0LCAxNV0gfX0KLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgInRlc3QyIjogewotICAg
ICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzE2
LCAxNywgMTgsIDE5LCAyMF0gfX0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOwotCi0gICAgaXQoInNob3VsZCBiZSBh
YmxlIHRvIGFkZCBhIHJlcG9ydCB3aXRoIHNhbWUgc3VidGVzdCBuYW1lIiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3Vi
dGVzdE5hbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAg
ICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25l
KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hv
dWxkIGJlIGFibGUgdG8gcmV1c2UgdGhlIHNhbWUgdGVzdCByb3dzIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVz
dE5hbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywgW10sIGZ1
bmN0aW9uICh0ZXN0Um93cykgewotICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0
Um93cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgICAgIHJlcG9ydFdpdGhTYW1lU3VidGVz
dE5hbWUuYnVpbGROdW1iZXIgPSAiMTI1IjsKLSAgICAgICAgICAgICAgICAgICByZXBvcnRXaXRo
U2FtZVN1YnRlc3ROYW1lLmJ1aWxkVGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOwotCi0g
ICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1l
U3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cycsIFtdLCBmdW5j
dGlvbiAodGVzdFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0Um93cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotICAgIHZhciByZXBvcnRXaXRoU2FtZVNpbmdsZVZhbHVlID0g
W3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0g
ICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewot
ICAgICAgICAgICAgInN1aXRlIjogewotICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJDb21i
aW5lZCI6IFsiQXJpdGhtZXRpYyJdfSwKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAg
ICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRy
aWNzIjogeyJDb21iaW5lZCI6IHsgImN1cnJlbnQiOiAzIH19Ci0gICAgICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MiI6IHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJtZXRyaWNzIjogeyJDb21iaW5lZCI6IHsgImN1cnJlbnQiOiA3IH19Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICB9
fV07Ci0KLSAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2luZ2xl
IHZhbHVlIHJlc3VsdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFu
QWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU2luZ2xlVmFs
dWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICAgICAgICAgIEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAg
ICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFp
bChlcnJvciwgbnVsbCwgcmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2Up
OwotICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ3Rlc3Qx
JywgJ0NvbWJpbmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEp
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSdd
LCAzKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNo
ZSddLCAzKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFy
ZV9zdW1fY2FjaGUnXSwgOSk7Ci0gICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJh
dGlvbnNGb3JNZXRyaWMoJ3N1aXRlJywgJ0NvbWJpbmVkJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0
aW9ucykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0
ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIDUpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCA1KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIDI1KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzID0gW3sKLSAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0y
OFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIi
LAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJw
bGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAgICAgICAg
ICAgICAgICJ0ZXN0IjogewotICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiRnJhbWVS
YXRlIjogeyAiY3VycmVudCI6IFtbWzAsIDRdLCBbMTAwLCA1XSwgWzIwNSwgM11dXSB9fQotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB9LAotICAgICAgICB9XTsKLQotICAgIGl0KCJz
aG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCAocmVsYXRpdmUgdGltZSwgdmFsdWUp
IHBhaXJzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0
b3JzKHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
cG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAg
ICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgIH0g
Y2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBu
dWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAg
ICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdCcsICdGcmFtZVJh
dGUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5bJ3J1bl9pdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIDQpOwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIDEyKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2Fj
aGUnXSwgMTYgKyAyNSArIDkpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5b
J3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlv
bnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRl
cmF0aW9uX29yZGVyOiAwLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTog
NCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IDB9LAotICAgICAgICAgICAgICAgICAgICAgICAg
e2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDEsIGl0ZXJhdGlvbl9ncm91
cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMTAw
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0
aW9uX29yZGVyOiAyLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogMywg
aXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IDIwNX1dKTsKLSAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotCi0gICAgdmFyIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzID0g
WwotICAgICAgICBbewotICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAg
ICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAotICAgICAgICAgICAgImJ1
aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9u
IiwKLSAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDEiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7
ImN1cnJlbnQiOiAzfX19fQotICAgICAgICB9XSwKLSAgICAgICAgW3sKLSAgICAgICAgICAgICJi
dWlsZE51bWJlciI6ICIxMjQiLAotICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4
VDExOjMxOjIxIiwKLSAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0g
ICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICAg
ICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICAgICAidGVzdHMiOiB7InRl
c3QyIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyJjdXJyZW50IjogM319fX0KLSAgICAgICAgfV0s
Ci0gICAgICAgIFt7Ci0gICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI1IiwKLSAgICAgICAg
ICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMjo0NTozNCIsCi0gICAgICAgICAgICAiYnVp
bGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24i
LAotICAgICAgICAgICAgInRlc3RzIjogeyJ0ZXN0MSI6IHsibWV0cmljcyI6IHsiVGltZSI6IHsi
Y3VycmVudCI6IDN9fX19Ci0gICAgICAgIH1dLAotICAgIF07Ci0KLSAgICBmdW5jdGlvbiBmZXRj
aFRlc3RDb25maWcodGVzdE5hbWUsIG1ldHJpY05hbWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzLCB0ZXN0X21ldHJpY3MsIHRlc3Rf
Y29uZmlndXJhdGlvbnMgV0hFUkUgdGVzdF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNfaWQg
PSBjb25maWdfbWV0cmljJwotICAgICAgICAgICAgKyAnIEFORCB0ZXN0X25hbWUgPSAkMSBBTkQg
bWV0cmljX25hbWUgPSAkMicsIFt0ZXN0TmFtZSwgbWV0cmljTmFtZV0sIGZ1bmN0aW9uIChydW5S
b3dzKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBjYWxsYmFjayhydW5Sb3dzWzBdKTsKLSAgICAgICAgICAgIH0pOwot
ICAgIH0KLQotICAgIGl0KCJzaG91bGQgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2Yg
dGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIG5ldyBydW5zIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0c1VwZGF0aW5n
RGlmZmVyZW50VGVzdHNbMF0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScsIGZ1bmN0aW9uIChvcmlnaW5hbENvbmZp
ZykgewotICAgICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMl0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUn
LCBmdW5jdGlvbiAoY29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKCtvcmlnaW5hbENvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddLCAr
Y29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgdXBkYXRlIHRoZSBsYXN0
IG1vZGlmaWVkIGRhdGUgb2YgdW5yZWxhdGVkIHRlc3QgY29uZmlndXJhdGlvbnMiLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNb
MF0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24g
KG9yaWdpbmFsQ29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXSwgZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdENvbmZpZygn
dGVzdDEnLCAnVGltZScsIGZ1bmN0aW9uIChjb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21v
ZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7CkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCShyZXZpc2lvbiAxOTkxNTAp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAidXNlIHN0cmljdCI7CiAKLXZhciBwZyA9IHJlcXVp
cmUoJ3BnJyk7Ci12YXIgY29uZmlnID0gcmVxdWlyZSgnLi9jb25maWcuanMnKTsKK2NvbnN0IHBn
ID0gcmVxdWlyZSgncGcnKTsKK2NvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnLmpzJyk7
CiAKIGNsYXNzIERhdGFiYXNlIHsKICAgICBjb25zdHJ1Y3RvcihkYXRhYmFzZU5hbWUpCkBAIC0y
MywxMSArMjMsOCBAQAogICAgICAgICBsZXQgY29ubmVjdGlvblN0cmluZyA9IGB0Y3A6Ly8ke3Vz
ZXJuYW1lfToke3Bhc3N3b3JkfUAke2hvc3R9OiR7cG9ydH0vJHt0aGlzLl9kYXRhYmFzZU5hbWV9
YDsKIAogICAgICAgICBsZXQgY2xpZW50ID0gbmV3IHBnLkNsaWVudChjb25uZWN0aW9uU3RyaW5n
KTsKLSAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmtlZXBBbGl2ZSkgewotICAgICAg
ICAgICAgY2xpZW50Lm9uKCdkcmFpbicsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBj
bGllbnQuZW5kKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIW9w
dGlvbnMgfHwgIW9wdGlvbnMua2VlcEFsaXZlKQorICAgICAgICAgICAgY2xpZW50Lm9uKCdkcmFp
bicsIHRoaXMuZGlzY29ubmVjdC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLl9jbGllbnQg
PSBjbGllbnQ7CiAKQEAgLTYyLDYgKzU5LDU2IEBACiAgICAgICAgIH0pOwogICAgIH0KIAorICAg
IHNlbGVjdEFsbCh0YWJsZSwgY29sdW1uVG9Tb3J0QnkpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5zZWxlY3RSb3dzKHRhYmxlLCB7fSwge3NvcnRCeTogY29sdW1uVG9Tb3J0Qnl9KTsKKyAg
ICB9CisKKyAgICBzZWxlY3RGaXJzdFJvdyh0YWJsZSwgcGFyYW1zLCBjb2x1bW5Ub1NvcnRCeSkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdFJvd3ModGFibGUsIHBhcmFtcywge3Nv
cnRCeTogY29sdW1uVG9Tb3J0QnksIGxpbWl0OiAxfSkudGhlbihmdW5jdGlvbiAocm93cykgewor
ICAgICAgICAgICAgcmV0dXJuIHJvd3NbMF07CisgICAgICAgIH0pOworICAgIH0KKworICAgIHNl
bGVjdFJvd3ModGFibGUsIHBhcmFtcywgb3B0aW9ucykKKyAgICB7CisgICAgICAgIGxldCBwcmVm
aXggPSAnJzsKKyAgICAgICAgaWYgKHRhYmxlIGluIHRhYmxlVG9QcmVmaXhNYXApCisgICAgICAg
ICAgICBwcmVmaXggPSB0YWJsZVRvUHJlZml4TWFwW3RhYmxlXSArICdfJzsKKworICAgICAgICBv
cHRpb25zID0gb3B0aW9ucyB8fCB7fTsKKworICAgICAgICBsZXQgY29sdW1uTmFtZXMgPSBbXTsK
KyAgICAgICAgbGV0IHBsYWNlaG9sZGVycyA9IFtdOworICAgICAgICBsZXQgdmFsdWVzID0gW107
CisgICAgICAgIGZvciAobGV0IG5hbWUgaW4gcGFyYW1zKSB7CisgICAgICAgICAgICBjb2x1bW5O
YW1lcy5wdXNoKHByZWZpeCArIG5hbWUpOworICAgICAgICAgICAgcGxhY2Vob2xkZXJzLnB1c2go
JyQnICsgY29sdW1uTmFtZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhbHVlcy5wdXNoKHBhcmFt
c1tuYW1lXSk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgcXVhbGlmaWVyID0gJyc7CisgICAg
ICAgIGlmIChjb2x1bW5OYW1lcy5sZW5ndGgpCisgICAgICAgICAgICBxdWFsaWZpZXIgKz0gYCBX
SEVSRSAoJHtjb2x1bW5OYW1lcy5qb2luKCcsJyl9KSA9ICgke3BsYWNlaG9sZGVycy5qb2luKCcs
Jyl9KWA7CisgICAgICAgIHF1YWxpZmllciArPSBgIE9SREVSIEJZICR7cHJlZml4fSR7b3B0aW9u
cy5zb3J0QnkgfHwgJ2lkJ31gOworICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmxpbWl0
KQorICAgICAgICAgICAgcXVhbGlmaWVyICs9IGAgTElNSVQgJHtvcHRpb25zLmxpbWl0fWA7CisK
KyAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkoYFNFTEVDVCAqIEZST00gJHt0YWJsZX0ke3F1YWxp
Zmllcn1gLCB2YWx1ZXMpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5yb3dzLm1hcChmdW5jdGlvbiAocm93KSB7CisgICAgICAgICAgICAgICAgbGV0
IGZvcm1hdHRlZFJlc3VsdCA9IHt9OworICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbHVtbk5h
bWUgaW4gcm93KSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXR0ZWROYW1lID0gY29s
dW1uTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZE5hbWUuc3RhcnRzV2l0
aChwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkTmFtZSA9IGZvcm1h
dHRlZE5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBm
b3JtYXR0ZWRSZXN1bHRbZm9ybWF0dGVkTmFtZV0gPSByb3dbY29sdW1uTmFtZV07CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXN1bHQ7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaW5zZXJ0KHRhYmxlLCBwYXJh
bWV0ZXJzKQogICAgIHsKICAgICAgICAgbGV0IGNvbHVtbk5hbWVzID0gW107CkBAIC03OCw3ICsx
MjUsNyBAQAogICAgIH0KIH0KIAotbGV0IHRhYmxlVG9QcmVmaXhNYXAgPSB7Citjb25zdCB0YWJs
ZVRvUHJlZml4TWFwID0gewogICAgICdhZ2dyZWdhdG9ycyc6ICdhZ2dyZWdhdG9yJywKICAgICAn
YW5hbHlzaXNfdGFza3MnOiAndGFzaycsCiAgICAgJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJzogJ3Rl
c3Rncm91cCcsCkBAIC04NiwxNiArMTMzLDIxIEBACiAgICAgJ2J1aWxkX3RyaWdnZXJhYmxlcyc6
ICd0cmlnZ2VyYWJsZScsCiAgICAgJ2J1aWxkX3JlcXVlc3RzJzogJ3JlcXVlc3QnLAogICAgICdi
dWlsZF9zbGF2ZXMnOiAnc2xhdmUnLAorICAgICdidWlsZHMnOiAnYnVpbGQnLAogICAgICdidWls
ZGVycyc6ICdidWlsZGVyJywKICAgICAnY29tbWl0cyc6ICdjb21taXQnLAorICAgICdjb21taXR0
ZXJzJzogJ2NvbW1pdHRlcicsCiAgICAgJ3Rlc3RfY29uZmlndXJhdGlvbnMnOiAnY29uZmlnJywK
ICAgICAndGVzdF9tZXRyaWNzJzogJ21ldHJpYycsCisgICAgJ3Rlc3RfcnVucyc6ICdydW4nLAog
ICAgICd0ZXN0cyc6ICd0ZXN0JywKICAgICAndHJhY2tlcl9yZXBvc2l0b3JpZXMnOiAndHJhY3Jl
cG8nLAogICAgICdwbGF0Zm9ybXMnOiAncGxhdGZvcm0nLAorICAgICdyZXBvcnRzJzogJ3JlcG9y
dCcsCiAgICAgJ3JlcG9zaXRvcmllcyc6ICdyZXBvc2l0b3J5JywKICAgICAncm9vdF9zZXRzJzog
J3Jvb3RzZXQnLAogICAgICdyb290cyc6ICdyb290JywKKyAgICAncnVuX2l0ZXJhdGlvbnMnOiAn
aXRlcmF0aW9uJywKIH0KIAogaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275919</attachid>
            <date>2016-04-07 12:47:41 -0700</date>
            <delta_ts>2016-04-07 14:11:16 -0700</delta_ts>
            <desc>Another attempt</desc>
            <filename>bug-156335-20160407124744.patch</filename>
            <type>text/plain</type>
            <size>340087</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MTIzKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUyIEBACisyMDE2LTA0LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1pZ3JhdGUgbGVnYWN5IHBlcmYgZGFzaGJvYXJkIHRlc3RzIHRvIG1vY2hhLmpz
IGJhc2VkIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTYzMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNaWdyYXRlZCBhbGwgbGVnYWN5IHJ1bi10ZXN0cy5qcyB0ZXN0cyB0byBtb2NoYS5qcyBi
YXNlZCB0ZXN0cy4gU2luY2UgdGhlIG5ldyBoYXJuZXNzIHVzZXMgUHJvbWlzZQorICAgICAgICBm
b3IgbW9zdCBvZiBhc3luY2hyb25vdXMgb3BlcmF0aW9ucywgcmVmYWN0b3JlZCB0aGUgdGVzdHMg
dG8gdXNlIFByb21pc2VzIGFzIHdlbGwsIGFuZCBhZGRlZCBtb3JlCisgICAgICAgIGFzc2VydGlv
bnMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgQWxzbyBjb25zb2xpZGF0ZWQgY29tbW9u
IGhlbHBlciBmdW5jdGlvbnMgaW50byBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzLgorICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoZXJlIHdlcmUgbXVsdGlwbGUgaW5j
b25zaXN0ZW50IGltcGxlbWVudGF0aW9ucyBvZiBhZGRCdWlsZGVyL2FkZFNsYXZlLiBTb21lIHdl
cmUKKyAgICAgICAgdGFraW5nIGFuIGFycmF5IG9mIHJlcG9ydHMgd2hpbGUgb3RoZXJzIHdlcmUg
dGFraW5nIGEgc2luZ2xlIHJlcG9ydC4gTmV3IHNoYXJlZCBpbXBsZW1lbnRhdGlvbiBpbgorICAg
ICAgICBjb21tb24tb3BlcmF0aW9ucy5qcyBub3cgdGFrZXMgYSBzaW5nbGUgcmVwb3J0LgorCisg
ICAgICAgIEFsc28gZGVjZWFzZWQgdGhlIHRpbWVvdXQgaW4gbW9zdCB0ZXN0cyBmcm9tIDEwcyB0
byAxcyBzbyB0aGF0IHRlc3RzIGZhaWwgZWFybHkgd2hlbiB0aGV5IHRpbWVvdXQuCisgICAgICAg
IE1vc3Qgb2YgdGVzdHMgYXJlIHBhc3NpbmcgdW5kZXIgMTAwbXMgb24gbXkgY29tcHV0ZXIgc28g
MXMgc2hvdWxkIGJlIHBsZW50eSBzdGlsbC4KKworICAgICAgICAqIHJ1bi10ZXN0cy5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzOiBN
b3ZlZCBmcm9tIHRlc3RzL2FkbWluLXBsYXRmb3Jtcy5qcy4KKyAgICAgICAgKHJlcG9ydHNGb3JE
aWZmZXJlbnRQbGF0Zm9ybXMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nl
c3MtcmVwb3J0LXRlc3RzLmpzOiBNb3ZlZCBmcm9tIHRlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBv
cnQuanMuCisgICAgICAgICguYWRkQnVpbGRlcik6IE1vdmVkIHRvIGNvbW1vbi1vcGVyYXRpb25z
LmpzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC5qczogVXNlIE1vY2tEYXRhLnJl
c2V0VjNNb2RlbHMoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IGNsZWFyaW5nIG1hcHMuCisgICAgICAg
ICogc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanM6IE1vdmVkIGZyb20g
dGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC5qcy4KKyAgICAgICAgKC5xdWVyeVBsYXRmb3JtQW5k
TWV0cmljKToKKyAgICAgICAgKC5mb3JtYXQpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6IE1vdmVkIGZyb20gdGVzdHMvYXBpLXJlcG9ydC1jb21t
aXRzLmpzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOiBNb3Zl
ZCBmcm9tIHRlc3RzL2FwaS1yZXBvcnQuanMuCisgICAgICAgICguZW1wdHlSZXBvcnQpOgorICAg
ICAgICAoLmVtcHR5U2xhdmVSZXBvcnQpOgorICAgICAgICAoLnJlcG9ydFdpdGhTYW1lU3VidGVz
dE5hbWUpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanM6IEFkZGVkLgorICAgICAgICAoYWRkQnVpbGRlckZvclJlcG9ydCk6IEV4dHJhY3RlZCBm
cm9tIHRlc3RzLgorICAgICAgICAoYWRkU2xhdmVGb3JSZXBvcnQpOiBEaXR0by4KKyAgICAgICAg
KGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QpOiBBZGRlZC4KKyAgICAgICAgKHN1Ym1pdFJl
cG9ydCk6IEV4dHJhY3RlZCBmcm9tIGFkbWluLXBsYXRmb3Jtcy10ZXN0cy5qcy4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzOgorICAgICAgICAoVGVzdFNl
cnZlcik6IE1ha2UgVGVzdFNlcnZlciBhIHNpbmdsZXRvbiBzaW5jZSBpdCBkb2Vzbid0IG1ha2Ug
YW55IHNlbnNlIGZvciBlYWNoIG1vZHVsZSB0byBzdGFydAorICAgICAgICBpdHMgb3duIEFwYWNo
ZSBpbnN0YW5jZSAodGhhdCB3b3VsZCBjZXJ0YWlubHkgd2lsbCBmYWlsKS4KKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6CisgICAgICAg
ICogdGVzdHM6IFJlbW92ZWQuCisgICAgICAgICogdG9vbHMvanMvZGF0YWJhc2UuanM6CisgICAg
ICAgIChEYXRhYmFzZS5wcm90b3R5cGUuc2VsZWN0QWxsKTogQWRkZWQuCisgICAgICAgIChEYXRh
YmFzZS5wcm90b3R5cGUuc2VsZWN0Rmlyc3RSb3cpOiBBZGRlZC4KKyAgICAgICAgKERhdGFiYXNl
LnByb3RvdHlwZS5zZWxlY3RSb3dzKTogQWRkZWQuIER5bmFtaWNhbGx5IGNvbnN0cnVjdCBhIHF1
ZXJ5IHN0cmluZyBiYXNlZCBvbiBhcmd1bWVudHMuCisKIDIwMTYtMDQtMDUgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTmV3IGJ1aWxkYm90IHN5bmNpbmcgc2Ny
aXB0cyB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGJ1aWxkZXJzIGFuZCBzbGF2ZXMKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9ydW4tdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3J1bi10ZXN0cy5qcwkocmV2aXNpb24gMTk5MTIyKQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3J1bi10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwz
NDAgKzAsMCBAQAotIyEvdXNyL2xvY2FsL2Jpbi9ub2RlCi0KLXZhciBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKLXZhciBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsKLXZhciBmcyA9IHJl
cXVpcmUoJ2ZzJyk7Ci12YXIgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTsKLXZhciBwYXRoID0gcmVx
dWlyZSgncGF0aCcpOwotdmFyIHZtID0gcmVxdWlyZSgndm0nKTsKLQotZnVuY3Rpb24gY29ubmVj
dChrZWVwQWxpdmUpIHsKLSAgICB2YXIgcGcgPSByZXF1aXJlKCdwZycpOwotICAgIHZhciBkYXRh
YmFzZSA9IGNvbmZpZygnZGF0YWJhc2UnKTsKLSAgICB2YXIgY29ubmVjdGlvblN0cmluZyA9ICd0
Y3A6Ly8nICsgZGF0YWJhc2UudXNlcm5hbWUgKyAnOicgKyBkYXRhYmFzZS5wYXNzd29yZCArICdA
JyArIGRhdGFiYXNlLmhvc3QgKyAnOicgKyBkYXRhYmFzZS5wb3J0Ci0gICAgICAgICsgJy8nICsg
ZGF0YWJhc2UubmFtZTsKLQotICAgIHZhciBjbGllbnQgPSBuZXcgcGcuQ2xpZW50KGNvbm5lY3Rp
b25TdHJpbmcpOwotICAgIGlmICgha2VlcEFsaXZlKSB7Ci0gICAgICAgIGNsaWVudC5vbignZHJh
aW4nLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAg
ICBjbGllbnQgPSB1bmRlZmluZWQ7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICBjbGllbnQuY29u
bmVjdCgpOwotCi0gICAgcmV0dXJuIGNsaWVudDsKLX0KLQotZnVuY3Rpb24gcGF0aFRvRGF0YWJz
ZVNRTChyZWxhdGl2ZVBhdGgpIHsKLSAgICByZXR1cm4gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwg
J2luaXQtZGF0YWJhc2Uuc3FsJyk7Ci19Ci0KLWZ1bmN0aW9uIHBhdGhUb1Rlc3RzKHRlc3ROYW1l
KSB7Ci0gICAgcmV0dXJuIHRlc3ROYW1lID8gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3Rlc3Rz
JywgdGVzdE5hbWUpIDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3Rlc3RzJyk7Ci19Ci0KLXZh
ciBjb25maWd1cmF0aW9uSlNPTiA9IHJlcXVpcmUoJy4vY29uZmlnLmpzb24nKTsKLWZ1bmN0aW9u
IGNvbmZpZyhrZXkpIHsKLSAgICByZXR1cm4gY29uZmlndXJhdGlvbkpTT05ba2V5XTsKLX0KLQot
ZnVuY3Rpb24gVGFza1F1ZXVlKCkgewotICAgIHZhciBxdWV1ZSA9IFtdOwotICAgIHZhciBudW1i
ZXJPZlJlbWFpbmluZ1Rhc2tzID0gMDsKLSAgICB2YXIgZW1wdHlRdWV1ZUNhbGxiYWNrOwotCi0g
ICAgZnVuY3Rpb24gc3RhcnRUYXNrc0luUXVldWUoKSB7Ci0gICAgICAgIGlmICghcXVldWUubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuIGVtcHR5UXVldWVDYWxsYmFjaygpOwotCi0gICAgICAg
IHZhciBzd2FwcGVkUXVldWUgPSBxdWV1ZTsKLSAgICAgICAgcXVldWUgPSBbXTsKLQotICAgICAg
ICAvLyBJbmNyZWFzZSB0aGUgY291bnRlciBiZWZvcmUgdGhlIGxvb3AgaW4gdGhlIGNhc2UgdGFz
a0NhbGxiYWNrIGlzIGNhbGxlZCBzeW5jaHJvbm91c2x5LgotICAgICAgICBudW1iZXJPZlJlbWFp
bmluZ1Rhc2tzICs9IHN3YXBwZWRRdWV1ZS5sZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc3dhcHBlZFF1ZXVlLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgc3dhcHBlZFF1ZXVl
W2ldKG51bGwsIHRhc2tDYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGFza0NhbGxi
YWNrKGVycm9yKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXJyb3IuCi0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KG51bWJlck9mUmVtYWluaW5nVGFza3MgPiAwKTsKLSAgICAgICAgbnVtYmVy
T2ZSZW1haW5pbmdUYXNrcy0tOwotICAgICAgICBpZiAoIW51bWJlck9mUmVtYWluaW5nVGFza3Mp
Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KHN0YXJ0VGFza3NJblF1ZXVlLCAwKTsKLSAgICB9Ci0K
LSAgICB0aGlzLmFkZFRhc2sgPSBmdW5jdGlvbiAodGFzaykgeyBxdWV1ZS5wdXNoKHRhc2spOyB9
Ci0gICAgdGhpcy5zdGFydCA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAgICBlbXB0eVF1
ZXVlQ2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICAgICAgc3RhcnRUYXNrc0luUXVldWUoKTsKLSAg
ICB9Ci19Ci0KLWZ1bmN0aW9uIFNlcmlhbGl6ZWRUYXNrUXVldWUoKSB7Ci0gICAgdmFyIHF1ZXVl
ID0gW107Ci0KLSAgICBmdW5jdGlvbiBleGVjdXRlTmV4dFRhc2soZXJyb3IpIHsKLSAgICAgICAg
Ly8gRklYTUU6IEhhbmRsZSBlcnJvci4KLSAgICAgICAgdmFyIGNhbGxiYWNrID0gcXVldWUucG9w
KCk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBjYWxsYmFjayhudWxsLCBleGVj
dXRlTmV4dFRhc2spOyB9LCAwKTsKLSAgICB9Ci0KLSAgICB0aGlzLmFkZFRhc2sgPSBmdW5jdGlv
biAodGFzaykgeyBxdWV1ZS5wdXNoKHRhc2spOyB9Ci0gICAgdGhpcy5zdGFydCA9IGZ1bmN0aW9u
IChjYWxsYmFjaykgewotICAgICAgICBxdWV1ZS5wdXNoKGNhbGxiYWNrKTsKLSAgICAgICAgcXVl
dWUucmV2ZXJzZSgpOwotICAgICAgICBleGVjdXRlTmV4dFRhc2soKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIG1haW4oYXJndikgewotICAgIHZhciBjbGllbnQgPSBjb25uZWN0KHRydWUpOwotICAg
IHZhciBmaWx0ZXIgPSBhcmd2WzJdOwotICAgIGNvbmZpcm1Vc2VyV2FudHNEYXRhYmFzZVRvQmVJ
bml0aWFsaXplZElmTmVlZGVkKGNsaWVudCwgZnVuY3Rpb24gKGVycm9yLCBzaG91bGRDb250aW51
ZSkgewotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9y
KTsKLQotICAgICAgICBpZiAoZXJyb3IgfHwgIXNob3VsZENvbnRpbnVlKSB7Ci0gICAgICAgICAg
ICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpbml0aWFsaXplRGF0YWJhc2UoY2xpZW50
LCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAg
ICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBkYXRhYmFzZScs
IGVycm9yKTsKLSAgICAgICAgICAgICAgICBjbGllbnQuZW5kKCk7Ci0gICAgICAgICAgICAgICAg
cHJvY2Vzcy5leGl0KDEpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgdGVzdENh
c2VRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVlKCk7Ci0gICAgICAgICAgICB2YXIgdGVz
dEZpbGVRdWV1ZSA9IG5ldyBTZXJpYWxpemVkVGFza1F1ZXVlKCk7Ci0gICAgICAgICAgICBmcy5y
ZWFkZGlyU3luYyhwYXRoVG9UZXN0cygpKS5tYXAoZnVuY3Rpb24gKHRlc3RGaWxlKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0RmlsZS5tYXRjaCgvLmpzJC8pIHx8IChmaWx0ZXIgJiYgdGVz
dEZpbGUuaW5kZXhPZihmaWx0ZXIpICE9IDApKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgdGVzdEZpbGVRdWV1ZS5hZGRUYXNrKGZ1bmN0aW9uIChlcnJvciwg
Y2FsbGJhY2spIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHRlc3RDb250ZW50ID0gZnMucmVh
ZEZpbGVTeW5jKHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSwgJ3V0Zi04Jyk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZhciBlbnZpcm9ubWVudCA9IG5ldyBUZXN0RW52aXJvbm1lbnQodGVzdENhc2VRdWV1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZtLnJ1bkluTmV3Q29udGV4dCh0ZXN0Q29udGVudCwg
ZW52aXJvbm1lbnQsIHBhdGhUb1Rlc3RzKHRlc3RGaWxlKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIHRlc3RGaWxlUXVldWUuc3RhcnQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAg
IGNsaWVudC5lbmQoKTsKLSAgICAgICAgICAgICAgICB0ZXN0Q2FzZVF1ZXVlLnN0YXJ0KGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0RPTkUnKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0K
LQotZnVuY3Rpb24gY29uZmlybVVzZXJXYW50c0RhdGFiYXNlVG9CZUluaXRpYWxpemVkSWZOZWVk
ZWQoY2xpZW50LCBjYWxsYmFjaykgewotICAgIGZ1bmN0aW9uIGZldGNoVGFibGVOYW1lcyhlcnJv
ciwgY2FsbGJhY2spIHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKGVycm9yKTsKLQotICAgICAgICBjbGllbnQucXVlcnkoJ1NFTEVDVCB0YWJsZV9uYW1l
IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyBXSEVSRSB0YWJsZV90eXBlID0gXCdCQVNF
IFRBQkxFXCcgYW5kIHRhYmxlX3NjaGVtYSA9IFwncHVibGljXCcnLCBmdW5jdGlvbiAoZXJyb3Is
IHJlc3VsdCkgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhlcnJvcik7Ci0gICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQucm93
cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wyd0YWJsZV9uYW1lJ107IH0pKTsgICAg
ICAgICAgICAKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluZE5vbkVtcHR5
VGFibGUoZXJyb3IsIGxpc3QsIGNhbGxiYWNrKSB7Ci0gICAgICAgIGlmIChlcnJvciB8fCAhbGlz
dC5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IpOwotCi0gICAgICAg
IHZhciB0YWJsZU5hbWUgPSBsaXN0LnNoaWZ0KCk7Ci0gICAgICAgIGNsaWVudC5xdWVyeSgnU0VM
RUNUIENPVU5UKCopIEZST00gJyArIHRhYmxlTmFtZSArICcgTElNSVQgMScsIGZ1bmN0aW9uIChl
cnJvciwgcmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKGVycm9yKTsKLQotICAgICAgICAgICAgaWYgKHJlc3VsdC5yb3dzWzBd
Wydjb3VudCddKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB0YWJsZU5h
bWUpOwotCi0gICAgICAgICAgICBmaW5kTm9uRW1wdHlUYWJsZShudWxsLCBsaXN0LCBjYWxsYmFj
ayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZldGNoVGFibGVOYW1lcyhudWxsLCBmdW5j
dGlvbiAoZXJyb3IsIHRhYmxlTmFtZXMpIHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLCBmYWxzZSk7Ci0KLSAgICAgICAgZmluZE5vbkVtcHR5
VGFibGUobnVsbCwgdGFibGVOYW1lcywgZnVuY3Rpb24gKGVycm9yLCBub25FbXB0eVRhYmxlKSB7
Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KGVycm9yLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGlmICghbm9uRW1wdHlUYWJsZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGNv
bnNvbGUud2FybignVGFibGUgJyArIG5vbkVtcHR5VGFibGUgKyAnIGlzIG5vdCBlbXB0eSBidXQg
cnVubmluZyB0ZXN0cyB3aWxsIGRyb3AgYWxsIHRhYmxlcy4nKTsKLSAgICAgICAgICAgIGFza1ll
c09yTm9RdWVzdGlvbihudWxsLCAnRG8geW91IHJlYWxseSB3YW50IHRvIGNvbnRpbnVlPycsIGNh
bGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGFza1llc09yTm9R
dWVzdGlvbihlcnJvciwgcXVlc3Rpb24sIGNhbGxiYWNrKSB7Ci0gICAgaWYgKGVycm9yKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IpOwotCi0gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUo
cXVlc3Rpb24gKyAnICh5L24pOicpOwotICAgIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7Ci0gICAg
cHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmLTgnKTsKLSAgICBwcm9jZXNzLnN0ZGluLm9u
KCdkYXRhJywgZnVuY3Rpb24gKGxpbmUpIHsKLSAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOwot
ICAgICAgICBpZiAobGluZSA9PT0gJ3knKSB7Ci0gICAgICAgICAgICBwcm9jZXNzLnN0ZGluLnBh
dXNlKCk7Ci0gICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0cnVlKTsKLSAgICAgICAgfSBlbHNl
IGlmIChsaW5lID09PSAnbicpIHsKLSAgICAgICAgICAgIHByb2Nlc3Muc3RkaW4ucGF1c2UoKTsK
LSAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGZhbHNlKTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgaW5wdXQ6JywgbGluZSk7Ci0gICAgfSk7Ci19
Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVEYXRhYmFzZShjbGllbnQsIGNhbGxiYWNrKSB7Ci0gICAg
dmFyIGNvbW1hU2VwYXJhdGVkU3FsU3RhdGVtZW50cyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoVG9E
YXRhYnNlU1FMKCksICJ1dGY4Iik7Ci0KLSAgICB2YXIgZmlyc3RFcnJvcjsKLSAgICB2YXIgcXVl
dWUgPSBuZXcgVGFza1F1ZXVlKCk7Ci0gICAgY29tbWFTZXBhcmF0ZWRTcWxTdGF0ZW1lbnRzLnNw
bGl0KC87XHMqKD89Q1JFQVRFfERST1ApLykuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGVtZW50KSB7
Ci0gICAgICAgIHF1ZXVlLmFkZFRhc2soZnVuY3Rpb24gKGVycm9yLCBjYWxsYmFjaykgewotICAg
ICAgICAgICAgY2xpZW50LnF1ZXJ5KHN0YXRlbWVudCwgZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGVycm9yICYmICFmaXJzdEVycm9yKQotICAgICAgICAgICAgICAgICAg
ICBmaXJzdEVycm9yID0gZXJyb3I7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KQotICAgIH0pOwotCi0gICAgcXVldWUuc3RhcnQoZnVuY3Rp
b24gKCkgeyBjYWxsYmFjayhmaXJzdEVycm9yKTsgfSk7Ci19Ci0KLXZhciBjdXJyZW50VGVzdENv
bnRleHQ7Ci1mdW5jdGlvbiBUZXN0RW52aXJvbm1lbnQodGVzdENhc2VRdWV1ZSkgewotICAgIHZh
ciBjdXJyZW50VGVzdEdyb3VwOwotCi0gICAgdGhpcy5hc3NlcnQgPSBhc3NlcnQ7Ci0gICAgdGhp
cy5jb25zb2xlID0gY29uc29sZTsKLQotICAgIC8vIGRlc2NyaWJlKCJ+IiwgZnVuY3Rpb24gKCkg
ewotICAgIC8vICAgICBpdCgifiIsIGZ1bmN0aW9uICgpIHsgYXNzZXJ0KHRydWUpOyB9KTsKLSAg
ICAvLyB9KTsKLSAgICB0aGlzLmRlc2NyaWJlID0gZnVuY3Rpb24gKHRlc3RHcm91cCwgY2FsbGJh
Y2spIHsKLSAgICAgICAgY3VycmVudFRlc3RHcm91cCA9IHRlc3RHcm91cDsKLSAgICAgICAgY2Fs
bGJhY2soKTsKLSAgICB9Ci0KLSAgICB0aGlzLml0ID0gZnVuY3Rpb24gKHRlc3RDYXNlRGVzY3Jp
cHRpb24sIHRlc3RDYXNlKSB7Ci0gICAgICAgIHRlc3RDYXNlUXVldWUuYWRkVGFzayhmdW5jdGlv
biAoZXJyb3IsIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBjdXJyZW50VGVzdENvbnRleHQgPSBu
ZXcgVGVzdENvbnRleHQoY3VycmVudFRlc3RHcm91cCwgdGVzdENhc2VEZXNjcmlwdGlvbiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGN1cnJlbnRUZXN0Q29udGV4dCA9IG51bGw7Ci0g
ICAgICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGFiYXNlKGNvbm5lY3QoKSwgY2FsbGJhY2spOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB0ZXN0Q2FzZSgpOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICB0aGlzLnBvc3RKU09OID0gZnVuY3Rpb24gKHBhdGgsIGNvbnRlbnQsIGNhbGxi
YWNrKSB7Ci0gICAgICAgIHNlbmRIdHRwUmVxdWVzdChwYXRoLCAnUE9TVCcsICdhcHBsaWNhdGlv
bi9qc29uJywgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIGZ1bmN0aW9uIChlcnJvciwgcmVzcG9u
c2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAgICAgICAgICAgIGNh
bGxiYWNrKHJlc3BvbnNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5odHRwR2V0
ID0gZnVuY3Rpb24gKHBhdGgsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHNlbmRIdHRwUmVxdWVzdChw
YXRoLCAnR0VUJywgbnVsbCwgJycsIGZ1bmN0aW9uIChlcnJvciwgcmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3Bv
bnNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5odHRwUG9zdD0gZnVuY3Rpb24g
KHBhdGgsIGNvbnRlbnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBjb250ZW50VHlwZSA9IG51
bGw7Ci0gICAgICAgIGlmICh0eXBlb2YoY29udGVudCkgIT0gInN0cmluZyIpIHsKLSAgICAgICAg
ICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc7Ci0g
ICAgICAgICAgICB2YXIgY29tcG9uZW50cyA9IFtdOwotICAgICAgICAgICAgZm9yICh2YXIga2V5
IGluIGNvbnRlbnQpCi0gICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKGtleSArICc9JyAr
IGVzY2FwZShjb250ZW50W2tleV0pKTsKLSAgICAgICAgICAgIGNvbnRlbnQgPSBjb21wb25lbnRz
LmpvaW4oJyYnKTsKLSAgICAgICAgfQotICAgICAgICBzZW5kSHR0cFJlcXVlc3QocGF0aCwgJ1BP
U1QnLCBjb250ZW50VHlwZSwgY29udGVudCwgZnVuY3Rpb24gKGVycm9yLCByZXNwb25zZSkgewot
ICAgICAgICAgICAgYXNzZXJ0LmlmRXJyb3IoZXJyb3IpOwotICAgICAgICAgICAgY2FsbGJhY2so
cmVzcG9uc2UpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICB0aGlzLnF1ZXJ5QW5kRmV0Y2hB
bGwgPSBmdW5jdGlvbiAocXVlcnksIHBhcmFtZXRlcnMsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZh
ciBjbGllbnQgPSBjb25uZWN0KCk7Ci0gICAgICAgIGNsaWVudC5xdWVyeShxdWVyeSwgcGFyYW1l
dGVycywgZnVuY3Rpb24gKGVycm9yLCByZXN1bHQpIHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFzc2VydC5pZkVycm9yKGVycm9yKTsKLSAg
ICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQucm93cyk7Ci0gICAgICAgICAgICB9LCAwKTsK
LSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdGhpcy5zaGEyNTYgPSBmdW5jdGlvbiAoZGF0YSkg
ewotICAgICAgICB2YXIgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKTsKLSAgICAg
ICAgaGFzaC51cGRhdGUoZGF0YSk7Ci0gICAgICAgIHJldHVybiBoYXNoLmRpZ2VzdCgnaGV4Jyk7
Ci0gICAgfQotCi0gICAgdGhpcy5jb25maWcgPSBjb25maWc7Ci0KLSAgICB0aGlzLm5vdGlmeURv
bmUgPSBmdW5jdGlvbiAoKSB7IGN1cnJlbnRUZXN0Q29udGV4dC5kb25lKCk7IH0KLX0KLQotcHJv
Y2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICBpZiAo
IWN1cnJlbnRUZXN0Q29udGV4dCkKLSAgICAgICAgdGhyb3cgZXJyb3I7Ci0gICAgY3VycmVudFRl
c3RDb250ZXh0LmxvZ0Vycm9yKCdVbmNhdWdodCBleGNlcHRpb24nLCBlcnJvcik7Ci0gICAgY3Vy
cmVudFRlc3RDb250ZXh0LmRvbmUoKTsKLX0pOwotCi1mdW5jdGlvbiBzZW5kSHR0cFJlcXVlc3Qo
cGF0aCwgbWV0aG9kLCBjb250ZW50VHlwZSwgY29udGVudCwgY2FsbGJhY2spIHsKLSAgICB2YXIg
b3B0aW9ucyA9IGNvbmZpZygndGVzdFNlcnZlcicpOwotICAgIG9wdGlvbnMucGF0aCA9IHBhdGg7
Ci0gICAgb3B0aW9ucy5tZXRob2QgPSBtZXRob2Q7Ci0KLSAgICB2YXIgcmVxdWVzdCA9IGh0dHAu
cmVxdWVzdChvcHRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgdmFyIHJlc3Bv
bnNlVGV4dCA9ICcnOwotICAgICAgICByZXNwb25zZS5zZXRFbmNvZGluZygndXRmOCcpOwotICAg
ICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykgeyByZXNwb25zZVRleHQg
Kz0gY2h1bms7IH0pOwotICAgICAgICByZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY2Fs
bGJhY2sobnVsbCwge3N0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsIHJlc3BvbnNlVGV4
dDogcmVzcG9uc2VUZXh0fSk7Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci0gICAgcmVxdWVzdC5vbignZXJyb3InLCBjYWxsYmFjayk7Ci0gICAgaWYgKGNvbnRlbnRU
eXBlKQotICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVudFR5
cGUpOwotICAgIGlmIChjb250ZW50KQotICAgICAgICByZXF1ZXN0LndyaXRlKGNvbnRlbnQpOwot
ICAgIHJlcXVlc3QuZW5kKCk7Ci19Ci0KLWZ1bmN0aW9uIFRlc3RDb250ZXh0KHRlc3RHcm91cCwg
dGVzdENhc2UsIGNhbGxiYWNrKSB7Ci0gICAgdmFyIGZhaWxlZCA9IGZhbHNlOwotCi0gICAgdGhp
cy5kZXNjcmlwdGlvbiA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRlc3RHcm91cCAr
ICcgJyArIHRlc3RDYXNlOwotICAgIH0KLSAgICB0aGlzLmRvbmUgPSBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGlmICghZmFpbGVkKQotICAgICAgICAgICAgY29uc29sZS5sb2coJ1BBU1MnKTsKLSAg
ICAgICAgY2FsbGJhY2soKTsKLSAgICB9Ci0gICAgdGhpcy5sb2dFcnJvciA9IGZ1bmN0aW9uIChl
cnJvciwgZGV0YWlscykgewotICAgICAgICBmYWlsZWQgPSB0cnVlOwotICAgICAgICBjb25zb2xl
LmVycm9yKGVycm9yLCBkZXRhaWxzKTsKLSAgICB9Ci0KLSAgICBwcm9jZXNzLnN0ZG91dC53cml0
ZSh0aGlzLmRlc2NyaXB0aW9uKCkgKyAnOiAnKTsKLX0KLQotbWFpbihwcm9jZXNzLmFyZ3YpOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hZG1pbi1wbGF0Zm9y
bXMtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hZG1pbi1wbGF0Zm9ybXMtdGVzdHMuanMJKHJldmlzaW9uIDE5OTEyMikJKGZyb20g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FkbWluLXBsYXRmb3Jtcy5qczoxOTkxMjIp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXBsYXRmb3Jt
cy10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyMiBAQAorZGVzY3JpYmUoIi9h
ZG1pbi9wbGF0Zm9ybXMiLCBmdW5jdGlvbiAoKSB7CisgICAgdmFyIHJlcG9ydHNGb3JEaWZmZXJl
bnRQbGF0Zm9ybXMgPSBbCisgICAgeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCisg
ICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQwOTowMTo0NyIsCisgICAgICAgICJidWls
ZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29t
ZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCisgICAgICAgICJ0
ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBb
WzEsIDEsIDFdLCBbMSwgMSwgMV1dIH0gfSB9IH0sCisgICAgfSwKKyAgICB7CisgICAgICAgICJi
dWlsZE51bWJlciI6ICIzMDAxIiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEw
OjEyOjAzIiwKKyAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAg
ImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAi
TW91bnRhaW4gTGlvbiIsCisgICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7
IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzIsIDIsIDJdLCBbMiwgMiwgMl1dIH0sICJDb21i
aW5lZCI6IHsgImN1cnJlbnQiOiBbWzMsIDMsIDNdLCBbMywgMywgM11dIH19IH0gfSwKKyAgICB9
LAorICAgIHsKKyAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAorICAgICAgICAiYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMTI6NTY6MjYiLAorICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAorICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJwbGF0Zm9ybSI6ICJUcnVuayBNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgInRlc3Rz
IjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbNCwg
NCwgNF0sIFs0LCA0LCA0XV0gfSB9IH0gfQorICAgIH1dOworCisgICAgZnVuY3Rpb24gc3VibWl0
UmVwb3J0KHJlcG9ydCwgY2FsbGJhY2spIHsKKyAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5T
RVJUIElOVE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2
YWx1ZXMgKCQxLCAkMiknLAorICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hh
MjU2KHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZv
cm1zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIGl0
KCJzaG91bGQgZGVsZXRlIHRoZSBwbGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVy
IG9uZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNGb3JEaWZm
ZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ1NFTEVDVCAqIEZST00gcGxhdGZvcm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwg
ZnVuY3Rpb24gKG9sZFBsYXRmb3JtcykgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRQbGF0Zm9ybXMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xk
UGxhdGZvcm1zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3Vu
dGFpbiBMaW9uJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1sy
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAg
ICAgIGh0dHBQb3N0KCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywg
J2lkJzogb2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRQ
bGF0Zm9ybXNbMl1bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcGxhdGZv
cm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24gKG5ld1BsYXRmb3Jtcykg
eworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXMs
IFtvbGRQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1syXV0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0
KCJzaG91bGQgbW92ZSB0ZXN0IHJ1bnMgZnJvbSB0aGUgbWVyZ2VkIHBsYXRmb3JtIHRvIHRoZSBk
ZXN0aW5hdGlvbiBwbGF0Zm9ybSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgc3VibWl0UmVwb3J0
KHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHZhciBxdWVyeUZvclJ1bnMgPSAnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMsIHRlc3RfY29uZmln
dXJhdGlvbnMsIHBsYXRmb3JtcyBXSEVSRSBydW5fY29uZmlnID0gY29uZmlnX2lkIEFORCBjb25m
aWdfcGxhdGZvcm0gPSBwbGF0Zm9ybV9pZCBPUkRFUiBieSBydW5fbWVhbl9jYWNoZSc7CisgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChvbGRU
ZXN0UnVucykgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5n
dGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1swXVsncGxh
dGZvcm1fbmFtZSddLCAnTWF2ZXJpY2tzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZFRlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlv
bicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sxXVsncnVuX3N1
bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5z
WzJdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydydW5fc3VtX2NhY2hlJ10sIDE4KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX25hbWUnXSwg
J1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xk
VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOworICAgICAgICAgICAgICAgIGh0dHBQ
b3N0KCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywgJ2lkJzogb2xk
VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFRlc3RSdW5zWzNd
WydwbGF0Zm9ybV9pZCddfSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yUnVucywgW10sIGZ1bmN0aW9uIChuZXdU
ZXN0UnVucykgeworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RS
dW5zLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1swXVsncnVuX2lkJ10pOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydwbGF0Zm9ybV9u
YW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5z
WzFdWydydW5faWQnXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX3N1
bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwg
b2xkVGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4g
TGlvbicpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5z
WzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVu
X2NvbmZpZyddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBjb25maWd1
cmF0aW9ucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3RpbmF0aW9uIHBsYXRm
b3JtIiwgZnVuY3Rpb24gKCkgeworICAgICAgICByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1z
WzBdWyd0ZXN0cyddID0geyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiYmFz
ZWxpbmUiOiBbWzEsIDEsIDFdLCBbMSwgMSwgMV1dIH0gfSB9IH07CisgICAgICAgIHN1Ym1pdFJl
cG9ydChyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICB2YXIgcXVlcnlGb3JDb25maWcgPSAnU0VMRUNUICogZnJvbSB0ZXN0X2NvbmZpZ3VyYXRp
b25zLCBwbGF0Zm9ybXMsIHRlc3RfbWV0cmljcycKKyAgICAgICAgICAgICAgICArICcgd2hlcmUg
Y29uZmlnX3BsYXRmb3JtID0gcGxhdGZvcm1faWQgYW5kIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNf
aWQgYW5kIHBsYXRmb3JtX25hbWUgaW4gKCQxLCAkMikgb3JkZXIgYnkgY29uZmlnX2lkJzsKKyAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzRm9yRGlm
ZmVyZW50UGxhdGZvcm1zWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZv
cm1zWzJdWydwbGF0Zm9ybSddXSwgZnVuY3Rpb24gKGNvbmZpZ3MpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29uZmlncy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQ
bGF0Zm9ybXNbMF1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJl
cG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10s
ICdjdXJyZW50Jyk7CisgICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMu
cGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBjb25maWdzWzBdWydwbGF0Zm9ybV9pZCdd
LCAnZGVzdGluYXRpb24nOiBjb25maWdzWzFdWydwbGF0Zm9ybV9pZCddfSwgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5
Rm9yQ29uZmlnLCBbcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1swXVsncGxhdGZvcm0nXSwg
cmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXV0sIGZ1bmN0aW9uIChu
ZXdDb25maWdzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29u
Zmlncy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5l
d0NvbmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jt
c1syXVsncGxhdGZvcm0nXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
bmV3Q29uZmlnc1swXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdi
YXNlbGluZScpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZp
Z3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsn
cGxhdGZvcm0nXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29u
Zmlnc1sxXVsnbWV0cmljX25hbWUnXSwgJ0ZyYW1lUmF0ZScpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50
Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0pOworCit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYWRtaW4tcGxhdGZvcm1zLXRlc3RzLmpzCSh3
b3JraW5nIGNvcHkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fk
bWluLXBsYXRmb3Jtcy10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxMjIgKzEsMTQ1IEBA
CisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworCitj
b25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsK
K2NvbnN0IGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3Q7Citj
b25zdCBzdWJtaXRSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcycpLnN1Ym1pdFJlcG9ydDsKKwogZGVzY3JpYmUoIi9hZG1pbi9wbGF0Zm9ybXMiLCBmdW5j
dGlvbiAoKSB7Ci0gICAgdmFyIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMgPSBbCi0gICAg
ewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCi0gICAgICAgICJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQwOTowMTo0NyIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAg
InBsYXRmb3JtIjogIk1hdmVyaWNrcyIsCi0gICAgICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1l
dHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBbWzEsIDEsIDFdLCBbMSwgMSwgMV1d
IH0gfSB9IH0sCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIzMDAxIiwK
LSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKLSAgICAgICAgImJ1
aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAg
ICAgICJ0ZXN0cyI6IHsidGVzdCI6IHsgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJl
bnQiOiBbWzIsIDIsIDJdLCBbMiwgMiwgMl1dIH0sICJDb21iaW5lZCI6IHsgImN1cnJlbnQiOiBb
WzMsIDMsIDNdLCBbMywgMywgM11dIH19IH0gfSwKLSAgICB9LAorICAgIHRoaXMudGltZW91dCgx
MDAwKTsKKyAgICBUZXN0U2VydmVyLmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5F
dmVyeVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMo
KQogICAgIHsKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjMwMDMiLAotICAgICAgICAiYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMTI6NTY6MjYiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0g
ICAgICAgICJwbGF0Zm9ybSI6ICJUcnVuayBNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3Rz
IjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbNCwg
NCwgNF0sIFs0LCA0LCA0XV0gfSB9IH0gfQotICAgIH1dOwotCi0gICAgZnVuY3Rpb24gc3VibWl0
UmVwb3J0KHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5T
RVJUIElOVE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2
YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hh
MjU2KHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZv
cm1zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0
KCJzaG91bGQgZGVsZXRlIHRoZSBwbGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVy
IG9uZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc3VibWl0UmVwb3J0KHJlcG9ydHNGb3JEaWZm
ZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ1NFTEVDVCAqIEZST00gcGxhdGZvcm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwg
ZnVuY3Rpb24gKG9sZFBsYXRmb3JtcykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRQbGF0Zm9ybXMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xk
UGxhdGZvcm1zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3Vu
dGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFBsYXRmb3Jtc1sy
XVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAg
ICAgIGh0dHBQb3N0KCcvYWRtaW4vcGxhdGZvcm1zLnBocCcsIHsnYWN0aW9uJzogJ21lcmdlJywg
J2lkJzogb2xkUGxhdGZvcm1zWzFdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBvbGRQ
bGF0Zm9ybXNbMl1bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcGxhdGZv
cm1zIE9SREVSIGJ5IHBsYXRmb3JtX25hbWUnLCBbXSwgZnVuY3Rpb24gKG5ld1BsYXRmb3Jtcykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXMs
IFtvbGRQbGF0Zm9ybXNbMF0sIG9sZFBsYXRmb3Jtc1syXV0pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCisg
ICAgICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDA5OjAxOjQ3IiwKKyAgICAg
ICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgICAg
ICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICAgICAicGxh
dGZvcm0iOiAiTWF2ZXJpY2tzIiwKKyAgICAgICAgICAgICAgICAidGVzdHMiOiB7InRlc3QiOiB7
ICJtZXRyaWNzIjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1sxLCAxLCAxXSwgWzEsIDEs
IDFdXSB9IH0gfSB9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMSIsCisgICAgICAgICAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKKyAgICAgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKKyAgICAgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisg
ICAgICAgICAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRl
IjogeyAiY3VycmVudCI6IFtbMiwgMiwgMl0sIFsyLCAyLCAyXV0gfSwgIkNvbWJpbmVkIjogeyAi
Y3VycmVudCI6IFtbMywgMywgM10sIFszLCAzLCAzXV0gfX0gfSB9LAorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMyIsCisg
ICAgICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEyOjU2OjI2IiwKKyAgICAg
ICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgICAg
ICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICAgICAicGxh
dGZvcm0iOiAiVHJ1bmsgTW91bnRhaW4gTGlvbiIsCisgICAgICAgICAgICAgICAgInRlc3RzIjog
eyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbNCwgNCwg
NF0sIFs0LCA0LCA0XV0gfSB9IH0gfQorICAgICAgICAgICAgfV07CisgICAgfSAKKworICAgIGl0
KCJzaG91bGQgZGVsZXRlIHRoZSBwbGF0Zm9ybSB0aGF0IGdvdCBtZXJnZWQgaW50byBhbm90aGVy
IG9uZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICBsZXQgb2xkUGxhdGZvcm1zOyAgICAgICAgCisgICAgICAgIHN1
Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgncGxhdGZvcm1zJywgJ25hbWUn
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocGxhdGZvcm1zKSB7CisgICAgICAgICAgICBv
bGRQbGF0Zm9ybXMgPSBwbGF0Zm9ybXM7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxh
dGZvcm1zLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1z
WzBdWyduYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRQ
bGF0Zm9ybXNbMV1bJ25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvbGRQbGF0Zm9ybXNbMl1bJ25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1z
LnBocCcsCisgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRQbGF0
Zm9ybXNbMV1bJ2lkJ10sICdkZXN0aW5hdGlvbic6IG9sZFBsYXRmb3Jtc1syXVsnaWQnXX0pOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxl
Y3RBbGwoJ3BsYXRmb3JtcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChuZXdQbGF0Zm9y
bXMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdQbGF0Zm9ybXMubGVuZ3RoLCAyKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwobmV3UGxhdGZvcm1zWzBdLCBvbGRQbGF0Zm9y
bXNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdQbGF0Zm9ybXNbMV0sIG9s
ZFBsYXRmb3Jtc1syXSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOwogICAgIH0pOwogCi0gICAgaXQoInNob3VsZCBtb3ZlIHRlc3QgcnVucyBmcm9tIHRoZSBt
ZXJnZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcywgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIHF1ZXJ5Rm9yUnVucyA9ICdTRUxFQ1QgKiBGUk9N
IHRlc3RfcnVucywgdGVzdF9jb25maWd1cmF0aW9ucywgcGxhdGZvcm1zIFdIRVJFIHJ1bl9jb25m
aWcgPSBjb25maWdfaWQgQU5EIGNvbmZpZ19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIE9SREVSIGJ5
IHJ1bl9tZWFuX2NhY2hlJzsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JS
dW5zLCBbXSwgZnVuY3Rpb24gKG9sZFRlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG9sZFRlc3RSdW5zLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwg
Nik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9y
bV9uYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExp
b24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9z
dW1fY2FjaGUnXSwgMTgpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVu
c1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7
Ci0gICAgICAgICAgICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rp
b24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3Rp
bmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JS
dW5zLCBbXSwgZnVuY3Rpb24gKG5ld1Rlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5z
WzBdWydydW5faWQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10s
IDYpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFd
WydydW5faWQnXSwgb2xkVGVzdFJ1bnNbMV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1
bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5z
WzJdWydydW5faWQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1
bV9jYWNoZSddLCAxOCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3
VGVzdFJ1bnNbM11bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9u
YW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmln
J10sIG5ld1Rlc3RSdW5zWzNdWydydW5fY29uZmlnJ10pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIG1vdmUg
dGVzdCBydW5zIGZyb20gdGhlIG1lcmdlZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxh
dGZvcm0iLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgb2xkVGVzdFJ1bnM7CisgICAg
ICAgIGNvbnN0IHF1ZXJ5Rm9yUnVucyA9ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9j
b25maWd1cmF0aW9ucywgcGxhdGZvcm1zIFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5E
IGNvbmZpZ19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsK
KyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHN1Ym1p
dFJlcG9ydChyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zKCkpLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KHF1ZXJ5Rm9yUnVucyk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgb2xkVGVzdFJ1bnMgPSByZXN1
bHQucm93czsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVucy5sZW5ndGgsIDQp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydwbGF0Zm9ybV9uYW1l
J10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1sw
XVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0
UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1syXVsncGxhdGZvcm1fbmFtZSddLCAnTW91
bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzJdWydy
dW5fc3VtX2NhY2hlJ10sIDE4KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVu
c1szXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0Rm9ybVVybGVuY29kZWREYXRhKCcvYWRtaW4vcGxhdGZvcm1zLnBo
cCcsCisgICAgICAgICAgICAgICAgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBvbGRUZXN0UnVu
c1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNbM11bJ3BsYXRm
b3JtX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gZGIucXVlcnkocXVlcnlGb3JSdW5zKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
cmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBuZXdUZXN0UnVucyA9IHJlc3VsdC5yb3dzOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1sw
XVsncnVuX2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzBdWydw
bGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1swXVsncnVuX3N1bV9jYWNoZSddLCA2KTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChuZXdUZXN0UnVuc1sxXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzFdWydydW5faWQnXSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMV1bJ3BsYXRmb3JtX25hbWUn
XSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdU
ZXN0UnVuc1sxXVsncnVuX3N1bV9jYWNoZSddLCAxMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwobmV3VGVzdFJ1bnNbMl1bJ3J1bl9pZCddLCBvbGRUZXN0UnVuc1syXVsncnVuX2lkJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzJdWydwbGF0Zm9ybV9uYW1lJ10s
ICdUcnVuayBNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVz
dFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG5ld1Rlc3RSdW5zWzNdWydydW5faWQnXSwgb2xkVGVzdFJ1bnNbM11bJ3J1bl9pZCddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSddLCAn
VHJ1bmsgTW91bnRhaW4gTGlvbicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RS
dW5zWzNdWydydW5fc3VtX2NhY2hlJ10sIDI0KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1sxXVsncnVuX2NvbmZpZyddLCBuZXdUZXN0UnVuc1szXVsncnVuX2NvbmZpZydd
KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7
CiAKLSAgICBpdCgic2hvdWxkIG1vdmUgdGVzdCBjb25maWd1cmF0aW9ucyBmcm9tIHRoZSBtZXJn
ZWQgcGxhdGZvcm0gdG8gdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWyd0ZXN0cyddID0geyJ0ZXN0
IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiYmFzZWxpbmUiOiBbWzEsIDEsIDFdLCBb
MSwgMSwgMV1dIH0gfSB9IH07Ci0gICAgICAgIHN1Ym1pdFJlcG9ydChyZXBvcnRzRm9yRGlmZmVy
ZW50UGxhdGZvcm1zLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIgcXVlcnlGb3JDb25m
aWcgPSAnU0VMRUNUICogZnJvbSB0ZXN0X2NvbmZpZ3VyYXRpb25zLCBwbGF0Zm9ybXMsIHRlc3Rf
bWV0cmljcycKLSAgICAgICAgICAgICAgICArICcgd2hlcmUgY29uZmlnX3BsYXRmb3JtID0gcGxh
dGZvcm1faWQgYW5kIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQgYW5kIHBsYXRmb3JtX25hbWUg
aW4gKCQxLCAkMikgb3JkZXIgYnkgY29uZmlnX2lkJzsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWydw
bGF0Zm9ybSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzJdWydwbGF0Zm9ybSddXSwg
ZnVuY3Rpb24gKGNvbmZpZ3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBdWydw
bGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXNbMF1bJ3BsYXRmb3Jt
J10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWdzWzBdWydtZXRyaWNfbmFt
ZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3Nb
MF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0
Zm9ybXNbMl1bJ3BsYXRmb3JtJ10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25m
aWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAg
ICAgICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVy
Z2UnLCAnaWQnOiBjb25maWdzWzBdWydwbGF0Zm9ybV9pZCddLCAnZGVzdGluYXRpb24nOiBjb25m
aWdzWzFdWydwbGF0Zm9ybV9pZCddfSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKHF1ZXJ5Rm9yQ29uZmlnLCBbcmVwb3J0c0Zv
ckRpZmZlcmVudFBsYXRmb3Jtc1swXVsncGxhdGZvcm0nXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBs
YXRmb3Jtc1syXVsncGxhdGZvcm0nXV0sIGZ1bmN0aW9uIChuZXdDb25maWdzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlncy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnbWV0cmlj
X25hbWUnXSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld0NvbmZpZ3NbMF1bJ2NvbmZpZ190eXBlJ10sICdiYXNlbGluZScpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUn
XSwgcmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnbWV0cmljX25hbWUn
XSwgJ0ZyYW1lUmF0ZScpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5l
d0NvbmZpZ3NbMV1bJ2NvbmZpZ190eXBlJ10sICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQg
bW92ZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIGZyb20gdGhlIG1lcmdlZCBwbGF0Zm9ybSB0byB0aGUg
ZGVzdGluYXRpb24gcGxhdGZvcm0iLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgb2xk
Q29uZmlnczsKKyAgICAgICAgY29uc3QgcmVwb3J0cyA9IHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0
Zm9ybXMoKTsKKyAgICAgICAgcmVwb3J0c1swXVsndGVzdHMnXSA9IHsidGVzdCI6IHsgIm1ldHJp
Y3MiOiB7IkZyYW1lUmF0ZSI6IHsgImJhc2VsaW5lIjogW1sxLCAxLCAxXSwgWzEsIDEsIDFdXSB9
IH0gfSB9OworICAgICAgICBjb25zdCBxdWVyeUZvckNvbmZpZyA9ICdTRUxFQ1QgKiBmcm9tIHRl
c3RfY29uZmlndXJhdGlvbnMsIHBsYXRmb3JtcywgdGVzdF9tZXRyaWNzJworICAgICAgICAgICAg
KyAnIHdoZXJlIGNvbmZpZ19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIGFuZCBjb25maWdfbWV0cmlj
ID0gbWV0cmljX2lkIGFuZCBwbGF0Zm9ybV9uYW1lIGluICgkMSwgJDIpIG9yZGVyIGJ5IGNvbmZp
Z19pZCc7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAg
ICBzdWJtaXRSZXBvcnQocmVwb3J0cykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFtyZXBvcnRzWzBdWydwbGF0Zm9ybSddLCBy
ZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Vs
dCkgeworICAgICAgICAgICAgb2xkQ29uZmlncyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvbGRDb25maWdzWzBdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMF1bJ3BsYXRmb3Jt
J10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMF1bJ21ldHJpY19uYW1l
J10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzBd
Wydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZENvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdG
cmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRDb25maWdzWzFdWydjb25m
aWdfdHlwZSddLCAnY3VycmVudCcpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtVXJsZW5jb2Rl
ZERhdGEoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywKKyAgICAgICAgICAgICAgICB7J2FjdGlvbic6
ICdtZXJnZScsICdpZCc6IG9sZENvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlv
bic6IG9sZENvbmZpZ3NbMV1bJ3BsYXRmb3JtX2lkJ119KTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIucXVlcnkocXVlcnlGb3JDb25maWcsIFty
ZXBvcnRzWzBdWydwbGF0Zm9ybSddLCByZXBvcnRzWzJdWydwbGF0Zm9ybSddXSk7CisgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3QgbmV3Q29uZmln
cyA9IHJlc3VsdC5yb3dzOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld0NvbmZpZ3MubGVu
Z3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydwbGF0Zm9y
bV9uYW1lJ10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld0NvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzBdWydjb25maWdfdHlwZSddLCAnYmFzZWxpbmUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdDb25maWdzWzFdWydwbGF0Zm9ybV9uYW1l
J10sIHJlcG9ydHNbMl1bJ3BsYXRmb3JtJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5l
d0NvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChuZXdDb25maWdzWzFdWydjb25maWdfdHlwZSddLCAnY3VycmVudCcpOworICAg
ICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAogfSk7
CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJv
Y2Vzcy1yZXBvcnQtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hZG1pbi1yZXByb2Nlc3MtcmVwb3J0LXRlc3RzLmpzCShyZXZpc2lv
biAxOTkxMjIpCShmcm9tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hZG1pbi1yZXBy
b2Nlc3MtcmVwb3J0LmpzOjE5OTEyMikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDc2IEBACitkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5j
dGlvbiAoKSB7CisgICAgdmFyIHNpbXBsZVJlcG9ydCA9IFt7CisgICAgICAgICJidWlsZE51bWJl
ciI6ICIxOTg2IiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwK
KyAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgImJ1aWxkZXJQ
YXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICAgICAidGVzdCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IkZyYW1lUmF0ZSI6IHsgImN1cnJlbnQiOiBb
WzEsIDIsIDNdLCBbNCwgNSwgNl1dIH19CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IH0sCisgICAgICAgIH1dOworCisgICAgZnVuY3Rpb24gYWRkQnVpbGRlcihyZXBvcnQsIGNhbGxi
YWNrKSB7CisgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxkZXJzIChi
dWlsZGVyX25hbWUsIGJ1aWxkZXJfcGFzc3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIpJywKKyAg
ICAgICAgICAgIFtyZXBvcnRbMF0uYnVpbGRlck5hbWUsIHNoYTI1NihyZXBvcnRbMF0uYnVpbGRl
clBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICBpdCgic2hvdWxkIGFkZCBidWls
ZCIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlcihzaW1wbGVSZXBvcnQsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBv
cnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBm
dW5jdGlvbiAoYnVpbGRSb3dzKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUm93c1swXVsnYnVpbGRfbnVtYmVyJ10sIDE5ODYpOworICAgICAgICAgICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJl
cG9ydFJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRS
b3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3J0Um93c1swXVsncmVwb3J0X2J1aWxkX251bWJlciddLCAxOTg2KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVp
bGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHM7IFNFTEVDVCAqIEZST00gYnVpbGRzJywgW10s
IGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSb3dzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHJlcG9ydElkID0gcmVwb3J0Um93c1swXVsncmVwb3J0X2lkJ107CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0
PScgKyByZXBvcnRJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10s
IGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3NbMF1bJ2J1aWxkX251bWJl
ciddLCAxOTg2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIG5vdCBkdXBsaWNhdGUgdGhlIHJl
cHJvY2Vzc2VkIHJlcG9ydCIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlcihzaW1w
bGVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKG9yaWdpbmFsUmVwcm90Um93cykgeworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3JpZ2luYWxSZXByb3RSb3dzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRzIFNFVCBy
ZXBvcnRfYnVpbGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vzcy1yZXBv
cnQ/cmVwb3J0PScgKyBvcmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9pZCddLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUICogRlJPTSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyZXBvcnRSb3dzKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsUmVwcm90Um93c1swXVsncmVwb3J0X2Nv
bW1pdHRlZF9hdCddID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
b3J0Um93c1swXVsncmVwb3J0X2NvbW1pdHRlZF9hdCddID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG9yaWdpbmFsUmVwcm90Um93c1swXVsn
cmVwb3J0X2J1aWxkJ10sIHJlcG9ydFJvd3NbMF1bJ3JlcG9ydF9idWlsZCddKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfYnVp
bGQnXSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFJvd3Nb
MF1bJ3JlcG9ydF9idWlsZCddID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvcnRSb3dzLCBvcmlnaW5hbFJlcHJvdFJvd3MpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FkbWluLXJlcHJvY2Vzcy1y
ZXBvcnQtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYWRtaW4tcmVwcm9jZXNzLXJlcG9ydC10ZXN0cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDE3IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJl
cXVpcmUoJ2Fzc2VydCcpOworCitjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJj
ZXMvdGVzdC1zZXJ2ZXIuanMnKTsKK2NvbnN0IGFkZEJ1aWxkZXJGb3JSZXBvcnQgPSByZXF1aXJl
KCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZEJ1aWxkZXJGb3JSZXBvcnQ7
Citjb25zdCBjb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJj
ZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5jb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0Owor
CiBkZXNjcmliZSgiL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
dmFyIHNpbXBsZVJlcG9ydCA9IFt7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOworICAgIFRlc3RT
ZXJ2ZXIuaW5qZWN0KCk7CisgICAgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCgpOworCisg
ICAgY29uc3Qgc2ltcGxlUmVwb3J0ID0gW3sKICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjE5ODYi
LAogICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAogICAgICAgICAi
YnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLApAQCAtMTIsNjUgKzI0LDYzIEBAIGRlc2NyaWJl
KCIvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmMKICAgICAgICAgICAgIH0sCiAgICAgICAg
IH1dOwogCi0gICAgZnVuY3Rpb24gYWRkQnVpbGRlcihyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxkZXJzIChidWlsZGVyX25hbWUs
IGJ1aWxkZXJfcGFzc3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgIFty
ZXBvcnRbMF0uYnVpbGRlck5hbWUsIHNoYTI1NihyZXBvcnRbMF0uYnVpbGRlclBhc3N3b3JkKV0s
IGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBidWlsZCIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihzaW1wbGVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBzaW1wbGVSZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBx
dWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoYnVp
bGRSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93c1swXVsn
YnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJlcG9ydFJvd3MpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRSb3dzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0Um93c1swXVsn
cmVwb3J0X2J1aWxkX251bWJlciddLCAxOTg2KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVpbGQgPSBOVUxMOyBE
RUxFVEUgRlJPTSBidWlsZHM7IFNFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChi
dWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSb3dzLmxlbmd0aCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9y
dElkID0gcmVwb3J0Um93c1swXVsncmVwb3J0X2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaHR0cEdldCgnL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PScgKyByZXBvcnRJ
ZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChi
dWlsZFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3NbMF1bJ2J1aWxkX251bWJlciddLCAxOTg2KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Cisg
ICAgaXQoInNob3VsZCBhZGQgYnVpbGQiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGxldCByZXBvcnRJZDsKKyAgICAg
ICAgYWRkQnVpbGRlckZvclJlcG9ydChzaW1wbGVSZXBvcnRbMF0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdidWls
ZHMnKSwgZGIuc2VsZWN0QWxsKCdyZXBvcnRzJyldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBidWlsZHMgPSByZXN1bHRbMF07CisgICAg
ICAgICAgICBjb25zdCByZXBvcnRzID0gcmVzdWx0WzFdOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkc1sw
XVsnbnVtYmVyJ10sIDE5ODYpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgIHJlcG9ydElkID0gcmVwb3J0c1swXVsnaWQnXTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzWzBdWydidWlsZF9udW1iZXInXSwgMTk4Nik7Cisg
ICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoJ1VQREFURSByZXBvcnRzIFNFVCByZXBvcnRfYnVp
bGQgPSBOVUxMOyBERUxFVEUgRlJPTSBidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCdidWlsZHMnKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzLmxlbmd0aCwgMCk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FkbWluL3JlcHJvY2Vzcy1yZXBvcnQ/cmVwb3J0PSR7
cmVwb3J0SWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
cmV0dXJuIGRiLnNlbGVjdEFsbCgnYnVpbGRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KGJ1aWxkcykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgsIDEpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkc1swXVsnbnVtYmVyJ10sIDE5ODYpOworICAg
ICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAg
IGl0KCJzaG91bGQgbm90IGR1cGxpY2F0ZSB0aGUgcmVwcm9jZXNzZWQgcmVwb3J0IiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCwgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAo
b3JpZ2luYWxSZXByb3RSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
cmlnaW5hbFJlcHJvdFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVU
RSBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBodHRwR2V0KCcvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JyArIG9yaWdpbmFsUmVw
cm90Um93c1swXVsncmVwb3J0X2lkJ10sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwg
ZnVuY3Rpb24gKHJlcG9ydFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfY29tbWl0dGVkX2F0J10gPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRSb3dzWzBdWydyZXBvcnRfY29tbWl0
dGVkX2F0J10gPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwob3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfYnVpbGQnXSwgcmVwb3J0Um93
c1swXVsncmVwb3J0X2J1aWxkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cmlnaW5hbFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9idWlsZCddID0gbnVsbDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVwb3J0Um93c1swXVsncmVwb3J0X2J1aWxkJ10gPSBudWxs
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9y
dFJvd3MsIG9yaWdpbmFsUmVwcm90Um93cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxk
IG5vdCBkdXBsaWNhdGUgdGhlIHJlcHJvY2Vzc2VkIHJlcG9ydCIsIGZ1bmN0aW9uIChkb25lKSB7
CisgICAgICAgIGxldCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgbGV0IG9y
aWdpbmFsUmVwcm90OworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHNpbXBsZVJlcG9ydFsw
XSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgc2ltcGxlUmVwb3J0KTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFs
bCgncmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgb3Jp
Z2luYWxSZXByb3QgPSByZXBvcnRzWzBdOworICAgICAgICAgICAgcmV0dXJuIGRiLnF1ZXJ5KCdV
UERBVEUgcmVwb3J0cyBTRVQgcmVwb3J0X2J1aWxkID0gTlVMTDsgREVMRVRFIEZST00gYnVpbGRz
Jyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoYC9hZG1pbi9yZXByb2Nlc3Mt
cmVwb3J0P3JlcG9ydD0ke29yaWdpbmFsUmVwcm90WydpZCddfWApOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3JlcG9ydHMn
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVwb3J0cykgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IG5ld1BvcnQg
PSByZXBvcnRzWzBdOworICAgICAgICAgICAgb3JpZ2luYWxSZXByb3RbJ2NvbW1pdHRlZF9hdCdd
ID0gbnVsbDsKKyAgICAgICAgICAgIG5ld1BvcnRbJ2NvbW1pdHRlZF9hdCddID0gbnVsbDsKKyAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSwgbmV3UG9y
dFsnYnVpbGQnXSk7CisgICAgICAgICAgICBvcmlnaW5hbFJlcHJvdFsnYnVpbGQnXSA9IG51bGw7
CisgICAgICAgICAgICBuZXdQb3J0WydidWlsZCddID0gbnVsbDsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3JpZ2luYWxSZXByb3QsIG5ld1BvcnQpOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIH0pOwpJbmRleDogV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMJKHJldmlzaW9uIDE5OTEyMykKKysrIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBsZXQgTW9ja0RhdGEgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9tb2NrCiBsZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qt
c2VydmVyLmpzJyk7CiAKIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewotICAgIHRoaXMudGltZW91dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOwog
ICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLW1hbmlmZXN0LmpzCShyZXZpc2lvbiAxOTkxMjIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtNywx
NiArNywxMSBAQCByZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKIGxldCBUZXN0
U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKIAogZGVzY3Jp
YmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7Ci0gICAgdGhpcy50aW1lb3V0KDEwMDAw
KTsKKyAgICB0aGlzLnRpbWVvdXQoMTAwMCk7CiAgICAgVGVzdFNlcnZlci5pbmplY3QoKTsKIAog
ICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICBCdWlsZGVyLmNsZWFyU3RhdGlj
TWFwKCk7Ci0gICAgICAgIEJ1Z1RyYWNrZXIuY2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgVGVz
dC5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBNZXRyaWMuY2xlYXJTdGF0aWNNYXAoKTsKLSAg
ICAgICAgUGxhdGZvcm0uY2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgUmVwb3NpdG9yeS5jbGVh
clN0YXRpY01hcCgpOworICAgICAgICBNb2NrRGF0YS5yZXNldFYzTW9kZWxzKCk7CiAgICAgfSk7
CiAKICAgICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdoZW4gZGF0YWJh
c2UgaXMgZW1wdHkiLCBmdW5jdGlvbiAoZG9uZSkgewpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1lYXN1cmVt
ZW50LXNldC10ZXN0cy5qcwkocmV2aXNpb24gMTk5MTIyKQkoZnJvbSBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdGVzdHMvYXBpLW1lYXN1cmVtZW50LXNldC5qczoxOTkxMjIpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MDQgQEAKK2Rlc2NyaWJlKCIvYXBpL21lYXN1
cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiBhZGRCdWlsZGVyKHJlcG9y
dCwgY2FsbGJhY2spIHsKKyAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYnVp
bGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMgKCQxLCAk
MiknLAorICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJlcG9ydFsw
XS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOworICAgIH0KKworICAgIGZ1bmN0aW9uIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lLCBjYWxsYmFjaykg
eworICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHBsYXRmb3JtcyBXSEVS
RSBwbGF0Zm9ybV9uYW1lID0gJDEnLCBbcGxhdGZvcm1OYW1lXSwgZnVuY3Rpb24gKHBsYXRmb3Jt
Um93cykgeworICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0
X21ldHJpY3MgV0hFUkUgbWV0cmljX25hbWUgPSAkMScsIFttZXRyaWNOYW1lXSwgZnVuY3Rpb24g
KG1ldHJpY1Jvd3MpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhwbGF0Zm9ybVJvd3NbMF1b
J3BsYXRmb3JtX2lkJ10sIG1ldHJpY1Jvd3NbMF1bJ21ldHJpY19pZCddKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmb3JtYXQoZm9ybWF0TWFw
LCByb3cpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGZvcm1hdE1hcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGtleSA9IGZv
cm1hdE1hcFtpXTsKKyAgICAgICAgICAgIGlmIChrZXkgPT0gJ2lkJyB8fCBrZXkgPT0gJ2J1aWxk
JyB8fCBrZXkgPT0gJ2J1aWxkZXInKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgcmVzdWx0W2tleV0gPSByb3dbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisKKyAgICB2YXIgY2x1c3RlclN0YXJ0ID0gY29uZmlnKCdjbHVzdGVyU3Rh
cnQnKTsKKyAgICBjbHVzdGVyU3RhcnQgPSArRGF0ZS5VVEMoY2x1c3RlclN0YXJ0WzBdLCBjbHVz
dGVyU3RhcnRbMV0gLSAxLCBjbHVzdGVyU3RhcnRbMl0sIGNsdXN0ZXJTdGFydFszXSwgY2x1c3Rl
clN0YXJ0WzRdKTsKKworICAgIHZhciBjbHVzdGVyU2l6ZSA9IGNvbmZpZygnY2x1c3RlclNpemUn
KTsKKyAgICB2YXIgREFZID0gMjQgKiAzNjAwICogMTAwMDsKKyAgICB2YXIgWUVBUiA9IDM2NS4y
NCAqIERBWTsKKyAgICB2YXIgTU9OVEggPSAzMCAqIERBWTsKKyAgICBjbHVzdGVyU2l6ZSA9IGNs
dXN0ZXJTaXplWzBdICogWUVBUiArIGNsdXN0ZXJTaXplWzFdICogTU9OVEggKyBjbHVzdGVyU2l6
ZVsyXSAqIERBWTsKKworICAgIGZ1bmN0aW9uIGNsdXN0ZXJUaW1lKGluZGV4KSB7IHJldHVybiBu
ZXcgRGF0ZShjbHVzdGVyU3RhcnQgKyBjbHVzdGVyU2l6ZSAqIGluZGV4KTsgfQorCisgICAgdmFy
IHJlcG9ydFdpdGhCdWlsZFRpbWUgPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwK
KyAgICAgICAgImJ1aWxkVGltZSI6IGNsdXN0ZXJUaW1lKDcuOCkudG9JU09TdHJpbmcoKSwKKyAg
ICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlv
biIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICJTdWl0ZSI6IHsKKyAgICAgICAg
ICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxLCAy
LCAzLCA0LCA1XSB9fQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKyAgICByZXBvcnRXaXRoQnVpbGRUaW1lLnN0
YXJ0VGltZSA9ICtjbHVzdGVyVGltZSg3KTsKKworICAgIHZhciByZXBvcnRXaXRoUmV2aXNpb24g
PSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI0IiwKKyAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDE1OjM0OjUxIiwKKyAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAg
ICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0NDAwMCIsCisg
ICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6IGNsdXN0ZXJUaW1lKDEwLjMpLnRvSVNPU3RyaW5n
KCksCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLAorICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIs
CisgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgInRlc3RzIjog
eworICAgICAgICAgICAgIlN1aXRlIjogeworICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1l
dHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExLCAxMiwgMTMsIDE0LCAxNV0gfX0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgIH19XTsKKworICAgIHZhciByZXBvcnRXaXRoTmV3UmV2aXNpb24gPSBbeworICAgICAg
ICAiYnVpbGROdW1iZXIiOiAiMTI1IiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4
VDIxOjQ1OjE3IiwKKyAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICJXZWJLaXQi
OiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE2MDYwOSIsCisgICAgICAgICAgICAg
ICAgInRpbWVzdGFtcCI6IGNsdXN0ZXJUaW1lKDEyLjEpLnRvSVNPU3RyaW5nKCkKKyAgICAgICAg
ICAgIH0sCisgICAgICAgIH0sCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIs
CisgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBs
YXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAg
ICAiU3VpdGUiOiB7CisgICAgICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAg
ICAgICAidGVzdDEiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGlt
ZSI6IHsgImN1cnJlbnQiOiBbMTYsIDE3LCAxOCwgMTksIDIwXSB9fQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfX1dOwor
CisgICAgdmFyIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiA9IFt7CisgICAgICAgICJidWlsZE51
bWJlciI6ICIxMjYiLAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMjM6MDc6MjUi
LAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTM3NzkzIiwKKyAgICAgICAgICAgICAgICAidGltZXN0
YW1wIjogY2x1c3RlclRpbWUoMS44KS50b0lTT1N0cmluZygpCisgICAgICAgICAgICB9LAorICAg
ICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAi
YnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJwbGF0Zm9ybSI6ICJN
b3VudGFpbiBMaW9uIiwKKyAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgIlN1aXRlIjog
eworICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qx
IjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJy
ZW50IjogWzIxLCAyMiwgMjMsIDI0LCAyNV0gfX0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAgIGl0KCJz
aG91bGQgcmVqZWN0IHdoZW4gcGxhdGZvcm0gSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1
bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgeworICAgICAgICAgICAgICAgICAgICBodHRw
R2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/bWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMn
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gbWV0cmljIElEIGlz
IG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1
aWxkVGltZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdN
b3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPScgKyBwbGF0Zm9ybUlkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnSW52YWxpZFBsYXRmb3JtJyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHBsYXRmb3JtIG5hbWUiLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1
bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
ICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5j
dGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaHR0cEdl
dCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJ2EmbWV0
cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScpOworICAgICAgICAgICAgICAgICAgICAgICAgbm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoInNob3Vs
ZCByZWplY3QgYW4gaW52YWxpZCBtZXRyaWMgbmFtZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
YWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIHF1
ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChw
bGF0Zm9ybUlkLCBtZXRyaWNJZCkgeworICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBp
L21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsg
bWV0cmljSWQgKyAnYicsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3Rh
dHVzJ10sICdJbnZhbGlkTWV0cmljJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIGJl
IGFibGUgdG8gcmV0cmlldmUgYSByZXBvcnRlZCB2YWx1ZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAg
IHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9u
IChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgeworICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcv
YXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0n
ICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZXNkUmVzdWx0ID0g
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZmFpbChlcnJvciwgbnVsbCwgcmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9ICso
bmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKKworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwYXJlc2RSZXN1
bHQpLnNvcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2NsdXN0ZXJDb3VudCcs
ICdjbHVzdGVyU2l6ZScsICdjbHVzdGVyU3RhcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NvbmZpZ3VyYXRpb25zJywgJ2VsYXBzZWRUaW1lJywgJ2VuZFRpbWUnLCAnZm9ybWF0
TWFwJywgJ2xhc3RNb2RpZmllZCcsICdzdGFydFRpbWUnLCAnc3RhdHVzJ10pOworICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnY2x1
c3RlckNvdW50J10sIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2lkJywgJ21lYW4nLCAnaXRlcmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdt
YXJrZWRPdXRsaWVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywg
J2NvbW1pdFRpbWUnLCAnYnVpbGQnLCAnYnVpbGRUaW1lJywgJ2J1aWxkTnVtYmVyJywgJ2J1aWxk
ZXInXSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1
bHRbJ3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQodHlwZW9mKHBhcmVzZFJlc3VsdFsnbGFzdE1vZGlmaWVk
J10pID09ICdudW1iZXInLCAnbGFzdE1vZGlmaWVkIHRpbWUgc2hvdWxkIGJlIGEgbnVtZXJpYycp
OworCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXSksIFsnY3VycmVudCddKTsKKworICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3dzID0gcGFyZXNkUmVzdWx0Wydjb25maWd1
cmF0aW9ucyddWydjdXJyZW50J107CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY3VycmVudFJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjdXJyZW50Um93c1swXS5sZW5ndGgsIHBhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10u
bGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0
KHBhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lYW46IDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXRlcmF0aW9uQ291bnQ6IDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiAxNSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW06IDU1LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmtlZE91dGxpZXI6IGZhbHNlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldmlzaW9uczogW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWl0VGltZTogYnVpbGRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGlt
ZTogYnVpbGRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAn
MTIzJ30pOworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoInNob3VsZCByZXR1cm4gcmV0dXJuIHRoZSBy
aWdodCBJRHMgZm9yIG1lYXN1cmVtZW50LCBidWlsZCwgYW5kIGJ1aWxkZXIiLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRp
bWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUn
LCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKKyAgICAgICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMnLCBbXSwgZnVuY3Rpb24g
KHJ1bnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5zLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnRJZCA9IHJ1bnNb
MF1bJ3J1bl9pZCddOworICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkcykgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVpbGRJZCA9IGJ1aWxkc1swXVsnYnVpbGRfaWQn
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1Qg
KiBGUk9NIGJ1aWxkZXJzJywgW10sIGZ1bmN0aW9uIChidWlsZGVycykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkZXJJZCA9IGJ1aWxkZXJzWzBd
WydidWlsZGVyX2lkJ107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQo
Jy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmlj
PScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWVhc3VyZW1lbnQg
PSBwYXJlc2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXVswXTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lk
JyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmluZGV4
T2YoJ2J1aWxkJyldLCBidWlsZElkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmlu
ZGV4T2YoJ2J1aWxkZXInKV0sIGJ1aWxkZXJJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZnVuY3Rpb24gcG9z
dFJlcG9ydHMocmVwb3J0cywgY2FsbGJhY2spIHsKKyAgICAgICAgaWYgKCFyZXBvcnRzLmxlbmd0
aCkKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOworCisgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCByZXBvcnRzWzBdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOworCisgICAgICAgICAgICBwb3N0UmVwb3J0cyhyZXBvcnRzLnNsaWNlKDEpLCBjYWxs
YmFjayk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1B
bmRNZXRyaWNXaXRoUmVwb3NpdG9yeShwbGF0Zm9ybU5hbWUsIG1ldHJpY05hbWUsIHJlcG9zaXRv
cnlOYW1lLCBjYWxsYmFjaykgeworICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKHBsYXRm
b3JtTmFtZSwgbWV0cmljTmFtZSwgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Cisg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRvcmllcyBX
SEVSRSByZXBvc2l0b3J5X25hbWUgPSAkMScsIFtyZXBvc2l0b3J5TmFtZV0sIGZ1bmN0aW9uIChy
b3dzKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2socGxhdGZvcm1JZCwgbWV0cmljSWQsIHJv
d3NbMF1bJ3JlcG9zaXRvcnlfaWQnXSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgaXQoInNob3VsZCBvcmRlciByZXN1bHRzIGJ5IGNvbW1pdCB0aW1lIiwgZnVu
Y3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRoQnVpbGRUaW1lLCBy
ZXBvcnRXaXRoUmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcXVlcnlQ
bGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAn
V2ViS2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBidWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhCdWlsZFRp
bWVbMF1bJ2J1aWxkVGltZSddKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmV2aXNp
b25UaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoUmV2aXNpb25bMF1bJ3JldmlzaW9ucyddWydX
ZWJLaXQnXVsndGltZXN0YW1wJ10pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXZp
c2lvbkJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydidWlsZFRp
bWUnXSkpOworCisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudFJvd3MgPSBwYXJz
ZWRSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyc2VkUmVzdWx0Wydmb3JtYXRN
YXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFu
OiAxMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiA2NSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNxdWFyZVN1bTogODU1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0
bGllcjogZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbnM6IFtbMSwg
cmVwb3NpdG9yeUlkLCAnMTQ0MDAwJywgcmV2aXNpb25UaW1lXV0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBidWlsZFRpbWU6IHJldmlzaW9uQnVpbGRUaW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjQnIH0pOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocGFyc2VkUmVzdWx0Wydmb3JtYXRNYXAnXSwgY3VycmVu
dFJvd3NbMV0pLCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhbjogMywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3VudDogNSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdW06IDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxdWFy
ZVN1bTogNTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VkT3V0bGllcjogZmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb25zOiBbXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21taXRUaW1lOiBidWlsZFRpbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnVpbGRUaW1lOiBidWlsZFRpbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjMnIH0pOworICAgICAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBmdW5jdGlvbiBidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCBjb25maWcpIHsKKyAg
ICAgICAgcmV0dXJuIHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVtjb25maWddLm1hcChm
dW5jdGlvbiAocm93KSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KHBhcnNlZFJlc3VsdFsn
Zm9ybWF0TWFwJ10sIHJvdylbJ2J1aWxkTnVtYmVyJ107CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGl0KCJzaG91bGQgaW5jbHVkZSBvbmUgZGF0YSBwb2ludCBhZnRlciB0aGUgY3VycmVudCB0
aW1lIHJhbmdlIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhC
dWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRX
aXRoQW5jZW50UmV2aXNpb24sIHJlcG9ydFdpdGhOZXdSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01v
dW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0
cmljSWQsIHJlcG9zaXRvcnlJZCkgeworICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBp
L21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsg
bWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1
bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkTnVtYmVycyhwYXJzZWRS
ZXN1bHQsICdjdXJyZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFdp
dGhBbmNlbnRSZXZpc2lvblswXVsnYnVpbGROdW1iZXInXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9u
WzBdWydidWlsZE51bWJlciddXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIC8v
IEZJWE1FOiBUaGlzIHRlc3QgYXNzdW1lcyBhIGNsdXN0ZXIgc3RlcCBvZiAyLTMgbW9udGhzCisg
ICAgaXQoInNob3VsZCBhbHdheXMgaW5jbHVkZSBvbmUgb2xkIGRhdGEgcG9pbnQgYmVmb3JlIHRo
ZSBjdXJyZW50IHRpbWUgcmFuZ2UiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIo
cmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcG9zdFJlcG9y
dHMoW3JlcG9ydFdpdGhCdWlsZFRpbWUsIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbl0sIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9z
aXRvcnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZv
cm1JZCwgbWV0cmljSWQsIHJlcG9zaXRvcnlJZCkgeworICAgICAgICAgICAgICAgICAgICBodHRw
R2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1l
dHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChw
YXJzZWRSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJz
Jyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50Um93cyA9IHBhcnNlZFJl
c3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIGF0
IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxk
TnVtYmVyJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkTnVtYmVyJ11dKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCisgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBhc3N1bWVzIGEg
Y2x1c3RlciBzdGVwIG9mIDItMyBtb250aHMKKyAgICBpdCgic2hvdWxkIGNyZWF0ZSBjYWNoZSBy
ZXN1bHRzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWls
ZFRpbWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRo
QW5jZW50UmV2aXNpb24sIHJlcG9ydFdpdGhSZXZpc2lvbiwgcmVwb3J0V2l0aE5ld1JldmlzaW9u
XSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNX
aXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktpdCcsIGZ1bmN0aW9u
IChwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3NpdG9yeUlkKSB7CisgICAgICAgICAgICAgICAg
ICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1J
ZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNl
ZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNh
Y2hlUHJlZml4ID0gJy9kYXRhL21lYXN1cmVtZW50LXNldC0nICsgcGxhdGZvcm1JZCArICctJyAr
IG1ldHJpY0lkOworICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEdldChjYWNoZVByZWZpeCAr
ICcuanNvbicsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBwYXJzZWRDYWNoZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwYXJz
ZWRSZXN1bHQsIHBhcnNlZENhY2hlZFJlc3VsdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBodHRwR2V0KGNhY2hlUHJlZml4ICsgJy0nICsgcGFyc2VkUmVzdWx0WydzdGFydFRpbWUn
XSArICcuanNvbicsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgcGFyc2VkT2xkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvbGRCdWls
ZE51bWJlcnMgPSBidWlsZE51bWJlcnMocGFyc2VkT2xkUmVzdWx0LCAnY3VycmVudCcpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3QnVpbGROdW1iZXJzID0gYnVpbGRO
dW1iZXJzKHBhcnNlZFJlc3VsdCwgJ2N1cnJlbnQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0KG9sZEJ1aWxkTnVtYmVycy5sZW5ndGggPj0gMiwgJ1RoZSBvbGQgY2x1
c3RlciBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KG5ld0J1aWxkTnVtYmVycy5sZW5ndGggPj0g
MiwgJ1RoZSBuZXcgY2x1c3RlciBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2lu
dHMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
bGRCdWlsZE51bWJlcnMuc2xpY2Uob2xkQnVpbGROdW1iZXJzLmxlbmd0aCAtIDIpLCBuZXdCdWls
ZE51bWJlcnMuc2xpY2UoMCwgMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnVHdvIGNvbnNlcWN1dGl2ZSBjbHVzdGVycyBzaG91bGQgc2hhcmUgdHdvIGRhdGEgcG9pbnRz
Jyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworfSk7CkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1z
ZXQtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQt
dGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzEsMzAgQEAKLWRlc2NyaWJlKCIvYXBp
L21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW9uICgpIHsKLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVy
KHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElO
VE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9oYXNoKSB2YWx1ZXMg
KCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFtZSwgc2hhMjU2KHJl
cG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0KKyd1c2Ugc3RyaWN0
JzsKIAotICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBt
ZXRyaWNOYW1lLCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1Qg
KiBGUk9NIHBsYXRmb3JtcyBXSEVSRSBwbGF0Zm9ybV9uYW1lID0gJDEnLCBbcGxhdGZvcm1OYW1l
XSwgZnVuY3Rpb24gKHBsYXRmb3JtUm93cykgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnU0VMRUNUICogRlJPTSB0ZXN0X21ldHJpY3MgV0hFUkUgbWV0cmljX25hbWUgPSAkMScsIFtt
ZXRyaWNOYW1lXSwgZnVuY3Rpb24gKG1ldHJpY1Jvd3MpIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhwbGF0Zm9ybVJvd3NbMF1bJ3BsYXRmb3JtX2lkJ10sIG1ldHJpY1Jvd3NbMF1bJ21ldHJp
Y19pZCddKTsKLSAgICAgICAgICAgIH0pOworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0
Jyk7Citjb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsKKworY29uc3QgVGVzdFNlcnZl
ciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25zdCBhZGRCdWls
ZGVyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMn
KS5hZGRCdWlsZGVyRm9yUmVwb3J0OworY29uc3QgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVz
dCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuY29ubmVjdFRv
RGF0YWJhc2VJbkV2ZXJ5VGVzdDsKKworZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0Iiwg
ZnVuY3Rpb24gKCkgeworICAgIHRoaXMudGltZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVyLmlu
amVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKTsKKworICAgIGZ1bmN0
aW9uIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1lKQorICAg
IHsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICBkYi5zZWxlY3RGaXJzdFJvdygncGxhdGZv
cm1zJywge25hbWU6ICdNb3VudGFpbiBMaW9uJ30pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfbWV0cmljcycsIHtuYW1lOiAnVGltZSd9KSwKKyAgICAgICAgXSkudGhlbihm
dW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4ge3BsYXRmb3JtSWQ6IHJlc3Vs
dFswXVsnaWQnXSwgbWV0cmljSWQ6IHJlc3VsdFsxXVsnaWQnXX07CiAgICAgICAgIH0pOwogICAg
IH0KIAotICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtYXRNYXAsIHJvdykgeworICAgIGZ1bmN0aW9u
IGZvcm1hdChmb3JtYXRNYXAsIHJvdykKKyAgICB7CiAgICAgICAgIHZhciByZXN1bHQgPSB7fTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRNYXAubGVuZ3RoOyBpKyspIHsKICAg
ICAgICAgICAgIHZhciBrZXkgPSBmb3JtYXRNYXBbaV07CkBAIC0yMywxOCArMzUsMTggQEAgZGVz
Y3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3RpbwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KIAotICAgIHZhciBjbHVzdGVyU3RhcnQgPSBjb25maWcoJ2NsdXN0ZXJTdGFy
dCcpOworICAgIGxldCBjbHVzdGVyU3RhcnQgPSBUZXN0U2VydmVyLnRlc3RDb25maWcoKS5jbHVz
dGVyU3RhcnQ7CiAgICAgY2x1c3RlclN0YXJ0ID0gK0RhdGUuVVRDKGNsdXN0ZXJTdGFydFswXSwg
Y2x1c3RlclN0YXJ0WzFdIC0gMSwgY2x1c3RlclN0YXJ0WzJdLCBjbHVzdGVyU3RhcnRbM10sIGNs
dXN0ZXJTdGFydFs0XSk7CiAKLSAgICB2YXIgY2x1c3RlclNpemUgPSBjb25maWcoJ2NsdXN0ZXJT
aXplJyk7Ci0gICAgdmFyIERBWSA9IDI0ICogMzYwMCAqIDEwMDA7Ci0gICAgdmFyIFlFQVIgPSAz
NjUuMjQgKiBEQVk7Ci0gICAgdmFyIE1PTlRIID0gMzAgKiBEQVk7CisgICAgbGV0IGNsdXN0ZXJT
aXplID0gVGVzdFNlcnZlci50ZXN0Q29uZmlnKCkuY2x1c3RlclNpemU7CisgICAgY29uc3QgREFZ
ID0gMjQgKiAzNjAwICogMTAwMDsKKyAgICBjb25zdCBZRUFSID0gMzY1LjI0ICogREFZOworICAg
IGNvbnN0IE1PTlRIID0gMzAgKiBEQVk7CiAgICAgY2x1c3RlclNpemUgPSBjbHVzdGVyU2l6ZVsw
XSAqIFlFQVIgKyBjbHVzdGVyU2l6ZVsxXSAqIE1PTlRIICsgY2x1c3RlclNpemVbMl0gKiBEQVk7
CiAKICAgICBmdW5jdGlvbiBjbHVzdGVyVGltZShpbmRleCkgeyByZXR1cm4gbmV3IERhdGUoY2x1
c3RlclN0YXJ0ICsgY2x1c3RlclNpemUgKiBpbmRleCk7IH0KIAotICAgIHZhciByZXBvcnRXaXRo
QnVpbGRUaW1lID0gW3sKKyAgICBjb25zdCByZXBvcnRXaXRoQnVpbGRUaW1lID0gW3sKICAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICJidWlsZFRpbWUiOiBjbHVzdGVyVGlt
ZSg3LjgpLnRvSVNPU3RyaW5nKCksCiAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCkBAIC01MSw3ICs2Myw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1
bmN0aW8KICAgICAgICAgfX1dOwogICAgIHJlcG9ydFdpdGhCdWlsZFRpbWUuc3RhcnRUaW1lID0g
K2NsdXN0ZXJUaW1lKDcpOwogCi0gICAgdmFyIHJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7CisgICAg
Y29uc3QgcmVwb3J0V2l0aFJldmlzaW9uID0gW3sKICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
NCIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxNTozNDo1MSIsCiAgICAgICAg
ICJyZXZpc2lvbnMiOiB7CkBAIC03Myw3ICs4NSw3IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVt
ZW50LXNldCIsIGZ1bmN0aW8KICAgICAgICAgICAgIH0sCiAgICAgICAgIH19XTsKIAotICAgIHZh
ciByZXBvcnRXaXRoTmV3UmV2aXNpb24gPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhOZXdSZXZp
c2lvbiA9IFt7CiAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAogICAgICAgICAiYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMjE6NDU6MTciLAogICAgICAgICAicmV2aXNpb25zIjogewpAQCAt
OTUsNyArMTA3LDcgQEAgZGVzY3JpYmUoIi9hcGkvbWVhc3VyZW1lbnQtc2V0IiwgZnVuY3Rpbwog
ICAgICAgICAgICAgfSwKICAgICAgICAgfX1dOwogCi0gICAgdmFyIHJlcG9ydFdpdGhBbmNlbnRS
ZXZpc2lvbiA9IFt7CisgICAgY29uc3QgcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uID0gW3sKICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNiIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQyMzowNzoyNSIsCiAgICAgICAgICJyZXZpc2lvbnMiOiB7CkBAIC0xMTcsMTU0ICsxMjks
MTQ1IEBAIGRlc2NyaWJlKCIvYXBpL21lYXN1cmVtZW50LXNldCIsIGZ1bmN0aW8KICAgICAgICAg
ICAgIH0sCiAgICAgICAgIH19XTsKIAotICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gcGxhdGZv
cm0gSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBv
cnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRy
aWNJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNl
dC8/bWV0cmljPScgKyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJl
amVjdCB3aGVuIHBsYXRmb3JtIElEIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAg
ICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFu
ZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
Z2V0SlNPTihgL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1g
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXF1ZXN0Jyk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAg
aXQoInNob3VsZCByZWplY3Qgd2hlbiBtZXRyaWMgSUQgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGlt
ZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpT
T04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAg
ICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScs
IGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAgICAgICAgICAgICBo
dHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQsIGZ1
bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlk
UGxhdGZvcm0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIG1ldHJpYyBJRCBpcyBt
aXNzaW5nIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChy
ZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBv
cnRXaXRoQnVpbGRUaW1lKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAn
VGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfWApOworICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0FtYmlndW91c1JlcXVlc3QnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAg
ICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBp
bnZhbGlkIHBsYXRmb3JtIG5hbWUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIo
cmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3Jt
QW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwg
bWV0cmljSWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVu
dC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlkICsgJ2EmbWV0cmljPScgKyBtZXRyaWNJZCwg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRQ
bGF0Zm9ybScpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcGxhdGZvcm0g
bmFtZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVw
b3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aEJ1aWxkVGltZSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1Rp
bWUnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JHtyZXN1bHQucGxhdGZvcm1JZH1hJm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJ
ZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKKyAg
ICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAg
ICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1l
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAg
ICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywg
ZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0
dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcm
bWV0cmljPScgKyBtZXRyaWNJZCArICdiJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRNZXRyaWMnKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHJl
amVjdCBhbiBpbnZhbGlkIG1ldHJpYyBuYW1lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAg
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRy
aWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpT
T04oYC9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZt
ZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9YmApOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRNZXRyaWMnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gcmV0cmlldmUgYSBy
ZXBvcnRlZCB2YWx1ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRX
aXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRy
aWMoJ01vdW50YWluIExpb24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJ
ZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/
cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcGFyZXNkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5y
ZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1
aWxkVGltZVswXVsnYnVpbGRUaW1lJ10pKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwYXJlc2RSZXN1bHQpLnNvcnQoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbJ2NsdXN0ZXJDb3VudCcsICdjbHVzdGVyU2l6ZScsICdjbHVz
dGVyU3RhcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25z
JywgJ2VsYXBzZWRUaW1lJywgJ2VuZFRpbWUnLCAnZm9ybWF0TWFwJywgJ2xhc3RNb2RpZmllZCcs
ICdzdGFydFRpbWUnLCAnc3RhdHVzJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHBhcmVzZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVzZFJlc3VsdFsnY2x1c3RlckNvdW50J10sIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChwYXJlc2RSZXN1bHRbJ2Zvcm1h
dE1hcCddLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJywgJ21lYW4nLCAnaXRl
cmF0aW9uQ291bnQnLCAnc3VtJywgJ3NxdWFyZVN1bScsICdtYXJrZWRPdXRsaWVyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAncmV2aXNpb25zJywgJ2NvbW1pdFRpbWUnLCAnYnVpbGQn
LCAnYnVpbGRUaW1lJywgJ2J1aWxkTnVtYmVyJywgJ2J1aWxkZXInXSk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ3N0YXJ0VGltZSddLCByZXBv
cnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQodHlwZW9mKHBhcmVzZFJlc3VsdFsnbGFzdE1vZGlmaWVkJ10pID09ICdudW1iZXInLCAnbGFz
dE1vZGlmaWVkIHRpbWUgc2hvdWxkIGJlIGEgbnVtZXJpYycpOwotCi0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHBhcmVzZFJlc3VsdFsnY29uZmln
dXJhdGlvbnMnXSksIFsnY3VycmVudCddKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IGN1cnJlbnRSb3dzID0gcGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93c1sw
XS5sZW5ndGgsIHBhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10ubGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHBhcmVzZFJlc3VsdFsnZm9ybWF0
TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
YW46IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiAxNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzcXVhcmVTdW06IDU1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtl
ZE91dGxpZXI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uczog
W10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0VGltZTogYnVpbGRUaW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogYnVpbGRUaW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTIzJ30pOwotICAgICAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJz
aG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBhIHJlcG9ydGVkIHZhbHVlIiwgZnVuY3Rpb24gKGRv
bmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBd
KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5
UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24nLCAnVGltZScpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKGAvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZv
cm09JHtyZXN1bHQucGxhdGZvcm1JZH0mbWV0cmljPSR7cmVzdWx0Lm1ldHJpY0lkfWApOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgY29uc3QgYnVp
bGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUnXSkp
OworCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5z
b3J0KCksCisgICAgICAgICAgICAgICAgWydjbHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAn
Y2x1c3RlclN0YXJ0JywKKyAgICAgICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFw
c2VkVGltZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRU
aW1lJywgJ3N0YXR1cyddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydjbHVzdGVy
Q291bnQnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlWydmb3Jt
YXRNYXAnXSwgWworICAgICAgICAgICAgICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50
JywgJ3N1bScsICdzcXVhcmVTdW0nLCAnbWFya2VkT3V0bGllcicsCisgICAgICAgICAgICAgICAg
J3JldmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1aWxkJywgJ2J1aWxkVGltZScsICdidWlsZE51
bWJlcicsICdidWlsZGVyJ10pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXJ0VGltZSddLCByZXBvcnRXaXRoQnVpbGRUaW1lLnN0YXJ0VGltZSk7CisgICAgICAgICAg
ICBhc3NlcnQodHlwZW9mKHJlc3BvbnNlWydsYXN0TW9kaWZpZWQnXSkgPT0gJ251bWJlcicsICds
YXN0TW9kaWZpZWQgdGltZSBzaG91bGQgYmUgYSBudW1lcmljJyk7CisKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMocmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ10pLCBb
J2N1cnJlbnQnXSk7CisKKyAgICAgICAgICAgIHZhciBjdXJyZW50Um93cyA9IHJlc3BvbnNlWydj
b25maWd1cmF0aW9ucyddWydjdXJyZW50J107CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3Vy
cmVudFJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93
c1swXS5sZW5ndGgsIHJlc3BvbnNlWydmb3JtYXRNYXAnXS5sZW5ndGgpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1hdE1hcCddLCBjdXJyZW50Um93
c1swXSksIHsKKyAgICAgICAgICAgICAgICBtZWFuOiAzLAorICAgICAgICAgICAgICAgIGl0ZXJh
dGlvbkNvdW50OiA1LAorICAgICAgICAgICAgICAgIHN1bTogMTUsCisgICAgICAgICAgICAgICAg
c3F1YXJlU3VtOiA1NSwKKyAgICAgICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBmYWxzZSwKKyAg
ICAgICAgICAgICAgICByZXZpc2lvbnM6IFtdLAorICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6
IGJ1aWxkVGltZSwKKyAgICAgICAgICAgICAgICBidWlsZFRpbWU6IGJ1aWxkVGltZSwKKyAgICAg
ICAgICAgICAgICBidWlsZE51bWJlcjogJzEyMyd9KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAg
ICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxkIHJldHVybiBy
ZXR1cm4gdGhlIHJpZ2h0IElEcyBmb3IgbWVhc3VyZW1lbnQsIGJ1aWxkLCBhbmQgYnVpbGRlciIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExp
b24nLCAnVGltZScsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucycsIFtd
LCBmdW5jdGlvbiAocnVucykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1bnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVu
dElkID0gcnVuc1swXVsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoYnVpbGRzKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBidWlsZElkID0gYnVpbGRzWzBd
WydidWlsZF9pZCddOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hB
bGwoJ1NFTEVDVCAqIEZST00gYnVpbGRlcnMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkZXJzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVycy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVpbGRlcklkID0g
YnVpbGRlcnNbMF1bJ2J1aWxkZXJfaWQnXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBwbGF0Zm9ybUlk
ICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlc2RSZXN1bHQgPSBKU09OLnBhcnNl
KHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJyZW50
J10ubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBt
ZWFzdXJlbWVudCA9IHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddWzBd
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcmVz
ZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsnZm9ybWF0TWFwJ10u
aW5kZXhPZignaWQnKV0sIG1lYXN1cmVtZW50SWQpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsnZm9ybWF0
TWFwJ10uaW5kZXhPZignYnVpbGQnKV0sIGJ1aWxkSWQpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVtZW50W3BhcmVzZFJlc3VsdFsnZm9y
bWF0TWFwJ10uaW5kZXhPZignYnVpbGRlcicpXSwgYnVpbGRlcklkKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBy
ZXR1cm4gcmV0dXJuIHRoZSByaWdodCBJRHMgZm9yIG1lYXN1cmVtZW50LCBidWlsZCwgYW5kIGJ1
aWxkZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhCdWlsZFRpbWVbMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICByZXR1cm4gcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdU
aW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyksCisg
ICAgICAgICAgICAgICAgZGIuc2VsZWN0QWxsKCdidWlsZHMnKSwKKyAgICAgICAgICAgICAgICBk
Yi5zZWxlY3RBbGwoJ2J1aWxkZXJzJyksCisgICAgICAgICAgICAgICAgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3Jt
PSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAg
ICAgIGNvbnN0IHJ1bnMgPSByZXN1bHRbMF07CisgICAgICAgICAgICBjb25zdCBidWlsZHMgPSBy
ZXN1bHRbMV07CisgICAgICAgICAgICBjb25zdCBidWlsZGVycyA9IHJlc3VsdFsyXTsKKyAgICAg
ICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0WzNdOworCisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVucy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudElkID0gcnVuc1swXVsnaWQnXTsKKyAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkSWQgPSBidWlsZHNbMF1bJ2lkJ107CisgICAgICAgICAgICBjb25z
dCBidWlsZGVySWQgPSBidWlsZGVyc1swXVsnaWQnXTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J10ubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11b
J2N1cnJlbnQnXVswXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcmVzcG9u
c2VbJ2Zvcm1hdE1hcCddLmluZGV4T2YoJ2lkJyldLCBtZWFzdXJlbWVudElkKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChtZWFzdXJlbWVudFtyZXNwb25zZVsnZm9ybWF0TWFwJ10uaW5kZXhP
ZignYnVpbGQnKV0sIGJ1aWxkSWQpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1lYXN1cmVt
ZW50W3Jlc3BvbnNlWydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQp
OworCisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0p
OwogCi0gICAgZnVuY3Rpb24gcG9zdFJlcG9ydHMocmVwb3J0cywgY2FsbGJhY2spIHsKKyAgICBm
dW5jdGlvbiBwb3N0UmVwb3J0cyhyZXBvcnRzLCBjYWxsYmFjaykKKyAgICB7CiAgICAgICAgIGlm
ICghcmVwb3J0cy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKIApAQCAt
Mjc2LDEyOSArMjc5LDEzNSBAQCBkZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5j
dGlvCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHF1ZXJ5UGxhdGZvcm1BbmRN
ZXRyaWNXaXRoUmVwb3NpdG9yeShwbGF0Zm9ybU5hbWUsIG1ldHJpY05hbWUsIHJlcG9zaXRvcnlO
YW1lLCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKHBsYXRmb3Jt
TmFtZSwgbWV0cmljTmFtZSwgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9zaXRvcmllcyBXSEVS
RSByZXBvc2l0b3J5X25hbWUgPSAkMScsIFtyZXBvc2l0b3J5TmFtZV0sIGZ1bmN0aW9uIChyb3dz
KSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2socGxhdGZvcm1JZCwgbWV0cmljSWQsIHJvd3Nb
MF1bJ3JlcG9zaXRvcnlfaWQnXSk7Ci0gICAgICAgICAgICB9KTsKKyAgICBmdW5jdGlvbiBxdWVy
eVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkocGxhdGZvcm1OYW1lLCBtZXRyaWNOYW1l
LCByZXBvc2l0b3J5TmFtZSkKKyAgICB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgZGIu
c2VsZWN0Rmlyc3RSb3coJ3BsYXRmb3JtcycsIHtuYW1lOiBwbGF0Zm9ybU5hbWV9KSwKKyAgICAg
ICAgICAgIGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X21ldHJpY3MnLCB7bmFtZTogbWV0cmljTmFt
ZX0pLAorICAgICAgICAgICAgZGIuc2VsZWN0Rmlyc3RSb3coJ3JlcG9zaXRvcmllcycsIHtuYW1l
OiByZXBvc2l0b3J5TmFtZX0pLAorICAgICAgICBdKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsK
KyAgICAgICAgICAgIHJldHVybiB7cGxhdGZvcm1JZDogcmVzdWx0WzBdWydpZCddLCBtZXRyaWNJ
ZDogcmVzdWx0WzFdWydpZCddLCByZXBvc2l0b3J5SWQ6IHJlc3VsdFsyXVsnaWQnXX07CiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBjb21taXQg
dGltZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRU
aW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0UmVwb3J0cyhbcmVwb3J0V2l0aEJ1
aWxkVGltZSwgcmVwb3J0V2l0aFJldmlzaW9uXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgnTW91bnRhaW4gTGlvbics
ICdUaW1lJywgJ1dlYktpdCcsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBtZXRyaWNJZCwgcmVwb3Np
dG9yeUlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQt
c2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScgKyBtZXRyaWNJZCwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkUmVz
dWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwotCi0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVpbGRUaW1lID0gKyhuZXcgRGF0ZShyZXBvcnRX
aXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIHJldmlzaW9uVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJldmlzaW9uWzBdWydyZXZp
c2lvbnMnXVsnV2ViS2l0J11bJ3RpbWVzdGFtcCddKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcmV2aXNpb25CdWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhSZXZpc2lvblsw
XVsnYnVpbGRUaW1lJ10pKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRS
b3dzID0gcGFyc2VkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJyZW50J107Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHBhcnNlZFJlc3Vs
dFsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVhbjogMTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25Db3Vu
dDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bTogNjUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBzcXVhcmVTdW06IDg1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtlZE91dGxpZXI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2aXNp
b25zOiBbWzEsIHJlcG9zaXRvcnlJZCwgJzE0NDAwMCcsIHJldmlzaW9uVGltZV1dLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWl0VGltZTogcmV2aXNpb25UaW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiByZXZpc2lvbkJ1aWxkVGltZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTI0JyB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHBhcnNlZFJlc3VsdFsnZm9ybWF0TWFw
J10sIGN1cnJlbnRSb3dzWzFdKSwgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW46
IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiAxNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzcXVhcmVTdW06IDU1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlZE91
dGxpZXI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uczogW10s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0VGltZTogYnVpbGRUaW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogYnVpbGRUaW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTIzJyB9KTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0p
OworICAgIGl0KCJzaG91bGQgb3JkZXIgcmVzdWx0cyBieSBjb21taXQgdGltZSIsIGZ1bmN0aW9u
IChkb25lKSB7CisgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CisgICAgICAgIGxldCByZXBvc2l0b3J5SWQ7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1l
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVt
b3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBxdWVyeVBsYXRmb3Jt
QW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQn
KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICByZXBv
c2l0b3J5SWQgPSByZXN1bHQucmVwb3NpdG9yeUlkOworICAgICAgICAgICAgcmV0dXJuIHJlbW90
ZS5nZXRKU09OV2l0aFN0YXR1cyhgL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVz
dWx0LnBsYXRmb3JtSWR9Jm1ldHJpYz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKKyAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3dz
ID0gcmVzcG9uc2VbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQnXTsKKyAgICAgICAgICAgIGNv
bnN0IGJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aEJ1aWxkVGltZVswXVsnYnVpbGRU
aW1lJ10pKTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uVGltZSA9ICsobmV3IERhdGUocmVw
b3J0V2l0aFJldmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0J11bJ3RpbWVzdGFtcCddKSk7
CisgICAgICAgICAgICBjb25zdCByZXZpc2lvbkJ1aWxkVGltZSA9ICsobmV3IERhdGUocmVwb3J0
V2l0aFJldmlzaW9uWzBdWydidWlsZFRpbWUnXSkpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY3VycmVudFJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Zm9ybWF0KHJlc3BvbnNlWydmb3JtYXRNYXAnXSwgY3VycmVudFJvd3NbMF0pLCB7CisgICAgICAg
ICAgICAgICBtZWFuOiAxMywKKyAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAorICAg
ICAgICAgICAgICAgc3VtOiA2NSwKKyAgICAgICAgICAgICAgIHNxdWFyZVN1bTogODU1LAorICAg
ICAgICAgICAgICAgbWFya2VkT3V0bGllcjogZmFsc2UsCisgICAgICAgICAgICAgICByZXZpc2lv
bnM6IFtbMSwgcmVwb3NpdG9yeUlkLCAnMTQ0MDAwJywgcmV2aXNpb25UaW1lXV0sCisgICAgICAg
ICAgICAgICBjb21taXRUaW1lOiByZXZpc2lvblRpbWUsCisgICAgICAgICAgICAgICBidWlsZFRp
bWU6IHJldmlzaW9uQnVpbGRUaW1lLAorICAgICAgICAgICAgICAgYnVpbGROdW1iZXI6ICcxMjQn
IH0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmb3JtYXQocmVzcG9uc2VbJ2Zvcm1h
dE1hcCddLCBjdXJyZW50Um93c1sxXSksIHsKKyAgICAgICAgICAgICAgICBtZWFuOiAzLAorICAg
ICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAorICAgICAgICAgICAgICAgIHN1bTogMTUs
CisgICAgICAgICAgICAgICAgc3F1YXJlU3VtOiA1NSwKKyAgICAgICAgICAgICAgICBtYXJrZWRP
dXRsaWVyOiBmYWxzZSwKKyAgICAgICAgICAgICAgICByZXZpc2lvbnM6IFtdLAorICAgICAgICAg
ICAgICAgIGNvbW1pdFRpbWU6IGJ1aWxkVGltZSwKKyAgICAgICAgICAgICAgICBidWlsZFRpbWU6
IGJ1aWxkVGltZSwKKyAgICAgICAgICAgICAgICBidWlsZE51bWJlcjogJzEyMycgfSk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0gICAg
ZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBhcnNlZFJlc3VsdCwgY29uZmlnKSB7CisgICAgZnVuY3Rp
b24gYnVpbGROdW1iZXJzKHBhcnNlZFJlc3VsdCwgY29uZmlnKQorICAgIHsKICAgICAgICAgcmV0
dXJuIHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVtjb25maWddLm1hcChmdW5jdGlvbiAo
cm93KSB7CiAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KHBhcnNlZFJlc3VsdFsnZm9ybWF0TWFw
J10sIHJvdylbJ2J1aWxkTnVtYmVyJ107CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGl0KCJz
aG91bGQgaW5jbHVkZSBvbmUgZGF0YSBwb2ludCBhZnRlciB0aGUgY3VycmVudCB0aW1lIHJhbmdl
IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRoQW5jZW50
UmV2aXNpb24sIHJlcG9ydFdpdGhOZXdSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExp
b24nLCAnVGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJl
cG9zaXRvcnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVt
ZW50LXNldC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNl
ZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ2NsdXN0
ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhhdmUgdHdvIGNsdXN0ZXJzJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGJ1aWxkTnVtYmVycyhwYXJzZWRSZXN1bHQsICdj
dXJyZW50JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcG9ydFdpdGhBbmNlbnRS
ZXZpc2lvblswXVsnYnVpbGROdW1iZXInXSwgcmVwb3J0V2l0aE5ld1JldmlzaW9uWzBdWydidWls
ZE51bWJlciddXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOyAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGluY2x1ZGUgb25l
IGRhdGEgcG9pbnQgYWZ0ZXIgdGhlIGN1cnJlbnQgdGltZSByYW5nZSIsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAg
ICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aEJ1aWxkVGltZVswXSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRXaXRoQW5jZW50UmV2aXNpb24pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhOZXdSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWluIExpb24n
LCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAg
ICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1lbnQtc2V0
Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0cmljSWR9
YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnY2x1c3RlckNvdW50J10sIDIsICdzaG91bGQgaGF2ZSB0d28gY2x1
c3RlcnMnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGROdW1iZXJzKHJlc3Bv
bnNlLCAnY3VycmVudCcpLAorICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNp
b25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhOZXdSZXZpc2lvblswXVsnYnVpbGROdW1i
ZXInXV0pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAg
ICB9KTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgYXNzdW1lcyBhIGNsdXN0ZXIgc3RlcCBv
ZiAyLTMgbW9udGhzCi0gICAgaXQoInNob3VsZCBhbHdheXMgaW5jbHVkZSBvbmUgb2xkIGRhdGEg
cG9pbnQgYmVmb3JlIHRoZSBjdXJyZW50IHRpbWUgcmFuZ2UiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdFJlcG9ydHMoW3JlcG9ydFdpdGhCdWlsZFRpbWUsIHJlcG9ydFdpdGhBbmNlbnRS
ZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5k
TWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExpb24nLCAnVGltZScsICdXZWJLaXQnLCBm
dW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJlcG9zaXRvcnlJZCkgewotICAgICAgICAg
ICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09JyArIHBs
YXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZFJlc3VsdCA9IEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhh
dmUgdHdvIGNsdXN0ZXJzJyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50
Um93cyA9IHBhcnNlZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3No
b3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3Vy
cmVudCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2
aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkTnVt
YmVyJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgYWx3YXlzIGluY2x1ZGUg
b25lIG9sZCBkYXRhIHBvaW50IGJlZm9yZSB0aGUgY3VycmVudCB0aW1lIHJhbmdlIiwgZnVuY3Rp
b24gKGRvbmUpIHsKKyAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEko
KTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWMoJ01vdW50YWlu
IExpb24nLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAg
ICAgICAgICAgIHJldHVybiByZW1vdGUuZ2V0SlNPTldpdGhTdGF0dXMoYC9hcGkvbWVhc3VyZW1l
bnQtc2V0Lz9wbGF0Zm9ybT0ke3Jlc3VsdC5wbGF0Zm9ybUlkfSZtZXRyaWM9JHtyZXN1bHQubWV0
cmljSWR9YCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2NsdXN0ZXJDb3VudCddLCAyLCAnc2hvdWxkIGhh
dmUgdHdvIGNsdXN0ZXJzJyk7CisgICAgICAgICAgICBsZXQgY3VycmVudFJvd3MgPSByZXNwb25z
ZVsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGN1cnJlbnRSb3dzLmxlbmd0aCwgMiwgJ3Nob3VsZCBjb250YWluIHR3byBkYXRhIHBvaW50cycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChidWlsZE51bWJlcnMocmVzcG9uc2UsICdj
dXJyZW50JyksIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVyJ10sIHJl
cG9ydFdpdGhCdWlsZFRpbWVbMF1bJ2J1aWxkTnVtYmVyJ11dKTsKKyAgICAgICAgICAgIGRvbmUo
KTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICAvLyBGSVhNRTogVGhp
cyB0ZXN0IGFzc3VtZXMgYSBjbHVzdGVyIHN0ZXAgb2YgMi0zIG1vbnRocwotICAgIGl0KCJzaG91
bGQgY3JlYXRlIGNhY2hlIHJlc3VsdHMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxk
ZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdFJl
cG9ydHMoW3JlcG9ydFdpdGhBbmNlbnRSZXZpc2lvbiwgcmVwb3J0V2l0aFJldmlzaW9uLCByZXBv
cnRXaXRoTmV3UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQ
bGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAn
V2ViS2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgY2FjaGVQcmVmaXggPSAnL2RhdGEvbWVhc3VyZW1lbnQtc2V0LScgKyBw
bGF0Zm9ybUlkICsgJy0nICsgbWV0cmljSWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRw
R2V0KGNhY2hlUHJlZml4ICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZENhY2hlZFJlc3VsdCA9IEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHBhcnNlZFJlc3VsdCwgcGFyc2VkQ2FjaGVkUmVzdWx0KTsKLQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoY2FjaGVQcmVmaXggKyAnLScgKyBwYXJzZWRS
ZXN1bHRbJ3N0YXJ0VGltZSddICsgJy5qc29uJywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRPbGRSZXN1bHQgPSBKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIG9sZEJ1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhwYXJzZWRPbGRSZXN1bHQs
ICdjdXJyZW50Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdCdWls
ZE51bWJlcnMgPSBidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQob2xkQnVpbGROdW1iZXJzLmxlbmd0aCA+
PSAyLCAnVGhlIG9sZCBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBv
aW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQobmV3QnVpbGRO
dW1iZXJzLmxlbmd0aCA+PSAyLCAnVGhlIG5ldyBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxl
YXN0IHR3byBkYXRhIHBvaW50cycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG9sZEJ1aWxkTnVtYmVycy5zbGljZShvbGRCdWlsZE51bWJlcnMubGVu
Z3RoIC0gMiksIG5ld0J1aWxkTnVtYmVycy5zbGljZSgwLCAyKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdUd28gY29uc2VxY3V0aXZlIGNsdXN0ZXJzIHNob3VsZCBzaGFy
ZSB0d28gZGF0YSBwb2ludHMnKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7ICAgICAgICAgICAgICAgIAorCisgICAgaXQoInNob3VsZCBjcmVhdGUgY2FjaGUgcmVz
dWx0cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgIGxldCBjYWNoZVByZWZpeDsKKyAgICAgICAgYWRkQnVp
bGRlckZvclJlcG9ydChyZXBvcnRXaXRoQnVpbGRUaW1lWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhBbmNlbnRSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcmV0dXJuIHJlbW90ZS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aFJldmlzaW9uKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVtb3RlLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoTmV3UmV2aXNp
b24pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBx
dWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjYWNoZVByZWZpeCA9ICcv
ZGF0YS9tZWFzdXJlbWVudC1zZXQtJyArIHJlc3VsdC5wbGF0Zm9ybUlkICsgJy0nICsgcmVzdWx0
Lm1ldHJpY0lkOworICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhg
L2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPSR7cmVzdWx0LnBsYXRmb3JtSWR9Jm1ldHJp
Yz0ke3Jlc3VsdC5tZXRyaWNJZH1gKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAobmV3UmVz
dWx0KSB7CisgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT05XaXRoU3RhdHVzKGAke2Nh
Y2hlUHJlZml4fS5qc29uYCkudGhlbihmdW5jdGlvbiAoY2FjaGVkUmVzdWx0KSB7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChuZXdSZXN1bHQsIGNhY2hlZFJlc3VsdCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5nZXRKU09OV2l0aFN0YXR1cyhgJHtjYWNoZVByZWZp
eH0tJHtjYWNoZWRSZXN1bHRbJ3N0YXJ0VGltZSddfS5qc29uYCk7CisgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChvbGRSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICB2YXIgb2xkQnVpbGRO
dW1iZXJzID0gYnVpbGROdW1iZXJzKG9sZFJlc3VsdCwgJ2N1cnJlbnQnKTsKKyAgICAgICAgICAg
ICAgICB2YXIgbmV3QnVpbGROdW1iZXJzID0gYnVpbGROdW1iZXJzKG5ld1Jlc3VsdCwgJ2N1cnJl
bnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQob2xkQnVpbGROdW1iZXJzLmxlbmd0aCA+PSAy
LCAnVGhlIG9sZCBjbHVzdGVyIHNob3VsZCBjb250YWluIGF0IGxlYXN0IHR3byBkYXRhIHBvaW50
cycpOworICAgICAgICAgICAgICAgIGFzc2VydChuZXdCdWlsZE51bWJlcnMubGVuZ3RoID49IDIs
ICdUaGUgbmV3IGNsdXN0ZXIgc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRz
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvbGRCdWlsZE51bWJlcnMuc2xp
Y2Uob2xkQnVpbGROdW1iZXJzLmxlbmd0aCAtIDIpLCBuZXdCdWlsZE51bWJlcnMuc2xpY2UoMCwg
MiksCisgICAgICAgICAgICAgICAgICAgICdUd28gY29uc2VxY3V0aXZlIGNsdXN0ZXJzIHNob3Vs
ZCBzaGFyZSB0d28gZGF0YSBwb2ludHMnKTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0p
OwogCiB9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCShyZXZpc2lv
biAxOTkxMjIpCShmcm9tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMuanM6MTk5MTIyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyMzcgQEAKK2Rlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgZW1wdHlSZXBvcnQgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICB9OworICAg
IHZhciBzdWJ2ZXJzaW9uQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2
ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJj
b21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAg
ICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQt
cXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVz
c2FnZSIsCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgfTsKKyAgICB2YXIgc3VidmVy
c2lvbkludmFsaWRDb21taXQgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwK
KyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1p
dHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2Vi
S2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiXzE0MTk3NyIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCisgICAgICAgICAgICAgICAg
ImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVl
dWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2Fn
ZSIsCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgfTsKKyAgICB2YXIgc3VidmVyc2lv
blR3b0NvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAg
ICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBb
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnki
OiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicGFyZW50IjogIjE0MTk3NyIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAi
MjAxMy0wMi0wNlQwOTo1NDo1Ni4wWiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFt
ZSI6ICJNaWtoYWlsIFBvemRueWFrb3YiLCAiYWNjb3VudCI6ICJtaWtoYWlsLnBvemRueWFrb3ZA
aW50ZWwuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdl
IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZFNs
YXZlKHJlcG9ydCwgY2FsbGJhY2spIHsKKyAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJU
IElOVE8gYnVpbGRfc2xhdmVzIChzbGF2ZV9uYW1lLCBzbGF2ZV9wYXNzd29yZF9oYXNoKSB2YWx1
ZXMgKCQxLCAkMiknLAorICAgICAgICAgICAgW3JlcG9ydC5zbGF2ZU5hbWUsIHNoYTI1NihyZXBv
cnQuc2xhdmVQYXNzd29yZCldLCBjYWxsYmFjayk7CisgICAgfQorCisgICAgaXQoInNob3VsZCBy
ZWplY3QgZXJyb3Igd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHt9LCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CisgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoInNob3VsZCByZWplY3Qg
d2hlbiB0aGVyZSBhcmUgbm8gc2xhdmVzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBwb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
KyAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKworICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUIENPVU5UKCopIGZyb20gY29tbWl0cycsIFtdLCBmdW5jdGlvbiAocm93cykgeworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAwKTsKKyAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIGFjY2VwdCBhbiBlbXB0eSByZXBvcnQiLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgIGFkZFNsYXZlKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1
c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAg
IGl0KCJzaG91bGQgYWRkIGEgbWlzc2luZyByZXBvc2l0b3J5IiwgZnVuY3Rpb24gKCkgeworICAg
ICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSByZXBvc2l0b3JpZXMnLCBbXSwgZnVu
Y3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVu
Z3RoLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ3JlcG9z
aXRvcnlfbmFtZSddLCBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF1bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQg
c3RvcmUgYSBjb21taXQgZnJvbSBhIHZhbGlkIHNsYXZlIiwgZnVuY3Rpb24gKCkgeworICAgICAg
ICBhZGRTbGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBw
b3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIEpPSU4gY29tbWl0dGVycyBP
TiBjb21taXRfY29tbWl0dGVyID0gY29tbWl0dGVyX2lkJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0LmNvbW1p
dHNbMF07CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRf
cmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwgbmV3IERh
dGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRh
WydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291
bnQnXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRf
bWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2
aXNpb24gbnVtYmVyIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRTbGF2ZShzdWJ2ZXJzaW9u
Q29tbWl0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBzdWJ2ZXJzaW9uQ29tbWl0CisgICAg
ICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uSW52YWxp
ZENvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0
cycsIFtdLCBmdW5jdGlvbiAocm93cykgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIHN0b3JlIHR3byBjb21taXRzIGZyb20gYSB2YWxpZCBzbGF2ZSIs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvblR3b0NvbW1pdHMsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Ud29Db21taXRzLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICog
RlJPTSBjb21taXRzIEpPSU4gY29tbWl0dGVycyBPTiBjb21taXRfY29tbWl0dGVyID0gY29tbWl0
dGVyX2lkIE9SREVSIEJZIGNvbW1pdF90aW1lJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRz
WzBdOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X3Jl
dmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfdGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRl
KCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsn
YXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dz
WzBdWydjb21taXR0ZXJfYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X21l
c3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICAgICAgICAgICAgICB2
YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sxXTsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdF9yZXZpc2lvbiddLCBy
ZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1sxXVsnY29tbWl0X3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0w
NiAwOTo1NDo1Ni4wJykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzFdWydjb21taXR0ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydu
YW1lJ10pOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0
dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdF9tZXNzYWdlJ10sIHJl
cG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0pOworCisgICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0IGlmIHRoZXJl
IGlzIG9uZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJU
IElOVE8gcmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X25hbWUpIFZBTFVFUyAoJDEpIFJFVFVSTklO
RyAqJywgWydXZWJLaXQnXSwgZnVuY3Rpb24gKHJlcG9zaXRvcmllcykgeworICAgICAgICAgICAg
dmFyIHJlcG9zaXRvcnlJZCA9IHJlcG9zaXRvcmllc1swXVsncmVwb3NpdG9yeV9pZCddOworICAg
ICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsK
KyAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGNvbW1pdHMgKGNvbW1p
dF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24sIGNvbW1pdF90aW1lKSBWQUxVRVMgKCQxLCAk
MiwgJDMpIFJFVFVSTklORyAqJywKKyAgICAgICAgICAgICAgICBbcmVwb3NpdG9yeUlkLCByZXBv
cnRlZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwgZnVuY3Rpb24gKGV4
aXN0aW5nQ29tbWl0cykgeworICAgICAgICAgICAgICAgIHZhciBjb21taXRJZCA9IGV4aXN0aW5n
Q29tbWl0c1swXVsnY29tbWl0X2lkJ107CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGV4
aXN0aW5nQ29tbWl0c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgbnVsbCk7CisgICAgICAgICAgICAg
ICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSBjb21taXRzIEpPSU4gY29tbWl0dGVycyBPTiBjb21taXRfY29tbWl0dGVyID0gY29t
bWl0dGVyX2lkJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0
ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfbWVzc2FnZSddLCByZXBvcnRl
ZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0pOworCisgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCBm
dW5jdGlvbiAoKSB7CisgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIHJlcG9z
aXRvcmllcyAocmVwb3NpdG9yeV9uYW1lKSBWQUxVRVMgKCQxKSBSRVRVUk5JTkcgKicsIFsnV2Vi
S2l0J10sIGZ1bmN0aW9uIChyZXBvc2l0b3JpZXMpIHsKKyAgICAgICAgICAgIHZhciByZXBvc2l0
b3J5SWQgPSByZXBvc2l0b3JpZXNbMF1bJ3JlcG9zaXRvcnlfaWQnXTsKKyAgICAgICAgICAgIHZh
ciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOworICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9z
aXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykg
UkVUVVJOSU5HIConLAorICAgICAgICAgICAgICAgIFtyZXBvc2l0b3J5SWQsIHJlcG9ydGVkRGF0
YVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWyd0aW1lJ11dLCBmdW5jdGlvbiAoZXhpc3RpbmdD
b21taXRzKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0Nv
bW1pdHMuY29tbWl0c1swXTsKKyAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNF
UlQgSU5UTyBjb21taXRzIChjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21t
aXRfdGltZSkgVkFMVUVTICgkMSwgJDIsICQzKSBSRVRVUk5JTkcgKicsCisgICAgICAgICAgICAg
ICAgICAgIFtyZXBvc2l0b3J5SWQsIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgcmVwb3J0ZWRE
YXRhWyd0aW1lJ11dLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRT
bGF2ZShzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1p
dCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBMRUZUIE9VVEVSIEpPSU4g
Y29tbWl0dGVycyBPTiBjb21taXRfY29tbWl0dGVyID0gY29tbWl0dGVyX2lkIE9SREVSIEJZIGNv
bW1pdF90aW1lJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5ndGgsIDIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9u
YW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291
bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfbWVzc2Fn
ZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0dGVyX25hbWUnXSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sx
XVsnY29tbWl0dGVyX2FjY291bnQnXSwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0X21lc3NhZ2UnXSwgbnVsbCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxk
IHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXR0ZXIgaWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rpb24g
KCkgeworICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMg
KHJlcG9zaXRvcnlfaWQsIHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgxLCBcJ1dlYktpdFwnKScs
IFtdLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgYXV0aG9yID0gc3VidmVyc2lvbkNv
bW1pdC5jb21taXRzWzBdWydhdXRob3InXTsKKyAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J0lOU0VSVCBJTlRPIGNvbW1pdHRlcnMgKGNvbW1pdHRlcl9yZXBvc2l0b3J5LCBjb21taXR0ZXJf
YWNjb3VudCkgVkFMVUVTICgxLCAkMSknLCBbYXV0aG9yWydhY2NvdW50J11dLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uQ29tbWl0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBjb21taXR0ZXJzJywgW10sIGZ1bmN0aW9uIChyb3dz
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsn
Y29tbWl0dGVyX25hbWUnXSwgYXV0aG9yWyduYW1lJ10pOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfYWNjb3VudCddLCBhdXRob3Jb
J2FjY291bnQnXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwor
Cit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC1jb21taXRzLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCSh3b3JraW5nIGNv
cHkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
Y29tbWl0cy10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDIyIEBACisndXNlIHN0
cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworY29uc3QgY3J5cHRv
ID0gcmVxdWlyZSgnY3J5cHRvJyk7CisKK2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgYWRkU2xhdmVGb3JSZXBvcnQgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZFNsYXZlRm9yUmVwb3J0
OworY29uc3QgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsK
KwogZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewotICAgIHZh
ciBlbXB0eVJlcG9ydCA9IHsKKyAgICB0aGlzLnRpbWVvdXQoMTAwMCk7CisgICAgVGVzdFNlcnZl
ci5pbmplY3QoKTsKKyAgICBjb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0KCk7CisKKyAgICBj
b25zdCBlbXB0eVJlcG9ydCA9IHsKICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAog
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAogICAgIH07Ci0gICAgdmFy
IHN1YnZlcnNpb25Db21taXQgPSB7CisgICAgY29uc3Qgc3VidmVyc2lvbkNvbW1pdCA9IHsKICAg
ICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAogICAgICAgICAic2xhdmVQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQiLAogICAgICAgICAiY29tbWl0cyI6IFsKQEAgLTE2LDcgKzI5LDcgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIiwgZnVuY3RpbwogICAgICAgICAgICAgfQog
ICAgICAgICBdLAogICAgIH07Ci0gICAgdmFyIHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewor
ICAgIGNvbnN0IHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewogICAgICAgICAic2xhdmVOYW1l
IjogInNvbWVTbGF2ZSIsCiAgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIs
CiAgICAgICAgICJjb21taXRzIjogWwpAQCAtMjksNyArNDIsNyBAQCBkZXNjcmliZSgiL2FwaS9y
ZXBvcnQtY29tbWl0cy8iLCBmdW5jdGlvCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAg
fTsKLSAgICB2YXIgc3VidmVyc2lvblR3b0NvbW1pdHMgPSB7CisgICAgY29uc3Qgc3VidmVyc2lv
blR3b0NvbW1pdHMgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAg
ICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKICAgICAgICAgImNvbW1pdHMiOiBb
CkBAIC01MSwxODcgKzY0LDE5OCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8iLCBm
dW5jdGlvCiAgICAgICAgIF0KICAgICB9CiAKLSAgICBmdW5jdGlvbiBhZGRTbGF2ZShyZXBvcnQs
IGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxk
X3NsYXZlcyAoc2xhdmVfbmFtZSwgc2xhdmVfcGFzc3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIp
JywKLSAgICAgICAgICAgIFtyZXBvcnQuc2xhdmVOYW1lLCBzaGEyNTYocmVwb3J0LnNsYXZlUGFz
c3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0KKyAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3
aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30p
LnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVq
ZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAg
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
ZW1wdHlSZXBvcnQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnU2xhdmVOb3RGb3VuZCcpOworICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAocm93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIGFjY2VwdCBhbiBlbXB0eSByZXBvcnQi
LCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChlbXB0eVJlcG9y
dCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBlbXB0eVJlcG9ydCk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAg
ICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIGFkZCBhIG1p
c3NpbmcgcmVwb3NpdG9yeSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNp
b25Db21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICByZXR1cm4gZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAocm93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWyduYW1lJ10sIHN1YnZlcnNpb25D
b21taXQuY29tbWl0c1swXVsncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAg
ICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHN0b3JlIGEg
Y29tbWl0IGZyb20gYSB2YWxpZCBzbGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGNv
bnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkg
eworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgnY29tbWl0cycpLCBk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXN1bHQpIHsKKyAgICAgICAgICAgIGxldCBjb21taXRzID0gcmVzdWx0WzBdOworICAgICAgICAg
ICAgbGV0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CisgICAgICAgICAgICBsZXQgcmVwb3J0ZWRE
YXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOworCisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWydy
ZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbW1pdHNbMF1bJ3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0w
NiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29t
bWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lk
J10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQn
XSk7CisKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAg
fSk7CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIG51bWJlciIs
IGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbklu
dmFsaWRDb21taXQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lv
bicpOworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwo
J2NvbW1pdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocm93cykgeworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAg
ICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHN0b3JlIHR3
byBjb21taXRzIGZyb20gYSB2YWxpZCBzbGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCdj
b21taXRzJyksIGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpXSk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgY29uc3QgY29tbWl0cyA9IHJlc3VsdFsw
XTsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSByZXN1bHRbMV07CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAyKTsKKworICAgICAgICAgICAgbGV0IHJlcG9ydGVkRGF0
YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsncmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzBdWyd0aW1lJ10udG9TdHJpbmcoKSwg
bmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNz
YWdlJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlcidd
LCBjb21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0
ZXJzWzBdWyduYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFb
J2F1dGhvciddWydhY2NvdW50J10pOworCisgICAgICAgICAgICByZXBvcnRlZERhdGEgPSBzdWJ2
ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzFdOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bW1pdHNbMV1bJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1sxXVsndGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRl
KCcyMDEzLTAyLTA2IDA5OjU0OjU2LjAnKS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydjb21taXR0ZXInXSwgY29tbWl0
dGVyc1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0dGVyc1sxXVsn
bmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMV1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3In
XVsnYWNjb3VudCddKTsKKworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChk
b25lKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1p
dCBpZiB0aGVyZSBpcyBvbmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25zdCBkYiA9
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3Vi
dmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2
ZXJzaW9uQ29tbWl0KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLmFsbChbCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29t
bWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6IHJlcG9ydGVkRGF0YVsncmV2aXNp
b24nXSwgJ3RpbWUnOiByZXBvcnRlZERhdGFbJ3RpbWUnXX0pCisgICAgICAgICAgICBdKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9u
Q29tbWl0KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxs
KCdjb21taXR0ZXJzJyldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Cisg
ICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgY29uc3Qg
Y29tbWl0dGVycyA9IHJlc3VsdFsxXTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1p
dHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0
aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBy
ZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0
c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsn
bmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50
J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQnXSk7CisKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxk
IG5vdCB1cGRhdGUgYW4gdW5yZWxhdGVkIGNvbW1pdCIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAg
ICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBmaXJz
dERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOworICAgICAgICBjb25zdCBz
ZWNvbmREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1sxXTsKKyAgICAgICAgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGRiLmluc2VydCgn
cmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J2lkJzogMiwgJ3JlcG9zaXRvcnknOiAxLCAncmV2
aXNpb24nOiBmaXJzdERhdGFbJ3JldmlzaW9uJ10sICd0aW1lJzogZmlyc3REYXRhWyd0aW1lJ119
KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J2lkJzogMywgJ3JlcG9z
aXRvcnknOiAxLCAncmV2aXNpb24nOiBzZWNvbmREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHNl
Y29uZERhdGFbJ3RpbWUnXX0pCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFtkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKSwgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyldKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCBj
b21taXRzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IHJlc3Vs
dFsxXTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnaWQnXSwgMik7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCBmaXJzdERhdGFbJ21lc3NhZ2UnXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNb
MF1bJ2lkJ10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUn
XSwgZmlyc3REYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGZpcnN0RGF0YVsnYXV0aG9yJ11bJ2FjY291bnQn
XSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydp
ZCddLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRzWzFdWydtZXNzYWdlJ10s
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHNbMV1bJ2NvbW1pdHRlcidd
LCBudWxsKTsKKworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsK
KyAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBp
cyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQt
Y29tbWl0cy8nLCB7fSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlzc2luZ1Ns
YXZlTmFtZScpOwotICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9
KTsKLQotICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1w
dHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9tIGNvbW1pdHMn
LCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXS5jb3VudCwgMCk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhY2NlcHQgYW4g
ZW1wdHkgcmVwb3J0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShlbXB0eVJlcG9y
dCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBhIG1pc3NpbmcgcmVw
b3NpdG9yeSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1p
dCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAq
IEZST00gcmVwb3NpdG9yaWVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb3dzWzBdWydyZXBvc2l0b3J5X25hbWUnXSwgc3VidmVyc2lvbkNvbW1p
dC5jb21taXRzWzBdWydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHN0b3JlIGEgY29tbWl0IGZyb20gYSB2YWxpZCBz
bGF2ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVz
J10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gY29tbWl0cyBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1pdHRl
cl9pZCcsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0ZWRE
YXRhID0gc3VidmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2
aXNpb24nXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXRfdGltZSddLnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50
b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2Nv
bW1pdHRlcl9uYW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfYWNjb3VudCddLCBy
ZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNz
YWdlJ10pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgi
c2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIG51bWJlciIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgc3VidmVyc2lvbkNvbW1pdAotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvbkludmFsaWRDb21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZl
dGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKLSAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSB0d28g
Y29tbWl0cyBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNs
YXZlKHN1YnZlcnNpb25Ud29Db21taXRzLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBKT0lOIGNvbW1pdHRlcnMg
T04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCBPUkRFUiBCWSBjb21taXRfdGltZScs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0g
c3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9yZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3Jldmlz
aW9uJ10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0
X3RpbWUnXS50b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9T
dHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21t
aXR0ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgcmVw
b3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2Fn
ZSddKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25U
d29Db21taXRzLmNvbW1pdHNbMV07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzFdWydjb21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdF90aW1lJ10udG9T
dHJpbmcoKSwgbmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkpOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0dGVyX25hbWUn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsn
YXV0aG9yJ11bJ2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzFdWydjb21taXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgdXBkYXRl
IGFuIGV4aXN0aW5nIGNvbW1pdCBpZiB0aGVyZSBpcyBvbmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIHJlcG9zaXRvcmllcyAocmVwb3NpdG9y
eV9uYW1lKSBWQUxVRVMgKCQxKSBSRVRVUk5JTkcgKicsIFsnV2ViS2l0J10sIGZ1bmN0aW9uIChy
ZXBvc2l0b3JpZXMpIHsKLSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5SWQgPSByZXBvc2l0b3Jp
ZXNbMF1bJ3JlcG9zaXRvcnlfaWQnXTsKLSAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBz
dWJ2ZXJzaW9uQ29tbWl0LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdJTlNFUlQgSU5UTyBjb21taXRzIChjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9u
LCBjb21taXRfdGltZSkgVkFMVUVTICgkMSwgJDIsICQzKSBSRVRVUk5JTkcgKicsCi0gICAgICAg
ICAgICAgICAgW3JlcG9zaXRvcnlJZCwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCByZXBvcnRl
ZERhdGFbJ3RpbWUnXV0sIGZ1bmN0aW9uIChleGlzdGluZ0NvbW1pdHMpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgY29tbWl0SWQgPSBleGlzdGluZ0NvbW1pdHNbMF1bJ2NvbW1pdF9pZCddOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChleGlzdGluZ0NvbW1pdHNbMF1bJ2NvbW1pdF9tZXNz
YWdlJ10sIG51bGwpOwotICAgICAgICAgICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAw
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBKT0lOIGNvbW1pdHRl
cnMgT04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCcsIFtdLCBmdW5jdGlvbiAocm93
cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1
YnZlcnNpb25Db21taXQuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRo
b3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNj
b3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sw
XVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgbm90IHVw
ZGF0ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFM
VUVTICgkMSkgUkVUVVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVz
KSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBv
c2l0b3J5X2lkJ107Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3
b0NvbW1pdHMuY29tbWl0c1sxXTsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VS
VCBJTlRPIGNvbW1pdHMgKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24sIGNvbW1p
dF90aW1lKSBWQUxVRVMgKCQxLCAkMiwgJDMpIFJFVFVSTklORyAqJywKLSAgICAgICAgICAgICAg
ICBbcmVwb3NpdG9yeUlkLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsn
dGltZSddXSwgZnVuY3Rpb24gKGV4aXN0aW5nQ29tbWl0cykgewotICAgICAgICAgICAgICAgIHJl
cG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9z
aXRvcnksIGNvbW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykg
UkVUVVJOSU5HIConLAotICAgICAgICAgICAgICAgICAgICBbcmVwb3NpdG9yeUlkLCByZXBvcnRl
ZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBG
Uk9NIGNvbW1pdHMgTEVGVCBPVVRFUiBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRl
ciA9IGNvbW1pdHRlcl9pZCBPUkRFUiBCWSBjb21taXRfdGltZScsIFtdLCBmdW5jdGlvbiAocm93
cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJv
d3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvcidd
WyduYW1lJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10p
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MV1bJ2NvbW1pdHRlcl9uYW1lJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIG51bGwp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MV1bJ2NvbW1pdF9tZXNzYWdlJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0p
OwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0dGVy
IGlmIHRoZXJlIGlzIG9uZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnSU5TRVJUIElOVE8gcmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X2lkLCByZXBvc2l0b3J5X25h
bWUpIFZBTFVFUyAoMSwgXCdXZWJLaXRcJyknLCBbXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgdmFyIGF1dGhvciA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsnYXV0aG9yJ107Ci0g
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21taXR0ZXJzIChjb21t
aXR0ZXJfcmVwb3NpdG9yeSwgY29tbWl0dGVyX2FjY291bnQpIFZBTFVFUyAoMSwgJDEpJywgW2F1
dGhvclsnYWNjb3VudCddXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFkZFNsYXZl
KHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29t
bWl0dGVycycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10sIGF1dGhvclsnbmFt
ZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsn
Y29tbWl0dGVyX2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKKyAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21t
aXR0ZXIgaWYgdGhlcmUgaXMgb25lIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgY29uc3Qg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGF1dGhvciA9IHN1YnZl
cnNpb25Db21taXQuY29tbWl0c1swXVsnYXV0aG9yJ107CisgICAgICAgIGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmll
cycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdjb21taXR0ZXJzJywgeydyZXBvc2l0b3J5JzogMSwgJ2FjY291bnQnOiBhdXRob3JbJ2Fj
Y291bnQnXX0pLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ2NvbW1p
dHRlcnMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoY29tbWl0dGVycykgeworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb21taXR0ZXJzWzBdWydhY2NvdW50J10sIGF1dGhvclsnYWNj
b3VudCddKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAg
ICAgfSk7CiAKIH0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktcmVwb3J0LXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwkocmV2aXNpb24gMTk5MTIyKQko
ZnJvbSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYXBpLXJlcG9ydC5qczoxOTkxMjIp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVz
dHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NTkgQEAKK2Rlc2NyaWJlKCIvYXBpL3Jl
cG9ydCIsIGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZW1wdHlSZXBvcnQgPSBbeworICAgICAgICAi
YnVpbGROdW1iZXIiOiAiMTIzIiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEw
OjEyOjAzLjM4ODMwNCIsCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisg
ICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgImJ1aWxkZXJQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIs
CisgICAgICAgICJ0ZXN0cyI6IHt9LAorICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAg
ICAgIk9TIFgiOiB7CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAx
My0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfX1dOworCisgICAg
dmFyIGVtcHR5U2xhdmVSZXBvcnQgPSBbeworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwK
KyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAg
ICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICJidWlsZGVyUGFzc3dv
cmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAor
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJvdGhlclBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRm
b3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAidGVzdHMiOiB7fSwKKyAgICAgICAgInJl
dmlzaW9ucyI6IHsKKyAgICAgICAgICAgICJPUyBYIjogeworICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIxMC44LjIgMTJDNjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIldlYktp
dCI6IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAg
ICAgICAidGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAgICB9
CisgICAgICAgIH19XTsKKworICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXIocmVwb3J0LCBjYWxsYmFj
aykgeworICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZGVycyAoYnVp
bGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCisgICAg
ICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQ
YXNzd29yZCldLCBjYWxsYmFjayk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWRkU2xhdmUocmVw
b3J0LCBjYWxsYmFjaykgeworICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBi
dWlsZF9zbGF2ZXMgKHNsYXZlX25hbWUsIHNsYXZlX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEs
ICQyKScsCisgICAgICAgICAgICBbcmVwb3J0WzBdLnNsYXZlTmFtZSwgc2hhMjU2KHJlcG9ydFsw
XS5zbGF2ZVBhc3N3b3JkKV0sIGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICBpdCgic2hvdWxkIHJl
amVjdCBlcnJvciB3aGVuIGJ1aWxkZXIgbmFtZSBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewor
ICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3siYnVpbGRUaW1lIjogIjIwMTMtMDIt
MjhUMTA6MTI6MDMuMzg4MzA0In1dLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdN
aXNzaW5nQnVpbGRlck5hbWUnKTsKKyAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIGJ1aWxkIHRp
bWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJl
cG9ydCwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21l
UGFzc3dvcmQifV0sIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlz
c2luZ0J1aWxkVGltZScpOworICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IHdo
ZW4gdGhlcmUgYXJlIG5vIGJ1aWxkZXJzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBwb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydz
dGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3Nl
ZFJ1bnMnXSwgMCk7CisKKyAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VO
VCgqKSBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwgMCk7CisgICAgICAgICAgICAgICAgbm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQo
InNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aG91dCBhIGJ1aWxkZXIgcGFzc3dvcmQiLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHZhciByZXBvcnQgPSBbeworICAgICAgICAgICAgICAgICJidWlsZE51bWJl
ciI6ICIxMjMiLAorICAgICAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDox
MjowMy4zODgzMDQiLAorICAgICAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCisgICAgICAgICAgICAgICAgInRlc3RzIjoge30sCisgICAgICAgICAgICAgICAgInJldmlz
aW9ucyI6IHt9fV07CisgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAwKTsK
KworICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9t
IHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOworICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBi
dWlsZGVyIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlS
ZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDEp
OworICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9t
IHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDEpOworICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHRyZWF0IHRoZSBzbGF2ZSBwYXNzd29yZCBhcyB0
aGUgYnVpbGRlciBwYXNzd29yZCBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBzbGF2ZSIsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ3NsYXZlUGFzc3dvcmQnXSA9IGVtcHR5UmVwb3J0
WzBdWydidWlsZGVyUGFzc3dvcmQnXTsKKyAgICAgICAgICAgIGRlbGV0ZSBlbXB0eVJlcG9ydFsw
XVsnYnVpbGRlclBhc3N3b3JkJ107CisgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGVt
cHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQnXSA9IGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBh
c3N3b3JkJ107CisgICAgICAgICAgICAgICAgZGVsZXRlIGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBh
c3N3b3JkJ107CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3Jl
ZCddLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1
bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBd
LmNvdW50LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAg
aXQoInNob3VsZCBzdG9yZSBhIHJlcG9ydCBmcm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgIGFkZFNsYXZlKGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uu
c3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywg
W10sIGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdLmNvdW50LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgaXQoInNob3VsZCBzdG9yZSB0aGUgYnVpbGRlciBuYW1lIGJ1dCBub3QgdGhlIGJ1aWxk
ZXIgcGFzc3dvcmQiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBv
cnQsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBl
bXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUIHJlcG9ydF9jb250ZW50IGZyb20gcmVwb3J0cycsIFtdLCBmdW5j
dGlvbiAocm93cykgeworICAgICAgICAgICAgICAgICAgICB2YXIgc3RvcmVkQ29udGVudCA9IEpT
T04ucGFyc2Uocm93c1swXS5yZXBvcnRfY29udGVudCk7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzdG9yZWRDb250ZW50WydidWlsZGVyTmFtZSddLCBlbXB0eVJlcG9ydFswXVsn
YnVpbGRlck5hbWUnXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCghKCdidWlsZGVyUGFz
c3dvcmQnIGluIHN0b3JlZENvbnRlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0pOworCisgICAgaXQoInNob3VsZCBhZGQgYSBzbGF2ZSBpZiB0aGVyZSBpc24ndCBvbmUg
YW5kIHRoZSByZXBvcnQgd2FzIGF1dGhlbnRpY2F0ZWQgYnkgYSBidWlsZGVyIiwgZnVuY3Rpb24g
KCkgeworICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZy
b20gYnVpbGRfc2xhdmVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBdLnNsYXZlX25hbWUsIGVtcHR5UmVwb3J0WzBd
LnNsYXZlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAg
IGl0KCJzaG91bGQgYWRkIGEgYnVpbGRlciBpZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBv
cnQgd2FzIGF1dGhlbnRpY2F0ZWQgYnkgYSBzbGF2ZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
YWRkU2xhdmUoZW1wdHlTbGF2ZVJlcG9ydCwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5U2xhdmVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgeworICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVp
bGRlcnMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3NbMF0uYnVpbGRlcl9uYW1lLCBlbXB0eVJlcG9ydFswXS5idWlsZGVy
TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJz
aG91bGQgYWRkIGEgYnVpbGQiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIoZW1w
dHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogZnJvbSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uYnVp
bGRfbnVtYmVyLCAxMjMpOworICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBpdCgic2hvdWxkIGFkZCB0aGUgcGxhdGZvcm0iLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogZnJvbSBwbGF0Zm9ybXMn
LCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3NbMF0ucGxhdGZvcm1fbmFtZSwgJ01vdW50YWluIExpb24nKTsKKyAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBhZGQgcmVwb3Np
dG9yaWVzIGFuZCBidWlsZCByZXZpc2lvbnMiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1
aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSByZXBvc2l0b3JpZXMnLCBb
XSwgZnVuY3Rpb24gKHJvd3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyb3dzLm1hcChmdW5jdGlvbiAocm93KSB7IHJldHVybiByb3dbJ3JlcG9zaXRvcnlfbmFtZSdd
OyB9KSwgWydPUyBYJywgJ1dlYktpdCddKTsKKworICAgICAgICAgICAgICAgICAgICB2YXIgcmVw
b3NpdG9yeUlkVG9OYW1lID0ge307CisgICAgICAgICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChm
dW5jdGlvbiAocm93KSB7IHJlcG9zaXRvcnlJZFRvTmFtZVtyb3dbJ3JlcG9zaXRvcnlfaWQnXV0g
PSByb3dbJ3JlcG9zaXRvcnlfbmFtZSddOyB9KTsKKyAgICAgICAgICAgICAgICAgICAgcXVlcnlB
bmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21taXRzIFdIRVJFIGJ1
aWxkX2NvbW1pdCA9IGNvbW1pdF9pZCcsIFtdLCBmdW5jdGlvbiAocm93cykgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAg
ICAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVwb3Np
dG9yeUlkVG9OYW1lW3Jvd1snY29tbWl0X3JlcG9zaXRvcnknXV1dID0gcm93OworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydPUyBYJ11bJ2NvbW1pdF9yZXZpc2lvbiddLCAn
MTAuOC4yIDEyQzYwJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsnY29tbWl0X3JldmlzaW9uJ10sICcx
NDE5NzcnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydjb21taXRfdGltZSddLnRvU3RyaW5nKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAu
OScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgbm90IGNyZWF0ZSBh
IGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhlIHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRpbWVz
IGFyZSBjbG9zZSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9y
dCwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSdd
ID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVw
b3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ09LJyk7CisKKyAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10g
PSAnMjAxMy0wMi0yOFQxMDoyMjowMyc7CisgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnT0snKTsKKworICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNo
QWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAocm93cykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIGNyZWF0ZSBkaXN0aW5jdCBidWlsZHMgZm9yIHRoZSBzYW1lIGJ1
aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgZmFyIGFwYXJ0IiwgZnVuY3Rpb24gKCkgewor
ICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBlbXB0eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoxMjowMyc7Cisg
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0
dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKworICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChy
b3dzKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7
CisKKyAgICAgICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIw
MTQtMDEtMjBUMjI6MjM6MzQnOworICAgICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dz
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBp
dCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3aXRoIG1pc21hdGNoaW5nIHJldmlzaW9uIGluZm8i
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydyZXZpc2lvbnMnXSA9IHsKKyAgICAg
ICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MTQxOTc3IiwKKyAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4
OjU1OjIwLjk2WiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKKworICAgICAgICAgICAgICAgIGVtcHR5UmVw
b3J0WzBdWydyZXZpc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNTAwMDAiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTA1LTEzVDEwOjUwOjI5LjZaIgorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydChyZXNwb25zZS5yZXNwb25zZVRleHQuaW5kZXhPZignMTQxOTc3JykgPj0gMCk7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydChyZXNwb25zZS5yZXNwb25zZVRleHQuaW5kZXhPZign
MTUwMDAwJykgPj0gMCk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgdHJ1ZSk7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIHZhciByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMgPSBb
eworICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIy
MDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21l
QnVpbGRlciIsCisgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAg
ICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAidGVzdHMiOiB7Cisg
ICAgICAgICAgICAiRHVtbXlQYWdlTG9hZGluZyI6IHsKKyAgICAgICAgICAgICAgICAibWV0cmlj
cyI6IHsiVGltZSI6IHsgImFnZ3JlZ2F0b3JzIiA6IFsiQXJpdGhtZXRpYyJdLCAiY3VycmVudCI6
IFszMDAsIDMxMCwgMzIwLCAzMzBdIH19LAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgImFwcGxlLmNvbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFs1MDAsIDUxMCwgNTIwLCA1MzBdIH19
LAorICAgICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwOi8vd3d3LmFwcGxlLmNvbSIK
KyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIndlYmtpdC5vcmci
OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJl
bnQiOiBbMTAwLCAxMTAsIDEyMCwgMTMwXSB9fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1
cmwiOiAiaHR0cDovL3d3dy53ZWJraXQub3JnIgorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJEdW1teUJlbmNobWFy
ayI6IHsKKyAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IFsiQXJpdGhtZXRpYyJd
fSwKKyAgICAgICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJET00i
OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IFsiR2VvbWV0
cmljIiwgIkFyaXRobWV0aWMiXX0sCisgICAgICAgICAgICAgICAgICAgICAgICAidGVzdHMiOiB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vZGlmeU5vZGVzIjogeyJtZXRyaWNzIjog
eyJUaW1lIjogeyAiY3VycmVudCI6IFtbMTEsIDEyLCAxMywgMTQsIDE1XSwgWzE2LCAxNywgMTgs
IDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNCwgMjVdXSB9fX0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRyYXZlcnNlTm9kZXMiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50
IjogW1szMSwgMzIsIDMzLCAzNCwgMzVdLCBbMzYsIDM3LCAzOCwgMzksIDQwXSwgWzQxLCA0Miwg
NDMsIDQ0LCA0NV1dIH19fQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiQ1NTIjogeyJtZXRyaWNzIjogeyJUaW1l
IjogeyAiY3VycmVudCI6IFtbMTAxLCAxMDIsIDEwMywgMTA0LCAxMDVdLCBbMTA2LCAxMDcsIDEw
OCwgMTA5LCAxMTBdLCBbMTExLCAxMTIsIDExMywgMTE0LCAxMTVdXSB9fX0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJyZXZpc2lvbnMiOiB7
CisgICAgICAgICAgICAiT1MgWCI6IHsKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAu
OC4yIDEyQzYwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInRpbWVz
dGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgorICAgICAgICAgICAgfQorICAgICAgICB9
fV07CisKKyAgICBmdW5jdGlvbiBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydCwg
Y2FsbGJhY2spIHsKKyAgICAgICAgYWRkQnVpbGRlcihyZXBvcnQsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGFnZ3JlZ2F0b3JzIChhZ2dy
ZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikgdmFsdWVzICgkMSwgJDIpJywKKyAg
ICAgICAgICAgICAgICBbJ0FyaXRobWV0aWMnLCAndmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwg
YikgeyByZXR1cm4gYSArIGI7IH0pIC8gdmFsdWVzLmxlbmd0aCddLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYWdncmVnYXRvcnMg
KGFnZ3JlZ2F0b3JfbmFtZSwgYWdncmVnYXRvcl9kZWZpbml0aW9uKSB2YWx1ZXMgKCQxLCAkMikn
LAorICAgICAgICAgICAgICAgICAgICBbJ0dlb21ldHJpYycsICdNYXRoLnBvdyh2YWx1ZXMucmVk
dWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhICogYjsgfSksIDEgLyB2YWx1ZXMubGVuZ3Ro
KSddLCBjYWxsYmFjayk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZmV0Y2hSdW5Gb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05hbWUsY2FsbGJh
Y2spIHsKKyAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMg
V0hFUkUgcnVuX2NvbmZpZyBJTicKKyAgICAgICAgICAgICsgJyhTRUxFQ1QgY29uZmlnX2lkIEZS
T00gdGVzdF9jb25maWd1cmF0aW9ucywgdGVzdF9tZXRyaWNzLCB0ZXN0cyBXSEVSRSBjb25maWdf
bWV0cmljID0gbWV0cmljX2lkIEFORCBtZXRyaWNfdGVzdCA9IHRlc3RfaWQgQU5EJworICAgICAg
ICAgICAgKyAndGVzdF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDIpJywKKyAgICAgICAg
ICAgIFsnQXJpdGhtZXRpYycsICd2YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVy
biBhICsgYjsgfSkgLyB2YWx1ZXMubGVuZ3RoJ10sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25h
bWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikgdmFsdWVzICgkMSwgJDIpJywKKyAgICAgICAgICAg
ICAgICBbJ0dlb21ldHJpYycsICdNYXRoLnBvdyh2YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChhLCBi
KSB7IHJldHVybiBhICogYjsgfSksIDEgLyB2YWx1ZXMubGVuZ3RoKSddLCBjYWxsYmFjayk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGl0KCJzaG91bGQgbm90IHJlamVjdCB3aGVuIGFnZ3Jl
Z2F0b3JzIGFyZSBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyKHJl
cG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0
aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91
bGQgYWRkIHRlc3RzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFn
Z3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZl
bHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMnLCBbXSwgZnVuY3Rpb24gKHJv
d3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyb3dzLm1hcChmdW5j
dGlvbiAocm93KSB7IHJldHVybiByb3dbJ3Rlc3RfbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAg
ICAgICAgICAgICAgICAgICBbJ0NTUycsICdET00nLCAnRHVtbXlCZW5jaG1hcmsnLCAnRHVtbXlQ
YWdlTG9hZGluZycsICdNb2RpZnlOb2RlcycsICdUcmF2ZXJzZU5vZGVzJywgJ2FwcGxlLmNvbScs
ICd3ZWJraXQub3JnJ10pOworICAgICAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXS50ZXN0
cyA9IHt9OworICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgi
c2hvdWxkIGFkZCBtZXRyaWNzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyQW5k
TWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNz
IExFRlQgSk9JTiBhZ2dyZWdhdG9ycyBPTiBtZXRyaWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3Jf
aWQgV0hFUkUgbWV0cmljX3Rlc3QgPSB0ZXN0X2lkJywKKyAgICAgICAgICAgICAgICAgICAgW10s
IGZ1bmN0aW9uIChyb3dzKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciB0ZXN0TmFtZVRvTWV0
cmljcyA9IHt9OworICAgICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJv
dykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEocm93Wyd0ZXN0X25hbWUnXSBpbiB0
ZXN0TmFtZVRvTWV0cmljcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWVU
b01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBuZXcgQXJyYXk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3dbJ3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21l
dHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRvcl9uYW1lJ11dKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01l
dHJpY3NbJ0NTUyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywg
J0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21ldHJpYyddXSk7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10s
IFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScs
ICdBcml0aG1ldGljJ11dKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0
ZXN0TmFtZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZl
cnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVs
bF1dKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0
cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCisgICAgZnVuY3Rpb24gZmV0Y2hUZXN0UnVuSXRlcmF0aW9u
c0Zvck1ldHJpYyh0ZXN0TmFtZSwgbWV0cmljTmFtZSwgY2FsbGJhY2spIHsKKyAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcywgdGVzdF9j
b25maWd1cmF0aW9ucywgdGVzdF9ydW5zIFdIRVJFIG1ldHJpY190ZXN0ID0gdGVzdF9pZCBBTkQg
Y29uZmlnX21ldHJpYyA9IG1ldHJpY19pZCcKKyAgICAgICAgICAgICsgJyBBTkQgcnVuX2NvbmZp
ZyA9IGNvbmZpZ19pZCBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDInLCBb
dGVzdE5hbWUsIG1ldHJpY05hbWVdLCBmdW5jdGlvbiAocnVuUm93cykgeworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgdmFy
IHJ1biA9IHJ1blJvd3NbMF07CisgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUICogRlJPTSBydW5faXRlcmF0aW9ucyBXSEVSRSBpdGVyYXRpb25fcnVuID0gJDEgT1JERVIg
QlkgaXRlcmF0aW9uX29yZGVyJywgW3J1blsncnVuX2lkJ11dLCBmdW5jdGlvbiAoaXRlcmF0aW9u
Um93cykgeworICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhydW4sIGl0ZXJhdGlvblJvd3Mp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgaXQo
InNob3VsZCBzdG9yZSBydW4gdmFsdWVzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWls
ZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywg
J1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoaXRlcmF0aW9ucywgWworICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlv
bl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwg
aXRlcmF0aW9uX3ZhbHVlOiA1MDAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29y
ZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTEwLCBpdGVy
YXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7aXRl
cmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBu
dWxsLCBpdGVyYXRpb25fdmFsdWU6IDUyMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9
LAorICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRp
b25fb3JkZXI6IDMsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MzAs
IGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfV0pOworICAgICAgICAgICAgICAgICAgICB2
YXIgc3VtID0gNTAwICsgNTEwICsgNTIwICsgNTMwOworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSddLCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwg
c3VtKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9z
dW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICogNTEwICsgNTIwICogNTIwICsgNTMwICogNTMw
KTsKKworICAgICAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmlj
KCdDU1MnLCAnVGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRl
cmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwMSwgaXRlcmF0aW9uX3JlbGF0aXZl
X3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVu
OiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlv
bl92YWx1ZTogMTAyLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6
IDIsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDMsIGl0ZXJhdGlvbl9y
ZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0
aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiAwLCBp
dGVyYXRpb25fdmFsdWU6IDEwNCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9u
X29yZGVyOiA0LCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTA1LCBpdGVy
YXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
e2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDUsIGl0ZXJhdGlvbl9ncm91
cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDYsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxs
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0
ZXJhdGlvbl9vcmRlcjogNiwgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEw
NywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA3LCBpdGVyYXRp
b25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTA4LCBpdGVyYXRpb25fcmVsYXRpdmVfdGlt
ZTogbnVsbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1
bklkLCBpdGVyYXRpb25fb3JkZXI6IDgsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3Zh
bHVlOiAxMDksIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogOSwg
aXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDExMCwgaXRlcmF0aW9uX3JlbGF0
aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25f
cnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVy
YXRpb25fdmFsdWU6IDExMSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29y
ZGVyOiAxMSwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMiwgaXRlcmF0
aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtp
dGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMiwgaXRlcmF0aW9uX2dyb3Vw
OiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRl
cmF0aW9uX29yZGVyOiAxMywgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDEx
NCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxNCwgaXRlcmF0
aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExNSwgaXRlcmF0aW9uX3JlbGF0aXZlX3Rp
bWU6IG51bGx9XSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBzcXVhcmVTdW0gPSAwOworICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yICh2YXIgdmFsdWUgPSAxMDE7IHZhbHVlIDw9IDExNTsgKyt2YWx1ZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN1bSArPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcXVhcmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9t
ZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10s
IHNxdWFyZVN1bSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBzdG9yZSBhZ2dyZWdhdGVk
IHJ1biB2YWx1ZXMiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdn
cmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFR3b0xldmVs
c09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBm
ZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdEdW1teVBhZ2VMb2FkaW5nJywgJ1RpbWUn
LCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBy
dW5JZCA9IHJ1blsncnVuX2lkJ107CisgICAgICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZFZh
bHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAgKyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAy
LCAoNTMwICsgMTMwKSAvIDJdOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGl0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBy
dW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlv
bl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMF0sIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxs
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0
aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogZXhw
ZWN0ZWRWYWx1ZXNbMV0sIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAy
LCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNb
Ml0sIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAzLCBpdGVyYXRpb25f
Z3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbM10sIGl0ZXJhdGlv
bl9yZWxhdGl2ZV90aW1lOiBudWxsfV0pOworICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0g
ZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0g
KyB2YWx1ZTsgfSwgMCk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1
bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBleHBl
Y3RlZFZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKHN1bSwgdmFsdWUpIHsgcmV0dXJuIHN1bSArIHZh
bHVlICogdmFsdWU7IH0sIDApKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0p
OworCisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9m
IGFnZ3JlZ2F0ZWQgdmFsdWVzIiwgZnVuY3Rpb24gKCkgeworICAgICAgICBhZGRCdWlsZGVyQW5k
TWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAn
VGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIGV4cGVjdGVkSXRlcmF0aW9ucyA9IFtdOworICAgICAgICAgICAgICAgICAgICB2YXIgc3Vt
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNxdWFyZVN1bSA9IDA7CisgICAgICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTU7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIHZhbHVlID0gaSArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIg
RE9NTWVhbiA9ICgoMTAgKyB2YWx1ZSkgKyAoMzAgKyB2YWx1ZSkpIC8gMjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gKERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkg
LyAyOworICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVk
VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7
aXRlcmF0aW9uX3J1bjogcnVuWydydW5faWQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25fb3JkZXI6IGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0
aW9uX2dyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIGV4
cGVjdGVkSXRlcmF0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBz
cXVhcmVTdW0pOworICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICB2
YXIgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSA9IFt7CisgICAgICAgICJidWlsZE51bWJlciI6
ICIxMjMiLAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0
IiwKKyAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgImJ1aWxk
ZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRh
aW4gTGlvbiIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICJTdWl0ZTEiOiB7Cisg
ICAgICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7
CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQi
OiBbMSwgMiwgMywgNCwgNV0gfX0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgInRlc3QyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
IlRpbWUiOiB7ICJjdXJyZW50IjogWzYsIDcsIDgsIDksIDEwXSB9fQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJT
dWl0ZTIiOiB7CisgICAgICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAgICAgICAg
ICAidGVzdDEiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6
IHsgImN1cnJlbnQiOiBbMTEsIDEyLCAxMywgMTQsIDE1XSB9fQorICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICAidGVzdDIiOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTYsIDE3LCAxOCwgMTksIDIw
XSB9fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9fV07CisKKyAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gYWRkIGEgcmVw
b3J0IHdpdGggc2FtZSBzdWJ0ZXN0IG5hbWUiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1
aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhT
YW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgIEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9y
ZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBy
ZXVzZSB0aGUgc2FtZSB0ZXN0IHJvd3MiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxk
ZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1l
U3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMnLCBbXSwgZnVuY3Rpb24gKHRlc3RSb3dz
KSB7CisgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSb3dzLmxlbmd0aCwgNik7
CisgICAgICAgICAgICAgICAgICAgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZS5idWlsZE51bWJl
ciA9ICIxMjUiOworICAgICAgICAgICAgICAgICAgIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUu
YnVpbGRUaW1lID0gIjIwMTMtMDItMjhUMTI6MTc6MjQuMSI7CisKKyAgICAgICAgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOworICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUFu
ZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywgW10sIGZ1bmN0aW9uICh0ZXN0Um93cykg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RSb3dzLmxl
bmd0aCwgNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0p
OworCisgICAgdmFyIHJlcG9ydFdpdGhTYW1lU2luZ2xlVmFsdWUgPSBbeworICAgICAgICAiYnVp
bGROdW1iZXIiOiAiMTIzIiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEy
OjAzLjM4ODMwNCIsCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAg
ICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3Jt
IjogIk1vdW50YWluIExpb24iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAic3Vp
dGUiOiB7CisgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IkNvbWJpbmVkIjogWyJBcml0aG1l
dGljIl19LAorICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAg
InRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IkNvbWJpbmVk
IjogeyAiY3VycmVudCI6IDMgfX0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgInRlc3QyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7
IkNvbWJpbmVkIjogeyAiY3VycmVudCI6IDcgfX0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAgIGl0KCJz
aG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBzaW5nbGUgdmFsdWUgcmVzdWx0cyIs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBv
cnRXaXRoU2FtZVNpbmdsZVZhbHVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBwb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2gg
KGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCBy
ZXNwb25zZS5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMn
XSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9u
c2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygndGVzdDEnLCAnQ29tYmluZWQnLCBm
dW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3J1bl9pdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIDMpOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCA5
KTsKKyAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygn
c3VpdGUnLCAnQ29tYmluZWQnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5faXRlcmF0aW9uX2NvdW50X2Nh
Y2hlJ10sIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVu
X21lYW5fY2FjaGUnXSwgNSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydydW5fc3VtX2NhY2hlJ10sIDUpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgMjUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAg
IHZhciByZXBvcnRXaXRoU2FtZVZhbHVlUGFpcnMgPSBbeworICAgICAgICAiYnVpbGROdW1iZXIi
OiAiMTIzIiwKKyAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCisgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICJidWls
ZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgInBsYXRmb3JtIjogIk1vdW50
YWluIExpb24iLAorICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgInRlc3QiOiB7
CisgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50
IjogW1tbMCwgNF0sIFsxMDAsIDVdLCBbMjA1LCAzXV1dIH19CisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIH0sCisgICAgICAgIH1dOworCisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRv
IGFkZCBhIHJlcG9ydCB3aXRoIChyZWxhdGl2ZSB0aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5jdGlv
biAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNh
bWVWYWx1ZVBhaXJzLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
KyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJl
c3BvbnNlVGV4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmZXRjaFRl
c3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCd0ZXN0JywgJ0ZyYW1lUmF0ZScsIGZ1bmN0aW9uIChy
dW4sIGl0ZXJhdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsn
cnVuX2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAzKTsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgNCk7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgMTIpOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsg
OSk7CisgICAgICAgICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWworICAgICAgICAg
ICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAs
IGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA0LCBpdGVyYXRpb25fcmVs
YXRpdmVfdGltZTogMH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjog
cnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRp
b25fdmFsdWU6IDUsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiAxMDB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0
ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiAzLCBpdGVyYXRpb25fcmVsYXRp
dmVfdGltZTogMjA1fV0pOworICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICB2YXIgcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHMgPSBbCisgICAgICAgIFt7Cisg
ICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKKyAgICAgICAgICAgICJidWlsZFRpbWUi
OiAiMjAxMy0wMi0yOFQxMDoxMjowMyIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29t
ZUJ1aWxkZXIiLAorICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAorICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAg
InRlc3RzIjogeyJ0ZXN0MSI6IHsibWV0cmljcyI6IHsiVGltZSI6IHsiY3VycmVudCI6IDN9fX19
CisgICAgICAgIH1dLAorICAgICAgICBbeworICAgICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
NCIsCisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTE6MzE6MjEiLAorICAg
ICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJidWls
ZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJN
b3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHsidGVzdDIiOiB7Im1ldHJpY3Mi
OiB7IlRpbWUiOiB7ImN1cnJlbnQiOiAzfX19fQorICAgICAgICB9XSwKKyAgICAgICAgW3sKKyAg
ICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDEyOjQ1OjM0IiwKKyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21l
QnVpbGRlciIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIs
CisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisgICAgICAgICAgICAi
dGVzdHMiOiB7InRlc3QxIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyJjdXJyZW50IjogM319fX0K
KyAgICAgICAgfV0sCisgICAgXTsKKworICAgIGZ1bmN0aW9uIGZldGNoVGVzdENvbmZpZyh0ZXN0
TmFtZSwgbWV0cmljTmFtZSwgY2FsbGJhY2spIHsKKyAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwo
J1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0aW9ucyBX
SEVSRSB0ZXN0X2lkID0gbWV0cmljX3Rlc3QgQU5EIG1ldHJpY19pZCA9IGNvbmZpZ19tZXRyaWMn
CisgICAgICAgICAgICArICcgQU5EIHRlc3RfbmFtZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQy
JywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24gKHJ1blJvd3MpIHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAg
IGNhbGxiYWNrKHJ1blJvd3NbMF0pOworICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgaXQo
InNob3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB0ZXN0IGNvbmZpZ3VyYXRp
b25zIHdpdGggbmV3IHJ1bnMiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGFkZEJ1aWxkZXIocmVw
b3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF0sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sw
XSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7CisgICAgICAgICAgICAgICAgZmV0Y2hUZXN0Q29uZmln
KCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKG9yaWdpbmFsQ29uZmlnKSB7CisgICAgICAgICAg
ICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzVXBkYXRpbmdEaWZmZXJl
bnRUZXN0c1syXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScsIGZ1bmN0aW9uIChjb25m
aWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoK29yaWdp
bmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19y
dW5zX2xhc3RfbW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0pOworCisgICAgaXQoInNob3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBv
ZiB1bnJlbGF0ZWQgdGVzdCBjb25maWd1cmF0aW9ucyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
YWRkQnVpbGRlcihyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0Rp
ZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKKyAgICAgICAgICAgICAgICBm
ZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnLCBmdW5jdGlvbiAob3JpZ2luYWxDb25maWcp
IHsKKyAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNV
cGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywg
ZnVuY3Rpb24gKGNvbmZpZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZp
Z1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMJKHdvcmtpbmcg
Y29weSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9y
dC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzMTQgKzEsMzYwIEBACi1kZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGVtcHR5UmVwb3J0ID0gW3sKLSAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxk
ZXIiLAotICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCi0gICAgICAgICJidWlsZGVy
UGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWlu
IExpb24iLAotICAgICAgICAidGVzdHMiOiB7fSwKLSAgICAgICAgInJldmlzaW9ucyI6IHsKLSAg
ICAgICAgICAgICJPUyBYIjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIg
MTJDNjAiCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1w
IjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH19XTsK
Kyd1c2Ugc3RyaWN0JzsKIAotICAgIHZhciBlbXB0eVNsYXZlUmVwb3J0ID0gW3sKLSAgICAgICAg
ImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQx
MDoxMjowMy4zODgzMDQiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAot
ICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJzbGF2
ZU5hbWUiOiAic29tZVNsYXZlIiwKLSAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAib3RoZXJQYXNz
d29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRl
c3RzIjoge30sCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiT1MgWCI6IHsK
LSAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE0MTk3NyIsCi0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1
OjIwLjlaIgotICAgICAgICAgICAgfQotICAgICAgICB9fV07Citjb25zdCBhc3NlcnQgPSByZXF1
aXJlKCdhc3NlcnQnKTsKIAotICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXIocmVwb3J0LCBjYWxsYmFj
aykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZGVycyAoYnVp
bGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAg
ICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBzaGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQ
YXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQorY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUo
Jy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7Citjb25zdCBhZGRCdWlsZGVyRm9yUmVwb3J0
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWlsZGVy
Rm9yUmVwb3J0OworY29uc3QgYWRkU2xhdmVGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZFNsYXZlRm9yUmVwb3J0OworY29uc3QgY29ubmVj
dFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zLmpzJykuY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdDsKIAotICAgIGZ1bmN0aW9u
IGFkZFNsYXZlKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
SU5TRVJUIElOVE8gYnVpbGRfc2xhdmVzIChzbGF2ZV9uYW1lLCBzbGF2ZV9wYXNzd29yZF9oYXNo
KSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5zbGF2ZU5hbWUsIHNo
YTI1NihyZXBvcnRbMF0uc2xhdmVQYXNzd29yZCldLCBjYWxsYmFjayk7CitkZXNjcmliZSgiL2Fw
aS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOworICAgIFRl
c3RTZXJ2ZXIuaW5qZWN0KCk7CisgICAgY29ubmVjdFRvRGF0YWJhc2VJbkV2ZXJ5VGVzdCgpOwor
CisgICAgZnVuY3Rpb24gZW1wdHlSZXBvcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUi
OiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAor
ICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAg
ICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgInRlc3RzIjoge30s
CisgICAgICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgICAgICJPUyBYIjogewor
ICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAi
OiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH07CiAgICAgfQogCi0gICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hl
biBidWlsZGVyIG5hbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4
ODMwNCJ9XSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkZXJO
YW1lJyk7Ci0gICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwor
ICAgIGZ1bmN0aW9uIGVtcHR5U2xhdmVSZXBvcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAorICAgICAgICAgICAgImJ1aWxkVGlt
ZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICAgICAiYnVpbGRlck5h
bWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUi
LAorICAgICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAib3RoZXJQYXNzd29yZCIsCisgICAgICAg
ICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisgICAgICAgICAgICAidGVzdHMiOiB7
fSwKKyAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7CisgICAgICAgICAgICAgICAgIk9TIFgiOiB7
CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJDNjAiCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFt
cCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfTsKKyAgICB9CiAKLSAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3
aGVuIGJ1aWxkIHRpbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVp
bGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQifV0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0
YXR1cyddLCAnTWlzc2luZ0J1aWxkVGltZScpOwotICAgICAgICAgICAgICAgIG5vdGlmeURvbmUo
KTsKLSAgICAgICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gYnVp
bGRlciBuYW1lIGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbeyJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQifV0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ0J1
aWxkZXJOYW1lJyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUp
OworICAgIH0pOworCisgICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBidWlsZCB0aW1l
IGlzIG1pc3NpbmciLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVw
b3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxk
ZXJOYW1lIjogInNvbWVCdWlsZGVyIiwgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
fV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdCdWlsZFRpbWUnKTsKKyAg
ICAgICAgICAgIGRvbmUoKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKLSAgICBpdCgic2hvdWxk
IHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
Wydwcm9jZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwotICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aGVuIHRoZXJlIGFyZSBubyBidWlsZGVycyIsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIFtlbXB0eVJlcG9ydCgpXSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdCdWlsZGVyTm90Rm91bmQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnZmFpbHVyZVN0b3JlZCddLCBmYWxz
ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3Byb2Nlc3NlZFJ1bnMnXSwg
MCk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgn
cmVwb3J0cycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXBvcnRzKSB7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVwb3J0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIGl0KCJzaG91bGQgcmVq
ZWN0IGEgcmVwb3J0IHdpdGhvdXQgYSBidWlsZGVyIHBhc3N3b3JkIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7CisgICAgaXQoInNo
b3VsZCByZWplY3QgYSByZXBvcnQgd2l0aG91dCBhIGJ1aWxkZXIgcGFzc3dvcmQiLCBmdW5jdGlv
biAoZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRo
ZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdmFyIHJlcG9ydCA9IFt7CiAgICAgICAgICAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCiAgICAgICAgICAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCiAgICAgICAgICAgICAgICAgImJ1aWxkZXJO
YW1lIjogInNvbWVCdWlsZGVyIiwKICAgICAgICAgICAgICAgICAidGVzdHMiOiB7fSwKICAgICAg
ICAgICAgICAgICAicmV2aXNpb25zIjoge319XTsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1
cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9j
ZXNzZWRSdW5zJ10sIDApOwotCi0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwgMCk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgc3RvcmUgYSByZXBv
cnQgZnJvbSBhIHZhbGlkIGJ1aWxkZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxk
ZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3Rh
dHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3By
b2Nlc3NlZFJ1bnMnXSwgMSk7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUIENPVU5UKCopIGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwgMSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgdHJlYXQgdGhlIHNs
YXZlIHBhc3N3b3JkIGFzIHRoZSBidWlsZGVyIHBhc3N3b3JkIGlmIHRoZXJlIGlzIG5vIG1hdGNo
aW5nIHNsYXZlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnc2xhdmVQYXNzd29y
ZCddID0gZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddOwotICAgICAgICAgICAgZGVs
ZXRlIGVtcHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQnXTsKLSAgICAgICAgICAgIHBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ2J1aWxkZXJQYXNzd29yZCddID0gZW1wdHlS
ZXBvcnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKLSAgICAgICAgICAgICAgICBkZWxldGUgZW1wdHlS
ZXBvcnRbMF1bJ3NsYXZlUGFzc3dvcmQnXTsKLQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDEp
OwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9t
IHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDEpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBz
bGF2ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoZW1wdHlTbGF2ZVJlcG9ydCwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5
U2xhdmVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0sn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNw
b25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9jZXNzZWRSdW5z
J10sIDEpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgq
KSBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDEpOwotICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHN0b3JlIHRoZSBidWlsZGVyIG5hbWUg
YnV0IG5vdCB0aGUgYnVpbGRlciBwYXNzd29yZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRk
QnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgcmVwb3J0X2NvbnRlbnQgZnJvbSBy
ZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBz
dG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyb3dzWzBdLnJlcG9ydF9jb250ZW50KTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10s
IGVtcHR5UmVwb3J0WzBdWydidWlsZGVyTmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0KCEoJ2J1aWxkZXJQYXNzd29yZCcgaW4gc3RvcmVkQ29udGVudCkpOwotICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBhIHNsYXZlIGlm
IHRoZXJlIGlzbid0IG9uZSBhbmQgdGhlIHJlcG9ydCB3YXMgYXV0aGVudGljYXRlZCBieSBhIGJ1
aWxkZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJl
cG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnU0VMRUNUICogZnJvbSBidWlsZF9zbGF2ZXMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uc2xhdmVfbmFt
ZSwgZW1wdHlSZXBvcnRbMF0uc2xhdmVOYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5
RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0p
OwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQgYSBidWlsZGVyIGlmIHRoZXJlIGlzbid0
IG9uZSBhbmQgdGhlIHJlcG9ydCB3YXMgYXV0aGVudGljYXRlZCBieSBhIHNsYXZlIiwgZnVuY3Rp
b24gKCkgewotICAgICAgICBhZGRTbGF2ZShlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlTbGF2ZVJlcG9ydCwg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogZnJvbSBidWlsZGVycycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5idWlsZGVyX25hbWUsIGVtcHR5
UmVwb3J0WzBdLmJ1aWxkZXJOYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgp
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQgYSBidWlsZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBmcm9tIGJ1aWxkcycs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocm93c1swXS5idWlsZF9udW1iZXIsIDEyMyk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIHRoZSBwbGF0Zm9ybSIsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1Qg
KiBmcm9tIHBsYXRmb3JtcycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93c1swXS5wbGF0Zm9ybV9uYW1lLCAnTW91bnRhaW4g
TGlvbicpOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgi
c2hvdWxkIGFkZCByZXBvc2l0b3JpZXMgYW5kIGJ1aWxkIHJldmlzaW9ucyIsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IHJlcG9zaXRvcmllcycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuIHJvd1sn
cmVwb3NpdG9yeV9uYW1lJ107IH0pLCBbJ09TIFgnLCAnV2ViS2l0J10pOwotCi0gICAgICAgICAg
ICAgICAgICAgIHZhciByZXBvc2l0b3J5SWRUb05hbWUgPSB7fTsKLSAgICAgICAgICAgICAgICAg
ICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsgcmVwb3NpdG9yeUlkVG9OYW1lW3Jvd1sn
cmVwb3NpdG9yeV9pZCddXSA9IHJvd1sncmVwb3NpdG9yeV9uYW1lJ107IH0pOwotICAgICAgICAg
ICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkX2NvbW1pdHMs
IGNvbW1pdHMgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkJywgW10sIGZ1bmN0aW9uIChy
b3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWVUb1Jldmlz
aW9uUm93ID0ge307Ci0gICAgICAgICAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rp
b24gKHJvdykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9S
ZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbcm93Wydjb21taXRfcmVwb3NpdG9yeSddXV0g
PSByb3c7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ09TIFgnXVsnY29t
bWl0X3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydjb21t
aXRfcmV2aXNpb24nXSwgJzE0MTk3NycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ2NvbW1pdF90aW1l
J10udG9TdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgnMjAx
My0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNo
b3VsZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWlsZCBudW1i
ZXIgaWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9y
dFswXVsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoxMjowNCc7Ci0gICAgICAgICAgICBw
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkg
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDAp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0
WzBdWydidWlsZFRpbWUnXSA9ICcyMDEzLTAyLTI4VDEwOjIyOjAzJzsKLSAgICAgICAgICAgICAg
ICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotCi0gICAgICAgICAgICAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9u
IChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgY3JlYXRlIGRpc3RpbmN0IGJ1aWxk
cyBmb3IgdGhlIHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRpbWVzIGFyZSBmYXIgYXBhcnQi
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydidWlsZFRpbWUnXSA9ICcyMDEzLTAy
LTI4VDEwOjEyOjAzJzsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0
eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwot
Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZHMn
LCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAxKTsKLQotICAgICAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsn
YnVpbGRUaW1lJ10gPSAnMjAxNC0wMS0yMFQyMjoyMzozNCc7Ci0gICAgICAgICAgICAgICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAg
ICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZHMnLCBb
XSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocm93cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlm
eURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnQpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0J1aWxkZXJOb3RGb3VuZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydm
YWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsncHJvY2Vzc2VkUnVucyddLCAwKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRh
dGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxlbmd0aCwgMCk7
CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOwor
CisgICAgaXQoInNob3VsZCBzdG9yZSBhIHJlcG9ydCBmcm9tIGEgdmFsaWQgYnVpbGRlciIsIGZ1
bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQo
KSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWRDb250ZW50ID0gZW1wdHlSZXBv
cnQoKTsKKyAgICAgICAgICAgIGNvbnN0IHN0b3JlZENvbnRlbnQgPSBKU09OLnBhcnNlKHJlcG9y
dHNbMF1bJ2NvbnRlbnQnXSk7CisKKyAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50
WydidWlsZGVyUGFzc3dvcmQnXTsKKyAgICAgICAgICAgIGRlbGV0ZSBzdWJtaXR0ZWRDb250ZW50
Wyd0ZXN0cyddOworICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHN1Ym1pdHRlZENvbnRl
bnQpOworCisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAg
IH0pOworCisgICAgaXQoInNob3VsZCB0cmVhdCB0aGUgc2xhdmUgcGFzc3dvcmQgYXMgdGhlIGJ1
aWxkZXIgcGFzc3dvcmQgaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgc2xhdmUiLCBmdW5jdGlvbiAo
ZG9uZSkgeworICAgICAgICBsZXQgcmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgcmVw
b3J0WydzbGF2ZVBhc3N3b3JkJ10gPSByZXBvcnRbJ2J1aWxkZXJQYXNzd29yZCddOworICAgICAg
ICBkZWxldGUgcmVwb3J0WydidWlsZGVyUGFzc3dvcmQnXTsKKworICAgICAgICBhZGRTbGF2ZUZv
clJlcG9ydChyZXBvcnQpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRdKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsncHJvY2Vzc2VkUnVucyddLCAxKTsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
cnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5w
YXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOworCisgICAgICAgICAgICBkZWxldGUgcmVwb3J0
WydzbGF2ZVBhc3N3b3JkJ107CisgICAgICAgICAgICBkZWxldGUgcmVwb3J0Wyd0ZXN0cyddOwor
ICAgICAgICAgICAgZGVsZXRlIHN0b3JlZENvbnRlbnRbJ3Rlc3RzJ107CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHN0b3JlZENvbnRlbnQsIHJlcG9ydCk7CisKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxk
IHN0b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBzbGF2ZSIsIGZ1bmN0aW9uIChkb25lKSB7Cisg
ICAgICAgIGFkZFNsYXZlRm9yUmVwb3J0KGVtcHR5U2xhdmVSZXBvcnQoKSkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgW2VtcHR5U2xhdmVSZXBvcnQoKV0pOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ2Zh
aWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
Wydwcm9jZXNzZWRSdW5zJ10sIDEpOworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5zZWxlY3RBbGwoJ3JlcG9ydHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
cmVwb3J0cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGNvbnN0IHN1Ym1pdHRlZENvbnRlbnQgPSBlbXB0eVNsYXZlUmVwb3J0KCk7
CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBd
Wydjb250ZW50J10pOworCisgICAgICAgICAgICBkZWxldGUgc3VibWl0dGVkQ29udGVudFsnc2xh
dmVQYXNzd29yZCddOworICAgICAgICAgICAgZGVsZXRlIHN1Ym1pdHRlZENvbnRlbnRbJ3Rlc3Rz
J107CisgICAgICAgICAgICBkZWxldGUgc3RvcmVkQ29udGVudFsndGVzdHMnXTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc3RvcmVkQ29udGVudCwgc3VibWl0dGVkQ29udGVudCk7CisK
KyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisK
KyAgICBpdCgic2hvdWxkIHN0b3JlIHRoZSBidWlsZGVyIG5hbWUgYnV0IG5vdCB0aGUgYnVpbGRl
ciBwYXNzd29yZCIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBv
cnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVw
b3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdyZXBvcnRzJyk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcG9ydHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXBvcnRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzdG9yZWRDb250ZW50
ID0gSlNPTi5wYXJzZShyZXBvcnRzWzBdWydjb250ZW50J10pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN0b3JlZENvbnRlbnRbJ2J1aWxkZXJOYW1lJ10sIGVtcHR5UmVwb3J0KClbJ2J1aWxk
ZXJOYW1lJ10pOworICAgICAgICAgICAgYXNzZXJ0KCEoJ2J1aWxkZXJQYXNzd29yZCcgaW4gc3Rv
cmVkQ29udGVudCkpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25l
KTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgYWRkIGEgc2xhdmUgaWYgdGhlcmUgaXNuJ3Qg
b25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEgYnVpbGRlciIsIGZ1bmN0
aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZF9zbGF2ZXMnKTsKKyAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoc2xhdmVzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2xhdmVzWzBdWyduYW1lJ10sIGVt
cHR5UmVwb3J0KClbJ3NsYXZlTmFtZSddKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIGFkZCBhIGJ1aWxkZXIg
aWYgdGhlcmUgaXNuJ3Qgb25lIGFuZCB0aGUgcmVwb3J0IHdhcyBhdXRoZW50aWNhdGVkIGJ5IGEg
c2xhdmUiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBhZGRTbGF2ZUZvclJlcG9ydChlbXB0
eVNsYXZlUmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtlbXB0eVNsYXZl
UmVwb3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdidWlsZGVycycp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChidWlsZGVycykgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRlcnNbMF1bJ25hbWUnXSwgZW1wdHlSZXBvcnQoKVsnYnVpbGRlck5hbWUnXSk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAg
aXQoInNob3VsZCBhZGQgYSBidWlsZCIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGFkZEJ1
aWxkZXJGb3JSZXBvcnQoZW1wdHlSZXBvcnQoKSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW2VtcHR5UmVwb3J0KCldKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnYnVpbGRzJyk7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKGJ1aWxkcykgeworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkc1swXVsnbnVtYmVyJ10sIDEyMyk7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBh
ZGQgdGhlIHBsYXRmb3JtIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZv
clJlcG9ydChlbXB0eVJlcG9ydCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZW1w
dHlSZXBvcnQoKV0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdwbGF0Zm9ybXMnKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAocGxhdGZvcm1zKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocGxhdGZvcm1zLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocGxh
dGZvcm1zWzBdWyduYW1lJ10sICdNb3VudGFpbiBMaW9uJyk7CisgICAgICAgICAgICBkb25lKCk7
CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBhZGQg
cmVwb3NpdG9yaWVzIGFuZCBidWlsZCByZXZpc2lvbnMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAg
ICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KGVtcHR5UmVwb3J0KCkpLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIFtlbXB0eVJlcG9ydCgpXSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZGIu
c2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RBbGwo
J2NvbW1pdHMnKSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RBbGwoJ2J1aWxkX2NvbW1pdHMn
LCAnYnVpbGRfY29tbWl0JyksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSByZXN1bHRb
MF07CisgICAgICAgICAgICBjb25zdCBjb21taXRzID0gcmVzdWx0WzFdOworICAgICAgICAgICAg
Y29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gcmVzdWx0WzJdOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXBvc2l0b3JpZXMubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuIHJvd1snbmFt
ZSddOyB9KS5zb3J0KCksIFsnT1MgWCcsICdXZWJLaXQnXSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRDb21taXRzUmVsYXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQn
XSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydi
dWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRz
UmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CisKKyAgICAgICAgICAgIGxldCByZXBvc2l0
b3J5SWRUb05hbWUgPSB7fTsKKyAgICAgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVw
b3NpdG9yaWVzKQorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5
WydpZCddXSA9IHJlcG9zaXRvcnlbJ25hbWUnXTsKKworICAgICAgICAgICAgbGV0IHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICAgICAgZm9yIChsZXQgY29tbWl0IG9m
IGNvbW1pdHMpCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3Jl
cG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydPUyBYJ11b
J3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93
WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgbmV3IERhdGUo
JzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgbm90
IGNyZWF0ZSBhIGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhlIHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1
aWxkIHRpbWVzIGFyZSBjbG9zZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGxldCBmaXJz
dFJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgIGZpcnN0UmVwb3J0WydidWlsZFRpbWUn
XSA9ICcyMDEzLTAyLTI4VDEwOjEyOjA0JzsKKyAgICAgICAgbGV0IHNlY29uZFJlcG9ydCA9IGVt
cHR5UmVwb3J0KCk7CisgICAgICAgIHNlY29uZFJlcG9ydFsnYnVpbGRUaW1lJ10gPSAnMjAxMy0w
Mi0yOFQxMDoyMjowMyc7CisKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9y
dCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChidWlsZHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBj
cmVhdGUgZGlzdGluY3QgYnVpbGRzIGZvciB0aGUgc2FtZSBidWlsZCBudW1iZXIgaWYgYnVpbGQg
dGltZXMgYXJlIGZhciBhcGFydCIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIGxldCBmaXJz
dFJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CisgICAgICAgIGZpcnN0UmVwb3J0WydidWlsZFRpbWUn
XSA9ICcyMDEzLTAyLTI4VDEwOjEyOjAzJzsKKyAgICAgICAgbGV0IHNlY29uZFJlcG9ydCA9IGVt
cHR5UmVwb3J0KCk7CisgICAgICAgIHNlY29uZFJlcG9ydFsnYnVpbGRUaW1lJ10gPSAnMjAxNC0w
MS0yMFQyMjoyMzozNCc7CisKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChlbXB0eVJlcG9y
dCgpKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbZmlyc3RSZXBvcnRdKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2J1aWxkcycpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChidWlsZHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBbc2Vjb25kUmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0
QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBy
ZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGluZyByZXZpc2lvbiBpbmZvIiwgZnVuY3Rpb24g
KGRvbmUpIHsKKyAgICAgICAgbGV0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAg
ICAgZmlyc3RSZXBvcnRbJ3JldmlzaW9ucyddID0geworICAgICAgICAgICAgIldlYktpdCI6IHsK
KyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAi
dGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOTZaIgorICAgICAgICAgICAgfQorICAg
ICAgICB9OwogCi0gICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aCBtaXNtYXRjaGlu
ZyByZXZpc2lvbiBpbmZvIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5
UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2aXNp
b25zJ10gPSB7Ci0gICAgICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjE0MTk3NyIsCi0gICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAi
OiAiMjAxMy0wMi0wNlQwODo1NToyMC45NloiCi0gICAgICAgICAgICAgICAgfQorICAgICAgICBs
ZXQgc2Vjb25kUmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKKyAgICAgICAgc2Vjb25kUmVwb3J0Wydy
ZXZpc2lvbnMnXSA9IHsKKyAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjE1MDAwMCIsCisgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEz
LTA1LTEzVDEwOjUwOjI5LjZaIgogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsncmV2
aXNpb25zJ10gPSB7Ci0gICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTUwMDAwIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wNS0xM1QxMDo1MDoyOS42WiIKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9u
c2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQocmVz
cG9uc2UucmVzcG9uc2VUZXh0LmluZGV4T2YoJzE0MTk3NycpID49IDApOwotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQocmVzcG9uc2UucmVzcG9uc2VUZXh0LmluZGV4T2YoJzE1MDAwMCcpID49
IDApOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOwotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydwcm9j
ZXNzZWRSdW5zJ10sIDApOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH07
CisKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChmaXJzdFJlcG9ydCkudGhlbihmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgW2ZpcnN0UmVwb3J0XSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2Vs
ZWN0QWxsKCdidWlsZHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoYnVpbGRzKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBy
ZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3Nl
Y29uZFJlcG9ydF0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc21hdGNoaW5nQ29t
bWl0UmV2aXNpb24nKTsKKyAgICAgICAgICAgIGFzc2VydChKU09OLnN0cmluZ2lmeShyZXNwb25z
ZSkuaW5kZXhPZignMTQxOTc3JykgPj0gMCk7CisgICAgICAgICAgICBhc3NlcnQoSlNPTi5zdHJp
bmdpZnkocmVzcG9uc2UpLmluZGV4T2YoJzE1MDAwMCcpID49IDApOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydmYWlsdXJlU3RvcmVkJ10sIHRydWUpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydwcm9jZXNzZWRSdW5zJ10sIDApOworICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKICAgICB9KTsKIAotICAgIHZhciByZXBv
cnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMgPSBbeworICAgIGNvbnN0IHJlcG9ydFdpdGhU
d29MZXZlbHNPZkFnZ3JlZ2F0aW9ucyA9IHsKICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyMyIs
CiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAogICAg
ICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLApAQCAtMzUwLDE1ICszOTYsMjIgQEAg
ZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIxNDE5NzciLAogICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0w
Mi0wNlQwODo1NToyMC45WiIKICAgICAgICAgICAgIH0KLSAgICAgICAgfX1dOworICAgICAgICB9
fTsKIAotICAgIGZ1bmN0aW9uIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0LCBj
YWxsYmFjaykgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gYWdncmVnYXRvcnMgKGFnZ3Jl
Z2F0b3JfbmFtZSwgYWdncmVnYXRvcl9kZWZpbml0aW9uKSB2YWx1ZXMgKCQxLCAkMiknLAotICAg
ICAgICAgICAgICAgIFsnQXJpdGhtZXRpYycsICd2YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChhLCBi
KSB7IHJldHVybiBhICsgYjsgfSkgLyB2YWx1ZXMubGVuZ3RoJ10sIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBhZ2dyZWdhdG9ycyAo
YWdncmVnYXRvcl9uYW1lLCBhZ2dyZWdhdG9yX2RlZmluaXRpb24pIHZhbHVlcyAoJDEsICQyKScs
Ci0gICAgICAgICAgICAgICAgICAgIFsnR2VvbWV0cmljJywgJ01hdGgucG93KHZhbHVlcy5yZWR1
Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKiBiOyB9KSwgMSAvIHZhbHVlcy5sZW5ndGgp
J10sIGNhbGxiYWNrKTsKLSAgICAgICAgICAgIH0pOworICAgIGZ1bmN0aW9uIHJlcG9ydEFmdGVy
QWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdhZ2dyZWdhdG9ycycs
IHtuYW1lOiAnQXJpdGhtZXRpYyd9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FnZ3Jl
Z2F0b3JzJywge25hbWU6ICdHZW9tZXRyaWMnfSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydF0pOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Vb
J2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOwog
ICAgICAgICB9KTsKICAgICB9CiAKQEAgLTM3MiwyMzUgKzQyNSwyMTcgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpdCgi
c2hvdWxkIG5vdCByZWplY3Qgd2hlbiBhZ2dyZWdhdG9ycyBhcmUgbWlzc2luZyIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlv
bnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsK
LSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCB0ZXN0cyIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxz
T2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uIChy
ZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVk
J10sIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBG
Uk9NIHRlc3RzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gcm93Wyd0ZXN0
X25hbWUnXTsgfSkuc29ydCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgWydDU1MnLCAnRE9N
JywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAnTW9kaWZ5Tm9kZXMnLCAn
VHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZyddKTsKLSAgICAgICAgICAg
ICAgICAgICAgZW1wdHlSZXBvcnRbMF0udGVzdHMgPSB7fTsKLSAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQgbWV0cmljcyIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdv
TGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVD
VCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcyBMRUZUIEpPSU4gYWdncmVnYXRvcnMgT04gbWV0
cmljX2FnZ3JlZ2F0b3IgPSBhZ2dyZWdhdG9yX2lkIFdIRVJFIG1ldHJpY190ZXN0ID0gdGVzdF9p
ZCcsCi0gICAgICAgICAgICAgICAgICAgIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgdGVzdE5hbWVUb01ldHJpY3MgPSB7fTsKLSAgICAgICAgICAgICAgICAg
ICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghKHJvd1sndGVzdF9uYW1lJ10gaW4gdGVzdE5hbWVUb01ldHJpY3MpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1lJ11dID0g
bmV3IEFycmF5OwotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93
Wyd0ZXN0X25hbWUnXV0ucHVzaChbcm93WydtZXRyaWNfbmFtZSddLCByb3dbJ2FnZ3JlZ2F0b3Jf
bmFtZSddXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxd
XSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJp
Y3NbJ0RPTSddLnNvcnQoKSwgW1snVGltZScsICdBcml0aG1ldGljJ10sIFsnVGltZScsICdHZW9t
ZXRyaWMnXV0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1l
VG9NZXRyaWNzWydEdW1teUJlbmNobWFyayddLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXV0pOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydE
dW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ01vZGlmeU5vZGVz
J10sIFtbJ1RpbWUnLCBudWxsXV0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHRlc3ROYW1lVG9NZXRyaWNzWydUcmF2ZXJzZU5vZGVzJ10sIFtbJ1RpbWUnLCBudWxsXV0p
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNz
WydhcHBsZS5jb20nXSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ3dlYmtpdC5vcmcnXSwgW1snVGltZScs
IG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGZ1
bmN0aW9uIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWModGVzdE5hbWUsIG1ldHJpY05h
bWUsIGNhbGxiYWNrKSB7Ci0gICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9N
IHRlc3RzLCB0ZXN0X21ldHJpY3MsIHRlc3RfY29uZmlndXJhdGlvbnMsIHRlc3RfcnVucyBXSEVS
RSBtZXRyaWNfdGVzdCA9IHRlc3RfaWQgQU5EIGNvbmZpZ19tZXRyaWMgPSBtZXRyaWNfaWQnCi0g
ICAgICAgICAgICArICcgQU5EIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIHRlc3RfbmFtZSA9
ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rp
b24gKHJ1blJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgIHZhciBydW4gPSBydW5Sb3dzWzBdOwotICAgICAgICAg
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcnVuX2l0ZXJhdGlvbnMgV0hF
UkUgaXRlcmF0aW9uX3J1biA9ICQxIE9SREVSIEJZIGl0ZXJhdGlvbl9vcmRlcicsIFtydW5bJ3J1
bl9pZCddXSwgZnVuY3Rpb24gKGl0ZXJhdGlvblJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2socnVuLCBpdGVyYXRpb25Sb3dzKTsKLSAgICAgICAgICAgICAgICB9KTsKKyAgICBp
dCgic2hvdWxkIGFjY2VwdCBhIHJlcG9ydCB3aXRoIGFnZ3JlZ2F0b3JzIiwgZnVuY3Rpb24gKGRv
bmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVw
b3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBp
dCgic2hvdWxkIGFkZCB0ZXN0cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFm
dGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3Jl
Z2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlv
biAodGVzdHMpIHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdHMubWFwKGZ1bmN0
aW9uIChyb3cpIHsgcmV0dXJuIHJvd1snbmFtZSddOyB9KS5zb3J0KCksCisgICAgICAgICAgICAg
ICAgWydDU1MnLCAnRE9NJywgJ0R1bW15QmVuY2htYXJrJywgJ0R1bW15UGFnZUxvYWRpbmcnLCAn
TW9kaWZ5Tm9kZXMnLCAnVHJhdmVyc2VOb2RlcycsICdhcHBsZS5jb20nLCAnd2Via2l0Lm9yZydd
KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIGFkZCBtZXRyaWNzIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAg
ICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xl
dmVsc09mQWdncmVnYXRpb25zKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoJ1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3Rf
bWV0cmljcyBMRUZUIEpPSU4gYWdncmVnYXRvcnMgT04gbWV0cmljX2FnZ3JlZ2F0b3IgPSBhZ2dy
ZWdhdG9yX2lkIFdIRVJFIG1ldHJpY190ZXN0ID0gdGVzdF9pZCcpOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGxldCB0ZXN0TmFtZVRvTWV0cmljcyA9
IHt9OworICAgICAgICAgICAgcmVzdWx0LnJvd3MuZm9yRWFjaChmdW5jdGlvbiAocm93KSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCEocm93Wyd0ZXN0X25hbWUnXSBpbiB0ZXN0TmFtZVRvTWV0cmlj
cykpCisgICAgICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sndGVzdF9uYW1l
J11dID0gbmV3IEFycmF5OworICAgICAgICAgICAgICAgIHRlc3ROYW1lVG9NZXRyaWNzW3Jvd1sn
dGVzdF9uYW1lJ11dLnB1c2goW3Jvd1snbWV0cmljX25hbWUnXSwgcm93WydhZ2dyZWdhdG9yX25h
bWUnXV0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWydDU1MnXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydET00nXS5zb3J0KCksIFtbJ1RpbWUn
LCAnQXJpdGhtZXRpYyddLCBbJ1RpbWUnLCAnR2VvbWV0cmljJ11dKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1Rp
bWUnLCAnQXJpdGhtZXRpYyddXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RO
YW1lVG9NZXRyaWNzWydEdW1teVBhZ2VMb2FkaW5nJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYydd
XSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydNb2Rp
ZnlOb2RlcyddLCBbWydUaW1lJywgbnVsbF1dKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3ROYW1lVG9NZXRyaWNzWydhcHBsZS5j
b20nXSwgW1snVGltZScsIG51bGxdXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRl
c3ROYW1lVG9NZXRyaWNzWyd3ZWJraXQub3JnJ10sIFtbJ1RpbWUnLCBudWxsXV0pOworICAgICAg
ICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKKworICAgIGZ1
bmN0aW9uIGZldGNoVGVzdENvbmZpZyh0ZXN0TmFtZSwgbWV0cmljTmFtZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkucXVlcnkoYFNFTEVDVCAqIEZST00gdGVz
dHMsIHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0aW9ucworICAgICAgICAgICAgV0hFUkUg
dGVzdF9pZCA9IG1ldHJpY190ZXN0IEFORCBtZXRyaWNfaWQgPSBjb25maWdfbWV0cmljCisgICAg
ICAgICAgICBBTkQgdGVzdF9uYW1lID0gJDEgQU5EIG1ldHJpY19uYW1lID0gJDJgLCBbdGVzdE5h
bWUsIG1ldHJpY05hbWVdKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0LnJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJvd3NbMF07CiAgICAgICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpdCgi
c2hvdWxkIHN0b3JlIHJ1biB2YWx1ZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxk
ZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0
V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdhcHBsZS5jb20nLCAn
VGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAg
dmFyIHJ1bklkID0gcnVuWydydW5faWQnXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChpdGVyYXRpb25zLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9u
X3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBp
dGVyYXRpb25fdmFsdWU6IDUwMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAg
ICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3Jk
ZXI6IDEsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MTAsIGl0ZXJh
dGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVy
YXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAyLCBpdGVyYXRpb25fZ3JvdXA6IG51
bGwsIGl0ZXJhdGlvbl92YWx1ZTogNTIwLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlv
bl9vcmRlcjogMywgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUzMCwg
aXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9XSk7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBzdW0gPSA1MDAgKyA1MTAgKyA1MjAgKyA1MzA7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBz
dW0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1
bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAgKiA1MTAgKyA1MjAgKiA1MjAgKyA1MzAgKiA1MzAp
OwotCi0gICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNGb3JNZXRyaWMo
J0NTUycsICdUaW1lJywgZnVuY3Rpb24gKHJ1biwgaXRlcmF0aW9ucykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIHJ1bklkID0gcnVuWydydW5faWQnXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVy
YXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTAxLCBpdGVyYXRpb25fcmVsYXRpdmVf
dGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46
IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDEsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0aW9u
X3ZhbHVlOiAxMDIsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjog
MiwgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwMywgaXRlcmF0aW9uX3Jl
bGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAzLCBpdGVyYXRpb25fZ3JvdXA6IDAsIGl0
ZXJhdGlvbl92YWx1ZTogMTA0LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25f
b3JkZXI6IDQsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0aW9uX3ZhbHVlOiAxMDUsIGl0ZXJh
dGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogNSwgaXRlcmF0aW9uX2dyb3Vw
OiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwNiwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRl
cmF0aW9uX29yZGVyOiA2LCBpdGVyYXRpb25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTA3
LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDcsIGl0ZXJhdGlv
bl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDgsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1l
OiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogOCwgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25fdmFs
dWU6IDEwOSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA5LCBp
dGVyYXRpb25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTogMTEwLCBpdGVyYXRpb25fcmVsYXRp
dmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9y
dW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDEwLCBpdGVyYXRpb25fZ3JvdXA6IDIsIGl0ZXJh
dGlvbl92YWx1ZTogMTExLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3Jk
ZXI6IDExLCBpdGVyYXRpb25fZ3JvdXA6IDIsIGl0ZXJhdGlvbl92YWx1ZTogMTEyLCBpdGVyYXRp
b25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0
ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDEyLCBpdGVyYXRpb25fZ3JvdXA6
IDIsIGl0ZXJhdGlvbl92YWx1ZTogMTEzLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVy
YXRpb25fb3JkZXI6IDEzLCBpdGVyYXRpb25fZ3JvdXA6IDIsIGl0ZXJhdGlvbl92YWx1ZTogMTE0
LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDE0LCBpdGVyYXRp
b25fZ3JvdXA6IDIsIGl0ZXJhdGlvbl92YWx1ZTogMTE1LCBpdGVyYXRpb25fcmVsYXRpdmVfdGlt
ZTogbnVsbH1dKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdW0gPSAwOwotICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHNxdWFyZVN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciB2YWx1ZSA9IDEwMTsgdmFsdWUgPD0gMTE1OyArK3ZhbHVlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IHZhbHVlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNxdWFyZVN1bSArPSB2YWx1ZSAqIHZhbHVlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21l
YW5fY2FjaGUnXSwgc3VtIC8gaXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwg
c3F1YXJlU3VtKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgZnVuY3Rpb24gZmV0
Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYyh0ZXN0TmFtZSwgbWV0cmljTmFtZSkKKyAgICB7
CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICByZXR1
cm4gZmV0Y2hUZXN0Q29uZmlnKHRlc3ROYW1lLCBtZXRyaWNOYW1lKS50aGVuKGZ1bmN0aW9uIChj
b25maWcpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9ydW5z
Jywge2NvbmZpZzogY29uZmlnWydjb25maWdfaWQnXX0pOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChydW4pIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RSb3dzKCdydW5faXRlcmF0
aW9ucycsIHtydW46IHJ1blsnaWQnXX0sIHtzb3J0Qnk6ICdvcmRlcid9KS50aGVuKGZ1bmN0aW9u
IChpdGVyYXRpb25zKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHtydW46IHJ1biwgaXRlcmF0
aW9uczogaXRlcmF0aW9uc307CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0gICAgfSk7
Ci0KLSAgICBpdCgic2hvdWxkIHN0b3JlIGFnZ3JlZ2F0ZWQgcnVuIHZhbHVlcyIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgYWRkQnVpbGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdv
TGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNG
b3JNZXRyaWMoJ0R1bW15UGFnZUxvYWRpbmcnLCAnVGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJh
dGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJ1bklkID0gcnVuWydydW5faWQnXTsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWVzID0gWyg1MDAgKyAxMDApIC8g
MiwgKDUxMCArIDExMCkgLyAyLCAoNTIwICsgMTIwKSAvIDIsICg1MzAgKyAxMzApIC8gMl07Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWwotICAgICAg
ICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6
IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiBleHBlY3RlZFZhbHVl
c1swXSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAg
ICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDEsIGl0ZXJhdGlv
bl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiBleHBlY3RlZFZhbHVlc1sxXSwgaXRlcmF0
aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJh
dGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91cDogbnVs
bCwgaXRlcmF0aW9uX3ZhbHVlOiBleHBlY3RlZFZhbHVlc1syXSwgaXRlcmF0aW9uX3JlbGF0aXZl
X3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1
bklkLCBpdGVyYXRpb25fb3JkZXI6IDMsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9u
X3ZhbHVlOiBleHBlY3RlZFZhbHVlc1szXSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9
XSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzdW0gPSBleHBlY3RlZFZhbHVlcy5yZWR1Y2Uo
ZnVuY3Rpb24gKHN1bSwgdmFsdWUpIHsgcmV0dXJuIHN1bSArIHZhbHVlOyB9LCAwKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgc3VtIC8g
aXRlcmF0aW9ucy5sZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydydW5fc3VtX2NhY2hlJ10sIHN1bSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChydW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5j
dGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsgfSwgMCkpOwot
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7CisgICAgfQogCi0gICAgaXQoInNo
b3VsZCBiZSBhYmxlIHRvIGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0ZWQgdmFs
dWVzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3Jz
KHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3Jl
Z2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0
UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScsIGZ1bmN0aW9u
IChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkSXRl
cmF0aW9ucyA9IFtdOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKLSAgICAgICAg
ICAgICAgICAgICAgdmFyIHNxdWFyZVN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZh
bHVlID0gaSArIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgRE9NTWVhbiA9ICgoMTAg
KyB2YWx1ZSkgKyAoMzAgKyB2YWx1ZSkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBleHBlY3RlZFZhbHVlID0gKERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkgLyAyOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3VtICs9IGV4cGVjdGVkVmFsdWU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBzcXVhcmVTdW0gKz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVkVmFsdWU7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7aXRlcmF0aW9uX3J1bjog
cnVuWydydW5faWQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25fb3Jk
ZXI6IGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX2dyb3VwOiBNYXRo
LmZsb29yKGkgLyA1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25fdmFs
dWU6IGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9u
X3JlbGF0aXZlX3RpbWU6IG51bGx9KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9u
cyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hl
J10sIHN1bSAvIGl0ZXJhdGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsncnVuX3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocnVuWydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwotICAg
ICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgaXQoInNob3VsZCBzdG9yZSBydW4gdmFsdWVz
IiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5k
QWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zKS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0
cmljKCdhcHBsZS5jb20nLCAnVGltZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1
bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CisgICAgICAgICAgICBj
b25zdCBydW5JZCA9IHJ1blsnaWQnXTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
dWx0Lml0ZXJhdGlvbnMsIFsKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAs
IGdyb3VwOiBudWxsLCB2YWx1ZTogNTAwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAg
ICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDEsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTEwLCBy
ZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6
IDIsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTIwLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAg
ICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDMsIGdyb3VwOiBudWxsLCB2YWx1ZTogNTMw
LCByZWxhdGl2ZV90aW1lOiBudWxsfV0pOworICAgICAgICAgICAgdmFyIHN1bSA9IDUwMCArIDUx
MCArIDUyMCArIDUzMDsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ21lYW5fY2FjaGUn
XSwgc3VtIC8gcmVzdWx0Lml0ZXJhdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3N1bV9jYWNoZSddLCBzdW0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blsnc3F1YXJlX3N1bV9jYWNoZSddLCA1MDAgKiA1MDAgKyA1MTAgKiA1MTAgKyA1MjAgKiA1MjAg
KyA1MzAgKiA1MzApOworICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1bkl0ZXJhdGlvbnNG
b3JNZXRyaWMoJ0NTUycsICdUaW1lJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3Vs
dCkgeworICAgICAgICAgICAgY29uc3QgcnVuID0gcmVzdWx0LnJ1bjsKKyAgICAgICAgICAgIGNv
bnN0IHJ1bklkID0gcnVuWydpZCddOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1
bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMCwg
Z3JvdXA6IDAsIHZhbHVlOiAxMDEsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAg
ICAgIHtydW46IHJ1bklkLCBvcmRlcjogMSwgZ3JvdXA6IDAsIHZhbHVlOiAxMDIsIHJlbGF0aXZl
X3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMiwgZ3Jv
dXA6IDAsIHZhbHVlOiAxMDMsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAg
IHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IDAsIHZhbHVlOiAxMDQsIHJlbGF0aXZlX3Rp
bWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogNCwgZ3JvdXA6
IDAsIHZhbHVlOiAxMDUsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHty
dW46IHJ1bklkLCBvcmRlcjogNSwgZ3JvdXA6IDEsIHZhbHVlOiAxMDYsIHJlbGF0aXZlX3RpbWU6
IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogNiwgZ3JvdXA6IDEs
IHZhbHVlOiAxMDcsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46
IHJ1bklkLCBvcmRlcjogNywgZ3JvdXA6IDEsIHZhbHVlOiAxMDgsIHJlbGF0aXZlX3RpbWU6IG51
bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogOCwgZ3JvdXA6IDEsIHZh
bHVlOiAxMDksIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1
bklkLCBvcmRlcjogOSwgZ3JvdXA6IDEsIHZhbHVlOiAxMTAsIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMTAsIGdyb3VwOiAyLCB2YWx1
ZTogMTExLCByZWxhdGl2ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5J
ZCwgb3JkZXI6IDExLCBncm91cDogMiwgdmFsdWU6IDExMiwgcmVsYXRpdmVfdGltZTogbnVsbH0s
CisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAxMiwgZ3JvdXA6IDIsIHZhbHVl
OiAxMTMsIHJlbGF0aXZlX3RpbWU6IG51bGx9LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklk
LCBvcmRlcjogMTMsIGdyb3VwOiAyLCB2YWx1ZTogMTE0LCByZWxhdGl2ZV90aW1lOiBudWxsfSwK
KyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDE0LCBncm91cDogMiwgdmFsdWU6
IDExNSwgcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKKyAgICAgICAgICAgIGxldCBzdW0gPSAwOwor
ICAgICAgICAgICAgbGV0IHNxdWFyZVN1bSA9IDA7CisgICAgICAgICAgICBmb3IgKGxldCB2YWx1
ZSA9IDEwMTsgdmFsdWUgPD0gMTE1OyArK3ZhbHVlKSB7CisgICAgICAgICAgICAgICAgc3VtICs9
IHZhbHVlOworICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSB2YWx1ZSAqIHZhbHVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnbWVhbl9jYWNoZSddLCBz
dW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydz
cXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAg
ICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBzdG9yZSBhZ2dy
ZWdhdGVkIHJ1biB2YWx1ZXMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoVHdvTGV2ZWxzT2ZBZ2dyZWdh
dGlvbnMpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdFJ1
bkl0ZXJhdGlvbnNGb3JNZXRyaWMoJ0R1bW15UGFnZUxvYWRpbmcnLCAnVGltZScpOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJl
c3VsdC5ydW47CisgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJlc3VsdC5ydW5bJ2lkJ107Cisg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAg
KyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAyLCAoNTMwICsgMTMwKSAvIDJdOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQuaXRlcmF0aW9ucywgWworICAgICAgICAgICAgICAg
IHtydW46IHJ1bklkLCBvcmRlcjogMCwgZ3JvdXA6IG51bGwsIHZhbHVlOiBleHBlY3RlZFZhbHVl
c1swXSwgcmVsYXRpdmVfdGltZTogbnVsbH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQs
IG9yZGVyOiAxLCBncm91cDogbnVsbCwgdmFsdWU6IGV4cGVjdGVkVmFsdWVzWzFdLCByZWxhdGl2
ZV90aW1lOiBudWxsfSwKKyAgICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDIsIGdy
b3VwOiBudWxsLCB2YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMl0sIHJlbGF0aXZlX3RpbWU6IG51bGx9
LAorICAgICAgICAgICAgICAgIHtydW46IHJ1bklkLCBvcmRlcjogMywgZ3JvdXA6IG51bGwsIHZh
bHVlOiBleHBlY3RlZFZhbHVlc1szXSwgcmVsYXRpdmVfdGltZTogbnVsbH1dKTsKKyAgICAgICAg
ICAgIGNvbnN0IHN1bSA9IGV4cGVjdGVkVmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1
ZSkgeyByZXR1cm4gc3VtICsgdmFsdWU7IH0sIDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blsnbWVhbl9jYWNoZSddLCBzdW0gLyByZXN1bHQuaXRlcmF0aW9ucy5sZW5ndGgpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIHN1bSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuWydzcXVhcmVfc3VtX2NhY2hlJ10sIGV4cGVjdGVkVmFsdWVzLnJl
ZHVjZShmdW5jdGlvbiAoc3VtLCB2YWx1ZSkgeyByZXR1cm4gc3VtICsgdmFsdWUgKiB2YWx1ZTsg
fSwgMCkpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAg
ICB9KTsKKworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBjb21wdXRlIHRoZSBhZ2dyZWdhdGlv
biBvZiBhZ2dyZWdhdGVkIHZhbHVlcyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9y
dEFmdGVyQWRkaW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFn
Z3JlZ2F0aW9ucykudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2hU
ZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9
IHJlc3VsdC5ydW47CisgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQnXTsKKyAgICAg
ICAgICAgIGNvbnN0IGV4cGVjdGVkSXRlcmF0aW9ucyA9IFtdOworICAgICAgICAgICAgbGV0IHN1
bSA9IDA7CisgICAgICAgICAgICBsZXQgc3F1YXJlU3VtID0gMDsKKyAgICAgICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMTU7ICsraSkgeworICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0g
aSArIDE7CisgICAgICAgICAgICAgICAgY29uc3QgRE9NTWVhbiA9ICgoMTAgKyB2YWx1ZSkgKyAo
MzAgKyB2YWx1ZSkpIC8gMjsKKyAgICAgICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlID0g
KERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkgLyAyOworICAgICAgICAgICAgICAgIHN1bSArPSBleHBl
Y3RlZFZhbHVlOworICAgICAgICAgICAgICAgIHNxdWFyZVN1bSArPSBleHBlY3RlZFZhbHVlICog
ZXhwZWN0ZWRWYWx1ZTsKKyAgICAgICAgICAgICAgICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7
cnVuOiBydW5JZCwgb3JkZXI6IGksIGdyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwgdmFsdWU6IGV4
cGVjdGVkVmFsdWUsIHJlbGF0aXZlX3RpbWU6IG51bGx9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0
aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIHN1bSAv
IHJlc3VsdC5pdGVyYXRpb25zLmxlbmd0aCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydzdW1fY2FjaGUnXSwgc3VtKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFy
ZV9zdW1fY2FjaGUnXSwgc3F1YXJlU3VtKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fSkuY2F0Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0
TmFtZSA9IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAotICAgICAgICAiYnVpbGRU
aW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKLSAgICAgICAgImJ1aWxkZXJOYW1l
IjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dv
cmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0
cyI6IHsKLSAgICAgICAgICAgICJTdWl0ZTEiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjog
ewotICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMSwgMiwgMywgNCwgNV0gfX0KLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgInRlc3QyIjogewotICAg
ICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzYs
IDcsIDgsIDksIDEwXSB9fQorICAgIGZ1bmN0aW9uIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIx
MjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAg
ICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAgICAgInBsYXRm
b3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAg
ICAgICAgICJTdWl0ZTEiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMSwgMiwgMywgNCwgNV0gfX0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAidGVzdDIi
OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJj
dXJyZW50IjogWzYsIDcsIDgsIDksIDEwXSB9fQorICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICJTdWl0ZTIiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjogewotICAg
ICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTEsIDEyLCAxMywgMTQsIDE1XSB9fQotICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAidGVzdDIiOiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTYs
IDE3LCAxOCwgMTksIDIwXSB9fQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
IlN1aXRlMiI6IHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3RzIjogeworICAgICAgICAgICAg
ICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRy
aWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsxMSwgMTIsIDEzLCAxNCwgMTVdIH19CisgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QyIjog
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3Vy
cmVudCI6IFsxNiwgMTcsIDE4LCAxOSwgMjBdIH19CisgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
Ci0gICAgICAgIH19XTsKLQotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQg
d2l0aCBzYW1lIHN1YnRlc3QgbmFtZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRl
ckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVN1YnRlc3ROYW1lLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVT
dWJ0ZXN0TmFtZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOwotICAgIH0pOworICAgICAgICB9OworICAgIH0KIAotICAgIGl0KCJzaG91
bGQgYmUgYWJsZSB0byByZXVzZSB0aGUgc2FtZSB0ZXN0IHJvd3MiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVTdWJ0ZXN0
TmFtZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMnLCBbXSwgZnVu
Y3Rpb24gKHRlc3RSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RS
b3dzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgICAgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0
TmFtZS5idWlsZE51bWJlciA9ICIxMjUiOwotICAgICAgICAgICAgICAgICAgIHJlcG9ydFdpdGhT
YW1lU3VidGVzdE5hbWUuYnVpbGRUaW1lID0gIjIwMTMtMDItMjhUMTI6MTc6MjQuMSI7Ci0KLSAg
ICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVT
dWJ0ZXN0TmFtZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
ICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3RzJywgW10sIGZ1bmN0
aW9uICh0ZXN0Um93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRlc3RSb3dzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0aCBzYW1l
IHN1YnRlc3QgbmFtZSIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRk
aW5nQnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKSkudGhl
bihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRv
bmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJldXNlIHRoZSBzYW1l
IHRlc3Qgcm93cyIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgIHJlcG9ydEFmdGVyQWRkaW5n
QnVpbGRlckFuZEFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNl
bGVjdEFsbCgndGVzdHMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAodGVzdHMpIHsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgbGV0
IG5ld1JlcG9ydCA9IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUoKTsKKyAgICAgICAgICAgIG5l
d1JlcG9ydC5idWlsZE51bWJlciA9ICIxMjUiOworICAgICAgICAgICAgbmV3UmVwb3J0LmJ1aWxk
VGltZSA9ICIyMDEzLTAyLTI4VDEyOjE3OjI0LjEiOworICAgICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtuZXdSZXBvcnRdKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ3Rlc3RzJyk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHRlc3RzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAg
fSk7CiAKLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSA9IFt7CisgICAgY29uc3Qg
cmVwb3J0V2l0aFNhbWVTaW5nbGVWYWx1ZSA9IHsKICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
MyIsCiAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAog
ICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLApAQCAtNjE4LDM3ICs2NTMsMjkg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKLSAgICAgICAgfX1dOwor
ICAgICAgICB9fTsKIAotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQgd2l0
aCBzaW5nbGUgdmFsdWUgcmVzdWx0cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRl
ckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVNpbmdsZVZhbHVlLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVT
aW5nbGVWYWx1ZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25z
ZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCdd
LCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJp
YygndGVzdDEnLCAnQ29tYmluZWQnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9pdGVyYXRpb25fY291bnRfY2Fj
aGUnXSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFu
X2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5f
c3VtX2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydy
dW5fc3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKLSAgICAgICAgICAgICAgICAgICAgZmV0Y2hUZXN0
UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnLCBmdW5jdGlvbiAocnVu
LCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgNSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIDUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUn
XSwgMjUpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKKyAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2lu
Z2xlIHZhbHVlIHJlc3VsdHMiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICByZXBvcnRBZnRl
ckFkZGluZ0J1aWxkZXJBbmRBZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVNpbmdsZVZhbHVlKS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRp
b25zRm9yTWV0cmljKCd0ZXN0MScsICdDb21iaW5lZCcpOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hlJ10sIDMpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDMpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKKyAgICAgICAgICAgIHJldHVybiBm
ZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdzdWl0ZScsICdDb21iaW5lZCcpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbnN0IHJ1biA9
IHJlc3VsdC5ydW47CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydpdGVyYXRpb25fY291
bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydtZWFuX2NhY2hl
J10sIDUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2NhY2hlJ10sIDUpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3F1YXJlX3N1bV9jYWNoZSddLCAyNSk7Cisg
ICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogCi0g
ICAgdmFyIHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycyA9IFt7CisgICAgY29uc3QgcmVwb3J0V2l0
aFNhbWVWYWx1ZVBhaXJzID0gewogICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKICAgICAg
ICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCiAgICAgICAgICJi
dWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCkBAIC02NTksMTAxICs2ODYsODggQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbWzAsIDRdLCBbMTAwLCA1XSwgWzIw
NSwgM11dXSB9fQogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB9LAotICAgICAgICB9
XTsKKyAgICAgICAgfTsKIAotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQg
d2l0aCAocmVsYXRpdmUgdGltZSwgdmFsdWUpIHBhaXJzIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhTYW1lVmFsdWVQYWlycywg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhTYW1lVmFsdWVQYWlycywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpOwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVy
ZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9u
c0Zvck1ldHJpYygndGVzdCcsICdGcmFtZVJhdGUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25z
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9pdGVyYXRpb25f
Y291bnRfY2FjaGUnXSwgMyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5b
J3J1bl9tZWFuX2NhY2hlJ10sIDQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydydW5fc3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgMTYgKyAyNSArIDkpOwotICAgICAgICAg
ICAgICAgICAgICB2YXIgcnVuSWQgPSBydW5bJ3J1bl9pZCddOwotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVyYXRpb25fZ3Jv
dXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogNCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IDB9
LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRp
b25fb3JkZXI6IDEsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1LCBp
dGVyYXRpb25fcmVsYXRpdmVfdGltZTogMTAwfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtp
dGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAyLCBpdGVyYXRpb25fZ3JvdXA6
IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogMywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IDIwNX1d
KTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0
byBhZGQgYSByZXBvcnQgd2l0aCAocmVsYXRpdmUgdGltZSwgdmFsdWUpIHBhaXJzIiwgZnVuY3Rp
b24gKGRvbmUpIHsKKyAgICAgICAgcmVwb3J0QWZ0ZXJBZGRpbmdCdWlsZGVyQW5kQWdncmVnYXRv
cnMocmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCd0ZXN0JywgJ0ZyYW1l
UmF0ZScpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAg
IGNvbnN0IHJ1biA9IHJlc3VsdC5ydW47CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydp
dGVyYXRpb25fY291bnRfY2FjaGUnXSwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydtZWFuX2NhY2hlJ10sIDQpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsnc3VtX2Nh
Y2hlJ10sIDEyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3NxdWFyZV9zdW1fY2Fj
aGUnXSwgMTYgKyAyNSArIDkpOworCisgICAgICAgICAgICBjb25zdCBydW5JZCA9IHJ1blsnaWQn
XTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Lml0ZXJhdGlvbnMsIFsKKyAg
ICAgICAgICAgICAgICB7cnVuOiBydW5JZCwgb3JkZXI6IDAsIGdyb3VwOiBudWxsLCB2YWx1ZTog
NCwgcmVsYXRpdmVfdGltZTogMH0sCisgICAgICAgICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVy
OiAxLCBncm91cDogbnVsbCwgdmFsdWU6IDUsIHJlbGF0aXZlX3RpbWU6IDEwMH0sCisgICAgICAg
ICAgICAgICAge3J1bjogcnVuSWQsIG9yZGVyOiAyLCBncm91cDogbnVsbCwgdmFsdWU6IDMsIHJl
bGF0aXZlX3RpbWU6IDIwNX1dKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0
Y2goZG9uZSk7CiAgICAgfSk7CiAKLSAgICB2YXIgcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHMgPSBbCi0gICAgICAgIFt7CisgICAgY29uc3QgcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVz
dHMgPSBbCisgICAgICAgIHsKICAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAogICAg
ICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzIiwKICAgICAgICAgICAg
ICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCiAgICAgICAgICAgICAiYnVpbGRlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCiAgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCiAgICAgICAgICAgICAidGVzdHMiOiB7InRlc3QxIjogeyJtZXRyaWNzIjogeyJUaW1l
IjogeyJjdXJyZW50IjogM319fX0KLSAgICAgICAgfV0sCi0gICAgICAgIFt7CisgICAgICAgIH0s
CisgICAgICAgIHsKICAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjQiLAogICAgICAgICAg
ICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDExOjMxOjIxIiwKICAgICAgICAgICAgICJidWls
ZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCiAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjog
InNvbWVQYXNzd29yZCIsCiAgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIs
CiAgICAgICAgICAgICAidGVzdHMiOiB7InRlc3QyIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyJj
dXJyZW50IjogM319fX0KLSAgICAgICAgfV0sCi0gICAgICAgIFt7CisgICAgICAgIH0sCisgICAg
ICAgIHsKICAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjUiLAogICAgICAgICAgICAgImJ1
aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEyOjQ1OjM0IiwKICAgICAgICAgICAgICJidWlsZGVyTmFt
ZSI6ICJzb21lQnVpbGRlciIsCiAgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCiAgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCiAgICAg
ICAgICAgICAidGVzdHMiOiB7InRlc3QxIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyJjdXJyZW50
IjogM319fX0KLSAgICAgICAgfV0sCisgICAgICAgIH0sCiAgICAgXTsKIAotICAgIGZ1bmN0aW9u
IGZldGNoVGVzdENvbmZpZyh0ZXN0TmFtZSwgbWV0cmljTmFtZSwgY2FsbGJhY2spIHsKLSAgICAg
ICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0cmljcywg
dGVzdF9jb25maWd1cmF0aW9ucyBXSEVSRSB0ZXN0X2lkID0gbWV0cmljX3Rlc3QgQU5EIG1ldHJp
Y19pZCA9IGNvbmZpZ19tZXRyaWMnCi0gICAgICAgICAgICArICcgQU5EIHRlc3RfbmFtZSA9ICQx
IEFORCBtZXRyaWNfbmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVuY3Rpb24g
KHJ1blJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJ1blJvd3NbMF0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0
ZSBvZiB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggbmV3IHJ1bnMiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF0sIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRzVXBk
YXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKG9yaWdpbmFs
Q29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBy
ZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwg
MjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAn
VGltZScsIGZ1bmN0aW9uIChjb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQubm90RXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVk
J10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOworICAgIGl0KCJz
aG91bGQgdXBkYXRlIHRoZSBsYXN0IG1vZGlmaWVkIGRhdGUgb2YgdGVzdCBjb25maWd1cmF0aW9u
cyB3aXRoIG5ldyBydW5zIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgYWRkQnVpbGRlckZv
clJlcG9ydChyZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgW3JlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdXSk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBmZXRjaFRl
c3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAob3Jp
Z2luYWxDb25maWcpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNb
Ml1dKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2hUZXN0
Q29uZmlnKCd0ZXN0MScsICdUaW1lJyk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChj
b25maWcpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQob3JpZ2luYWxDb25maWdbJ2NvbmZpZ19y
dW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUpOworICAgICAgICAgICAgICAgIGFz
c2VydChjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSBpbnN0YW5jZW9mIERhdGUp
OworICAgICAgICAgICAgICAgIGFzc2VydCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19ydW5zX2xh
c3RfbW9kaWZpZWQnXSA8ICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Cisg
ICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pLmNhdGNo
KGRvbmUpOworICAgIH0pOworCisgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIHRoZSBsYXN0IG1v
ZGlmaWVkIGRhdGUgb2YgdW5yZWxhdGVkIHRlc3QgY29uZmlndXJhdGlvbnMiLCBmdW5jdGlvbiAo
ZG9uZSkgeworICAgICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydHNVcGRhdGluZ0RpZmZl
cmVudFRlc3RzWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0c1VwZGF0
aW5nRGlmZmVyZW50VGVzdHNbMF1dKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGltZScpOwor
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChvcmlnaW5hbENvbmZpZykgeworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFty
ZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1sxXV0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoVGVzdENvbmZpZygndGVzdDEnLCAnVGlt
ZScpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoY29uZmlnKSB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0KG9yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10g
aW5zdGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoY29uZmlnWydjb25maWdf
cnVuc19sYXN0X21vZGlmaWVkJ10gaW5zdGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21vZGlmaWVkJ10s
ICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7CisgICAgICAgICAgICAgICAg
ZG9uZSgpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQo
InNob3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB1bnJlbGF0ZWQgdGVzdCBj
b25maWd1cmF0aW9ucyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRz
VXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9u
c2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rl
c3QxJywgJ1RpbWUnLCBmdW5jdGlvbiAob3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRl
c3RzWzFdLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZpZykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25m
aWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFz
dF9tb2RpZmllZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgICAg
IH0pLmNhdGNoKGRvbmUpOwogICAgIH0pOwogfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
YnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMJKHJldmlzaW9uIDE5OTEyMykKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFi
bGUtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcgKzE4LDcgQEAgY2xhc3MgTW9ja0xv
Z2dlciB7CiB9CiAKIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewotICAgIHRoaXMudGltZW91dCgxMDAwMCk7CisgICAgdGhpcy50aW1lb3V0KDEwMDApOwogICAg
IFRlc3RTZXJ2ZXIuaW5qZWN0KCk7CiAKICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKSW5k
ZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qt
c2VydmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCShyZXZpc2lvbiAxOTkxMjMpCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5q
cwkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAgbGV0IENvbmZpZyA9IHJlcXVpcmUoJy4u
Ly4uL3Rvb2xzL2pzL2NvbgogbGV0IERhdGFiYXNlID0gcmVxdWlyZSgnLi4vLi4vdG9vbHMvanMv
ZGF0YWJhc2UuanMnKTsKIGxldCBSZW1vdGVBUEkgPSByZXF1aXJlKCcuLi8uLi90b29scy9qcy9y
ZW1vdGUuanMnKS5SZW1vdGVBUEk7CiAKLWxldCBUZXN0U2VydmVyID0gKG5ldyBjbGFzcyBUZXN0
U2VydmVyIHsKK2NsYXNzIFRlc3RTZXJ2ZXIgewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX3BpZEZpbGUgPSBudWxsOwpAQCAtMjQxLDggKzI0MSwxMCBAQCBsZXQgVGVz
dFNlcnZlciA9IChuZXcgY2xhc3MgVGVzdFNlcnZlciB7CiAgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5zdG9wKCk7CiAgICAgICAgIH0pOwogICAgIH0KLX0pOworfQogCitpZiAoIWdsb2JhbC5UZXN0
U2VydmVyKQorICAgIGdsb2JhbC5UZXN0U2VydmVyID0gbmV3IFRlc3RTZXJ2ZXI7CiAKIGlmICh0
eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQotICAgIG1vZHVsZS5leHBvcnRzID0gVGVzdFNl
cnZlcjsKKyAgICBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5UZXN0U2VydmVyOwpJbmRleDogV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FkbWluLXBsYXRmb3Jtcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYWRtaW4tcGxhdGZvcm1zLmpzCShy
ZXZpc2lvbiAxOTkxMjIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYWRtaW4t
cGxhdGZvcm1zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyMiArMCwwIEBACi1kZXNjcmliZSgi
L2FkbWluL3BsYXRmb3JtcyIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgcmVwb3J0c0ZvckRpZmZl
cmVudFBsYXRmb3JtcyA9IFsKLSAgICB7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIzMDAxIiwK
LSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDA5OjAxOjQ3IiwKLSAgICAgICAgImJ1
aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTWF2ZXJpY2tzIiwKLSAgICAgICAg
InRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6
IFtbMSwgMSwgMV0sIFsxLCAxLCAxXV0gfSB9IH0gfSwKLSAgICB9LAotICAgIHsKLSAgICAgICAg
ImJ1aWxkTnVtYmVyIjogIjMwMDEiLAotICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhU
MTA6MTI6MDMiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAg
ICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6
ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogeyJ0ZXN0IjogeyAibWV0cmljcyI6
IHsiRnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbMiwgMiwgMl0sIFsyLCAyLCAyXV0gfSwgIkNv
bWJpbmVkIjogeyAiY3VycmVudCI6IFtbMywgMywgM10sIFszLCAzLCAzXV0gfX0gfSB9LAotICAg
IH0sCi0gICAgewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMzAwMyIsCi0gICAgICAgICJidWls
ZFRpbWUiOiAiMjAxMy0wMi0yOFQxMjo1NjoyNiIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJz
b21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
LSAgICAgICAgInBsYXRmb3JtIjogIlRydW5rIE1vdW50YWluIExpb24iLAotICAgICAgICAidGVz
dHMiOiB7InRlc3QiOiB7ICJtZXRyaWNzIjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1s0
LCA0LCA0XSwgWzQsIDQsIDRdXSB9IH0gfSB9Ci0gICAgfV07Ci0KLSAgICBmdW5jdGlvbiBzdWJt
aXRSZXBvcnQocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJ
TlNFUlQgSU5UTyBidWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hhc2gp
IHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1lLCBz
aGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0
Zm9ybXMsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICBjYWxsYmFj
aygpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
aXQoInNob3VsZCBkZWxldGUgdGhlIHBsYXRmb3JtIHRoYXQgZ290IG1lcmdlZCBpbnRvIGFub3Ro
ZXIgb25lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBzdWJtaXRSZXBvcnQocmVwb3J0c0ZvckRp
ZmZlcmVudFBsYXRmb3JtcywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnU0VMRUNUICogRlJPTSBwbGF0Zm9ybXMgT1JERVIgYnkgcGxhdGZvcm1fbmFtZScsIFtd
LCBmdW5jdGlvbiAob2xkUGxhdGZvcm1zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9sZFBsYXRmb3Jtcy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRQbGF0Zm9ybXNbMF1bJ3BsYXRmb3JtX25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvbGRQbGF0Zm9ybXNbMV1bJ3BsYXRmb3JtX25hbWUnXSwgJ01v
dW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkUGxhdGZvcm1z
WzJdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFpbiBMaW9uJyk7Ci0gICAgICAgICAg
ICAgICAgaHR0cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2Un
LCAnaWQnOiBvbGRQbGF0Zm9ybXNbMV1bJ3BsYXRmb3JtX2lkJ10sICdkZXN0aW5hdGlvbic6IG9s
ZFBsYXRmb3Jtc1syXVsncGxhdGZvcm1faWQnXX0sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsK
LSAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBwbGF0
Zm9ybXMgT1JERVIgYnkgcGxhdGZvcm1fbmFtZScsIFtdLCBmdW5jdGlvbiAobmV3UGxhdGZvcm1z
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG5ld1BsYXRmb3Jt
cywgW29sZFBsYXRmb3Jtc1swXSwgb2xkUGxhdGZvcm1zWzJdXSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAg
aXQoInNob3VsZCBtb3ZlIHRlc3QgcnVucyBmcm9tIHRoZSBtZXJnZWQgcGxhdGZvcm0gdG8gdGhl
IGRlc3RpbmF0aW9uIHBsYXRmb3JtIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBzdWJtaXRSZXBv
cnQocmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3JtcywgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgdmFyIHF1ZXJ5Rm9yUnVucyA9ICdTRUxFQ1QgKiBGUk9NIHRlc3RfcnVucywgdGVzdF9jb25m
aWd1cmF0aW9ucywgcGxhdGZvcm1zIFdIRVJFIHJ1bl9jb25maWcgPSBjb25maWdfaWQgQU5EIGNv
bmZpZ19wbGF0Zm9ybSA9IHBsYXRmb3JtX2lkIE9SREVSIGJ5IHJ1bl9tZWFuX2NhY2hlJzsKLSAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG9s
ZFRlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zLmxl
bmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzBdWydw
bGF0Zm9ybV9uYW1lJ10sICdNYXZlcmlja3MnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob2xkVGVzdFJ1bnNbMF1bJ3J1bl9zdW1fY2FjaGUnXSwgNik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydwbGF0Zm9ybV9uYW1lJ10sICdNb3VudGFpbiBM
aW9uJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9sZFRlc3RSdW5zWzFdWydydW5f
c3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1
bnNbMl1bJ3BsYXRmb3JtX25hbWUnXSwgJ01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob2xkVGVzdFJ1bnNbMl1bJ3J1bl9zdW1fY2FjaGUnXSwgMTgpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvbGRUZXN0UnVuc1szXVsncGxhdGZvcm1fbmFtZSdd
LCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
bGRUZXN0UnVuc1szXVsncnVuX3N1bV9jYWNoZSddLCAyNCk7Ci0gICAgICAgICAgICAgICAgaHR0
cFBvc3QoJy9hZG1pbi9wbGF0Zm9ybXMucGhwJywgeydhY3Rpb24nOiAnbWVyZ2UnLCAnaWQnOiBv
bGRUZXN0UnVuc1sxXVsncGxhdGZvcm1faWQnXSwgJ2Rlc3RpbmF0aW9uJzogb2xkVGVzdFJ1bnNb
M11bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVlcnlGb3JSdW5zLCBbXSwgZnVuY3Rpb24gKG5l
d1Rlc3RSdW5zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVz
dFJ1bnMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1swXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzBdWydydW5faWQnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMF1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ01hdmVyaWNrcycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG5ld1Rlc3RSdW5zWzBdWydydW5fc3VtX2NhY2hlJ10sIDYpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5faWQnXSwgb2xkVGVzdFJ1
bnNbMV1bJ3J1bl9pZCddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1sxXVsncGxhdGZvcm1fbmFtZSddLCAnVHJ1bmsgTW91bnRhaW4gTGlvbicpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5f
c3VtX2NhY2hlJ10sIDEyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChu
ZXdUZXN0UnVuc1syXVsncnVuX2lkJ10sIG9sZFRlc3RSdW5zWzJdWydydW5faWQnXSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbMl1bJ3BsYXRmb3Jt
X25hbWUnXSwgJ1RydW5rIE1vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChuZXdUZXN0UnVuc1syXVsncnVuX3N1bV9jYWNoZSddLCAxOCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1bnNbM11bJ3J1bl9pZCdd
LCBvbGRUZXN0UnVuc1szXVsncnVuX2lkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzNdWydwbGF0Zm9ybV9uYW1lJ10sICdUcnVuayBNb3VudGFp
biBMaW9uJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3VGVzdFJ1
bnNbM11bJ3J1bl9zdW1fY2FjaGUnXSwgMjQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG5ld1Rlc3RSdW5zWzFdWydydW5fY29uZmlnJ10sIG5ld1Rlc3RSdW5zWzNdWydy
dW5fY29uZmlnJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgbW92ZSB0ZXN0IGNvbmZp
Z3VyYXRpb25zIGZyb20gdGhlIG1lcmdlZCBwbGF0Zm9ybSB0byB0aGUgZGVzdGluYXRpb24gcGxh
dGZvcm0iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9y
bXNbMF1bJ3Rlc3RzJ10gPSB7InRlc3QiOiB7ICJtZXRyaWNzIjogeyJGcmFtZVJhdGUiOiB7ICJi
YXNlbGluZSI6IFtbMSwgMSwgMV0sIFsxLCAxLCAxXV0gfSB9IH0gfTsKLSAgICAgICAgc3VibWl0
UmVwb3J0KHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0Zm9ybXMsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHZhciBxdWVyeUZvckNvbmZpZyA9ICdTRUxFQ1QgKiBmcm9tIHRlc3RfY29uZmlndXJh
dGlvbnMsIHBsYXRmb3JtcywgdGVzdF9tZXRyaWNzJwotICAgICAgICAgICAgICAgICsgJyB3aGVy
ZSBjb25maWdfcGxhdGZvcm0gPSBwbGF0Zm9ybV9pZCBhbmQgY29uZmlnX21ldHJpYyA9IG1ldHJp
Y19pZCBhbmQgcGxhdGZvcm1fbmFtZSBpbiAoJDEsICQyKSBvcmRlciBieSBjb25maWdfaWQnOwot
ICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbChxdWVyeUZvckNvbmZpZywgW3JlcG9ydHNGb3JE
aWZmZXJlbnRQbGF0Zm9ybXNbMF1bJ3BsYXRmb3JtJ10sIHJlcG9ydHNGb3JEaWZmZXJlbnRQbGF0
Zm9ybXNbMl1bJ3BsYXRmb3JtJ11dLCBmdW5jdGlvbiAoY29uZmlncykgewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbmZpZ3NbMF1bJ3BsYXRmb3JtX25hbWUnXSwgcmVwb3J0c0ZvckRpZmZlcmVu
dFBsYXRmb3Jtc1swXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbmZpZ3NbMF1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwgJ2Jhc2VsaW5lJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ3BsYXRmb3JtX25hbWUnXSwg
cmVwb3J0c0ZvckRpZmZlcmVudFBsYXRmb3Jtc1syXVsncGxhdGZvcm0nXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3NbMV1bJ21ldHJpY19uYW1lJ10sICdGcmFtZVJhdGUn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlnc1sxXVsnY29uZmlnX3R5cGUn
XSwgJ2N1cnJlbnQnKTsKLSAgICAgICAgICAgICAgICBodHRwUG9zdCgnL2FkbWluL3BsYXRmb3Jt
cy5waHAnLCB7J2FjdGlvbic6ICdtZXJnZScsICdpZCc6IGNvbmZpZ3NbMF1bJ3BsYXRmb3JtX2lk
J10sICdkZXN0aW5hdGlvbic6IGNvbmZpZ3NbMV1bJ3BsYXRmb3JtX2lkJ119LCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0
YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwocXVl
cnlGb3JDb25maWcsIFtyZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzBdWydwbGF0Zm9ybSdd
LCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzJdWydwbGF0Zm9ybSddXSwgZnVuY3Rpb24g
KG5ld0NvbmZpZ3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdD
b25maWdzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
bmV3Q29uZmlnc1swXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZv
cm1zWzJdWydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChuZXdDb25maWdzWzBdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1swXVsnY29uZmlnX3R5cGUnXSwg
J2Jhc2VsaW5lJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29u
Zmlnc1sxXVsncGxhdGZvcm1fbmFtZSddLCByZXBvcnRzRm9yRGlmZmVyZW50UGxhdGZvcm1zWzJd
WydwbGF0Zm9ybSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChuZXdD
b25maWdzWzFdWydtZXRyaWNfbmFtZSddLCAnRnJhbWVSYXRlJyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobmV3Q29uZmlnc1sxXVsnY29uZmlnX3R5cGUnXSwgJ2N1cnJl
bnQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci0KLX0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rl
c3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rlc3RzL2FkbWluLXJlcHJvY2Vzcy1yZXBvcnQuanMJKHJldmlzaW9uIDE5
OTEyMikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90ZXN0cy9hZG1pbi1yZXByb2Nlc3Mt
cmVwb3J0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc2ICswLDAgQEAKLWRlc2NyaWJlKCIvYWRt
aW4vcmVwcm9jZXNzLXJlcG9ydCIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgc2ltcGxlUmVwb3J0
ID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjE5ODYiLAotICAgICAgICAiYnVpbGRUaW1l
IjogIjIwMTMtMDItMjhUMTA6MTI6MDMiLAotICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1
aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAg
ICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgInRlc3RzIjogewotICAg
ICAgICAgICAgICAgICJ0ZXN0IjogewotICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsi
RnJhbWVSYXRlIjogeyAiY3VycmVudCI6IFtbMSwgMiwgM10sIFs0LCA1LCA2XV0gfX0KLSAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgfSwKLSAgICAgICAgfV07Ci0KLSAgICBmdW5jdGlv
biBhZGRCdWlsZGVyKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnSU5TRVJUIElOVE8gYnVpbGRlcnMgKGJ1aWxkZXJfbmFtZSwgYnVpbGRlcl9wYXNzd29yZF9o
YXNoKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgW3JlcG9ydFswXS5idWlsZGVyTmFt
ZSwgc2hhMjU2KHJlcG9ydFswXS5idWlsZGVyUGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0K
LQotICAgIGl0KCJzaG91bGQgYWRkIGJ1aWxkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRC
dWlsZGVyKHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NF
TEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChidWlsZFJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93cy5sZW5ndGgsIDEpOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSb3dzWzBdWydidWlsZF9udW1iZXInXSwgMTk4
Nik7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
cmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocmVwb3J0Um93cykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9ydFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvcnRSb3dzWzBdWydyZXBvcnRfYnVpbGRfbnVtYmVy
J10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnVVBE
QVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9NIGJ1aWxkczsg
U0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJvd3MubGVuZ3RoLCAwKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0SWQgPSByZXBvcnRSb3dzWzBd
WydyZXBvcnRfaWQnXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYWRt
aW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JyArIHJlcG9ydElkLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgn
U0VMRUNUICogRlJPTSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKGJ1aWxkUm93cykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUm93cy5sZW5n
dGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUm93c1swXVsnYnVpbGRfbnVtYmVyJ10sIDE5ODYpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJz
aG91bGQgbm90IGR1cGxpY2F0ZSB0aGUgcmVwcm9jZXNzZWQgcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewotICAgICAgICBhZGRCdWlsZGVyKHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHNpbXBsZVJlcG9ydCwgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9u
c2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAob3JpZ2lu
YWxSZXByb3RSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvcmlnaW5h
bFJlcHJvdFJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRj
aEFsbCgnVVBEQVRFIHJlcG9ydHMgU0VUIHJlcG9ydF9idWlsZCA9IE5VTEw7IERFTEVURSBGUk9N
IGJ1aWxkcycsIFtdLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRw
R2V0KCcvYWRtaW4vcmVwcm9jZXNzLXJlcG9ydD9yZXBvcnQ9JyArIG9yaWdpbmFsUmVwcm90Um93
c1swXVsncmVwb3J0X2lkJ10sIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHJlcG9ydHMnLCBbXSwgZnVuY3Rp
b24gKHJlcG9ydFJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2lu
YWxSZXByb3RSb3dzWzBdWydyZXBvcnRfY29tbWl0dGVkX2F0J10gPSBudWxsOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRSb3dzWzBdWydyZXBvcnRfY29tbWl0dGVkX2F0
J10gPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1
YWwob3JpZ2luYWxSZXByb3RSb3dzWzBdWydyZXBvcnRfYnVpbGQnXSwgcmVwb3J0Um93c1swXVsn
cmVwb3J0X2J1aWxkJ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5h
bFJlcHJvdFJvd3NbMF1bJ3JlcG9ydF9idWlsZCddID0gbnVsbDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwb3J0Um93c1swXVsncmVwb3J0X2J1aWxkJ10gPSBudWxsOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9ydFJvd3Ms
IG9yaWdpbmFsUmVwcm90Um93cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwpJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3RzL2FwaS1tZWFzdXJlbWVu
dC1zZXQuanMJKHJldmlzaW9uIDE5OTEyMikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
ZXN0cy9hcGktbWVhc3VyZW1lbnQtc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwNCArMCww
IEBACi1kZXNjcmliZSgiL2FwaS9tZWFzdXJlbWVudC1zZXQiLCBmdW5jdGlvbiAoKSB7Ci0gICAg
ZnVuY3Rpb24gYWRkQnVpbGRlcihyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5QW5k
RmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxkZXJzIChidWlsZGVyX25hbWUsIGJ1aWxkZXJfcGFz
c3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgIFtyZXBvcnRbMF0uYnVp
bGRlck5hbWUsIHNoYTI1NihyZXBvcnRbMF0uYnVpbGRlclBhc3N3b3JkKV0sIGNhbGxiYWNrKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKHBsYXRmb3JtTmFt
ZSwgbWV0cmljTmFtZSwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUICogRlJPTSBwbGF0Zm9ybXMgV0hFUkUgcGxhdGZvcm1fbmFtZSA9ICQxJywgW3BsYXRmb3Jt
TmFtZV0sIGZ1bmN0aW9uIChwbGF0Zm9ybVJvd3MpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdF9tZXRyaWNzIFdIRVJFIG1ldHJpY19uYW1lID0gJDEn
LCBbbWV0cmljTmFtZV0sIGZ1bmN0aW9uIChtZXRyaWNSb3dzKSB7Ci0gICAgICAgICAgICAgICAg
Y2FsbGJhY2socGxhdGZvcm1Sb3dzWzBdWydwbGF0Zm9ybV9pZCddLCBtZXRyaWNSb3dzWzBdWydt
ZXRyaWNfaWQnXSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZm9ybWF0KGZvcm1hdE1hcCwgcm93KSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSB7
fTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRNYXAubGVuZ3RoOyBpKyspIHsK
LSAgICAgICAgICAgIHZhciBrZXkgPSBmb3JtYXRNYXBbaV07Ci0gICAgICAgICAgICBpZiAoa2V5
ID09ICdpZCcgfHwga2V5ID09ICdidWlsZCcgfHwga2V5ID09ICdidWlsZGVyJykKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJlc3VsdFtrZXldID0gcm93W2ldOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmFyIGNsdXN0ZXJT
dGFydCA9IGNvbmZpZygnY2x1c3RlclN0YXJ0Jyk7Ci0gICAgY2x1c3RlclN0YXJ0ID0gK0RhdGUu
VVRDKGNsdXN0ZXJTdGFydFswXSwgY2x1c3RlclN0YXJ0WzFdIC0gMSwgY2x1c3RlclN0YXJ0WzJd
LCBjbHVzdGVyU3RhcnRbM10sIGNsdXN0ZXJTdGFydFs0XSk7Ci0KLSAgICB2YXIgY2x1c3RlclNp
emUgPSBjb25maWcoJ2NsdXN0ZXJTaXplJyk7Ci0gICAgdmFyIERBWSA9IDI0ICogMzYwMCAqIDEw
MDA7Ci0gICAgdmFyIFlFQVIgPSAzNjUuMjQgKiBEQVk7Ci0gICAgdmFyIE1PTlRIID0gMzAgKiBE
QVk7Ci0gICAgY2x1c3RlclNpemUgPSBjbHVzdGVyU2l6ZVswXSAqIFlFQVIgKyBjbHVzdGVyU2l6
ZVsxXSAqIE1PTlRIICsgY2x1c3RlclNpemVbMl0gKiBEQVk7Ci0KLSAgICBmdW5jdGlvbiBjbHVz
dGVyVGltZShpbmRleCkgeyByZXR1cm4gbmV3IERhdGUoY2x1c3RlclN0YXJ0ICsgY2x1c3RlclNp
emUgKiBpbmRleCk7IH0KLQotICAgIHZhciByZXBvcnRXaXRoQnVpbGRUaW1lID0gW3sKLSAgICAg
ICAgImJ1aWxkTnVtYmVyIjogIjEyMyIsCi0gICAgICAgICJidWlsZFRpbWUiOiBjbHVzdGVyVGlt
ZSg3LjgpLnRvSVNPU3RyaW5nKCksCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAg
InBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAg
ICAgICAiU3VpdGUiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjogewotICAgICAgICAgICAg
ICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsi
VGltZSI6IHsgImN1cnJlbnQiOiBbMSwgMiwgMywgNCwgNV0gfX0KLSAgICAgICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICB9fV07Ci0g
ICAgcmVwb3J0V2l0aEJ1aWxkVGltZS5zdGFydFRpbWUgPSArY2x1c3RlclRpbWUoNyk7Ci0KLSAg
ICB2YXIgcmVwb3J0V2l0aFJldmlzaW9uID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEy
NCIsCi0gICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxNTozNDo1MSIsCi0gICAgICAg
ICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIxNDQwMDAiLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBjbHVz
dGVyVGltZSgxMC4zKS50b0lTT1N0cmluZygpLAotICAgICAgICAgICAgfSwKLSAgICAgICAgfSwK
LSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQ
YXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICJTdWl0ZSI6IHsKLSAgICAg
ICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsx
MSwgMTIsIDEzLCAxNCwgMTVdIH19Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9LAotICAgICAgICB9fV07Ci0KLSAgICB2YXIgcmVwb3J0V2l0
aE5ld1JldmlzaW9uID0gW3sKLSAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNSIsCi0gICAgICAg
ICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQyMTo0NToxNyIsCi0gICAgICAgICJyZXZpc2lvbnMi
OiB7Ci0gICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxNjA2MDkiLAotICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiBjbHVzdGVyVGltZSgxMi4x
KS50b0lTT1N0cmluZygpCi0gICAgICAgICAgICB9LAotICAgICAgICB9LAotICAgICAgICAiYnVp
bGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCi0gICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAg
ICAgInRlc3RzIjogewotICAgICAgICAgICAgIlN1aXRlIjogewotICAgICAgICAgICAgICAgICJ0
ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgInRlc3QxIjogewotICAgICAgICAgICAgICAg
ICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzE2LCAxNywgMTgsIDE5
LCAyMF0gfX0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0sCi0gICAgICAgIH19XTsKLQotICAgIHZhciByZXBvcnRXaXRoQW5jZW50UmV2aXNp
b24gPSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTI2IiwKLSAgICAgICAgImJ1aWxkVGlt
ZSI6ICIyMDEzLTAyLTI4VDIzOjA3OjI1IiwKLSAgICAgICAgInJldmlzaW9ucyI6IHsKLSAgICAg
ICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEzNzc5MyIs
Ci0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6IGNsdXN0ZXJUaW1lKDEuOCkudG9JU09TdHJp
bmcoKQotICAgICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjog
InNvbWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAotICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6
IHsKLSAgICAgICAgICAgICJTdWl0ZSI6IHsKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0g
ICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJt
ZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFsyMSwgMjIsIDIzLCAyNCwgMjVdIH19Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAot
ICAgICAgICB9fV07Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCB3aGVuIHBsYXRmb3JtIElEIGlz
IG1pc3NpbmciLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1
aWxkVGltZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0
YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdN
b3VudGFpbiBMaW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP21ldHJp
Yz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsn
c3RhdHVzJ10sICdJbnZhbGlkTWV0cmljJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwot
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxk
IHJlamVjdCB3aGVuIG1ldHJpYyBJRCBpcyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3Rh
dHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShy
ZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
cXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24g
KHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCwgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5w
YXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ0ludmFsaWRQbGF0Zm9ybScp
OwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52YWxpZCBwbGF0Zm9y
bSBuYW1lIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWls
ZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJpYygnTW91
bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9hcGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9y
bT0nICsgcGxhdGZvcm1JZCArICdhJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2Uo
cmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdJbnZhbGlkUGxhdGZvcm0nKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgbWV0cmljIG5hbWUi
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGltZSwg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFpbiBM
aW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBw
bGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkICsgJ2InLCBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnSW52YWxpZE1ldHJpYycpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGEgcmVwb3J0ZWQgdmFs
dWUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0V2l0aEJ1aWxkVGlt
ZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljKCdNb3VudGFp
biBMaW9uJywgJ1RpbWUnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScg
KyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHBhcmVzZFJlc3VsdCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0LmZhaWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBidWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9ydFdpdGhCdWlsZFRpbWVbMF1b
J2J1aWxkVGltZSddKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoT2JqZWN0LmtleXMocGFyZXNkUmVzdWx0KS5zb3J0KCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWydjbHVzdGVyQ291bnQnLCAnY2x1c3RlclNpemUnLCAnY2x1c3RlclN0YXJ0JywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycsICdlbGFwc2Vk
VGltZScsICdlbmRUaW1lJywgJ2Zvcm1hdE1hcCcsICdsYXN0TW9kaWZpZWQnLCAnc3RhcnRUaW1l
JywgJ3N0YXR1cyddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJl
c2RSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChwYXJlc2RSZXN1bHRbJ2NsdXN0ZXJDb3VudCddLCAxKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocGFyZXNkUmVzdWx0Wydmb3JtYXRNYXAnXSwgWwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcsICdtZWFuJywgJ2l0ZXJhdGlvbkNvdW50
JywgJ3N1bScsICdzcXVhcmVTdW0nLCAnbWFya2VkT3V0bGllcicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3JldmlzaW9ucycsICdjb21taXRUaW1lJywgJ2J1aWxkJywgJ2J1aWxkVGlt
ZScsICdidWlsZE51bWJlcicsICdidWlsZGVyJ10pOwotCi0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocGFyZXNkUmVzdWx0WydzdGFydFRpbWUnXSwgcmVwb3J0V2l0aEJ1aWxk
VGltZS5zdGFydFRpbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZihw
YXJlc2RSZXN1bHRbJ2xhc3RNb2RpZmllZCddKSA9PSAnbnVtYmVyJywgJ2xhc3RNb2RpZmllZCB0
aW1lIHNob3VsZCBiZSBhIG51bWVyaWMnKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwYXJlc2RSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ10p
LCBbJ2N1cnJlbnQnXSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50Um93
cyA9IHBhcmVzZFJlc3VsdFsnY29uZmlndXJhdGlvbnMnXVsnY3VycmVudCddOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGN1cnJlbnRSb3dzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3NbMF0ubGVuZ3RoLCBw
YXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGZvcm1hdChwYXJlc2RSZXN1bHRbJ2Zvcm1hdE1hcCddLCBjdXJy
ZW50Um93c1swXSksIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFuOiAzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbkNvdW50OiA1LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1bTogMTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3F1
YXJlU3VtOiA1NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZWRPdXRsaWVyOiBm
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZpc2lvbnM6IFtdLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdFRpbWU6IGJ1aWxkVGltZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBidWlsZFRpbWU6IGJ1aWxkVGltZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBidWlsZE51bWJlcjogJzEyMyd9KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJz
aG91bGQgcmV0dXJuIHJldHVybiB0aGUgcmlnaHQgSURzIGZvciBtZWFzdXJlbWVudCwgYnVpbGQs
IGFuZCBidWlsZGVyIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdp
dGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFuZE1ldHJp
YygnTW91bnRhaW4gTGlvbicsICdUaW1lJywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
dGVzdF9ydW5zJywgW10sIGZ1bmN0aW9uIChydW5zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIG1lYXN1cmVtZW50SWQgPSBydW5zWzBdWydydW5faWQnXTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRzJywgW10sIGZ1bmN0
aW9uIChidWlsZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1aWxk
SWQgPSBidWlsZHNbMF1bJ2J1aWxkX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWlsZGVycycsIFtdLCBmdW5jdGlvbiAo
YnVpbGRlcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkZXJzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBidWlsZGVySWQgPSBidWlsZGVyc1swXVsnYnVpbGRlcl9pZCddOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNldC8/cGxhdGZvcm09
JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVzZFJlc3Vs
dCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXJlc2RSZXN1bHRbJ2NvbmZpZ3VyYXRp
b25zJ11bJ2N1cnJlbnQnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIG1lYXN1cmVtZW50ID0gcGFyZXNkUmVzdWx0Wydjb25maWd1cmF0aW9ucydd
WydjdXJyZW50J11bMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocGFyZXNkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcGFyZXNkUmVzdWx0
Wydmb3JtYXRNYXAnXS5pbmRleE9mKCdpZCcpXSwgbWVhc3VyZW1lbnRJZCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcGFyZXNk
UmVzdWx0Wydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZCcpXSwgYnVpbGRJZCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWVhc3VyZW1lbnRbcGFy
ZXNkUmVzdWx0Wydmb3JtYXRNYXAnXS5pbmRleE9mKCdidWlsZGVyJyldLCBidWlsZGVySWQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLQotICAgIGZ1bmN0aW9uIHBvc3RSZXBvcnRzKHJlcG9ydHMsIGNhbGxiYWNrKSB7Ci0g
ICAgICAgIGlmICghcmVwb3J0cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
KTsKLQotICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0c1swXSwgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAgICAgICAgcG9zdFJlcG9y
dHMocmVwb3J0cy5zbGljZSgxKSwgY2FsbGJhY2spOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkocGxhdGZvcm1O
YW1lLCBtZXRyaWNOYW1lLCByZXBvc2l0b3J5TmFtZSwgY2FsbGJhY2spIHsKLSAgICAgICAgcXVl
cnlQbGF0Zm9ybUFuZE1ldHJpYyhwbGF0Zm9ybU5hbWUsIG1ldHJpY05hbWUsIGZ1bmN0aW9uIChw
bGF0Zm9ybUlkLCBtZXRyaWNJZCkgewotICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUICogRlJPTSByZXBvc2l0b3JpZXMgV0hFUkUgcmVwb3NpdG9yeV9uYW1lID0gJDEnLCBbcmVw
b3NpdG9yeU5hbWVdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgIGNhbGxiYWNr
KHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByb3dzWzBdWydyZXBvc2l0b3J5X2lkJ10pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJzaG91bGQgb3JkZXIgcmVz
dWx0cyBieSBjb21taXQgdGltZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihy
ZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0UmVwb3J0
cyhbcmVwb3J0V2l0aEJ1aWxkVGltZSwgcmVwb3J0V2l0aFJldmlzaW9uXSwgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIHF1ZXJ5UGxhdGZvcm1BbmRNZXRyaWNXaXRoUmVwb3NpdG9yeSgn
TW91bnRhaW4gTGlvbicsICdUaW1lJywgJ1dlYktpdCcsIGZ1bmN0aW9uIChwbGF0Zm9ybUlkLCBt
ZXRyaWNJZCwgcmVwb3NpdG9yeUlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGh0dHBHZXQoJy9h
cGkvbWVhc3VyZW1lbnQtc2V0Lz9wbGF0Zm9ybT0nICsgcGxhdGZvcm1JZCArICcmbWV0cmljPScg
KyBtZXRyaWNJZCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcGFyc2VkUmVzdWx0ID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZFJlc3VsdFsnc3RhdHVz
J10sICdPSycpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVpbGRUaW1lID0gKyhu
ZXcgRGF0ZShyZXBvcnRXaXRoQnVpbGRUaW1lWzBdWydidWlsZFRpbWUnXSkpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyIHJldmlzaW9uVGltZSA9ICsobmV3IERhdGUocmVwb3J0V2l0aFJl
dmlzaW9uWzBdWydyZXZpc2lvbnMnXVsnV2ViS2l0J11bJ3RpbWVzdGFtcCddKSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgcmV2aXNpb25CdWlsZFRpbWUgPSArKG5ldyBEYXRlKHJlcG9y
dFdpdGhSZXZpc2lvblswXVsnYnVpbGRUaW1lJ10pKTsKLQotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIGN1cnJlbnRSb3dzID0gcGFyc2VkUmVzdWx0Wydjb25maWd1cmF0aW9ucyddWydjdXJy
ZW50J107Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY3VycmVudFJvd3Mu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9y
bWF0KHBhcnNlZFJlc3VsdFsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzBdKSwgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVhbjogMTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBpdGVyYXRpb25Db3VudDogNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bTogNjUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW06IDg1NSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmtlZE91dGxpZXI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV2aXNpb25zOiBbWzEsIHJlcG9zaXRvcnlJZCwgJzE0NDAwMCcsIHJldmlzaW9u
VGltZV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0VGltZTogcmV2aXNpb25U
aW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRUaW1lOiByZXZpc2lvbkJ1aWxk
VGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTI0JyB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZm9ybWF0KHBhcnNlZFJl
c3VsdFsnZm9ybWF0TWFwJ10sIGN1cnJlbnRSb3dzWzFdKSwgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lYW46IDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9u
Q291bnQ6IDUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtOiAxNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW06IDU1LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtlZE91dGxpZXI6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldmlzaW9uczogW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0VGltZTog
YnVpbGRUaW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkVGltZTogYnVpbGRU
aW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkTnVtYmVyOiAnMTIzJyB9KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZnVuY3Rpb24gYnVpbGROdW1iZXJzKHBh
cnNlZFJlc3VsdCwgY29uZmlnKSB7Ci0gICAgICAgIHJldHVybiBwYXJzZWRSZXN1bHRbJ2NvbmZp
Z3VyYXRpb25zJ11bY29uZmlnXS5tYXAoZnVuY3Rpb24gKHJvdykgewotICAgICAgICAgICAgcmV0
dXJuIGZvcm1hdChwYXJzZWRSZXN1bHRbJ2Zvcm1hdE1hcCddLCByb3cpWydidWlsZE51bWJlcidd
OwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIGluY2x1ZGUgb25lIGRhdGEg
cG9pbnQgYWZ0ZXIgdGhlIGN1cnJlbnQgdGltZSByYW5nZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgYWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICBwb3N0UmVwb3J0cyhbcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uLCByZXBvcnRXaXRoTmV3
UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQbGF0Zm9ybUFu
ZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAnV2ViS2l0Jywg
ZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRmb3JtPScgKyBw
bGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09OLnBhcnNlKHJl
c3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydjbHVzdGVyQ291bnQnXSwgMiwgJ3Nob3VsZCBo
YXZlIHR3byBjbHVzdGVycycpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChidWlsZE51bWJlcnMocGFyc2VkUmVzdWx0LCAnY3VycmVudCcpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtyZXBvcnRXaXRoQW5jZW50UmV2aXNpb25bMF1bJ2J1aWxkTnVtYmVy
J10sIHJlcG9ydFdpdGhOZXdSZXZpc2lvblswXVsnYnVpbGROdW1iZXInXV0pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgICAgICB9KTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci0KLSAgICAvLyBGSVhNRTogVGhpcyB0ZXN0IGFzc3VtZXMgYSBjbHVz
dGVyIHN0ZXAgb2YgMi0zIG1vbnRocwotICAgIGl0KCJzaG91bGQgYWx3YXlzIGluY2x1ZGUgb25l
IG9sZCBkYXRhIHBvaW50IGJlZm9yZSB0aGUgY3VycmVudCB0aW1lIHJhbmdlIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhCdWlsZFRpbWUsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RSZXBvcnRzKFtyZXBvcnRXaXRoQnVpbGRUaW1lLCByZXBvcnRX
aXRoQW5jZW50UmV2aXNpb25dLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlQ
bGF0Zm9ybUFuZE1ldHJpY1dpdGhSZXBvc2l0b3J5KCdNb3VudGFpbiBMaW9uJywgJ1RpbWUnLCAn
V2ViS2l0JywgZnVuY3Rpb24gKHBsYXRmb3JtSWQsIG1ldHJpY0lkLCByZXBvc2l0b3J5SWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgaHR0cEdldCgnL2FwaS9tZWFzdXJlbWVudC1zZXQvP3BsYXRm
b3JtPScgKyBwbGF0Zm9ybUlkICsgJyZtZXRyaWM9JyArIG1ldHJpY0lkLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXN1bHQgPSBKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2VkUmVzdWx0WydjbHVzdGVyQ291bnQnXSwgMiwg
J3Nob3VsZCBoYXZlIHR3byBjbHVzdGVycycpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB2
YXIgY3VycmVudFJvd3MgPSBwYXJzZWRSZXN1bHRbJ2NvbmZpZ3VyYXRpb25zJ11bJ2N1cnJlbnQn
XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjdXJyZW50Um93cy5sZW5n
dGgsIDIsICdzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0d28gZGF0YSBwb2ludHMnKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoYnVpbGROdW1iZXJzKHBhcnNlZFJl
c3VsdCwgJ2N1cnJlbnQnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVwb3J0V2l0
aEFuY2VudFJldmlzaW9uWzBdWydidWlsZE51bWJlciddLCByZXBvcnRXaXRoQnVpbGRUaW1lWzBd
WydidWlsZE51bWJlciddXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOyAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIC8vIEZJ
WE1FOiBUaGlzIHRlc3QgYXNzdW1lcyBhIGNsdXN0ZXIgc3RlcCBvZiAyLTMgbW9udGhzCi0gICAg
aXQoInNob3VsZCBjcmVhdGUgY2FjaGUgcmVzdWx0cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
YWRkQnVpbGRlcihyZXBvcnRXaXRoQnVpbGRUaW1lLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBwb3N0UmVwb3J0cyhbcmVwb3J0V2l0aEFuY2VudFJldmlzaW9uLCByZXBvcnRXaXRoUmV2aXNp
b24sIHJlcG9ydFdpdGhOZXdSZXZpc2lvbl0sIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICBxdWVyeVBsYXRmb3JtQW5kTWV0cmljV2l0aFJlcG9zaXRvcnkoJ01vdW50YWluIExpb24nLCAn
VGltZScsICdXZWJLaXQnLCBmdW5jdGlvbiAocGxhdGZvcm1JZCwgbWV0cmljSWQsIHJlcG9zaXRv
cnlJZCkgewotICAgICAgICAgICAgICAgICAgICBodHRwR2V0KCcvYXBpL21lYXN1cmVtZW50LXNl
dC8/cGxhdGZvcm09JyArIHBsYXRmb3JtSWQgKyAnJm1ldHJpYz0nICsgbWV0cmljSWQsIGZ1bmN0
aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZFJlc3Vs
dCA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChwYXJzZWRSZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBjYWNoZVByZWZpeCA9ICcvZGF0YS9tZWFzdXJlbWVudC1z
ZXQtJyArIHBsYXRmb3JtSWQgKyAnLScgKyBtZXRyaWNJZDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGh0dHBHZXQoY2FjaGVQcmVmaXggKyAnLmpzb24nLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VkQ2FjaGVkUmVzdWx0ID0gSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocGFyc2VkUmVzdWx0LCBwYXJzZWRDYWNoZWRSZXN1bHQpOwot
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEdldChjYWNoZVByZWZpeCArICctJyAr
IHBhcnNlZFJlc3VsdFsnc3RhcnRUaW1lJ10gKyAnLmpzb24nLCBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlZE9sZFJlc3VsdCA9
IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgb2xkQnVpbGROdW1iZXJzID0gYnVpbGROdW1iZXJzKHBhcnNlZE9s
ZFJlc3VsdCwgJ2N1cnJlbnQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IG5ld0J1aWxkTnVtYmVycyA9IGJ1aWxkTnVtYmVycyhwYXJzZWRSZXN1bHQsICdjdXJyZW50Jyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydChvbGRCdWlsZE51bWJlcnMu
bGVuZ3RoID49IDIsICdUaGUgb2xkIGNsdXN0ZXIgc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgdHdv
IGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydChu
ZXdCdWlsZE51bWJlcnMubGVuZ3RoID49IDIsICdUaGUgbmV3IGNsdXN0ZXIgc2hvdWxkIGNvbnRh
aW4gYXQgbGVhc3QgdHdvIGRhdGEgcG9pbnRzJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob2xkQnVpbGROdW1iZXJzLnNsaWNlKG9sZEJ1aWxkTnVt
YmVycy5sZW5ndGggLSAyKSwgbmV3QnVpbGROdW1iZXJzLnNsaWNlKDAsIDIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R3byBjb25zZXFjdXRpdmUgY2x1c3RlcnMgc2hv
dWxkIHNoYXJlIHR3byBkYXRhIHBvaW50cycpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB9KTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLX0pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rlc3Rz
L2FwaS1yZXBvcnQtY29tbWl0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLmpzCShyZXZpc2lvbiAxOTkxMjIpCisrKyBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIzNyArMCwwIEBACi1kZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGVtcHR5UmVwb3J0ID0gewotICAgICAgICAic2xh
dmVOYW1lIjogInNvbWVTbGF2ZSIsCi0gICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNz
d29yZCIsCi0gICAgfTsKLSAgICB2YXIgc3VidmVyc2lvbkNvbW1pdCA9IHsKLSAgICAgICAgInNs
YXZlTmFtZSI6ICJzb21lU2xhdmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFz
c3dvcmQiLAotICAgICAgICAiY29tbWl0cyI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxNDE5NzciLAotICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAu
OVoiLAotICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwg
ImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKLSAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAg
IH07Ci0gICAgdmFyIHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewotICAgICAgICAic2xhdmVO
YW1lIjogInNvbWVTbGF2ZSIsCi0gICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29y
ZCIsCi0gICAgICAgICJjb21taXRzIjogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCi0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIl8x
NDE5NzciLAotICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoi
LAotICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFj
Y291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKLSAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJzb21lIG1lc3NhZ2UiLAotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAgIH07
Ci0gICAgdmFyIHN1YnZlcnNpb25Ud29Db21taXRzID0gewotICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCi0gICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0g
ICAgICAgICJjb21taXRzIjogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIldlYktpdCIsCi0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIs
Ci0gICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCi0gICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6
ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAotICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
InNvbWUgbWVzc2FnZSIsCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCi0gICAgICAgICAgICAgICAgInBhcmVudCI6
ICIxNDE5NzciLAotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAotICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDk6NTQ6NTYuMFoiLAotICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiTWlraGFpbCBQb3pkbnlha292IiwgImFjY291bnQiOiAi
bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbSJ9LAotICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogImFub3RoZXIgbWVzc2FnZSIsCi0gICAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBhZGRTbGF2ZShyZXBvcnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGJ1aWxkX3NsYXZlcyAoc2xhdmVfbmFtZSwgc2xhdmVf
cGFzc3dvcmRfaGFzaCkgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgIFtyZXBvcnQuc2xh
dmVOYW1lLCBzaGEyNTYocmVwb3J0LnNsYXZlUGFzc3dvcmQpXSwgY2FsbGJhY2spOwotICAgIH0K
LQotICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5n
IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCB7fSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScp
OwotICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAg
IGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIHNsYXZlcyIsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAg
IHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9tIGNvbW1pdHMnLCBbXSwgZnVu
Y3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3Vu
dCwgMCk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhY2NlcHQgYW4gZW1wdHkgcmVw
b3J0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRTbGF2ZShlbXB0eVJlcG9ydCwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZW1w
dHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsK
LSAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBhIG1pc3NpbmcgcmVwb3NpdG9yeSIs
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
dmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdP
SycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gcmVw
b3NpdG9yaWVzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyb3dzWzBdWydyZXBvc2l0b3J5X25hbWUnXSwgc3VidmVyc2lvbkNvbW1pdC5jb21taXRz
WzBdWydyZXBvc2l0b3J5J10pOwotICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
Ci0KLSAgICBpdCgic2hvdWxkIHN0b3JlIGEgY29tbWl0IGZyb20gYSB2YWxpZCBzbGF2ZSIsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycp
OwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0
cyBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCcsIFtd
LCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3Vi
dmVyc2lvbkNvbW1pdC5jb21taXRzWzBdOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0X3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXRfdGltZSdd
LnRvU3RyaW5nKCksIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygp
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9u
YW1lJ10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfYWNjb3VudCddLCByZXBvcnRlZERh
dGFbJ2F1dGhvciddWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwot
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJl
amVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIG51bWJlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
YWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc3Vi
dmVyc2lvbkNvbW1pdAotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkludmFsaWRDb21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4
dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdT
RUxFQ1QgKiBGUk9NIGNvbW1pdHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKLSAgICAgICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBm
cm9tIGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKHN1YnZl
cnNpb25Ud29Db21taXRzLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2Fw
aS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cywgZnVuY3Rpb24gKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUs
IDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5k
RmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0
X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCBPUkRFUiBCWSBjb21taXRfdGltZScsIFtdLCBmdW5j
dGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lv
blR3b0NvbW1pdHMuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ2NvbW1pdF9yZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10pOwot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0X3RpbWUnXS50
b1N0cmluZygpLCBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdWydjb21taXR0ZXJfbmFt
ZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOwotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRh
WydhdXRob3InXVsnYWNjb3VudCddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3NbMF1bJ2NvbW1pdF9tZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRz
LmNvbW1pdHNbMV07Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydj
b21taXRfcmV2aXNpb24nXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdF90aW1lJ10udG9TdHJpbmcoKSwg
bmV3IERhdGUoJzIwMTMtMDItMDYgMDk6NTQ6NTYuMCcpLnRvU3RyaW5nKCkpOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1sxXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0
ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11b
J2FjY291bnQnXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzFdWydj
b21taXRfbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0
aW5nIGNvbW1pdCBpZiB0aGVyZSBpcyBvbmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIHJlcG9zaXRvcmllcyAocmVwb3NpdG9yeV9uYW1lKSBW
QUxVRVMgKCQxKSBSRVRVUk5JTkcgKicsIFsnV2ViS2l0J10sIGZ1bmN0aW9uIChyZXBvc2l0b3Jp
ZXMpIHsKLSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5SWQgPSByZXBvc2l0b3JpZXNbMF1bJ3Jl
cG9zaXRvcnlfaWQnXTsKLSAgICAgICAgICAgIHZhciByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9u
Q29tbWl0LmNvbW1pdHNbMF07Ci0gICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQg
SU5UTyBjb21taXRzIChjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uLCBjb21taXRf
dGltZSkgVkFMVUVTICgkMSwgJDIsICQzKSBSRVRVUk5JTkcgKicsCi0gICAgICAgICAgICAgICAg
W3JlcG9zaXRvcnlJZCwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCByZXBvcnRlZERhdGFbJ3Rp
bWUnXV0sIGZ1bmN0aW9uIChleGlzdGluZ0NvbW1pdHMpIHsKLSAgICAgICAgICAgICAgICB2YXIg
Y29tbWl0SWQgPSBleGlzdGluZ0NvbW1pdHNbMF1bJ2NvbW1pdF9pZCddOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChleGlzdGluZ0NvbW1pdHNbMF1bJ2NvbW1pdF9tZXNzYWdlJ10sIG51
bGwpOwotICAgICAgICAgICAgICAgIGFkZFNsYXZlKHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5
QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBKT0lOIGNvbW1pdHRlcnMgT04gY29t
bWl0X2NvbW1pdHRlciA9IGNvbW1pdHRlcl9pZCcsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9ydGVkRGF0YSA9IHN1YnZlcnNpb25D
b21taXQuY29tbWl0c1swXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocm93c1swXVsnY29tbWl0dGVyX25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFt
ZSddKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsn
Y29tbWl0dGVyX2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0
X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgbm90IHVwZGF0ZSBhbiB1
bnJlbGF0ZWQgY29tbWl0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdJTlNFUlQgSU5UTyByZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlfbmFtZSkgVkFMVUVTICgkMSkg
UkVUVVJOSU5HIConLCBbJ1dlYktpdCddLCBmdW5jdGlvbiAocmVwb3NpdG9yaWVzKSB7Ci0gICAg
ICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yaWVzWzBdWydyZXBvc2l0b3J5X2lk
J107Ci0gICAgICAgICAgICB2YXIgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMu
Y29tbWl0c1sxXTsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRPIGNv
bW1pdHMgKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24sIGNvbW1pdF90aW1lKSBW
QUxVRVMgKCQxLCAkMiwgJDMpIFJFVFVSTklORyAqJywKLSAgICAgICAgICAgICAgICBbcmVwb3Np
dG9yeUlkLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwg
ZnVuY3Rpb24gKGV4aXN0aW5nQ29tbWl0cykgewotICAgICAgICAgICAgICAgIHJlcG9ydGVkRGF0
YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNbMF07Ci0gICAgICAgICAgICAgICAgcXVl
cnlBbmRGZXRjaEFsbCgnSU5TRVJUIElOVE8gY29tbWl0cyAoY29tbWl0X3JlcG9zaXRvcnksIGNv
bW1pdF9yZXZpc2lvbiwgY29tbWl0X3RpbWUpIFZBTFVFUyAoJDEsICQyLCAkMykgUkVUVVJOSU5H
IConLAotICAgICAgICAgICAgICAgICAgICBbcmVwb3NpdG9yeUlkLCByZXBvcnRlZERhdGFbJ3Jl
dmlzaW9uJ10sIHJlcG9ydGVkRGF0YVsndGltZSddXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgYWRkU2xhdmUoc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Db21taXQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAw
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFy
c2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1p
dHMgTEVGVCBPVVRFUiBKT0lOIGNvbW1pdHRlcnMgT04gY29tbWl0X2NvbW1pdHRlciA9IGNvbW1p
dHRlcl9pZCBPUkRFUiBCWSBjb21taXRfdGltZScsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
b3dzWzBdWydjb21taXR0ZXJfbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10p
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3Nb
MF1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQn
XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93
c1swXVsnY29tbWl0X21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1p
dHRlcl9uYW1lJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1pdHRlcl9hY2NvdW50J10sIG51bGwpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMV1bJ2NvbW1p
dF9tZXNzYWdlJ10sIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotCi0gICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0dGVyIGlmIHRoZXJl
IGlzIG9uZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnSU5TRVJU
IElOVE8gcmVwb3NpdG9yaWVzIChyZXBvc2l0b3J5X2lkLCByZXBvc2l0b3J5X25hbWUpIFZBTFVF
UyAoMSwgXCdXZWJLaXRcJyknLCBbXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIGF1
dGhvciA9IHN1YnZlcnNpb25Db21taXQuY29tbWl0c1swXVsnYXV0aG9yJ107Ci0gICAgICAgICAg
ICBxdWVyeUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBjb21taXR0ZXJzIChjb21taXR0ZXJfcmVw
b3NpdG9yeSwgY29tbWl0dGVyX2FjY291bnQpIFZBTFVFUyAoMSwgJDEpJywgW2F1dGhvclsnYWNj
b3VudCddXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGFkZFNsYXZlKHN1YnZlcnNp
b25Db21taXQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBh
cnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0dGVycycs
IFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJvd3NbMF1bJ2NvbW1pdHRlcl9uYW1lJ10sIGF1dGhvclsnbmFtZSddKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXVsnY29tbWl0dGVy
X2FjY291bnQnXSwgYXV0aG9yWydhY2NvdW50J10pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLQotfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dGVzdHMvYXBpLXJlcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdGVzdHMvYXBpLXJlcG9ydC5qcwkocmV2aXNpb24gMTk5MTIyKQorKysgV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rlc3RzL2FwaS1yZXBvcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNzU5
ICswLDAgQEAKLWRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
ZW1wdHlSZXBvcnQgPSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAg
ImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWls
ZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAi
cGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6IHt9LAotICAgICAg
ICAicmV2aXNpb25zIjogewotICAgICAgICAgICAgIk9TIFgiOiB7Ci0gICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAi
V2ViS2l0IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAotICAgICAg
ICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfX1dOwotCi0gICAgdmFyIGVtcHR5U2xhdmVSZXBvcnQgPSBbewotICAg
ICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAy
LTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAg
InNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAotICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJvdGhl
clBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAg
ICAidGVzdHMiOiB7fSwKLSAgICAgICAgInJldmlzaW9ucyI6IHsKLSAgICAgICAgICAgICJPUyBY
IjogewotICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJDNjAiCi0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMTQxOTc3IiwKLSAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDItMDZU
MDg6NTU6MjAuOVoiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH19XTsKLQotICAgIGZ1bmN0aW9u
IGFkZEJ1aWxkZXIocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVyeUFuZEZldGNoQWxs
KCdJTlNFUlQgSU5UTyBidWlsZGVycyAoYnVpbGRlcl9uYW1lLCBidWlsZGVyX3Bhc3N3b3JkX2hh
c2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBdLmJ1aWxkZXJOYW1l
LCBzaGEyNTYocmVwb3J0WzBdLmJ1aWxkZXJQYXNzd29yZCldLCBjYWxsYmFjayk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gYWRkU2xhdmUocmVwb3J0LCBjYWxsYmFjaykgewotICAgICAgICBxdWVy
eUFuZEZldGNoQWxsKCdJTlNFUlQgSU5UTyBidWlsZF9zbGF2ZXMgKHNsYXZlX25hbWUsIHNsYXZl
X3Bhc3N3b3JkX2hhc2gpIHZhbHVlcyAoJDEsICQyKScsCi0gICAgICAgICAgICBbcmVwb3J0WzBd
LnNsYXZlTmFtZSwgc2hhMjU2KHJlcG9ydFswXS5zbGF2ZVBhc3N3b3JkKV0sIGNhbGxiYWNrKTsK
LSAgICB9Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIGJ1aWxkZXIgbmFtZSBp
cyBtaXNzaW5nIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgW3siYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0In1dLCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXND
b2RlLCAyMDApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdNaXNzaW5nQnVpbGRlck5hbWUnKTsKLSAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxk
IHJlamVjdCBlcnJvciB3aGVuIGJ1aWxkIHRpbWUgaXMgbWlzc2luZyIsIGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFt7ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVy
IiwgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQifV0sIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJl
c3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnTWlzc2luZ0J1aWxkVGltZScpOwotICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsK
LQotICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhlcmUgYXJlIG5vIGJ1aWxkZXJzIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQs
IGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJz
ZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3Rv
cmVkJ10sIGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3Bv
bnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7Ci0KLSAgICAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rp
b24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm93c1swXS5jb3VudCwg
MCk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCByZWplY3QgYSByZXBvcnQgd2l0aG91
dCBhIGJ1aWxkZXIgcGFzc3dvcmQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIo
ZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciByZXBvcnQgPSBbewot
ICAgICAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAotICAgICAgICAgICAgICAgICJi
dWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAotICAgICAgICAgICAgICAg
ICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICAgICAgICAgInRlc3RzIjog
e30sCi0gICAgICAgICAgICAgICAgInJldmlzaW9ucyI6IHt9fV07Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRl
eHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsncHJvY2Vzc2VkUnVucyddLCAwKTsKLQotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDApOwot
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHN0
b3JlIGEgcmVwb3J0IGZyb20gYSB2YWxpZCBidWlsZGVyIiwgZnVuY3Rpb24gKCkgewotICAgICAg
ICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNl
VGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNP
Ti5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNlKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25z
ZVRleHQpWydwcm9jZXNzZWRSdW5zJ10sIDEpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0
Y2hBbGwoJ1NFTEVDVCBDT1VOVCgqKSBmcm9tIHJlcG9ydHMnLCBbXSwgZnVuY3Rpb24gKHJvd3Mp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvd3NbMF0uY291bnQsIDEpOwot
ICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHRy
ZWF0IHRoZSBzbGF2ZSBwYXNzd29yZCBhcyB0aGUgYnVpbGRlciBwYXNzd29yZCBpZiB0aGVyZSBp
cyBubyBtYXRjaGluZyBzbGF2ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihl
bXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZW1wdHlSZXBvcnRbMF1bJ3Ns
YXZlUGFzc3dvcmQnXSA9IGVtcHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQnXTsKLSAgICAg
ICAgICAgIGRlbGV0ZSBlbXB0eVJlcG9ydFswXVsnYnVpbGRlclBhc3N3b3JkJ107Ci0gICAgICAg
ICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydidWlsZGVyUGFzc3dvcmQn
XSA9IGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBhc3N3b3JkJ107Ci0gICAgICAgICAgICAgICAgZGVs
ZXRlIGVtcHR5UmVwb3J0WzBdWydzbGF2ZVBhc3N3b3JkJ107Ci0KLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwg
J09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2Uu
cmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJvY2Vzc2Vk
UnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgQ09V
TlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSBhIHJlcG9ydCBmcm9t
IGEgdmFsaWQgc2xhdmUiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZFNsYXZlKGVtcHR5U2xh
dmVSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCBlbXB0eVNsYXZlUmVwb3J0LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0
dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVz
cG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3JlZCddLCBmYWxzZSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsncHJv
Y2Vzc2VkUnVucyddLCAxKTsKLSAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxF
Q1QgQ09VTlQoKikgZnJvbSByZXBvcnRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb3dzWzBdLmNvdW50LCAxKTsKLSAgICAgICAgICAg
ICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBzdG9yZSB0aGUgYnVp
bGRlciBuYW1lIGJ1dCBub3QgdGhlIGJ1aWxkZXIgcGFzc3dvcmQiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
IHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUIHJlcG9ydF9jb250
ZW50IGZyb20gcmVwb3J0cycsIFtdLCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAg
ICAgICB2YXIgc3RvcmVkQ29udGVudCA9IEpTT04ucGFyc2Uocm93c1swXS5yZXBvcnRfY29udGVu
dCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzdG9yZWRDb250ZW50WydidWls
ZGVyTmFtZSddLCBlbXB0eVJlcG9ydFswXVsnYnVpbGRlck5hbWUnXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydCghKCdidWlsZGVyUGFzc3dvcmQnIGluIHN0b3JlZENvbnRlbnQpKTsKLSAg
ICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBhZGQg
YSBzbGF2ZSBpZiB0aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQgd2FzIGF1dGhlbnRpY2F0
ZWQgYnkgYSBidWlsZGVyIiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5
UmVwb3J0LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1
ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRfc2xhdmVzJywgW10sIGZ1bmN0aW9u
IChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzWzBd
LnNsYXZlX25hbWUsIGVtcHR5UmVwb3J0WzBdLnNsYXZlTmFtZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIGEgYnVpbGRlciBpZiB0
aGVyZSBpc24ndCBvbmUgYW5kIHRoZSByZXBvcnQgd2FzIGF1dGhlbnRpY2F0ZWQgYnkgYSBzbGF2
ZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkU2xhdmUoZW1wdHlTbGF2ZVJlcG9ydCwgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5U2xh
dmVSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIHF1ZXJ5QW5k
RmV0Y2hBbGwoJ1NFTEVDVCAqIGZyb20gYnVpbGRlcnMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uYnVpbGRlcl9u
YW1lLCBlbXB0eVJlcG9ydFswXS5idWlsZGVyTmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
dGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIGEgYnVpbGQiLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogZnJv
bSBidWlsZHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0uYnVpbGRfbnVtYmVyLCAxMjMpOwotICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCB0aGUgcGxhdGZv
cm0iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9y
dCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnU0VMRUNUICogZnJvbSBwbGF0Zm9ybXMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3NbMF0ucGxhdGZvcm1fbmFtZSwg
J01vdW50YWluIExpb24nKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
Ci0gICAgaXQoInNob3VsZCBhZGQgcmVwb3NpdG9yaWVzIGFuZCBidWlsZCByZXZpc2lvbnMiLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJlcG9ydCwgZnVu
Y3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VM
RUNUICogRlJPTSByZXBvc2l0b3JpZXMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyb3dzLm1hcChmdW5jdGlvbiAocm93KSB7IHJl
dHVybiByb3dbJ3JlcG9zaXRvcnlfbmFtZSddOyB9KSwgWydPUyBYJywgJ1dlYktpdCddKTsKLQot
ICAgICAgICAgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307Ci0gICAgICAg
ICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAocm93KSB7IHJlcG9zaXRvcnlJZFRv
TmFtZVtyb3dbJ3JlcG9zaXRvcnlfaWQnXV0gPSByb3dbJ3JlcG9zaXRvcnlfbmFtZSddOyB9KTsK
LSAgICAgICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBidWls
ZF9jb21taXRzLCBjb21taXRzIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1pdF9pZCcsIFtdLCBm
dW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlO
YW1lVG9SZXZpc2lvblJvdyA9IHt9OwotICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JF
YWNoKGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0
b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVwb3NpdG9yeUlkVG9OYW1lW3Jvd1snY29tbWl0X3JlcG9z
aXRvcnknXV1dID0gcm93OwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydP
UyBYJ11bJ2NvbW1pdF9yZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJL
aXQnXVsnY29tbWl0X3JldmlzaW9uJ10sICcxNDE5NzcnKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydj
b21taXRfdGltZSddLnRvU3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
IERhdGUoJzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQot
ICAgIGl0KCJzaG91bGQgbm90IGNyZWF0ZSBhIGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhlIHNhbWUg
YnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRpbWVzIGFyZSBjbG9zZSIsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgYWRkQnVpbGRlcihlbXB0eVJlcG9ydCwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ZW1wdHlSZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwotICAg
ICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlvbiAo
cmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0KLSAgICAgICAgICAgICAgICBl
bXB0eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoyMjowMyc7Ci0gICAg
ICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIGVtcHR5UmVwb3J0LCBmdW5jdGlv
biAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNl
LnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLQotICAgICAg
ICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIGJ1aWxkcycsIFtd
LCBmdW5jdGlvbiAocm93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJvd3MubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsK
LSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGNyZWF0ZSBkaXN0
aW5jdCBidWlsZHMgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUg
ZmFyIGFwYXJ0IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyKGVtcHR5UmVwb3J0
LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBlbXB0eVJlcG9ydFswXVsnYnVpbGRUaW1lJ10g
PSAnMjAxMy0wMi0yOFQxMDoxMjowMyc7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cydd
LCAnT0snKTsKLQotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gYnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyb3dzLmxlbmd0aCwgMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgZW1wdHlS
ZXBvcnRbMF1bJ2J1aWxkVGltZSddID0gJzIwMTQtMDEtMjBUMjI6MjM6MzQnOwotICAgICAgICAg
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1wdHlSZXBvcnQsIGZ1bmN0aW9u
IChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0K
LSAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
YnVpbGRzJywgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIHJlamVjdCBhIHJlcG9ydCB3aXRo
IG1pc21hdGNoaW5nIHJldmlzaW9uIGluZm8iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1
aWxkZXIoZW1wdHlSZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGVtcHR5UmVwb3J0
WzBdWydyZXZpc2lvbnMnXSA9IHsKLSAgICAgICAgICAgICAgICAiV2ViS2l0IjogewotICAgICAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKLSAgICAgICAgICAgICAgICAgICAg
InRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjk2WiIKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgZW1w
dHlSZXBvcnQsIGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsK
LQotICAgICAgICAgICAgICAgIGVtcHR5UmVwb3J0WzBdWydyZXZpc2lvbnMnXSA9IHsKLSAgICAg
ICAgICAgICAgICAgICAgIldlYktpdCI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIxNTAwMDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIy
MDEzLTA1LTEzVDEwOjUwOjI5LjZaIgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBlbXB0eVJl
cG9ydCwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwg
J09LJyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydChyZXNwb25zZS5yZXNwb25zZVRleHQu
aW5kZXhPZignMTQxOTc3JykgPj0gMCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydChyZXNw
b25zZS5yZXNwb25zZVRleHQuaW5kZXhPZignMTUwMDAwJykgPj0gMCk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2Zh
aWx1cmVTdG9yZWQnXSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChK
U09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ3Byb2Nlc3NlZFJ1bnMnXSwgMCk7Ci0g
ICAgICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIHZhciByZXBvcnRXaXRo
VHdvTGV2ZWxzT2ZBZ2dyZWdhdGlvbnMgPSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIz
IiwKLSAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0g
ICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExp
b24iLAotICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAiRHVtbXlQYWdlTG9hZGluZyI6
IHsKLSAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImFnZ3JlZ2F0b3JzIiA6
IFsiQXJpdGhtZXRpYyJdLCAiY3VycmVudCI6IFszMDAsIDMxMCwgMzIwLCAzMzBdIH19LAotICAg
ICAgICAgICAgICAgICJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgImFwcGxlLmNvbSI6
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVu
dCI6IFs1MDAsIDUxMCwgNTIwLCA1MzBdIH19LAotICAgICAgICAgICAgICAgICAgICAgICAgInVy
bCI6ICJodHRwOi8vd3d3LmFwcGxlLmNvbSIKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgIndlYmtpdC5vcmciOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
bWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTAwLCAxMTAsIDEyMCwgMTMwXSB9fSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovL3d3dy53ZWJraXQub3JnIgot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICJEdW1teUJlbmNobWFyayI6IHsKLSAgICAgICAgICAgICAgICAibWV0cmlj
cyI6IHsiVGltZSI6IFsiQXJpdGhtZXRpYyJdfSwKLSAgICAgICAgICAgICAgICAidGVzdHMiOiB7
Ci0gICAgICAgICAgICAgICAgICAgICJET00iOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAi
bWV0cmljcyI6IHsiVGltZSI6IFsiR2VvbWV0cmljIiwgIkFyaXRobWV0aWMiXX0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAidGVzdHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ik1vZGlmeU5vZGVzIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFtbMTEsIDEy
LCAxMywgMTQsIDE1XSwgWzE2LCAxNywgMTgsIDE5LCAyMF0sIFsyMSwgMjIsIDIzLCAyNCwgMjVd
XSB9fX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYXZlcnNlTm9kZXMiOiB7Im1l
dHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogW1szMSwgMzIsIDMzLCAzNCwgMzVdLCBbMzYs
IDM3LCAzOCwgMzksIDQwXSwgWzQxLCA0MiwgNDMsIDQ0LCA0NV1dIH19fQotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAg
ICAiQ1NTIjogeyJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVudCI6IFtbMTAxLCAxMDIsIDEw
MywgMTA0LCAxMDVdLCBbMTA2LCAxMDcsIDEwOCwgMTA5LCAxMTBdLCBbMTExLCAxMTIsIDExMywg
MTE0LCAxMTVdXSB9fX0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0gICAgICAgICJyZXZpc2lvbnMiOiB7Ci0gICAgICAgICAgICAiT1MgWCI6IHsKLSAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICJXZWJLaXQiOiB7Ci0gICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3
NyIsCi0gICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjla
IgotICAgICAgICAgICAgfQotICAgICAgICB9fV07Ci0KLSAgICBmdW5jdGlvbiBhZGRCdWlsZGVy
QW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydCwgY2FsbGJhY2spIHsKLSAgICAgICAgYWRkQnVpbGRl
cihyZXBvcnQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lO
U0VSVCBJTlRPIGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5p
dGlvbikgdmFsdWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgICAgICBbJ0FyaXRobWV0aWMnLCAn
dmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSArIGI7IH0pIC8gdmFsdWVz
Lmxlbmd0aCddLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnSU5TRVJUIElOVE8gYWdncmVnYXRvcnMgKGFnZ3JlZ2F0b3JfbmFtZSwgYWdncmVnYXRvcl9k
ZWZpbml0aW9uKSB2YWx1ZXMgKCQxLCAkMiknLAotICAgICAgICAgICAgICAgICAgICBbJ0dlb21l
dHJpYycsICdNYXRoLnBvdyh2YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBh
ICogYjsgfSksIDEgLyB2YWx1ZXMubGVuZ3RoKSddLCBjYWxsYmFjayk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmV0Y2hSdW5Gb3JNZXRyaWMo
dGVzdE5hbWUsIG1ldHJpY05hbWUsY2FsbGJhY2spIHsKLSAgICAgICAgcXVlcnlBbmRGZXRjaEFs
bCgnU0VMRUNUICogRlJPTSB0ZXN0X3J1bnMgV0hFUkUgcnVuX2NvbmZpZyBJTicKLSAgICAgICAg
ICAgICsgJyhTRUxFQ1QgY29uZmlnX2lkIEZST00gdGVzdF9jb25maWd1cmF0aW9ucywgdGVzdF9t
ZXRyaWNzLCB0ZXN0cyBXSEVSRSBjb25maWdfbWV0cmljID0gbWV0cmljX2lkIEFORCBtZXRyaWNf
dGVzdCA9IHRlc3RfaWQgQU5EJwotICAgICAgICAgICAgKyAndGVzdF9uYW1lID0gJDEgQU5EIG1l
dHJpY19uYW1lID0gJDIpJywKLSAgICAgICAgICAgIFsnQXJpdGhtZXRpYycsICd2YWx1ZXMucmVk
dWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhICsgYjsgfSkgLyB2YWx1ZXMubGVuZ3RoJ10s
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ0lOU0VSVCBJTlRP
IGFnZ3JlZ2F0b3JzIChhZ2dyZWdhdG9yX25hbWUsIGFnZ3JlZ2F0b3JfZGVmaW5pdGlvbikgdmFs
dWVzICgkMSwgJDIpJywKLSAgICAgICAgICAgICAgICBbJ0dlb21ldHJpYycsICdNYXRoLnBvdyh2
YWx1ZXMucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhICogYjsgfSksIDEgLyB2YWx1
ZXMubGVuZ3RoKSddLCBjYWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGl0KCJz
aG91bGQgbm90IHJlamVjdCB3aGVuIGFnZ3JlZ2F0b3JzIGFyZSBtaXNzaW5nIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyKHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9u
cywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJl
cG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VU
ZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09O
LnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwot
ICAgICAgICAgICAgICAgIG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
KTsKLSAgICB9KTsKLQotICAgIGl0KCJzaG91bGQgYWRkIHRlc3RzIiwgZnVuY3Rpb24gKCkgewot
ICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29MZXZlbHNP
ZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0Nv
ZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9u
c2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10sICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQn
XSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZS
T00gdGVzdHMnLCBbXSwgZnVuY3Rpb24gKHJvd3MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyb3dzLm1hcChmdW5jdGlvbiAocm93KSB7IHJldHVybiByb3dbJ3Rlc3Rf
bmFtZSddOyB9KS5zb3J0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICBbJ0NTUycsICdET00n
LCAnRHVtbXlCZW5jaG1hcmsnLCAnRHVtbXlQYWdlTG9hZGluZycsICdNb2RpZnlOb2RlcycsICdU
cmF2ZXJzZU5vZGVzJywgJ2FwcGxlLmNvbScsICd3ZWJraXQub3JnJ10pOwotICAgICAgICAgICAg
ICAgICAgICBlbXB0eVJlcG9ydFswXS50ZXN0cyA9IHt9OwotICAgICAgICAgICAgICAgICAgICBu
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBpdCgic2hvdWxkIGFkZCBtZXRyaWNzIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29M
ZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNU
ICogRlJPTSB0ZXN0cywgdGVzdF9tZXRyaWNzIExFRlQgSk9JTiBhZ2dyZWdhdG9ycyBPTiBtZXRy
aWNfYWdncmVnYXRvciA9IGFnZ3JlZ2F0b3JfaWQgV0hFUkUgbWV0cmljX3Rlc3QgPSB0ZXN0X2lk
JywKLSAgICAgICAgICAgICAgICAgICAgW10sIGZ1bmN0aW9uIChyb3dzKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciB0ZXN0TmFtZVRvTWV0cmljcyA9IHt9OwotICAgICAgICAgICAgICAgICAg
ICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdykgewotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCEocm93Wyd0ZXN0X25hbWUnXSBpbiB0ZXN0TmFtZVRvTWV0cmljcykpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdE5hbWVUb01ldHJpY3Nbcm93Wyd0ZXN0X25hbWUnXV0gPSBu
ZXcgQXJyYXk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0TmFtZVRvTWV0cmljc1tyb3db
J3Rlc3RfbmFtZSddXS5wdXNoKFtyb3dbJ21ldHJpY19uYW1lJ10sIHJvd1snYWdncmVnYXRvcl9u
YW1lJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0NTUyddLCBbWydUaW1lJywgbnVsbF1d
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmlj
c1snRE9NJ10uc29ydCgpLCBbWydUaW1lJywgJ0FyaXRobWV0aWMnXSwgWydUaW1lJywgJ0dlb21l
dHJpYyddXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVU
b01ldHJpY3NbJ0R1bW15QmVuY2htYXJrJ10sIFtbJ1RpbWUnLCAnQXJpdGhtZXRpYyddXSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3NbJ0R1
bW15UGFnZUxvYWRpbmcnXSwgW1snVGltZScsICdBcml0aG1ldGljJ11dKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snTW9kaWZ5Tm9kZXMn
XSwgW1snVGltZScsIG51bGxdXSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodGVzdE5hbWVUb01ldHJpY3NbJ1RyYXZlcnNlTm9kZXMnXSwgW1snVGltZScsIG51bGxdXSk7
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGVzdE5hbWVUb01ldHJpY3Nb
J2FwcGxlLmNvbSddLCBbWydUaW1lJywgbnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbCh0ZXN0TmFtZVRvTWV0cmljc1snd2Via2l0Lm9yZyddLCBbWydUaW1lJywg
bnVsbF1dKTsKLSAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZnVu
Y3Rpb24gZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYyh0ZXN0TmFtZSwgbWV0cmljTmFt
ZSwgY2FsbGJhY2spIHsKLSAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00g
dGVzdHMsIHRlc3RfbWV0cmljcywgdGVzdF9jb25maWd1cmF0aW9ucywgdGVzdF9ydW5zIFdIRVJF
IG1ldHJpY190ZXN0ID0gdGVzdF9pZCBBTkQgY29uZmlnX21ldHJpYyA9IG1ldHJpY19pZCcKLSAg
ICAgICAgICAgICsgJyBBTkQgcnVuX2NvbmZpZyA9IGNvbmZpZ19pZCBBTkQgdGVzdF9uYW1lID0g
JDEgQU5EIG1ldHJpY19uYW1lID0gJDInLCBbdGVzdE5hbWUsIG1ldHJpY05hbWVdLCBmdW5jdGlv
biAocnVuUm93cykgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICAgICAgdmFyIHJ1biA9IHJ1blJvd3NbMF07Ci0gICAgICAgICAg
ICAgICAgcXVlcnlBbmRGZXRjaEFsbCgnU0VMRUNUICogRlJPTSBydW5faXRlcmF0aW9ucyBXSEVS
RSBpdGVyYXRpb25fcnVuID0gJDEgT1JERVIgQlkgaXRlcmF0aW9uX29yZGVyJywgW3J1blsncnVu
X2lkJ11dLCBmdW5jdGlvbiAoaXRlcmF0aW9uUm93cykgewotICAgICAgICAgICAgICAgICAgICBj
YWxsYmFjayhydW4sIGl0ZXJhdGlvblJvd3MpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCBzdG9yZSBydW4gdmFsdWVzIiwgZnVu
Y3Rpb24gKCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdp
dGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0
aW9uc0Zvck1ldHJpYygnYXBwbGUuY29tJywgJ1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRp
b25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaXRlcmF0aW9ucywgWwotICAgICAg
ICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6
IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MDAsIGl0ZXJhdGlv
bl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6IG51bGws
IGl0ZXJhdGlvbl92YWx1ZTogNTEwLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9v
cmRlcjogMiwgaXRlcmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUyMCwgaXRl
cmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0
ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDMsIGl0ZXJhdGlvbl9ncm91cDog
bnVsbCwgaXRlcmF0aW9uX3ZhbHVlOiA1MzAsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxs
fV0pOwotICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gNTAwICsgNTEwICsgNTIwICsgNTMw
OwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fbWVhbl9jYWNoZSdd
LCBzdW0gLyBpdGVyYXRpb25zLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5bJ3J1bl9zdW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2FjaGUnXSwgNTAwICogNTAwICsgNTEwICog
NTEwICsgNTIwICogNTIwICsgNTMwICogNTMwKTsKLQotICAgICAgICAgICAgICAgICAgICBmZXRj
aFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCdDU1MnLCAnVGltZScsIGZ1bmN0aW9uIChydW4s
IGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsn
cnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJh
dGlvbnMsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVu
SWQsIGl0ZXJhdGlvbl9vcmRlcjogMCwgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFs
dWU6IDEwMSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBp
dGVyYXRpb25fZ3JvdXA6IDAsIGl0ZXJhdGlvbl92YWx1ZTogMTAyLCBpdGVyYXRpb25fcmVsYXRp
dmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9y
dW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91cDogMCwgaXRlcmF0
aW9uX3ZhbHVlOiAxMDMsIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRl
cjogMywgaXRlcmF0aW9uX2dyb3VwOiAwLCBpdGVyYXRpb25fdmFsdWU6IDEwNCwgaXRlcmF0aW9u
X3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVy
YXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiA0LCBpdGVyYXRpb25fZ3JvdXA6IDAs
IGl0ZXJhdGlvbl92YWx1ZTogMTA1LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRp
b25fb3JkZXI6IDUsIGl0ZXJhdGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDYsIGl0
ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogNiwgaXRlcmF0aW9uX2dy
b3VwOiAxLCBpdGVyYXRpb25fdmFsdWU6IDEwNywgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51
bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwg
aXRlcmF0aW9uX29yZGVyOiA3LCBpdGVyYXRpb25fZ3JvdXA6IDEsIGl0ZXJhdGlvbl92YWx1ZTog
MTA4LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogbnVsbH0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDgsIGl0ZXJh
dGlvbl9ncm91cDogMSwgaXRlcmF0aW9uX3ZhbHVlOiAxMDksIGl0ZXJhdGlvbl9yZWxhdGl2ZV90
aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjog
cnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogOSwgaXRlcmF0aW9uX2dyb3VwOiAxLCBpdGVyYXRpb25f
dmFsdWU6IDExMCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAx
MCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMSwgaXRlcmF0aW9uX3Jl
bGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRp
b25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMSwgaXRlcmF0aW9uX2dyb3VwOiAyLCBp
dGVyYXRpb25fdmFsdWU6IDExMiwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9u
X29yZGVyOiAxMiwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExMywgaXRl
cmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxMywgaXRlcmF0aW9uX2dy
b3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6IDExNCwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51
bGx9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwg
aXRlcmF0aW9uX29yZGVyOiAxNCwgaXRlcmF0aW9uX2dyb3VwOiAyLCBpdGVyYXRpb25fdmFsdWU6
IDExNSwgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6IG51bGx9XSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgc3VtID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzcXVhcmVT
dW0gPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgdmFsdWUgPSAxMDE7IHZh
bHVlIDw9IDExNTsgKyt2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bSAr
PSB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW0gKz0gdmFsdWUg
KiB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlvbnMu
bGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9z
dW1fY2FjaGUnXSwgc3VtKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5bJ3J1bl9zcXVhcmVfc3VtX2NhY2hlJ10sIHNxdWFyZVN1bSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAg
aXQoInNob3VsZCBzdG9yZSBhZ2dyZWdhdGVkIHJ1biB2YWx1ZXMiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFR3b0xldmVsc09m
QWdncmVnYXRpb25zLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aFR3b0xldmVsc09mQWdncmVnYXRpb25zLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmlj
KCdEdW1teVBhZ2VMb2FkaW5nJywgJ1RpbWUnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBydW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlcyA9IFsoNTAwICsgMTAwKSAvIDIsICg1MTAg
KyAxMTApIC8gMiwgKDUyMCArIDEyMCkgLyAyLCAoNTMwICsgMTMwKSAvIDJdOwotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIFsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAwLCBpdGVy
YXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMF0sIGl0
ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtp
dGVyYXRpb25fcnVuOiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAxLCBpdGVyYXRpb25fZ3JvdXA6
IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMV0sIGl0ZXJhdGlvbl9yZWxh
dGl2ZV90aW1lOiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVu
OiBydW5JZCwgaXRlcmF0aW9uX29yZGVyOiAyLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJh
dGlvbl92YWx1ZTogZXhwZWN0ZWRWYWx1ZXNbMl0sIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBu
dWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVyYXRpb25fcnVuOiBydW5JZCwgaXRl
cmF0aW9uX29yZGVyOiAzLCBpdGVyYXRpb25fZ3JvdXA6IG51bGwsIGl0ZXJhdGlvbl92YWx1ZTog
ZXhwZWN0ZWRWYWx1ZXNbM10sIGl0ZXJhdGlvbl9yZWxhdGl2ZV90aW1lOiBudWxsfV0pOwotICAg
ICAgICAgICAgICAgICAgICB2YXIgc3VtID0gZXhwZWN0ZWRWYWx1ZXMucmVkdWNlKGZ1bmN0aW9u
IChzdW0sIHZhbHVlKSB7IHJldHVybiBzdW0gKyB2YWx1ZTsgfSwgMCk7Ci0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJhdGlv
bnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3N1
bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydy
dW5fc3F1YXJlX3N1bV9jYWNoZSddLCBleHBlY3RlZFZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKHN1
bSwgdmFsdWUpIHsgcmV0dXJuIHN1bSArIHZhbHVlICogdmFsdWU7IH0sIDApKTsKLSAgICAgICAg
ICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRv
IGNvbXB1dGUgdGhlIGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0ZWQgdmFsdWVzIiwgZnVuY3Rpb24g
KCkgewotICAgICAgICBhZGRCdWlsZGVyQW5kTWVhbkFnZ3JlZ2F0b3JzKHJlcG9ydFdpdGhUd29M
ZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhUd29MZXZlbHNPZkFnZ3JlZ2F0aW9ucywgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zv
ck1ldHJpYygnRHVtbXlCZW5jaG1hcmsnLCAnVGltZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlv
bnMpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkSXRlcmF0aW9ucyA9IFtdOwot
ICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gMDsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IHNxdWFyZVN1bSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gaSArIDE7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgRE9NTWVhbiA9ICgoMTAgKyB2YWx1ZSkgKyAoMzAg
KyB2YWx1ZSkpIC8gMjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVl
ID0gKERPTU1lYW4gKyAxMDAgKyB2YWx1ZSkgLyAyOwotICAgICAgICAgICAgICAgICAgICAgICAg
c3VtICs9IGV4cGVjdGVkVmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcXVhcmVTdW0g
Kz0gZXhwZWN0ZWRWYWx1ZSAqIGV4cGVjdGVkVmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBleHBlY3RlZEl0ZXJhdGlvbnMucHVzaCh7aXRlcmF0aW9uX3J1bjogcnVuWydydW5faWQnXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25fb3JkZXI6IGksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX2dyb3VwOiBNYXRoLmZsb29yKGkgLyA1KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25fdmFsdWU6IGV4cGVjdGVkVmFs
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uX3JlbGF0aXZlX3RpbWU6
IG51bGx9KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGl0ZXJhdGlvbnMsIGV4cGVjdGVkSXRlcmF0aW9ucyk7Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9tZWFuX2NhY2hlJ10sIHN1bSAvIGl0ZXJh
dGlvbnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVu
X3N1bV9jYWNoZSddLCBzdW0pOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCBzcXVhcmVTdW0pOwotICAgICAgICAgICAgICAgICAg
ICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgcmVwb3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSA9
IFt7Ci0gICAgICAgICJidWlsZE51bWJlciI6ICIxMjMiLAotICAgICAgICAiYnVpbGRUaW1lIjog
IjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKLSAgICAgICAgImJ1aWxkZXJOYW1lIjogInNv
bWVCdWlsZGVyIiwKLSAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAot
ICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCi0gICAgICAgICJ0ZXN0cyI6IHsK
LSAgICAgICAgICAgICJTdWl0ZTEiOiB7Ci0gICAgICAgICAgICAgICAgInRlc3RzIjogewotICAg
ICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0
cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMSwgMiwgMywgNCwgNV0gfX0KLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgInRlc3QyIjogewotICAgICAgICAg
ICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzYsIDcsIDgs
IDksIDEwXSB9fQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICJTdWl0ZTIiOiB7Ci0gICAgICAgICAgICAgICAgInRl
c3RzIjogewotICAgICAgICAgICAgICAgICAgICAidGVzdDEiOiB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1cnJlbnQiOiBbMTEsIDEyLCAxMywgMTQs
IDE1XSB9fQotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAidGVz
dDIiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWV0cmljcyI6IHsiVGltZSI6IHsgImN1
cnJlbnQiOiBbMTYsIDE3LCAxOCwgMTksIDIwXSB9fQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9fV07Ci0KLSAgICBpdCgi
c2hvdWxkIGJlIGFibGUgdG8gYWRkIGEgcmVwb3J0IHdpdGggc2FtZSBzdWJ0ZXN0IG5hbWUiLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0
V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04o
Jy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2Rl
LCAyMDApOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIEpTT04u
cGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9IGNhdGNoIChl
cnJvcikgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFpbChlcnJvciwgbnVsbCwgcmVz
cG9uc2UucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnc3RhdHVzJ10s
ICdPSycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNl
LnJlc3BvbnNlVGV4dClbJ2ZhaWx1cmVTdG9yZWQnXSwgZmFsc2UpOwotICAgICAgICAgICAgICAg
IG5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLQot
ICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byByZXVzZSB0aGUgc2FtZSB0ZXN0IHJvd3MiLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRNZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0
aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUsIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAy
MDApOwotICAgICAgICAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVz
dHMnLCBbXSwgZnVuY3Rpb24gKHRlc3RSb3dzKSB7Ci0gICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RSb3dzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgICAgcmVwb3J0V2l0
aFNhbWVTdWJ0ZXN0TmFtZS5idWlsZE51bWJlciA9ICIxMjUiOwotICAgICAgICAgICAgICAgICAg
IHJlcG9ydFdpdGhTYW1lU3VidGVzdE5hbWUuYnVpbGRUaW1lID0gIjIwMTMtMDItMjhUMTI6MTc6
MjQuMSI7Ci0KLSAgICAgICAgICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVw
b3J0V2l0aFNhbWVTdWJ0ZXN0TmFtZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAg
ICAgICAgICAgICAgICAgICAgICBxdWVyeUFuZEZldGNoQWxsKCdTRUxFQ1QgKiBGUk9NIHRlc3Rz
JywgW10sIGZ1bmN0aW9uICh0ZXN0Um93cykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRlc3RSb3dzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgdmFyIHJlcG9ydFdpdGhTYW1lU2lu
Z2xlVmFsdWUgPSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1
aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVy
TmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKLSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAi
dGVzdHMiOiB7Ci0gICAgICAgICAgICAic3VpdGUiOiB7Ci0gICAgICAgICAgICAgICAgIm1ldHJp
Y3MiOiB7IkNvbWJpbmVkIjogWyJBcml0aG1ldGljIl19LAotICAgICAgICAgICAgICAgICJ0ZXN0
cyI6IHsKLSAgICAgICAgICAgICAgICAgICAgInRlc3QxIjogewotICAgICAgICAgICAgICAgICAg
ICAgICAgIm1ldHJpY3MiOiB7IkNvbWJpbmVkIjogeyAiY3VycmVudCI6IDMgfX0KLSAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgInRlc3QyIjogewotICAgICAgICAg
ICAgICAgICAgICAgICAgIm1ldHJpY3MiOiB7IkNvbWJpbmVkIjogeyAiY3VycmVudCI6IDcgfX0K
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0s
Ci0gICAgICAgIH19XTsKLQotICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBhZGQgYSByZXBvcnQg
d2l0aCBzaW5nbGUgdmFsdWUgcmVzdWx0cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVp
bGRlckFuZE1lYW5BZ2dyZWdhdG9ycyhyZXBvcnRXaXRoU2FtZVNpbmdsZVZhbHVlLCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNh
bWVTaW5nbGVWYWx1ZSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAgICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQp
OwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFzc2VydC5mYWlsKGVycm9yLCBudWxsLCByZXNwb25zZS5yZXNwb25zZVRleHQpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoSlNPTi5wYXJzZShyZXNw
b25zZS5yZXNwb25zZVRleHQpWydzdGF0dXMnXSwgJ09LJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KVsnZmFpbHVyZVN0b3Jl
ZCddLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hUZXN0UnVuSXRlcmF0aW9uc0Zvck1l
dHJpYygndGVzdDEnLCAnQ29tYmluZWQnLCBmdW5jdGlvbiAocnVuLCBpdGVyYXRpb25zKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9pdGVyYXRpb25fY291bnRf
Y2FjaGUnXSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9t
ZWFuX2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydy
dW5fc3VtX2NhY2hlJ10sIDMpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVu
WydydW5fc3F1YXJlX3N1bV9jYWNoZSddLCA5KTsKLSAgICAgICAgICAgICAgICAgICAgZmV0Y2hU
ZXN0UnVuSXRlcmF0aW9uc0Zvck1ldHJpYygnc3VpdGUnLCAnQ29tYmluZWQnLCBmdW5jdGlvbiAo
cnVuLCBpdGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuWydydW5faXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUnXSwgNSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3VtX2NhY2hlJ10sIDUpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX3NxdWFyZV9zdW1fY2Fj
aGUnXSwgMjUpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKLSAgICB9KTsKLQotICAgIHZhciByZXBvcnRXaXRoU2FtZVZhbHVlUGFpcnMg
PSBbewotICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIzIiwKLSAgICAgICAgImJ1aWxkVGltZSI6
ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCi0gICAgICAgICJidWlsZGVyTmFtZSI6ICJz
b21lQnVpbGRlciIsCi0gICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
LSAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAotICAgICAgICAidGVzdHMiOiB7
Ci0gICAgICAgICAgICAgICAgInRlc3QiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJtZXRyaWNz
IjogeyJGcmFtZVJhdGUiOiB7ICJjdXJyZW50IjogW1tbMCwgNF0sIFsxMDAsIDVdLCBbMjA1LCAz
XV1dIH19Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIH0sCi0gICAgICAgIH1dOwot
Ci0gICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIGFkZCBhIHJlcG9ydCB3aXRoIChyZWxhdGl2ZSB0
aW1lLCB2YWx1ZSkgcGFpcnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGFkZEJ1aWxkZXJBbmRN
ZWFuQWdncmVnYXRvcnMocmVwb3J0V2l0aFNhbWVWYWx1ZVBhaXJzLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBwb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFNhbWVWYWx1ZVBh
aXJzLCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2Uuc3RhdHVzQ29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgICAgICBKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAg
ICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmZh
aWwoZXJyb3IsIG51bGwsIHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChKU09OLnBhcnNlKHJlc3BvbnNlLnJlc3Bv
bnNlVGV4dClbJ3N0YXR1cyddLCAnT0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
SlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpWydmYWlsdXJlU3RvcmVkJ10sIGZhbHNl
KTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RSdW5JdGVyYXRpb25zRm9yTWV0cmljKCd0ZXN0
JywgJ0ZyYW1lUmF0ZScsIGZ1bmN0aW9uIChydW4sIGl0ZXJhdGlvbnMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX2l0ZXJhdGlvbl9jb3VudF9jYWNoZSddLCAz
KTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blsncnVuX21lYW5fY2FjaGUn
XSwgNCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5bJ3J1bl9zdW1fY2Fj
aGUnXSwgMTIpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuWydydW5fc3F1
YXJlX3N1bV9jYWNoZSddLCAxNiArIDI1ICsgOSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBy
dW5JZCA9IHJ1blsncnVuX2lkJ107Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoaXRlcmF0aW9ucywgWwotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46
IHJ1bklkLCBpdGVyYXRpb25fb3JkZXI6IDAsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0
aW9uX3ZhbHVlOiA0LCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMH0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7aXRlcmF0aW9uX3J1bjogcnVuSWQsIGl0ZXJhdGlvbl9vcmRlcjogMSwgaXRl
cmF0aW9uX2dyb3VwOiBudWxsLCBpdGVyYXRpb25fdmFsdWU6IDUsIGl0ZXJhdGlvbl9yZWxhdGl2
ZV90aW1lOiAxMDB9LAotICAgICAgICAgICAgICAgICAgICAgICAge2l0ZXJhdGlvbl9ydW46IHJ1
bklkLCBpdGVyYXRpb25fb3JkZXI6IDIsIGl0ZXJhdGlvbl9ncm91cDogbnVsbCwgaXRlcmF0aW9u
X3ZhbHVlOiAzLCBpdGVyYXRpb25fcmVsYXRpdmVfdGltZTogMjA1fV0pOwotICAgICAgICAgICAg
ICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICB2YXIgcmVwb3J0c1VwZGF0aW5nRGlmZmVy
ZW50VGVzdHMgPSBbCi0gICAgICAgIFt7Ci0gICAgICAgICAgICAiYnVpbGROdW1iZXIiOiAiMTIz
IiwKLSAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMyIsCi0gICAg
ICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAotICAgICAgICAgICAgImJ1aWxk
ZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAotICAgICAgICAgICAgInBsYXRmb3JtIjogIk1v
dW50YWluIExpb24iLAotICAgICAgICAgICAgInRlc3RzIjogeyJ0ZXN0MSI6IHsibWV0cmljcyI6
IHsiVGltZSI6IHsiY3VycmVudCI6IDN9fX19Ci0gICAgICAgIH1dLAotICAgICAgICBbewotICAg
ICAgICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCi0gICAgICAgICAgICAiYnVpbGRUaW1lIjog
IjIwMTMtMDItMjhUMTE6MzE6MjEiLAotICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVC
dWlsZGVyIiwKLSAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
LSAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKLSAgICAgICAgICAgICJ0
ZXN0cyI6IHsidGVzdDIiOiB7Im1ldHJpY3MiOiB7IlRpbWUiOiB7ImN1cnJlbnQiOiAzfX19fQot
ICAgICAgICB9XSwKLSAgICAgICAgW3sKLSAgICAgICAgICAgICJidWlsZE51bWJlciI6ICIxMjUi
LAotICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEyOjQ1OjM0IiwKLSAgICAg
ICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCi0gICAgICAgICAgICAiYnVpbGRl
clBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91
bnRhaW4gTGlvbiIsCi0gICAgICAgICAgICAidGVzdHMiOiB7InRlc3QxIjogeyJtZXRyaWNzIjog
eyJUaW1lIjogeyJjdXJyZW50IjogM319fX0KLSAgICAgICAgfV0sCi0gICAgXTsKLQotICAgIGZ1
bmN0aW9uIGZldGNoVGVzdENvbmZpZyh0ZXN0TmFtZSwgbWV0cmljTmFtZSwgY2FsbGJhY2spIHsK
LSAgICAgICAgIHF1ZXJ5QW5kRmV0Y2hBbGwoJ1NFTEVDVCAqIEZST00gdGVzdHMsIHRlc3RfbWV0
cmljcywgdGVzdF9jb25maWd1cmF0aW9ucyBXSEVSRSB0ZXN0X2lkID0gbWV0cmljX3Rlc3QgQU5E
IG1ldHJpY19pZCA9IGNvbmZpZ19tZXRyaWMnCi0gICAgICAgICAgICArICcgQU5EIHRlc3RfbmFt
ZSA9ICQxIEFORCBtZXRyaWNfbmFtZSA9ICQyJywgW3Rlc3ROYW1lLCBtZXRyaWNOYW1lXSwgZnVu
Y3Rpb24gKHJ1blJvd3MpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJ1blJvd3NbMF0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgaXQoInNob3VsZCB1cGRhdGUgdGhlIGxhc3QgbW9kaWZp
ZWQgZGF0ZSBvZiB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggbmV3IHJ1bnMiLCBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIGFkZEJ1aWxkZXIocmVwb3J0c1VwZGF0aW5nRGlmZmVyZW50VGVzdHNbMF0s
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBv
cnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlLnN0YXR1c0NvZGUsIDIwMCk7Ci0gICAg
ICAgICAgICAgICAgZmV0Y2hUZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKG9y
aWdpbmFsQ29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvc3RKU09OKCcvYXBpL3JlcG9y
dC8nLCByZXBvcnRzVXBkYXRpbmdEaWZmZXJlbnRUZXN0c1syXSwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVz
Q29kZSwgMjAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVGVzdENvbmZpZygndGVz
dDEnLCAnVGltZScsIGZ1bmN0aW9uIChjb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoK29yaWdpbmFsQ29uZmlnWydjb25maWdfcnVuc19sYXN0X21v
ZGlmaWVkJ10sICtjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZpZWQnXSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0gICAgaXQoInNob3VsZCB1cGRh
dGUgdGhlIGxhc3QgbW9kaWZpZWQgZGF0ZSBvZiB1bnJlbGF0ZWQgdGVzdCBjb25maWd1cmF0aW9u
cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYWRkQnVpbGRlcihyZXBvcnRzVXBkYXRpbmdEaWZm
ZXJlbnRUZXN0c1swXSwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzBdLCBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2Uuc3RhdHVzQ29k
ZSwgMjAwKTsKLSAgICAgICAgICAgICAgICBmZXRjaFRlc3RDb25maWcoJ3Rlc3QxJywgJ1RpbWUn
LCBmdW5jdGlvbiAob3JpZ2luYWxDb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAgcG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydHNVcGRhdGluZ0RpZmZlcmVudFRlc3RzWzFdLCBmdW5j
dGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZS5zdGF0dXNDb2RlLCAyMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hU
ZXN0Q29uZmlnKCd0ZXN0MScsICdUaW1lJywgZnVuY3Rpb24gKGNvbmZpZykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrb3JpZ2luYWxDb25maWdbJ2NvbmZpZ19y
dW5zX2xhc3RfbW9kaWZpZWQnXSwgK2NvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCdd
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFzZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMJKHJldmlz
aW9uIDE5OTEyMykKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFz
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAotdmFy
IHBnID0gcmVxdWlyZSgncGcnKTsKLXZhciBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZy5qcycp
OworY29uc3QgcGcgPSByZXF1aXJlKCdwZycpOworY29uc3QgY29uZmlnID0gcmVxdWlyZSgnLi9j
b25maWcuanMnKTsKIAogY2xhc3MgRGF0YWJhc2UgewogICAgIGNvbnN0cnVjdG9yKGRhdGFiYXNl
TmFtZSkKQEAgLTIzLDExICsyMyw4IEBAIGNsYXNzIERhdGFiYXNlIHsKICAgICAgICAgbGV0IGNv
bm5lY3Rpb25TdHJpbmcgPSBgdGNwOi8vJHt1c2VybmFtZX06JHtwYXNzd29yZH1AJHtob3N0fTok
e3BvcnR9LyR7dGhpcy5fZGF0YWJhc2VOYW1lfWA7CiAKICAgICAgICAgbGV0IGNsaWVudCA9IG5l
dyBwZy5DbGllbnQoY29ubmVjdGlvblN0cmluZyk7Ci0gICAgICAgIGlmICghb3B0aW9ucyB8fCAh
b3B0aW9ucy5rZWVwQWxpdmUpIHsKLSAgICAgICAgICAgIGNsaWVudC5vbignZHJhaW4nLCBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgY2xpZW50LmVuZCgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmtlZXBBbGl2ZSkK
KyAgICAgICAgICAgIGNsaWVudC5vbignZHJhaW4nLCB0aGlzLmRpc2Nvbm5lY3QuYmluZCh0aGlz
KSk7CiAKICAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50OwogCkBAIC02Miw2ICs1OSw1NiBA
QCBjbGFzcyBEYXRhYmFzZSB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHNlbGVjdEFsbCh0
YWJsZSwgY29sdW1uVG9Tb3J0QnkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RS
b3dzKHRhYmxlLCB7fSwge3NvcnRCeTogY29sdW1uVG9Tb3J0Qnl9KTsKKyAgICB9CisKKyAgICBz
ZWxlY3RGaXJzdFJvdyh0YWJsZSwgcGFyYW1zLCBjb2x1bW5Ub1NvcnRCeSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLnNlbGVjdFJvd3ModGFibGUsIHBhcmFtcywge3NvcnRCeTogY29sdW1u
VG9Tb3J0QnksIGxpbWl0OiAxfSkudGhlbihmdW5jdGlvbiAocm93cykgeworICAgICAgICAgICAg
cmV0dXJuIHJvd3NbMF07CisgICAgICAgIH0pOworICAgIH0KKworICAgIHNlbGVjdFJvd3ModGFi
bGUsIHBhcmFtcywgb3B0aW9ucykKKyAgICB7CisgICAgICAgIGxldCBwcmVmaXggPSAnJzsKKyAg
ICAgICAgaWYgKHRhYmxlIGluIHRhYmxlVG9QcmVmaXhNYXApCisgICAgICAgICAgICBwcmVmaXgg
PSB0YWJsZVRvUHJlZml4TWFwW3RhYmxlXSArICdfJzsKKworICAgICAgICBvcHRpb25zID0gb3B0
aW9ucyB8fCB7fTsKKworICAgICAgICBsZXQgY29sdW1uTmFtZXMgPSBbXTsKKyAgICAgICAgbGV0
IHBsYWNlaG9sZGVycyA9IFtdOworICAgICAgICBsZXQgdmFsdWVzID0gW107CisgICAgICAgIGZv
ciAobGV0IG5hbWUgaW4gcGFyYW1zKSB7CisgICAgICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKHBy
ZWZpeCArIG5hbWUpOworICAgICAgICAgICAgcGxhY2Vob2xkZXJzLnB1c2goJyQnICsgY29sdW1u
TmFtZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhbHVlcy5wdXNoKHBhcmFtc1tuYW1lXSk7Cisg
ICAgICAgIH0KKworICAgICAgICBsZXQgcXVhbGlmaWVyID0gJyc7CisgICAgICAgIGlmIChjb2x1
bW5OYW1lcy5sZW5ndGgpCisgICAgICAgICAgICBxdWFsaWZpZXIgKz0gYCBXSEVSRSAoJHtjb2x1
bW5OYW1lcy5qb2luKCcsJyl9KSA9ICgke3BsYWNlaG9sZGVycy5qb2luKCcsJyl9KWA7CisgICAg
ICAgIHF1YWxpZmllciArPSBgIE9SREVSIEJZICR7cHJlZml4fSR7b3B0aW9ucy5zb3J0QnkgfHwg
J2lkJ31gOworICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmxpbWl0KQorICAgICAgICAg
ICAgcXVhbGlmaWVyICs9IGAgTElNSVQgJHtvcHRpb25zLmxpbWl0fWA7CisKKyAgICAgICAgcmV0
dXJuIHRoaXMucXVlcnkoYFNFTEVDVCAqIEZST00gJHt0YWJsZX0ke3F1YWxpZmllcn1gLCB2YWx1
ZXMpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
b3dzLm1hcChmdW5jdGlvbiAocm93KSB7CisgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFJl
c3VsdCA9IHt9OworICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbHVtbk5hbWUgaW4gcm93KSB7
CisgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXR0ZWROYW1lID0gY29sdW1uTmFtZTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZE5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkTmFtZSA9IGZvcm1hdHRlZE5hbWUuc3Vi
c3RyaW5nKHByZWZpeC5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1
bHRbZm9ybWF0dGVkTmFtZV0gPSByb3dbY29sdW1uTmFtZV07CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXN1bHQ7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaW5zZXJ0KHRhYmxlLCBwYXJhbWV0ZXJzKQogICAg
IHsKICAgICAgICAgbGV0IGNvbHVtbk5hbWVzID0gW107CkBAIC03OCw3ICsxMjUsNyBAQCBjbGFz
cyBEYXRhYmFzZSB7CiAgICAgfQogfQogCi1sZXQgdGFibGVUb1ByZWZpeE1hcCA9IHsKK2NvbnN0
IHRhYmxlVG9QcmVmaXhNYXAgPSB7CiAgICAgJ2FnZ3JlZ2F0b3JzJzogJ2FnZ3JlZ2F0b3InLAog
ICAgICdhbmFseXNpc190YXNrcyc6ICd0YXNrJywKICAgICAnYW5hbHlzaXNfdGVzdF9ncm91cHMn
OiAndGVzdGdyb3VwJywKQEAgLTg2LDE2ICsxMzMsMjEgQEAgbGV0IHRhYmxlVG9QcmVmaXhNYXAg
PSB7CiAgICAgJ2J1aWxkX3RyaWdnZXJhYmxlcyc6ICd0cmlnZ2VyYWJsZScsCiAgICAgJ2J1aWxk
X3JlcXVlc3RzJzogJ3JlcXVlc3QnLAogICAgICdidWlsZF9zbGF2ZXMnOiAnc2xhdmUnLAorICAg
ICdidWlsZHMnOiAnYnVpbGQnLAogICAgICdidWlsZGVycyc6ICdidWlsZGVyJywKICAgICAnY29t
bWl0cyc6ICdjb21taXQnLAorICAgICdjb21taXR0ZXJzJzogJ2NvbW1pdHRlcicsCiAgICAgJ3Rl
c3RfY29uZmlndXJhdGlvbnMnOiAnY29uZmlnJywKICAgICAndGVzdF9tZXRyaWNzJzogJ21ldHJp
YycsCisgICAgJ3Rlc3RfcnVucyc6ICdydW4nLAogICAgICd0ZXN0cyc6ICd0ZXN0JywKICAgICAn
dHJhY2tlcl9yZXBvc2l0b3JpZXMnOiAndHJhY3JlcG8nLAogICAgICdwbGF0Zm9ybXMnOiAncGxh
dGZvcm0nLAorICAgICdyZXBvcnRzJzogJ3JlcG9ydCcsCiAgICAgJ3JlcG9zaXRvcmllcyc6ICdy
ZXBvc2l0b3J5JywKICAgICAncm9vdF9zZXRzJzogJ3Jvb3RzZXQnLAogICAgICdyb290cyc6ICdy
b290JywKKyAgICAncnVuX2l0ZXJhdGlvbnMnOiAnaXRlcmF0aW9uJywKIH0KIAogaWYgKHR5cGVv
ZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCg==
</data>
<flag name="review"
          id="300209"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>