<?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>135374</bug_id>
          
          <creation_ts>2014-07-28 20:00:18 -0700</creation_ts>
          <short_desc>Remove old-run-webkit-tests</short_desc>
          <delta_ts>2014-08-02 11:47:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="David Farler">dfarler</reporter>
          <assigned_to name="David Farler">dfarler</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1025368</commentid>
    <comment_count>0</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-07-28 20:00:18 -0700</bug_when>
    <thetext>The last holdout, iOS, will soon be off old-run-webkit-tests. If there are no other clients, we should say goodbye.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025730</commentid>
    <comment_count>1</comment_count>
      <attachid>235748</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-07-30 10:14:18 -0700</bug_when>
    <thetext>Created attachment 235748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025932</commentid>
    <comment_count>2</comment_count>
      <attachid>235748</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-07-31 02:46:40 -0700</bug_when>
    <thetext>Comment on attachment 235748
Patch

r=me, good bye ORWT!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026473</commentid>
    <comment_count>3</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-08-02 11:01:46 -0700</bug_when>
    <thetext>Committed r171967: &lt;http://trac.webkit.org/changeset/171967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026478</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-08-02 11:35:12 -0700</bug_when>
    <thetext>There is more that can be removed here.  See the original patch for Bug 125563.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026480</commentid>
    <comment_count>5</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-08-02 11:47:17 -0700</bug_when>
    <thetext>I think I got everything else in https://bugs.webkit.org/show_bug.cgi?id=135271 ? I opted not to change comments referring to ORWT in webkitpy. I was planning on addressing those as I make my way through the mines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235748</attachid>
            <date>2014-07-30 10:14:18 -0700</date>
            <delta_ts>2014-07-31 02:46:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135374-20140730101404.patch</filename>
            <type>text/plain</type>
            <size>111280</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjgxNjVmYWM5OWMxNmQwOWIyNTM5MmI1NWE0ZTcyZjhl
