<?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>96562</bug_id>
          
          <creation_ts>2012-09-12 14:41:41 -0700</creation_ts>
          <short_desc>remove unused testexpectations editing code from webkitpy, garden-o-matic</short_desc>
          <delta_ts>2012-09-12 17:09:03 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718744</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 14:41:41 -0700</bug_when>
    <thetext>remove unused testexpectations editing code from webkitpy, garden-o-matic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718745</commentid>
    <comment_count>1</comment_count>
      <attachid>163699</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 14:42:19 -0700</bug_when>
    <thetext>Created attachment 163699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718795</commentid>
    <comment_count>2</comment_count>
      <attachid>163699</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-12 15:21:17 -0700</bug_when>
    <thetext>Comment on attachment 163699
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718895</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 17:09:03 -0700</bug_when>
    <thetext>Committed r128385: &lt;http://trac.webkit.org/changeset/128385&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163699</attachid>
            <date>2012-09-12 14:42:19 -0700</date>
            <delta_ts>2012-09-12 15:21:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96562-20120912144153.patch</filename>
            <type>text/plain</type>
            <size>44252</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzYxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGNiZjRjYjNmZjRhOWM5MDdlY2FhODgzMjRlYTYyNmE5
ZjA5NWZjNS4uNDY5NWExYmRkMzRmNGNjNmEzNmQyYWU5NDJlZmFmZjQxZTAzNjRhYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEyLTA5LTEyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHJlbW92ZSB1bnVzZWQgdGVzdGV4cGVjdGF0aW9ucyBlZGl0aW5nIGNvZGUgZnJvbSB3
ZWJraXRweSwgZ2FyZGVuLW8tbWF0aWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk2NTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBjb2RlIHdhcyBwcm90b3R5cGVkIGJ1dCBuZXZlciBmdWxseSBy
ZWFsaXplZC4gUmVtb3ZpbmcKKyAgICAgICAgdW50aWwgaXQgcmVhbmltYXRlcyA6KS4KKworICAg
ICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL1Rlc3RGYWlsdXJlcy9zY3JpcHRzL2NoZWNrb3V0LmpzOgorICAgICAgICAqIEJ1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJl
cy9zY3JpcHRzL2NoZWNrb3V0X3VuaXR0ZXN0cy5qczoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X2V4cGVjdGF0aW9uc19lZGl0b3IucHk6
IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvdGVzdF9leHBlY3RhdGlvbnNfZWRpdG9yX3VuaXR0ZXN0LnB5OiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weToK
KyAgICAgICAgKEJ1aWxkQ292ZXJhZ2VFeHRyYXBvbGF0b3IuZXh0cmFwb2xhdGVfdGVzdF9jb25m
aWd1cmF0aW9ucyk6CisgICAgICAgIChHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIuX3J1bl93
ZWJraXRfcGF0Y2gpOgorICAgICAgICAoR2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5kbGVyLnBpbmcp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZl
cl91bml0dGVzdC5weToKKyAgICAgICAgKEJ1aWxkQ292ZXJhZ2VFeHRyYXBvbGF0b3JUZXN0LnRl
c3RfZXh0cmFwb2xhdGUpOgorICAgICAgICAoR2FyZGVuaW5nU2VydmVyVGVzdC50ZXN0X3JlYmFz
ZWxpbmVfbmV3X3BvcnQpOgorCiAyMDEyLTA5LTEyICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0
b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMTI4MzM4KTogQnJv
a2UgV2luZG93cyBidWlsZApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL3NjcmlwdHMvY2hl
Y2tvdXQuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dC5qcwppbmRleCA2MWMz
MTAzOTcyODQ2YzdhOTkyMTE5NjliMDQzOGFkNmNiNGE1OTk1Li44NjJjZTY1MTljZGMzNDliMmE3
ZGY4NmI4ZmJhYmY0YjcwZDhjMTIyIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0
cy9jaGVja291dC5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dC5qcwpA
QCAtNjYsMTUgKzY2LDYgQEAgY2hlY2tvdXQuaXNBdmFpbGFibGUgPSBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB9KTsKIH07CiAKLWNoZWNrb3V0LnVwZGF0ZUV4cGVjdGF0aW9ucyA9IGZ1bmN0aW9u
KGZhaWx1cmVJbmZvTGlzdCwgY2FsbGJhY2ssIGNoZWNrb3V0VW5hdmFpbGFibGUpCi17Ci0gICAg
Y2FsbElmQ2hlY2tvdXRBdmFpbGFibGUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG5ldC5wb3N0KGNv
bmZpZy5rTG9jYWxTZXJ2ZXJVUkwgKyAnL3VwZGF0ZWV4cGVjdGF0aW9ucycsIEpTT04uc3RyaW5n
aWZ5KGZhaWx1cmVJbmZvTGlzdCksIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgY2FsbGJhY2so
KTsKLSAgICAgICAgfSk7Ci0gICAgfSwgY2hlY2tvdXRVbmF2YWlsYWJsZSk7Ci19OwotCiBjaGVj
a291dC5yb2xsb3V0ID0gZnVuY3Rpb24ocmV2aXNpb24sIHJlYXNvbiwgY2FsbGJhY2ssIGNoZWNr
b3V0VW5hdmFpbGFibGUpCiB7CiAgICAgY2FsbElmQ2hlY2tvdXRBdmFpbGFibGUoZnVuY3Rpb24o
KSB7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dF91bml0dGVz
dHMuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvc2NyaXB0cy9jaGVja291dF91bml0dGVzdHMuanMKaW5k
ZXggODNkOGNkMzc3ZDU1NDg4OTFkODRjYjMwYjUyNDNjNGY5Mzg3NWI3Ni4uMzJhNTY3NDA3NjYw
MmI3NDcwZDFiOGU1YTJhNGMxMjE3MTBkMzI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVz
L3NjcmlwdHMvY2hlY2tvdXRfdW5pdHRlc3RzLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9zY3Jp
cHRzL2NoZWNrb3V0X3VuaXR0ZXN0cy5qcwpAQCAtMzEsMzEgKzMxLDYgQEAgdGVzdCgic3VidmVy
c2lvblVSTEZvclRlc3QiLCAxLCBmdW5jdGlvbigpIHsKICAgICBlcXVhbHMoY2hlY2tvdXQuc3Vi
dmVyc2lvblVSTEZvclRlc3QoInBhdGgvdG8vdGVzdC5odG1sIiksICJodHRwOi8vc3ZuLndlYmtp
dC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvdHJ1bmsvTGF5b3V0VGVzdHMvcGF0aC90by90ZXN0Lmh0
bWwiKTsKIH0pOwogCi10ZXN0KCJ1cGRhdGVFeHBlY3RhdGlvbnMiLCA0LCBmdW5jdGlvbigpIHsK
LSAgICB2YXIgc2ltdWxhdG9yID0gbmV3IE5ldHdvcmtTaW11bGF0b3IoKTsKLQotICAgIC8vIEZJ
WE1FOiBUaGlzIGxlYWtzIHN0YXRlIGludG8gZ19oYXZlU2VlbkNoZWNrb3V0QXZhaWxhYmxlLCB3
aGljaCBpcyBnbG9iYWwuCi0gICAgc2ltdWxhdG9yLmFqYXggPSBmdW5jdGlvbihvcHRpb25zKSB7
IG9wdGlvbnMuc3VjY2Vzcy5jYWxsKCk7IH0sCi0KLSAgICBzaW11bGF0b3IucG9zdCA9IGZ1bmN0
aW9uKHVybCwgZGF0YSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBlcXVhbHModXJsLCAnaHR0
cDovLzEyNy4wLjAuMTo4MTI3L3VwZGF0ZWV4cGVjdGF0aW9ucycpOwotICAgICAgICBlcXVhbHMo
ZGF0YSwgJ1t7ImJ1aWxkZXJOYW1lIjoiV2ViS2l0IExpbnV4IiwidGVzdE5hbWUiOiJhbm90aGVy
L3Rlc3Quc3ZnIn1dJyk7Ci0gICAgICAgIHNpbXVsYXRvci5zY2hlZHVsZUNhbGxiYWNrKGNhbGxi
YWNrKTsKLSAgICB9OwotCi0gICAgc2ltdWxhdG9yLnJ1blRlc3QoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIGNoZWNrb3V0LnVwZGF0ZUV4cGVjdGF0aW9ucyhbewotICAgICAgICAgICAgJ2J1aWxkZXJO
YW1lJzogJ1dlYktpdCBMaW51eCcsCi0gICAgICAgICAgICAndGVzdE5hbWUnOiAnYW5vdGhlci90
ZXN0LnN2ZycsCi0gICAgICAgIH1dLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIG9rKHRydWUp
OwotICAgICAgICB9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIG9rKGZhbHNlKTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci19KTsKLQogdGVzdCgicmViYXNlbGluZSIsIDMsIGZ1bmN0aW9uKCkg
ewogICAgIHZhciBzaW11bGF0b3IgPSBuZXcgTmV0d29ya1NpbXVsYXRvcigpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0
X2V4cGVjdGF0aW9uc19lZGl0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy90ZXN0X2V4cGVjdGF0aW9uc19lZGl0b3IucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk3YTJkNGZmYzYyZjYwZTZjMGYyZGQ0Mzk5ZTVjMzA1NjU1M2Zj
ZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9leHBlY3RhdGlv
bnNfZWRpdG9yLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLSMhL3Vzci9iaW4v
ZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIkEgaGVscGVyIGNsYXNzIGZvciByZWFk
aW5nIGluIGFuZCBkZWFsaW5nIHdpdGggdGVzdHMgZXhwZWN0YXRpb25zCi1mb3IgbGF5b3V0IHRl
c3RzLgotIiIiCi0KLWltcG9ydCBpdGVydG9vbHMKLWltcG9ydCBqc29uCi1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IHJlCi0KLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2Nv
bmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uLCBUZXN0Q29uZmlndXJhdGlvbkNv
bnZlcnRlcgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4
cGVjdGF0aW9ucwotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQotY2xh
c3MgQnVnTWFuYWdlcihvYmplY3QpOgotICAgICIiIkEgc2ltcGxlIGludGVyZmFjZSBmb3IgbWFu
YWdpbmcgYnVncyBmcm9tIFRlc3RFeHBlY3RhdGlvbnNFZGl0b3IuIiIiCi0gICAgZGVmIGNsb3Nl
X2J1ZyhzZWxmLCBidWdfaWRzLCByZWZlcmVuY2VfYnVnX2lkcz1Ob25lKToKLSAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcigiQnVnTWFuYWdlci5jbG9zZV9idWciKQotCi0gICAgZGVm
IGNyZWF0ZV9idWcoc2VsZik6Ci0gICAgICAgICIiIlNob3VsZCByZXR1cm4gYSBuZXdseSBjcmVh
dGVkIGJ1ZyBpZCBpbiB0aGUgZm9ybSBvZiByIkJVR1teXGRdLioiLiIiIgotICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJCdWdNYW5hZ2VyLmNyZWF0ZV9idWciKQotCi0KLWNsYXNz
IFRlc3RFeHBlY3RhdGlvbnNFZGl0b3Iob2JqZWN0KToKLSAgICAiIiIKLSAgICBUaGUgZWRpdG9y
IGFzc3VtZXMgdGhhdCB0aGUgZXhwZWN0YXRpb24gZGF0YSBpcyBlcnJvci1mcmVlLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGF0aW9uX2xpbmVzLCBidWdfbWFuYWdl
cik6Ci0gICAgICAgIHNlbGYuX2J1Z19tYW5hZ2VyID0gYnVnX21hbmFnZXIKLSAgICAgICAgc2Vs
Zi5fZXhwZWN0YXRpb25fbGluZXMgPSBleHBlY3RhdGlvbl9saW5lcwotICAgICAgICBzZWxmLl90
ZXN0c193aXRoX2RpcmVjdG9yeV9wYXRocyA9IHNldCgpCi0gICAgICAgICMgRklYTUU6IFVuaWZ5
IHRoaXMgd2l0aCBUZXN0RXhwZWN0YXRpb25zTW9kZWwuCi0gICAgICAgIHNlbGYuX3Rlc3RfdG9f
ZXhwZWN0YXRpb25fbGluZXMgPSB7fQotICAgICAgICBmb3IgZXhwZWN0YXRpb25fbGluZSBpbiBl
eHBlY3RhdGlvbl9saW5lczoKLSAgICAgICAgICAgIGZvciB0ZXN0IGluIGV4cGVjdGF0aW9uX2xp
bmUubWF0Y2hpbmdfdGVzdHM6Ci0gICAgICAgICAgICAgICAgaWYgdGVzdCA9PSBleHBlY3RhdGlv
bl9saW5lLnBhdGg6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfdG9fZXhwZWN0YXRp
b25fbGluZXMuc2V0ZGVmYXVsdCh0ZXN0LCBbXSkuYXBwZW5kKGV4cGVjdGF0aW9uX2xpbmUpCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdHNfd2l0
aF9kaXJlY3RvcnlfcGF0aHMuYWRkKHRlc3QpCi0KLSAgICBkZWYgcmVtb3ZlX2V4cGVjdGF0aW9u
KHNlbGYsIHRlc3QsIHRlc3RfY29uZmlnX3NldCwgcmVtb3ZlX2ZsYWtlcz1GYWxzZSk6Ci0gICAg
ICAgICIiIlJlbW92ZXMgZXhpc3RpbmcgZXhwZWN0YXRpb25zIGZvciB7dGVzdH0gaW4gdGhlIG9m
IHRlc3QgY29uZmlndXJhdGlvbnMge3Rlc3RfY29uZmlnX3NldH0uCi0gICAgICAgIElmIHRoZSB0
ZXN0IGlzIGZsYWt5LCB0aGUgZXhwZWN0YXRpb24gaXMgbm90IHJlbW92ZWQsIHVubGVzcyByZW1v
dmVfZmxha2VzIGlzIFRydWUuCi0KLSAgICAgICAgSW4gdGhpcyBjb250ZXh0LCByZW1vdmluZyBl
eHBlY3RhdGlvbnMgZG9lcyBub3QgaW1wbHkgdGhhdCB0aGUgdGVzdCBpcyBwYXNzaW5nIC0tIHdl
IGFyZSBtZXJlbHkgcmVtb3ZpbmcKLSAgICAgICAgYW55IGluZm9ybWF0aW9uIGFib3V0IHRoaXMg
dGVzdCBmcm9tIHRoZSBleHBlY3RhdGlvbnMuCi0KLSAgICAgICAgV2UgZG8gbm90IHJlbW92ZSB0
aGUgYWN0dWFsIGV4cGVjdGF0aW9uIGxpbmVzIGhlcmUuIEluc3RlYWQsIHdlIGFkanVzdCBUZXN0
RXhwZWN0YXRpb25MaW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zLgotICAgICAgICBUaGUgc2Vy
aWFsaXplciB3aWxsIGZpZ3VyZSBvdXQgd2hhdCB0byBkbzoKLSAgICAgICAgKiBBbiBlbXB0eSBt
YXRjaGluZ19jb25maWd1cmF0aW9ucyBzZXQgbWVhbnMgdGhhdCB0aGUgdGhpcyBsaW5lIG1hdGNo
ZXMgbm90aGluZyBhbmQgd2lsbCBzZXJpYWxpemUgYXMgTm9uZS4KLSAgICAgICAgKiBBIG1hdGNo
aW5nX2NvbmZpZ3VyYXRpb25zIHNldCB0aGF0IGNhbid0IGJlIGV4cHJlc3NlZCBhcyBvbmUgbGlu
ZSB3aWxsIGJlIHNlcmlhbGl6ZWQgYXMgbXVsdGlwbGUgbGluZXMuCi0KLSAgICAgICAgQWxzbywg
d2UgZG8gb25seSBhZGp1c3QgbWF0Y2hpbmdfY29uZmlndXJhdGlvbnMgZm9yIGxpbmVzIHRoYXQg
bWF0Y2ggdGVzdHMgZXhhY3RseSwgYmVjYXVzZSBleHBlY3RhdGlvbiBsaW5lcyB3aXRoCi0gICAg
ICAgIGJldHRlciBwYXRoIG1hdGNoZXMgYXJlIHZhbGlkIGFuZCBhbHdheXMgd2luLgotCi0gICAg
ICAgIEZvciBleGFtcGxlLCB0aGUgZXhwZWN0YXRpb24gd2l0aCB0aGUgcGF0aCAiZmFzdC9ldmVu
dHMvc2hhZG93LyIgd2lsbAotICAgICAgICBiZSBpZ25vcmVkIHdoZW4gcmVtb3ZpbmcgZXhwZWN0
YXRpb25zIGZvciB0aGUgdGVzdCAiZmFzdC9ldmVudC9zaGFkb3cvYXdlc29tZS1jcmFzaC5odG1s
Iiwgc2luY2Ugd2UgY2FuIGp1c3QKLSAgICAgICAgYWRkIGEgbmV3IGV4cGVjdGF0aW9uIGxpbmUg
Zm9yICJmYXN0L2V2ZW50L3NoYWRvdy9hd2Vzb21lLWNyYXNoLmh0bWwiIHRvIGluZmx1ZW5jZSBl
eHBlY3RlZCByZXN1bHRzLgotICAgICAgICAiIiIKLSAgICAgICAgZXhwZWN0YXRpb25fbGluZXMg
PSBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0aW9uX2xpbmVzLmdldCh0ZXN0LCBbXSkKLSAgICAgICAg
Zm9yIGV4cGVjdGF0aW9uX2xpbmUgaW4gZXhwZWN0YXRpb25fbGluZXM6Ci0gICAgICAgICAgICBp
ZiAobm90IGV4cGVjdGF0aW9uX2xpbmUuaXNfZmxha3koKSBvciByZW1vdmVfZmxha2VzKSBhbmQg
ZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ19jb25maWd1cmF0aW9ucyAmIHRlc3RfY29uZmlnX3Nl
dDoKLSAgICAgICAgICAgICAgICBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRp
b25zID0gZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ19jb25maWd1cmF0aW9ucyAtIHRlc3RfY29u
ZmlnX3NldAotICAgICAgICAgICAgICAgIGlmIG5vdCBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5n
X2NvbmZpZ3VyYXRpb25zOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9idWdfbWFuYWdlci5j
bG9zZV9idWcoZXhwZWN0YXRpb25fbGluZS5wYXJzZWRfYnVnX21vZGlmaWVycykKLSAgICAgICAg
ICAgICAgICByZXR1cm4KLQotICAgIGRlZiB1cGRhdGVfZXhwZWN0YXRpb24oc2VsZiwgdGVzdCwg
dGVzdF9jb25maWdfc2V0LCBleHBlY3RhdGlvbl9zZXQsIHBhcnNlZF9idWdfbW9kaWZpZXJzPU5v
bmUpOgotICAgICAgICAiIiJVcGRhdGVzIGV4cGVjdGF0aW9ucyBmb3Ige3Rlc3R9IGluIHRoZSBz
ZXQgb2YgdGVzdCBjb25maWd1cmF0aW9uIHt0ZXN0X2NvbmZpZ19zZXR9IHRvIHRoZSB2YWx1ZXMg
b2Yge2V4cGVjdGF0aW9uX3NldH0uCi0gICAgICAgIElmIHtwYXJzZWRfYnVnX21vZGlmaWVyc30g
aXMgc3VwcGxpZWQsIGl0IGlzIHVzZWQgZm9yIHVwZGF0ZWQgZXhwZWN0YXRpb25zLiBPdGhlcndp
c2UsIGEgbmV3IGJ1ZyBpcyBjcmVhdGVkLgotCi0gICAgICAgIEhlcmUsIHdlIHRyZWF0IHVwZGF0
aW5nIGV4cGVjdGF0aW9ucyB0byBQQVNTIGFzIHNwZWNpYWw6IGlmIHBvc3NpYmxlLCB0aGUgY29y
cmVzcG9uZGluZyBsaW5lcyBhcmUgY29tcGxldGVseSByZW1vdmVkLgotICAgICAgICAiIiIKLSAg
ICAgICAgIyBGSVhNRTogQWxsb3cgc3BlY2lmeWluZyBtb2RpZmllcnMgKFNMT1csIFNLSVAsIFdP
TlRGSVgpLgotICAgICAgICB1cGRhdGVkX2V4cGVjdGF0aW9ucyA9IFtdCi0gICAgICAgIGV4cGVj
dGF0aW9uX2xpbmVzID0gc2VsZi5fdGVzdF90b19leHBlY3RhdGlvbl9saW5lcy5nZXQodGVzdCwg
W10pCi0gICAgICAgIHJlbWFpbmluZ19jb25maWd1cmF0aW9ucyA9IHRlc3RfY29uZmlnX3NldC5j
b3B5KCkKLSAgICAgICAgYnVnX2lkcyA9IHNlbGYuX2dldF92YWxpZF9idWdfaWRzKHBhcnNlZF9i
dWdfbW9kaWZpZXJzKQotICAgICAgICBuZXdfZXhwZWN0YXRpb25fbGluZV9pbnNlcnRpb25fcG9p
bnQgPSBsZW4oc2VsZi5fZXhwZWN0YXRpb25fbGluZXMpCi0gICAgICAgIHJlbW92ZV9leHBlY3Rh
dGlvbnMgPSBleHBlY3RhdGlvbl9zZXQgPT0gc2V0KFt0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSkg
YW5kIHRlc3Qgbm90IGluIHNlbGYuX3Rlc3RzX3dpdGhfZGlyZWN0b3J5X3BhdGhzCi0KLSAgICAg
ICAgZm9yIGV4cGVjdGF0aW9uX2xpbmUgaW4gZXhwZWN0YXRpb25fbGluZXM6Ci0gICAgICAgICAg
ICBpZiBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zID09IHJlbWFpbmlu
Z19jb25maWd1cmF0aW9uczoKLSAgICAgICAgICAgICAgICAjIFR3ZWFrIGV4cGVjdGF0aW9ucyBv
biBleGlzdGluZyBsaW5lLgotICAgICAgICAgICAgICAgIGlmIGV4cGVjdGF0aW9uX2xpbmUucGFy
c2VkX2V4cGVjdGF0aW9ucyA9PSBleHBlY3RhdGlvbl9zZXQ6Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB1cGRhdGVkX2V4cGVjdGF0aW9ucwotICAgICAgICAgICAgICAgIHNlbGYuX2J1Z19t
YW5hZ2VyLmNsb3NlX2J1ZyhleHBlY3RhdGlvbl9saW5lLnBhcnNlZF9idWdfbW9kaWZpZXJzLCBi
dWdfaWRzKQotICAgICAgICAgICAgICAgIHVwZGF0ZWRfZXhwZWN0YXRpb25zLmFwcGVuZChleHBl
Y3RhdGlvbl9saW5lKQotICAgICAgICAgICAgICAgIGlmIHJlbW92ZV9leHBlY3RhdGlvbnM6Ci0g
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9uX2xpbmUubWF0Y2hpbmdfY29uZmlndXJhdGlv
bnMgPSBzZXQoKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGV4
cGVjdGF0aW9uX2xpbmUucGFyc2VkX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9uX3NldAotICAg
ICAgICAgICAgICAgICAgICBleHBlY3RhdGlvbl9saW5lLnBhcnNlZF9idWdfbW9kaWZpZXJzID0g
YnVnX2lkcwotICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkX2V4cGVjdGF0aW9ucwotICAg
ICAgICAgICAgZWxpZiBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zID49
IHJlbWFpbmluZ19jb25maWd1cmF0aW9uczoKLSAgICAgICAgICAgICAgICAjIDEpIFNwbGl0IHVw
IGludG8gdHdvIGV4cGVjdGF0aW9uIGxpbmVzOgotICAgICAgICAgICAgICAgICMgKiBvbmUgd2l0
aCBvbGQgZXhwZWN0YXRpb25zIChleGlzdGluZyBleHBlY3RhdGlvbl9saW5lKQotICAgICAgICAg
ICAgICAgICMgKiBvbmUgd2l0aCBuZXcgZXhwZWN0YXRpb25zIChuZXcgZXhwZWN0YXRpb25fbGlu
ZSkKLSAgICAgICAgICAgICAgICAjIDIpIEZpbmlzaCBsb29raW5nLCBzaW5jZSB0aGVyZSB3aWxs
IGJlIG5vIG1vcmUgcmVtYWluaW5nIGNvbmZpZ3MgdG8gdGVzdCBmb3IuCi0gICAgICAgICAgICAg
ICAgZXhwZWN0YXRpb25fbGluZS5tYXRjaGluZ19jb25maWd1cmF0aW9ucyAtPSByZW1haW5pbmdf
Y29uZmlndXJhdGlvbnMKLSAgICAgICAgICAgICAgICB1cGRhdGVkX2V4cGVjdGF0aW9ucy5hcHBl
bmQoZXhwZWN0YXRpb25fbGluZSkKLSAgICAgICAgICAgICAgICBuZXdfZXhwZWN0YXRpb25fbGlu
ZV9pbnNlcnRpb25fcG9pbnQgPSBzZWxmLl9leHBlY3RhdGlvbl9saW5lcy5pbmRleChleHBlY3Rh
dGlvbl9saW5lKSArIDEKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxpZiBl
eHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zIDw9IHJlbWFpbmluZ19jb25m
aWd1cmF0aW9uczoKLSAgICAgICAgICAgICAgICAjIFJlbW92ZSBleGlzdGluZyBleHBlY3RhdGlv
biBsaW5lLgotICAgICAgICAgICAgICAgIHNlbGYuX2J1Z19tYW5hZ2VyLmNsb3NlX2J1ZyhleHBl
Y3RhdGlvbl9saW5lLnBhcnNlZF9idWdfbW9kaWZpZXJzLCBidWdfaWRzKQotICAgICAgICAgICAg
ICAgIGV4cGVjdGF0aW9uX2xpbmUubWF0Y2hpbmdfY29uZmlndXJhdGlvbnMgPSBzZXQoKQotICAg
ICAgICAgICAgICAgIHVwZGF0ZWRfZXhwZWN0YXRpb25zLmFwcGVuZChleHBlY3RhdGlvbl9saW5l
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpbnRlcnNlY3Rpb24gPSBleHBl
Y3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zICYgcmVtYWluaW5nX2NvbmZpZ3Vy
YXRpb25zCi0gICAgICAgICAgICAgICAgaWYgaW50ZXJzZWN0aW9uOgotICAgICAgICAgICAgICAg
ICAgICBleHBlY3RhdGlvbl9saW5lLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zIC09IGludGVyc2Vj
dGlvbgotICAgICAgICAgICAgICAgICAgICB1cGRhdGVkX2V4cGVjdGF0aW9ucy5hcHBlbmQoZXhw
ZWN0YXRpb25fbGluZSkKLSAgICAgICAgICAgIG5ld19leHBlY3RhdGlvbl9saW5lX2luc2VydGlv
bl9wb2ludCA9IHNlbGYuX2V4cGVjdGF0aW9uX2xpbmVzLmluZGV4KGV4cGVjdGF0aW9uX2xpbmUp
ICsgMQotCi0gICAgICAgIGlmIG5vdCByZW1vdmVfZXhwZWN0YXRpb25zOgotICAgICAgICAgICAg
bmV3X2V4cGVjdGF0aW9uX2xpbmUgPSBzZWxmLl9jcmVhdGVfbmV3X2xpbmUodGVzdCwgYnVnX2lk
cywgcmVtYWluaW5nX2NvbmZpZ3VyYXRpb25zLCBleHBlY3RhdGlvbl9zZXQpCi0gICAgICAgICAg
ICB1cGRhdGVkX2V4cGVjdGF0aW9ucy5hcHBlbmQobmV3X2V4cGVjdGF0aW9uX2xpbmUpCi0gICAg
ICAgICAgICBzZWxmLl9leHBlY3RhdGlvbl9saW5lcy5pbnNlcnQobmV3X2V4cGVjdGF0aW9uX2xp
bmVfaW5zZXJ0aW9uX3BvaW50LCBuZXdfZXhwZWN0YXRpb25fbGluZSkKLQotICAgICAgICByZXR1
cm4gdXBkYXRlZF9leHBlY3RhdGlvbnMKLQotICAgIGRlZiBfZ2V0X3ZhbGlkX2J1Z19pZHMoc2Vs
Ziwgc3VnZ2VzdGVkX2J1Z19pZHMpOgotICAgICAgICAjIEZJWE1FOiBGbGVzaCBvdXQgY3JlYXRp
bmcgYSBidWcgcHJvcGVybHkgKHRpdGxlLCBldGMuKQotICAgICAgICByZXR1cm4gc3VnZ2VzdGVk
X2J1Z19pZHMgb3IgW3NlbGYuX2J1Z19tYW5hZ2VyLmNyZWF0ZV9idWcoKV0KLQotICAgIGRlZiBf
Y3JlYXRlX25ld19saW5lKHNlbGYsIG5hbWUsIGJ1Z19pZHMsIGNvbmZpZ19zZXQsIGV4cGVjdGF0
aW9uX3NldCk6Ci0gICAgICAgIG5ld19saW5lID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVj
dGF0aW9uTGluZSgpCi0gICAgICAgIG5ld19saW5lLm5hbWUgPSBuYW1lCi0gICAgICAgIG5ld19s
aW5lLnBhcnNlZF9idWdfbW9kaWZpZXJzID0gYnVnX2lkcwotICAgICAgICBuZXdfbGluZS5tYXRj
aGluZ19jb25maWd1cmF0aW9ucyA9IGNvbmZpZ19zZXQKLSAgICAgICAgbmV3X2xpbmUucGFyc2Vk
X2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9uX3NldAotICAgICAgICAjIEVuc3VyZSBpbmRleCBp
bnRlZ3JpdHkgZm9yIG11bHRpcGxlIG9wZXJhdGlvbnMuCi0gICAgICAgIHNlbGYuX3Rlc3RfdG9f
ZXhwZWN0YXRpb25fbGluZXMuc2V0ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKG5ld19saW5lKQot
ICAgICAgICByZXR1cm4gbmV3X2xpbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfZXhwZWN0YXRpb25zX2VkaXRvcl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L3Rlc3RfZXhwZWN0YXRpb25zX2VkaXRvcl91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWQ4YWFiZDExNDY3NThjOTg5MDVlMzNkODNhYmE5ZGY4OGU0OTViYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X2V4cGVjdGF0aW9uc19lZGl0
b3JfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNDMgKzAsMCBAQAotIyEvdXNyL2Jp
bi9weXRob24KLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3ZWJr
aXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAotCi1mcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy5jb250cm9sbGVycy50ZXN0X2V4cGVjdGF0aW9uc19lZGl0b3IgaW1wb3J0ICoK
LWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1w
b3J0ICoKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0aW9u
cyBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmln
dXJhdGlvbiBpbXBvcnQgKgotCi0KLWNsYXNzIE1vY2tCdWdNYW5hZ2VyKG9iamVjdCk6Ci0gICAg
ZGVmIGNsb3NlX2J1ZyhzZWxmLCBidWdfaWQsIHJlZmVyZW5jZV9idWdfaWQ9Tm9uZSk6Ci0gICAg
ICAgIHBhc3MKLQotICAgIGRlZiBjcmVhdGVfYnVnKHNlbGYpOgotICAgICAgICByZXR1cm4gIkJV
R19ORVdMWV9DUkVBVEVEIgotCi0KLWNsYXNzIFRlc3RFeHBlY3RhdGlvbkVkaXRvclRlc3RzKHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICBXSU5fUkVMRUFTRV9DT05GSUdTID0gc2V0KFsKLSAgICAg
ICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Zpc3RhJywgJ3g4NicsICdyZWxlYXNlJyksCi0gICAgICAg
IFRlc3RDb25maWd1cmF0aW9uKCd3aW43JywgJ3g4NicsICdyZWxlYXNlJyksCi0gICAgICAgIFRl
c3RDb25maWd1cmF0aW9uKCd4cCcsICd4ODYnLCAncmVsZWFzZScpLAotICAgIF0pCi0KLSAgICBS
RUxFQVNFX0NPTkZJR1MgPSBzZXQoWwotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigndmlzdGEn
LCAneDg2JywgJ3JlbGVhc2UnKSwKLSAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3dpbjcnLCAn
eDg2JywgJ3JlbGVhc2UnKSwKLSAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4Nics
ICdyZWxlYXNlJyksCi0gICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCd2aXN0YScsICd4ODYnLCAn
cmVsZWFzZScpLAotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignd2luNycsICd4ODYnLCAncmVs
ZWFzZScpLAotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3JlbGVhc2Un
KSwKLSAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ3Nub3dsZW9wYXJkJywgJ3g4NicsICdyZWxl
YXNlJyksCi0gICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsZW9wYXJkJywgJ3g4NicsICdyZWxl
YXNlJyksCi0gICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdzbm93bGVvcGFyZCcsICd4ODYnLCAn
cmVsZWFzZScpLAotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbGVvcGFyZCcsICd4ODYnLCAn
cmVsZWFzZScpLAotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2JywgJ3Jl
bGVhc2UnKSwKLSAgICAgICAgVGVzdENvbmZpZ3VyYXRpb24oJ2x1Y2lkJywgJ3g4Nl82NCcsICdy
ZWxlYXNlJyksCi0gICAgICAgIFRlc3RDb25maWd1cmF0aW9uKCdsdWNpZCcsICd4ODYnLCAncmVs
ZWFzZScpLAotICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbHVjaWQnLCAneDg2XzY0JywgJ3Jl
bGVhc2UnKSwKLSAgICBdKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RGdW5jKToKLSAg
ICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKLSAgICAgICAgc2VsZi50ZXN0X3BvcnQgPSBob3N0LnBv
cnRfZmFjdG9yeS5nZXQoJ3Rlc3Qtd2luLXhwJywgTm9uZSkKLSAgICAgICAgc2VsZi5mdWxsX3Rl
c3RfbGlzdCA9IFsnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC9hdWRpby5odG1sJ10KLSAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0X18o
c2VsZiwgdGVzdEZ1bmMpCi0KLSAgICBkZWYgbWFrZV9wYXJzZWRfZXhwZWN0YXRpb25fbGluZXMo
c2VsZiwgaW5fc3RyaW5nKToKLSAgICAgICAgcGFyc2VyID0gVGVzdEV4cGVjdGF0aW9uUGFyc2Vy
KHNlbGYudGVzdF9wb3J0LCBzZWxmLmZ1bGxfdGVzdF9saXN0LCBhbGxvd19yZWJhc2VsaW5lX21v
ZGlmaWVyPUZhbHNlKQotICAgICAgICBleHBlY3RhdGlvbl9saW5lcyA9IHBhcnNlci5wYXJzZSgn
cGF0aCcsIGluX3N0cmluZykKLSAgICAgICAgZm9yIGV4cGVjdGF0aW9uX2xpbmUgaW4gZXhwZWN0
YXRpb25fbGluZXM6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4cGVjdGF0aW9uX2xp
bmUuaXNfaW52YWxpZCgpKQotICAgICAgICByZXR1cm4gZXhwZWN0YXRpb25fbGluZXMKLQotICAg
IGRlZiBhc3NlcnRfcmVtb3ZlX3JvdW5kdHJpcChzZWxmLCBpbl9zdHJpbmcsIHRlc3QsIGV4cGVj
dGVkX3N0cmluZywgcmVtb3ZlX2ZsYWtlcz1GYWxzZSk6Ci0gICAgICAgIHRlc3RfY29uZmlnX3Nl
dCA9IHNldChbc2VsZi50ZXN0X3BvcnQudGVzdF9jb25maWd1cmF0aW9uKCldKQotICAgICAgICBl
eHBlY3RhdGlvbl9saW5lcyA9IHNlbGYubWFrZV9wYXJzZWRfZXhwZWN0YXRpb25fbGluZXMoaW5f
c3RyaW5nKQotICAgICAgICBlZGl0b3IgPSBUZXN0RXhwZWN0YXRpb25zRWRpdG9yKGV4cGVjdGF0
aW9uX2xpbmVzLCBNb2NrQnVnTWFuYWdlcigpKQotICAgICAgICBlZGl0b3IucmVtb3ZlX2V4cGVj
dGF0aW9uKHRlc3QsIHRlc3RfY29uZmlnX3NldCwgcmVtb3ZlX2ZsYWtlcykKLSAgICAgICAgY29u
dmVydGVyID0gVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIoc2VsZi50ZXN0X3BvcnQuYWxsX3Rl
c3RfY29uZmlndXJhdGlvbnMoKSwgc2VsZi50ZXN0X3BvcnQuY29uZmlndXJhdGlvbl9zcGVjaWZp
ZXJfbWFjcm9zKCkpCi0gICAgICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19z
dHJpbmcoZXhwZWN0YXRpb25fbGluZXMsIGNvbnZlcnRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMocmVzdWx0LCBleHBlY3RlZF9zdHJpbmcpCi0KLSAgICBkZWYgYXNzZXJ0X3VwZGF0ZV9y
b3VuZHRyaXAoc2VsZiwgaW5fc3RyaW5nLCB0ZXN0LCBleHBlY3RhdGlvbl9zZXQsIGV4cGVjdGVk
X3N0cmluZywgZXhwZWN0ZWRfdXBkYXRlX2NvdW50LCByZW1vdmVfZmxha2VzPUZhbHNlLCBwYXJz
ZWRfYnVnX21vZGlmaWVycz1Ob25lLCB0ZXN0X2NvbmZpZ3M9Tm9uZSk6Ci0gICAgICAgIHRlc3Rf
Y29uZmlnX3NldCA9IHRlc3RfY29uZmlncyBvciBzZXQoW3NlbGYudGVzdF9wb3J0LnRlc3RfY29u
ZmlndXJhdGlvbigpXSkKLSAgICAgICAgZXhwZWN0YXRpb25fbGluZXMgPSBzZWxmLm1ha2VfcGFy
c2VkX2V4cGVjdGF0aW9uX2xpbmVzKGluX3N0cmluZykKLSAgICAgICAgZWRpdG9yID0gVGVzdEV4
cGVjdGF0aW9uc0VkaXRvcihleHBlY3RhdGlvbl9saW5lcywgTW9ja0J1Z01hbmFnZXIoKSkKLSAg
ICAgICAgdXBkYXRlZF9leHBlY3RhdGlvbl9saW5lcyA9IGVkaXRvci51cGRhdGVfZXhwZWN0YXRp
b24odGVzdCwgdGVzdF9jb25maWdfc2V0LCBleHBlY3RhdGlvbl9zZXQsIHBhcnNlZF9idWdfbW9k
aWZpZXJzPXBhcnNlZF9idWdfbW9kaWZpZXJzKQotICAgICAgICBmb3IgdXBkYXRlZF9leHBlY3Rh
dGlvbl9saW5lIGluIHVwZGF0ZWRfZXhwZWN0YXRpb25fbGluZXM6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydFRydWUodXBkYXRlZF9leHBlY3RhdGlvbl9saW5lIGluIGV4cGVjdGF0aW9uX2xpbmVz
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4odXBkYXRlZF9leHBlY3RhdGlvbl9saW5l
cyksIGV4cGVjdGVkX3VwZGF0ZV9jb3VudCkKLSAgICAgICAgY29udmVydGVyID0gVGVzdENvbmZp
Z3VyYXRpb25Db252ZXJ0ZXIoc2VsZi50ZXN0X3BvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMo
KSwgc2VsZi50ZXN0X3BvcnQuY29uZmlndXJhdGlvbl9zcGVjaWZpZXJfbWFjcm9zKCkpCi0gICAg
ICAgIHJlc3VsdCA9IFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJpbmcoZXhwZWN0YXRpb25f
bGluZXMsIGNvbnZlcnRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0LCBleHBl
Y3RlZF9zdHJpbmcpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfZXhwZWN0YXRpb24oc2VsZik6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0X3JlbW92ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBYUCBERUJVRyA6
IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFp
bHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCA9IElNQUdFIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQv
aGFuZy5odG1sJywgIiIiCi1CVUdYMSBYUCBERUJVRyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJv
YXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRt
bCA9IElNQUdFIiIiKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JlbW92ZV9yb3VuZHRyaXAoIiIi
Ci1CVUdYMSBYUCBERUJVRyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFH
RQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCA9IElNQUdFIiIiLCAn
ZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsICIiIgotQlVHWDEgWFAgREVCVUcgOiBm
YWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR1gyIFdJTiA6IGZhaWx1
cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIikKLQotICAgICAgICBzZWxmLmFzc2Vy
dF9yZW1vdmVfcm91bmR0cmlwKCIiIgotQlVHWDEgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3Rl
ZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR1gyIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL2F1
ZGlvLmh0bWwgPSBJTUFHRSIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwnLCAi
IiIKLUJVR1gxIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElN
QUdFCi1CVUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRfcmVtb3ZlX3JvdW5kdHJpcCgiIiIKLUJVR1gxIE1BQyA6
IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFp
bHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCA9IElNQUdFIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQv
a2V5Ym9hcmQuaHRtbCcsICAiIiIKLUJVR1gxIE1BQyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJv
YXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRt
bCA9IElNQUdFIiIiKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JlbW92ZV9yb3VuZHRyaXAoIiIi
Ci1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElN
QUdFCi1CVUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIs
ICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgIiIiCi1CVUdYMiBXSU4gOiBmYWls
dXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRfcmVtb3ZlX3JvdW5kdHJpcCgiIiIKLUJVR1gxIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL2tl
eWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8u
aHRtbCA9IElNQUdFIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsICIiIgot
QlVHWDEgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UK
LUJVR1gxIFZJU1RBIFdJTjcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1B
R0UKLUJVR1gyIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIikK
LQotICAgICAgICBzZWxmLmFzc2VydF9yZW1vdmVfcm91bmR0cmlwKCIiIgotQlVHWDEgWFAgOiBm
YWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR1gyIFdJTiA6IGZhaWx1
cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tl
eWJvYXJkLmh0bWwnLCAiIiIKLUJVR1gxIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5
Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5o
dG1sID0gSU1BR0UiIiIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfcmVtb3ZlX3JvdW5kdHJpcCgi
IiIKLUJVR1gxIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdY
MiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIsICdmYWlsdXJl
cy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgIiIiCi1CVUdYMSBYUCBERUJVRyA6IGZhaWx1cmVz
L2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDEgTElOVVggTUFDIFZJU1RBIFdJ
TjcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR1gyIFdJTiA6
IGZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIikKLQotICAgICAgICBzZWxm
LmFzc2VydF9yZW1vdmVfcm91bmR0cmlwKCIiIgotQlVHWDEgV0lOIDogZmFpbHVyZXMvZXhwZWN0
ZWQgPSBQQVNTCi1CVUdYMiBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQu
aHRtbCA9IElNQUdFIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsICIiIgot
QlVHWDEgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQgPSBQQVNTIiIiKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3JlbW92ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMv
ZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdYMiBYUCBERUJVRyA6IGZhaWx1cmVz
L2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRSIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tl
eWJvYXJkLmh0bWwnLCAiIiIKLUJVR1gyIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5
Ym9hcmQuaHRtbCA9IElNQUdFIiIiKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JlbW92ZV9yb3Vu
ZHRyaXAoIiIiCi1CVUdYMSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZCA9IFRFWFQiIiIsICdmYWls
dXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgIiIiCi1CVUdYMSBXSU4gOiBmYWlsdXJlcy9l
eHBlY3RlZCA9IFRFWFQiIiIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfcmVtb3ZlX3JvdW5kdHJp
cCgiIiIKLUJVR1gxIFhQIFJFTEVBU0UgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1s
ID0gSU1BR0UgUEFTUwotQlVHWDIgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2Fy
ZC5odG1sID0gSU1BR0UiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgIiIi
Ci1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFBB
U1MgSU1BR0UKLUJVR1gyIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRt
bCA9IElNQUdFIiIiKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3JlbW92ZV9yb3VuZHRyaXAoIiIi
Ci1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElN
QUdFIFBBU1MKLUJVR1gyIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRt
bCA9IElNQUdFIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsICIiIgotQlVH
WDIgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UiIiIs
IHJlbW92ZV9mbGFrZXM9VHJ1ZSkKLQotICAgIGRlZiB0ZXN0X3JlbW92ZV9leHBlY3RhdGlvbl9t
dWx0aXBsZShzZWxmKToKLSAgICAgICAgaW5fc3RyaW5nID0gIiIiCi1CVUdYMSBXSU4gOiBmYWls
dXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR1gyIFdJTiA6IGZhaWx1cmVz
L2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIgotICAgICAgICBleHBlY3RhdGlvbl9saW5l
cyA9IHNlbGYubWFrZV9wYXJzZWRfZXhwZWN0YXRpb25fbGluZXMoaW5fc3RyaW5nKQotICAgICAg
ICBjb252ZXJ0ZXIgPSBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihzZWxmLnRlc3RfcG9ydC5h
bGxfdGVzdF9jb25maWd1cmF0aW9ucygpLCBzZWxmLnRlc3RfcG9ydC5jb25maWd1cmF0aW9uX3Nw
ZWNpZmllcl9tYWNyb3MoKSkKLSAgICAgICAgZWRpdG9yID0gVGVzdEV4cGVjdGF0aW9uc0VkaXRv
cihleHBlY3RhdGlvbl9saW5lcywgTW9ja0J1Z01hbmFnZXIoKSkKLSAgICAgICAgdGVzdCA9ICJm
YWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sIgotCi0gICAgICAgIGVkaXRvci5yZW1vdmVf
ZXhwZWN0YXRpb24odGVzdCwgc2V0KFtUZXN0Q29uZmlndXJhdGlvbigneHAnLCAneDg2JywgJ3Jl
bGVhc2UnKV0pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLmxp
c3RfdG9fc3RyaW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR1gxIFhQ
IERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdYMSBW
SVNUQSBXSU43IDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdY
MiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIpCi0KLSAgICAg
ICAgZWRpdG9yLnJlbW92ZV9leHBlY3RhdGlvbih0ZXN0LCBzZXQoW1Rlc3RDb25maWd1cmF0aW9u
KCd4cCcsICd4ODYnLCAnZGVidWcnKV0pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0
RXhwZWN0YXRpb25zLmxpc3RfdG9fc3RyaW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIp
LCAiIiIKLUJVR1gxIFZJU1RBIFdJTjcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1s
ID0gSU1BR0UKLUJVR1gyIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFH
RSIiIikKLQotICAgICAgICBlZGl0b3IucmVtb3ZlX2V4cGVjdGF0aW9uKHRlc3QsIHNldChbVGVz
dENvbmZpZ3VyYXRpb24oJ3Zpc3RhJywgJ3g4NicsICdkZWJ1ZycpLCBUZXN0Q29uZmlndXJhdGlv
bignd2luNycsICd4ODYnLCAncmVsZWFzZScpXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJpbmcoZXhwZWN0YXRpb25fbGluZXMsIGNvbnZl
cnRlciksICIiIgotQlVHWDEgVklTVEEgUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJv
YXJkLmh0bWwgPSBJTUFHRQotQlVHWDEgV0lONyBERUJVRyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tl
eWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8u
aHRtbCA9IElNQUdFIiIiKQotCi0gICAgICAgIGVkaXRvci5yZW1vdmVfZXhwZWN0YXRpb24odGVz
dCwgc2V0KFtUZXN0Q29uZmlndXJhdGlvbigndmlzdGEnLCAneDg2JywgJ2RlYnVnJyksIFRlc3RD
b25maWd1cmF0aW9uKCd2aXN0YScsICd4ODYnLCAncmVsZWFzZScpXSkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJpbmcoZXhwZWN0YXRpb25f
bGluZXMsIGNvbnZlcnRlciksICIiIgotQlVHWDEgV0lONyBERUJVRyA6IGZhaWx1cmVzL2V4cGVj
dGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRQotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQv
YXVkaW8uaHRtbCA9IElNQUdFIiIiKQotCi0gICAgICAgIGVkaXRvci5yZW1vdmVfZXhwZWN0YXRp
b24odGVzdCwgc2V0KHNlbGYudGVzdF9wb3J0LmFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKCkpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLmxpc3RfdG9fc3RyaW5n
KGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR1gyIFdJTiA6IGZhaWx1cmVz
L2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIikKLQotICAgICAgICB0ZXN0ID0gImZhaWx1
cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwiCi0KLSAgICAgICAgZWRpdG9yLnJlbW92ZV9leHBlY3Rh
dGlvbih0ZXN0LCBzZXQoc2VsZi50ZXN0X3BvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoKSkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RFeHBlY3RhdGlvbnMubGlzdF90b19zdHJp
bmcoZXhwZWN0YXRpb25fbGluZXMsIGNvbnZlcnRlciksICIiKQotCi0gICAgZGVmIHRlc3RfdXBk
YXRlX2V4cGVjdGF0aW9uKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGVfcm91bmR0
cmlwKCIiIgotQlVHWDEgWFAgUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0
bWwgPSBURVhUIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsIHNldChbSU1B
R0VdKSwgIiIiCi1CVUdfTkVXTFlfQ1JFQVRFRCBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0
ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFIiIiLCAxKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3Vw
ZGF0ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQv
a2V5Ym9hcmQuaHRtbCA9IFRFWFQiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1s
Jywgc2V0KFtQQVNTXSksICcnLCAxKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZV9yb3Vu
ZHRyaXAoIiIiCi1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQgPSBURVhUIiIi
LCAnZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCcsIHNldChbSU1BR0VdKSwgIiIiCi1C
VUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQgPSBURVhUCi1CVUdfTkVXTFlfQ1JF
QVRFRCBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdF
IiIiLCAxKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAoIiIiCi1CVUdY
MSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQgPSBURVhUIiIiLCAnZmFpbHVyZXMvZXhw
ZWN0ZWQva2V5Ym9hcmQuaHRtbCcsIHNldChbUEFTU10pLCAiIiIKLUJVR1gxIFhQIFJFTEVBU0Ug
OiBmYWlsdXJlcy9leHBlY3RlZCA9IFRFWFQKLUJVR19ORVdMWV9DUkVBVEVEIFhQIFJFTEVBU0Ug
OiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gUEFTUyIiIiwgMSkKLQotICAgICAg
ICBzZWxmLmFzc2VydF91cGRhdGVfcm91bmR0cmlwKCIiIgotQlVHWDEgWFAgUkVMRUFTRSA6IGZh
aWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBURVhUIiIiLCAnZmFpbHVyZXMvZXhwZWN0
ZWQva2V5Ym9hcmQuaHRtbCcsIHNldChbVEVYVF0pLCAiIiIKLUJVR1gxIFhQIFJFTEVBU0UgOiBm
YWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVYVCIiIiwgMCkKLQotICAgICAgICBz
ZWxmLmFzc2VydF91cGRhdGVfcm91bmR0cmlwKCIiIgotQlVHWDEgWFAgUkVMRUFTRSA6IGZhaWx1
cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBURVhUIiIiLCAnZmFpbHVyZXMvZXhwZWN0ZWQv
a2V5Ym9hcmQuaHRtbCcsIHNldChbSU1BR0VdKSwgIiIiCi1CVUdBV0VTT01FIFhQIFJFTEVBU0Ug
OiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UiIiIsIDEsIHBhcnNlZF9i
dWdfbW9kaWZpZXJzPVsnQlVHQVdFU09NRSddKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0
ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5
Ym9hcmQuaHRtbCA9IFRFWFQiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywg
c2V0KFtJTUFHRV0pLCAiIiIKLUJVR19ORVdMWV9DUkVBVEVEIFhQIFJFTEVBU0UgOiBmYWlsdXJl
cy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UiIiIsIDEpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRfdXBkYXRlX3JvdW5kdHJpcCgiIiIKLUJVR1gxIFhQIFJFTEVBU0UgOiBmYWlsdXJlcy9l
eHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVYVCIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tleWJv
YXJkLmh0bWwnLCBzZXQoW1BBU1NdKSwgJycsIDEpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfdXBk
YXRlX3JvdW5kdHJpcCgiIiIKLUJVR1gxIFhQIFJFTEVBU0UgOiBmYWlsdXJlcy9leHBlY3RlZC9r
ZXlib2FyZC5odG1sID0gVEVYVCIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwn
LCBzZXQoW0lNQUdFXSksICIiIgotQlVHQVdFU09NRSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhw
ZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFIiIiLCAxLCBwYXJzZWRfYnVnX21vZGlmaWVycz1b
J0JVR0FXRVNPTUUnXSkKLQotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGVfcm91bmR0cmlwKCIi
IgotQlVHWDEgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQiIiIs
ICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgc2V0KFtJTUFHRV0pLCAiIiIKLUJV
R1gxIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQKLUJV
R1gxIFZJU1RBIFdJTjcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVYVAot
QlVHX05FV0xZX0NSRUFURUQgWFAgUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJk
Lmh0bWwgPSBJTUFHRSIiIiwgMikKLQotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGVfcm91bmR0
cmlwKCIiIgotQlVHWDEgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRF
WFQiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgc2V0KFtQQVNTXSksICIi
IgotQlVHWDEgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVY
VAotQlVHWDEgVklTVEEgV0lONyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBU
RVhUIiIiLCAxKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAoIiIiCi1C
VUdYMSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVYVCIiIiwgJ2Zh
aWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwnLCBzZXQoW0lNQUdFXSksICIiIgotQlVHWDEg
WFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gVEVYVAotQlVHWDEg
VklTVEEgV0lONyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBURVhUCi1CVUdf
TkVXTFlfQ1JFQVRFRCBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRt
bCA9IElNQUdFIiIiLCAyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAo
IiIiCi1CVUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9
IFRFWFQiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgc2V0KFtJTUFHRV0p
LCAiIiIKLUJVR19ORVdMWV9DUkVBVEVEIFdJTiBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQv
a2V5Ym9hcmQuaHRtbCA9IElNQUdFIiIiLCAyLCB0ZXN0X2NvbmZpZ3M9c2VsZi5XSU5fUkVMRUFT
RV9DT05GSUdTKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAoIiIiCi1C
VUdYMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQi
IiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sJywgc2V0KFtQQVNTXSksICcnLCAx
LCB0ZXN0X2NvbmZpZ3M9c2VsZi5XSU5fUkVMRUFTRV9DT05GSUdTKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBSRUxFQVNFIDogZmFpbHVyZXMvZXhw
ZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQiIiIsICdmYWlsdXJlcy9leHBlY3RlZC9rZXlib2Fy
ZC5odG1sJywgc2V0KFtJTUFHRV0pLCAiIiIKLUJVR1gxIExJTlVYIE1BQyBSRUxFQVNFIDogZmFp
bHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQKLUJVR19ORVdMWV9DUkVBVEVEIFdJ
TiBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFIiIiLCAy
LCB0ZXN0X2NvbmZpZ3M9c2VsZi5XSU5fUkVMRUFTRV9DT05GSUdTKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3VwZGF0ZV9yb3VuZHRyaXAoIiIiCi1CVUdYMSBNQUMgOiBmYWlsdXJlcy9leHBlY3Rl
ZC9rZXlib2FyZC5odG1sID0gVEVYVCIiIiwgJ2ZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0
bWwnLCBzZXQoW0lNQUdFXSksICIiIgotQlVHWDEgTUFDIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5
Ym9hcmQuaHRtbCA9IFRFWFQKLUJVR19ORVdMWV9DUkVBVEVEIFdJTiBSRUxFQVNFIDogZmFpbHVy
ZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFIiIiLCAxLCB0ZXN0X2NvbmZpZ3M9c2Vs
Zi5XSU5fUkVMRUFTRV9DT05GSUdTKQotCi0gICAgZGVmIHRlc3RfdXBkYXRlX2V4cGVjdGF0aW9u
X3JlbGF0aXZlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGVfcm91bmR0cmlwKCIi
IgotQlVHWDEgWFAgUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBU
RVhUCi1CVUdYMiBNQUMgOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gVEVYVCIiIiwg
J2ZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwnLCBzZXQoW0lNQUdFXSksICIiIgotQlVH
QVdFU09NRSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElN
QUdFCi1CVUdYMiBNQUMgOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gVEVYVCIiIiwg
MSwgcGFyc2VkX2J1Z19tb2RpZmllcnM9WydCVUdBV0VTT01FJ10pCi0KLSAgICBkZWYgdGVzdF91
cGRhdGVfZXhwZWN0YXRpb25fbXVsdGlwbGUoc2VsZik6Ci0gICAgICAgIGluX3N0cmluZyA9ICIi
IgotQlVHWDEgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1C
VUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0UiIiIKLSAgICAg
ICAgZXhwZWN0YXRpb25fbGluZXMgPSBzZWxmLm1ha2VfcGFyc2VkX2V4cGVjdGF0aW9uX2xpbmVz
KGluX3N0cmluZykKLSAgICAgICAgY29udmVydGVyID0gVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0
ZXIoc2VsZi50ZXN0X3BvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoKSwgc2VsZi50ZXN0X3Bv
cnQuY29uZmlndXJhdGlvbl9zcGVjaWZpZXJfbWFjcm9zKCkpCi0gICAgICAgIGVkaXRvciA9IFRl
c3RFeHBlY3RhdGlvbnNFZGl0b3IoZXhwZWN0YXRpb25fbGluZXMsIE1vY2tCdWdNYW5hZ2VyKCkp
Ci0gICAgICAgIHRlc3QgPSAiZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCIKLQotICAg
ICAgICBlZGl0b3IudXBkYXRlX2V4cGVjdGF0aW9uKHRlc3QsIHNldChbVGVzdENvbmZpZ3VyYXRp
b24oJ3hwJywgJ3g4NicsICdyZWxlYXNlJyldKSwgc2V0KFtJTUFHRV9QTFVTX1RFWFRdKSwgWydC
VUdfVVBEQVRFMSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25z
Lmxpc3RfdG9fc3RyaW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR1gx
IFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1CVUdY
MSBWSVNUQSBXSU43IDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IElNQUdFCi1C
VUdfVVBEQVRFMSBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9
IElNQUdFK1RFWFQKLUJVR1gyIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJ
TUFHRSIiIikKLQotICAgICAgICBlZGl0b3IudXBkYXRlX2V4cGVjdGF0aW9uKHRlc3QsIHNldChb
VGVzdENvbmZpZ3VyYXRpb24oJ3hwJywgJ3g4NicsICdkZWJ1ZycpXSksIHNldChbVEVYVF0pLCBb
J0JVR19VUERBVEUyJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRlc3RFeHBlY3RhdGlv
bnMubGlzdF90b19zdHJpbmcoZXhwZWN0YXRpb25fbGluZXMsIGNvbnZlcnRlciksICIiIgotQlVH
WDEgVklTVEEgV0lONyA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBJTUFHRQot
QlVHX1VQREFURTIgWFAgREVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0g
VEVYVAotQlVHX1VQREFURTEgWFAgUkVMRUFTRSA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJk
Lmh0bWwgPSBJTUFHRStURVhUCi1CVUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5o
dG1sID0gSU1BR0UiIiIpCi0KLSAgICAgICAgZWRpdG9yLnVwZGF0ZV9leHBlY3RhdGlvbih0ZXN0
LCBzZWxmLldJTl9SRUxFQVNFX0NPTkZJR1MsIHNldChbQ1JBU0hdKSwgWydCVUdfVVBEQVRFMydd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLmxpc3RfdG9fc3Ry
aW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR1gxIFZJU1RBIFdJTjcg
REVCVUcgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR19VUERB
VEUyIFhQIERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQKLUJV
R19VUERBVEUzIFdJTiBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9
IENSQVNICi1CVUdYMiBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1sID0gSU1BR0Ui
IiIpCi0KLSAgICAgICAgZWRpdG9yLnVwZGF0ZV9leHBlY3RhdGlvbih0ZXN0LCBzZWxmLlJFTEVB
U0VfQ09ORklHUywgc2V0KFtJTUFHRV9QTFVTX1RFWFRdKSwgWydCVUdfVVBEQVRFNCddKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLmxpc3RfdG9fc3RyaW5nKGV4
cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR1gxIFZJU1RBIFdJTjcgREVCVUcg
OiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UKLUJVR19VUERBVEUyIFhQ
IERFQlVHIDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRFWFQKLUJVR19VUERB
VEU0IFJFTEVBU0UgOiBmYWlsdXJlcy9leHBlY3RlZC9rZXlib2FyZC5odG1sID0gSU1BR0UrVEVY
VAotQlVHWDIgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCA9IElNQUdFIiIiKQot
Ci0gICAgICAgIGVkaXRvci51cGRhdGVfZXhwZWN0YXRpb24odGVzdCwgc2V0KHNlbGYudGVzdF9w
b3J0LmFsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKCkpLCBzZXQoW1RJTUVPVVRdKSwgWydCVUdfVVBE
QVRFNSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUZXN0RXhwZWN0YXRpb25zLmxpc3Rf
dG9fc3RyaW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBjb252ZXJ0ZXIpLCAiIiIKLUJVR19VUERBVEU1
IDogZmFpbHVyZXMvZXhwZWN0ZWQva2V5Ym9hcmQuaHRtbCA9IFRJTUVPVVQKLUJVR1gyIFdJTiA6
IGZhaWx1cmVzL2V4cGVjdGVkL2F1ZGlvLmh0bWwgPSBJTUFHRSIiIikKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CmluZGV4IGE1
MDZjZDcwMzlmNWMwNjhhYTE5NjJlYWFlNTYyN2VjZGI5YTg3YmEuLjgxN2Q5MjA1ODhhNWY3Mzg4
MGEwNGQwYTU5ZTEwNjdkZWU5OGVjMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKQEAgLTI5LDkgKzI5LDYgQEAg
aW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXpl
ZAogZnJvbSB3ZWJraXRweS50b29sLnNlcnZlcnMucmVmbGVjdGlvbmhhbmRsZXIgaW1wb3J0IFJl
ZmxlY3Rpb25IYW5kbGVyCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy50
ZXN0X2V4cGVjdGF0aW9uc19lZGl0b3IgaW1wb3J0IEJ1Z01hbmFnZXIsIFRlc3RFeHBlY3RhdGlv
bnNFZGl0b3IKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0
aW9ucyBpbXBvcnQgVGVzdEV4cGVjdGF0aW9uUGFyc2VyLCBUZXN0RXhwZWN0YXRpb25zCi1mcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBU
ZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dCBpbXBvcnQgYnVpbGRlcnMKIAogCkBAIC01MywzOCArNTAsNiBAQCBjbGFzcyBCdWlsZENvdmVy
YWdlRXh0cmFwb2xhdG9yKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9jb3ZlcmVkX3Rl
c3RfY29uZmlndXJhdGlvbnNfZm9yX2J1aWxkZXJfbmFtZSgpW2J1aWxkZXJfbmFtZV0KIAogCi1j
bGFzcyBHYXJkZW5pbmdFeHBlY3RhdGlvbnNVcGRhdGVyKEJ1Z01hbmFnZXIpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0b29sLCBwb3J0KToKLSAgICAgICAgc2VsZi5fY29udmVydGVyID0gVGVz
dENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIocG9ydC5hbGxfdGVzdF9jb25maWd1cmF0aW9ucygpLCBw
b3J0LmNvbmZpZ3VyYXRpb25fc3BlY2lmaWVyX21hY3JvcygpKQotICAgICAgICBzZWxmLl9leHRy
YXBvbGF0b3IgPSBCdWlsZENvdmVyYWdlRXh0cmFwb2xhdG9yKHNlbGYuX2NvbnZlcnRlcikKLSAg
ICAgICAgc2VsZi5fcGFyc2VyID0gVGVzdEV4cGVjdGF0aW9uUGFyc2VyKHBvcnQsIFtdLCBhbGxv
d19yZWJhc2VsaW5lX21vZGlmaWVyPUZhbHNlKQotICAgICAgICBzZWxmLl9wYXRoX3RvX3Rlc3Rf
ZXhwZWN0YXRpb25zX2ZpbGUgPSBwb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgp
Ci0gICAgICAgIHNlbGYuX3Rvb2wgPSB0b29sCi0KLSAgICBkZWYgY2xvc2VfYnVnKHNlbGYsIGJ1
Z19pZCwgcmVmZXJlbmNlX2J1Z19pZD1Ob25lKToKLSAgICAgICAgIyBGSVhNRTogSW1wbGVtZW50
IHRoaXMgcHJvcGVybHkuCi0gICAgICAgIHBhc3MKLQotICAgIGRlZiBjcmVhdGVfYnVnKHNlbGYp
OgotICAgICAgICByZXR1cm4gIkJVR19ORVciCi0KLSAgICBkZWYgdXBkYXRlX2V4cGVjdGF0aW9u
cyhzZWxmLCBmYWlsdXJlX2luZm9fbGlzdCk6Ci0gICAgICAgIGV4cGVjdGF0aW9uX2xpbmVzID0g
c2VsZi5fcGFyc2VyLnBhcnNlKHNlbGYuX3BhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSwg
c2VsZi5fdG9vbC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX3BhdGhfdG9fdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZSkpCi0gICAgICAgIGVkaXRvciA9IFRlc3RFeHBlY3RhdGlvbnNFZGl0
b3IoZXhwZWN0YXRpb25fbGluZXMsIHNlbGYpCi0gICAgICAgIHVwZGF0ZWRfZXhwZWN0YXRpb25f
bGluZXMgPSBbXQotICAgICAgICAjIEZJWE1FOiBHcm91cCBmYWlsdXJlcyBieSB0ZXN0TmFtZStm
YWlsdXJlVHlwZUxpc3QuCi0gICAgICAgIGZvciBmYWlsdXJlX2luZm8gaW4gZmFpbHVyZV9pbmZv
X2xpc3Q6Ci0gICAgICAgICAgICBleHBlY3RhdGlvbl9zZXQgPSBzZXQoZmlsdGVyKGxhbWJkYSBl
eHBlY3RhdGlvbjogZXhwZWN0YXRpb24gaXMgbm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcChUZXN0RXhwZWN0YXRpb25zLmV4cGVjdGF0aW9uX2Zy
b21fc3RyaW5nLCBmYWlsdXJlX2luZm9bJ2ZhaWx1cmVUeXBlTGlzdCddKSkpCi0gICAgICAgICAg
ICBhc3NlcnQoZXhwZWN0YXRpb25fc2V0KQotICAgICAgICAgICAgdGVzdF9uYW1lID0gZmFpbHVy
ZV9pbmZvWyd0ZXN0TmFtZSddCi0gICAgICAgICAgICBhc3NlcnQodGVzdF9uYW1lKQotICAgICAg
ICAgICAgYnVpbGRlcl9uYW1lID0gZmFpbHVyZV9pbmZvWydidWlsZGVyTmFtZSddCi0gICAgICAg
ICAgICBhZmZlY3RlZF90ZXN0X2NvbmZpZ3VyYXRpb25fc2V0ID0gc2VsZi5fZXh0cmFwb2xhdG9y
LmV4dHJhcG9sYXRlX3Rlc3RfY29uZmlndXJhdGlvbnMoYnVpbGRlcl9uYW1lKQotICAgICAgICAg
ICAgdXBkYXRlZF9leHBlY3RhdGlvbl9saW5lcy5leHRlbmQoZWRpdG9yLnVwZGF0ZV9leHBlY3Rh
dGlvbih0ZXN0X25hbWUsIGFmZmVjdGVkX3Rlc3RfY29uZmlndXJhdGlvbl9zZXQsIGV4cGVjdGF0
aW9uX3NldCkpCi0gICAgICAgIHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUo
c2VsZi5fcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlLCBUZXN0RXhwZWN0YXRpb25zLmxp
c3RfdG9fc3RyaW5nKGV4cGVjdGF0aW9uX2xpbmVzLCBzZWxmLl9jb252ZXJ0ZXIsIHJlY29uc3Rp
dHV0ZV9vbmx5X3RoZXNlPXVwZGF0ZWRfZXhwZWN0YXRpb25fbGluZXMpKQotCi0KIGNsYXNzIEdh
cmRlbmluZ0hUVFBTZXJ2ZXIoQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGh0dHBkX3BvcnQsIGNvbmZpZyk6CiAgICAgICAgIHNlcnZlcl9uYW1lID0g
JycKQEAgLTExNCwxMyArNzksNiBAQCBjbGFzcyBHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIo
UmVmbGVjdGlvbkhhbmRsZXIpOgogICAgIGRlZiBfcnVuX3dlYmtpdF9wYXRjaChzZWxmLCBhcmdz
KToKICAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnRvb2wuZXhlY3V0aXZlLnJ1bl9jb21tYW5k
KFtzZWxmLnNlcnZlci50b29sLnBhdGgoKV0gKyBhcmdzLCBjd2Q9c2VsZi5zZXJ2ZXIudG9vbC5z
Y20oKS5jaGVja291dF9yb290KQogCi0gICAgQG1lbW9pemVkCi0gICAgZGVmIF9leHBlY3RhdGlv
bnNfdXBkYXRlcihzZWxmKToKLSAgICAgICAgIyBGSVhNRTogU2hvdWxkIHNwbGl0IGZhaWx1cmVf
aW5mb19saXN0IGludG8gbGlzdHMgcGVyIHBvcnQsIHRoZW4gZWRpdCBlYWNoIGV4cGVjdGF0aW9u
cyBmaWxlIHNlcGFyYXRlbHkuCi0gICAgICAgICMgRm9yIG5vdywgYXNzdW1lIENocm9taXVtIHBv
cnQuCi0gICAgICAgIHBvcnQgPSBzZWxmLnNlcnZlci50b29sLmdldCgiY2hyb21pdW0td2luLXdp
bjciKQotICAgICAgICByZXR1cm4gR2FyZGVuaW5nRXhwZWN0YXRpb25zVXBkYXRlcihzZWxmLnNl
cnZlci50b29sLCBwb3J0KQotCiAgICAgZGVmIHJvbGxvdXQoc2VsZik6CiAgICAgICAgIHJldmlz
aW9uID0gc2VsZi5xdWVyeVsncmV2aXNpb24nXVswXQogICAgICAgICByZWFzb24gPSBzZWxmLnF1
ZXJ5WydyZWFzb24nXVswXQpAQCAtMTM2LDEwICs5NCw2IEBAIGNsYXNzIEdhcmRlbmluZ0hUVFBS
ZXF1ZXN0SGFuZGxlcihSZWZsZWN0aW9uSGFuZGxlcik6CiAgICAgZGVmIHBpbmcoc2VsZik6CiAg
ICAgICAgIHNlbGYuX3NlcnZlX3RleHQoJ3BvbmcnKQogCi0gICAgZGVmIHVwZGF0ZWV4cGVjdGF0
aW9ucyhzZWxmKToKLSAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zX3VwZGF0ZXIoKS51cGRhdGVf
ZXhwZWN0YXRpb25zKHNlbGYuX3JlYWRfZW50aXR5X2JvZHlfYXNfanNvbigpKQotICAgICAgICBz
ZWxmLl9zZXJ2ZV90ZXh0KCdzdWNjZXNzJykKLQogICAgIGRlZiByZWJhc2VsaW5lYWxsKHNlbGYp
OgogICAgICAgICBjb21tYW5kID0gWydyZWJhc2VsaW5lLWpzb24nXQogICAgICAgICBqc29uX2lu
cHV0ID0gc2VsZi5yZWFkX2VudGl0eV9ib2R5KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5w
eQppbmRleCAxNjZkMTkxYWNhZjcyMGU1MWZiNDhjY2M3NjAwZjBkYjY5MDI0MGIzLi4yMmU4NTM0
OTE1YmRlMGFjMTgwNTQzZDNmN2EzMmU3ODNhZmY2MzBjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3Vu
aXR0ZXN0LnB5CkBAIC05Nyw3OSArOTcsNiBAQCBjbGFzcyBCdWlsZENvdmVyYWdlRXh0cmFwb2xh
dG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtl
eUVycm9yLCBleHRyYXBvbGF0b3IuZXh0cmFwb2xhdGVfdGVzdF9jb25maWd1cmF0aW9ucywgIlBv
dGF0byIpCiAKIAotY2xhc3MgR2FyZGVuaW5nRXhwZWN0YXRpb25zVXBkYXRlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0RnVuYyk6Ci0gICAgICAg
IHNlbGYudG9vbCA9IE1vY2tUb29sKCkKLSAgICAgICAgc2VsZi50b29sLmV4ZWN1dGl2ZSA9IE1v
Y2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1UcnVlKQotICAgICAgICBzZWxmLnRvb2wuZmlsZXN5c3Rl
bS5maWxlc1tUZXN0UG9ydEZhY3RvcnkucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCld
ID0gIiIKLSAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgdGVzdEZ1bmMp
Ci0KLSAgICBkZWYgYXNzZXJ0X3VwZGF0ZShzZWxmLCBmYWlsdXJlX2luZm9fbGlzdCwgZXhwZWN0
YXRpb25zX2JlZm9yZT1Ob25lLCBleHBlY3RhdGlvbnNfYWZ0ZXI9Tm9uZSwgZXhwZWN0ZWRfZXhj
ZXB0aW9uPU5vbmUpOgotICAgICAgICB1cGRhdGVyID0gR2FyZGVuaW5nRXhwZWN0YXRpb25zVXBk
YXRlcihzZWxmLnRvb2wsIFRlc3RQb3J0RmFjdG9yeS5jcmVhdGUoKSkKLSAgICAgICAgcGF0aF90
b190ZXN0X2V4cGVjdGF0aW9uc19maWxlID0gVGVzdFBvcnRGYWN0b3J5LnBhdGhfdG9fdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZSgpCi0gICAgICAgIHNlbGYudG9vbC5maWxlc3lzdGVtLmZpbGVzW3Bh
dGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZV0gPSBleHBlY3RhdGlvbnNfYmVmb3JlIG9yICIi
Ci0gICAgICAgIGlmIGV4cGVjdGVkX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgdXBkYXRlci51cGRhdGVfZXhwZWN0YXRpb25zLCAo
ZmFpbHVyZV9pbmZvX2xpc3QpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdXBkYXRlci51
cGRhdGVfZXhwZWN0YXRpb25zKGZhaWx1cmVfaW5mb19saXN0KQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi50b29sLmZpbGVzeXN0ZW0uZmlsZXNbcGF0aF90b190ZXN0X2V4cGVj
dGF0aW9uc19maWxlXSwgZXhwZWN0YXRpb25zX2FmdGVyKQotCi0gICAgZGVmIHRlc3RfZW1wdHlf
ZXhwZWN0YXRpb25zKHNlbGYpOgotICAgICAgICBmYWlsdXJlX2luZm9fbGlzdCA9IFtdCi0gICAg
ICAgIGV4cGVjdGF0aW9uc19iZWZvcmUgPSAiIgotICAgICAgICBleHBlY3RhdGlvbnNfYWZ0ZXIg
PSAiIgotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGUoZmFpbHVyZV9pbmZvX2xpc3QsIGV4cGVj
dGF0aW9uc19iZWZvcmU9ZXhwZWN0YXRpb25zX2JlZm9yZSwgZXhwZWN0YXRpb25zX2FmdGVyPWV4
cGVjdGF0aW9uc19hZnRlcikKLQotICAgIGRlZiB0ZXN0X3Vua25vd25fYnVpbGRlcihzZWxmKToK
LSAgICAgICAgZmFpbHVyZV9pbmZvX2xpc3QgPSBbeyJ0ZXN0TmFtZSI6ICJmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS5odG1sIiwgImJ1aWxkZXJOYW1lIjogIkJvYiIsICJmYWlsdXJlVHlwZUxpc3Qi
OiBbIklNQUdFIl19XQotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGUoZmFpbHVyZV9pbmZvX2xp
c3QsIGV4cGVjdGVkX2V4Y2VwdGlvbj1LZXlFcnJvcikKLQotICAgIGRlZiB0ZXN0X2VtcHR5X2Zh
aWx1cmVfdHlwZV9saXN0KHNlbGYpOgotICAgICAgICBmYWlsdXJlX2luZm9fbGlzdCA9IFt7InRl
c3ROYW1lIjogImZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwiLCAiYnVpbGRlck5hbWUiOiAi
V2Via2l0IFdpbiIsICJmYWlsdXJlVHlwZUxpc3QiOiBbXX1dCi0gICAgICAgIHNlbGYuYXNzZXJ0
X3VwZGF0ZShmYWlsdXJlX2luZm9fbGlzdCwgZXhwZWN0ZWRfZXhjZXB0aW9uPUFzc2VydGlvbkVy
cm9yKQotCi0gICAgZGVmIHRlc3RfZW1wdHlfdGVzdF9uYW1lKHNlbGYpOgotICAgICAgICBmYWls
dXJlX2luZm9fbGlzdCA9IFt7InRlc3ROYW1lIjogIiIsICJidWlsZGVyTmFtZSI6ICJXZWJraXQg
V2luIiwgImZhaWx1cmVUeXBlTGlzdCI6IFsiVEVYVCJdfV0KLSAgICAgICAgc2VsZi5hc3NlcnRf
dXBkYXRlKGZhaWx1cmVfaW5mb19saXN0LCBleHBlY3RlZF9leGNlcHRpb249QXNzZXJ0aW9uRXJy
b3IpCi0KLSAgICBkZWYgdGVzdF91bmtub3duX2ZhaWx1cmVfdHlwZShzZWxmKToKLSAgICAgICAg
ZmFpbHVyZV9pbmZvX2xpc3QgPSBbeyJ0ZXN0TmFtZSI6ICJmYWlsdXJlcy9leHBlY3RlZC9pbWFn
ZS5odG1sIiwgImJ1aWxkZXJOYW1lIjogIldlYmtpdCBXaW4iLCAiZmFpbHVyZVR5cGVMaXN0Ijog
WyJJTUFHRSIsICJFWFBMT0RFIl19XQotICAgICAgICBleHBlY3RhdGlvbnNfYmVmb3JlID0gIiIK
LSAgICAgICAgZXhwZWN0YXRpb25zX2FmdGVyID0gIlxuQlVHX05FVyBYUCBSRUxFQVNFIDogZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIgotICAgICAgICBzZWxmLmFzc2VydF91
cGRhdGUoZmFpbHVyZV9pbmZvX2xpc3QsIGV4cGVjdGF0aW9uc19iZWZvcmU9ZXhwZWN0YXRpb25z
X2JlZm9yZSwgZXhwZWN0YXRpb25zX2FmdGVyPWV4cGVjdGF0aW9uc19hZnRlcikKLQotICAgIGRl
ZiB0ZXN0X2FkZF9uZXdfZXhwZWN0YXRpb24oc2VsZik6Ci0gICAgICAgIGZhaWx1cmVfaW5mb19s
aXN0ID0gW3sidGVzdE5hbWUiOiAiZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCIsICJidWls
ZGVyTmFtZSI6ICJXZWJraXQgV2luIiwgImZhaWx1cmVUeXBlTGlzdCI6IFsiSU1BR0UiXX1dCi0g
ICAgICAgIGV4cGVjdGF0aW9uc19iZWZvcmUgPSAiIgotICAgICAgICBleHBlY3RhdGlvbnNfYWZ0
ZXIgPSAiXG5CVUdfTkVXIFhQIFJFTEVBU0UgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1s
ID0gSU1BR0UiCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZShmYWlsdXJlX2luZm9fbGlzdCwg
ZXhwZWN0YXRpb25zX2JlZm9yZT1leHBlY3RhdGlvbnNfYmVmb3JlLCBleHBlY3RhdGlvbnNfYWZ0
ZXI9ZXhwZWN0YXRpb25zX2FmdGVyKQotCi0gICAgZGVmIHRlc3RfcmVwbGFjZV9vbGRfZXhwZWN0
YXRpb24oc2VsZik6Ci0gICAgICAgIGZhaWx1cmVfaW5mb19saXN0ID0gW3sidGVzdE5hbWUiOiAi
ZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCIsICJidWlsZGVyTmFtZSI6ICJXZWJraXQgV2lu
IiwgImZhaWx1cmVUeXBlTGlzdCI6IFsiSU1BR0UiXX1dCi0gICAgICAgIGV4cGVjdGF0aW9uc19i
ZWZvcmUgPSAiQlVHX09MRCBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRt
bCA9IFRFWFQiCi0gICAgICAgIGV4cGVjdGF0aW9uc19hZnRlciA9ICJCVUdfTkVXIFhQIFJFTEVB
U0UgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sID0gSU1BR0UiCi0gICAgICAgIHNlbGYu
YXNzZXJ0X3VwZGF0ZShmYWlsdXJlX2luZm9fbGlzdCwgZXhwZWN0YXRpb25zX2JlZm9yZT1leHBl
Y3RhdGlvbnNfYmVmb3JlLCBleHBlY3RhdGlvbnNfYWZ0ZXI9ZXhwZWN0YXRpb25zX2FmdGVyKQot
Ci0gICAgZGVmIHRlc3RfcGFzc19leHBlY3RhdGlvbihzZWxmKToKLSAgICAgICAgZmFpbHVyZV9p
bmZvX2xpc3QgPSBbeyJ0ZXN0TmFtZSI6ICJmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIiwg
ImJ1aWxkZXJOYW1lIjogIldlYmtpdCBXaW4iLCAiZmFpbHVyZVR5cGVMaXN0IjogWyJQQVNTIl19
XQotICAgICAgICBleHBlY3RhdGlvbnNfYmVmb3JlID0gIkJVR19PTEQgWFAgUkVMRUFTRSA6IGZh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBURVhUIgotICAgICAgICBleHBlY3RhdGlvbnNf
YWZ0ZXIgPSAiIgotICAgICAgICBzZWxmLmFzc2VydF91cGRhdGUoZmFpbHVyZV9pbmZvX2xpc3Qs
IGV4cGVjdGF0aW9uc19iZWZvcmU9ZXhwZWN0YXRpb25zX2JlZm9yZSwgZXhwZWN0YXRpb25zX2Fm
dGVyPWV4cGVjdGF0aW9uc19hZnRlcikKLQotICAgIGRlZiB0ZXN0X3N1cHBsZW1lbnRfb2xkX2V4
cGVjdGF0aW9uKHNlbGYpOgotICAgICAgICBmYWlsdXJlX2luZm9fbGlzdCA9IFt7InRlc3ROYW1l
IjogImZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwiLCAiYnVpbGRlck5hbWUiOiAiV2Via2l0
IFdpbiIsICJmYWlsdXJlVHlwZUxpc3QiOiBbIklNQUdFIl19XQotICAgICAgICBleHBlY3RhdGlv
bnNfYmVmb3JlID0gIkJVR19PTEQgWFAgUkVMRUFTRSA6ICBmYWlsdXJlcy9leHBlY3RlZC90ZXh0
Lmh0bWwgPSBURVhUIgotICAgICAgICBleHBlY3RhdGlvbnNfYWZ0ZXIgPSAoIkJVR19PTEQgWFAg
UkVMRUFTRSA6ICBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4iCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiQlVHX05FVyBYUCBSRUxFQVNFIDogZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIikKLSAgICAgICAgc2VsZi5hc3NlcnRfdXBkYXRlKGZh
aWx1cmVfaW5mb19saXN0LCBleHBlY3RhdGlvbnNfYmVmb3JlPWV4cGVjdGF0aW9uc19iZWZvcmUs
IGV4cGVjdGF0aW9uc19hZnRlcj1leHBlY3RhdGlvbnNfYWZ0ZXIpCi0KLSAgICBkZWYgdGVzdF9z
cHVyaW91c191cGRhdGVzKHNlbGYpOgotICAgICAgICBmYWlsdXJlX2luZm9fbGlzdCA9IFt7InRl
c3ROYW1lIjogImZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwiLCAiYnVpbGRlck5hbWUiOiAi
V2Via2l0IFdpbiIsICJmYWlsdXJlVHlwZUxpc3QiOiBbIklNQUdFIl19XQotICAgICAgICBleHBl
Y3RhdGlvbnNfYmVmb3JlID0gIkJVR19PTERFUiBNQUMgTElOVVggOiBmYWlsdXJlcy9leHBlY3Rl
ZC9pbWFnZS5odG1sID0gSU1BR0UrVEVYVFxuQlVHX09MRCBYUCBSRUxFQVNFIDogIGZhaWx1cmVz
L2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBURVhUIgotICAgICAgICBleHBlY3RhdGlvbnNfYWZ0ZXIg
PSAiQlVHX09MREVSIE1BQyBMSU5VWCA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJ
TUFHRStURVhUXG5CVUdfTkVXIFhQIFJFTEVBU0UgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5o
dG1sID0gSU1BR0UiCi0gICAgICAgIHNlbGYuYXNzZXJ0X3VwZGF0ZShmYWlsdXJlX2luZm9fbGlz
dCwgZXhwZWN0YXRpb25zX2JlZm9yZT1leHBlY3RhdGlvbnNfYmVmb3JlLCBleHBlY3RhdGlvbnNf
YWZ0ZXI9ZXhwZWN0YXRpb25zX2FmdGVyKQotCi0KIGNsYXNzIEdhcmRlbmluZ1NlcnZlclRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfcG9zdF90b19wYXRoKHNlbGYsIHBhdGgsIGJv
ZHk9Tm9uZSwgZXhwZWN0ZWRfc3RkZXJyPU5vbmUsIGV4cGVjdGVkX3N0ZG91dD1Ob25lLCBzZXJ2
ZXI9Tm9uZSk6CiAgICAgICAgIGhhbmRsZXIgPSBUZXN0R2FyZGVuaW5nSFRUUFJlcXVlc3RIYW5k
bGVyKHNlcnZlciBvciBNb2NrU2VydmVyKCkpCkBAIC0yMDMsOCArMTMwLDMgQEAgY2xhc3MgR2Fy
ZGVuaW5nU2VydmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGV4cGVjdGVkX3N0
ZGVyciA9ICdNT0NLIHJ1bl9jb21tYW5kOiBbXCdlY2hvXCcsIFwncmViYXNlbGluZS1qc29uXCdd
LCBjd2Q9L21vY2stY2hlY2tvdXQsIGlucHV0PXsidXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIjp7Ik1PQ0sgYnVpbGRlciI6IFsidHh0IiwicG5nIl19fVxuJwogICAgICAgICBleHBlY3Rl
ZF9zdGRvdXQgPSAiPT0gQmVnaW4gUmVzcG9uc2UgPT1cbnN1Y2Nlc3Ncbj09IEVuZCBSZXNwb25z
ZSA9PVxuIgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yZWJhc2VsaW5lYWxsIiwgYm9k
eT0neyJ1c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiOnsiTU9DSyBidWlsZGVyIjogWyJ0
eHQiLCJwbmciXX19JywgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRf
c3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKLQotICAgIGRlZiB0ZXN0X3VwZGF0ZWV4cGVjdGF0aW9u
cyhzZWxmKToKLSAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIiIKLSAgICAgICAgZXhwZWN0ZWRf
c3Rkb3V0ID0gIj09IEJlZ2luIFJlc3BvbnNlID09XG5zdWNjZXNzXG49PSBFbmQgUmVzcG9uc2Ug
PT1cbiIKLSAgICAgICAgc2VsZi5fcG9zdF90b19wYXRoKCIvdXBkYXRlZXhwZWN0YXRpb25zIiwg
Ym9keT0iW10iLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyLCBleHBlY3RlZF9zdGRv
dXQ9ZXhwZWN0ZWRfc3Rkb3V0KQo=
</data>
<flag name="review"
          id="175245"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>