NTQ1MGMxZC4uZjI2YTU1YjVmOWNiMjEyNGZlMTUwYjY0YzhkM2JhODNjZTc2Y2E0YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDE0LTA3LTMwICBEYXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgb2xkLXJ1bi13ZWJraXQtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0czog
UmVtb3ZlZC4KKwogMjAxNC0wNy0yOSAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+
CiAKICAgICAgICAgaU9TIFNpbXVsYXRvciBMYXlvdXRUZXN0UmVsYXkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4t
d2Via2l0LXRlc3RzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2YTM0MzIwM2MxNDI3
MzdhOGEyZmVhYjkyMWRmZmVhZTBhYTJmYmJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKKysr
IC9kZXYvbnVsbApAQCAtMSwzMDIyICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtdwotCi0jIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkg
UHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0jIENvcHlyaWdodCAoQykgMjAwNyBNYXR0IExp
bGVrIChwZXd0ZXJtb29zZUBnbWFpbC5jb20pCi0jIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDA5IEFuZHJhcyBCZWNzaSAo
YmVjc2kuYW5kcmFzQHN0dWQudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLiAKLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLiAKLSMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotIyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLSMgU2NyaXB0IHRvIHJ1biB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFBy
b2plY3QgbGF5b3V0IHRlc3RzLgotCi0jIFJ1biBhbGwgdGhlIHRlc3RzIHBhc3NlZCBpbiBvbiB0
aGUgY29tbWFuZCBsaW5lLgotIyBJZiBubyB0ZXN0cyBhcmUgcGFzc2VkLCBmaW5kIGFsbCB0aGUg
Lmh0bWwsIC5zaHRtbCwgLnhtbCwgLnhodG1sLCAueGh0bWxtcCwgLnBsLCAucGhwIChhbmQgc3Zn
KSBmaWxlcyBpbiB0aGUgdGVzdCBkaXJlY3RvcnkuCi0KLSMgUnVuIGVhY2ggdGV4dC4KLSMgQ29t
cGFyZSBhZ2FpbnN0IHRoZSBleGlzdGluZyBmaWxlIHh4eC1leHBlY3RlZC50eHQuCi0jIElmIHRo
ZXJlIGlzIGEgbWlzbWF0Y2gsIGdlbmVyYXRlIHh4eC1hY3R1YWwudHh0IGFuZCB4eHgtZGlmZnMu
dHh0LgotCi0jIEF0IHRoZSBlbmQsIHJlcG9ydDoKLSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRo
YXQgZ290IHRoZSBleHBlY3RlZCByZXN1bHRzCi0jICAgdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0
IHJhbiwgYnV0IGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHRzCi0jICAgdGhlIG51bWJl
ciBvZiB0ZXN0cyB0aGF0IGZhaWxlZCB0byBydW4KLSMgICB0aGUgbnVtYmVyIG9mIHRlc3RzIHRo
YXQgd2VyZSBydW4gYnV0IGhhZCBubyBleHBlY3RlZCByZXN1bHRzIHRvIGNvbXBhcmUgYWdhaW5z
dAotCi11c2Ugc3RyaWN0OwotdXNlIHdhcm5pbmdzOwotCi11c2UgQ0dJOwotdXNlIENvbmZpZzsK
LXVzZSBDd2Q7Ci11c2UgRGF0YTo6RHVtcGVyOwotdXNlIEZjbnRsIHF3KEZfR0VURkwgRl9TRVRG
TCBPX05PTkJMT0NLKTsKLXVzZSBGaWxlOjpCYXNlbmFtZTsKLXVzZSBGaWxlOjpDb3B5OwotdXNl
IEZpbGU6OkZpbmQ7Ci11c2UgRmlsZTo6UGF0aDsKLXVzZSBGaWxlOjpTcGVjOwotdXNlIEZpbGU6
OlNwZWM6OkZ1bmN0aW9uczsKLXVzZSBGaWxlOjpUZW1wOwotdXNlIEZpbmRCaW47Ci11c2UgR2V0
b3B0OjpMb25nOwotdXNlIElPOjpIYW5kbGU7Ci11c2UgSVBDOjpPcGVuMjsKLXVzZSBJUEM6Ok9w
ZW4zOwotdXNlIE1JTUU6OkJhc2U2NDsKLXVzZSBUaW1lOjpIaVJlcyBxdyh0aW1lIHVzbGVlcCk7
Ci0KLXVzZSBMaXN0OjpVdGlsICdzaHVmZmxlJzsKLQotdXNlIGxpYiAkRmluZEJpbjo6QmluOwot
dXNlIHdlYmtpdHBlcmw6OmZlYXR1cmVzOwotdXNlIHdlYmtpdHBlcmw6Omh0dHBkOwotdXNlIHdl
YmtpdGRpcnM7Ci11c2UgVkNTVXRpbHM7Ci11c2UgUE9TSVg7Ci0KLXN1YiBidWlsZFBsYXRmb3Jt
UmVzdWx0SGllcmFyY2h5KCk7Ci1zdWIgYnVpbGRQbGF0Zm9ybVRlc3RIaWVyYXJjaHkoQCk7Ci1z
dWIgY2FwdHVyZVNhdmVkQ3Jhc2hMb2coJCQpOwotc3ViIGNoZWNrUHl0aG9uVmVyc2lvbigpOwot
c3ViIGNsb3NlQ3lncGF0aHMoKTsKLXN1YiBjbG9zZUR1bXBUb29sKCk7Ci1zdWIgY2xvc2VXZWJT
b2NrZXRTZXJ2ZXIoKTsKLXN1YiBjb25maWd1cmVBbmRPcGVuSFRUUERJZk5lZWRlZCgpOwotc3Vi
IGNvdW50QW5kUHJpbnRMZWFrcygkJCQpOwotc3ViIGNvdW50RmluaXNoZWRUZXN0KCQkJCQpOwot
c3ViIGRlbGV0ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkKTsKLXN1YiBkdW1wVG9vbERpZENy
YXNoKCk7Ci1zdWIgZXBpbG9ndWVzQW5kUHJvbG9ndWVzKCQkKTsKLXN1YiBleHBlY3RlZERpcmVj
dG9yeUZvclRlc3QoJDskOyQpOwotc3ViIGZpbGVOYW1lV2l0aE51bWJlcigkJCk7Ci1zdWIgZmlu
ZE5ld2VzdEZpbGVNYXRjaGluZ0dsb2IoJCk7Ci1zdWIgaHRtbEZvclJlc3VsdHNTZWN0aW9uKFxA
JCYpOwotc3ViIGlzVGV4dE9ubHlUZXN0KCQpOwotc3ViIGxhdW5jaFdpdGhFbnYoXEBcJSk7Ci1z
dWIgcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotc3ViIG51bWVyaWNjbXAo
JCQpOwotc3ViIG9wZW5EaWZmVG9vbCgpOwotc3ViIGJ1aWxkRHVtcFRvb2woJCk7Ci1zdWIgb3Bl
bkR1bXBUb29sKCk7Ci1zdWIgcGFyc2VMZWFrc2FuZFByaW50VW5pcXVlTGVha3MoKTsKLXN1YiBv
cGVuV2ViU29ja2V0U2VydmVySWZOZWVkZWQoKTsKLXN1YiBwYXRoY21wKCQkKTsKLXN1YiBwcmlu
dEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkJCk7Ci1zdWIgcHJvY2Vzc0lnbm9yZVRlc3RzKCQkKTsK
LXN1YiBwcm9jZXNzU2tpcHBlZEZpbGVFbnRyeSgkJCQpOwotc3ViIHJlYWRDaGVja3N1bUZyb21Q
bmcoJCk7Ci1zdWIgcmVhZEZyb21EdW1wVG9vbFdpdGhUaW1lcigqKik7Ci1zdWIgcmVhZFNraXBw
ZWRGaWxlcygkKTsKLXN1YiByZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkJCk7Ci1zdWIgc2Ft
cGxlRHVtcFRvb2woKTsKLXN1YiBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoKiQpOwotc3ViIHNl
dFVwV2luZG93c0NyYXNoTG9nU2F2aW5nKCk7Ci1zdWIgc2xvd2VzdGNtcCgkJCk7Ci1zdWIgc3Bs
aXRwYXRoKCQpOwotc3ViIHN0YXJ0c1dpdGgoJCQpOwotc3ViIHN0b3BSdW5uaW5nVGVzdHNFYXJs
eUlmTmVlZGVkKCk7Ci1zdWIgc3RyaXBFeHRlbnNpb24oJCk7Ci1zdWIgc3RyaXBNZXRyaWNzKCQk
KTsKLXN1YiB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJCQkJCQkKTsKLXN1YiB0b0N5Z3dpblBhdGgo
JCk7Ci1zdWIgdG9VUkwoJCk7Ci1zdWIgdG9XaW5kb3dzUGF0aCgkKTsKLXN1YiB2YWxpZGF0ZVNr
aXBwZWRBcmcoJCQ7JCk7Ci1zdWIgd3JpdGVUb0ZpbGUoJCQpOwotc3ViIGluc3RhbGxBbmRMYXVu
Y2hEdW1wVG9vbEFwcFVzaW5nTm90aWZpY2F0aW9uKCQkKTsKLXN1YiBxdWl0RHVtcFRvb2xVc2lu
Z05vdGlmaWNhdGlvbigpOwotc3ViIHNpbXVsYXRvclNlc3Npb25VVUlEKCk7Ci0KLSMgQXJndW1l
bnQgaGFuZGxpbmcKLW15ICRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMgPSAwOwotbXkgQGFkZGl0aW9u
YWxQbGF0Zm9ybURpcmVjdG9yaWVzID0gKCk7Ci1teSAkY29tcGxleFRleHQgPSAwOwotbXkgJGlP
U0V4cGVjdGVkUmVzdWx0c0RpciA9ICcnOwotbXkgJGV4aXRBZnRlck5GYWlsdXJlcyA9IDA7Ci1t
eSAkZXhpdEFmdGVyTkNyYXNoZXNPclRpbWVvdXRzID0gMDsKLW15ICRnZW5lcmF0ZU5ld1Jlc3Vs
dHMgPSBpc0FwcGxlTWFjV2ViS2l0KCkgPyAxIDogMDsKLW15ICRndWFyZE1hbGxvYyA9ICcnOwot
IyBGSVhNRTogRHluYW1pYyBIVFRQLXBvcnQgY29uZmlndXJhdGlvbiBpbiB0aGlzIGZpbGUgaXMg
d3JvbmcuICBUaGUgdmFyaW91cwotIyBhcGFjaGUgY29uZmlnIGZpbGVzIGluIExheW91dFRlc3Rz
L2h0dHAvY29uZmlnIGdvdmVybiB0aGUgcG9ydCBudW1iZXJzLgotIyBEeW5hbWljIGNvbmZpZ3Vy
YXRpb24gYXMtd3JpdHRlbiB3aWxsIGFsc28gY2F1c2UgcmFuZG9tIGZhaWx1cmVzIGluCi0jIGFu
IElQdjYgZW52aXJvbm1lbnQuICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM3MTA0LgotbXkgJGh0dHBkUG9ydCA9IDgwMDA7Ci1teSAkaHR0cGRTU0xQb3J0ID0g
ODQ0MzsKLW15ICRodHRwZEF1eGlsaWFyeVBvcnQgPSA4MDgwOyAjIFBvcnQgdXNlZCBieSB2YXJp
b3VzIHRlc3RzIGluIGh0dHAvdGVzdHMvc2VjdXJpdHkuCi1teSAkaWdub3JlTWV0cmljcyA9IDA7
Ci1teSAkd2ViU29ja2V0UG9ydCA9IDg4ODA7Ci0jIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwg
cGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotIyBteSAkd2ViU29ja2V0U2VjdXJlUG9ydCA9
IDkzMjM7Ci1teSBAaWdub3JlVGVzdHM7Ci1teSAkaXRlcmF0aW9ucyA9IDE7Ci1teSAkbGF1bmNo
U2FmYXJpID0gMTsKLW15ICRtZXJnZURlcHRoOwotbXkgJHBpeGVsVGVzdHMgPSAnJzsKLW15ICRw
bGF0Zm9ybTsKLW15ICRxdWlldCA9ICcnOwotbXkgJHJhbmRvbWl6ZVRlc3RzID0gMDsKLW15ICRy
ZXBlYXRFYWNoID0gMTsKLW15ICRyZXBvcnQxMFNsb3dlc3QgPSAwOwotbXkgJHJlc2V0UmVzdWx0
cyA9IDA7Ci1teSAkcmV2ZXJzZVRlc3RzID0gMDsKLW15ICRyb290OwotbXkgJHJ1blNhbXBsZSA9
IDE7Ci1teSAkc2hvdWxkQ2hlY2tMZWFrcyA9IDA7Ci1teSAkc2hvd0hlbHAgPSAwOwotbXkgJHN0
cmlwRWRpdGluZ0NhbGxiYWNrczsKLW15ICR0ZXN0SFRUUCA9IDE7Ci1teSAkdGVzdFdlYlNvY2tl
dCA9IDE7Ci1teSAkdGVzdE1lZGlhID0gMTsKLW15ICR0bXBEaXIgPSAiL3RtcCI7Ci1teSAkdGVz
dFJlc3VsdHNEaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5jYXRkaXIoJHRtcERpciwgImxheW91dC10
ZXN0LXJlc3VsdHMiKTsKLW15ICR0ZXN0c1BlckR1bXBUb29sID0gMTAwMDsKLW15ICR0aHJlYWRl
ZCA9IDA7Ci1teSAkZ2NCZXR3ZWVuVGVzdHMgPSAwOwotIyBEdW1wUmVuZGVyVHJlZSBoYXMgYW4g
aW50ZXJuYWwgdGltZW91dCBvZiAzMCBzZWNvbmRzLCBzbyB0aGlzIG11c3QgYmUgPiAzMC4KLW15
ICR0aW1lb3V0U2Vjb25kcyA9IDM1OwotbXkgJHRvbGVyYW5jZSA9IDA7Ci1teSAkdHJlYXRTa2lw
cGVkID0gImRlZmF1bHQiOwotbXkgJHVzZVJlbW90ZUxpbmtzVG9UZXN0cyA9IDA7Ci1teSAkdXNl
VmFsZ3JpbmQgPSAwOwotbXkgJHZlcmJvc2UgPSAwOwotbXkgJHNob3VsZFdhaXRGb3JIVFRQRCA9
IDA7Ci1teSAkdXNlV2ViS2l0VGVzdFJ1bm5lciA9IDA7Ci1teSAkbm9CdWlsZER1bXBUb29sID0g
MDsKLWNob21wKG15ICRkZXZlbG9wZXJEaXIgPSAkRU5We0RFVkVMT1BFUl9ESVJ9IHx8IGB4Y29k
ZS1zZWxlY3QgLS1wcmludC1wYXRoYCk7Ci1teSAkc2ltdWxhdG9yQXBwID0gIiRkZXZlbG9wZXJE
aXIvQXBwbGljYXRpb25zL2lPUyBTaW11bGF0b3IuYXBwIjsKLXVubGVzcyAoLWQgJHNpbXVsYXRv
ckFwcCkgewotICAgICRzaW11bGF0b3JBcHAgPSAiJGRldmVsb3BlckRpci9BcHBsaWNhdGlvbnMv
aVBob25lIFNpbXVsYXRvci5hcHAiOwotfQotCi0jIFRoZXNlIGFyZ3VtZW50cyBhcmUgaWdub3Jl
ZCwgYnV0IGV4aXN0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggbmV3LXJ1bi13ZWJraXQtdGVzdHMu
Ci1teSAkYnVpbGRlck5hbWUgPSAnJzsKLW15ICRidWlsZE51bWJlciA9ICcnOwotbXkgJG1hc3Rl
ck5hbWUgPSAnJzsKLW15ICR0ZXN0UmVzdWx0c1NlcnZlciA9ICcnOwotCi1teSBAbGVha3NGaWxl
bmFtZXM7Ci0KLWlmIChpc1dpbmRvd3MoKSkgewotICAgIHByaW50ICJUaGlzIHNjcmlwdCBoYXMg
dG8gYmUgcnVuIHVuZGVyIEN5Z3dpbiB0byBmdW5jdGlvbiBjb3JyZWN0bHkuXG4iOwotICAgIGV4
aXQgMTsKLX0KLQotbXkgJHBlcmxJbnRlcnByZXRlciA9ICJwZXJsIjsKLQotbXkgJGV4cGVjdGVk
VGFnID0gImV4cGVjdGVkIjsKLW15ICRtaXNtYXRjaFRhZyA9ICJtaXNtYXRjaCI7Ci1teSAkcmVm
VGFnID0gInJlZiI7Ci1teSAkbm90cmVmVGFnID0gIm5vdHJlZiI7Ci1teSAkYWN0dWFsVGFnID0g
ImFjdHVhbCI7Ci1teSAkcHJldHR5RGlmZlRhZyA9ICJwcmV0dHktZGlmZiI7Ci1teSAkZGlmZnNU
YWcgPSAiZGlmZnMiOwotbXkgJGVycm9yVGFnID0gInN0ZGVyciI7Ci1teSAkY3Jhc2hMb2dUYWcg
PSAiY3Jhc2gtbG9nIjsKLQotbXkgJHdpbmRvd3NDcmFzaExvZ0ZpbGVQcmVmaXggPSAiQ3Jhc2hM
b2ciOwotCi0jIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgaW5zdGVhZCBvZiBjbG9zZXIgdG8gd2hl
cmUgdGhleSBhcmUgdXNlZCBzbyB0aGF0IHRoZXkKLSMgd2lsbCBhbHdheXMgYmUgYWNjZXNzaWJs
ZSBmcm9tIHRoZSBFTkQgYmxvY2sgdGhhdCB1c2VzIHRoZW0sIGV2ZW4gaWYgdGhlIHVzZXIKLSMg
cHJlc3NlcyBDdHJsLUMgYmVmb3JlIFBlcmwgaGFzIGZpbmlzaGVkIGV2YWx1YXRpbmcgdGhpcyB3
aG9sZSBmaWxlLgotbXkgJHdpbmRvd3NQb3N0TW9ydGVtRGVidWdnZXJLZXkgPSAiL0hLTE0vU09G
VFdBUkUvTWljcm9zb2Z0L1dpbmRvd3MgTlQvQ3VycmVudFZlcnNpb24vQWVEZWJ1ZyI7Ci1teSAl
cHJldmlvdXNXaW5kb3dzUG9zdE1vcnRlbURlYnVnZ2VyVmFsdWVzOwotCi1teSAkcmVhbFBsYXRm
b3JtOwotCi1teSAkaGF2ZUluc3RhbGxlZGlPU0R1bXBUb29sQXBwT25jZTsKLQotbXkgQGlQaG9u
ZVNpbXVsYXRvclBsYXRmb3JtcyA9IHF3KGlvcy1zaW0pOwotbXkgQG1hY1BsYXRmb3JtcyA9ICgi
bWFjLW1vdW50YWlubGlvbiIsICJtYWMiKTsKLW15IEB3aW5QbGF0Zm9ybXMgPSAoIndpbi14cCIs
ICJ3aW4tdmlzdGEiLCAid2luLTdzcDAiLCAid2luIik7Ci0KLWlmIChpc0lPU1dlYktpdCgpKSB7
Ci0gICAgbXkgJHNpbXVsYXRvclZlcnNpb25IYXNoID0gaVBob25lU2ltdWxhdG9yVmVyc2lvbigp
OwotICAgIG15ICRzaW11bGF0b3JWZXJzaW9uID0gInYiIC4gJHNpbXVsYXRvclZlcnNpb25IYXNo
LT57bWFqb3J9IC4gIi4iIC4gJHNpbXVsYXRvclZlcnNpb25IYXNoLT57bWlub3J9OwotCi0gICAg
c3ViIHZlcnNpb25Gcm9tUGxhdGZvcm1TdWZmaXggewotICAgICAgICBteSAkdmVyc2lvbiA9IHNo
aWZ0OwotICAgICAgICAkdmVyc2lvbiA9fiBzL14tLy87Ci0gICAgICAgICR2ZXJzaW9uID1+IHMv
LS8uL2c7Ci0gICAgICAgIHJldHVybiAidiR2ZXJzaW9uIjsKLSAgICB9Ci0KLSAgICBmb3JlYWNo
IG15ICRpcGhvbmVTaW11bGF0b3JQbGF0Zm9ybSAocmV2ZXJzZSBAaVBob25lU2ltdWxhdG9yUGxh
dGZvcm1zKSB7Ci0gICAgICAgIGlmICghJHBsYXRmb3JtKSB7Ci0gICAgICAgICAgICAkcGxhdGZv
cm0gPSAkaXBob25lU2ltdWxhdG9yUGxhdGZvcm07Ci0gICAgICAgICAgICBuZXh0OwotICAgICAg
ICB9Ci0gICAgICAgIGRpZSAiSW52YWxpZCBwbGF0Zm9ybTogJGlwaG9uZVNpbXVsYXRvclBsYXRm
b3JtIiB1bmxlc3MgJGlwaG9uZVNpbXVsYXRvclBsYXRmb3JtID1+IC9eaXBob25lLXNpbXVsYXRv
cigoLVswLTldKyl7Mn0pJC87Ci0gICAgICAgIGxhc3QgaWYgZXZhbCh2ZXJzaW9uRnJvbVBsYXRm
b3JtU3VmZml4KCQxKSAuICIgbHQgJHNpbXVsYXRvclZlcnNpb24iKTsKLSAgICAgICAgJHBsYXRm
b3JtID0gJGlwaG9uZVNpbXVsYXRvclBsYXRmb3JtOwotICAgIH0KLQotICAgICR0b2xlcmFuY2Ug
PSAxLjA7Ci19IGVsc2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAgICBpZiAoaXNTbm93TGVv
cGFyZCgpKSB7Ci0gICAgICAgICRwbGF0Zm9ybSA9ICJtYWMtc25vd2xlb3BhcmQiOwotICAgICAg
ICAkdG9sZXJhbmNlID0gMC4xOwotICAgIH0gZWxzaWYgKGlzTGlvbigpKSB7Ci0gICAgICAgICRw
bGF0Zm9ybSA9ICJtYWMtbGlvbiI7Ci0gICAgICAgICR0b2xlcmFuY2UgPSAwLjE7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgJHBsYXRmb3JtID0gIm1hYyI7Ci0gICAgfQotfSBlbHNpZiAoaXNHdGso
KSkgewotICAgICRwbGF0Zm9ybSA9ICJndGsiOwotfSBlbHNpZiAoaXNXaW5DYWlybygpKSB7Ci0g
ICAgJHBsYXRmb3JtID0gIndpbmNhaXJvIjsKLX0gZWxzaWYgKGlzQ3lnd2luKCkgfHwgaXNXaW5k
b3dzKCkpIHsKLSAgICBpZiAoaXNXaW5kb3dzWFAoKSkgewotICAgICAgICAkcGxhdGZvcm0gPSAi
d2luLXhwIjsKLSAgICB9IGVsc2lmIChpc1dpbmRvd3NWaXN0YSgpKSB7Ci0gICAgICAgICRwbGF0
Zm9ybSA9ICJ3aW4tdmlzdGEiOwotICAgIH0gZWxzaWYgKGlzV2luZG93czdTUDAoKSkgewotICAg
ICAgICAkcGxhdGZvcm0gPSAid2luLTdzcDAiOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICRwbGF0
Zm9ybSA9ICJ3aW4iOwotICAgIH0KLX0KLQotaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewotICAg
IG15ICR0ZXN0Zm9udFBhdGggPSAkRU5WeyJXRUJLSVRfVEVTVEZPTlRTIn07Ci0gICAgaWYgKCEk
dGVzdGZvbnRQYXRoIHx8ICEtZCAiJHRlc3Rmb250UGF0aCIpIHsKLSAgICAgICAgcHJpbnQgIlRo
ZSBXRUJLSVRfVEVTVEZPTlRTIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBkZWZpbmVkIG9y
IG5vdCBzZXQgcHJvcGVybHlcbiI7Ci0gICAgICAgIHByaW50ICJZb3UgbXVzdCBzZXQgaXQgYmVm
b3JlIHJ1bm5pbmcgdGhlIHRlc3RzLlxuIjsKLSAgICAgICAgZXhpdCAxOwotICAgIH0KLX0KLQot
aWYgKCFkZWZpbmVkKCRwbGF0Zm9ybSkpIHsKLSAgICBwcmludCAiV0FSTklORzogWW91ciBwbGF0
Zm9ybSBpcyBub3QgcmVjb2duaXplZC4gQW55IHBsYXRmb3JtLXNwZWNpZmljIHJlc3VsdHMgd2ls
bCBiZSBnZW5lcmF0ZWQgaW4gcGxhdGZvcm0vdW5kZWZpbmVkLlxuIjsKLSAgICAkcGxhdGZvcm0g
PSAidW5kZWZpbmVkIjsKLX0KLQotaWYgKCFjaGVja1B5dGhvblZlcnNpb24oKSkgewotICAgIHBy
aW50ICJXQVJOSU5HOiBZb3VyIHBsYXRmb3JtIGRvZXMgbm90IGhhdmUgUHl0aG9uIDIuNSssIHdo
aWNoIGlzIHJlcXVpcmVkIHRvIHJ1biB3ZWJzb2NrZXQgc2VydmVyLCBzbyBkaXNhYmxpbmcgd2Vi
c29ja2V0L3Rlc3RzLlxuIjsKLSAgICAkdGVzdFdlYlNvY2tldCA9IDA7Ci19Ci0KLW15ICRwcm9n
cmFtTmFtZSA9IGJhc2VuYW1lKCQwKTsKLW15ICRsYXVuY2hTYWZhcmlEZWZhdWx0ID0gJGxhdW5j
aFNhZmFyaSA/ICJsYXVuY2giIDogImRvIG5vdCBsYXVuY2giOwotbXkgJGh0dHBEZWZhdWx0ID0g
JHRlc3RIVFRQID8gInJ1biIgOiAiZG8gbm90IHJ1biI7Ci1teSAkc2FtcGxlRGVmYXVsdCA9ICRy
dW5TYW1wbGUgPyAicnVuIiA6ICJkbyBub3QgcnVuIjsKLQotbXkgJHVzYWdlID0gPDxFT0Y7Ci1V
c2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbdGVzdGRpcnx0ZXN0cGF0aCAuLi5dCi0gIC0t
MzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRlc3RzIGluIDMyLWJpdCBtb2RlCi0g
IC0tYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMgICAgICAgUHV0IG5ldyByZXN1bHRzIGZvciBub24t
cGxhdGZvcm0tc3BlY2lmaWMgZmFpbGluZyB0ZXN0cyBpbnRvIHRoZSBwbGF0Zm9ybS1zcGVjaWZp
YyByZXN1bHRzIGRpcmVjdG9yeQotICAtLWFkZGl0aW9uYWwtcGxhdGZvcm0tZGlyZWN0b3J5IHBh
dGgvdG8vZGlyZWN0b3J5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9vayBp
biB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBiZWZvcmUgbG9va2luZyBpbiBhbnkgb2YgdGhlIGRl
ZmF1bHQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMKLSAgLS1jb21wbGV4LXRleHQgICAg
ICAgICAgICAgICAgICBVc2UgdGhlIGNvbXBsZXggdGV4dCBjb2RlIHBhdGggZm9yIGFsbCB0ZXh0
IChNYWMgT1MgWCBhbmQgV2luZG93cyBvbmx5KQotICAtY3wtLWNvbmZpZ3VyYXRpb24gY29uZmln
ICAgICAgIFNldCBEdW1wUmVuZGVyVHJlZS9XZWJLaXRUZXN0UnVubmVyIGJ1aWxkIGNvbmZpZ3Vy
YXRpb24KLSAgLWV8LS1leHBlY3RlZC1yZXN1bHRzICAgICAgICAgICBTcGVjaWZ5IGFuIGFsdGVy
bmF0ZSBkaXJlY3RvcnkgZm9yIGV4cGVjdGVkIHJlc3VsdHMgKGlPUyBvbmx5KQotICAtLWdjLWJl
dHdlZW4tdGVzdHMgICAgICAgICAgICAgIEZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiBiZXR3ZWVu
IGVhY2ggdGVzdAotICAtZ3wtLWd1YXJkLW1hbGxvYyAgICAgICAgICAgICAgIEVuYWJsZSBHdWFy
ZCBNYWxsb2MKLSAgLS1leGl0LWFmdGVyLW4tZmFpbHVyZXMgTiAgICAgICBFeGl0IGFmdGVyIHRo
ZSBmaXJzdCBOIGZhaWx1cmVzIChpbmNsdWRlcyBjcmFzaGVzKSBpbnN0ZWFkIG9mIHJ1bm5pbmcg
YWxsIHRlc3RzCi0gIC0tZXhpdC1hZnRlci1uLWNyYXNoZXMtb3ItdGltZW91dHMgTgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4aXQgYWZ0ZXIgdGhlIGZpcnN0IE4gY3Jhc2hl
cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgYWxsIHRlc3RzCi0gIC1ofC0taGVscCAgICAgICAgICAgICAg
ICAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZQotICAtLVtuby1daHR0cCAgICAgICAgICAg
ICAgICAgICAgIFJ1biAob3IgZG8gbm90IHJ1bikgaHR0cCB0ZXN0cyAoZGVmYXVsdDogJGh0dHBE
ZWZhdWx0KQotICAtLVtuby1dd2FpdC1mb3ItaHR0cGQgICAgICAgICAgIFdhaXQgZm9yIGh0dHBk
IGlmIHNvbWUgb3RoZXIgdGVzdCBzZXNzaW9uIGlzIHVzaW5nIGl0IGFscmVhZHkgKHNhbWUgYXMg
V0VCS0lUX1dBSVRfRk9SX0hUVFBEPTEpLiAoZGVmYXVsdDogJHNob3VsZFdhaXRGb3JIVFRQRCkg
Ci0gIC1pfC0taWdub3JlLXRlc3RzICAgICAgICAgICAgICAgQ29tbWEtc2VwYXJhdGVkIGxpc3Qg
b2YgZGlyZWN0b3JpZXMgb3IgdGVzdHMgdG8gaWdub3JlCi0gIC0taXRlcmF0aW9ucyBuICAgICAg
ICAgICAgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgc2V0IG9mIHRlc3RzIChlLmcu
IEFCQ0FCQ0FCQykKLSAgLS1bbm8tXWxhdW5jaC1zYWZhcmkgICAgICAgICAgICBMYXVuY2ggKG9y
IGRvIG5vdCBsYXVuY2gpIFNhZmFyaSB0byBkaXNwbGF5IHRlc3QgcmVzdWx0cyAoZGVmYXVsdDog
JGxhdW5jaFNhZmFyaURlZmF1bHQpCi0gIC0tW25vLV1zaG93LXJlc3VsdHMgICAgICAgICAgICAg
U2FtZSBhcyAtLVtuby1dbGF1bmNoLXNhZmFyaQotICAtbHwtLWxlYWtzICAgICAgICAgICAgICAg
ICAgICAgIEVuYWJsZSBsZWFrcyBjaGVja2luZwotICAtLVtuby1dbmV3LXRlc3QtcmVzdWx0cyAg
ICAgICAgIEdlbmVyYXRlIHJlc3VsdHMgZm9yIG5ldyB0ZXN0cwotICAtLW50aGx5IG4gICAgICAg
ICAgICAgICAgICAgICAgIFJlc3RhcnQgRHVtcFJlbmRlclRyZWUvV2ViS2l0VGVzdFJ1bm5lciBl
dmVyeSBuIHRlc3RzIChkZWZhdWx0OiAkdGVzdHNQZXJEdW1wVG9vbCkKLSAgLXB8LS1waXhlbC10
ZXN0cyAgICAgICAgICAgICAgICBFbmFibGUgcGl4ZWwgdGVzdHMKLSAgLS10b2xlcmFuY2UgdCAg
ICAgICAgICAgICAgICAgICBJZ25vcmUgaW1hZ2UgZGlmZmVyZW5jZXMgbGVzcyB0aGFuIHRoaXMg
cGVyY2VudGFnZSAoZGVmYXVsdDogJHRvbGVyYW5jZSkKLSAgLS1wbGF0Zm9ybSAgICAgICAgICAg
ICAgICAgICAgICBPdmVycmlkZSB0aGUgZGV0ZWN0ZWQgcGxhdGZvcm0gdG8gdXNlIGZvciB0ZXN0
cyBhbmQgcmVzdWx0cyAoZGVmYXVsdDogJHBsYXRmb3JtKQotICAtLXBvcnQgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYiBzZXJ2ZXIgcG9ydCB0byB1c2Ugd2l0aCBodHRwIHRlc3RzCi0gIC1x
fC0tcXVpZXQgICAgICAgICAgICAgICAgICAgICAgTGVzcyB2ZXJib3NlIG91dHB1dAotICAtLXJl
c2V0LXJlc3VsdHMgICAgICAgICAgICAgICAgIFJlc2V0IEFMTCByZXN1bHRzIChpbmNsdWRpbmcg
cGl4ZWwgdGVzdHMgaWYgLS1waXhlbC10ZXN0cyBpcyBzZXQpCi0gIC1vfC0tcmVzdWx0cy1kaXJl
Y3RvcnkgICAgICAgICAgT3V0cHV0IHJlc3VsdHMgZGlyZWN0b3J5IChkZWZhdWx0OiAkdGVzdFJl
c3VsdHNEaXJlY3RvcnkpCi0gIC0tcmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAgUnVuIHRo
ZSB0ZXN0cyBpbiBhIHJhbmRvbSBvcmRlcgotICAtLXJlcGVhdC1lYWNoIG4gICAgICAgICAgICAg
ICAgIE51bWJlciBvZiB0aW1lcyB0byBydW4gZWFjaCB0ZXN0IChlLmcuIEFBQUJCQkNDQykKLSAg
LS1yZXZlcnNlICAgICAgICAgICAgICAgICAgICAgICBSdW4gdGhlIHRlc3RzIGluIHJldmVyc2Ug
YWxwaGFiZXRpY2FsIG9yZGVyCi0gIC0tcm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0
aCB0byByb290IHRvb2xzIGJ1aWxkCi0gIC0tW25vLV1zYW1wbGUtb24tdGltZW91dCAgICAgICAg
UnVuIHNhbXBsZSBvbiB0aW1lb3V0IChkZWZhdWx0OiAkc2FtcGxlRGVmYXVsdCkgKE1hYyBPUyBY
IG9ubHkpCi0gIC0xfC0tc2luZ2x5ICAgICAgICAgICAgICAgICAgICAgSXNvbGF0ZSBlYWNoIHRl
c3QgY2FzZSBydW4gKGltcGxpZXMgLS1udGhseSAxIC0tdmVyYm9zZSkKLSAgLS1za2lwcGVkPVtk
ZWZhdWx0fGlnbm9yZXxvbmx5XSBTcGVjaWZpZXMgaG93IHRvIHRyZWF0IHRoZSBTa2lwcGVkIGZp
bGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBUZXN0cy9k
aXJlY3RvcmllcyBsaXN0ZWQgaW4gdGhlIFNraXBwZWQgZmlsZSBhcmUgbm90IHRlc3RlZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZTogIFRoZSBTa2lwcGVkIGZp
bGUgaXMgaWdub3JlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHk6
ICAgIE9ubHkgdGhvc2UgdGVzdHMvZGlyZWN0b3JpZXMgbGlzdGVkIGluIHRoZSBTa2lwcGVkIGZp
bGUgd2lsbCBiZSBydW4KLSAgLS1zbG93ZXN0ICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnQg
dGhlIDEwIHNsb3dlc3QgdGVzdHMKLSAgLS1pZ25vcmUtbWV0cmljcyAgICAgICAgICAgICAgICBJ
Z25vcmUgbWV0cmljcyBpbiB0ZXN0cwotICAtLVtuby1dc3RyaXAtZWRpdGluZy1jYWxsYmFja3Mg
IFJlbW92ZSBlZGl0aW5nIGNhbGxiYWNrcyBmcm9tIGV4cGVjdGVkIHJlc3VsdHMKLSAgLXR8LS10
aHJlYWRlZCAgICAgICAgICAgICAgICAgICBSdW4gYSBjb25jdXJyZW50IEphdmFTY3JpcHQgdGhl
YWQgd2l0aCBlYWNoIHRlc3QKLSAgLS10aW1lb3V0IHQgICAgICAgICAgICAgICAgICAgICBTZXRz
IHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgYSB0ZXN0IHRpbWVzIG91dCAoZGVmYXVsdDog
JHRpbWVvdXRTZWNvbmRzKQotICAtLXZhbGdyaW5kICAgICAgICAgICAgICAgICAgICAgIFJ1biBE
dW1wUmVuZGVyVHJlZSBpbnNpZGUgdmFsZ3JpbmQgKExpbnV4IG9ubHkpCi0gIC12fC0tdmVyYm9z
ZSAgICAgICAgICAgICAgICAgICAgTW9yZSB2ZXJib3NlIG91dHB1dCAob3ZlcnJpZGVzIC0tcXVp
ZXQpCi0gIC1tfC0tbWVyZ2UtbGVhay1kZXB0aCBhcmcgICAgICAgTWVyZ2VzIGxlYWsgY2FsbFN0
YWNrcyBhbmQgcHJpbnRzIHRoZSBudW1iZXIgb2YgdW5pcXVlIGxlYWtzIGJlbmVhdGggYSBjYWxs
c3RhY2sgZGVwdGggb2YgYXJnLiAgRGVmYXVsdHMgdG8gNS4KLSAgLS11c2UtcmVtb3RlLWxpbmtz
LXRvLXRlc3RzICAgICBMaW5rIHRvIHRlc3QgZmlsZXMgd2l0aGluIHRoZSBTVk4gcmVwb3NpdG9y
eSBpbiB0aGUgcmVzdWx0cy4KLSAgLTJ8LS13ZWJraXQtdGVzdC1ydW5uZXIgICAgICAgICBVc2Ug
V2ViS2l0VGVzdFJ1bm5lciByYXRoZXIgdGhhbiBEdW1wUmVuZGVyVHJlZS4KLUVPRgotCi1zZXRD
b25maWd1cmF0aW9uKCk7Ci0KLW15ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0T3B0aW9ucygKLSAg
ICAnYWRkLXBsYXRmb3JtLWV4Y2VwdGlvbnMnID0+IFwkYWRkUGxhdGZvcm1FeGNlcHRpb25zLAot
ICAgICdhZGRpdGlvbmFsLXBsYXRmb3JtLWRpcmVjdG9yeT1zJyA9PiBcQGFkZGl0aW9uYWxQbGF0
Zm9ybURpcmVjdG9yaWVzLAotICAgICdjb21wbGV4LXRleHQnID0+IFwkY29tcGxleFRleHQsCi0g
ICAgJ2V4cGVjdGVkLXJlc3VsdHN8ZT1zJyA9PiBcJGlPU0V4cGVjdGVkUmVzdWx0c0RpciwgICMg
UExBVEZPUk1fSU9TIAotICAgICdleGl0LWFmdGVyLW4tZmFpbHVyZXM9aScgPT4gXCRleGl0QWZ0
ZXJORmFpbHVyZXMsCi0gICAgJ2V4aXQtYWZ0ZXItbi1jcmFzaGVzLW9yLXRpbWVvdXRzPWknID0+
IFwkZXhpdEFmdGVyTkNyYXNoZXNPclRpbWVvdXRzLAotICAgICdnYy1iZXR3ZWVuLXRlc3RzJyA9
PiBcJGdjQmV0d2VlblRlc3RzLAotICAgICdndWFyZC1tYWxsb2N8ZycgPT4gXCRndWFyZE1hbGxv
YywKLSAgICAnaGVscHxoJyA9PiBcJHNob3dIZWxwLAotICAgICdodHRwIScgPT4gXCR0ZXN0SFRU
UCwKLSAgICAnd2FpdC1mb3ItaHR0cGQhJyA9PiBcJHNob3VsZFdhaXRGb3JIVFRQRCwKLSAgICAn
aWdub3JlLW1ldHJpY3MhJyA9PiBcJGlnbm9yZU1ldHJpY3MsCi0gICAgJ2lnbm9yZS10ZXN0c3xp
PXMnID0+IFxAaWdub3JlVGVzdHMsCi0gICAgJ2l0ZXJhdGlvbnM9aScgPT4gXCRpdGVyYXRpb25z
LAotICAgICdsYXVuY2gtc2FmYXJpIScgPT4gXCRsYXVuY2hTYWZhcmksCi0gICAgJ2xlYWtzfGwn
ID0+IFwkc2hvdWxkQ2hlY2tMZWFrcywKLSAgICAnbWVyZ2UtbGVhay1kZXB0aHxtOjUnID0+IFwk
bWVyZ2VEZXB0aCwKLSAgICAnbmV3LXRlc3QtcmVzdWx0cyEnID0+IFwkZ2VuZXJhdGVOZXdSZXN1
bHRzLAotICAgICduby1idWlsZCcgPT4gXCRub0J1aWxkRHVtcFRvb2wsCi0gICAgJ250aGx5PWkn
ID0+IFwkdGVzdHNQZXJEdW1wVG9vbCwKLSAgICAncGl4ZWwtdGVzdHN8cCcgPT4gXCRwaXhlbFRl
c3RzLAotICAgICdwbGF0Zm9ybT1zJyA9PiBcJHBsYXRmb3JtLAotICAgICdwb3J0PWknID0+IFwk
aHR0cGRQb3J0LAotICAgICdxdWlldHxxJyA9PiBcJHF1aWV0LAotICAgICdyYW5kb20nID0+IFwk
cmFuZG9taXplVGVzdHMsCi0gICAgJ3JlcGVhdC1lYWNoPWknID0+IFwkcmVwZWF0RWFjaCwKLSAg
ICAncmVzZXQtcmVzdWx0cycgPT4gXCRyZXNldFJlc3VsdHMsCi0gICAgJ3Jlc3VsdHMtZGlyZWN0
b3J5fG89cycgPT4gXCR0ZXN0UmVzdWx0c0RpcmVjdG9yeSwKLSAgICAncmV2ZXJzZScgPT4gXCRy
ZXZlcnNlVGVzdHMsCi0gICAgJ3Jvb3Q9cycgPT4gXCRyb290LAotICAgICdzYW1wbGUtb24tdGlt
ZW91dCEnID0+IFwkcnVuU2FtcGxlLAotICAgICdzaG93LXJlc3VsdHMhJyA9PiBcJGxhdW5jaFNh
ZmFyaSwKLSAgICAnc2luZ2x5fDEnID0+IHN1YiB7ICR0ZXN0c1BlckR1bXBUb29sID0gMTsgfSwK
LSAgICAnc2tpcHBlZD1zJyA9PiBcJnZhbGlkYXRlU2tpcHBlZEFyZywKLSAgICAnc2xvd2VzdCcg
PT4gXCRyZXBvcnQxMFNsb3dlc3QsCi0gICAgJ3N0cmlwLWVkaXRpbmctY2FsbGJhY2tzIScgPT4g
XCRzdHJpcEVkaXRpbmdDYWxsYmFja3MsCi0gICAgJ3RocmVhZGVkfHQnID0+IFwkdGhyZWFkZWQs
Ci0gICAgJ3RpbWVvdXQ9aScgPT4gXCR0aW1lb3V0U2Vjb25kcywKLSAgICAndG9sZXJhbmNlPWYn
ID0+IFwkdG9sZXJhbmNlLAotICAgICd1c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzJyA9PiBcJHVz
ZVJlbW90ZUxpbmtzVG9UZXN0cywKLSAgICAndmFsZ3JpbmQnID0+IFwkdXNlVmFsZ3JpbmQsCi0g
ICAgJ3ZlcmJvc2V8dicgPT4gXCR2ZXJib3NlLAotICAgICd3ZWJraXQtdGVzdC1ydW5uZXJ8Micg
PT4gXCR1c2VXZWJLaXRUZXN0UnVubmVyLAotICAgICMgVGhlc2UgYXJndW1lbnRzIGFyZSBpZ25v
cmVkIChidXQgYXJlIHVzZWQgYnkgbmV3LXJ1bi13ZWJraXQtdGVzdHMpLgotICAgICdidWlsZGVy
LW5hbWU9cycgPT4gXCRidWlsZGVyTmFtZSwKLSAgICAnYnVpbGQtbnVtYmVyPXMnID0+IFwkYnVp
bGROdW1iZXIsCi0gICAgJ21hc3Rlci1uYW1lPXMnID0+IFwkbWFzdGVyTmFtZSwKLSAgICAndGVz
dC1yZXN1bHRzLXNlcnZlcj1zJyA9PiBcJHRlc3RSZXN1bHRzU2VydmVyLAotICAgICdzaW11bGF0
b3ItYXBwPXMnID0+IFwkc2ltdWxhdG9yQXBwLAotKTsKLQotaWYgKCEkZ2V0T3B0aW9uc1Jlc3Vs
dCB8fCAkc2hvd0hlbHApIHsKLSAgICBwcmludCBTVERFUlIgJHVzYWdlOwotICAgIGV4aXQgMTsK
LX0KLQotaWYgKCR1c2VXZWJLaXRUZXN0UnVubmVyKSB7Ci0gICAgaWYgKGlzSU9TV2ViS2l0KCkp
IHsKLSAgICAgICAgJHJlYWxQbGF0Zm9ybSA9ICRwbGF0Zm9ybTsKLSAgICAgICAgJHBsYXRmb3Jt
ID0gImlvcy1zaW0td2syIjsKLSAgICB9IGVsc2lmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAg
ICAgICAgJHJlYWxQbGF0Zm9ybSA9ICRwbGF0Zm9ybTsKLSAgICAgICAgJHBsYXRmb3JtID0gIm1h
Yy13azIiOwotICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewotICAgICAgICAkc3Ry
aXBFZGl0aW5nQ2FsbGJhY2tzID0gMCB1bmxlc3MgZGVmaW5lZCAkc3RyaXBFZGl0aW5nQ2FsbGJh
Y2tzOwotICAgICAgICAkcmVhbFBsYXRmb3JtID0gJHBsYXRmb3JtOwotICAgICAgICAkcGxhdGZv
cm0gPSAid2luLXdrMiI7Ci0gICAgfSBlbHNpZiAoaXNHdGsoKSkgewotICAgICAgICAkcmVhbFBs
YXRmb3JtID0gJHBsYXRmb3JtOwotICAgICAgICAkcGxhdGZvcm0gPSAiZ3RrLXdrMiI7Ci0gICAg
fQotfQotCi0kdGltZW91dFNlY29uZHMgKj0gMTAgaWYgJGd1YXJkTWFsbG9jOwotCi0kc3RyaXBF
ZGl0aW5nQ2FsbGJhY2tzID0gaXNDeWd3aW4oKSB1bmxlc3MgZGVmaW5lZCAkc3RyaXBFZGl0aW5n
Q2FsbGJhY2tzOwotCi1teSAkaWdub3JlU2tpcHBlZCA9ICR0cmVhdFNraXBwZWQgZXEgImlnbm9y
ZSI7Ci1teSAkc2tpcHBlZE9ubHkgPSAkdHJlYXRTa2lwcGVkIGVxICJvbmx5IjsKLQotbXkgJGNv
bmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uKCk7Ci0KLSMgV2UgbmVlZCBhbiBlbnZpcm9ubWVu
dCB2YXJpYWJsZSB0byBiZSBhYmxlIHRvIGVuYWJsZSB0aGUgZmVhdHVyZSBwZXItc2xhdmUKLSRz
aG91bGRXYWl0Rm9ySFRUUEQgPSAkRU5WeyJXRUJLSVRfV0FJVF9GT1JfSFRUUEQifSB1bmxlc3Mg
KCRzaG91bGRXYWl0Rm9ySFRUUEQpOwotJHZlcmJvc2UgPSAxIGlmICR0ZXN0c1BlckR1bXBUb29s
ID09IDE7Ci0KLWlmICgkc2hvdWxkQ2hlY2tMZWFrcyAmJiAkdGVzdHNQZXJEdW1wVG9vbCA+IDEw
MDApIHsKLSAgICBwcmludCBTVERFUlIgIlxuV0FSTklORzogUnVubmluZyBtb3JlIHRoYW4gMTAw
MCB0ZXN0cyBhdCBhIHRpbWUgd2l0aCBNYWxsb2NTdGFja0xvZ2dpbmcgZW5hYmxlZCBtYXkgY2F1
c2UgYSBjcmFzaC5cblxuIjsKLX0KLQotIyBHZW5lcmF0aW5nIHJlbW90ZSBsaW5rcyBjYXVzZXMg
YSBsb3Qgb2YgdW5uZWNlc3Nhcnkgc3BldyBvbiBHVEsgYnVpbGQgYm90Ci0kdXNlUmVtb3RlTGlu
a3NUb1Rlc3RzID0gMCBpZiBpc0d0aygpOwotCi1zZXRDb25maWd1cmF0aW9uUHJvZHVjdERpcihD
d2Q6OmFic19wYXRoKCRyb290KSkgaWYgKGRlZmluZWQoJHJvb3QpKTsKLW15ICRwcm9kdWN0RGly
ID0gcHJvZHVjdERpcigpOwotJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNHdGsoKTsK
LQotcXVpdElPU1NpbXVsYXRvcigpIGlmIGlzSU9TV2ViS2l0KCk7Ci0KLSMgU2F2ZSB0aGUgY3Vy
cmVudCBkaXJlY3RvcnkgYmVmb3JlIGNoYWdpbmcgaXQgdmlhIGNoZGlyV2ViS2l0Ci1teSAkY3Vy
cmVudERpciA9IGN3ZCgpOwotY2hkaXJXZWJLaXQoKTsKLQotaWYgKCFkZWZpbmVkKCRyb290KSAm
JiAhJG5vQnVpbGREdW1wVG9vbCkgewotICAgICMgRklYTUU6IFdlIGJ1aWxkIGJvdGggRHVtcFJl
bmRlclRyZWUgYW5kIFdlYktpdFRlc3RSdW5uZXIgZm9yIFdlYktpdFRlc3RSdW5uZXIgcnVucyBi
ZWNhdXNlCi0gICAgIyBEdW1wUmVuZGVyVHJlZSBpbmNsdWRlcyBUZXN0TmV0c2NhcGVQbHVnaW4u
IEl0IHNob3VsZCBiZSBmYWN0b3JlZCBvdXQgaW50byBpdHMgb3duIHByb2plY3QuCi0gICAgYnVp
bGREdW1wVG9vbCgiRHVtcFJlbmRlclRyZWUiKTsKLSAgICBidWlsZER1bXBUb29sKCJXZWJLaXRU
ZXN0UnVubmVyIikgaWYgJHVzZVdlYktpdFRlc3RSdW5uZXI7Ci19Ci0KLW15ICRkdW1wVG9vbE5h
bWUgPSAkdXNlV2ViS2l0VGVzdFJ1bm5lciA/ICJXZWJLaXRUZXN0UnVubmVyIiA6ICJEdW1wUmVu
ZGVyVHJlZSI7Ci1pZiAoaXNJT1NXZWJLaXQoKSkgewotICAgICRkdW1wVG9vbE5hbWUgPSAkdXNl
V2ViS2l0VGVzdFJ1bm5lciA/ICJXZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0UnVu
bmVyQXBwIiA6ICJEdW1wUmVuZGVyVHJlZS5hcHAvRHVtcFJlbmRlclRyZWUiOwotfQotCi1pZiAo
aXNBcHBsZVdpbldlYktpdCgpKSB7Ci0gICAgJGR1bXBUb29sTmFtZSAuPSAiX2RlYnVnIiBpZiBj
b25maWd1cmF0aW9uKCkgZXEgIkRlYnVnX0FsbCI7Ci0gICAgJGR1bXBUb29sTmFtZSAuPSAiX2Rl
YnVnIiBpZiBjb25maWd1cmF0aW9uKCkgZXEgIkRlYnVnX0NhaXJvIjsKLSAgICAkZHVtcFRvb2xO
YW1lIC49ICRDb25maWd7X2V4ZX07Ci19Ci1teSAkZHVtcFRvb2wgPSBGaWxlOjpTcGVjLT5jYXRm
aWxlKCRwcm9kdWN0RGlyLCAkZHVtcFRvb2xOYW1lKTsKLWRpZSAiY2FuJ3QgZmluZCBleGVjdXRh
YmxlICRkdW1wVG9vbE5hbWUgKGxvb2tlZCBpbiAkcHJvZHVjdERpcilcbiIgdW5sZXNzIC14ICRk
dW1wVG9vbDsKLQotbXkgJGltYWdlRGlmZlRvb2wgPSAiJHByb2R1Y3REaXIvSW1hZ2VEaWZmIjsK
LSRpbWFnZURpZmZUb29sIC49ICJfZGVidWciIGlmIGlzQ3lnd2luKCkgJiYgY29uZmlndXJhdGlv
bigpIGVxICJEZWJ1Z19BbGwiOwotJGltYWdlRGlmZlRvb2wgLj0gIl9kZWJ1ZyIgaWYgaXNDeWd3
aW4oKSAmJiBjb25maWd1cmF0aW9uKCkgZXEgIkRlYnVnX0NhaXJvIjsKLWRpZSAiY2FuJ3QgZmlu
ZCBleGVjdXRhYmxlICRpbWFnZURpZmZUb29sIChsb29rZWQgaW4gJHByb2R1Y3REaXIpXG4iIGlm
ICRwaXhlbFRlc3RzICYmICEteCAkaW1hZ2VEaWZmVG9vbDsKLQotY2hlY2tGcmFtZXdvcmtzKCkg
dW5sZXNzIGlzQ3lnd2luKCkgb3IgaXNJT1NXZWJLaXQoKTsKLQotaWYgKGlzSU9TV2ViS2l0KCkp
IHsKLSAgICBwdXNoIEBJTkMsICRwcm9kdWN0RGlyIC4gIi9saWIvcGVybDUvZGFyd2luLXRocmVh
ZC1tdWx0aS0ybGV2ZWwiOwotICAgIHJlcXVpcmUgSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9u
OwotfQotCi1pZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7Ci0gICAgcHVzaCBASU5DLCAkcHJvZHVj
dERpcjsKLSAgICBldmFsICd1c2UgRHVtcFJlbmRlclRyZWVTdXBwb3J0Oyc7Ci19Ci0KLW9wZW5J
T1NTaW11bGF0b3IoKSBpZiBpc0lPU1dlYktpdCgpOwotCi1pZiAoaXNBcHBsZU1hY1dlYktpdCgp
KSB7Ci0gICAgcHVzaCBASU5DLCAkcHJvZHVjdERpcjsKLSAgICByZXF1aXJlIER1bXBSZW5kZXJU
cmVlU3VwcG9ydDsKLX0KLQotbXkgJGxheW91dFRlc3RzTmFtZSA9ICJMYXlvdXRUZXN0cyI7Ci1t
eSAkdGVzdERpcmVjdG9yeSA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJGxheW91dFRlc3RzTmFtZSk7
Ci1teSAkZXhwZWN0ZWREaXJlY3RvcnkgPSAkdGVzdERpcmVjdG9yeTsKLW15ICRwbGF0Zm9ybUJh
c2VEaXJlY3RvcnkgPSBjYXRkaXIoJHRlc3REaXJlY3RvcnksICJwbGF0Zm9ybSIpOwotbXkgJHBs
YXRmb3JtVGVzdERpcmVjdG9yeSA9IGNhdGRpcigkcGxhdGZvcm1CYXNlRGlyZWN0b3J5LCAkcGxh
dGZvcm0pOwotbXkgQHBsYXRmb3JtUmVzdWx0SGllcmFyY2h5ID0gYnVpbGRQbGF0Zm9ybVJlc3Vs
dEhpZXJhcmNoeSgpOwotbXkgQHBsYXRmb3JtVGVzdEhpZXJhcmNoeSA9IGJ1aWxkUGxhdGZvcm1U
ZXN0SGllcmFyY2h5KEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSk7Ci0KLSRleHBlY3RlZERpcmVj
dG9yeSA9ICRFTlZ7IldlYktpdEV4cGVjdGVkVGVzdFJlc3VsdHNEaXJlY3RvcnkifSBpZiAkRU5W
eyJXZWJLaXRFeHBlY3RlZFRlc3RSZXN1bHRzRGlyZWN0b3J5In07Ci0kZXhwZWN0ZWREaXJlY3Rv
cnkgPSAkaU9TRXhwZWN0ZWRSZXN1bHRzRGlyIGlmICRpT1NFeHBlY3RlZFJlc3VsdHNEaXIgJiYg
aXNJT1NXZWJLaXQoKTsKLQotJHRlc3RSZXN1bHRzRGlyZWN0b3J5ID0gRmlsZTo6U3BlYy0+Y2F0
ZmlsZSgkY3VycmVudERpciwgJHRlc3RSZXN1bHRzRGlyZWN0b3J5KTsKLSMgJHRlc3RSZXN1bHRz
RGlyZWN0b3J5IG11c3QgYmUgZW1wdHkgYmVmb3JlIHRlc3RpbmcuCi1ybXRyZWUgJHRlc3RSZXN1
bHRzRGlyZWN0b3J5OwotbXkgJHRlc3RSZXN1bHRzID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdGVz
dFJlc3VsdHNEaXJlY3RvcnksICJyZXN1bHRzLmh0bWwiKTsKLQotaWYgKGlzQXBwbGVNYWNXZWJL
aXQoKSAmJiAhaXNJT1NXZWJLaXQoKSkgewotICAgIHByaW50IFNUREVSUiAiQ29tcGlsaW5nIEph
dmEgdGVzdHNcbiI7Ci0gICAgbXkgJGphdmFUZXN0c0RpcmVjdG9yeSA9IGNhdGRpcigkdGVzdERp
cmVjdG9yeSwgImphdmEiKTsKLQotICAgIGlmIChzeXN0ZW0oIi91c3IvYmluL21ha2UiLCAiLUMi
LCAiJGphdmFUZXN0c0RpcmVjdG9yeSIpKSB7Ci0gICAgICAgIGV4aXQgMTsKLSAgICB9Ci19IGVs
c2lmIChpc0N5Z3dpbigpKSB7Ci0gICAgc2V0VXBXaW5kb3dzQ3Jhc2hMb2dTYXZpbmcoKTsKLX0K
LQotcHJpbnQgIlJ1bm5pbmcgdGVzdHMgZnJvbSAkdGVzdERpcmVjdG9yeVxuIjsKLWlmICgkcGl4
ZWxUZXN0cykgewotICAgIHByaW50ICJFbmFibGluZyBwaXhlbCB0ZXN0cyB3aXRoIGEgdG9sZXJh
bmNlIG9mICR0b2xlcmFuY2UlXG4iOwotICAgIGlmIChpc0RhcndpbigpKSB7Ci0gICAgICAgIGlm
ICghJHVzZVdlYktpdFRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHByaW50ICJXQVJOSU5HOiBU
ZW1wb3JhcmlseSBjaGFuZ2luZyB0aGUgbWFpbiBkaXNwbGF5IGNvbG9yIHByb2ZpbGU6XG4iOwot
ICAgICAgICAgICAgcHJpbnQgIlx0VGhlIGNvbG9ycyBvbiB5b3VyIHNjcmVlbiB3aWxsIGNoYW5n
ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0aW5nLlxuIjsKLSAgICAgICAgICAgIHByaW50
ICJcdFRoaXMgYWxsb3dzIHRoZSBwaXhlbCB0ZXN0cyB0byBoYXZlIGNvbnNpc3RlbnQgY29sb3Ig
dmFsdWVzIGFjcm9zcyBhbGwgbWFjaGluZXMuXG4iOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KGlzUGVyaWFuSW5zdGFsbGVkKCkpIHsKLSAgICAgICAgICAgIHByaW50ICJXQVJOSU5HOiBQZXJp
YW4ncyBRdWlja1RpbWUgY29tcG9uZW50IGlzIGluc3RhbGxlZCBhbmQgdGhpcyBtYXkgYWZmZWN0
IHBpeGVsIHRlc3QgcmVzdWx0cyFcbiI7Ci0gICAgICAgICAgICBwcmludCAiXHRZb3Ugc2hvdWxk
IGF2b2lkIGdlbmVyYXRpbmcgbmV3IHBpeGVsIHJlc3VsdHMgaW4gdGhpcyBlbnZpcm9ubWVudC5c
biI7Ci0gICAgICAgICAgICBwcmludCAiXHRTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjE1IGZvciBkZXRhaWxzLlxuIjsKLSAgICAgICAgfQotICAgIH0KLX0K
LQotc3lzdGVtICJsbiIsICItcyIsICR0ZXN0RGlyZWN0b3J5LCAiL3RtcC9MYXlvdXRUZXN0cyIg
dW5sZXNzIC14ICIvdG1wL0xheW91dFRlc3RzIjsKLQotbXkgJWlnbm9yZWRGaWxlcyA9ICggInJl
c3VsdHMuaHRtbCIgPT4gMSApOwotbXkgJWlnbm9yZWREaXJlY3RvcmllcyA9IG1hcCB7ICRfID0+
IDEgfSBxdyhwbGF0Zm9ybSk7Ci1teSAlaWdub3JlZExvY2FsRGlyZWN0b3JpZXMgPSBtYXAgeyAk
XyA9PiAxIH0gcXcoLnN2biBfc3ZuIHJlc291cmNlcyBzY3JpcHQtdGVzdHMpOwotbXkgJXN1cHBv
cnRlZEZpbGVFeHRlbnNpb25zID0gbWFwIHsgJF8gPT4gMSB9IHF3KGh0bSBodG1sIHNodG1sIHht
bCB4aHRtbCB4aHRtbG1wIHBsIHBocCBtaHQpOwotCi1pZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVT
dXBwb3J0KCJNYXRoTUwiLCAwKSkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J21hdGhtbCd9
ID0gMTsKLX0KLQotaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiTUhUTUwiLCAwKSkg
ewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J21odG1sJ30gPSAxOwotfQotCi0jIEZJWE1FOiBX
ZSBzaG91bGQgZml4IHdlYmtpdHBlcmwvZmVhdHVyZXMucG06aGFzRmVhdHVyZSgpIHRvIGRvIHRo
ZSBjb3JyZWN0IGZlYXR1cmUgZGV0ZWN0aW9uIGZvciBDeWd3aW4uCi1pZiAoY2hlY2tXZWJDb3Jl
RmVhdHVyZVN1cHBvcnQoIlNWRyIsIDApKSB7Ci0gICAgJHN1cHBvcnRlZEZpbGVFeHRlbnNpb25z
eydzdmcnfSA9IDE7Ci19IGVsc2lmIChpc0N5Z3dpbigpKSB7Ci0gICAgJHN1cHBvcnRlZEZpbGVF
eHRlbnNpb25zeydzdmcnfSA9IDE7Ci19IGVsc2UgewotICAgICRpZ25vcmVkTG9jYWxEaXJlY3Rv
cmllc3snc3ZnJ30gPSAxOwotfQotCi1pZiAoISR0ZXN0SFRUUCkgewotICAgICRpZ25vcmVkRGly
ZWN0b3JpZXN7J2h0dHAnfSA9IDE7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snd2Vic29ja2V0
J30gPSAxOwotfSBlbHNpZiAoIWhhc0hUVFBEKCkpIHsKLSAgICBwcmludCAiXG5ObyBodHRwZCBm
b3VuZC4gQ2Fubm90IHJ1biBodHRwIHRlc3RzLlxuUGxlYXNlIHVzZSAtLW5vLWh0dHAgaWYgeW91
IGRvIG5vdCB3YW50IHRvIHJ1biBodHRwIHRlc3RzLlxuIjsKLSAgICBleGl0IDE7Ci19Ci0KLWlm
ICghJHRlc3RXZWJTb2NrZXQpIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeyd3ZWJzb2NrZXQn
fSA9IDE7Ci19Ci0KLWlmICghJHRlc3RNZWRpYSkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7
J21lZGlhJ30gPSAxOwotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvbWVkaWEn
fSA9IDE7Ci19Ci0KLW15ICRzdXBwb3J0ZWRGZWF0dXJlc1Jlc3VsdCA9ICIiOwotCi1pZiAoaXND
eWd3aW4oKSkgewotICAgICMgQ29sbGVjdCBzdXBwb3J0ZWQgZmVhdHVyZXMgbGlzdAotICAgIG15
ICRzdXBwb3J0ZWRGZWF0dXJlc0NvbW1hbmQgPSAiXCIkZHVtcFRvb2xcIiAtLXByaW50LXN1cHBv
cnRlZC1mZWF0dXJlcyAyPiYxIjsKLSAgICAkc3VwcG9ydGVkRmVhdHVyZXNSZXN1bHQgPSBgJHN1
cHBvcnRlZEZlYXR1cmVzQ29tbWFuZCAyPiYxYDsKLX0KLQotbXkgJGhhc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcgPSAwOwotbXkgJGhhczNEUmVuZGVyaW5nID0gMDsKLQotaWYgKGlzQ3lnd2luKCkp
IHsKLSAgICAkaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9ICRzdXBwb3J0ZWRGZWF0dXJlc1Jl
c3VsdCA9fiAvQWNjZWxlcmF0ZWRDb21wb3NpdGluZy87Ci0gICAgJGhhczNEUmVuZGVyaW5nID0g
JHN1cHBvcnRlZEZlYXR1cmVzUmVzdWx0ID1+IC8zRFJlbmRlcmluZy87Ci19IGVsc2UgewotICAg
ICRoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQo
IkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIiwgMCk7Ci0gICAgJGhhczNEUmVuZGVyaW5nID0gY2hl
Y2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIjNEIFJlbmRlcmluZyIsIDApOwotfQotCi1pZiAoISRo
YXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKSB7Ci0gICAgJGlnbm9yZWREaXJlY3Rvcmllc3snY29t
cG9zaXRpbmcnfSA9IDE7Ci0KLSAgICAjIFRoaXMgdGVzdCBoYXMgc2xpZ2h0bHkgZGlmZmVyZW50
IGZsb2F0aW5nLXBvaW50IHJvdW5kaW5nIHdoZW4gYWNjZWxlcmF0ZWQKLSAgICAjIGNvbXBvc2l0
aW5nIGlzIGVuYWJsZWQuCi0gICAgJGlnbm9yZWRGaWxlc3snc3ZnL2N1c3RvbS91c2Utb24tc3lt
Ym9sLWluc2lkZS1wYXR0ZXJuLnN2Zyd9ID0gMTsKLQotICAgICMgVGhpcyB0ZXN0IGhhcyBhbiBp
ZnJhbWUgdGhhdCBpcyBwdXQgaW4gYSBsYXllciBvbmx5IGluIGNvbXBvc2l0aW5nIG1vZGUuCi0g
ICAgJGlnbm9yZWRGaWxlc3snbWVkaWEvbWVkaWEtZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1s
J30gPSAxOwotCi0gICAgaWYgKGlzQXBwbGVXZWJLaXQoKSkgewotICAgICAgICAjIEluIEFwcGxl
J3MgcG9ydHMsIHRoZSBkZWZhdWx0IGNvbnRyb2xzIGZvciA8dmlkZW8+IGNvbnRhaW4gYSAiZnVs
bAotICAgICAgICAjIHNjcmVlbiIgYnV0dG9uIG9ubHkgaWYgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgaXMgZW5hYmxlZC4KLSAgICAgICAgJGlnbm9yZWRGaWxlc3snbWVkaWEvY29udHJvbHMtYWZ0
ZXItcmVsb2FkLmh0bWwnfSA9IDE7Ci0gICAgICAgICRpZ25vcmVkRmlsZXN7J21lZGlhL2NvbnRy
b2xzLWRyYWctdGltZWJhci5odG1sJ30gPSAxOwotICAgICAgICAkaWdub3JlZEZpbGVzeydtZWRp
YS9jb250cm9scy1zdHJpY3QuaHRtbCd9ID0gMTsKLSAgICAgICAgJGlnbm9yZWRGaWxlc3snbWVk
aWEvY29udHJvbHMtc3R5bGluZy5odG1sJ30gPSAxOwotICAgICAgICAkaWdub3JlZEZpbGVzeydt
ZWRpYS9jb250cm9scy13aXRob3V0LXByZWxvYWQuaHRtbCd9ID0gMTsKLSAgICAgICAgJGlnbm9y
ZWRGaWxlc3snbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLmh0bWwnfSA9IDE7Ci0gICAg
ICAgICRpZ25vcmVkRmlsZXN7J21lZGlhL3ZpZGVvLWRpc3BsYXktdG9nZ2xlLmh0bWwnfSA9IDE7
Ci0gICAgICAgICRpZ25vcmVkRmlsZXN7J21lZGlhL3ZpZGVvLW5vLWF1ZGlvLmh0bWwnfSA9IDE7
Ci0gICAgfQotCi0gICAgIyBIZXJlIHdlJ3JlIHVzaW5nICEkaGFzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZyBhcyBhIHByb3h5IGZvciAiaXMgYSBoZWFkbGVzcyBYUCBtYWNoaW5lIiAobGlrZQotICAg
ICMgb3VyIHRlc3Qgc2xhdmVzKS4gSGVhZGxlc3MgWFAgbWFjaGluZXMgY2FuIG5laXRoZXIgc3Vw
cG9ydCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBub3IgcGFzcwotICAgICMgdGhpcyB0ZXN0LCBz
byBza2lwcGluZyB0aGUgdGVzdCBoZXJlIGlzIGV4cGVkaWVudCwgaWYgYSBsaXR0bGUgc2xvcHB5
LiBTZWUKLSAgICAjIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ4MzMzPi4KLSAgICAkaWdub3JlZEZp
bGVzeydwbGF0Zm9ybS93aW4vcGx1Z2lucy9ucG4taW52YWxpZGF0ZS1yZWN0LWludmFsaWRhdGVz
LXdpbmRvdy5odG1sJ30gPSAxIGlmIGlzQXBwbGVXaW5XZWJLaXQoKTsKLX0KLQotaWYgKCEkaGFz
M0RSZW5kZXJpbmcpIHsKLSAgICAkaWdub3JlZERpcmVjdG9yaWVzeydhbmltYXRpb25zLzNkJ30g
PSAxOwotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J3RyYW5zZm9ybXMvM2QnfSA9IDE7Ci0KLSAg
ICAjIFRoZXNlIHRlc3RzIHVzZSB0aGUgLXdlYmtpdC10cmFuc2Zvcm0tM2QgbWVkaWEgcXVlcnku
Ci0gICAgJGlnbm9yZWRGaWxlc3snZmFzdC9tZWRpYS9tcS10cmFuc2Zvcm0tMDIuaHRtbCd9ID0g
MTsKLSAgICAkaWdub3JlZEZpbGVzeydmYXN0L21lZGlhL21xLXRyYW5zZm9ybS0wMy5odG1sJ30g
PSAxOwotfQotCi1pZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCIzRCBDYW52YXMiLCAw
KSkgewotICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zhc3QvY2FudmFzL3dlYmdsJ30gPSAxOwot
ICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2NvbXBvc2l0aW5nL3dlYmdsJ30gPSAxOwotICAgICRp
Z25vcmVkRGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvY2FudmFzL3dlYmdsJ30gPSAxOwotfQotCi1p
ZiAoaXNBcHBsZU1hY1dlYktpdCgpICYmICRwbGF0Zm9ybSBuZSAibWFjLXdrMiIgJiYgb3NYVmVy
c2lvbigpLT57bWlub3J9ID49IDYgJiYgYXJjaGl0ZWN0dXJlKCkgPX4gL3g4Nl82NC8pIHsKLSAg
ICAjIFRoaXMgdGVzdCByZWxpZXMgb24gZXhlY3V0aW5nIEphdmFTY3JpcHQgZHVyaW5nIE5QUF9E
ZXN0cm95LCB3aGljaCBpc24ndCBzdXBwb3J0ZWQgd2l0aAotICAgICMgb3V0LW9mLXByb2Nlc3Mg
cGx1Z2lucyBpbiBXZWJLaXQxLiBTZWUgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTgwNzc+LgotICAg
ICRpZ25vcmVkRmlsZXN7J3BsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0
cnVjdGlvbi5odG1sJ30gPSAxOwotfQotCi1wcm9jZXNzSWdub3JlVGVzdHMoam9pbignLCcsIEBp
Z25vcmVUZXN0cyksICJpZ25vcmUtdGVzdHMiKSBpZiBAaWdub3JlVGVzdHM7Ci1pZiAoISRpZ25v
cmVTa2lwcGVkKSB7Ci0gICAgaWYgKCEkc2tpcHBlZE9ubHkgfHwgQEFSR1YgPT0gMCkgewotICAg
ICAgICByZWFkU2tpcHBlZEZpbGVzKCIiKTsKLSAgICB9IGVsc2UgewotICAgICAgICAjIFNpbmNl
IHJlYWRTa2lwcGVkRmlsZXMoKSBhcHBlbmRzIHRvIEBBUkdWLCB3ZSBtdXN0IHVzZSBhIGZvcmVh
Y2gKLSAgICAgICAgIyBsb29wIHNvIHRoYXQgd2Ugb25seSBpdGVyYXRlIG92ZXIgdGhlIG9yaWdp
bmFsIGFyZ3VtZW50IGxpc3QuCi0gICAgICAgIGZvcmVhY2ggbXkgJGFyZ251bSAoMCAuLiAkI0FS
R1YpIHsKLSAgICAgICAgICAgIHJlYWRTa2lwcGVkRmlsZXMoc2hpZnQgQEFSR1YpOwotICAgICAg
ICB9Ci0gICAgfQotfQotCi1teSBAdGVzdHMgPSBmaW5kVGVzdHNUb1J1bigpOwotCi1kaWUgIm5v
IHRlc3RzIHRvIHJ1blxuIiBpZiAhQHRlc3RzOwotCi1teSAlY291bnRzOwotbXkgJXRlc3RzOwot
bXkgJWltYWdlc1ByZXNlbnQ7Ci1teSAlaW1hZ2VEaWZmZXJlbmNlczsKLW15ICVkdXJhdGlvbnM7
Ci1teSAkY291bnQgPSAwOwotbXkgJGxlYWtzT3V0cHV0RmlsZU51bWJlciA9IDE7Ci1teSAkdG90
YWxMZWFrcyA9IDA7Ci1teSAkc3RvcHBlZFJ1bm5pbmdFYXJseU1lc3NhZ2U7Ci0KLW15IEB0b29s
QXJncyA9ICgpOwotcHVzaCBAdG9vbEFyZ3MsICItLXBpeGVsLXRlc3RzIiBpZiAkcGl4ZWxUZXN0
czsKLXB1c2ggQHRvb2xBcmdzLCAiLS10aHJlYWRlZCIgaWYgJHRocmVhZGVkOwotcHVzaCBAdG9v
bEFyZ3MsICItLWNvbXBsZXgtdGV4dCIgaWYgJGNvbXBsZXhUZXh0OwotcHVzaCBAdG9vbEFyZ3Ms
ICItLWdjLWJldHdlZW4tdGVzdHMiIGlmICRnY0JldHdlZW5UZXN0czsKLXB1c2ggQHRvb2xBcmdz
LCAiLSI7Ci0KLW15IEBkaWZmVG9vbEFyZ3MgPSAoKTsKLXB1c2ggQGRpZmZUb29sQXJncywgIi0t
dG9sZXJhbmNlIiwgJHRvbGVyYW5jZTsKLQotJHwgPSAxOwotCi1teSAkZHVtcFRvb2xQSUQ7Ci1t
eSAkaXNEdW1wVG9vbE9wZW4gPSAwOwotbXkgJGR1bXBUb29sQ3Jhc2hlZCA9IDA7Ci1teSAkaW1h
Z2VEaWZmVG9vbFBJRDsKLW15ICRpc0RpZmZUb29sT3BlbiA9IDA7Ci0KLW15ICRhdExpbmVTdGFy
dCA9IDE7Ci1teSAkbGFzdERpcmVjdG9yeSA9ICIiOwotCi1teSAkaXNIdHRwZE9wZW4gPSAwOwot
bXkgJGlzV2ViU29ja2V0U2VydmVyT3BlbiA9IDA7Ci1teSAkd2ViU29ja2V0U2VydmVyUGlkRmls
ZSA9IDA7Ci1teSAkZmFpbGVkVG9TdGFydFdlYlNvY2tldFNlcnZlciA9IDA7Ci0jIHdzcyBpcyBk
aXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotIyBteSAkd2Vi
U29ja2V0U2VjdXJlU2VydmVyUElEID0gMDsKLQotc3ViIGNhdGNoX3BpcGUgeyAkZHVtcFRvb2xD
cmFzaGVkID0gMTsgfQotJFNJR3siUElQRSJ9ID0gImNhdGNoX3BpcGUiOwotCi1wcmludCAiVGVz
dGluZyAiLCBzY2FsYXIgQHRlc3RzLCAiIHRlc3QgY2FzZXMiOwotcHJpbnQgIiAkaXRlcmF0aW9u
cyB0aW1lcyIgaWYgKCRpdGVyYXRpb25zID4gMSk7Ci1wcmludCAiLCByZXBlYXRpbmcgZWFjaCB0
ZXN0ICRyZXBlYXRFYWNoIHRpbWVzIiBpZiAoJHJlcGVhdEVhY2ggPiAxKTsKLXByaW50ICIuXG4i
OwotCi1teSAkb3ZlcmFsbFN0YXJ0VGltZSA9IHRpbWU7Ci0KLW15ICVleHBlY3RlZFJlc3VsdFBh
dGhzOwotCi1teSBAb3JpZ2luYWxUZXN0cyA9IEB0ZXN0czsKLSMgQWRkIGluZGl2aWR1YWwgdGVz
dCByZXBldGl0aW9ucwotaWYgKCRyZXBlYXRFYWNoID4gMSkgewotICAgIEB0ZXN0cyA9ICgpOwot
ICAgIGZvcmVhY2ggbXkgJHRlc3QgKEBvcmlnaW5hbFRlc3RzKSB7Ci0gICAgICAgIGZvciAobXkg
JGkgPSAwOyAkaSA8ICRyZXBlYXRFYWNoOyAkaSsrKSB7Ci0gICAgICAgICAgICBwdXNoKEB0ZXN0
cywgJHRlc3QpOwotICAgICAgICB9Ci0gICAgfQotfQotIyBBZGQgdGVzdCBzZXQgcmVwZXRpdGlv
bnMKLWZvciAobXkgJGkgPSAxOyAkaSA8ICRpdGVyYXRpb25zOyAkaSsrKSB7Ci0gICAgcHVzaChA
dGVzdHMsIEBvcmlnaW5hbFRlc3RzKTsKLX0KLQotbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5
ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotb3BlbiBteSAkdGVzdHNf
cnVuX2ZoLCAnPicsICIkYWJzVGVzdFJlc3VsdHNEaXJlY3RvcnkvdGVzdHNfcnVuLnR4dCIgb3Ig
ZGllICQhOwotCi1mb3IgbXkgJHRlc3QgKEB0ZXN0cykgewotICAgIG15ICRuZXdEdW1wVG9vbCA9
IG5vdCAkaXNEdW1wVG9vbE9wZW47Ci0gICAgb3BlbkR1bXBUb29sKCk7Ci0KLSAgICBteSAkYmFz
ZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsKLSAgICBteSAkZXhwZWN0ZWRFeHRlbnNpb24gPSAi
LnR4dCI7Ci0gICAgCi0gICAgbXkgJGRpciA9ICRiYXNlOwotICAgICRkaXIgPX4gc3wvW14vXSsk
fHw7Ci0KLSAgICBpZiAoJG5ld0R1bXBUb29sIHx8ICRkaXIgbmUgJGxhc3REaXJlY3RvcnkpIHsK
LSAgICAgICAgZm9yZWFjaCBteSAkbG9ndWUgKGVwaWxvZ3Vlc0FuZFByb2xvZ3VlcygkbmV3RHVt
cFRvb2wgPyAiIiA6ICRsYXN0RGlyZWN0b3J5LCAkZGlyKSkgewotICAgICAgICAgICAgaWYgKGlz
Q3lnd2luKCkpIHsKLSAgICAgICAgICAgICAgICAkbG9ndWUgPSB0b1dpbmRvd3NQYXRoKCRsb2d1
ZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRsb2d1ZSA9IGNhbm9u
cGF0aCgkbG9ndWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7
Ci0gICAgICAgICAgICAgICAgcHJpbnQgInJ1bm5pbmcgZXBpbG9ndWUgb3IgcHJvbG9ndWUgJGxv
Z3VlXG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnQgT1VUICIkbG9ndWVcbiI7
Ci0gICAgICAgICAgICAjIFRocm93IGF3YXkgb3V0cHV0IGZyb20gRHVtcFJlbmRlclRyZWUuCi0g
ICAgICAgICAgICAjIE9uY2UgZm9yIHRoZSB0ZXN0IG91dHB1dCBhbmQgb25jZSBmb3IgcGl4ZWwg
cmVzdWx0cyAoZW1wdHkpCi0gICAgICAgICAgICB3aGlsZSAoPElOPikgewotICAgICAgICAgICAg
ICAgIGxhc3QgaWYgLyNFT0YvOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgd2hpbGUgKDxJ
Tj4pIHsKLSAgICAgICAgICAgICAgICBsYXN0IGlmIC8jRU9GLzsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGlmICgkdmVyYm9zZSkgewotICAgICAgICBwcmludCAicnVu
bmluZyAkdGVzdCAtPiAiOwotICAgICAgICAkYXRMaW5lU3RhcnQgPSAwOwotICAgIH0gZWxzaWYg
KCEkcXVpZXQpIHsKLSAgICAgICAgaWYgKCRkaXIgbmUgJGxhc3REaXJlY3RvcnkpIHsKLSAgICAg
ICAgICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsKLSAgICAgICAgICAgIHByaW50
ICIkZGlyICI7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnQgIi4iOwotICAgICAgICAkYXRMaW5l
U3RhcnQgPSAwOwotICAgIH0KLQotICAgICRsYXN0RGlyZWN0b3J5ID0gJGRpcjsKLQotICAgIG15
ICRyZXN1bHQ7Ci0KLSAgICBteSAkc3RhcnRUaW1lID0gdGltZSBpZiAkcmVwb3J0MTBTbG93ZXN0
OwotCi0gICAgcHJpbnQgJHRlc3RzX3J1bl9maCAiJHRlc3RcbiI7Ci0KLSAgICAjIFRyeSB0byBy
ZWFkIGV4cGVjdGVkIGhhc2ggZmlsZSBmb3IgcGl4ZWwgdGVzdHMKLSAgICBteSAkc3VmZml4UGl4
ZWxUZXN0ID0gIiI7Ci0gICAgaWYgKCRwaXhlbFRlc3RzKSB7Ci0gICAgICAgICMgJyBpcyB0aGUg
c2VwYXJhdG9yIGJldHdlZW4gYXJndW1lbnRzLgotICAgICAgICAkc3VmZml4UGl4ZWxUZXN0ID0g
IictLXBpeGVsLXRlc3QiOwotICAgICAgICBpZiAoISRyZXNldFJlc3VsdHMpIHsKLSAgICAgICAg
ICAgIG15ICRleHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JUZXN0KCRiYXNl
LCAwLCAicG5nIik7Ci0gICAgICAgICAgICBpZiAobXkgJGV4cGVjdGVkSGFzaCA9IHJlYWRDaGVj
a3N1bUZyb21QbmcoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZXhwZWN0ZWRQaXhlbERpciwgIiRiYXNl
LSRleHBlY3RlZFRhZy5wbmciKSkpIHsKLSAgICAgICAgICAgICAgICAjIEZvcm1hdCBleHBlY3Rl
ZCBoYXNoIGludG8gYSBzdWZmaXggc3RyaW5nIHRoYXQgaXMgYXBwZW5kZWQgdG8gdGhlIHBhdGgg
LyBVUkwgcGFzc2VkIHRvIERSVC4KLSAgICAgICAgICAgICAgICAkc3VmZml4UGl4ZWxUZXN0ID0g
IictLXBpeGVsLXRlc3QnJGV4cGVjdGVkSGFzaCI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBpZiAoJHRlc3QgPX4gL15odHRwXC8vKSB7Ci0gICAgICAgIGNvbmZpZ3Vy
ZUFuZE9wZW5IVFRQRElmTmVlZGVkKCk7Ci0gICAgICAgIGlmICgkdGVzdCA9fiAvXmh0dHBcL3Rl
c3RzXC93ZWJzb2NrZXRcLy8pIHsKLSAgICAgICAgICAgIGlmICgkdGVzdCA9fiAvXndlYnNvY2tl
dFwvdGVzdHNcL2xvY2FsXC8vKSB7Ci0gICAgICAgICAgICAgICAgbXkgJHRlc3RQYXRoID0gIiR0
ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKLSAgICAgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgewot
ICAgICAgICAgICAgICAgICAgICAkdGVzdFBhdGggPSB0b1dpbmRvd3NQYXRoKCR0ZXN0UGF0aCk7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgJHRlc3RQYXRo
ID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHByaW50IE9VVCAiJHRlc3RQYXRoXG4iOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBpZiAob3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVkKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgbXkgJHBhdGggPSBjYW5vbnBhdGgoJHRlc3QpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoJHRlc3QgPX4gL15odHRwXC90ZXN0c1wvd2Vic29ja2V0XC90ZXN0c1wvc3NsXC8v
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwg
cGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgotICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQgU1RERVJSICJFcnJvcjogd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3Vw
cG9ydCBweU9wZW5TU0wuIjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICRwYXRoID1+IHMvXmh0dHBcL3Rlc3RzXC8vLzsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDovLzEyNy4wLjAuMTokaHR0cGRQb3J0LyRwYXRo
XG4iOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgIyBXZSBmYWlsZWQgdG8gbGF1bmNoIHRoZSBXZWJTb2NrZXQgc2Vy
dmVyLiAgRGlzcGxheSBhIHVzZWZ1bCBlcnJvciBtZXNzYWdlIHJhdGhlciB0aGFuIGF0dGVtcHRp
bmcKLSAgICAgICAgICAgICAgICAgICAgIyB0byBydW4gdGVzdHMgdGhhdCBleHBlY3QgdGhlIHNl
cnZlciB0byBiZSBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgICAgIG15ICRlcnJvck1lc3Nh
Z2VQYXRoID0gIiR0ZXN0RGlyZWN0b3J5L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Jlc291cmNlcy9z
ZXJ2ZXItZmFpbGVkLXRvLXN0YXJ0Lmh0bWwiOwotICAgICAgICAgICAgICAgICAgICAkZXJyb3JN
ZXNzYWdlUGF0aCA9IGlzQ3lnd2luKCkgPyB0b1dpbmRvd3NQYXRoKCRlcnJvck1lc3NhZ2VQYXRo
KSA6IGNhbm9ucGF0aCgkZXJyb3JNZXNzYWdlUGF0aCk7Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50IE9VVCAiJGVycm9yTWVzc2FnZVBhdGhcbiI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICB9IGVsc2lmICgkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9sb2NhbFwv
LyAmJiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8pIHsKLSAgICAgICAgICAgIG15ICRw
YXRoID0gY2Fub25wYXRoKCR0ZXN0KTsKLSAgICAgICAgICAgICRwYXRoID1+IHMvXmh0dHBcL3Rl
c3RzXC8vLzsKLSAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDovLzEyNy4wLjAuMTokaHR0cGRQ
b3J0LyRwYXRoJHN1ZmZpeFBpeGVsVGVzdFxuIjsKLSAgICAgICAgfSBlbHNpZiAoJHRlc3QgPX4g
L15odHRwXC90ZXN0c1wvc3NsXC8vKSB7Ci0gICAgICAgICAgICBteSAkcGF0aCA9IGNhbm9ucGF0
aCgkdGVzdCk7Ci0gICAgICAgICAgICAkcGF0aCA9fiBzL15odHRwXC90ZXN0c1wvLy87Ci0gICAg
ICAgICAgICBwcmludCBPVVQgImh0dHBzOi8vMTI3LjAuMC4xOiRodHRwZFNTTFBvcnQvJHBhdGgk
c3VmZml4UGl4ZWxUZXN0XG4iOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkgJHRl
c3RQYXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKLSAgICAgICAgICAgIGlmIChpc0N5Z3dp
bigpKSB7Ci0gICAgICAgICAgICAgICAgJHRlc3RQYXRoID0gdG9XaW5kb3dzUGF0aCgkdGVzdFBh
dGgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkdGVzdFBhdGggPSBj
YW5vbnBhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50IE9V
VCAiJHRlc3RQYXRoJHN1ZmZpeFBpeGVsVGVzdFxuIjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7
Ci0gICAgICAgIG15ICR0ZXN0UGF0aCA9ICIkdGVzdERpcmVjdG9yeS8kdGVzdCI7Ci0gICAgICAg
IGlmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICAgICAkdGVzdFBhdGggPSB0b1dpbmRvd3NQYXRo
KCR0ZXN0UGF0aCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkdGVzdFBhdGggPSBj
YW5vbnBhdGgoJHRlc3RQYXRoKTsKLSAgICAgICAgfQotICAgICAgICBwcmludCBPVVQgIiR0ZXN0
UGF0aCRzdWZmaXhQaXhlbFRlc3RcbiIgaWYgZGVmaW5lZCAkdGVzdFBhdGg7Ci0gICAgfQotCi0g
ICAgIyBEdW1wUmVuZGVyVHJlZSBpcyBleHBlY3RlZCB0byBkdW1wIHR3byAiYmxvY2tzIiB0byBz
dGRvdXQgZm9yIGVhY2ggdGVzdC4KLSAgICAjIEVhY2ggYmxvY2sgaXMgdGVybWluYXRlZCBieSBh
ICNFT0Ygb24gYSBsaW5lIGJ5IGl0c2VsZi4KLSAgICAjIFRoZSBmaXJzdCBibG9jayBpcyB0aGUg
b3V0cHV0IG9mIHRoZSB0ZXN0IChpbiB0ZXh0LCBSZW5kZXJUcmVlIG9yIG90aGVyIGZvcm1hdHMp
LgotICAgICMgVGhlIHNlY29uZCBibG9jayBpcyBmb3Igb3B0aW9uYWwgcGl4ZWwgZGF0YSBpbiBQ
TkcgZm9ybWF0LCBhbmQgbWF5IGJlIGVtcHR5IGlmCi0gICAgIyBwaXhlbCB0ZXN0cyBhcmUgbm90
IGJlaW5nIHJ1biwgb3IgdGhlIHRlc3QgZG9lcyBub3QgZHVtcCBwaXhlbHMgKGUuZy4gdGV4dCB0
ZXN0cykuCi0gICAgbXkgJHJlYWRSZXN1bHRzID0gcmVhZEZyb21EdW1wVG9vbFdpdGhUaW1lcihJ
TiwgRVJST1IpOwotCi0gICAgbXkgJGFjdHVhbCA9ICRyZWFkUmVzdWx0cy0+e291dHB1dH07Ci0g
ICAgbXkgJGVycm9yID0gJHJlYWRSZXN1bHRzLT57ZXJyb3J9OwotCi0gICAgJGV4cGVjdGVkRXh0
ZW5zaW9uID0gJHJlYWRSZXN1bHRzLT57ZXh0ZW5zaW9ufTsKLSAgICBteSAkZXhwZWN0ZWRGaWxl
TmFtZSA9ICIkYmFzZS0kZXhwZWN0ZWRUYWcuJGV4cGVjdGVkRXh0ZW5zaW9uIjsKLQotICAgIG15
ICRpc1RleHQgPSBpc1RleHRPbmx5VGVzdCgkYWN0dWFsKTsKLQotICAgIG15ICRleHBlY3RlZERp
ciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgJGlzVGV4dCwgJGV4cGVjdGVkRXh0
ZW5zaW9uKTsKLSAgICAkZXhwZWN0ZWRSZXN1bHRQYXRoc3skYmFzZX0gPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCRleHBlY3RlZERpciwgJGV4cGVjdGVkRmlsZU5hbWUpOwotCi0gICAgdW5sZXNzICgk
cmVhZFJlc3VsdHMtPntzdGF0dXN9IGVxICJzdWNjZXNzIikgewotICAgICAgICBteSAkY3Jhc2hl
ZCA9ICRyZWFkUmVzdWx0cy0+e3N0YXR1c30gZXEgImNyYXNoZWQiOwotICAgICAgICBteSAkd2Vi
UHJvY2Vzc0NyYXNoZWQgPSAkcmVhZFJlc3VsdHMtPntzdGF0dXN9IGVxICJ3ZWJQcm9jZXNzQ3Jh
c2hlZCI7Ci0gICAgICAgIHRlc3RDcmFzaGVkT3JUaW1lZE91dCgkdGVzdCwgJGJhc2UsICRjcmFz
aGVkLCAkd2ViUHJvY2Vzc0NyYXNoZWQsICRhY3R1YWwsICRlcnJvcik7Ci0gICAgICAgIGNvdW50
RmluaXNoZWRUZXN0KCR0ZXN0LCAkYmFzZSwgJHdlYlByb2Nlc3NDcmFzaGVkID8gIndlYlByb2Nl
c3NDcmFzaCIgOiAkY3Jhc2hlZCA/ICJjcmFzaCIgOiAidGltZWRvdXQiLCAwKTsKLSAgICAgICAg
bGFzdCBpZiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpOwotICAgICAgICBuZXh0Owot
ICAgIH0KLQotICAgICRkdXJhdGlvbnN7JHRlc3R9ID0gdGltZSAtICRzdGFydFRpbWUgaWYgJHJl
cG9ydDEwU2xvd2VzdDsKLQotICAgIG15ICRleHBlY3RlZDsKLQotICAgIGlmICghJHJlc2V0UmVz
dWx0cyAmJiBvcGVuIEVYUEVDVEVELCAiPCIsICRleHBlY3RlZFJlc3VsdFBhdGhzeyRiYXNlfSkg
ewotICAgICAgICAkZXhwZWN0ZWQgPSAiIjsKLSAgICAgICAgd2hpbGUgKDxFWFBFQ1RFRD4pIHsK
LSAgICAgICAgICAgIG5leHQgaWYgJHN0cmlwRWRpdGluZ0NhbGxiYWNrcyAmJiAkXyA9fiAvXkVE
SVRJTkcgREVMRUdBVEU6LzsKLSAgICAgICAgICAgICRleHBlY3RlZCAuPSAkXzsKLSAgICAgICAg
fQotICAgICAgICBjbG9zZSBFWFBFQ1RFRDsKLSAgICB9Ci0KLSAgICBpZiAoJGlnbm9yZU1ldHJp
Y3MgJiYgISRpc1RleHQgJiYgZGVmaW5lZCAkZXhwZWN0ZWQpIHsKLSAgICAgICAgKCRhY3R1YWws
ICRleHBlY3RlZCkgPSBzdHJpcE1ldHJpY3MoJGFjdHVhbCwgJGV4cGVjdGVkKTsKLSAgICB9Ci0K
LSAgICBpZiAoJHNob3VsZENoZWNrTGVha3MgJiYgJHRlc3RzUGVyRHVtcFRvb2wgPT0gMSkgewot
ICAgICAgICBwcmludCAiICAgICAgICAkdGVzdCAtPiAiOwotICAgIH0KLQotICAgIG15ICRhY3R1
YWxQTkcgPSAiIjsKLSAgICBteSAkZGlmZlBORyA9ICIiOwotICAgIG15ICRkaWZmUGVyY2VudGFn
ZSA9IDA7Ci0gICAgbXkgJGRpZmZSZXN1bHQgPSAicGFzc2VkIjsKLQotICAgIG15ICRhY3R1YWxI
YXNoID0gIiI7Ci0gICAgbXkgJGV4cGVjdGVkSGFzaCA9ICIiOwotICAgIG15ICRhY3R1YWxQTkdT
aXplID0gMDsKLQotICAgIHdoaWxlICg8SU4+KSB7Ci0gICAgICAgIGxhc3QgaWYgLyNFT0YvOwot
ICAgICAgICBpZiAoL0FjdHVhbEhhc2g6IChbYS1mMC05XXszMn0pLykgewotICAgICAgICAgICAg
JGFjdHVhbEhhc2ggPSAkMTsKLSAgICAgICAgfSBlbHNpZiAoL0V4cGVjdGVkSGFzaDogKFthLWYw
LTldezMyfSkvKSB7Ci0gICAgICAgICAgICAkZXhwZWN0ZWRIYXNoID0gJDE7Ci0gICAgICAgIH0g
ZWxzaWYgKC9Db250ZW50LUxlbmd0aDogKFxkKylccyovKSB7Ci0gICAgICAgICAgICAkYWN0dWFs
UE5HU2l6ZSA9ICQxOwotICAgICAgICAgICAgcmVhZChJTiwgJGFjdHVhbFBORywgJGFjdHVhbFBO
R1NpemUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCR2ZXJib3NlICYmICRwaXhlbFRl
c3RzICYmICEkcmVzZXRSZXN1bHRzICYmICRhY3R1YWxQTkdTaXplKSB7Ci0gICAgICAgIGlmICgk
YWN0dWFsSGFzaCBlcSAiIiAmJiAkZXhwZWN0ZWRIYXNoIGVxICIiKSB7Ci0gICAgICAgICAgICBw
cmludEZhaWx1cmVNZXNzYWdlRm9yVGVzdCgkdGVzdCwgIldBUk5JTkc6IGFjdHVhbCAmIGV4cGVj
dGVkIHBpeGVsIGhhc2hlcyBhcmUgbWlzc2luZyEiKTsKLSAgICAgICAgfSBlbHNpZiAoJGFjdHVh
bEhhc2ggZXEgIiIpIHsKLSAgICAgICAgICAgIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCR0
ZXN0LCAiV0FSTklORzogYWN0dWFsIHBpeGVsIGhhc2ggaXMgbWlzc2luZyEiKTsKLSAgICAgICAg
fSBlbHNpZiAoJGV4cGVjdGVkSGFzaCBlcSAiIikgewotICAgICAgICAgICAgcHJpbnRGYWlsdXJl
TWVzc2FnZUZvclRlc3QoJHRlc3QsICJXQVJOSU5HOiBleHBlY3RlZCBwaXhlbCBoYXNoIGlzIG1p
c3NpbmchIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoJGFjdHVhbFBOR1NpemUgPiAw
KSB7Ci0gICAgICAgIG15ICRleHBlY3RlZFBpeGVsRGlyID0gZXhwZWN0ZWREaXJlY3RvcnlGb3JU
ZXN0KCRiYXNlLCAwLCAicG5nIik7Ci0gICAgICAgIG15ICRleHBlY3RlZFBOR1BhdGggPSBGaWxl
OjpTcGVjLT5jYXRmaWxlKCRleHBlY3RlZFBpeGVsRGlyLCAiJGJhc2UtJGV4cGVjdGVkVGFnLnBu
ZyIpOwotCi0gICAgICAgIGlmICghJHJlc2V0UmVzdWx0cyAmJiAoJGV4cGVjdGVkSGFzaCBuZSAk
YWN0dWFsSGFzaCB8fCAoJGFjdHVhbEhhc2ggZXEgIiIgJiYgJGV4cGVjdGVkSGFzaCBlcSAiIikp
KSB7Ci0gICAgICAgICAgICBpZiAoLWYgJGV4cGVjdGVkUE5HUGF0aCkgewotICAgICAgICAgICAg
ICAgIG15ICRleHBlY3RlZFBOR1NpemUgPSAtcyAkZXhwZWN0ZWRQTkdQYXRoOwotICAgICAgICAg
ICAgICAgIG15ICRleHBlY3RlZFBORyA9ICIiOwotICAgICAgICAgICAgICAgIG9wZW4gRVhQRUNU
RURQTkcsICRleHBlY3RlZFBOR1BhdGg7Ci0gICAgICAgICAgICAgICAgcmVhZChFWFBFQ1RFRFBO
RywgJGV4cGVjdGVkUE5HLCAkZXhwZWN0ZWRQTkdTaXplKTsKLQotICAgICAgICAgICAgICAgIG9w
ZW5EaWZmVG9vbCgpOwotICAgICAgICAgICAgICAgIHByaW50IERJRkZPVVQgIkNvbnRlbnQtTGVu
Z3RoOiAkYWN0dWFsUE5HU2l6ZVxuIjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICRh
Y3R1YWxQTkc7Ci0KLSAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICJDb250ZW50LUxlbmd0
aDogJGV4cGVjdGVkUE5HU2l6ZVxuIjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGT1VUICRl
eHBlY3RlZFBORzsKLQotICAgICAgICAgICAgICAgIHdoaWxlICg8RElGRklOPikgewotICAgICAg
ICAgICAgICAgICAgICBsYXN0IGlmIC9eZXJyb3IvIHx8IC9eZGlmZjovOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoL0NvbnRlbnQtTGVuZ3RoOiAoXGQrKVxzKi8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYWQoRElGRklOLCAkZGlmZlBORywgJDEpOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKC9eZGlmZjogKC4r
KSUgKHBhc3NlZHxmYWlsZWQpLykgewotICAgICAgICAgICAgICAgICAgICAkZGlmZlBlcmNlbnRh
Z2UgPSAkMSArIDA7Ci0gICAgICAgICAgICAgICAgICAgICRpbWFnZURpZmZlcmVuY2VzeyRiYXNl
fSA9ICRkaWZmUGVyY2VudGFnZTsKLSAgICAgICAgICAgICAgICAgICAgJGRpZmZSZXN1bHQgPSAk
MjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
aWYgKCEkZGlmZlBlcmNlbnRhZ2UpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRGYWlsdXJl
TWVzc2FnZUZvclRlc3QoJHRlc3QsICJwaXhlbCBoYXNoIGZhaWxlZCAoYnV0IHBpeGVsIHRlc3Qg
c3RpbGwgcGFzc2VzKSIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzaWYg
KCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRlc3Qo
JHRlc3QsICJXQVJOSU5HOiBleHBlY3RlZCBpbWFnZSBpcyBtaXNzaW5nISIpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCRyZXNldFJlc3VsdHMgfHwgIS1mICRleHBl
Y3RlZFBOR1BhdGgpIHsKLSAgICAgICAgICAgIGlmICghJGFkZFBsYXRmb3JtRXhjZXB0aW9ucykg
ewotICAgICAgICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRleHBlY3RlZFBpeGVsRGlyLCBkaXJu
YW1lKCRiYXNlKSkgaWYgJHRlc3REaXJlY3RvcnkgbmUgJGV4cGVjdGVkUGl4ZWxEaXI7Ci0gICAg
ICAgICAgICAgICAgd3JpdGVUb0ZpbGUoJGV4cGVjdGVkUE5HUGF0aCwgJGFjdHVhbFBORyk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1rcGF0aCBjYXRmaWxlKCRwbGF0
Zm9ybVRlc3REaXJlY3RvcnksIGRpcm5hbWUoJGJhc2UpKTsKLSAgICAgICAgICAgICAgICB3cml0
ZVRvRmlsZSgiJHBsYXRmb3JtVGVzdERpcmVjdG9yeS8kYmFzZS0kZXhwZWN0ZWRUYWcucG5nIiwg
JGFjdHVhbFBORyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAo
ZHVtcFRvb2xEaWRDcmFzaCgpKSB7Ci0gICAgICAgICRyZXN1bHQgPSAiY3Jhc2giOwotICAgICAg
ICB0ZXN0Q3Jhc2hlZE9yVGltZWRPdXQoJHRlc3QsICRiYXNlLCAxLCAwLCAkYWN0dWFsLCAkZXJy
b3IpOwotICAgIH0gZWxzaWYgKCFkZWZpbmVkICRleHBlY3RlZCkgewotICAgICAgICBpZiAoJHZl
cmJvc2UpIHsKLSAgICAgICAgICAgIHByaW50ICJuZXcgIiAuICgkcmVzZXRSZXN1bHRzID8gInJl
c3VsdCIgOiAidGVzdCIpOwotICAgICAgICB9Ci0gICAgICAgICRyZXN1bHQgPSAibmV3IjsKLQot
ICAgICAgICBpZiAoJGdlbmVyYXRlTmV3UmVzdWx0cyB8fCAkcmVzZXRSZXN1bHRzKSB7Ci0gICAg
ICAgICAgICBpZiAoISRhZGRQbGF0Zm9ybUV4Y2VwdGlvbnMpIHsKLSAgICAgICAgICAgICAgICBt
a3BhdGggY2F0ZmlsZSgkZXhwZWN0ZWREaXIsIGRpcm5hbWUoJGJhc2UpKSBpZiAkdGVzdERpcmVj
dG9yeSBuZSAkZXhwZWN0ZWREaXI7Ci0gICAgICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRleHBl
Y3RlZERpci8kZXhwZWN0ZWRGaWxlTmFtZSIsICRhY3R1YWwpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5
LCBkaXJuYW1lKCRiYXNlKSk7Ci0gICAgICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiRwbGF0Zm9y
bVRlc3REaXJlY3RvcnkvJGV4cGVjdGVkRmlsZU5hbWUiLCAkYWN0dWFsKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICBkZWxldGVFeHBlY3RlZEFuZEFjdHVhbFJlc3VsdHMoJGJh
c2UpOwotICAgICAgICByZWNvcmRBY3R1YWxSZXN1bHRzQW5kRGlmZigkYmFzZSwgJGFjdHVhbCk7
Ci0gICAgICAgIGlmICghJHJlc2V0UmVzdWx0cykgewotICAgICAgICAgICAgIyBBbHdheXMgcHJp
bnQgdGhlIGZpbGUgbmFtZSBmb3IgbmV3IHRlc3RzLCBhcyB0aGV5IHdpbGwgcHJvYmFibHkgbmVl
ZCBzb21lIG1hbnVhbCBpbnNwZWN0aW9uLgotICAgICAgICAgICAgIyBpbiB2ZXJib3NlIG1vZGUg
d2UgYWxyZWFkeSBwcmludGVkIHRoZSB0ZXN0IGNhc2UsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdh
aW4uCi0gICAgICAgICAgICB1bmxlc3MgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJp
bnQgIlxuIiB1bmxlc3MgJGF0TGluZVN0YXJ0OwotICAgICAgICAgICAgICAgIHByaW50ICIkdGVz
dCAtPiAiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbXkgJHJlc3VsdHNEaXIgPSBjYXRk
aXIoJGV4cGVjdGVkRGlyLCBkaXJuYW1lKCRiYXNlKSk7Ci0gICAgICAgICAgICBpZiAoISR2ZXJi
b3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQgIm5ldyI7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoJGdlbmVyYXRlTmV3UmVzdWx0cykgewotICAgICAgICAgICAgICAgIHByaW50
ICIgKHJlc3VsdHMgZ2VuZXJhdGVkIGluICRyZXN1bHRzRGlyKSI7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7Ci0gICAgICAgICAgICAk
YXRMaW5lU3RhcnQgPSAxOwotICAgICAgICB9Ci0gICAgfSBlbHNpZiAoJGFjdHVhbCBlcSAkZXhw
ZWN0ZWQgJiYgJGRpZmZSZXN1bHQgZXEgInBhc3NlZCIpIHsKLSAgICAgICAgaWYgKCR2ZXJib3Nl
KSB7Ci0gICAgICAgICAgICBwcmludCAic3VjY2VlZGVkXG4iOwotICAgICAgICAgICAgJGF0TGlu
ZVN0YXJ0ID0gMTsKLSAgICAgICAgfQotICAgICAgICAkcmVzdWx0ID0gIm1hdGNoIjsKLSAgICAg
ICAgZGVsZXRlRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAkcmVzdWx0ID0gIm1pc21hdGNoIjsKLQotICAgICAgICBteSAkcGl4ZWxUZXN0RmFp
bGVkID0gJHBpeGVsVGVzdHMgJiYgJGRpZmZQTkcgJiYgJGRpZmZQTkcgbmUgIiI7Ci0gICAgICAg
IG15ICR0ZXN0RmFpbGVkID0gJGFjdHVhbCBuZSAkZXhwZWN0ZWQ7Ci0KLSAgICAgICAgbXkgJG1l
c3NhZ2UgPSAhJHRlc3RGYWlsZWQgPyAicGl4ZWwgdGVzdCBmYWlsZWQiIDogImZhaWxlZCI7Ci0K
LSAgICAgICAgaWYgKCgkdGVzdEZhaWxlZCB8fCAkcGl4ZWxUZXN0RmFpbGVkKSAmJiAkYWRkUGxh
dGZvcm1FeGNlcHRpb25zKSB7Ci0gICAgICAgICAgICBteSAkdGVzdEJhc2UgPSBjYXRmaWxlKCR0
ZXN0RGlyZWN0b3J5LCAkYmFzZSk7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRCYXNlID0gY2F0
ZmlsZSgkZXhwZWN0ZWREaXIsICRiYXNlKTsKLSAgICAgICAgICAgIG15ICR0ZXN0SXNNYXhpbWFs
bHlQbGF0Zm9ybVNwZWNpZmljID0gJHRlc3RCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVj
dG9yeVxFL3w7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRSZXN1bHRJc01heGltYWxseVBsYXRm
b3JtU3BlY2lmaWMgPSAkZXhwZWN0ZWRCYXNlID1+IG18XlxRJHBsYXRmb3JtVGVzdERpcmVjdG9y
eVxFL3w7Ci0gICAgICAgICAgICBpZiAoISR0ZXN0SXNNYXhpbWFsbHlQbGF0Zm9ybVNwZWNpZmlj
ICYmICEkZXhwZWN0ZWRSZXN1bHRJc01heGltYWxseVBsYXRmb3JtU3BlY2lmaWMpIHsKLSAgICAg
ICAgICAgICAgICBta3BhdGggY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCBkaXJuYW1l
KCRiYXNlKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCR0ZXN0RmFpbGVkKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG15ICRleHBlY3RlZEZpbGUgPSBjYXRmaWxlKCRwbGF0Zm9ybVRlc3REaXJlY3Rv
cnksICIkZXhwZWN0ZWRGaWxlTmFtZSIpOwotICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmls
ZSgiJGV4cGVjdGVkRmlsZSIsICRhY3R1YWwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAoJHBpeGVsVGVzdEZhaWxlZCkgewotICAgICAgICAgICAgICAgICAgICBteSAk
ZXhwZWN0ZWRGaWxlID0gY2F0ZmlsZSgkcGxhdGZvcm1UZXN0RGlyZWN0b3J5LCAiJGJhc2UtJGV4
cGVjdGVkVGFnLnBuZyIpOwotICAgICAgICAgICAgICAgICAgICB3cml0ZVRvRmlsZSgiJGV4cGVj
dGVkRmlsZSIsICRhY3R1YWxQTkcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAkbWVzc2FnZSAuPSAiIChyZXN1bHRzIGdlbmVyYXRlZCBpbiAkcGxhdGZvcm1UZXN0RGlyZWN0
b3J5KSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBwcmludEZhaWx1cmVN
ZXNzYWdlRm9yVGVzdCgkdGVzdCwgJG1lc3NhZ2UpOwotCi0gICAgICAgIG15ICRkaXIgPSAiJHRl
c3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlIjsKLSAgICAgICAgJGRpciA9fiBzfC8oW14vXSspJHx8
IG9yIGRpZSAiRmFpbGVkIHRvIGZpbmQgdGVzdCBuYW1lIGZyb20gYmFzZVxuIjsKLSAgICAgICAg
bXkgJHRlc3ROYW1lID0gJDE7Ci0gICAgICAgIG1rcGF0aCAkZGlyOwotCi0gICAgICAgIGRlbGV0
ZUV4cGVjdGVkQW5kQWN0dWFsUmVzdWx0cygkYmFzZSk7Ci0gICAgICAgIHJlY29yZEFjdHVhbFJl
c3VsdHNBbmREaWZmKCRiYXNlLCAkYWN0dWFsKTsKLQotICAgICAgICBpZiAoJHBpeGVsVGVzdEZh
aWxlZCkgewotICAgICAgICAgICAgJGltYWdlc1ByZXNlbnR7JGJhc2V9ID0gMTsKLQotICAgICAg
ICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kYWN0dWFsVGFn
LnBuZyIsICRhY3R1YWxQTkcpOwotICAgICAgICAgICAgd3JpdGVUb0ZpbGUoIiR0ZXN0UmVzdWx0
c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcucG5nIiwgJGRpZmZQTkcpOwotCi0gICAgICAgICAg
ICBteSAkZXhwZWN0ZWRQaXhlbERpciA9IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwg
MCwgInBuZyIpOwotICAgICAgICAgICAgY29weSgiJGV4cGVjdGVkUGl4ZWxEaXIvJGJhc2UtJGV4
cGVjdGVkVGFnLnBuZyIsICIkdGVzdFJlc3VsdHNEaXJlY3RvcnkvJGJhc2UtJGV4cGVjdGVkVGFn
LnBuZyIpOwotCi0gICAgICAgICAgICBvcGVuIERJRkZIVE1MLCAiPiR0ZXN0UmVzdWx0c0RpcmVj
dG9yeS8kYmFzZS0kZGlmZnNUYWcuaHRtbCIgb3IgZGllOwotICAgICAgICAgICAgcHJpbnQgRElG
RkhUTUwgIjxodG1sPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8aGVhZD5cbiI7
Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRpdGxlPiRiYXNlIEltYWdlIENvbXBhcmU8
L3RpdGxlPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8c2NyaXB0IGxhbmd1YWdl
PVwiSmF2YXNjcmlwdFwiIHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbiI7Ci0gICAgICAgICAg
ICBwcmludCBESUZGSFRNTCAidmFyIGN1cnJlbnRJbWFnZSA9IDA7XG4iOwotICAgICAgICAgICAg
cHJpbnQgRElGRkhUTUwgInZhciBpbWFnZU5hbWVzID0gbmV3IEFycmF5KFwiQWN0dWFsXCIsIFwi
RXhwZWN0ZWRcIik7XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgInZhciBpbWFnZVBh
dGhzID0gbmV3IEFycmF5KFwiJHRlc3ROYW1lLSRhY3R1YWxUYWcucG5nXCIsIFwiJHRlc3ROYW1l
LSRleHBlY3RlZFRhZy5wbmdcIik7XG4iOwotICAgICAgICAgICAgaWYgKC1mICIkdGVzdERpcmVj
dG9yeS8kYmFzZS13M2MucG5nIikgewotICAgICAgICAgICAgICAgIGNvcHkoIiR0ZXN0RGlyZWN0
b3J5LyRiYXNlLXczYy5wbmciLCAiJHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLXczYy5wbmci
KTsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VOYW1lcy5wdXNoKFwiVzND
XCIpO1xuIjsKLSAgICAgICAgICAgICAgICBwcmludCBESUZGSFRNTCAiaW1hZ2VQYXRocy5wdXNo
KFwiJHRlc3ROYW1lLXczYy5wbmdcIik7XG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cHJpbnQgRElGRkhUTUwgImZ1bmN0aW9uIGFuaW1hdGVJbWFnZSgpIHtcbiI7Ci0gICAgICAgICAg
ICBwcmludCBESUZGSFRNTCAiICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KFwiYW5pbWF0ZWRJbWFnZVwiKTtcbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAg
IHZhciBpbWFnZVRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImltYWdlVGV4dFwiKTtc
biI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGltYWdlLnNyYyA9IGltYWdlUGF0
aHNbY3VycmVudEltYWdlXTtcbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiICAgIGlt
YWdlVGV4dC5pbm5lckhUTUwgPSBpbWFnZU5hbWVzW2N1cnJlbnRJbWFnZV0gKyBcIiBJbWFnZVwi
O1xuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICIgICAgY3VycmVudEltYWdlID0gKGN1
cnJlbnRJbWFnZSArIDEpICUgaW1hZ2VOYW1lcy5sZW5ndGg7XG4iOwotICAgICAgICAgICAgcHJp
bnQgRElGRkhUTUwgIiAgICBzZXRUaW1lb3V0KCdhbmltYXRlSW1hZ2UoKScsMjAwMCk7XG4iOwot
ICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIn1cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZG
SFRNTCAiPC9zY3JpcHQ+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjwvaGVhZD5c
biI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPGJvZHkgb25Mb2FkPVwiYW5pbWF0ZUlt
YWdlKCk7XCI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0YWJsZT5cbiI7Ci0g
ICAgICAgICAgICBpZiAoJGRpZmZQZXJjZW50YWdlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQg
RElGRkhUTUwgIjx0cj5cbiI7Ci0gICAgICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD5E
aWZmZXJlbmNlIGJldHdlZW4gaW1hZ2VzOiA8YSBocmVmPVwiJHRlc3ROYW1lLSRkaWZmc1RhZy5w
bmdcIj4kZGlmZlBlcmNlbnRhZ2UlPC9hPjwvdGQ+XG4iOwotICAgICAgICAgICAgICAgIHByaW50
IERJRkZIVE1MICI8L3RyPlxuIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50IERJ
RkZIVE1MICI8dHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwgIjx0ZD48YSBocmVm
PVwiIiAuIHRvVVJMKCIkdGVzdERpcmVjdG9yeS8kdGVzdCIpIC4gIlwiPnRlc3QgZmlsZTwvYT48
L3RkPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RyPlxuIjsKLSAgICAgICAg
ICAgIHByaW50IERJRkZIVE1MICI8dHI+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhUTUwg
Ijx0ZCBpZD1cImltYWdlVGV4dFwiIHN0eWxlPVwidGV4dC13ZWlnaHQ6IGJvbGQ7XCI+QWN0dWFs
IEltYWdlPC90ZD5cbiI7Ci0gICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPC90cj5cbiI7Ci0g
ICAgICAgICAgICBwcmludCBESUZGSFRNTCAiPHRyPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJ
RkZIVE1MICI8dGQ+PGltZyBzcmM9XCIkdGVzdE5hbWUtJGFjdHVhbFRhZy5wbmdcIiBpZD1cImFu
aW1hdGVkSW1hZ2VcIj48L3RkPlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3Ry
PlxuIjsKLSAgICAgICAgICAgIHByaW50IERJRkZIVE1MICI8L3RhYmxlPlxuIjsKLSAgICAgICAg
ICAgIHByaW50IERJRkZIVE1MICI8L2JvZHk+XG4iOwotICAgICAgICAgICAgcHJpbnQgRElGRkhU
TUwgIjwvaHRtbD5cbiI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoJGVycm9yKSB7Ci0g
ICAgICAgIG15ICRkaXIgPSBkaXJuYW1lKEZpbGU6OlNwZWMtPmNhdGRpcigkdGVzdFJlc3VsdHNE
aXJlY3RvcnksICRiYXNlKSk7Ci0gICAgICAgIG1rcGF0aCAkZGlyOwotICAgICAgICAKLSAgICAg
ICAgd3JpdGVUb0ZpbGUoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdGVzdFJlc3VsdHNEaXJlY3Rvcnks
ICIkYmFzZS0kZXJyb3JUYWcudHh0IiksICRlcnJvcik7Ci0gICAgICAgIAotICAgICAgICAkY291
bnRze2Vycm9yfSsrOwotICAgICAgICBwdXNoIEB7JHRlc3Rze2Vycm9yfX0sICR0ZXN0OwotICAg
IH0KLQotICAgIGNvdW50RmluaXNoZWRUZXN0KCR0ZXN0LCAkYmFzZSwgJHJlc3VsdCwgJGlzVGV4
dCk7Ci0gICAgbGFzdCBpZiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpOwotfQotCi1j
bG9zZSgkdGVzdHNfcnVuX2ZoKTsKLQotbXkgJHRvdGFsVGVzdGluZ1RpbWUgPSB0aW1lIC0gJG92
ZXJhbGxTdGFydFRpbWU7Ci1teSAkd2FpdFRpbWUgPSBnZXRXYWl0VGltZSgpOwotaWYgKCR3YWl0
VGltZSA+IDAuMSkgewotICAgIG15ICRub3JtYWxpemVkVGVzdGluZ1RpbWUgPSAkdG90YWxUZXN0
aW5nVGltZSAtICR3YWl0VGltZTsKLSAgICBwcmludGYgIlxuJTAuMmZzIEhUVFBEIHdhaXRpbmcg
dGltZVxuIiwgJHdhaXRUaW1lIC4gIiI7Ci0gICAgcHJpbnRmICIlMC4yZnMgbm9ybWFsaXplZCB0
ZXN0aW5nIHRpbWUiLCAkbm9ybWFsaXplZFRlc3RpbmdUaW1lIC4gIiI7Ci19Ci1wcmludGYgIlxu
JTAuMmZzIHRvdGFsIHRlc3RpbmcgdGltZVxuIiwgJHRvdGFsVGVzdGluZ1RpbWUgLiAiIjsKLQot
ISRpc0R1bXBUb29sT3BlbiB8fCBkaWUgIkZhaWxlZCB0byBjbG9zZSAkZHVtcFRvb2xOYW1lLlxu
IjsKLQotcXVpdElPU1NpbXVsYXRvcigpIGlmIGlzSU9TV2ViS2l0KCk7Ci0KLSRpc0h0dHBkT3Bl
biA9ICFjbG9zZUhUVFBEKCk7Ci1jbG9zZVdlYlNvY2tldFNlcnZlcigpOwotCi0jIEJlY2F1c2Ug
bXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoaXMgc2NyaXB0IGFyZSBydW5uaW5nIGNvbmN1cnJlbnRs
eSB3ZSBjYW5ub3QgCi0jIHNhZmVseSBkZWxldGUgdGhpcyBzeW1saW5rLgotIyBzeXN0ZW0gInJt
IC90bXAvTGF5b3V0VGVzdHMiOwotCi0jIEZJWE1FOiBEbyB3ZSByZWFsbHkgd2FudCB0byBjaGVj
ayB0aGUgaW1hZ2UtY29tcGFyaXNvbiB0b29sIGZvciBsZWFrcyBldmVyeSB0aW1lPwotaWYgKCRp
c0RpZmZUb29sT3BlbiAmJiAkc2hvdWxkQ2hlY2tMZWFrcykgewotICAgICR0b3RhbExlYWtzICs9
IGNvdW50QW5kUHJpbnRMZWFrcygiSW1hZ2VEaWZmIiwgJGltYWdlRGlmZlRvb2xQSUQsICIkdGVz
dFJlc3VsdHNEaXJlY3RvcnkvSW1hZ2VEaWZmLWxlYWtzLnR4dCIpOwotfQotCi1pZiAoJHRvdGFs
TGVha3MpIHsKLSAgICBpZiAoJG1lcmdlRGVwdGgpIHsKLSAgICAgICAgcGFyc2VMZWFrc2FuZFBy
aW50VW5pcXVlTGVha3MoKTsKLSAgICB9IGVsc2UgeyAKLSAgICAgICAgcHJpbnQgIlxuV0FSTklO
RzogJHRvdGFsTGVha3MgdG90YWwgbGVha3MgZm91bmQhXG4iOwotICAgICAgICBwcmludCAiU2Vl
IGFib3ZlIGZvciBpbmRpdmlkdWFsIGxlYWtzIHJlc3VsdHMuXG4iIGlmICgkbGVha3NPdXRwdXRG
aWxlTnVtYmVyID4gMik7Ci0gICAgfQotfQotCi1jbG9zZSBJTjsKLWNsb3NlIE9VVDsKLWNsb3Nl
IEVSUk9SOwotCi1pZiAoJHJlcG9ydDEwU2xvd2VzdCkgewotICAgIHByaW50ICJcblxuVGhlIDEw
IHNsb3dlc3QgdGVzdHM6XG5cbiI7Ci0gICAgbXkgJGNvdW50ID0gMDsKLSAgICBmb3IgbXkgJHRl
c3QgKHNvcnQgc2xvd2VzdGNtcCBrZXlzICVkdXJhdGlvbnMpIHsKLSAgICAgICAgcHJpbnRmICIl
MC4yZiBzZWNzOiAlc1xuIiwgJGR1cmF0aW9uc3skdGVzdH0sICR0ZXN0OwotICAgICAgICBsYXN0
IGlmICsrJGNvdW50ID09IDEwOwotICAgIH0KLX0KLQotcHJpbnQgIlxuIjsKLQotaWYgKCRza2lw
cGVkT25seSAmJiAkY291bnRzeyJtYXRjaCJ9KSB7Ci0gICAgcHJpbnQgIlRoZSBmb2xsb3dpbmcg
dGVzdHMgYXJlIGluIHRoZSBTa2lwcGVkIGZpbGUgKCIgLiBGaWxlOjpTcGVjLT5hYnMycmVsKCIk
cGxhdGZvcm1UZXN0RGlyZWN0b3J5L1NraXBwZWQiLCAkdGVzdERpcmVjdG9yeSkgLiAiKSwgYnV0
IHN1Y2NlZWRlZDpcbiI7Ci0gICAgZm9yZWFjaCBteSAkdGVzdCAoQHskdGVzdHN7Im1hdGNoIn19
KSB7Ci0gICAgICAgIHByaW50ICIgICR0ZXN0XG4iOwotICAgIH0KLX0KLQotaWYgKCRyZXNldFJl
c3VsdHMgfHwgKCRjb3VudHN7bWF0Y2h9ICYmICRjb3VudHN7bWF0Y2h9ID09ICRjb3VudCkpIHsK
LSAgICBwcmludCAiYWxsICRjb3VudCB0ZXN0IGNhc2VzIHN1Y2NlZWRlZFxuIjsKLSAgICB1bmxp
bmsgJHRlc3RSZXN1bHRzOwotICAgIGV4aXQ7Ci19Ci0KLXByaW50UmVzdWx0cygpOwotCi1ta3Bh
dGggJHRlc3RSZXN1bHRzRGlyZWN0b3J5OwotCi1vcGVuIEhUTUwsICI+IiwgJHRlc3RSZXN1bHRz
IG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gJHRlc3RSZXN1bHRzLiAkISI7Ci1wcmludCBIVE1MIDw8
RU9GOwotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5MYXlvdXQgVGVzdCBSZXN1bHRzPC90aXRsZT4K
LTxzdHlsZT4KLS5zdG9wcGVkLXJ1bm5pbmctZWFybHktbWVzc2FnZSB7Ci0gICAgYm9yZGVyOiAz
cHggc29saWQgI2QwMDsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLX0KLTwvc3R5bGU+Ci08L2hl
YWQ+Ci08L2JvZHk+Ci1FT0YKLQotaWYgKCRpZ25vcmVNZXRyaWNzKSB7Ci0gICAgcHJpbnQgSFRN
TCAiPGg0PlRlc3RlZCB3aXRoIG1ldHJpY3MgaWdub3JlZC48L2g0PiI7Ci19Ci0KLWlmICgkc3Rv
cHBlZFJ1bm5pbmdFYXJseU1lc3NhZ2UpIHsKLSAgICBwcmludCBIVE1MICI8cCBjbGFzcz0nc3Rv
cHBlZC1ydW5uaW5nLWVhcmx5LW1lc3NhZ2UnPiRzdG9wcGVkUnVubmluZ0Vhcmx5TWVzc2FnZTwv
cD4iOwotfQotCi1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRzU2VjdGlvbihAeyR0ZXN0c3ttaXNt
YXRjaH19LCAiVGVzdHMgd2hlcmUgcmVzdWx0cyBkaWQgbm90IG1hdGNoIGV4cGVjdGVkIHJlc3Vs
dHMiLCBcJmxpbmtzRm9yTWlzbWF0Y2hUZXN0KTsKLXByaW50IEhUTUwgaHRtbEZvclJlc3VsdHNT
ZWN0aW9uKEB7JHRlc3Rze3RpbWVkb3V0fX0sICJUZXN0cyB0aGF0IHRpbWVkIG91dCIsIFwmbGlu
a3NGb3JFcnJvclRlc3QpOwotcHJpbnQgSFRNTCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVz
dHN7Y3Jhc2h9fSwgIlRlc3RzIHRoYXQgY2F1c2VkIHRoZSBEdW1wUmVuZGVyVHJlZSB0b29sIHRv
IGNyYXNoIiwgXCZsaW5rc0ZvckVycm9yVGVzdCk7Ci1wcmludCBIVE1MIGh0bWxGb3JSZXN1bHRz
U2VjdGlvbihAeyR0ZXN0c3t3ZWJQcm9jZXNzQ3Jhc2h9fSwgIlRlc3RzIHRoYXQgY2F1c2VkIHRo
ZSBXZWIgcHJvY2VzcyB0byBjcmFzaCIsIFwmbGlua3NGb3JFcnJvclRlc3QpOwotcHJpbnQgSFRN
TCBodG1sRm9yUmVzdWx0c1NlY3Rpb24oQHskdGVzdHN7ZXJyb3J9fSwgIlRlc3RzIHRoYXQgaGFk
IHN0ZGVyciBvdXRwdXQiLCBcJmxpbmtzRm9yRXJyb3JUZXN0KTsKLXByaW50IEhUTUwgaHRtbEZv
clJlc3VsdHNTZWN0aW9uKEB7JHRlc3Rze25ld319LCAiVGVzdHMgdGhhdCBoYWQgbm8gZXhwZWN0
ZWQgcmVzdWx0cyAocHJvYmFibHkgbmV3KSIsIFwmbGlua3NGb3JOZXdUZXN0KTsKLQotcHJpbnQg
SFRNTCAiPHA+aHR0cGQgYWNjZXNzIGxvZzogPGEgaHJlZj1cImFjY2Vzc19sb2cudHh0XCI+YWNj
ZXNzX2xvZy50eHQ8L2E+PC9wPlxuIjsKLXByaW50IEhUTUwgIjxwPmh0dHBkIGVycm9yIGxvZzog
PGEgaHJlZj1cImVycm9yX2xvZy50eHRcIj5lcnJvcl9sb2cudHh0PC9hPjwvcD5cbiI7Ci0KLXBy
aW50IEhUTUwgIjwvYm9keT5cbiI7Ci1wcmludCBIVE1MICI8L2h0bWw+XG4iOwotY2xvc2UgSFRN
TDsKLQotbXkgQGNvbmZpZ3VyYXRpb25BcmdzID0gYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigp
OwotCi1pZiAoaXNHdGsoKSkgewotICBwdXNoKEBjb25maWd1cmF0aW9uQXJncywgJy0yJykgaWYg
JHVzZVdlYktpdFRlc3RSdW5uZXI7Ci0gIHN5c3RlbSAiVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNo
ZXIiLCBAY29uZmlndXJhdGlvbkFyZ3MsICJmaWxlOi8vIi4kdGVzdFJlc3VsdHMgaWYgJGxhdW5j
aFNhZmFyaTsKLX0gZWxzaWYgKGlzQ3lnd2luKCkpIHsKLSAgc3lzdGVtICJjeWdzdGFydCIsICR0
ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfSBlbHNpZiAoaXNXaW5kb3dzKCkpIHsKLSAg
c3lzdGVtICJzdGFydCIsICR0ZXN0UmVzdWx0cyBpZiAkbGF1bmNoU2FmYXJpOwotfSBlbHNpZiAo
aXNJT1NXZWJLaXQoKSkgewotICAjIERvbid0IHVzZSBydW4tc2FmYXJpLCBzaW5jZSBpdCB0cmll
cyB0byBsb2FkIGlPUyBmcmFtZXdvcmtzIGluIE9TIFggU2FmYXJpLgotICBzeXN0ZW0gIm9wZW4i
LCAiLWEiLCAiU2FmYXJpIiwgJHRlc3RSZXN1bHRzIGlmICRsYXVuY2hTYWZhcmk7Ci19IGVsc2Ug
ewotICBzeXN0ZW0gIlRvb2xzL1NjcmlwdHMvcnVuLXNhZmFyaSIsIEBjb25maWd1cmF0aW9uQXJn
cywgIi1OU09wZW4iLCAkdGVzdFJlc3VsdHMgaWYgJGxhdW5jaFNhZmFyaTsKLX0KLQotY2xvc2VD
eWdwYXRocygpIGlmIGlzQ3lnd2luKCk7Ci0KLWV4aXQgMTsKLQotc3ViIGNvdW50QW5kUHJpbnRM
ZWFrcygkJCQpCi17Ci0gICAgbXkgKCRkdW1wVG9vbE5hbWUsICRkdW1wVG9vbFBJRCwgJGxlYWtz
RmlsZVBhdGgpID0gQF87Ci0KLSAgICBwcmludCAiXG4iIHVubGVzcyAkYXRMaW5lU3RhcnQ7Ci0g
ICAgJGF0TGluZVN0YXJ0ID0gMTsKLQotICAgICMgV2UgYXJlIGV4Y2x1ZGluZyB0aGUgZm9sbG93
aW5nIHJlcG9ydGVkIGxlYWtzIHNvIHRoZXkgZG9uJ3QgZ2V0IGluIG91ciB3YXkgd2hlbiBsb29r
aW5nIGZvciBXZWJLaXQgbGVha3M6Ci0gICAgIyBUaGlzIGFsbG93cyB1cyBpZ25vcmUga25vd24g
bGVha3MgYW5kIG9ubHkgYmUgYWxlcnRlZCB3aGVuIG5ldyBsZWFrcyBvY2N1ci4gU29tZSBsZWFr
cyBhcmUgaW4gdGhlIG9sZAotICAgICMgdmVyc2lvbnMgb2YgdGhlIHN5c3RlbSBmcmFtZXdvcmtz
IHRoYXQgYXJlIGJlaW5nIHVzZWQgYnkgdGhlIGxlYWtzIGJvdHMuIEV2ZW4gdGhvdWdoIGEgbGVh
ayBoYXMgYmVlbgotICAgICMgZml4ZWQsIGl0IHdpbGwgYmUgbGlzdGVkIGhlcmUgdW50aWwgdGhl
IGJvdCBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIGZyYW1ld29ya3MuCi0KLSAgICBt
eSBAdHlwZXNUb0V4Y2x1ZGUgPSAoCi0gICAgKTsKLQotICAgIG15IEBjYWxsU3RhY2tzVG9FeGNs
dWRlID0gKAotICAgICAgICAiRmxhc2hfRW5mb3JjZUxvY2FsU2VjdXJpdHkiLCAjIGxlYWtzIGlu
IEZsYXNoIHBsdWctaW4gY29kZSwgcmRhcjovL3Byb2JsZW0vNDQ0OTc0NwotICAgICAgICAiU2Nh
bkZyb21TdHJpbmciLCAjIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvYW5nbGVwcm9qZWN0L2lz
c3Vlcy9kZXRhaWw/aWQ9MjQ5PiBsZWFrIGluIEFOR0xFCi0gICAgKTsKLQotICAgIGlmIChpc1Nu
b3dMZW9wYXJkKCkpIHsKLSAgICAgICAgcHVzaCBAY2FsbFN0YWNrc1RvRXhjbHVkZSwgKAotICAg
ICAgICAgICAgInJlYWRNYWtlck5vdGVQcm9wcyIsICMgPHJkYXI6Ly9wcm9ibGVtLzcxNTY0MzI+
IGxlYWsgaW4gSW1hZ2VJTwotICAgICAgICAgICAgIlFUS2l0TW92aWVDb250cm9sbGVyVmlldyBj
b21wbGV0ZVVJU2V0dXAiLCAjIDxyZGFyOi8vcHJvYmxlbS83MTU1MTU2PiBsZWFrIGluIFFUS2l0
Ci0gICAgICAgICAgICAiZ2V0Vk1Jbml0QXJncyIsICMgPHJkYXI6Ly9wcm9ibGVtLzc3MTQ0NDQ+
IGxlYWsgaW4gSmF2YQotICAgICAgICAgICAgIkphdmFfamF2YV9sYW5nX1N5c3RlbV9pbml0UHJv
cGVydGllcyIsICMgPHJkYXI6Ly9wcm9ibGVtLzc3MTQ0NjU+IGxlYWsgaW4gSmF2YQotICAgICAg
ICAgICAgImdsckNvbXBFeGVjdXRlS2VybmVsIiwgIyA8cmRhcjovL3Byb2JsZW0vNzgxNTM5MT4g
bGVhayBpbiBncmFwaGljcyBkcml2ZXIgd2hpbGUgdXNpbmcgT3BlbkdMCi0gICAgICAgICAgICAi
TlNOdW1iZXJGb3JtYXR0ZXIgZ2V0T2JqZWN0VmFsdWU6Zm9yU3RyaW5nOmVycm9yRGVzY3JpcHRp
b246IiwgIyA8cmRhcjovL3Byb2JsZW0vNzE0OTM1MD4gTGVhayBpbiBOU051bWJlckZvcm1hdHRl
cgotICAgICAgICApOwotICAgIH0KLQotICAgIGlmIChpc0xpb24oKSkgewotICAgICAgICBwdXNo
IEBjYWxsU3RhY2tzVG9FeGNsdWRlLCAoCi0gICAgICAgICAgICAiRmlnQnl0ZUZsdW1lQ3VzdG9t
VVJMQ3JlYXRlV2l0aFVSTCIsICMgPHJkYXI6Ly9wcm9ibGVtLzEwNDYxOTI2PiBsZWFrIGluIENv
cmVNZWRpYQotICAgICAgICAgICAgIlBERlBhZ2VcXChQREZQYWdlSW50ZXJuYWxcXCkgcGFnZUxh
eW91dElmQXZhaWwiLCAjIDxyZGFyOi8vcHJvYmxlbS8xMDQ2MjA1NT4gbGVhayBpbiBQREZLaXQK
LSAgICAgICAgICAgICJTZWNUcmFuc2Zvcm1FeGVjdXRlIiwgIyA8cmRhcjovL3Byb2JsZW0vMTA0
NzA2Njc+IGxlYWsgaW4gU2VjdXJpdHkuZnJhbWV3b3JrCi0gICAgICAgICAgICAiX05TQ29weVN0
eWxlUmVmRm9yRm9jdXNSaW5nU3R5bGVDbGlwIiwgIyA8cmRhcjovL3Byb2JsZW0vMTA0NjIwMzE+
IGxlYWsgaW4gQXBwS2l0Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgbXkgJGxlYWtzVG9vbCA9
IHNvdXJjZURpcigpIC4gIi9Ub29scy9TY3JpcHRzL3J1bi1sZWFrcyI7Ci0gICAgbXkgJGV4Y2x1
ZGVTdHJpbmcgPSAiLS1leGNsdWRlLWNhbGxzdGFjayAnIiAuIChqb2luICInIC0tZXhjbHVkZS1j
YWxsc3RhY2sgJyIsIEBjYWxsU3RhY2tzVG9FeGNsdWRlKSAuICInIjsKLSAgICAkZXhjbHVkZVN0
cmluZyAuPSAiIC0tZXhjbHVkZS10eXBlICciIC4gKGpvaW4gIicgLS1leGNsdWRlLXR5cGUgJyIs
IEB0eXBlc1RvRXhjbHVkZSkgLiAiJyIgaWYgQHR5cGVzVG9FeGNsdWRlOwotCi0gICAgcHJpbnQg
IiA/IGNoZWNraW5nIGZvciBsZWFrcyBpbiAkZHVtcFRvb2xOYW1lXG4iOwotICAgIG15ICRsZWFr
c091dHB1dCA9IGAkbGVha3NUb29sICRleGNsdWRlU3RyaW5nICRkdW1wVG9vbFBJRGA7Ci0gICAg
bXkgKCRjb3VudCwgJGJ5dGVzKSA9ICRsZWFrc091dHB1dCA9fiAvUHJvY2VzcyAkZHVtcFRvb2xQ
SUQ6IChcZCspIGxlYWtzPyBmb3IgKFxkKykgdG90YWwvOwotICAgIG15ICgkZXhjbHVkZWQpID0g
JGxlYWtzT3V0cHV0ID1+IC8oXGQrKSBsZWFrcz8gZXhjbHVkZWQvOwotCi0gICAgbXkgJGFkanVz
dGVkQ291bnQgPSAkY291bnQ7Ci0gICAgJGFkanVzdGVkQ291bnQgLT0gJGV4Y2x1ZGVkIGlmICRl
eGNsdWRlZDsKLQotICAgIGlmICghJGFkanVzdGVkQ291bnQpIHsKLSAgICAgICAgcHJpbnQgIiAt
IG5vIGxlYWtzIGZvdW5kXG4iOwotICAgICAgICB1bmxpbmsgJGxlYWtzRmlsZVBhdGg7Ci0gICAg
ICAgIHJldHVybiAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICRkaXIgPSAkbGVha3NGaWxl
UGF0aDsKLSAgICAgICAgJGRpciA9fiBzfC9bXi9dKyR8fCBvciBkaWU7Ci0gICAgICAgIG1rcGF0
aCAkZGlyOwotCi0gICAgICAgIGlmICgkZXhjbHVkZWQpIHsKLSAgICAgICAgICAgIHByaW50ICIg
KyAkYWRqdXN0ZWRDb3VudCBsZWFrcyAoJGJ5dGVzIGJ5dGVzIGluY2x1ZGluZyAkZXhjbHVkZWQg
ZXhjbHVkZWQgbGVha3MpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAiICsgJGNvdW50IGxlYWtzICgk
Ynl0ZXMgYnl0ZXMpIHdlcmUgZm91bmQsIGRldGFpbHMgaW4gJGxlYWtzRmlsZVBhdGhcbiI7Ci0g
ICAgICAgIH0KLQotICAgICAgICB3cml0ZVRvRmlsZSgkbGVha3NGaWxlUGF0aCwgJGxlYWtzT3V0
cHV0KTsKLSAgICAgICAgCi0gICAgICAgIHB1c2ggQGxlYWtzRmlsZW5hbWVzLCAkbGVha3NGaWxl
UGF0aDsKLSAgICB9Ci0KLSAgICByZXR1cm4gJGFkanVzdGVkQ291bnQ7Ci19Ci0KLXN1YiB3cml0
ZVRvRmlsZSgkJCkKLXsKLSAgICBteSAoJGZpbGVQYXRoLCAkY29udGVudHMpID0gQF87Ci0gICAg
b3BlbiBORVdGSUxFLCAiPiIsICIkZmlsZVBhdGgiIG9yIGRpZSAiQ291bGQgbm90IGNyZWF0ZSAk
ZmlsZVBhdGguICQhXG4iOwotICAgIHByaW50IE5FV0ZJTEUgJGNvbnRlbnRzOwotICAgIGNsb3Nl
IE5FV0ZJTEU7Ci19Ci0KLXN1YiBpbnN0YWxsQW5kTGF1bmNoRHVtcFRvb2xBcHBVc2luZ05vdGlm
aWNhdGlvbigkJCkKLXsKLSAgICBteSAoJGFyZ3MsICRjbGVhbkVudikgPSBAXzsKLSAgICBteSAk
cHJvZHVjdERpciA9IHByb2R1Y3REaXIoKTsKLSAgICBteSAkYXBwQnVuZGxlOwotICAgIGlmICgk
dXNlV2ViS2l0VGVzdFJ1bm5lcikgewotICAgICAgICAkYXBwQnVuZGxlID0gIiRwcm9kdWN0RGly
L1dlYktpdFRlc3RSdW5uZXJBcHAuYXBwIjsKLSAgICB9IGVsc2UgewotICAgICAgICAkYXBwQnVu
ZGxlID0gIiRwcm9kdWN0RGlyL0R1bXBSZW5kZXJUcmVlLmFwcCI7Ci0gICAgfQotICAgIG15ICRz
aW11bGF0b3JPcHRpb25zID0ge2FwcGxpY2F0aW9uQXJndW1lbnRzID0+ICRhcmdzLCBhcHBsaWNh
dGlvbkVudmlyb25tZW50ID0+ICRjbGVhbkVudiwgc2Vzc2lvblVVSUQgPT4gc2ltdWxhdG9yU2Vz
c2lvblVVSUQoKX07Ci0gICAgbXkgJHBpZCA9IGluc3RhbGxBbmRMYXVuY2hJT1NXZWJLaXRBcHBJ
blNpbXVsYXRvcigkYXBwQnVuZGxlLCBmaW5kT3JDcmVhdGVTaW11bGF0b3JGb3JJT1NEZXZpY2Uo
IldlYktpdCBUZXN0ZXIiKSwgJHNpbXVsYXRvck9wdGlvbnMpOwotICAgIHByaW50IGFwcERpc3Bs
YXlOYW1lRnJvbUJ1bmRsZSgkYXBwQnVuZGxlKSAuICIgaGFzIGxhdW5jaGVkLlxuIjsKLSAgICBy
ZXR1cm4gJHBpZDsKLX0KLQotc3ViIHF1aXREdW1wVG9vbFVzaW5nTm90aWZpY2F0aW9uKCkKLXsK
LSAgICBteSAkaVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uID0gbmV3IElQaG9uZVNpbXVsYXRv
ck5vdGlmaWNhdGlvbjsKLSAgICAkaVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLT5zdGFydE9i
c2VydmluZ0FwcGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlvbigpOwotCi0gICAgbXkgJGRpY3QgPSB7
Ci0gICAgICAgIHNlc3Npb25VVUlEID0+IE5TU3RyaW5nLT5zdHJpbmdXaXRoQ1N0cmluZ18oc2lt
dWxhdG9yU2Vzc2lvblVVSUQoKSksCi0gICAgfTsKLSAgICAkaVBob25lU2ltdWxhdG9yTm90aWZp
Y2F0aW9uLT5wb3N0RW5kU2Vzc2lvbk5vdGlmaWNhdGlvbigkZGljdCk7Ci0KLSAgICAjIEZJWE1F
OiA8cmRhcjovL3Byb2JsZW0vNzQ0MzA3Nz4gRHVtcFJlbmRlclRyZWUgc2hvdWxkIGV4aXQgd2l0
aG91dCBoYXZpbmcgdG8gdXNlIGtpbGwgLTkgZnJvbSBydW4td2Via2l0LXRlc3RzCi0gICAga2ls
bCA5LCAkZHVtcFRvb2xQSUQ7Ci0KLSAgICBteSAkdGltZW91dENvdW50ZXIgPSAwOwotICAgIHdo
aWxlICghJGlQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi0+aGFzUmVjZWl2ZWRBcHBsaWNhdGlv
blF1aXROb3RpZmljYXRpb24oKSkgewotICAgICAgICBteSAkZGF0ZSA9IE5TRGF0ZS0+YWxsb2Mo
KS0+aW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vd18oMC4xKTsKLSAgICAgICAgTlNSdW5Mb29w
LT5jdXJyZW50UnVuTG9vcC0+cnVuVW50aWxEYXRlXygkZGF0ZSk7Ci0gICAgICAgICRkYXRlLT5y
ZWxlYXNlKCk7Ci0gICAgICAgIGlmICgrKyR0aW1lb3V0Q291bnRlciA+PSA2MDApIHsKLSAgICAg
ICAgICAgIHByaW50IFNUREVSUiAiRVJST1I6IEhhbmcgd2FpdGluZyBmb3IgYXBwbGljYXRpb24g
cXVpdCBub3RpZmljYXRpb24uIERpZCAkZHVtcFRvb2xOYW1lIGNyYXNoIGluc3RlYWQ/XG4iOwot
ICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgICRpUGhvbmVTaW11bGF0
b3JOb3RpZmljYXRpb24tPnN0b3BPYnNlcnZpbmdBcHBsaWNhdGlvblF1aXROb3RpZmljYXRpb24o
KTsKLX0KLQotc3ViIHNpbXVsYXRvclNlc3Npb25VVUlEKCkKLXsKLSAgICByZXR1cm4gInRoZUF3
ZXNvbWVVbmlxdWVTZXNzaW9uSWRlbnRpZmllckZvckR1bXBSZW5kZXJUcmVlIjsKLX0KLQotIyBC
cmVhayB1cCBhIHBhdGggaW50byB0aGUgZGlyZWN0b3J5ICh3aXRoIHNsYXNoKSBhbmQgYmFzZSBu
YW1lLgotc3ViIHNwbGl0cGF0aCgkKQotewotICAgIG15ICgkcGF0aCkgPSBAXzsKLQotICAgIG15
ICRwYXRoU2VwYXJhdG9yID0gIi8iOwotICAgIG15ICRkaXJuYW1lID0gZGlybmFtZSgkcGF0aCkg
LiAkcGF0aFNlcGFyYXRvcjsKLSAgICAkZGlybmFtZSA9ICIiIGlmICRkaXJuYW1lIGVxICIuIiAu
ICRwYXRoU2VwYXJhdG9yOwotCi0gICAgcmV0dXJuICgkZGlybmFtZSwgYmFzZW5hbWUoJHBhdGgp
KTsKLX0KLQotIyBTb3J0IGZpcnN0IGJ5IGRpcmVjdG9yeSwgdGhlbiBieSBmaWxlLCBzbyBhbGwg
cGF0aHMgaW4gb25lIGRpcmVjdG9yeSBhcmUgZ3JvdXBlZAotIyByYXRoZXIgdGhhbiBiZWluZyBp
bnRlcnNwZXJzZWQgd2l0aCBpdGVtcyBmcm9tIHN1YmRpcmVjdG9yaWVzLgotIyBVc2UgbnVtZXJp
Y2NtcCB0byBzb3J0IGRpcmVjdG9yeSBhbmQgZmlsZW5hbWVzIHRvIG1ha2Ugb3JkZXIgbG9naWNh
bC4KLXN1YiBwYXRoY21wKCQkKQotewotICAgIG15ICgkcGF0aGEsICRwYXRoYikgPSBAXzsKLQot
ICAgIG15ICgkZGlyYSwgJG5hbWVhKSA9IHNwbGl0cGF0aCgkcGF0aGEpOwotICAgIG15ICgkZGly
YiwgJG5hbWViKSA9IHNwbGl0cGF0aCgkcGF0aGIpOwotCi0gICAgcmV0dXJuIG51bWVyaWNjbXAo
JGRpcmEsICRkaXJiKSBpZiAkZGlyYSBuZSAkZGlyYjsKLSAgICByZXR1cm4gbnVtZXJpY2NtcCgk
bmFtZWEsICRuYW1lYik7Ci19Ci0KLSMgU29ydCBudW1lcmljIHBhcnRzIG9mIHN0cmluZ3MgYXMg
bnVtYmVycywgb3RoZXIgcGFydHMgYXMgc3RyaW5ncy4KLSMgTWFrZXMgMS4zMyBjb21lIGFmdGVy
IDEuMywgd2hpY2ggaXMgY29vbC4KLXN1YiBudW1lcmljY21wKCQkKQotewotICAgIG15ICgkYWEs
ICRiYikgPSBAXzsKLQotICAgIG15IEBhID0gc3BsaXQgLyhcZCspLywgJGFhOwotICAgIG15IEBi
ID0gc3BsaXQgLyhcZCspLywgJGJiOwotCi0gICAgIyBDb21wYXJlIG9uZSBjaHVuayBhdCBhIHRp
bWUuCi0gICAgIyBFYWNoIGNodW5rIGlzIGVpdGhlciBhbGwgbnVtZXJpYyBkaWdpdHMsIG9yIGFs
bCBub3QgbnVtZXJpYyBkaWdpdHMuCi0gICAgd2hpbGUgKEBhICYmIEBiKSB7Ci0gICAgICAgIG15
ICRhID0gc2hpZnQgQGE7Ci0gICAgICAgIG15ICRiID0gc2hpZnQgQGI7Ci0gICAgICAgIAotICAg
ICAgICAjIFVzZSBudW1lcmljIGNvbXBhcmlzb24gaWYgY2h1bmtzIGFyZSBub24tZXF1YWwgbnVt
YmVycy4KLSAgICAgICAgcmV0dXJuICRhIDw9PiAkYiBpZiAkYSA9fiAvXlxkLyAmJiAkYiA9fiAv
XlxkLyAmJiAkYSAhPSAkYjsKLQotICAgICAgICAjIFVzZSBzdHJpbmcgY29tcGFyaXNvbiBpZiBj
aHVua3MgYXJlIGFueSBvdGhlciBraW5kIG9mIG5vbi1lcXVhbCBzdHJpbmcuCi0gICAgICAgIHJl
dHVybiAkYSBjbXAgJGIgaWYgJGEgbmUgJGI7Ci0gICAgfQotICAgIAotICAgICMgT25lIG9mIHRo
ZSB0d28gaXMgbm93IGVtcHR5OyBjb21wYXJlIGxlbmd0aHMgZm9yIHJlc3VsdCBpbiB0aGlzIGNh
c2UuCi0gICAgcmV0dXJuIEBhIDw9PiBAYjsKLX0KLQotIyBTb3J0IHNsb3dlc3QgdGVzdHMgZmly
c3QuCi1zdWIgc2xvd2VzdGNtcCgkJCkKLXsKLSAgICBteSAoJHRlc3RhLCAkdGVzdGIpID0gQF87
Ci0KLSAgICBteSAkZHVyYSA9ICRkdXJhdGlvbnN7JHRlc3RhfTsKLSAgICBteSAkZHVyYiA9ICRk
dXJhdGlvbnN7JHRlc3RifTsKLSAgICByZXR1cm4gJGR1cmIgPD0+ICRkdXJhIGlmICRkdXJhICE9
ICRkdXJiOwotICAgIHJldHVybiBwYXRoY21wKCR0ZXN0YSwgJHRlc3RiKTsKLX0KLQotc3ViIGxh
dW5jaFdpdGhFbnYoXEBcJSkKLXsKLSAgICBteSAoJGFyZ3MsICRlbnYpID0gQF87Ci0KLSAgICAj
IER1bXAgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgYXMgcGVybCBjb2RlIGFuZCB0aGVuIHB1dCBp
dCBpbiBxdW90ZXMgc28gaXQgaXMgb25lIHBhcmFtZXRlci4KLSAgICBteSAkZW52aXJvbm1lbnRE
dW1wZXIgPSBEYXRhOjpEdW1wZXItPm5ldyhbXCV7JGVudn1dLCBbcXcoKkVOVildKTsKLSAgICAk
ZW52aXJvbm1lbnREdW1wZXItPkluZGVudCgwKTsKLSAgICAkZW52aXJvbm1lbnREdW1wZXItPlB1
cml0eSgxKTsKLSAgICBteSAkYWxsRW52VmFycyA9ICRlbnZpcm9ubWVudER1bXBlci0+RHVtcCgp
OwotICAgIHVuc2hpZnQgQHskYXJnc30sICJcIiRhbGxFbnZWYXJzXCIiOwotCi0gICAgbXkgJGV4
ZWNTY3JpcHQgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKHNvdXJjZURpcigpLCBxdyhUb29scyBTY3Jp
cHRzIGV4ZWNBcHBXaXRoRW52KSk7Ci0gICAgdW5zaGlmdCBAeyRhcmdzfSwgJHBlcmxJbnRlcnBy
ZXRlciwgJGV4ZWNTY3JpcHQ7Ci0gICAgcmV0dXJuIEB7JGFyZ3N9OwotfQotCi1zdWIgcmVzb2x2
ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpCi17Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRz
RGlyZWN0b3J5ID0gRmlsZTo6U3BlYy0+cmVsMmFicyhnbG9iICR0ZXN0UmVzdWx0c0RpcmVjdG9y
eSk7Ci0gICAgbWtwYXRoICRhYnNUZXN0UmVzdWx0c0RpcmVjdG9yeTsKLSAgICByZXR1cm4gJGFi
c1Rlc3RSZXN1bHRzRGlyZWN0b3J5OwotfQotCi1zdWIgb3BlbkRpZmZUb29sKCkKLXsKLSAgICBy
ZXR1cm4gaWYgJGlzRGlmZlRvb2xPcGVuOwotICAgIHJldHVybiBpZiAhJHBpeGVsVGVzdHM7Ci0K
LSAgICBteSAlQ0xFQU5fRU5WOwotICAgIG15IEBjb21tYW5kID0gKCRpbWFnZURpZmZUb29sKTs7
Ci0gICAgdW5zaGlmdChAY29tbWFuZCwgJ3hjcnVuJywgJy1zZGsnLCB4Y29kZVNESygpLCAnc2lt
JykgaWYgd2lsbFVzZUlPU1NpbXVsYXRvclNES1doZW5CdWlsZGluZygpOwotICAgICRDTEVBTl9F
TlZ7TWFsbG9jU3RhY2tMb2dnaW5nfSA9IDEgaWYgJHNob3VsZENoZWNrTGVha3M7Ci0gICAgJGlt
YWdlRGlmZlRvb2xQSUQgPSBvcGVuMihcKkRJRkZJTiwgXCpESUZGT1VULCBAY29tbWFuZCwgbGF1
bmNoV2l0aEVudihAZGlmZlRvb2xBcmdzLCAlQ0xFQU5fRU5WKSkgb3IgZGllICJ1bmFibGUgdG8g
b3BlbiAkaW1hZ2VEaWZmVG9vbFxuIjsKLSAgICAkaXNEaWZmVG9vbE9wZW4gPSAxOwotfQotCi1z
dWIgdW5saW5rRklGT3MoKQotewotICAgIG15ICRpZGVudGlmaWVyID0gaU9TRHVtcFRvb2xBcHBJ
ZGVudGlmaWVyKCk7Ci0gICAgdW5saW5rIGdsb2IgIi90bXAvJHtpZGVudGlmaWVyfV8qIjsKLX0K
LQotc3ViIGJ1aWxkRHVtcFRvb2woJCkKLXsKLSAgICBteSAoJGR1bXBUb29sTmFtZSkgPSBAXzsK
LQotICAgIG15ICRkdW1wVG9vbEJ1aWxkU2NyaXB0ID0gICJidWlsZC0iIC4gbGMoJGR1bXBUb29s
TmFtZSk7Ci0gICAgcHJpbnQgU1RERVJSICJSdW5uaW5nICRkdW1wVG9vbEJ1aWxkU2NyaXB0XG4i
OwotCi0gICAgbG9jYWwgKkRFVk5VTEw7Ci0gICAgbXkgKCRjaGlsZEluLCAkY2hpbGRPdXQsICRj
aGlsZEVycik7Ci0gICAgaWYgKCRxdWlldCkgewotICAgICAgICBvcGVuKERFVk5VTEwsICI+Iiwg
RmlsZTo6U3BlYy0+ZGV2bnVsbCgpKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIC9kZXYvbnVsbCI7
Ci0gICAgICAgICRjaGlsZE91dCA9ICI+JkRFVk5VTEwiOwotICAgICAgICAkY2hpbGRFcnIgPSAi
PiZERVZOVUxMIjsKLSAgICB9IGVsc2UgewotICAgICAgICAjIFdoZW4gbm90IHF1aWV0LCBsZXQg
dGhlIGNoaWxkIHVzZSBvdXIgc3Rkb3V0L3N0ZGVyci4KLSAgICAgICAgJGNoaWxkT3V0ID0gIj4m
U1RET1VUIjsKLSAgICAgICAgJGNoaWxkRXJyID0gIj4mU1RERVJSIjsKLSAgICB9Ci0KLSAgICBt
eSBAYXJncyA9ICgnLS1zZGsnLCB4Y29kZVNESygpLCBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9u
KCkpOwotICAgIHB1c2ggQGFyZ3MsICgnLXRhcmdldCcsICdXZWJLaXRUZXN0UnVubmVyQXBwJykg
aWYgJHVzZVdlYktpdFRlc3RSdW5uZXIgYW5kICRkdW1wVG9vbE5hbWUgZXEgJ1dlYktpdFRlc3RS
dW5uZXInOwotCi0gICAgbXkgJGJ1aWxkUHJvY2VzcyA9IG9wZW4zKCRjaGlsZEluLCAkY2hpbGRP
dXQsICRjaGlsZEVyciwgJHBlcmxJbnRlcnByZXRlciwgRmlsZTo6U3BlYy0+Y2F0ZmlsZShxdyhU
b29scyBTY3JpcHRzKSwgJGR1bXBUb29sQnVpbGRTY3JpcHQpLCBAYXJncykgb3IgZGllICJGYWls
ZWQgdG8gcnVuIGJ1aWxkLSRkdW1wVG9vbE5hbWUiOwotICAgIGNsb3NlKCRjaGlsZEluKTsKLSAg
ICB3YWl0cGlkICRidWlsZFByb2Nlc3MsIDA7Ci0gICAgbXkgJGJ1aWxkUmVzdWx0ID0gJD87Ci0g
ICAgY2xvc2UoJGNoaWxkT3V0KTsKLSAgICBjbG9zZSgkY2hpbGRFcnIpOwotCi0gICAgY2xvc2Ug
REVWTlVMTCBpZiAoJHF1aWV0KTsKLQotICAgIGlmICgkYnVpbGRSZXN1bHQpIHsKLSAgICAgICAg
cHJpbnQgU1RERVJSICJDb21waWxpbmcgJGR1bXBUb29sTmFtZSBmYWlsZWQhXG4iOwotICAgICAg
ICBleGl0IGV4aXRTdGF0dXMoJGJ1aWxkUmVzdWx0KTsKLSAgICB9Ci19Ci0KLXN1YiBpT1NEdW1w
VG9vbEFwcElkZW50aWZpZXIoKQotewotICAgIHJldHVybiAkdXNlV2ViS2l0VGVzdFJ1bm5lciA/
ICJvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAiIDogIm9yZy53ZWJraXQuRHVtcFJlbmRl
clRyZWUiOwotfQotCi1zdWIgb3BlbkR1bXBUb29sKCkKLXsKLSAgICByZXR1cm4gaWYgJGlzRHVt
cFRvb2xPcGVuOwotCi0gICAgaWYgKCR2ZXJib3NlICYmICR0ZXN0c1BlckR1bXBUb29sICE9IDEp
IHsKLSAgICAgICAgcHJpbnQgInwgT3BlbmluZyBEdW1wVG9vbCB8XG4iOwotICAgIH0KLQotICAg
IG15ICVDTEVBTl9FTlY7Ci0KLSAgICAjIEdlbmVyaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0g
ICAgaWYgKGRlZmluZWQgJEVOVnsnV0VCS0lUX1RFU1RGT05UUyd9KSB7Ci0gICAgICAgICRDTEVB
Tl9FTlZ7V0VCS0lUX1RFU1RGT05UU30gPSAkRU5WeydXRUJLSVRfVEVTVEZPTlRTJ307Ci0gICAg
fQotCi0gICAgIyB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBEdW1wUmVuZGVy
dHJlZSAtIG5lZWRlZCBmb3IgcnVubmluZyBtb3JlIER1bXBSZW5kZXJUcmVlIGluIHBhcmFsbGVs
Ci0gICAgJENMRUFOX0VOVntEVU1QUkVOREVSVFJFRV9URU1QfSA9IEZpbGU6OlRlbXA6OnRlbXBk
aXIoJ0R1bXBSZW5kZXJUcmVlLVhYWFhYWCcsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOwot
ICAgICRDTEVBTl9FTlZ7WE1MX0NBVEFMT0dfRklMRVN9ID0gIiI7ICMgd29yayBhcm91bmQgbWlz
c2luZyAvZXRjL2NhdGFsb2cgPHJkYXI6Ly9wcm9ibGVtLzQyOTI5OTU+Ci0gICAgJENMRUFOX0VO
VntMT0NBTF9SRVNPVVJDRV9ST09UfSA9ICR0ZXN0RGlyZWN0b3J5OyAjIFVzZWQgYnkgbGF5b3V0
VGVzdENvbnN0cm9sbGVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoKQotCi0gICAgIyBQbGF0Zm9ybSBz
cGVzaWZpY3MKLSAgICBpZiAoaXNMaW51eCgpKSB7Ci0gICAgICAgIGlmIChkZWZpbmVkICRFTlZ7
J0RJU1BMQVknfSkgewotICAgICAgICAgICAgJENMRUFOX0VOVntESVNQTEFZfSA9ICRFTlZ7J0RJ
U1BMQVknfTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRDTEVBTl9FTlZ7RElTUExB
WX0gPSAiOjEiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZWZpbmVkICRFTlZ7J1hBVVRIT1JJ
VFknfSkgewotICAgICAgICAgICAgJENMRUFOX0VOVntYQVVUSE9SSVRZfSA9ICRFTlZ7J1hBVVRI
T1JJVFknfTsKLSAgICAgICAgfQotCi0gICAgICAgICRDTEVBTl9FTlZ7SE9NRX0gPSAkRU5WeydI
T01FJ307Ci0gICAgICAgICRDTEVBTl9FTlZ7TEFOR30gPSAkRU5WeydMQU5HJ307Ci0KLSAgICAg
ICAgaWYgKGRlZmluZWQgJEVOVnsnTERfTElCUkFSWV9QQVRIJ30pIHsKLSAgICAgICAgICAgICRD
TEVBTl9FTlZ7TERfTElCUkFSWV9QQVRIfSA9ICRFTlZ7J0xEX0xJQlJBUllfUEFUSCd9OwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChkZWZpbmVkICRFTlZ7J0RCVVNfU0VTU0lPTl9CVVNfQUREUkVT
Uyd9KSB7Ci0gICAgICAgICAgICAkQ0xFQU5fRU5We0RCVVNfU0VTU0lPTl9CVVNfQUREUkVTU30g
PSAkRU5WeydEQlVTX1NFU1NJT05fQlVTX0FERFJFU1MnfTsKLSAgICAgICAgfQotICAgIH0gZWxz
aWYgKGlzRGFyd2luKCkpIHsKLSAgICAgICAgaWYgKGRlZmluZWQgJEVOVnsnRFlMRF9MSUJSQVJZ
X1BBVEgnfSkgewotICAgICAgICAgICAgJENMRUFOX0VOVntEWUxEX0xJQlJBUllfUEFUSH0gPSAk
RU5WeydEWUxEX0xJQlJBUllfUEFUSCd9OwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZWZpbmVk
ICRFTlZ7J0hPTUUnfSkgewotICAgICAgICAgICAgJENMRUFOX0VOVntIT01FfSA9ICRFTlZ7J0hP
TUUnfTsKLSAgICAgICAgfQotCi0gICAgICAgICRDTEVBTl9FTlZ7RFlMRF9GUkFNRVdPUktfUEFU
SH0gPSAkcHJvZHVjdERpcjsKLSAgICAgICAgJENMRUFOX0VOVntEWUxEX0xJQlJBUllfUEFUSH0g
PSAkcHJvZHVjdERpcjsKLSAgICAgICAgJENMRUFOX0VOVntEWUxEX0lOU0VSVF9MSUJSQVJJRVN9
ID0gIi91c3IvbGliL2xpYmdtYWxsb2MuZHlsaWIiIGlmICRndWFyZE1hbGxvYzsKLSAgICB9IGVs
c2lmIChpc0N5Z3dpbigpKSB7Ci0gICAgICAgICRDTEVBTl9FTlZ7SE9NRURSSVZFfSA9ICRFTlZ7
J0hPTUVEUklWRSd9OwotICAgICAgICAkQ0xFQU5fRU5We0hPTUVQQVRIfSA9ICRFTlZ7J0hPTUVQ
QVRIJ307Ci0gICAgICAgICRDTEVBTl9FTlZ7X05UX1NZTUJPTF9QQVRIfSA9ICRFTlZ7X05UX1NZ
TUJPTF9QQVRIfTsKLSAgICB9Ci0KLSAgICAjIFBvcnQgc3BlY2lmaWNzCi0gICAgaWYgKGlzR3Rr
KCkpIHsKLSAgICAgICAgJENMRUFOX0VOVntMSUJPVkVSTEFZX1NDUk9MTEJBUn0gPSAiMCI7Ci0g
ICAgICAgICRDTEVBTl9FTlZ7R1RLX01PRFVMRVN9ID0gImdhaWwiOwotCi0gICAgICAgIGlmICgk
dXNlV2ViS2l0VGVzdFJ1bm5lcikgewotICAgICAgICAgICAgbXkgJGluamVjdGVkQnVuZGxlUGF0
aCA9IHByb2R1Y3REaXIoKSAuICIvTGlicmFyaWVzLy5saWJzL2xpYlRlc3RSdW5uZXJJbmplY3Rl
ZEJ1bmRsZSI7Ci0gICAgICAgICAgICAkQ0xFQU5fRU5We1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JV
TkRMRV9GSUxFTkFNRX0gPSAkaW5qZWN0ZWRCdW5kbGVQYXRoOwotICAgICAgICAgICAgbXkgJHRl
c3RQbHVnaW5QYXRoID0gcHJvZHVjdERpcigpIC4gIi9UZXN0TmV0c2NhcGVQbHVnaW4vLmxpYnMi
OwotICAgICAgICAgICAgJENMRUFOX0VOVntURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIfSA9
ICR0ZXN0UGx1Z2luUGF0aDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG15IEBhcmdzID0gKCRk
dW1wVG9vbCwgQHRvb2xBcmdzKTsKLSAgICBpZiAoaXNBcHBsZU1hY1dlYktpdCgpIGFuZCAhaXNJ
T1NXZWJLaXQoKSkgewotICAgICAgICB1bnNoaWZ0IEBhcmdzLCAiYXJjaCIsICItIiAuIGFyY2hp
dGVjdHVyZSgpOwotICAgIH0KLQotICAgIGlmICgkdXNlV2ViS2l0VGVzdFJ1bm5lcikgewotICAg
ICAgICAjIE1ha2UgV2ViS2l0VGVzdFJ1bm5lciB1c2UgYSBzaW1pbGFyIHRpbWVvdXQuIFdlIGRv
bid0IHVzZSB0aGUgZXhhY3Qgc2FtZSB0aW1lb3V0IHRvIGF2b2lkCi0gICAgICAgICMgcmFjZSBj
b25kaXRpb25zLgotICAgICAgICBwdXNoIEBhcmdzLCAiLS10aW1lb3V0IiwgJHRpbWVvdXRTZWNv
bmRzIC0gNTsKLSAgICB9Ci0KLSAgICAkQ0xFQU5fRU5We01hbGxvY1N0YWNrTG9nZ2luZ30gPSAx
IGlmICRzaG91bGRDaGVja0xlYWtzOwotCi0gICAgaWYgKGlzSU9TV2ViS2l0KCkpIHsKLSAgICAg
ICAgdW5saW5rRklGT3MoKTsKLQotICAgICAgICBteSAkYXBwSWRlbnRpZmllciA9IGlPU0R1bXBU
b29sQXBwSWRlbnRpZmllcigpOwotCi0gICAgICAgIG15ICRmaWZvT3V0ID0gIi90bXAvJHthcHBJ
ZGVudGlmaWVyfV9PVVQiOwotICAgICAgICBteSAkZmlmb0luID0gIi90bXAvJHthcHBJZGVudGlm
aWVyfV9JTiI7Ci0gICAgICAgIG15ICRmaWZvRXJyb3IgPSAiL3RtcC8ke2FwcElkZW50aWZpZXJ9
X0VSUk9SIjsKLQotICAgICAgICBmb3JlYWNoIG15ICRmaWZvICgkZmlmb091dCwgJGZpZm9Jbiwg
JGZpZm9FcnJvcikgewotICAgICAgICAgICAgaWYgKCEgLWUgJGZpZm8pIHsKLSAgICAgICAgICAg
ICAgICBzeXN0ZW0oJ21rZmlmbycsICRmaWZvKSA9PSAwIG9yIGRpZSAiQ291bGRuJ3QgbWtmaWZv
ICRmaWZvIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIG9wZW4oXCpPVVQs
ICIrPiAkZmlmb0luIikgb3IgZGllICJDb3VsZG4ndCBvcGVuICRmaWZvSW4hIjsKLSAgICAgICAg
b3BlbihcKklOLCAiKzwgJGZpZm9PdXQiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gJGZpZm9PdXQh
IjsKLSAgICAgICAgb3BlbihcKkVSUk9SLCAiKzwgJGZpZm9FcnJvciIpIG9yIGRpZSAiQ291bGRu
J3Qgb3BlbiAkZmlmb0Vycm9yISI7Ci0gICAgICAgIE9VVC0+YXV0b2ZsdXNoKDEpOwotCi0gICAg
ICAgIHNoaWZ0IEBhcmdzOyAjIHJlbW92ZSB0aGUgYWN0dWFsIGJpbmFyeSBuYW1lCi0KLSAgICAg
ICAgaWYgKCRoYXZlSW5zdGFsbGVkaU9TRHVtcFRvb2xBcHBPbmNlKSB7Ci0gICAgICAgICAgICBt
eSAkc2ltUGF0aCA9IGB4Y3J1biAtc2RrIGlwaG9uZXNpbXVsYXRvciAtZmluZCBzaW1gOwotICAg
ICAgICAgICAgY2hvbXAgJHNpbVBhdGg7Ci0KLSAgICAgICAgICAgIG15IEBlbnYgPSBtYXAgewot
ICAgICAgICAgICAgICAgIG15ICRrZXkgPSAkXzsKLSAgICAgICAgICAgICAgICBteSAkdmFsID0g
JENMRUFOX0VOVnska2V5fTsKLSAgICAgICAgICAgICAgICAoIi1lbnYiLCAiJGtleT0kdmFsIik7
Ci0gICAgICAgICAgICB9IGtleXMgJUNMRUFOX0VOVjsKLQotICAgICAgICAgICAgbXkgJGFyY2hG
bGFnID0gYXJjaGl0ZWN0dXJlKCkgZXEgJ2kzODYnID8gJy0tYXJjaD0zMicgOiAnLS1hcmNoPTY0
JzsKLQotICAgICAgICAgICAgbG9jYWwoKkxBVU5DSElOLCAqTEFVTkNIT1VUKTsKLSAgICAgICAg
ICAgIG9wZW4yKFwqTEFVTkNISU4sIFwqTEFVTkNIT1VULCAkc2ltUGF0aCwgJGFyY2hGbGFnLCAi
TGF1bmNoQXBwIiwgQGVudiwgJGFwcElkZW50aWZpZXIsIEBhcmdzKSB8fCBkaWUgIiQhIjsKLSAg
ICAgICAgICAgIG15ICRzdGRvdXQgPSA8TEFVTkNISU4+OwotICAgICAgICAgICAgaWYgKCRzdGRv
dXQgPX4gL0xhdW5jaGVkICRhcHBJZGVudGlmaWVyIHdpdGggcHJvY2VzcyBJRCAoWzAtOV0rKS8p
IHsKLSAgICAgICAgICAgICAgICAkZHVtcFRvb2xQSUQgPSAkMTsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgZGllICJDb3VsZCBub3QgbGF1bmNoICRhcHBJZGVudGlmaWVy
OiAkISI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZShMQVVOQ0hPVVQpIHx8IGRp
ZSAiJCEiOwotICAgICAgICAgICAgY2xvc2UoTEFVTkNISU4pIHx8IGRpZSAiJCEiOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgJGR1bXBUb29sUElEID0gaW5zdGFsbEFuZExhdW5jaER1
bXBUb29sQXBwVXNpbmdOb3RpZmljYXRpb24oXEBhcmdzLCBcJUNMRUFOX0VOVik7Ci0gICAgICAg
ICAgICAkaGF2ZUluc3RhbGxlZGlPU0R1bXBUb29sQXBwT25jZSA9IDE7Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2UgewotICAgICAgICAkZHVtcFRvb2xQSUQgPSBvcGVuMyhcKk9VVCwgXCpJTiwgXCpF
UlJPUiwgbGF1bmNoV2l0aEVudihAYXJncywgJUNMRUFOX0VOVikpIG9yIGRpZSAiRmFpbGVkIHRv
IHN0YXJ0IHRvb2w6ICRkdW1wVG9vbFxuIjsKLSAgICB9Ci0gICAgJGlzRHVtcFRvb2xPcGVuID0g
MTsKLSAgICAkZHVtcFRvb2xDcmFzaGVkID0gMDsKLX0KLQotc3ViIGNsb3NlRHVtcFRvb2woKQot
ewotICAgIHJldHVybiBpZiAhJGlzRHVtcFRvb2xPcGVuOwotCi0gICAgaWYgKCR2ZXJib3NlICYm
ICR0ZXN0c1BlckR1bXBUb29sICE9IDEpIHsKLSAgICAgICAgcHJpbnQgInwgQ2xvc2luZyBEdW1w
VG9vbCB8XG4iOwotICAgIH0KLQotICAgIGNsb3NlIElOOwotICAgIGNsb3NlIE9VVDsKLSAgICBp
ZiAoaXNJT1NXZWJLaXQoKSAmJiAhZHVtcFRvb2xEaWRDcmFzaCgpKSB7Ci0gICAgICAgIGlmICgk
aGF2ZUluc3RhbGxlZGlPU0R1bXBUb29sQXBwT25jZSkgewotICAgICAgICAgICAga2lsbCA5LCAk
ZHVtcFRvb2xQSUQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBxdWl0RHVtcFRvb2xV
c2luZ05vdGlmaWNhdGlvbigpOwotICAgICAgICB9Ci0KLSAgICAgICAgdW5saW5rRklGT3MoKTsK
LSAgICB9Ci0gICAgd2FpdHBpZCAkZHVtcFRvb2xQSUQsIDA7Ci0gCi0gICAgIyBjaGVjayBmb3Ig
V2ViQ29yZSBjb3VudGVyIGxlYWtzLgotICAgIGlmICgkc2hvdWxkQ2hlY2tMZWFrcykgewotICAg
ICAgICB3aGlsZSAoPEVSUk9SPikgewotICAgICAgICAgICAgcHJpbnQ7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgY2xvc2UgRVJST1I7Ci0gICAgJGlzRHVtcFRvb2xPcGVuID0gMDsKLX0KLQotc3Vi
IGR1bXBUb29sRGlkQ3Jhc2goKQotewotICAgIHJldHVybiAxIGlmICRkdW1wVG9vbENyYXNoZWQ7
Ci0gICAgcmV0dXJuIDAgdW5sZXNzICRpc0R1bXBUb29sT3BlbjsKLSAgICBpZiAoaXNJT1NXZWJL
aXQoKSkgewotICAgICAgICBteSAkY291bnQgPSBraWxsIDAsICRkdW1wVG9vbFBJRDsKLSAgICAg
ICAgcmV0dXJuIDEgaWYgISRjb3VudDsKLSAgICB9IGVsc2UgewotICAgICAgICBteSAkcGlkID0g
d2FpdHBpZCgtMSwgV05PSEFORyk7Ci0gICAgICAgIHJldHVybiAxIGlmICgkcGlkID09ICRkdW1w
VG9vbFBJRCk7Ci0gICAgfQotCi0gICAgIyBPbiBNYWMgT1MgWCwgY3Jhc2hpbmcgbWF5IGJlIHNp
Z25pZmljYW50bHkgZGVsYXllZCBieSBjcmFzaCByZXBvcnRlci4KLSAgICByZXR1cm4gMCB1bmxl
c3MgaXNBcHBsZU1hY1dlYktpdCgpIG9yIGlzSU9TV2ViS2l0KCk7Ci0KLSAgICByZXR1cm4gRHVt
cFJlbmRlclRyZWVTdXBwb3J0Ojpwcm9jZXNzSXNDcmFzaGluZygkZHVtcFRvb2xQSUQpOwotfQot
Ci1zdWIgY29uZmlndXJlQW5kT3BlbkhUVFBESWZOZWVkZWQoKQotewotICAgIHJldHVybiBpZiAk
aXNIdHRwZE9wZW47Ci0gICAgbXkgJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFu
ZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgpOwotICAgIG15IEBhcmdzID0gKAotICAgICAgICAi
LWMiLCAiQ3VzdG9tTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5L2FjY2Vzc19sb2cudHh0
XCIgY29tbW9uIiwKLSAgICAgICAgIi1jIiwgIkVycm9yTG9nIFwiJGFic1Rlc3RSZXN1bHRzRGly
ZWN0b3J5L2Vycm9yX2xvZy50eHRcIiIsCi0gICAgKTsKLSAgICBmb3JlYWNoICgkaHR0cGRQb3J0
LCAkaHR0cGRBdXhpbGlhcnlQb3J0LCAkaHR0cGRTU0xQb3J0KSB7Ci0gICAgICAgICMgV2UgbGlz
dGVuIHRvIGJvdGggSVB2NCBhbmQgSVB2NiBsb29wLWJhY2sgYWRkcmVzc2VzLCBidXQKLSAgICAg
ICAgIyBpZ25vcmUgcmVxdWVzdHMgdG8gODAwMCBmcm9tIHJhbmRvbSB1c2VycyBvbiBuZXR3b3Jr
LgotICAgICAgICAjIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3MTA0Pi4KLSAgICAgICAgcHVzaCBAYXJncywgKCItQyIsICJMaXN0ZW4gMTI3LjAuMC4xOiRf
Iik7Ci0gICAgICAgIHB1c2ggQGFyZ3MsICgiLUMiLCAiTGlzdGVuIFs6OjFdOiRfIik7Ci0gICAg
fQotCi0gICAgbXkgQGRlZmF1bHRBcmdzID0gZ2V0RGVmYXVsdENvbmZpZ0ZvclRlc3REaXJlY3Rv
cnkoJHRlc3REaXJlY3RvcnkpOwotICAgIEBhcmdzID0gKEBkZWZhdWx0QXJncywgQGFyZ3MpOwot
Ci0gICAgd2FpdEZvckhUVFBETG9jaygpIGlmICRzaG91bGRXYWl0Rm9ySFRUUEQ7Ci0gICAgJGlz
SHR0cGRPcGVuID0gb3BlbkhUVFBEKEBhcmdzKTsKLX0KLQotc3ViIGNoZWNrUHl0aG9uVmVyc2lv
bigpCi17Ci0gICAgIyB3ZSBoYXZlIG5vdCBjaGRpciB0byBzb3VyY2VEaXIgeWV0LgotICAgIHN5
c3RlbSAkcGVybEludGVycHJldGVyLCBGaWxlOjpTcGVjLT5jYXRmaWxlKHNvdXJjZURpcigpLCBx
dyhUb29scyBTY3JpcHRzIGVuc3VyZS12YWxpZC1weXRob24pKSwgIi0tY2hlY2stb25seSI7Ci0g
ICAgcmV0dXJuIGV4aXRTdGF0dXMoJD8pID09IDA7Ci19Ci0KLXN1YiBvcGVuV2ViU29ja2V0U2Vy
dmVySWZOZWVkZWQoKQotewotICAgIHJldHVybiAxIGlmICRpc1dlYlNvY2tldFNlcnZlck9wZW47
Ci0gICAgcmV0dXJuIDAgaWYgJGZhaWxlZFRvU3RhcnRXZWJTb2NrZXRTZXJ2ZXI7Ci0KLSAgICBt
eSAkd2ViU29ja2V0SGFuZGxlckRpciA9ICIkdGVzdERpcmVjdG9yeSI7Ci0gICAgbXkgJGFic1Rl
c3RSZXN1bHRzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZE1ha2VUZXN0UmVzdWx0c0RpcmVjdG9yeSgp
OwotICAgICR3ZWJTb2NrZXRTZXJ2ZXJQaWRGaWxlID0gIiRhYnNUZXN0UmVzdWx0c0RpcmVjdG9y
eS93ZWJzb2NrZXQucGlkIjsKLQotICAgIG15IEBhcmdzID0gKAotICAgICAgICAiVG9vbHMvU2Ny
aXB0cy9uZXctcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIiLAotICAgICAgICAiLS1zZXJ2ZXIi
LCAic3RhcnQiLAotICAgICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQb3J0IiwKLSAgICAgICAg
Ii0tcm9vdCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCi0gICAgICAgICItLW91dHB1dC1kaXIi
LCAiJGFic1Rlc3RSZXN1bHRzRGlyZWN0b3J5IiwKLSAgICAgICAgIi0tcGlkZmlsZSIsICIkd2Vi
U29ja2V0U2VydmVyUGlkRmlsZSIKLSAgICApOwotICAgIHN5c3RlbSAiL3Vzci9iaW4vcHl0aG9u
IiwgQGFyZ3M7Ci0KLSAgICAkaXNXZWJTb2NrZXRTZXJ2ZXJPcGVuID0gMTsKLSAgICByZXR1cm4g
MTsKLX0KLQotc3ViIGNsb3NlV2ViU29ja2V0U2VydmVyKCkKLXsKLSAgICByZXR1cm4gaWYgISRp
c1dlYlNvY2tldFNlcnZlck9wZW47Ci0KLSAgICBteSBAYXJncyA9ICgKLSAgICAgICAgIlRvb2xz
L1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyIiwKLSAgICAgICAgIi0tc2Vy
dmVyIiwgInN0b3AiLAotICAgICAgICAiLS1waWRmaWxlIiwgIiR3ZWJTb2NrZXRTZXJ2ZXJQaWRG
aWxlIgotICAgICk7Ci0gICAgc3lzdGVtICIvdXNyL2Jpbi9weXRob24iLCBAYXJnczsKLSAgICB1
bmxpbmsgIiR3ZWJTb2NrZXRTZXJ2ZXJQaWRGaWxlIjsKLQotICAgICMgd3NzIGlzIGRpc2FibGVk
IHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCi0gICAgJGlzV2ViU29ja2V0
U2VydmVyT3BlbiA9IDA7Ci19Ci0KLXN1YiBmaWxlTmFtZVdpdGhOdW1iZXIoJCQpCi17Ci0gICAg
bXkgKCRiYXNlLCAkbnVtYmVyKSA9IEBfOwotICAgIHJldHVybiAiJGJhc2UkbnVtYmVyIiBpZiAo
JG51bWJlciA+IDEpOwotICAgIHJldHVybiAkYmFzZTsKLX0KLQotc3ViIHByb2Nlc3NJZ25vcmVU
ZXN0cygkJCkKLXsKLSAgICBteSBAaWdub3JlTGlzdCA9IHNwbGl0KC9ccyosXHMqLywgc2hpZnQp
OwotICAgIG15ICRsaXN0TmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRpc2FibGVkU3VmZml4ID0g
Ii1kaXNhYmxlZCI7Ci0KLSAgICBteSAkYWRkSWdub3JlZERpcmVjdG9yaWVzID0gc3ViIHsKLSAg
ICAgICAgcmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGlyZWN0b3JpZXN7YmFzZW5h
bWUoJEZpbGU6OkZpbmQ6OmRpcil9OwotICAgICAgICAkaWdub3JlZERpcmVjdG9yaWVze0ZpbGU6
OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6OmRpciwgJHRlc3REaXJlY3RvcnkpfSA9IDE7Ci0g
ICAgICAgIHJldHVybiBAXzsKLSAgICB9OwotICAgIGZvcmVhY2ggbXkgJGl0ZW0gKEBpZ25vcmVM
aXN0KSB7Ci0gICAgICAgIG15ICRwYXRoID0gY2F0ZmlsZSgkdGVzdERpcmVjdG9yeSwgJGl0ZW0p
OyAKLSAgICAgICAgaWYgKC1kICRwYXRoKSB7Ci0gICAgICAgICAgICAkaWdub3JlZERpcmVjdG9y
aWVzeyRpdGVtfSA9IDE7Ci0gICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiAkYWRkSWdu
b3JlZERpcmVjdG9yaWVzLCB3YW50ZWQgPT4gc3ViIHt9IH0sICRwYXRoKTsKLSAgICAgICAgfQot
ICAgICAgICBlbHNpZiAoLWYgJHBhdGgpIHsKLSAgICAgICAgICAgICRpZ25vcmVkRmlsZXN7JGl0
ZW19ID0gMTsKLSAgICAgICAgfSBlbHNpZiAoLWYgJHBhdGggLiAkZGlzYWJsZWRTdWZmaXgpIHsK
LSAgICAgICAgICAgICMgVGhlIHRlc3QgaXMgZGlzYWJsZWQsIHNvIGRvIG5vdGhpbmcuCi0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAiJGxpc3ROYW1lIGxpc3QgY29udGFpbmVk
ICckaXRlbScsIGJ1dCBubyBmaWxlIG9mIHRoYXQgbmFtZSBjb3VsZCBiZSBmb3VuZFxuIjsKLSAg
ICAgICAgfQotICAgIH0KLX0KLQotc3ViIHN0cmlwRXh0ZW5zaW9uKCQpCi17Ci0gICAgbXkgKCR0
ZXN0KSA9IEBfOwotCi0gICAgJHRlc3QgPX4gcy9cLlthLXpBLVpdKyQvLzsKLSAgICByZXR1cm4g
JHRlc3Q7Ci19Ci0KLXN1YiBpc1RleHRPbmx5VGVzdCgkKQotewotICAgIG15ICgkYWN0dWFsKSA9
IEBfOwotICAgIG15ICRpc1RleHQ7Ci0gICAgaWYgKCRhY3R1YWwgPX4gL15sYXllciBhdC9tcykg
ewotICAgICAgICAkaXNUZXh0ID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICAkaXNUZXh0ID0g
MTsKLSAgICB9Ci0gICAgcmV0dXJuICRpc1RleHQ7Ci19Ci0KLXN1YiBleHBlY3RlZERpcmVjdG9y
eUZvclRlc3QoJDskOyQpCi17Ci0gICAgbXkgKCRiYXNlLCAkaXNUZXh0LCAkZXhwZWN0ZWRFeHRl
bnNpb24pID0gQF87Ci0KLSAgICBteSBAZGlyZWN0b3JpZXMgPSBAcGxhdGZvcm1SZXN1bHRIaWVy
YXJjaHk7Ci0KLSAgICBteSBAZXh0cmFQbGF0Zm9ybXMgPSAoKTsKLSAgICBpZiAoaXNBcHBsZVdp
bldlYktpdCgpKSB7Ci0gICAgICAgIHB1c2ggQGV4dHJhUGxhdGZvcm1zLCAibWFjLXdrMiIgaWYg
JHBsYXRmb3JtIGVxICJ3aW4td2syIjsKLSAgICAgICAgcHVzaCBAZXh0cmFQbGF0Zm9ybXMsIHF3
KG1hYy1saW9uIG1hYyk7Ci0gICAgfQotICAgIHB1c2ggQGV4dHJhUGxhdGZvcm1zLCBAbWFjUGxh
dGZvcm1zIGlmIGlzSU9TV2ViS2l0KCk7Ci0KLSAgICBwdXNoIEBkaXJlY3RvcmllcywgbWFwIHsg
Y2F0ZGlyKCRwbGF0Zm9ybUJhc2VEaXJlY3RvcnksICRfKSB9IEBleHRyYVBsYXRmb3JtczsKLSAg
ICBwdXNoIEBkaXJlY3RvcmllcywgJGV4cGVjdGVkRGlyZWN0b3J5OwotCi0gICAgIyBJZiB3ZSBh
bHJlYWR5IGhhdmUgZXhwZWN0ZWQgcmVzdWx0cywganVzdCByZXR1cm4gdGhlaXIgbG9jYXRpb24u
Ci0gICAgZm9yZWFjaCBteSAkZGlyZWN0b3J5IChAZGlyZWN0b3JpZXMpIHsKLSAgICAgICAgcmV0
dXJuICRkaXJlY3RvcnkgaWYgLWYgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZGlyZWN0b3J5LCAiJGJh
c2UtJGV4cGVjdGVkVGFnLiRleHBlY3RlZEV4dGVuc2lvbiIpOwotICAgIH0KLQotICAgICMgRm9y
IGNyb3NzLXBsYXRmb3JtIHRlc3RzLCB0ZXh0LW9ubHkgcmVzdWx0cyBzaG91bGQgZ28gaW4gdGhl
IGNyb3NzLXBsYXRmb3JtIGRpcmVjdG9yeSwKLSAgICAjIHdoaWxlIHJlbmRlciB0cmVlIGR1bXBz
IHNob3VsZCBnbyBpbiB0aGUgbGVhc3Qtc3BlY2lmaWMgcGxhdGZvcm0gZGlyZWN0b3J5LgotICAg
IHJldHVybiAkaXNUZXh0ID8gJGV4cGVjdGVkRGlyZWN0b3J5IDogJHBsYXRmb3JtUmVzdWx0SGll
cmFyY2h5WyQjcGxhdGZvcm1SZXN1bHRIaWVyYXJjaHldOwotfQotCi1zdWIgY291bnRGaW5pc2hl
ZFRlc3QoJCQkJCkKLXsKLSAgICBteSAoJHRlc3QsICRiYXNlLCAkcmVzdWx0LCAkaXNUZXh0KSA9
IEBfOwotCi0gICAgaWYgKCgkY291bnQgKyAxKSAlICR0ZXN0c1BlckR1bXBUb29sID09IDAgfHwg
JGNvdW50ID09ICQjdGVzdHMpIHsKLSAgICAgICAgaWYgKCRzaG91bGRDaGVja0xlYWtzKSB7Ci0g
ICAgICAgICAgICBteSAkZmlsZU5hbWU7Ci0gICAgICAgICAgICBpZiAoJHRlc3RzUGVyRHVtcFRv
b2wgPT0gMSkgewotICAgICAgICAgICAgICAgICRmaWxlTmFtZSA9IEZpbGU6OlNwZWMtPmNhdGZp
bGUoJHRlc3RSZXN1bHRzRGlyZWN0b3J5LCAiJGJhc2UtbGVha3MudHh0Iik7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRmaWxlTmFtZSA9IEZpbGU6OlNwZWMtPmNhdGZp
bGUoJHRlc3RSZXN1bHRzRGlyZWN0b3J5LCBmaWxlTmFtZVdpdGhOdW1iZXIoJGR1bXBUb29sTmFt
ZSwgJGxlYWtzT3V0cHV0RmlsZU51bWJlcikgLiAiLWxlYWtzLnR4dCIpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgbXkgJGxlYWtDb3VudCA9IGNvdW50QW5kUHJpbnRMZWFrcygkZHVtcFRv
b2xOYW1lLCAkZHVtcFRvb2xQSUQsICRmaWxlTmFtZSk7Ci0gICAgICAgICAgICAkdG90YWxMZWFr
cyArPSAkbGVha0NvdW50OwotICAgICAgICAgICAgJGxlYWtzT3V0cHV0RmlsZU51bWJlcisrIGlm
ICgkbGVha0NvdW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNsb3NlRHVtcFRvb2woKTsKLSAg
ICB9Ci0gICAgCi0gICAgJGNvdW50Kys7Ci0gICAgJGNvdW50c3skcmVzdWx0fSsrOwotICAgIHB1
c2ggQHskdGVzdHN7JHJlc3VsdH19LCAkdGVzdDsKLX0KLQotc3ViIHRlc3RDcmFzaGVkT3JUaW1l
ZE91dCgkJCQkJCQpCi17Ci0gICAgbXkgKCR0ZXN0LCAkYmFzZSwgJGRpZENyYXNoLCAkd2ViUHJv
Y2Vzc0NyYXNoZWQsICRhY3R1YWwsICRlcnJvcikgPSBAXzsKLQotICAgIHByaW50RmFpbHVyZU1l
c3NhZ2VGb3JUZXN0KCR0ZXN0LCAkd2ViUHJvY2Vzc0NyYXNoZWQgPyAiV2ViIHByb2Nlc3MgY3Jh
c2hlZCIgOiAkZGlkQ3Jhc2ggPyAiY3Jhc2hlZCIgOiAidGltZWQgb3V0Iik7Ci0KLSAgICBzYW1w
bGVEdW1wVG9vbCgpIHVubGVzcyAkZGlkQ3Jhc2ggfHwgJHdlYlByb2Nlc3NDcmFzaGVkOwotCi0g
ICAgbXkgJGRpciA9IGRpcm5hbWUoRmlsZTo6U3BlYy0+Y2F0ZGlyKCR0ZXN0UmVzdWx0c0RpcmVj
dG9yeSwgJGJhc2UpKTsKLSAgICBta3BhdGggJGRpcjsKLQotICAgIGRlbGV0ZUV4cGVjdGVkQW5k
QWN0dWFsUmVzdWx0cygkYmFzZSk7Ci0KLSAgICBpZiAoZGVmaW5lZCgkZXJyb3IpICYmIGxlbmd0
aCgkZXJyb3IpKSB7Ci0gICAgICAgIHdyaXRlVG9GaWxlKEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRl
c3RSZXN1bHRzRGlyZWN0b3J5LCAiJGJhc2UtJGVycm9yVGFnLnR4dCIpLCAkZXJyb3IpOwotICAg
IH0KLQotICAgIHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCRiYXNlLCAkYWN0dWFsKTsKLQot
ICAgICMgVGhlcmUncyBubyBwb2ludCBpbiBraWxsaW5nIHRoZSBkdW1wIHRvb2wgd2hlbiBpdCdz
IGNyYXNoZWQuIEFuZCBpdCB3aWxsIGtpbGwgaXRzZWxmIHdoZW4gdGhlCi0gICAgIyB3ZWIgcHJv
Y2VzcyBjcmFzaGVzLgotICAgIGtpbGwgOSwgJGR1bXBUb29sUElEIHVubGVzcyAkZGlkQ3Jhc2gg
fHwgJHdlYlByb2Nlc3NDcmFzaGVkOwotCi0gICAgY2xvc2VEdW1wVG9vbCgpOwotCi0gICAgY2Fw
dHVyZVNhdmVkQ3Jhc2hMb2coJGJhc2UsICR3ZWJQcm9jZXNzQ3Jhc2hlZCkgaWYgJGRpZENyYXNo
IHx8ICR3ZWJQcm9jZXNzQ3Jhc2hlZDsKLQotICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKSAm
JiAhJGRpZENyYXNoICYmICRiYXNlID1+IC9eaHR0cC87Ci0gICAgIyBPbiBDeWd3aW4sIGh0dHAg
dGVzdHMgdGltaW5nIG91dCBjYW4gYmUgYSBzeW1wdG9tIG9mIGEgbm9uLXJlc3BvbnNpdmUgaHR0
cGQuCi0gICAgIyBJZiB3ZSB0aW1lZCBvdXQgcnVubmluZyBhbiBodHRwIHRlc3QsIHRyeSByZXN0
YXJ0aW5nIGh0dHBkLgotICAgICRpc0h0dHBkT3BlbiA9ICFjbG9zZUhUVFBEKCk7Ci0gICAgY29u
ZmlndXJlQW5kT3BlbkhUVFBESWZOZWVkZWQoKTsKLX0KLQotc3ViIGNhcHR1cmVTYXZlZENyYXNo
TG9nKCQkKQotewotICAgIG15ICgkYmFzZSwgJHdlYlByb2Nlc3NDcmFzaGVkKSA9IEBfOwotCi0g
ICAgbXkgJGNyYXNoTG9nOwotCi0gICAgbXkgJGdsb2I7Ci0gICAgaWYgKGlzQ3lnd2luKCkpIHsK
LSAgICAgICAgJGdsb2IgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0ZXN0UmVzdWx0c0RpcmVjdG9y
eSwgJHdpbmRvd3NDcmFzaExvZ0ZpbGVQcmVmaXggLiAiKi50eHQiKTsKLSAgICB9IGVsc2lmIChp
c0FwcGxlTWFjV2ViS2l0KCkpIHsKLSAgICAgICAgJGdsb2IgPSBGaWxlOjpTcGVjLT5jYXRmaWxl
KCJ+IiwgIkxpYnJhcnkiLCAiTG9ncyIsICJEaWFnbm9zdGljUmVwb3J0cyIsICgkd2ViUHJvY2Vz
c0NyYXNoZWQgPyAiV2ViUHJvY2VzcyIgOiAkZHVtcFRvb2xOYW1lKSAuICJfKi5jcmFzaCIpOwot
Ci0gICAgICAgICMgRXZlbiB0aG91Z2ggdGhlIGR1bXAgdG9vbCBoYXMgZXhpdGVkLCBDcmFzaFJl
cG9ydGVyIG1pZ2h0IHN0aWxsIGJlIHJ1bm5pbmcuIFdlIG5lZWQgdG8KLSAgICAgICAgIyB3YWl0
IGZvciBpdCB0byBleGl0IHRvIGVuc3VyZSBpdCBoYXMgc2F2ZWQgaXRzIGNyYXNoIGxvZyB0byBk
aXNrLiBGb3Igc2ltcGxpY2l0bHksIHdlJ2xsCi0gICAgICAgICMgYXNzdW1lIHRoYXQgdGhlIFJl
cG9ydENyYXNoIHByb2Nlc3Mgd2l0aCB0aGUgaGlnaGVzdCBQSUQgaXMgdGhlIG9uZSB3ZSB3YW50
LgotICAgICAgICBpZiAobXkgQHJlcG9ydENyYXNoUElEcyA9IHNvcnQgbWFwIHsgL15ccyooXGQr
KS87ICQxIH0gZ3JlcCB7IC9SZXBvcnRDcmFzaC8gfSBgL2Jpbi9wcyB4YCkgewotICAgICAgICAg
ICAgbXkgJHJlcG9ydENyYXNoUElEID0gJHJlcG9ydENyYXNoUElEc1skI3JlcG9ydENyYXNoUElE
c107Ci0gICAgICAgICAgICAjIFdlIHVzZSBraWxsIGluc3RlYWQgb2Ygd2FpdHBpZCBiZWNhdXNl
IFJlcG9ydENyYXNoIGlzIG5vdCBvbmUgb2Ygb3VyIGNoaWxkIHByb2Nlc3Nlcy4KLSAgICAgICAg
ICAgIHVzbGVlcCgyNTAwMDApIHdoaWxlIGtpbGwoMCwgJHJlcG9ydENyYXNoUElEKSA+IDA7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gdW5sZXNzICRnbG9iOwotCi0gICAgIyBXZSBh
c3N1bWUgdGhhdCB0aGUgbmV3ZXN0IGNyYXNoIGxvZyBpbiBtYXRjaGluZyB0aGUgZ2xvYiBpcyB0
aGUgb25lIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGNyYXNoIHRoYXQganVzdCBvY2N1cnJlZC4K
LSAgICBpZiAobXkgJG5ld2VzdENyYXNoTG9nID0gZmluZE5ld2VzdEZpbGVNYXRjaGluZ0dsb2Io
JGdsb2IpKSB7Ci0gICAgICAgICMgVGhlIGNyYXNoIGxvZyBtdXN0IGhhdmUgYmVlbiBjcmVhdGVk
IGFmdGVyIHRoaXMgc2NyaXB0IHN0YXJ0ZWQgcnVubmluZy4KLSAgICAgICAgJGNyYXNoTG9nID0g
JG5ld2VzdENyYXNoTG9nIGlmIC1NICRuZXdlc3RDcmFzaExvZyA8IDA7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHVubGVzcyAkY3Jhc2hMb2c7Ci0KLSAgICBtb3ZlKCRjcmFzaExvZywgRmlsZTo6U3Bl
Yy0+Y2F0ZmlsZSgkdGVzdFJlc3VsdHNEaXJlY3RvcnksICIkYmFzZS0kY3Jhc2hMb2dUYWcudHh0
IikpOwotfQotCi1zdWIgZmluZE5ld2VzdEZpbGVNYXRjaGluZ0dsb2IoJCkKLXsKLSAgICBteSAo
JGdsb2IpID0gQF87Ci0KLSAgICBteSBAcGF0aHMgPSBnbG9iICRnbG9iOwotICAgIHJldHVybiB1
bmxlc3Mgc2NhbGFyKEBwYXRocyk7Ci0KLSAgICBteSBAcGF0aHNBbmRUaW1lcyA9IG1hcCB7IFsk
XywgLU0gJF9dIH0gQHBhdGhzOwotICAgIEBwYXRoc0FuZFRpbWVzID0gc29ydCB7ICRiLT5bMV0g
PD0+ICRhLT5bMV0gfSBAcGF0aHNBbmRUaW1lczsKLSAgICByZXR1cm4gJHBhdGhzQW5kVGltZXNb
JCNwYXRoc0FuZFRpbWVzXS0+WzBdOwotfQotCi1zdWIgcHJpbnRGYWlsdXJlTWVzc2FnZUZvclRl
c3QoJCQpCi17Ci0gICAgbXkgKCR0ZXN0LCAkZGVzY3JpcHRpb24pID0gQF87Ci0KLSAgICB1bmxl
c3MgKCR2ZXJib3NlKSB7Ci0gICAgICAgIHByaW50ICJcbiIgdW5sZXNzICRhdExpbmVTdGFydDsK
LSAgICAgICAgcHJpbnQgIiR0ZXN0IC0+ICI7Ci0gICAgfQotICAgIHByaW50ICIkZGVzY3JpcHRp
b25cbiI7Ci0gICAgJGF0TGluZVN0YXJ0ID0gMTsKLX0KLQotbXkgJWN5Z3BhdGhzID0gKCk7Ci0K
LXN1YiBvcGVuQ3lncGF0aElmTmVlZGVkKCQpCi17Ci0gICAgbXkgKCRvcHRpb25zKSA9IEBfOwot
Ci0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOwotICAgIHJldHVybiAkY3lncGF0aHN7JG9w
dGlvbnN9IGlmICRjeWdwYXRoc3skb3B0aW9uc30gJiYgJGN5Z3BhdGhzeyRvcHRpb25zfS0+eyJv
cGVuIn07Ci0KLSAgICBsb2NhbCAoKkNZR1BBVEhJTiwgKkNZR1BBVEhPVVQpOwotICAgIG15ICRw
aWQgPSBvcGVuMihcKkNZR1BBVEhJTiwgXCpDWUdQQVRIT1VULCAiY3lncGF0aCAtZiAtICRvcHRp
b25zIik7Ci0gICAgbXkgJGN5Z3BhdGggPSAgewotICAgICAgICAicGlkIiA9PiAkcGlkLAotICAg
ICAgICAiaW4iID0+ICpDWUdQQVRISU4sCi0gICAgICAgICJvdXQiID0+ICpDWUdQQVRIT1VULAot
ICAgICAgICAib3BlbiIgPT4gMQotICAgIH07Ci0KLSAgICAkY3lncGF0aHN7JG9wdGlvbnN9ID0g
JGN5Z3BhdGg7Ci0KLSAgICByZXR1cm4gJGN5Z3BhdGg7Ci19Ci0KLXN1YiBjbG9zZUN5Z3BhdGhz
KCkKLXsKLSAgICByZXR1cm4gdW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAgICBmb3JlYWNoIG15ICRj
eWdwYXRoICh2YWx1ZXMoJWN5Z3BhdGhzKSkgewotICAgICAgICBjbG9zZSAkY3lncGF0aC0+eyJp
biJ9OwotICAgICAgICBjbG9zZSAkY3lncGF0aC0+eyJvdXQifTsKLSAgICAgICAgd2FpdHBpZCgk
Y3lncGF0aC0+eyJwaWQifSwgMCk7Ci0gICAgICAgICRjeWdwYXRoLT57Im9wZW4ifSA9IDA7Ci0K
LSAgICB9Ci19Ci0KLXN1YiBjb252ZXJ0UGF0aFVzaW5nQ3lncGF0aCgkJCkKLXsKLSAgICBteSAo
JHBhdGgsICRvcHRpb25zKSA9IEBfOwotCi0gICAgIyBjeWdwYXRoIC1mIChhdCBsZWFzdCBpbiBD
eWd3aW4gMS43KSBjb252ZXJ0cyBzcGFjZXMgaW50byBuZXdsaW5lcy4gV2UgcmVtb3ZlIHNwYWNl
cyBoZXJlIGFuZAotICAgICMgYWRkIHRoZW0gYmFjayBpbiBhZnRlciBjb252ZXJzaW9uIHRvIHdv
cmsgYXJvdW5kIHRoaXMuCi0gICAgbXkgJHNwYWNlU3Vic3RpdHV0ZSA9ICJfX05PVEFTUEFDRV9f
IjsKLSAgICAkcGF0aCA9fiBzLyAvXFEkc3BhY2VTdWJzdGl0dXRlXEUvZzsKLQotICAgIG15ICRj
eWdwYXRoID0gb3BlbkN5Z3BhdGhJZk5lZWRlZCgkb3B0aW9ucyk7Ci0gICAgbG9jYWwgKmluRkgg
PSAkY3lncGF0aC0+eyJpbiJ9OwotICAgIGxvY2FsICpvdXRGSCA9ICRjeWdwYXRoLT57Im91dCJ9
OwotICAgIHByaW50IG91dEZIICRwYXRoIC4gIlxuIjsKLSAgICBteSAkY29udmVydGVkUGF0aCA9
IDxpbkZIPjsKLSAgICBjaG9tcCgkY29udmVydGVkUGF0aCkgaWYgZGVmaW5lZCAkY29udmVydGVk
UGF0aDsKLQotICAgICRjb252ZXJ0ZWRQYXRoID1+IHMvXFEkc3BhY2VTdWJzdGl0dXRlXEUvIC9n
OwotICAgIHJldHVybiAkY29udmVydGVkUGF0aDsKLX0KLQotc3ViIHRvQ3lnd2luUGF0aCgkKQot
ewotICAgIG15ICgkcGF0aCkgPSBAXzsKLSAgICByZXR1cm4gdW5sZXNzIGlzQ3lnd2luKCk7Ci0K
LSAgICByZXR1cm4gY29udmVydFBhdGhVc2luZ0N5Z3BhdGgoJHBhdGgsICItdSIpOwotfQotCi1z
dWIgdG9XaW5kb3dzUGF0aCgkKQotewotICAgIG15ICgkcGF0aCkgPSBAXzsKLSAgICByZXR1cm4g
dW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAgICByZXR1cm4gY29udmVydFBhdGhVc2luZ0N5Z3BhdGgo
JHBhdGgsICItdyIpOwotfQotCi1zdWIgdG9VUkwoJCkKLXsKLSAgICBteSAoJHBhdGgpID0gQF87
Ci0KLSAgICBpZiAoJHVzZVJlbW90ZUxpbmtzVG9UZXN0cykgewotICAgICAgICBteSAkcmVsYXRp
dmVQYXRoID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkcGF0aCwgJHRlc3REaXJlY3RvcnkpOwotCi0g
ICAgICAgICMgSWYgdGhlIGZpbGUgaXMgYmVsb3cgdGhlIHRlc3QgZGlyZWN0b3J5IHRoZW4gY29u
dmVydCBpdCBpbnRvIGEgbGluayB0byB0aGUgZmlsZSBpbiBTVk4KLSAgICAgICAgaWYgKCRyZWxh
dGl2ZVBhdGggIX4gL15cLlwuXC8vKSB7Ci0gICAgICAgICAgICBteSAkcmV2aXNpb24gPSBzdm5S
ZXZpc2lvbkZvckRpcmVjdG9yeSgkdGVzdERpcmVjdG9yeSk7Ci0gICAgICAgICAgICBteSAkc3Zu
UGF0aCA9IHBhdGhSZWxhdGl2ZVRvU1ZOUmVwb3NpdG9yeVJvb3RGb3JQYXRoKCRwYXRoKTsKLSAg
ICAgICAgICAgIHJldHVybiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9leHBvcnQvJHJldmlzaW9u
LyRzdm5QYXRoIjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAkcGF0aCB1bmxlc3Mg
aXNDeWd3aW4oKTsKLQotICAgIHJldHVybiAiZmlsZTovLy8iIC4gY29udmVydFBhdGhVc2luZ0N5
Z3BhdGgoJHBhdGgsICItbSIpOwotfQotCi1zdWIgdmFsaWRhdGVTa2lwcGVkQXJnKCQkOyQpCi17
Ci0gICAgbXkgKCRvcHRpb24sICR2YWx1ZSwgJHZhbHVlMikgPSBAXzsKLSAgICBteSAldmFsaWRT
a2lwcGVkVmFsdWVzID0gbWFwIHsgJF8gPT4gMSB9IHF3KGRlZmF1bHQgaWdub3JlIG9ubHkpOwot
ICAgICR2YWx1ZSA9IGxjKCR2YWx1ZSk7Ci0gICAgZGllICJJbnZhbGlkIGFyZ3VtZW50ICciIC4g
JHZhbHVlIC4gIicgZm9yIG9wdGlvbiAkb3B0aW9uIiB1bmxlc3MgJHZhbGlkU2tpcHBlZFZhbHVl
c3skdmFsdWV9OwotICAgICR0cmVhdFNraXBwZWQgPSAkdmFsdWU7Ci19Ci0KLXN1YiBodG1sRm9y
UmVzdWx0c1NlY3Rpb24oXEAkJikKLXsKLSAgICBteSAoJHRlc3RzLCAkZGVzY3JpcHRpb24sICRs
aW5rR2V0dGVyKSA9IEBfOwotCi0gICAgbXkgQGh0bWwgPSAoKTsKLSAgICByZXR1cm4gam9pbigi
XG4iLCBAaHRtbCkgdW5sZXNzIEB7JHRlc3RzfTsKLQotICAgIHB1c2ggQGh0bWwsICI8cD4kZGVz
Y3JpcHRpb246PC9wPiI7Ci0gICAgcHVzaCBAaHRtbCwgIjx0YWJsZT4iOwotICAgIGZvcmVhY2gg
bXkgJHRlc3QgKEB7JHRlc3RzfSkgewotICAgICAgICBwdXNoIEBodG1sLCAiPHRyPiI7Ci0gICAg
ICAgIHB1c2ggQGh0bWwsICI8dGQ+PGEgaHJlZj1cIiIgLiB0b1VSTCgiJHRlc3REaXJlY3Rvcnkv
JHRlc3QiKSAuICJcIj4kdGVzdDwvYT48L3RkPiI7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGxpbmsg
KEB7JnskbGlua0dldHRlcn0oJHRlc3QpfSkgewotICAgICAgICAgICAgcHVzaCBAaHRtbCwgIjx0
ZD4iOwotICAgICAgICAgICAgcHVzaCBAaHRtbCwgIjxhIGhyZWY9XCIkbGluay0+e2hyZWZ9XCI+
JGxpbmstPnt0ZXh0fTwvYT4iIGlmIC1mIEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LCAkbGluay0+e2hyZWZ9KTsKLSAgICAgICAgICAgIHB1c2ggQGh0bWwsICI8L3Rk
PiI7Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaCBAaHRtbCwgIjwvdHI+IjsKLSAgICB9Ci0gICAg
cHVzaCBAaHRtbCwgIjwvdGFibGU+IjsKLQotICAgIHJldHVybiBqb2luKCJcbiIsIEBodG1sKTsK
LX0KLQotc3ViIGxpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCQpCi17Ci0gICAgbXkg
KCRiYXNlKSA9IEBfOwotCi0gICAgbXkgQGxpbmtzID0gKCk7Ci0KLSAgICByZXR1cm4gXEBsaW5r
cyB1bmxlc3MgLXMgIiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0IjsK
LSAgICAKLSAgICBteSAkZXhwZWN0ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7
JGJhc2V9OwotICAgIG15ICgkZXhwZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVzdWx0
c0RpcmVjdG9yeSwgJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhwZWN0
ZWRSZXN1bHRQYXRoLCBxcntcLlteLl0rJH0pOwotCi0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9
PiAiJGJhc2UtJGV4cGVjdGVkVGFnJGV4cGVjdGVkUmVzdWx0RXh0ZW5zaW9uIiwgdGV4dCA9PiAi
ZXhwZWN0ZWQiIH07Ci0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVhbFRh
ZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gImFjdHVhbCIgfTsKLSAgICBwdXNo
IEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcudHh0IiwgdGV4dCA9PiAiZGlmZiIg
fTsKLSAgICBwdXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kcHJldHR5RGlmZlRhZy5odG1s
IiwgdGV4dCA9PiAicHJldHR5IGRpZmYiIH07Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQot
c3ViIGxpbmtzRm9yTWlzbWF0Y2hUZXN0Ci17Ci0gICAgbXkgKCR0ZXN0KSA9IEBfOwotCi0gICAg
bXkgQGxpbmtzID0gKCk7Ci0KLSAgICBteSAkYmFzZSA9IHN0cmlwRXh0ZW5zaW9uKCR0ZXN0KTsK
LQotICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtzRm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRi
YXNlKX07Ci0gICAgcmV0dXJuIFxAbGlua3MgdW5sZXNzICRwaXhlbFRlc3RzICYmICRpbWFnZXNQ
cmVzZW50eyRiYXNlfTsKLQotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRleHBl
Y3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJleHBlY3RlZCBpbWFnZSIgfTsKLSAgICBwdXNoIEBsaW5r
cywgeyBocmVmID0+ICIkYmFzZS0kZGlmZnNUYWcuaHRtbCIsIHRleHQgPT4gImltYWdlIGRpZmZz
IiB9OwotICAgIHB1c2ggQGxpbmtzLCB7IGhyZWYgPT4gIiRiYXNlLSRkaWZmc1RhZy5wbmciLCB0
ZXh0ID0+ICIkaW1hZ2VEaWZmZXJlbmNlc3skYmFzZX0lIiB9OwotCi0gICAgcmV0dXJuIFxAbGlu
a3M7Ci19Ci0KLXN1YiBjcmFzaExvY2F0aW9uKCQpCi17Ci0gICAgbXkgKCRiYXNlKSA9IEBfOwot
Ci0gICAgbXkgJGNyYXNoTG9nRmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LCAiJGJhc2UtJGNyYXNoTG9nVGFnLnR4dCIpOwotCi0gICAgaWYgKGlzQ3lnd2lu
KCkpIHsKLSAgICAgICAgIyBXZSdyZSBsb29raW5nIGZvciB0aGUgZm9sbG93aW5nIHRleHQ6Ci0g
ICAgICAgICMKLSAgICAgICAgIyBGT0xMT1dVUF9JUDoKLSAgICAgICAgIyBtb2R1bGUhZnVuY3Rp
b24rb2Zmc2V0IFtmaWxlOmxpbmVdCi0gICAgICAgICMKLSAgICAgICAgIyBUaGUgc2Vjb25kIGNv
bnRhaW5zIHRoZSBmdW5jdGlvbiB0aGF0IGNyYXNoZWQgKG9yIHRoZSBmdW5jdGlvbiB0aGF0IGVu
ZGVkIHVwIGp1bXBpbmcgdG8gYSBiYWQKLSAgICAgICAgIyBhZGRyZXNzLCBhcyBpbiB0aGUgY2Fz
ZSBvZiBhIG51bGwgZnVuY3Rpb24gcG9pbnRlcikuCi0KLSAgICAgICAgb3BlbiBMT0csICI8Iiwg
JGNyYXNoTG9nRmlsZSBvciByZXR1cm47Ci0gICAgICAgIHdoaWxlIChteSAkbGluZSA9IDxMT0c+
KSB7Ci0gICAgICAgICAgICBsYXN0IGlmICRsaW5lID1+IC9eRk9MTE9XVVBfSVA6LzsKLSAgICAg
ICAgfQotICAgICAgICBteSAkZGVzaXJlZExpbmUgPSA8TE9HPjsKLSAgICAgICAgY2xvc2UgTE9H
OwotCi0gICAgICAgIHJldHVybiB1bmxlc3MgJGRlc2lyZWRMaW5lOwotCi0gICAgICAgICMgSnVz
dCB0YWtlIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGZpcnN0IHNwYWNlICh3aGljaCBpcyB3aGVyZSB0
aGUgZmlsZS9saW5lIGluZm9ybWF0aW9uIHNob3VsZAotICAgICAgICAjIHN0YXJ0KS4KLSAgICAg
ICAgJGRlc2lyZWRMaW5lID1+IC9eKFxTKykvOwotICAgICAgICByZXR1cm4gJDE7Ci0gICAgfQot
Ci0gICAgaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewotICAgICAgICAjIFdlJ3JlIGxvb2tpbmcg
Zm9yIHRoZSBmb2xsb3dpbmcgdGV4dDoKLSAgICAgICAgIwotICAgICAgICAjIFRocmVhZCBNIENy
YXNoZWQ6Ci0gICAgICAgICMgTiAgIG1vZHVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFkZHJlc3MgZnVuY3Rpb24gKyBvZmZzZXQgKGZpbGU6bGluZSkKLSAgICAgICAgIwotICAgICAg
ICAjIFNvbWUgbGluZXMgbWlnaHQgaGF2ZSBhIG1vZHVsZSBvZiAiPz8/IiBpZiB3ZSd2ZSBqdW1w
ZWQgdG8gYSBiYWQgYWRkcmVzcy4gV2Ugc2hvdWxkIHNraXAKLSAgICAgICAgIyBwYXN0IHRob3Nl
LgotCi0gICAgICAgIG9wZW4gTE9HLCAiPCIsICRjcmFzaExvZ0ZpbGUgb3IgcmV0dXJuOwotICAg
ICAgICB3aGlsZSAobXkgJGxpbmUgPSA8TE9HPikgewotICAgICAgICAgICAgbGFzdCBpZiAkbGlu
ZSA9fiAvXlRocmVhZCBcZCsgQ3Jhc2hlZDovOwotICAgICAgICB9Ci0gICAgICAgIG15ICRsb2Nh
dGlvbjsKLSAgICAgICAgd2hpbGUgKG15ICRsaW5lID0gPExPRz4pIHsKLSAgICAgICAgICAgICRs
aW5lID1+IC9eXGQrXHMrKFxTKylccytcUysgKC4qIFwrIFxkKykvIG9yIG5leHQ7Ci0gICAgICAg
ICAgICBteSAkbW9kdWxlID0gJDE7Ci0gICAgICAgICAgICBteSAkZnVuY3Rpb25BbmRPZmZzZXQg
PSAkMjsKLSAgICAgICAgICAgIG5leHQgaWYgJG1vZHVsZSBlcSAiPz8/IjsKLSAgICAgICAgICAg
ICRsb2NhdGlvbiA9ICIkbW9kdWxlOiAkZnVuY3Rpb25BbmRPZmZzZXQiOwotICAgICAgICAgICAg
bGFzdDsKLSAgICAgICAgfQotICAgICAgICBjbG9zZSBMT0c7Ci0gICAgICAgIHJldHVybiAkbG9j
YXRpb247Ci0gICAgfQotfQotCi1zdWIgbGlua3NGb3JFcnJvclRlc3QKLXsKLSAgICBteSAoJHRl
c3QpID0gQF87Ci0KLSAgICBteSBAbGlua3MgPSAoKTsKLQotICAgIG15ICRiYXNlID0gc3RyaXBF
eHRlbnNpb24oJHRlc3QpOwotCi0gICAgbXkgJGNyYXNoTG9nVGV4dCA9ICJjcmFzaCBsb2ciOwot
ICAgIGlmIChteSAkY3Jhc2hMb2NhdGlvbiA9IGNyYXNoTG9jYXRpb24oJGJhc2UpKSB7Ci0gICAg
ICAgICRjcmFzaExvZ1RleHQgLj0gIiAoPGNvZGU+IiAuIENHSTo6ZXNjYXBlSFRNTCgkY3Jhc2hM
b2NhdGlvbikgLiAiPC9jb2RlPikiOwotICAgIH0KLQotICAgIHB1c2ggQGxpbmtzLCBAe2xpbmtz
Rm9yRXhwZWN0ZWRBbmRBY3R1YWxSZXN1bHRzKCRiYXNlKX07Ci0gICAgcHVzaCBAbGlua3MsIHsg
aHJlZiA9PiAiJGJhc2UtJGVycm9yVGFnLnR4dCIsIHRleHQgPT4gInN0ZGVyciIgfTsKLSAgICBw
dXNoIEBsaW5rcywgeyBocmVmID0+ICIkYmFzZS0kY3Jhc2hMb2dUYWcudHh0IiwgdGV4dCA9PiAk
Y3Jhc2hMb2dUZXh0IH07Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3ViIGxpbmtzRm9y
TmV3VGVzdAotewotICAgIG15ICgkdGVzdCkgPSBAXzsKLQotICAgIG15IEBsaW5rcyA9ICgpOwot
Ci0gICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkdGVzdCk7Ci0KLSAgICBteSAkZXhwZWN0
ZWRSZXN1bHRQYXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OwotICAgIG15ICgkZXhw
ZWN0ZWRSZXN1bHRGaWxlTmFtZSwgJGV4cGVjdGVkUmVzdWx0c0RpcmVjdG9yeSwgJGV4cGVjdGVk
UmVzdWx0RXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkZXhwZWN0ZWRSZXN1bHRQYXRoLCBxcntcLlte
Ll0rJH0pOwotCi0gICAgcHVzaCBAbGlua3MsIHsgaHJlZiA9PiAiJGJhc2UtJGFjdHVhbFRhZyRl
eHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIsIHRleHQgPT4gInJlc3VsdCIgfTsKLSAgICBpZiAoJHBp
eGVsVGVzdHMgJiYgJGltYWdlc1ByZXNlbnR7JGJhc2V9KSB7Ci0gICAgICAgIHB1c2ggQGxpbmtz
LCB7IGhyZWYgPT4gIiRiYXNlLSRleHBlY3RlZFRhZy5wbmciLCB0ZXh0ID0+ICJpbWFnZSIgfTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gXEBsaW5rczsKLX0KLQotc3ViIGRlbGV0ZUV4cGVjdGVkQW5k
QWN0dWFsUmVzdWx0cygkKQotewotICAgIG15ICgkYmFzZSkgPSBAXzsKLQotICAgIHVubGluayAi
JHRlc3RSZXN1bHRzRGlyZWN0b3J5LyRiYXNlLSRhY3R1YWxUYWcudHh0IjsKLSAgICB1bmxpbmsg
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZGlmZnNUYWcudHh0IjsKLSAgICB1bmxpbmsg
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kZXJyb3JUYWcudHh0IjsKLSAgICB1bmxpbmsg
IiR0ZXN0UmVzdWx0c0RpcmVjdG9yeS8kYmFzZS0kY3Jhc2hMb2dUYWcudHh0IjsKLX0KLQotc3Vi
IHJlY29yZEFjdHVhbFJlc3VsdHNBbmREaWZmKCQkKQotewotICAgIG15ICgkYmFzZSwgJGFjdHVh
bFJlc3VsdHMpID0gQF87Ci0KLSAgICByZXR1cm4gdW5sZXNzIGRlZmluZWQoJGFjdHVhbFJlc3Vs
dHMpICYmIGxlbmd0aCgkYWN0dWFsUmVzdWx0cyk7Ci0KLSAgICBteSAkZXhwZWN0ZWRSZXN1bHRQ
YXRoID0gJGV4cGVjdGVkUmVzdWx0UGF0aHN7JGJhc2V9OwotICAgIG15ICgkZXhwZWN0ZWRSZXN1
bHRGaWxlTmFtZU1pbnVzRXh0ZW5zaW9uLCAkZXhwZWN0ZWRSZXN1bHREaXJlY3RvcnlQYXRoLCAk
ZXhwZWN0ZWRSZXN1bHRFeHRlbnNpb24pID0gZmlsZXBhcnNlKCRleHBlY3RlZFJlc3VsdFBhdGgs
IHFye1wuW14uXSskfSk7Ci0gICAgbXkgJGFjdHVhbFJlc3VsdHNQYXRoID0gRmlsZTo6U3BlYy0+
Y2F0ZmlsZSgkdGVzdFJlc3VsdHNEaXJlY3RvcnksICIkYmFzZS0kYWN0dWFsVGFnJGV4cGVjdGVk
UmVzdWx0RXh0ZW5zaW9uIik7Ci0gICAgbXkgJGNvcGllZEV4cGVjdGVkUmVzdWx0c1BhdGggPSBG
aWxlOjpTcGVjLT5jYXRmaWxlKCR0ZXN0UmVzdWx0c0RpcmVjdG9yeSwgIiRiYXNlLSRleHBlY3Rl
ZFRhZyRleHBlY3RlZFJlc3VsdEV4dGVuc2lvbiIpOwotCi0gICAgbWtwYXRoKGRpcm5hbWUoJGFj
dHVhbFJlc3VsdHNQYXRoKSk7Ci0gICAgd3JpdGVUb0ZpbGUoIiRhY3R1YWxSZXN1bHRzUGF0aCIs
ICRhY3R1YWxSZXN1bHRzKTsKLQotICAgICMgV2UgZG9uJ3QgbmVlZCBkaWZmIGFuZCBwcmV0dHkg
ZGlmZiBmb3IgdGVzdHMgd2l0aG91dCBleHBlY3RlZCBmaWxlLgotICAgIGlmICggIS1mICRleHBl
Y3RlZFJlc3VsdFBhdGgpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvcHkoIiRl
eHBlY3RlZFJlc3VsdFBhdGgiLCAiJGNvcGllZEV4cGVjdGVkUmVzdWx0c1BhdGgiKTsKLQotICAg
IG15ICRkaWZmT3VwdXRCYXNlUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlc3RSZXN1bHRz
RGlyZWN0b3J5LCAkYmFzZSk7Ci0gICAgbXkgJGRpZmZPdXRwdXRQYXRoID0gIiRkaWZmT3VwdXRC
YXNlUGF0aC0kZGlmZnNUYWcudHh0IjsKLSAgICBzeXN0ZW0gImRpZmYgLXUgXCIkY29waWVkRXhw
ZWN0ZWRSZXN1bHRzUGF0aFwiIFwiJGFjdHVhbFJlc3VsdHNQYXRoXCIgPiBcIiRkaWZmT3V0cHV0
UGF0aFwiIjsKLQotICAgIG15ICRwcmV0dHlEaWZmT3V0cHV0UGF0aCA9ICIkZGlmZk91cHV0QmFz
ZVBhdGgtJHByZXR0eURpZmZUYWcuaHRtbCI7Ci0gICAgbXkgJHByZXR0eVBhdGNoUGF0aCA9ICJX
ZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5UGF0Y2gvIjsKLSAgICBteSAkcHJldHRpZnlQ
YXRoID0gIiRwcmV0dHlQYXRjaFBhdGgvcHJldHRpZnkucmIiOwotICAgIHN5c3RlbSAicnVieSAt
SSBcIiRwcmV0dHlQYXRjaFBhdGhcIiBcIiRwcmV0dGlmeVBhdGhcIiBcIiRkaWZmT3V0cHV0UGF0
aFwiID4gXCIkcHJldHR5RGlmZk91dHB1dFBhdGhcIiI7Ci19Ci0KLXN1YiBidWlsZFBsYXRmb3Jt
UmVzdWx0SGllcmFyY2h5KCkKLXsKLSAgICBta3BhdGgoJHBsYXRmb3JtVGVzdERpcmVjdG9yeSkg
aWYgKCRwbGF0Zm9ybSBlcSAidW5kZWZpbmVkIiAmJiAhLWQgIiRwbGF0Zm9ybVRlc3REaXJlY3Rv
cnkiKTsKLQotICAgIG15IEBwbGF0Zm9ybXM7Ci0KLSAgICBteSAkaXNNYWMgPSAkcGxhdGZvcm0g
PX4gL15tYWMvOwotICAgIG15ICRpc1dpbiA9ICRwbGF0Zm9ybSA9fiAvXndpbi87Ci0gICAgbXkg
JGlzSU9TID0gJHBsYXRmb3JtID1+IC9eaW9zLzsKLSAgICBpZiAoJGlzTWFjIHx8ICRpc1dpbiB8
fCAkaXNJT1MpIHsKLSAgICAgICAgbXkgJGVmZmVjdGl2ZVBsYXRmb3JtID0gJHBsYXRmb3JtOwot
ICAgICAgICBpZiAoJHBsYXRmb3JtIGVxICJtYWMtd2syIiB8fCAkcGxhdGZvcm0gZXEgIndpbi13
azIiIHx8ICRwbGF0Zm9ybSBlcSAiaW9zLXNpbS13azIiKSB7Ci0gICAgICAgICAgICBwdXNoIEBw
bGF0Zm9ybXMsICRwbGF0Zm9ybTsKLSAgICAgICAgICAgICRlZmZlY3RpdmVQbGF0Zm9ybSA9ICRy
ZWFsUGxhdGZvcm07Ci0gICAgICAgIH0KLQotICAgICAgICBteSBAcGxhdGZvcm1MaXN0ID0gJGlz
TWFjID8gQG1hY1BsYXRmb3JtcyA6IEB3aW5QbGF0Zm9ybXM7Ci0gICAgICAgIEBwbGF0Zm9ybUxp
c3QgPSBAaVBob25lU2ltdWxhdG9yUGxhdGZvcm1zIGlmICRpc0lPUzsKLSAgICAgICAgbXkgJGk7
Ci0gICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IEBwbGF0Zm9ybUxpc3Q7ICRpKyspIHsKLSAgICAg
ICAgICAgIGxhc3QgaWYgJHBsYXRmb3JtTGlzdFskaV0gZXEgJGVmZmVjdGl2ZVBsYXRmb3JtOwot
ICAgICAgICB9Ci0gICAgICAgIGZvciAoOyAkaSA8IEBwbGF0Zm9ybUxpc3Q7ICRpKyspIHsKLSAg
ICAgICAgICAgIHB1c2ggQHBsYXRmb3JtcywgJHBsYXRmb3JtTGlzdFskaV07Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoJHBsYXRmb3JtIGVxICJ3aW5jYWlybyIpIHsKLSAgICAgICAgICAgIEBw
bGF0Zm9ybXMgPSAkcGxhdGZvcm07Ci0gICAgICAgIH0KLSAgICB9IGVsc2lmICgkcGxhdGZvcm0g
PX4gL15ndGstLykgewotICAgICAgICBwdXNoIEBwbGF0Zm9ybXMsICRwbGF0Zm9ybTsKLSAgICAg
ICAgcHVzaCBAcGxhdGZvcm1zLCAiZ3RrIjsKLSAgICB9IGVsc2UgewotICAgICAgICBAcGxhdGZv
cm1zID0gJHBsYXRmb3JtOwotICAgIH0KLQotICAgIG15IEBoaWVyYXJjaHk7Ci0gICAgZm9yICht
eSAkaSA9IDA7ICRpIDwgQHBsYXRmb3JtczsgJGkrKykgewotICAgICAgICBteSAkc2NvcGVkID0g
Y2F0ZGlyKCRwbGF0Zm9ybUJhc2VEaXJlY3RvcnksICRwbGF0Zm9ybXNbJGldKTsKLSAgICAgICAg
cHVzaChAaGllcmFyY2h5LCAkc2NvcGVkKSBpZiAoLWQgJHNjb3BlZCk7Ci0gICAgfQotIAotICAg
IHVuc2hpZnQgQGhpZXJhcmNoeSwgZ3JlcCB7IC1kICRfIH0gQGFkZGl0aW9uYWxQbGF0Zm9ybURp
cmVjdG9yaWVzOwotCi0gICAgcmV0dXJuIEBoaWVyYXJjaHk7Ci19Ci0KLXN1YiBidWlsZFBsYXRm
b3JtVGVzdEhpZXJhcmNoeShAKQotewotICAgIG15IChAcGxhdGZvcm1IaWVyYXJjaHkpID0gQF87
Ci0KLSAgICBteSBAcmVzdWx0OwotICAgIG15ICR3azJQbGF0Zm9ybTsKLSAgICBmb3IgKG15ICRp
ID0gMDsgJGkgPCBAcGxhdGZvcm1IaWVyYXJjaHk7ICsrJGkpIHsKLSAgICAgICAgaWYgKCRwbGF0
Zm9ybUhpZXJhcmNoeVskaV0gPX4gLy13azIvKSB7Ci0gICAgICAgICAgICAkd2syUGxhdGZvcm0g
PSBzcGxpY2UgQHBsYXRmb3JtSGllcmFyY2h5LCAkaSwgMTsKLSAgICAgICAgICAgIGxhc3Q7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdXNoIEByZXN1bHQsICRwbGF0Zm9ybUhpZXJhcmNoeVsw
XTsKLSAgICBwdXNoIEByZXN1bHQsICR3azJQbGF0Zm9ybSBpZiBkZWZpbmVkICR3azJQbGF0Zm9y
bTsKLSAgICBwdXNoIEByZXN1bHQsICRwbGF0Zm9ybUhpZXJhcmNoeVskI3BsYXRmb3JtSGllcmFy
Y2h5XSBpZiBAcGxhdGZvcm1IaWVyYXJjaHkgPj0gMjsKLQotICAgIGlmICgkdmVyYm9zZSkgewot
ICAgICAgICBteSBAc2VhcmNoUGF0aHM7Ci0gICAgICAgIGZvcmVhY2ggbXkgJHNlYXJjaFBhdGgg
KEByZXN1bHQpIHsKLSAgICAgICAgICAgIG15ICgkZGlyLCAkbmFtZSkgPSBzcGxpdHBhdGgoJHNl
YXJjaFBhdGgpOwotICAgICAgICAgICAgcHVzaCBAc2VhcmNoUGF0aHMsICRuYW1lOwotICAgICAg
ICB9Ci0gICAgICAgIG15ICRzZWFyY2hQYXRoSGllcmFyY2h5ID0gam9pbignIC0+ICcsIEBzZWFy
Y2hQYXRocyk7Ci0gICAgICAgIHByaW50ICJCYXNlbGluZSBzZWFyY2ggcGF0aDogJHNlYXJjaFBh
dGhIaWVyYXJjaHlcbiI7Ci0gICAgfQotCi0gICAgcmV0dXJuIEByZXN1bHQ7Ci19Ci0KLXN1YiBl
cGlsb2d1ZXNBbmRQcm9sb2d1ZXMoJCQpCi17Ci0gICAgbXkgKCRsYXN0RGlyZWN0b3J5LCAkZGly
ZWN0b3J5KSA9IEBfOwotICAgIG15IEBsYXN0Q29tcG9uZW50cyA9IHNwbGl0KCcvJywgJGxhc3RE
aXJlY3RvcnkpOwotICAgIG15IEBjb21wb25lbnRzID0gc3BsaXQoJy8nLCAkZGlyZWN0b3J5KTsK
LQotICAgIHdoaWxlIChAbGFzdENvbXBvbmVudHMpIHsKLSAgICAgICAgaWYgKCFkZWZpbmVkKCRj
b21wb25lbnRzWzBdKSB8fCAkbGFzdENvbXBvbmVudHNbMF0gbmUgJGNvbXBvbmVudHNbMF0pIHsK
LSAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgIH0KLSAgICAgICAgc2hpZnQgQGNvbXBvbmVudHM7
Ci0gICAgICAgIHNoaWZ0IEBsYXN0Q29tcG9uZW50czsKLSAgICB9Ci0KLSAgICBteSBAcmVzdWx0
OwotICAgIG15ICRsZWF2aW5nID0gJGxhc3REaXJlY3Rvcnk7Ci0gICAgZm9yZWFjaCAoQGxhc3RD
b21wb25lbnRzKSB7Ci0gICAgICAgIG15ICRlcGlsb2d1ZSA9ICRsZWF2aW5nIC4gIi9yZXNvdXJj
ZXMvcnVuLXdlYmtpdC10ZXN0cy1lcGlsb2d1ZS5odG1sIjsKLSAgICAgICAgZm9yZWFjaCAoQHBs
YXRmb3JtUmVzdWx0SGllcmFyY2h5KSB7Ci0gICAgICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRp
cigkXywgJGVwaWxvZ3VlKSBpZiAoc3RhdChjYXRkaXIoJF8sICRlcGlsb2d1ZSkpKTsKLSAgICAg
ICAgfQotICAgICAgICBwdXNoIEByZXN1bHQsIGNhdGRpcigkdGVzdERpcmVjdG9yeSwgJGVwaWxv
Z3VlKSBpZiAoc3RhdChjYXRkaXIoJHRlc3REaXJlY3RvcnksICRlcGlsb2d1ZSkpKTsKLSAgICAg
ICAgJGxlYXZpbmcgPX4gc3woXlx8LylbXi9dKyR8fDsKLSAgICB9Ci0KLSAgICBteSAkZW50ZXJp
bmcgPSAkbGVhdmluZzsKLSAgICBmb3JlYWNoIChAY29tcG9uZW50cykgewotICAgICAgICAkZW50
ZXJpbmcgLj0gJy8nIC4gJF87Ci0gICAgICAgIG15ICRwcm9sb2d1ZSA9ICRlbnRlcmluZyAuICIv
cmVzb3VyY2VzL3J1bi13ZWJraXQtdGVzdHMtcHJvbG9ndWUuaHRtbCI7Ci0gICAgICAgIHB1c2gg
QHJlc3VsdCwgY2F0ZGlyKCR0ZXN0RGlyZWN0b3J5LCAkcHJvbG9ndWUpIGlmIChzdGF0KGNhdGRp
cigkdGVzdERpcmVjdG9yeSwgJHByb2xvZ3VlKSkpOwotICAgICAgICBmb3JlYWNoIChyZXZlcnNl
IEBwbGF0Zm9ybVJlc3VsdEhpZXJhcmNoeSkgewotICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBj
YXRkaXIoJF8sICRwcm9sb2d1ZSkgaWYgKHN0YXQoY2F0ZGlyKCRfLCAkcHJvbG9ndWUpKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIEByZXN1bHQ7Ci19Ci0gICAgCi1zdWIgcGFyc2VM
ZWFrc2FuZFByaW50VW5pcXVlTGVha3MoKQotewotICAgIHJldHVybiB1bmxlc3MgQGxlYWtzRmls
ZW5hbWVzOwotCi0gICAgbXkgJG1lcmdlZEZpbGVuYW1lcyA9IGpvaW4gIiAiLCBAbGVha3NGaWxl
bmFtZXM7Ci0gICAgbXkgJHBhcnNlTWFsbG9jSGlzdG9yeVRvb2wgPSBzb3VyY2VEaXIoKSAuICIv
VG9vbHMvU2NyaXB0cy9wYXJzZS1tYWxsb2MtaGlzdG9yeSI7Ci0gICAgCi0gICAgb3BlbiBNRVJH
RURfTEVBS1MsICJjYXQgJG1lcmdlZEZpbGVuYW1lcyB8ICRwYXJzZU1hbGxvY0hpc3RvcnlUb29s
IC0tbWVyZ2UtZGVwdGggJG1lcmdlRGVwdGggIC0gfCIgOwotICAgIG15IEBsZWFrTGluZXMgPSA8
TUVSR0VEX0xFQUtTPjsKLSAgICBjbG9zZSBNRVJHRURfTEVBS1M7Ci0gICAgCi0gICAgbXkgJHVu
aXF1ZUxlYWtDb3VudCA9IDA7Ci0gICAgbXkgJHRvdGFsQnl0ZXM7Ci0gICAgZm9yZWFjaCBteSAk
bGluZSAoQGxlYWtMaW5lcykgewotICAgICAgICArKyR1bmlxdWVMZWFrQ291bnQgaWYgKCRsaW5l
ID1+IC9eKFxkKilcc2NhbGxzLyk7Ci0gICAgICAgICR0b3RhbEJ5dGVzID0gJDEgaWYgJGxpbmUg
PX4gL150b3RhbFw6XHMoLiopXHNcKC87Ci0gICAgfQotICAgIAotICAgIHByaW50ICJcbldBUk5J
Tkc6ICR0b3RhbExlYWtzIHRvdGFsIGxlYWtzIGZvdW5kIGZvciBhIHRvdGFsIG9mICR0b3RhbEJ5
dGVzIVxuIjsKLSAgICBwcmludCAiV0FSTklORzogJHVuaXF1ZUxlYWtDb3VudCB1bmlxdWUgbGVh
a3MgZm91bmQhXG4iOwotICAgIHByaW50ICJTZWUgYWJvdmUgZm9yIGluZGl2aWR1YWwgbGVha3Mg
cmVzdWx0cy5cbiIgaWYgKCRsZWFrc091dHB1dEZpbGVOdW1iZXIgPiAyKTsKLSAgICAKLX0KLQot
c3ViIGV4dGVuc2lvbkZvck1pbWVUeXBlKCQpCi17Ci0gICAgbXkgKCRtaW1lVHlwZSkgPSBAXzsK
LQotICAgIGlmICgkbWltZVR5cGUgZXEgImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSIpIHsKLSAg
ICAgICAgcmV0dXJuICJ3ZWJhcmNoaXZlIjsKLSAgICB9IGVsc2lmICgkbWltZVR5cGUgZXEgImFw
cGxpY2F0aW9uL3BkZiIpIHsKLSAgICAgICAgcmV0dXJuICJwZGYiOwotICAgIH0gZWxzaWYgKCRt
aW1lVHlwZSBlcSAiYXVkaW8vd2F2IikgewotICAgICAgICByZXR1cm4gIndhdiI7Ci0gICAgfQot
ICAgIHJldHVybiAidHh0IjsKLX0KLQotIyBSZWFkIHVwIHRvIHRoZSBmaXJzdCAjRU9GICh0aGUg
Y29udGVudCBibG9jayBvZiB0aGUgdGVzdCksIG9yIHVudGlsIGRldGVjdGluZyBjcmFzaGVzIG9y
IHRpbWVvdXRzLgotc3ViIHJlYWRGcm9tRHVtcFRvb2xXaXRoVGltZXIoKiopCi17Ci0gICAgbXkg
KCRmaEluLCAkZmhFcnJvcikgPSBAXzsKLQotICAgIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygk
ZmhJbiwgMSk7Ci0gICAgc2V0RmlsZUhhbmRsZU5vbkJsb2NraW5nKCRmaEVycm9yLCAxKTsKLQot
ICAgIG15ICRtYXhpbXVtU2Vjb25kc1dpdGhvdXRPdXRwdXQgPSAkdGltZW91dFNlY29uZHM7Ci0g
ICAgbXkgJG1pY3Jvc2Vjb25kc1RvV2FpdEJlZm9yZVJlYWRpbmdBZ2FpbiA9IDEwMDA7Ci0KLSAg
ICBteSAkdGltZU9mTGFzdFN1Y2Nlc3NmdWxSZWFkID0gdGltZTsKLQotICAgIG15IEBvdXRwdXQg
PSAoKTsKLSAgICBteSBAZXJyb3IgPSAoKTsKLSAgICBteSAkc3RhdHVzID0gInN1Y2Nlc3MiOwot
ICAgIG15ICRtaW1lVHlwZSA9ICJ0ZXh0L3BsYWluIjsKLSAgICBteSAkZW5jb2RpbmcgPSAiIjsK
LSAgICAjIFdlIGRvbid0IGhhdmUgYSB2ZXJ5IGdvb2Qgd2F5IHRvIGtub3cgd2hlbiB0aGUgImhl
YWRlcnMiIHN0b3AKLSAgICAjIGFuZCB0aGUgY29udGVudCBzdGFydHMsIHNvIHdlIHVzZSB0aGlz
IGFzIGEgaGFjazoKLSAgICBteSAkaGF2ZVNlZW5Db250ZW50VHlwZSA9IDA7Ci0gICAgbXkgJGhh
dmVTZWVuQ29udGVudFRyYW5zZmVyRW5jb2RpbmcgPSAwOwotICAgIG15ICRoYXZlU2VlbkVvZklu
ID0gMDsKLSAgICBteSAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDA7Ci0KLSAgICB3aGlsZSAoMSkgewot
ICAgICAgICBpZiAodGltZSAtICR0aW1lT2ZMYXN0U3VjY2Vzc2Z1bFJlYWQgPiAkbWF4aW11bVNl
Y29uZHNXaXRob3V0T3V0cHV0KSB7Ci0gICAgICAgICAgICAkc3RhdHVzID0gZHVtcFRvb2xEaWRD
cmFzaCgpID8gImNyYXNoZWQiIDogInRpbWVkT3V0IjsKLSAgICAgICAgICAgIGxhc3Q7Ci0gICAg
ICAgIH0KLQotICAgICAgICAjIE9uY2Ugd2UndmUgc2VlbiB0aGUgRU9GLCB3ZSBtdXN0IG5vdCBy
ZWFkIGFueW1vcmUuCi0gICAgICAgIG15ICRsaW5lSW4gPSByZWFkbGluZSgkZmhJbikgdW5sZXNz
ICRoYXZlU2VlbkVvZkluOwotICAgICAgICBteSAkbGluZUVycm9yID0gcmVhZGxpbmUoJGZoRXJy
b3IpIHVubGVzcyAkaGF2ZVNlZW5Fb2ZFcnJvcjsKLSAgICAgICAgaWYgKCFkZWZpbmVkKCRsaW5l
SW4pICYmICFkZWZpbmVkKCRsaW5lRXJyb3IpKSB7Ci0gICAgICAgICAgICBsYXN0IGlmICgkaGF2
ZVNlZW5Fb2ZJbiAmJiAkaGF2ZVNlZW5Fb2ZFcnJvcik7Ci0KLSAgICAgICAgICAgIGlmICgkISAh
PSBFQUdBSU4pIHsKLSAgICAgICAgICAgICAgICAkc3RhdHVzID0gImNyYXNoZWQiOwotICAgICAg
ICAgICAgICAgIGxhc3Q7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICMgTm8gZGF0YSBy
ZWFkeQotICAgICAgICAgICAgdXNsZWVwKCRtaWNyb3NlY29uZHNUb1dhaXRCZWZvcmVSZWFkaW5n
QWdhaW4pOwotICAgICAgICAgICAgbmV4dDsKLSAgICAgICAgfQotCi0gICAgICAgICR0aW1lT2ZM
YXN0U3VjY2Vzc2Z1bFJlYWQgPSB0aW1lOwotCi0gICAgICAgIGlmIChkZWZpbmVkKCRsaW5lSW4p
KSB7Ci0gICAgICAgICAgICBpZiAoISRoYXZlU2VlbkNvbnRlbnRUeXBlICYmICRsaW5lSW4gPX4g
L15Db250ZW50LVR5cGU6IChcUyspJC8pIHsKLSAgICAgICAgICAgICAgICAkbWltZVR5cGUgPSAk
MTsKLSAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Db250ZW50VHlwZSA9IDE7Ci0gICAgICAgICAg
ICB9IGVsc2lmICghJGhhdmVTZWVuQ29udGVudFRyYW5zZmVyRW5jb2RpbmcgJiYgJGxpbmVJbiA9
fiAvXkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IChcUyspJC8pIHsKLSAgICAgICAgICAgICAg
ICAkZW5jb2RpbmcgPSAkMTsKLSAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Db250ZW50VHJhbnNm
ZXJFbmNvZGluZyA9IDE7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZUluID1+IC9eRHVtcE1h
bGxvY3xeRHVtcEpTSGVhcDogKFxTKykkLykgewotICAgICAgICAgICAgICAgICAgICAjIElnbm9y
ZWQuIE9ubHkgdXNlZCBpbiBwZXJmb3JtYW5jZSB0ZXN0cy4KLSAgICAgICAgICAgIH0gZWxzaWYg
KCRsaW5lSW4gPX4gLyguKikjRU9GJC8pIHsKLSAgICAgICAgICAgICAgICBpZiAoJDEgbmUgIiIp
IHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaCBAb3V0cHV0LCAkMTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgJGhhdmVTZWVuRW9mSW4gPSAxOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoIEBvdXRwdXQsICRsaW5lSW47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRlZmluZWQoJGxpbmVFcnJvcikpIHsKLSAgICAg
ICAgICAgIGlmICgkbGluZUVycm9yID1+IC8jQ1JBU0hFRCAtIFdlYlByb2Nlc3MvKSB7Ci0gICAg
ICAgICAgICAgICAgJHN0YXR1cyA9ICJ3ZWJQcm9jZXNzQ3Jhc2hlZCI7Ci0gICAgICAgICAgICAg
ICAgbGFzdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgkbGluZUVycm9yID1+IC8j
Q1JBU0hFRC8pIHsKLSAgICAgICAgICAgICAgICAkc3RhdHVzID0gImNyYXNoZWQiOwotICAgICAg
ICAgICAgICAgIGxhc3Q7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoJGxpbmVFcnJv
ciA9fiAvI0VPRi8pIHsKLSAgICAgICAgICAgICAgICAkaGF2ZVNlZW5Fb2ZFcnJvciA9IDE7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2ggQGVycm9yLCAkbGluZUVy
cm9yOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgc2V0RmlsZUhhbmRs
ZU5vbkJsb2NraW5nKCRmaEluLCAwKTsKLSAgICBzZXRGaWxlSGFuZGxlTm9uQmxvY2tpbmcoJGZo
RXJyb3IsIDApOwotICAgIG15ICRqb2luZWRfb3V0cHV0ID0gam9pbigiIiwgQG91dHB1dCk7Ci0g
ICAgaWYgKCRlbmNvZGluZyBlcSAiYmFzZTY0IikgewotICAgICAgICAkam9pbmVkX291dHB1dCA9
IGRlY29kZV9iYXNlNjQoJGpvaW5lZF9vdXRwdXQpOwotICAgIH0KLSAgICByZXR1cm4gewotICAg
ICAgICBvdXRwdXQgPT4gJGpvaW5lZF9vdXRwdXQsCi0gICAgICAgIGVycm9yID0+IGpvaW4oIiIs
IEBlcnJvciksCi0gICAgICAgIHN0YXR1cyA9PiAkc3RhdHVzLAotICAgICAgICBtaW1lVHlwZSA9
PiAkbWltZVR5cGUsCi0gICAgICAgIGV4dGVuc2lvbiA9PiBleHRlbnNpb25Gb3JNaW1lVHlwZSgk
bWltZVR5cGUpCi0gICAgfTsKLX0KLQotc3ViIHNldEZpbGVIYW5kbGVOb25CbG9ja2luZygqJCkK
LXsKLSAgICBteSAoJGZoLCAkbm9uQmxvY2tpbmcpID0gQF87Ci0KLSAgICBteSAkZmxhZ3MgPSBm
Y250bCgkZmgsIEZfR0VURkwsIDApIG9yIGRpZSAiQ291bGRuJ3QgZ2V0IGZpbGVoYW5kbGUgZmxh
Z3MiOwotCi0gICAgaWYgKCRub25CbG9ja2luZykgewotICAgICAgICAkZmxhZ3MgfD0gT19OT05C
TE9DSzsKLSAgICB9IGVsc2UgewotICAgICAgICAkZmxhZ3MgJj0gfk9fTk9OQkxPQ0s7Ci0gICAg
fQotCi0gICAgZmNudGwoJGZoLCBGX1NFVEZMLCAkZmxhZ3MpIG9yIGRpZSAiQ291bGRuJ3Qgc2V0
IGZpbGVoYW5kbGUgZmxhZ3MiOwotCi0gICAgcmV0dXJuIDE7Ci19Ci0KLXN1YiBzYW1wbGVEdW1w
VG9vbCgpCi17Ci0gICAgcmV0dXJuIHVubGVzcyBpc0FwcGxlTWFjV2ViS2l0KCk7Ci0gICAgcmV0
dXJuIHVubGVzcyAkcnVuU2FtcGxlOwotCi0gICAgbXkgJG91dHB1dERpcmVjdG9yeSA9ICIkRU5W
e0hPTUV9L0xpYnJhcnkvTG9ncy9EdW1wUmVuZGVyVHJlZSI7Ci0gICAgLWQgJG91dHB1dERpcmVj
dG9yeSBvciBta2RpciAkb3V0cHV0RGlyZWN0b3J5OwotCi0gICAgbXkgJG91dHB1dEZpbGUgPSAi
JG91dHB1dERpcmVjdG9yeS9IYW5nUmVwb3J0LnR4dCI7Ci0gICAgc3lzdGVtICIvdXNyL2Jpbi9z
YW1wbGUiLCAkZHVtcFRvb2xQSUQsIHF3KDEwIDEwIC1maWxlKSwgJG91dHB1dEZpbGU7Ci19Ci0K
LXN1YiBzdHJpcE1ldHJpY3MoJCQpCi17Ci0gICAgbXkgKCRhY3R1YWwsICRleHBlY3RlZCkgPSBA
XzsKLQotICAgIGZvcmVhY2ggbXkgJHJlc3VsdCAoJGFjdHVhbCwgJGV4cGVjdGVkKSB7Ci0gICAg
ICAgICRyZXN1bHQgPX4gcy9hdCBcKC0/WzAtOV0rLC0/WzAtOV0rXCkgKi8vZzsKLSAgICAgICAg
JHJlc3VsdCA9fiBzL3NpemUgLT9bMC05XSt4LT9bMC05XSsgKi8vZzsKLSAgICAgICAgJHJlc3Vs
dCA9fiBzL3RleHQgcnVuIHdpZHRoIC0/WzAtOV0rOiAvL2c7Ci0gICAgICAgICRyZXN1bHQgPX4g
cy90ZXh0IHJ1biB3aWR0aCAtP1swLTldKyBbYS16QS1aIF0rOiAvL2c7Ci0gICAgICAgICRyZXN1
bHQgPX4gcy9SZW5kZXJCdXR0b24ge0JVVFRPTn0gLiovUmVuZGVyQnV0dG9uIHtCVVRUT059L2c7
Ci0gICAgICAgICRyZXN1bHQgPX4gcy9SZW5kZXJJbWFnZSB7SU5QVVR9IC4qL1JlbmRlckltYWdl
IHtJTlBVVH0vZzsKLSAgICAgICAgJHJlc3VsdCA9fiBzL1JlbmRlckJsb2NrIHtJTlBVVH0gLiov
UmVuZGVyQmxvY2sge0lOUFVUfS9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSAuKi9SZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9L2c7Ci0gICAgICAgICRy
ZXN1bHQgPX4gcy9cKFswLTldK3B4L3B4L2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy8gKiIgKlxu
ICsiICovIC9nOwotICAgICAgICAkcmVzdWx0ID1+IHMvIiArJC8iL2c7Ci0gICAgICAgICRyZXN1
bHQgPX4gcy8tIC8tL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9cbiggKikiXHMrL1xuJDEiL2c7
Ci0gICAgICAgICRyZXN1bHQgPX4gcy9ccysiXG4vIlxuL2c7Ci0gICAgICAgICRyZXN1bHQgPX4g
cy9zY3JvbGxXaWR0aCBbMC05XSsvc2Nyb2xsV2lkdGgvZzsKLSAgICAgICAgJHJlc3VsdCA9fiBz
L3Njcm9sbEhlaWdodCBbMC05XSsvc2Nyb2xsSGVpZ2h0L2c7Ci0gICAgICAgICRyZXN1bHQgPX4g
cy9zY3JvbGxYIFswLTldKy9zY3JvbGxYL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9zY3JvbGxZ
IFswLTldKy9zY3JvbGxZL2c7Ci0gICAgICAgICRyZXN1bHQgPX4gcy9zY3JvbGxlZCB0byBbMC05
XSssWzAtOV0rL3Njcm9sbGVkL2c7Ci0gICAgfQotCi0gICAgcmV0dXJuICgkYWN0dWFsLCAkZXhw
ZWN0ZWQpOwotfQotCi1zdWIgZmlsZVNob3VsZEJlSWdub3JlZAotewotICAgIG15ICgkZmlsZVBh
dGgpID0gQF87Ci0gICAgZm9yZWFjaCBteSAkaWdub3JlZERpciAoa2V5cyAlaWdub3JlZERpcmVj
dG9yaWVzKSB7Ci0gICAgICAgIGlmICgkZmlsZVBhdGggPX4gbS9eJGlnbm9yZWREaXIvKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gMDsKLX0K
LQotc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCkKLXsKLSAgICBteSAoJGNvbnN0cmFpbnRQYXRoKSA9
IEBfOwotCi0gICAgbXkgQHNraXBwZWRGaWxlRGlyZWN0b3JpZXMgPSBAcGxhdGZvcm1UZXN0SGll
cmFyY2h5OwotCi0gICAgIyBCZWNhdXNlIG5lYXJseSBhbGwgb2YgdGhlIHNraXBwZWQgdGVzdHMg
Zm9yIFdlYktpdCAyIG9uIE1hYyBhcmUgZHVlIHRvCi0gICAgIyBjcm9zcy1wbGF0Zm9ybSBpc3N1
ZXMsIHRoZSBXaW5kb3dzIHBvcnRzIHVzZSB0aGUgTWFjIHNraXBwZWQgbGlzdAotICAgICMgYWRk
aXRpb25hbGx5IHRvIHRoZWlyIG93biB0byBhdm9pZCBtYWludGFpbmluZyBzZXBhcmF0ZSBsaXN0
cy4KLSAgICBwdXNoKEBza2lwcGVkRmlsZURpcmVjdG9yaWVzLCBjYXRkaXIoJHBsYXRmb3JtQmFz
ZURpcmVjdG9yeSwgIndrMiIpKSBpZiAoJHBsYXRmb3JtIGVxICJ3aW4td2syIiB8fCAkcGxhdGZv
cm0gZXEgIm1hYy13azIiIHx8ICRwbGF0Zm9ybSBlcSAiZ3RrLXdrMiIpOwotCi0gICAgaWYgKCR2
ZXJib3NlKSB7Ci0gICAgICAgIGZvcmVhY2ggbXkgJHNraXBwZWRQYXRoIChAc2tpcHBlZEZpbGVE
aXJlY3RvcmllcykgewotICAgICAgICAgICAgcHJpbnQgIlVzaW5nIFNraXBwZWQgZmlsZTogJHNr
aXBwZWRQYXRoXG4iOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yZWFjaCBteSAkbGV2ZWwg
KEBza2lwcGVkRmlsZURpcmVjdG9yaWVzKSB7Ci0gICAgICAgICMgSWYgYSBTa2lwcGVkIGZpbGUg
ZXhpc3RzIGluIHRoZSBkaXJlY3RvcnksIHVzZSB0aGF0IGFuZCBpZ25vcmUgdGhlIFRlc3RFeHBl
Y3RhdGlvbnMgZmlsZSwKLSAgICAgICAgIyBidXQgaWYgaXQgZG9lc24ndCwgdHJlYXQgZXZlcnkg
ZW50cnkgaW4gdGhlIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBhcyBpZiBpdCBzaG91bGQgYmUgU2tp
cHBlZC4KLSAgICAgICAgaWYgKG9wZW4gU0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBwZWQiKSB7
Ci0gICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBteSAoJGRpciwg
JG5hbWUpID0gc3BsaXRwYXRoKCRsZXZlbCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQgIlNraXBw
ZWQgdGVzdHMgaW4gJG5hbWU6XG4iOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3aGls
ZSAoPFNLSVBQRUQ+KSB7Ci0gICAgICAgICAgICAgICAgbXkgJHNraXBwZWQgPSAkXzsKLSAgICAg
ICAgICAgICAgICBjaG9tcCAkc2tpcHBlZDsKLSAgICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBz
L15bIFxuXHJdKy8vOwotICAgICAgICAgICAgICAgICRza2lwcGVkID1+IHMvWyBcblxyXSskLy87
Ci0gICAgICAgICAgICAgICAgaWYgKCRza2lwcGVkICYmICRza2lwcGVkICF+IC9eIy8pIHsKLSAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc1NraXBwZWRGaWxlRW50cnkoJHNraXBwZWQsICJTa2lw
cGVkIiwgJGNvbnN0cmFpbnRQYXRoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjbG9zZSBTS0lQUEVEOwotICAgICAgICB9IGVsc2lmIChvcGVuIEVYUEVD
VEFUSU9OUywgIjwiLCAiJGxldmVsL1Rlc3RFeHBlY3RhdGlvbnMiKSB7Ci0gICAgICAgICAgICBp
ZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBteSAoJGRpciwgJG5hbWUpID0gc3BsaXRw
YXRoKCRsZXZlbCk7Ci0gICAgICAgICAgICAgICAgcHJpbnQgIlNraXBwaW5nIHRlc3RzIGZyb20g
JG5hbWU6XG4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTElORTogd2hpbGUgKDxFWFBF
Q1RBVElPTlM+KSB7Ci0gICAgICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKLSAgICAgICAgICAg
ICAgICBjaG9tcCAkbGluZTsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiBzL15bIFxuXHJdKy8v
OwotICAgICAgICAgICAgICAgICRsaW5lID1+IHMvWyBcblxyXSskLy87Ci0gICAgICAgICAgICAg
ICAgJGxpbmUgPX4gcy8jLiokLy87Ci0KLSAgICAgICAgICAgICAgICAjIFRoaXMgbG9naWMgcm91
Z2hseSBtaXJyb3JzIHRoZSBsb2dpYyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5weSBfdG9rZW5pemVf
bGluZSgpIGJ1dCB3ZQotICAgICAgICAgICAgICAgICMgZG9uJ3QgYm90aGVyIHRvIGxvb2sgYXQg
YW55IG9mIHRoZSBtb2RpZmllcnMgb3IgZXhwZWN0YXRpb25zIGFuZCBqdXN0IHNraXAgZXZlcnl0
aGluZy4KLQotICAgICAgICAgICAgICAgIG15ICRzdGF0ZSA9ICJzdGFydCI7Ci0gICAgICAgICAg
ICAgICAgbXkgJHNraXBwZWQgPSAiIjsKLSAgICAgICAgICAgICAgICBUT0tFTjogZm9yZWFjaCBt
eSAkdG9rZW4gKHNwbGl0KC9ccysvLCAkbGluZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHN0YXJ0c1dpdGgoJHRva2VuLCAiQlVHIikgfHwgc3RhcnRzV2l0aCgkdG9rZW4sICIvLyIpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIElnbm9yZSBhbnkgbGluZXMgd2l0aCB0aGUgb2xk
LXN0eWxlIHN5bnRheC4KLSAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgTElORTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzV2l0aCgkdG9r
ZW4sICJ3ZWJraXQub3JnL2IvIikgfHwgc3RhcnRzV2l0aCgkdG9rZW4sICJCdWcoIikpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICMgU2tpcCBvdmVyIGJ1ZyBpZGVudGlmaWVyczsgbm90ZSB0
aGF0IHdlIGRvbid0IGJvdGhlciBsb29raW5nIGZvcgotICAgICAgICAgICAgICAgICAgICAgICAg
IyBDaHJvbWl1bSBvciBWOCBVUkxzIHNpbmNlIE9SV1QgZG9lc24ndCB3b3JrIHdpdGggQ2hyb21p
dW0uCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFRPS0VOOwotICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkdG9rZW4gZXEgIlsiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHN0YXRlIGVxICdzdGFydCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3Rh
dGUgPSAnY29uZmlndXJhdGlvbic7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCR0b2tlbiBlcSAiXSIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkc3RhdGUgZXEgJ2NvbmZpZ3VyYXRpb24nKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJHN0YXRlID0gJ25hbWUnOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgoJHN0YXRlIGVxICJuYW1lIikgfHwgKCRzdGF0
ZSBlcSAic3RhcnQiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgJHNraXBwZWQgPSAkdG9r
ZW47Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgcmVzdCBvZiB0aGUg
bGluZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgVE9LRU47Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCRza2lwcGVk
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NTa2lwcGVkRmlsZUVudHJ5KCRza2lwcGVk
LCAiVGVzdEV4cGVjdGF0aW9ucyIsICRjb25zdHJhaW50UGF0aCk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2xvc2UgRVhQRUNUQVRJT05TOwotICAgICAg
ICB9Ci0gICAgfQotfQotCi1zdWIgcHJvY2Vzc1NraXBwZWRGaWxlRW50cnkoJCQkKQotewotICAg
IG15ICgkc2tpcHBlZCwgJGxpc3RuYW1lLCAkY29uc3RyYWludFBhdGgpID0gQF87Ci0KLSAgICBp
ZiAoJHNraXBwZWRPbmx5KSB7Ci0gICAgICAgIGlmICghZmlsZVNob3VsZEJlSWdub3JlZCgkc2tp
cHBlZCkpIHsKLSAgICAgICAgICAgIGlmICghJGNvbnN0cmFpbnRQYXRoKSB7Ci0gICAgICAgICAg
ICAgICAgIyBBbHdheXMgYWRkICRza2lwcGVkIHNpbmNlIG5vIGNvbnN0cmFpbnQgcGF0aCB3YXMg
c3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCi0gICAgICAgICAgICAgICAgcHVzaChAQVJH
ViwgJHNraXBwZWQpOwotICAgICAgICAgICAgfSBlbHNpZiAoJHNraXBwZWQgPX4gL14oJGNvbnN0
cmFpbnRQYXRoKS8gfHwgKCJMYXlvdXRUZXN0cy8iLiRza2lwcGVkKSA9fiAvXigkY29uc3RyYWlu
dFBhdGgpLyApIHsKLSAgICAgICAgICAgICAgICAjIEFkZCAkc2tpcHBlZCBvbmx5IGlmIGl0IG1h
dGNoZXMgdGhlIGN1cnJlbnQgcGF0aCBjb25zdHJhaW50LCBlLmcuLAotICAgICAgICAgICAgICAg
ICMgIi0tc2tpcHBlZD1vbmx5IGRpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNr
aXBwZWQgbGlzdCBvcgotICAgICAgICAgICAgICAgICMgIi0tc2tpcHBlZD1vbmx5IExheW91dFRl
c3RzL2RpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNraXBwZWQgbGlzdAotICAg
ICAgICAgICAgICAgIHB1c2goQEFSR1YsICRza2lwcGVkKTsKLSAgICAgICAgICAgIH0gZWxzaWYg
KCRjb25zdHJhaW50UGF0aCA9fiAvXigiTGF5b3V0VGVzdHNcLyIuJHNraXBwZWQpLyB8fCAkY29u
c3RyYWludFBhdGggPX4gL14oJHNraXBwZWQpLykgewotICAgICAgICAgICAgICAgICMgQWRkIGN1
cnJlbnQgcGF0aCBjb25zdHJhaW50IGlmIGl0IGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgc2tp
cCBsaXN0IGVudHJ5LAotICAgICAgICAgICAgICAgICMgZS5nLiwgIi0tc2tpcHBlZD1vbmx5IGRp
cjEvZGlyMi9kaXIzIiB3aXRoICJkaXIxIiBvbiB0aGUgc2tpcHBlZCBsaXN0IG9yCi0gICAgICAg
ICAgICAgICAgIyBlLmcuLCAiLS1za2lwcGVkPW9ubHkgTGF5b3V0VGVzdHMvZGlyMS9kaXIyL2Rp
cjMiIHdpdGggImRpcjEiIG9uIHRoZSBza2lwcGVkIGxpc3QuCi0gICAgICAgICAgICAgICAgcHVz
aChAQVJHViwgJGNvbnN0cmFpbnRQYXRoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNp
ZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHByaW50ICIgICAgJHNraXBwZWRcbiI7Ci0gICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAg
IHByaW50ICIgICAgJHNraXBwZWRcbiI7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvY2Vzc0lnbm9y
ZVRlc3RzKCRza2lwcGVkLCAkbGlzdG5hbWUpOwotICAgIH0KLX0KLQotc3ViIHN0YXJ0c1dpdGgo
JCQpCi17Ci0gICAgbXkgKCRzdHJpbmcsICRzdWJzdHJpbmcpID0gQF87Ci0gICAgcmV0dXJuIGlu
ZGV4KCRzdHJpbmcsICRzdWJzdHJpbmcpID09IDA7Ci19Ci0KLXN1YiByZWFkQ2hlY2tzdW1Gcm9t
UG5nKCQpCi17Ci0gICAgbXkgKCRwYXRoKSA9IEBfOwotICAgIG15ICRkYXRhOwotICAgIGlmIChv
cGVuKFBOR0ZJTEUsICRwYXRoKSAmJiByZWFkKFBOR0ZJTEUsICRkYXRhLCAyMDQ4KSAmJiAkZGF0
YSA9fiAvdEVYdGNoZWNrc3VtXDAoW2EtZkEtRjAtOV17MzJ9KS8pIHsKLSAgICAgICAgcmV0dXJu
ICQxOwotICAgIH0KLX0KLQotbXkgQHRlc3RzRm91bmQ7Ci0KLXN1YiBpc1VzZWRJblJlZnRlc3Qo
JCkKLXsKLSAgICBteSAkZmlsZW5hbWUgPSAkX1swXTsKLSAgICBteSBAZXh0ZW5zaW9ucyA9ICgn
aHRtbCcsJ3NodG1sJywneG1sJywneGh0bWwnLCdodG0nLCdwaHAnLCdzdmcnLCdtaHQnLCdwbCcp
OwotICAgIG15ICRleHRlbnNpb25zSm9pbmVkID0gam9pbigifCIsIEBleHRlbnNpb25zKTsKLSAg
ICBteSAkc3VmZml4RXh0ZW5zaW9uRXhwcmVzc2lvbiA9ICItKCRleHBlY3RlZFRhZ3wkcmVmVGFn
fCRub3RyZWZUYWcpKC0kbWlzbWF0Y2hUYWcpP1xcLigiLiRleHRlbnNpb25zSm9pbmVkLiIpXCQi
OwotICAgIG15ICRwcmVmaXhFeHRlbnNpb25FeHByZXNzaW9uID0gIl4oJHJlZlRhZ3wkbm90cmVm
VGFnKS0iOwotICAgIGlmICgkZmlsZW5hbWUgPX4gLyRzdWZmaXhFeHRlbnNpb25FeHByZXNzaW9u
LyB8fCAkZmlsZW5hbWUgPX4gLyRwcmVmaXhFeHRlbnNpb25FeHByZXNzaW9uLykgewotICAgICAg
ICByZXR1cm4gMTsKLSAgICB9Ci0gICAgbXkgJGJhc2UgPSBzdHJpcEV4dGVuc2lvbigkZmlsZW5h
bWUpOwotCi0gICAgZm9yZWFjaCBteSAkZXh0ZW5zaW9uIChAZXh0ZW5zaW9ucykgewotICAgICAg
ICBpZiAoLWYgIiRiYXNlLSRleHBlY3RlZFRhZy4kZXh0ZW5zaW9uIiB8fCAKLSAgICAgICAgICAg
IC1mICIkYmFzZS0kcmVmVGFnLiRleHRlbnNpb24iIHx8IC1mICIkYmFzZS0kbm90cmVmVGFnLiRl
eHRlbnNpb24iIHx8Ci0gICAgICAgICAgICAtZiAiJGJhc2UtJGV4cGVjdGVkVGFnLSRtaXNtYXRj
aFRhZy4kZXh0ZW5zaW9uIiB8fAotICAgICAgICAgICAgLWYgIiRyZWZUYWctJGJhc2UuJGV4dGVu
c2lvbiIgfHwgLWYgIiRub3RyZWZUYWctJGJhc2UuJGV4dGVuc2lvbiIpIHsKLSAgICAgICAgICAg
IHJldHVybiAxOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1zdWIgZGly
ZWN0b3J5RmlsdGVyCi17Ci0gICAgcmV0dXJuICgpIGlmIGV4aXN0cyAkaWdub3JlZExvY2FsRGly
ZWN0b3JpZXN7YmFzZW5hbWUoJEZpbGU6OkZpbmQ6OmRpcil9OwotICAgIHJldHVybiAoKSBpZiBl
eGlzdHMgJGlnbm9yZWREaXJlY3Rvcmllc3tGaWxlOjpTcGVjLT5hYnMycmVsKCRGaWxlOjpGaW5k
OjpkaXIsICR0ZXN0RGlyZWN0b3J5KX07Ci0gICAgcmV0dXJuIEBfOwotfQotCi1zdWIgZmlsZUZp
bHRlcgotewotICAgIG15ICRmaWxlbmFtZSA9ICRfOwotICAgIGlmICgkZmlsZW5hbWUgPX4gL1wu
KFteLl0rKSQvKSB7Ci0gICAgICAgIG15ICRleHRlbnNpb24gPSAkMTsKLSAgICAgICAgaWYgKGV4
aXN0cyAkc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnN7JGV4dGVuc2lvbn0gJiYgIWlzVXNlZEluUmVm
dGVzdCgkZmlsZW5hbWUpKSB7Ci0gICAgICAgICAgICBteSAkcGF0aCA9IEZpbGU6OlNwZWMtPmFi
czJyZWwoY2F0ZmlsZSgkRmlsZTo6RmluZDo6ZGlyLCAkZmlsZW5hbWUpLCAkdGVzdERpcmVjdG9y
eSk7Ci0gICAgICAgICAgICBwdXNoIEB0ZXN0c0ZvdW5kLCAkcGF0aCBpZiAhZXhpc3RzICRpZ25v
cmVkRmlsZXN7JHBhdGh9OwotICAgICAgICB9Ci0gICAgfQotfQotCi1zdWIgZmluZFRlc3RzVG9S
dW4KLXsKLSAgICBteSBAdGVzdHNUb1J1biA9ICgpOwotCi0gICAgZm9yIG15ICR0ZXN0IChAQVJH
VikgewotICAgICAgICAkdGVzdCA9fiBzL14oXFEkbGF5b3V0VGVzdHNOYW1lXEV8XFEkdGVzdERp
cmVjdG9yeVxFKVwvLy87Ci0gICAgICAgIG15ICRmdWxsUGF0aCA9IGNhdGZpbGUoJHRlc3REaXJl
Y3RvcnksICR0ZXN0KTsKLSAgICAgICAgaWYgKGZpbGVfbmFtZV9pc19hYnNvbHV0ZSgkdGVzdCkp
IHsKLSAgICAgICAgICAgIHByaW50ICJjYW4ndCBydW4gdGVzdCAkdGVzdCBvdXRzaWRlICR0ZXN0
RGlyZWN0b3J5XG4iOwotICAgICAgICB9IGVsc2lmICgtZiAkZnVsbFBhdGggJiYgIWlzVXNlZElu
UmVmdGVzdCgkZnVsbFBhdGgpKSB7Ci0gICAgICAgICAgICBteSAoJGZpbGVuYW1lLCAkcGF0aG5h
bWUsICRmaWxlRXh0ZW5zaW9uKSA9IGZpbGVwYXJzZSgkdGVzdCwgcXJ7XC5bXi5dKyR9KTsKLSAg
ICAgICAgICAgIGlmICghZXhpc3RzICRzdXBwb3J0ZWRGaWxlRXh0ZW5zaW9uc3tzdWJzdHIoJGZp
bGVFeHRlbnNpb24sIDEpfSkgewotICAgICAgICAgICAgICAgIHByaW50ICJ0ZXN0ICR0ZXN0IGRv
ZXMgbm90IGhhdmUgYSBzdXBwb3J0ZWQgZXh0ZW5zaW9uXG4iOwotICAgICAgICAgICAgfSBlbHNp
ZiAoJHRlc3RIVFRQIHx8ICRwYXRobmFtZSAhfiAvXmh0dHBcLy8pIHsKLSAgICAgICAgICAgICAg
ICBwdXNoIEB0ZXN0c1RvUnVuLCAkdGVzdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNp
ZiAoLWQgJGZ1bGxQYXRoKSB7Ci0gICAgICAgICAgICBAdGVzdHNGb3VuZCA9ICgpOwotICAgICAg
ICAgICAgZmluZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9PiBc
JmZpbGVGaWx0ZXIgfSwgJGZ1bGxQYXRoKTsKLSAgICAgICAgICAgIGZvciBteSAkbGV2ZWwgKEBw
bGF0Zm9ybVRlc3RIaWVyYXJjaHkpIHsKLSAgICAgICAgICAgICAgICBteSAkcGxhdGZvcm1QYXRo
ID0gY2F0ZmlsZSgkbGV2ZWwsICR0ZXN0KTsKLSAgICAgICAgICAgICAgICBmaW5kKHsgcHJlcHJv
Y2VzcyA9PiBcJmRpcmVjdG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkcGxh
dGZvcm1QYXRoKSBpZiAoLWQgJHBsYXRmb3JtUGF0aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwdXNoIEB0ZXN0c1RvUnVuLCBzb3J0IHBhdGhjbXAgQHRlc3RzRm91bmQ7Ci0gICAgICAg
ICAgICBAdGVzdHNGb3VuZCA9ICgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJp
bnQgInRlc3QgJHRlc3Qgbm90IGZvdW5kXG4iOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYg
KCFzY2FsYXIgQEFSR1YpIHsKLSAgICAgICAgQHRlc3RzRm91bmQgPSAoKTsKLSAgICAgICAgZmlu
ZCh7IHByZXByb2Nlc3MgPT4gXCZkaXJlY3RvcnlGaWx0ZXIsIHdhbnRlZCA9PiBcJmZpbGVGaWx0
ZXIgfSwgJHRlc3REaXJlY3RvcnkpOwotICAgICAgICBmb3IgbXkgJGxldmVsIChAcGxhdGZvcm1U
ZXN0SGllcmFyY2h5KSB7Ci0gICAgICAgICAgICBmaW5kKHsgcHJlcHJvY2VzcyA9PiBcJmRpcmVj
dG9yeUZpbHRlciwgd2FudGVkID0+IFwmZmlsZUZpbHRlciB9LCAkbGV2ZWwpOwotICAgICAgICB9
Ci0gICAgICAgIHB1c2ggQHRlc3RzVG9SdW4sIHNvcnQgcGF0aGNtcCBAdGVzdHNGb3VuZDsKLSAg
ICAgICAgQHRlc3RzRm91bmQgPSAoKTsKLQotICAgICAgICAjIFdlIG5lZWQgdG8gbWluaW1pemUg
dGhlIHRpbWUgd2hlbiBBcGFjaGUgYW5kIFdlYlNvY2tldFNlcnZlciBpcyBsb2NrZWQgYnkgdGVz
dHMKLSAgICAgICAgIyBzbyBydW4gdGhlbSBsYXN0IGlmIG5vIGV4cGxpY2l0IG9yZGVyIHdhcyBz
cGVjaWZpZWQgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCi0gICAgICAgIG15IEBodHRwVGVzdHM7Ci0g
ICAgICAgIG15IEB3ZWJzb2NrZXRUZXN0czsKLSAgICAgICAgbXkgQG90aGVyVGVzdHM7Ci0gICAg
ICAgIGZvcmVhY2ggbXkgJHRlc3QgKEB0ZXN0c1RvUnVuKSB7Ci0gICAgICAgICAgICBpZiAoJHRl
c3QgPX4gL15odHRwXC8vKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaHR0cFRlc3RzLCAkdGVz
dCk7Ci0gICAgICAgICAgICB9IGVsc2lmICgkdGVzdCA9fiAvXndlYnNvY2tldFwvLykgewotICAg
ICAgICAgICAgICAgIHB1c2goQHdlYnNvY2tldFRlc3RzLCAkdGVzdCk7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQG90aGVyVGVzdHMsICR0ZXN0KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBAdGVzdHNUb1J1biA9IChAb3RoZXJUZXN0cywg
QGh0dHBUZXN0cywgQHdlYnNvY2tldFRlc3RzKTsKLSAgICB9Ci0KLSAgICAjIFJldmVyc2UgdGhl
IHRlc3RzCi0gICAgQHRlc3RzVG9SdW4gPSByZXZlcnNlIEB0ZXN0c1RvUnVuIGlmICRyZXZlcnNl
VGVzdHM7Ci0KLSAgICAjIFNodWZmbGUgdGhlIGFycmF5Ci0gICAgQHRlc3RzVG9SdW4gPSBzaHVm
ZmxlKEB0ZXN0c1RvUnVuKSBpZiAkcmFuZG9taXplVGVzdHM7Ci0KLSAgICByZXR1cm4gQHRlc3Rz
VG9SdW47Ci19Ci0KLXN1YiBwcmludFJlc3VsdHMKLXsKLSAgICBteSAldGV4dCA9ICgKLSAgICAg
ICAgbWF0Y2ggPT4gInN1Y2NlZWRlZCIsCi0gICAgICAgIG1pc21hdGNoID0+ICJoYWQgaW5jb3Jy
ZWN0IGxheW91dCIsCi0gICAgICAgIG5ldyA9PiAid2VyZSBuZXciLAotICAgICAgICB0aW1lZG91
dCA9PiAidGltZWQgb3V0IiwKLSAgICAgICAgY3Jhc2ggPT4gImNyYXNoZWQiLAotICAgICAgICB3
ZWJQcm9jZXNzQ3Jhc2ggPT4gIldlYiBwcm9jZXNzIGNyYXNoZWQiLAotICAgICAgICBlcnJvciA9
PiAiaGFkIHN0ZGVyciBvdXRwdXQiCi0gICAgKTsKLQotICAgIGZvciBteSAkdHlwZSAoIm1hdGNo
IiwgIm1pc21hdGNoIiwgIm5ldyIsICJ0aW1lZG91dCIsICJjcmFzaCIsICJ3ZWJQcm9jZXNzQ3Jh
c2giLCAiZXJyb3IiKSB7Ci0gICAgICAgIG15ICR0eXBlQ291bnQgPSAkY291bnRzeyR0eXBlfTsK
LSAgICAgICAgbmV4dCB1bmxlc3MgJHR5cGVDb3VudDsKLSAgICAgICAgbXkgJHR5cGVUZXh0ID0g
JHRleHR7JHR5cGV9OwotICAgICAgICBteSAkbWVzc2FnZTsKLSAgICAgICAgaWYgKCR0eXBlQ291
bnQgPT0gMSkgewotICAgICAgICAgICAgJHR5cGVUZXh0ID1+IHMvd2VyZS93YXMvOwotICAgICAg
ICAgICAgJG1lc3NhZ2UgPSBzcHJpbnRmICIxIHRlc3QgY2FzZSAlc1xuIiwgJHR5cGVUZXh0Owot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJG1lc3NhZ2UgPSBzcHJpbnRmICIlZCB0ZXN0
IGNhc2VzICVzXG4iLCAkdHlwZUNvdW50LCAkdHlwZVRleHQ7Ci0gICAgICAgIH0KLSAgICAgICAg
JG1lc3NhZ2UgPX4gcy1cKDAlXCktKDwxJSktOwotICAgICAgICBwcmludCAkbWVzc2FnZTsKLSAg
ICB9Ci19Ci0KLXN1YiBzdG9wUnVubmluZ1Rlc3RzRWFybHlJZk5lZWRlZCgpCi17Ci0gICAgIyAt
LXJlc2V0LXJlc3VsdHMgZG9lcyBub3QgY2hlY2sgcGFzcyB2cy4gZmFpbCwgc28gZXhpdEFmdGVy
TkZhaWx1cmVzIG1ha2VzIG5vIHNlbnNlIHdpdGggLS1yZXNldC1yZXN1bHRzLgotICAgIHJldHVy
biAwIGlmICRyZXNldFJlc3VsdHM7Ci0KLSAgICBteSAkcGFzc0NvdW50ID0gJGNvdW50c3ttYXRj
aH0gfHwgMDsgIyAkY291bnRze21hdGNofSB3aWxsIGJlIHVuZGVmaW5lZCBpZiB3ZSd2ZSBub3Qg
eWV0IHBhc3NlZCBhIHRlc3QgKGUuZy4gdGhlIGZpcnN0IHRlc3QgZmFpbHMpLgotICAgIG15ICRu
ZXdDb3VudCA9ICRjb3VudHN7bmV3fSB8fCAwOwotICAgIG15ICRmYWlsdXJlQ291bnQgPSAkY291
bnQgLSAkcGFzc0NvdW50IC0gJG5ld0NvdW50OyAjICJGYWlsdXJlIiBoZXJlIGluY2x1ZGVzIHRp
bWVvdXRzLCBjcmFzaGVzLCBldGMuCi0gICAgaWYgKCRleGl0QWZ0ZXJORmFpbHVyZXMgJiYgJGZh
aWx1cmVDb3VudCA+PSAkZXhpdEFmdGVyTkZhaWx1cmVzKSB7Ci0gICAgICAgICRzdG9wcGVkUnVu
bmluZ0Vhcmx5TWVzc2FnZSA9ICJFeGl0aW5nIGVhcmx5IGFmdGVyICRmYWlsdXJlQ291bnQgZmFp
bHVyZXMuICRjb3VudCB0ZXN0cyBydW4uIjsKLSAgICAgICAgcHJpbnQgIlxuIiwgJHN0b3BwZWRS
dW5uaW5nRWFybHlNZXNzYWdlOwotICAgICAgICBjbG9zZUR1bXBUb29sKCk7Ci0gICAgICAgIHJl
dHVybiAxOwotICAgIH0KLQotICAgIG15ICRjcmFzaENvdW50ID0gJGNvdW50c3tjcmFzaH0gfHwg
MDsKLSAgICBteSAkd2ViUHJvY2Vzc0NyYXNoQ291bnQgPSAkY291bnRze3dlYlByb2Nlc3NDcmFz
aH0gfHwgMDsKLSAgICBteSAkdGltZW91dENvdW50ID0gJGNvdW50c3t0aW1lZG91dH0gfHwgMDsK
LSAgICBpZiAoJGV4aXRBZnRlck5DcmFzaGVzT3JUaW1lb3V0cyAmJiAkY3Jhc2hDb3VudCArICR3
ZWJQcm9jZXNzQ3Jhc2hDb3VudCArICR0aW1lb3V0Q291bnQgPj0gJGV4aXRBZnRlck5DcmFzaGVz
T3JUaW1lb3V0cykgewotICAgICAgICAkc3RvcHBlZFJ1bm5pbmdFYXJseU1lc3NhZ2UgPSAiRXhp
dGluZyBlYXJseSBhZnRlciAkY3Jhc2hDb3VudCBjcmFzaGVzLCAkd2ViUHJvY2Vzc0NyYXNoQ291
bnQgd2ViIHByb2Nlc3MgY3Jhc2hlcywgYW5kICR0aW1lb3V0Q291bnQgdGltZW91dHMuICRjb3Vu
dCB0ZXN0cyBydW4uIjsKLSAgICAgICAgcHJpbnQgIlxuIiwgJHN0b3BwZWRSdW5uaW5nRWFybHlN
ZXNzYWdlOwotICAgICAgICBjbG9zZUR1bXBUb29sKCk7Ci0gICAgICAgIHJldHVybiAxOwotICAg
IH0KLQotICAgIHJldHVybiAwOwotfQotCi0jIFN0b3JlIHRoaXMgYXQgZ2xvYmFsIHNjb3BlIHNv
IGl0IHdvbid0IGJlIEdDZWQgKGFuZCB0aHVzIHVubGlua2VkKSB1bnRpbCB0aGUgcHJvZ3JhbSBl
eGl0cy4KLW15ICRkZWJ1Z2dlclRlbXBEaXJlY3Rvcnk7Ci0KLXN1YiBjcmVhdGVEZWJ1Z2dlckNv
bW1hbmRGaWxlKCkKLXsKLSAgICByZXR1cm4gdW5sZXNzIGlzQ3lnd2luKCk7Ci0KLSAgICBteSBA
Y29tbWFuZHMgPSAoCi0gICAgICAgICcubG9nb3BlbiAvdCAiJyAuIHRvV2luZG93c1BhdGgoJHRl
c3RSZXN1bHRzRGlyZWN0b3J5KSAuICJcXCIgLiAkd2luZG93c0NyYXNoTG9nRmlsZVByZWZpeCAu
ICcudHh0IicsCi0gICAgICAgICcuc3JjcGF0aCAiJyAuIHRvV2luZG93c1BhdGgoc291cmNlRGly
KCkpIC4gJyInLAotICAgICAgICAnIWFuYWx5emUgLXZ2JywKLSAgICAgICAgJ34qa3BuJywKLSAg
ICAgICAgJ3EnLAotICAgICk7Ci0KLSAgICAkZGVidWdnZXJUZW1wRGlyZWN0b3J5ID0gRmlsZTo6
VGVtcC0+bmV3ZGlyOwotCi0gICAgbXkgJGNvbW1hbmRGaWxlID0gRmlsZTo6U3BlYy0+Y2F0Zmls
ZSgkZGVidWdnZXJUZW1wRGlyZWN0b3J5LCAiZGVidWdnZXItY29tbWFuZHMudHh0Iik7Ci0gICAg
dW5sZXNzIChvcGVuIENPTU1BTkRTLCAnPicsICRjb21tYW5kRmlsZSkgewotICAgICAgICBwcmlu
dCAiRmFpbGVkIHRvIG9wZW4gJGNvbW1hbmRGaWxlLiBDcmFzaCBsb2dzIHdpbGwgbm90IGJlIHNh
dmVkLlxuIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBwcmludCBDT01NQU5EUyBqb2lu
KCJcbiIsIEBjb21tYW5kcyksICJcbiI7Ci0gICAgdW5sZXNzIChjbG9zZSBDT01NQU5EUykgewot
ICAgICAgICBwcmludCAiRmFpbGVkIHRvIHdyaXRlIHRvICRjb21tYW5kRmlsZS4gQ3Jhc2ggbG9n
cyB3aWxsIG5vdCBiZSBzYXZlZC5cbiI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gJGNvbW1hbmRGaWxlOwotfQotCi1zdWIgc2V0VXBXaW5kb3dzQ3Jhc2hMb2dTYXZpbmco
KQotewotICAgIHJldHVybiB1bmxlc3MgaXNDeWd3aW4oKTsKLQotICAgIHVubGVzcyAoZGVmaW5l
ZCAkRU5We19OVF9TWU1CT0xfUEFUSH0pIHsKLSAgICAgICAgcHJpbnQgIlRoZSBfTlRfU1lNQk9M
X1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldC4gQ3Jhc2ggbG9ncyB3aWxsIG5v
dCBiZSBzYXZlZC5cblNlZSA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy93aWtpL0J1aWxkaW5nT25X
aW5kb3dzI0dldHRpbmdDcmFzaExvZ3M+LlxuIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIG15IEBwb3NzaWJsZVBhdGhzID0gKAotICAgICAgICBGaWxlOjpTcGVjLT5jYXRmaWxlKHRv
Q3lnd2luUGF0aCgkRU5We1BST0dSQU1GSUxFU30pLCAiV2luZG93cyBLaXRzIiwgIjguMCIsICJE
ZWJ1Z2dlcnMiLCAieDY0IiwgIm50c2QuZXhlIiksCi0gICAgICAgIEZpbGU6OlNwZWMtPmNhdGZp
bGUodG9DeWd3aW5QYXRoKCRFTlZ7UFJPR1JBTUZJTEVTfSksICJXaW5kb3dzIEtpdHMiLCAiOC4w
IiwgIkRlYnVnZ2VycyIsICJ4ODYiLCAibnRzZC5leGUiKSwKLSAgICAgICAgRmlsZTo6U3BlYy0+
Y2F0ZmlsZSh0b0N5Z3dpblBhdGgoJEVOVntQUk9HUkFNRklMRVN9KSwgIkRlYnVnZ2luZyBUb29s
cyBmb3IgV2luZG93cyAoeDg2KSIsICJudHNkLmV4ZSIpLAotICAgICAgICBGaWxlOjpTcGVjLT5j
YXRmaWxlKHRvQ3lnd2luUGF0aCgkRU5We1Byb2dyYW1XNjQzMn0pLCAiRGVidWdnaW5nIFRvb2xz
IGZvciBXaW5kb3dzICh4NjQpIiwgIm50c2QuZXhlIiksCi0gICAgICAgIEZpbGU6OlNwZWMtPmNh
dGZpbGUodG9DeWd3aW5QYXRoKCRFTlZ7U1lTVEVNUk9PVH0pLCAic3lzdGVtMzIiLCAibnRzZC5l
eGUiKSwKLSAgICApOwotCi0gICAgbXkgJG50c2RQYXRoID0gc2hpZnQgQHBvc3NpYmxlUGF0aHM7
Ci0KLSAgICB3aGlsZSAobm90IC1mICRudHNkUGF0aCkgewotICAgICAgICBpZiAoIUBwb3NzaWJs
ZVBhdGhzKSB7Ci0gICAgICAgICAgICBwcmludCBTVERFUlIgIkNhbid0IGZpbmQgbnRzZC5leGUu
IENyYXNoIGxvZ3Mgd2lsbCBub3QgYmUgc2F2ZWQuXG5TZWUgPGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvd2lraS9CdWlsZGluZ09uV2luZG93cyNHZXR0aW5nQ3Jhc2hMb2dzPi5cbiI7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAkbnRzZFBhdGggPSBzaGlmdCBAcG9z
c2libGVQYXRoczsKLSAgICB9Ci0KLSAgICAjIElmIHdlIHVzZWQgLWMgKGluc3RlYWQgb2YgLWNm
KSB3ZSBjb3VsZCBwYXNzIHRoZSBjb21tYW5kcyBkaXJlY3RseSBvbiB0aGUgY29tbWFuZCBsaW5l
LiBCdXQKLSAgICAjIHdoZW4gdGhlIGNvbW1hbmRzIGluY2x1ZGUgbXVsdGlwbGUgcXVvdGVkIHBh
dGhzIChlLmcuLCBmb3IgLmxvZ29wZW4gYW5kIC5zcmNwYXRoKSwgV2luZG93cwotICAgICMgZmFp
bHMgdG8gaW52b2tlIHRoZSBwb3N0LW1vcnRlbSBkZWJ1Z2dlciBhdCBhbGwgKHBlcmhhcHMgZHVl
IHRvIGEgYnVnIGluIFdpbmRvd3MncyBjb21tYW5kCi0gICAgIyBsaW5lIHBhcnNpbmcpLiBTbyB3
ZSBzYXZlIHRoZSBjb21tYW5kcyB0byBhIGZpbGUgaW5zdGVhZCBhbmQgdGVsbCB0aGUgZGVidWdn
ZXIgdG8gZXhlY3V0ZSB0aGVtCi0gICAgIyB1c2luZyAtY2YuCi0gICAgbXkgJGNvbW1hbmRGaWxl
ID0gY3JlYXRlRGVidWdnZXJDb21tYW5kRmlsZSgpIG9yIHJldHVybjsKLQotICAgIG15IEBvcHRp
b25zID0gKAotICAgICAgICAnLXAgJWxkJywKLSAgICAgICAgJy1lICVsZCcsCi0gICAgICAgICct
ZycsCi0gICAgICAgICctbGluZXMnLAotICAgICAgICAnLWNmICInIC4gdG9XaW5kb3dzUGF0aCgk
Y29tbWFuZEZpbGUpIC4gJyInLAotICAgICk7Ci0KLSAgICBteSAldmFsdWVzID0gKAotICAgICAg
ICBEZWJ1Z2dlciA9PiAnIicgLiB0b1dpbmRvd3NQYXRoKCRudHNkUGF0aCkgLiAnIiAnIC4gam9p
bignICcsIEBvcHRpb25zKSwKLSAgICAgICAgQXV0byA9PiAxCi0gICAgKTsKLQotICAgIGZvcmVh
Y2ggbXkgJHZhbHVlIChrZXlzICV2YWx1ZXMpIHsKLSAgICAgICAgJHByZXZpb3VzV2luZG93c1Bv
c3RNb3J0ZW1EZWJ1Z2dlclZhbHVlc3skdmFsdWV9ID0gcmVhZFJlZ2lzdHJ5U3RyaW5nKCIkd2lu
ZG93c1Bvc3RNb3J0ZW1EZWJ1Z2dlcktleS8kdmFsdWUiKTsKLSAgICAgICAgbmV4dCBpZiB3cml0
ZVJlZ2lzdHJ5U3RyaW5nKCIkd2luZG93c1Bvc3RNb3J0ZW1EZWJ1Z2dlcktleS8kdmFsdWUiLCAk
dmFsdWVzeyR2YWx1ZX0pOwotCi0gICAgICAgIHByaW50ICJGYWlsZWQgdG8gc2V0IFwiJHdpbmRv
d3NQb3N0TW9ydGVtRGVidWdnZXJLZXkvJHZhbHVlXCIuIENyYXNoIGxvZ3Mgd2lsbCBub3QgYmUg
c2F2ZWQuXG5TZWUgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvd2lraS9CdWlsZGluZ09uV2luZG93
cyNHZXR0aW5nQ3Jhc2hMb2dzPi5cbiI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBw
cmludCAiQ3Jhc2ggbG9ncyB3aWxsIGJlIHNhdmVkIHRvICR0ZXN0UmVzdWx0c0RpcmVjdG9yeS5c
biI7Ci19Ci0KLUVORCB7Ci0gICAgcmV0dXJuIHVubGVzcyBpc0N5Z3dpbigpOwotCi0gICAgZm9y
ZWFjaCBteSAkdmFsdWUgKGtleXMgJXByZXZpb3VzV2luZG93c1Bvc3RNb3J0ZW1EZWJ1Z2dlclZh
bHVlcykgewotICAgICAgICBuZXh0IGlmIHdyaXRlUmVnaXN0cnlTdHJpbmcoIiR3aW5kb3dzUG9z
dE1vcnRlbURlYnVnZ2VyS2V5LyR2YWx1ZSIsICRwcmV2aW91c1dpbmRvd3NQb3N0TW9ydGVtRGVi
dWdnZXJWYWx1ZXN7JHZhbHVlfSk7Ci0gICAgICAgIHByaW50ICJGYWlsZWQgdG8gcmVzdG9yZSBc
IiR3aW5kb3dzUG9zdE1vcnRlbURlYnVnZ2VyS2V5LyR2YWx1ZVwiIHRvIGl0cyBwcmV2aW91cyB2
YWx1ZSBcIiRwcmV2aW91c1dpbmRvd3NQb3N0TW9ydGVtRGVidWdnZXJWYWx1ZXN7JHZhbHVlfVwi
XG4uIjsKLSAgICB9Ci19Cg==
</data>
<flag name="review"
          id="260329"
          type_id="1"
          status="+"
          setter="ossy"
    />
          </attachment>
      

    </bug>

</bugzilla>