<?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>104871</bug_id>
          
          <creation_ts>2012-12-12 18:40:06 -0800</creation_ts>
          <short_desc>webkitpy: rename ResultSummary</short_desc>
          <delta_ts>2012-12-13 12:09:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103824</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>790182</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-12 18:40:06 -0800</bug_when>
    <thetext>webkitpy: rename ResultSummary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790190</commentid>
    <comment_count>1</comment_count>
      <attachid>179179</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-12 18:46:46 -0800</bug_when>
    <thetext>Created attachment 179179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790207</commentid>
    <comment_count>2</comment_count>
      <attachid>179179</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-12 19:26:13 -0800</bug_when>
    <thetext>Comment on attachment 179179
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790766</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-13 11:06:53 -0800</bug_when>
    <thetext>Committed r137621: &lt;http://trac.webkit.org/changeset/137621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790806</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-12-13 12:01:29 -0800</bug_when>
    <thetext>Bots are failing with this:

AttributeError raised: &apos;RunDetails&apos; object has no attribute &apos;run_results&apos;
Traceback (most recent call last):
  File &quot;/home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 410, in main
    bot_printer.print_results(run_details)
  File &quot;/home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Tools/Scripts/webkitpy/layout_tests/views/buildbot_results.py&quot;, line 51, in print_results
    self.print_run_results(run_details.run_results)
AttributeError: &apos;RunDetails&apos; object has no attribute &apos;run_results&apos;
Failed to execute Tools/Scripts/new-run-webkit-tests at ./Tools/Scripts/run-webkit-tests line 126.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790808</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-13 12:09:44 -0800</bug_when>
    <thetext>Yeah, sorry. Fixed in http://trac.webkit.org/changeset/137634 (missed one variable rename; the patch adds a test for it).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179179</attachid>
            <date>2012-12-12 18:46:46 -0800</date>
            <delta_ts>2012-12-12 19:26:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104871-20121212184407.patch</filename>
            <type>text/plain</type>
            <size>67226</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTI4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmFiN2RhM2I1ODZlNTY3NDFkNDBkMmI2NjYxMDI0ZWNm
ZGQ0ZjNhOS4uY2I4ZDU1MGYxOTcxYzUwZDU4YzA3YzgxMzc3OTA0YmI4MmNiM2U1ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0
IEBACisyMDEyLTEyLTEyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiByZW5hbWUgUmVzdWx0U3VtbWFyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBuYW1l
cyBvZiBSZXN1bHRTdW1tYXJ5IGFuZCByZWxhdGVkIG1vZHVsZXMsCisgICAgICAgIGNsYXNzZXMs
IGFuZCB2YXJpYWJsZXMgYXMgYSBwYXJ0IG9mIHRoZSBsYXJnZXIgY2xlYW4gdXAgaW4gYnVnIDEw
MzgyNC4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBiYXNpY2FsbHkgYSBidW5jaCBvZiBzZWFy
Y2ggYW5kIHJlcGxhY2VzOgorICAgICAgICAtIHJlc3VsdF9zdW1tYXJ5LnB5IC0+IHRlc3RfcnVu
X3Jlc3VsdHMucHkKKyAgICAgICAgLSBjbGFzcyBSZXN1bHRTdW1tYXJ5IC0+IGNsYXNzIFRlc3RS
dW5SZXN1bHRzCisgICAgICAgIC0gInJlc3VsdF9zdW1tYXJ5IiBvciAicnMiIGFzIGEgZ2VuZXJp
YyB2YXJpYWJsZSBuYW1lIC0+ICJydW5fcmVzdWx0cyIsCisgICAgICAgICAgd2hlbiBpdCBkb2Vz
bid0IG1hdHRlciAob3Igd2UgZG9uJ3Qga25vdykgaWYgdGhpcyByZWZlcnMgdG8gdGhlCisgICAg
ICAgICAgaW5pdGlhbCBwYXNzIG92ZXIgdGhlIHRlc3RzIG9yIHRoZSByZXRyeSBwYXNzLgorICAg
ICAgICAtICJyZXN1bHRfc3VtbWFyeSIgYXMgYSB2YXJpYWJsZSBjb250YWluaW5nIHRoZSByZXN1
bHRzIG9mIHRoZSBpbml0aWFsLAorICAgICAgICAgIGNvbXBsZXRlIHRlc3QgcnVuIC0+ICJpbml0
aWFsX3Jlc3VsdHMiCisgICAgICAgIC0gInJldHJ5X3N1bW1hcnkiIGFzIGEgdmFyaWFibGUgY29u
dGFpbmluZyB0aGUgcmVzdWx0cyBvZiByZXRyaWVkCisgICAgICAgICAgcmVzdWx0cyAtPiAicmV0
cnlfcmVzdWx0cyIKKyAgICAgICAgLSBSZXN1bHRTdW1tYXJ5LnJlc3VsdHMgKHRoZSBwcm9wZXJ0
eSkgLT4gVGVzdFJ1blJlc3VsdHMucmVzdWx0c19ieV9uYW1lCisgICAgICAgIC0gUmVzdWx0U3Vt
bWFyeS5mYWlsdXJlcyAodGhlIHByb3BlcnR5KSAtPiBUZXN0UnVuUmVzdWx0cy5mYWlsdXJlc19i
eV9uYW1lCisgICAgICAgIC0gUnVuRGV0YWlscy5yZXN1bHRfc3VtbWFyeSAtPiBSdW5EZXRhaWxz
LmluaXRpYWxfcmVzdWx0cworICAgICAgICAtIFJ1bkRldGFpbHMucmV0cnlfc3VtbWFyeSAtPiBS
dW5EZXRhaWxzLnJldHJ5X3Jlc3VsdHMKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKExh
eW91dFRlc3RSdW5uZXIuX19pbml0X18pOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5ydW5f
dGVzdHMpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fbWFya19pbnRlcnJ1cHRlZF90ZXN0
c19hc19za2lwcGVkKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2ludGVycnVwdF9pZl9h
dF9mYWlsdXJlX2xpbWl0cyk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl9pbnRlcnJ1cHRf
aWZfYXRfZmFpbHVyZV9saW1pdHMuaW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXQpOgorICAg
ICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAg
ICAgICAoTGF5b3V0VGVzdFJ1bm5lci5faGFuZGxlX2ZpbmlzaGVkX3Rlc3QpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1
bm5lcl91bml0dGVzdC5weToKKyAgICAgICAgKEZha2VQcmludGVyLnByaW50X2V4cGVjdGVkKToK
KyAgICAgICAgKExheW91dFRlc3RSdW5uZXJUZXN0cy50ZXN0X2ludGVycnVwdF9pZl9hdF9mYWls
dXJlX2xpbWl0cyk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyVGVzdHMudGVzdF91cGRhdGVf
c3VtbWFyeV93aXRoX3Jlc3VsdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKFJ1bkRldGFpbHMuX19pbml0
X18pOgorICAgICAgICAoc3VtbWFyaXplX3Jlc3VsdHMpOgorICAgICAgICAoTWFuYWdlci5ydW4p
OgorICAgICAgICAoTWFuYWdlci5fbG9va19mb3JfbmV3X2NyYXNoX2xvZ3MpOgorICAgICAgICAo
TWFuYWdlci5fdGVzdHNfdG9fcmV0cnkpOgorICAgICAgICAoTWFuYWdlci5fdXBsb2FkX2pzb25f
ZmlsZXMpOgorICAgICAgICAoTWFuYWdlci5fc3RhdHNfdHJpZSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weToK
KyAgICAgICAgKE1hbmFnZXJUZXN0LnRlc3RfbG9va19mb3JfbmV3X2NyYXNoX2xvZ3MpOgorICAg
ICAgICAoU3VtbWFyaXplUmVzdWx0c1Rlc3QpOgorICAgICAgICAoU3VtbWFyaXplUmVzdWx0c1Rl
c3QuZ2V0X3J1bl9yZXN1bHRzKToKKyAgICAgICAgKFN1bW1hcml6ZVJlc3VsdHNUZXN0LnN1bW1h
cml6ZWRfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IucHk6CisgICAgICAg
IChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvci5fX2luaXRfXyk6CisgICAgICAgIChKU09OTGF5
b3V0UmVzdWx0c0dlbmVyYXRvci5fZ2V0X21vZGlmaWVyX2NoYXIpOgorICAgICAgICAoSlNPTkxh
eW91dFJlc3VsdHNHZW5lcmF0b3IuX2luc2VydF9mYWlsdXJlX3N1bW1hcmllcyk6CisgICAgICAg
IChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvci5fZ2V0X2ZhaWx1cmVfc3VtbWFyeV9lbnRyeSk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVu
X3Jlc3VsdHMucHk6IFJlbmFtZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1hcnkucHkuCisgICAgICAgIChUZXN0UnVuUmVzdWx0cyk6
CisgICAgICAgIChUZXN0UnVuUmVzdWx0cy5fX2luaXRfXyk6CisgICAgICAgIChUZXN0UnVuUmVz
dWx0cy5hZGQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAgICAoZ2V0X3Rlc3RfcmVzdWx0
cyk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X2Jhc2ljKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5OgorICAgICAgICAo
QnVpbGRCb3RQcmludGVyLnByaW50X3Jlc3VsdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVy
LnByaW50X3J1bl9yZXN1bHRzKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlci5fcHJpbnRfcnVu
X3Jlc3VsdHNfZW50cnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgIChCdWlsZEJvdFBy
aW50ZXJUZXN0cy5nZXRfcnVuX3Jlc3VsdHMpOgorICAgICAgICAoQnVpbGRCb3RQcmludGVyVGVz
dHMudGVzdF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6
CisgICAgICAgIChCdWlsZEJvdFByaW50ZXJUZXN0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHk6CisgICAgICAgIChQcmludGVyLnBy
aW50X2V4cGVjdGVkKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNf
b2ZfdHlwZSk6CisgICAgICAgIChQcmludGVyLnByaW50X3Jlc3VsdHMpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
d29ya2VyX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfYWdncmVnYXRlX3Rl
c3Rfc3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9pbmRpdmlkdWFsX3Rlc3Rf
dGltZXMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3MpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0
ZXN0LnB5OgorCiAyMDEyLTEyLTEyICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcnVuLXBlcmYtdGVzdHMgLS1jaHJvbWl1bS1hbmRyb2lk
IC0tcHJvZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CmluZGV4
IDgyYzhjYWE3MWQ2YjY4YjZhZGVkN2Y3MTRhOWMwNzM0NjRiYWM0ZmMuLjVmOWEzMjQ3MWJhZDFl
ZjU2MmM5NmYyOTcxOWQxZjM0OWQ4NTAyZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHkKQEAgLTMzLDcgKzMzLDcgQEAgaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24gaW1wb3J0IG1lc3NhZ2VfcG9vbAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMuY29udHJvbGxlcnMgaW1wb3J0IHNpbmdsZV90ZXN0X3J1bm5lcgotZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzLnJlc3VsdF9zdW1tYXJ5IGltcG9ydCBSZXN1bHRTdW1tYXJ5Citm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9ydW5fcmVzdWx0cyBpbXBvcnQg
VGVzdFJ1blJlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQg
dGVzdF9leHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBv
cnQgdGVzdF9mYWlsdXJlcwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X3Jlc3VsdHMKQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihv
YmplY3QpOgogICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gTm9uZQogICAgICAgICBz
ZWxmLl9yZXRyeWluZyA9IEZhbHNlCiAKLSAgICAgICAgc2VsZi5fY3VycmVudF9yZXN1bHRfc3Vt
bWFyeSA9IE5vbmUKKyAgICAgICAgc2VsZi5fY3VycmVudF9ydW5fcmVzdWx0cyA9IE5vbmUKICAg
ICAgICAgc2VsZi5fcmVtYWluaW5nX2xvY2tlZF9zaGFyZHMgPSBbXQogICAgICAgICBzZWxmLl9o
YXNfaHR0cF9sb2NrID0gRmFsc2UKIApAQCAtODcsMjAgKzg3LDIxIEBAIGNsYXNzIExheW91dFRl
c3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyA9IG5lZWRz
X3dlYnNvY2tldHMKICAgICAgICAgc2VsZi5fcmV0cnlpbmcgPSByZXRyeWluZwogCi0gICAgICAg
IHJlc3VsdF9zdW1tYXJ5ID0gUmVzdWx0U3VtbWFyeShzZWxmLl9leHBlY3RhdGlvbnMsIGxlbih0
ZXN0X2lucHV0cykgKyBsZW4odGVzdHNfdG9fc2tpcCkpCi0gICAgICAgIHNlbGYuX2N1cnJlbnRf
cmVzdWx0X3N1bW1hcnkgPSByZXN1bHRfc3VtbWFyeQorICAgICAgICAjIEZJWE1FOiByZW5hbWUg
YWxsIHZhcmlhYmxlcyB0byB0ZXN0X3J1bl9yZXN1bHRzIG9yIHNvbWUgc3VjaCAuLi4KKyAgICAg
ICAgcnVuX3Jlc3VsdHMgPSBUZXN0UnVuUmVzdWx0cyhzZWxmLl9leHBlY3RhdGlvbnMsIGxlbih0
ZXN0X2lucHV0cykgKyBsZW4odGVzdHNfdG9fc2tpcCkpCisgICAgICAgIHNlbGYuX2N1cnJlbnRf
cnVuX3Jlc3VsdHMgPSBydW5fcmVzdWx0cwogICAgICAgICBzZWxmLl9yZW1haW5pbmdfbG9ja2Vk
X3NoYXJkcyA9IFtdCiAgICAgICAgIHNlbGYuX2hhc19odHRwX2xvY2sgPSBGYWxzZQogICAgICAg
ICBzZWxmLl9wcmludGVyLm51bV90ZXN0cyA9IGxlbih0ZXN0X2lucHV0cykKICAgICAgICAgc2Vs
Zi5fcHJpbnRlci5udW1fY29tcGxldGVkID0gMAogCiAgICAgICAgIGlmIG5vdCByZXRyeWluZzoK
LSAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfZXhwZWN0ZWQocmVzdWx0X3N1bW1hcnks
IHNlbGYuX2V4cGVjdGF0aW9ucy5nZXRfdGVzdHNfd2l0aF9yZXN1bHRfdHlwZSkKKyAgICAgICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfZXhwZWN0ZWQocnVuX3Jlc3VsdHMsIHNlbGYuX2V4cGVj
dGF0aW9ucy5nZXRfdGVzdHNfd2l0aF9yZXN1bHRfdHlwZSkKIAogICAgICAgICBmb3IgdGVzdF9u
YW1lIGluIHNldCh0ZXN0c190b19za2lwKToKICAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RfcmVz
dWx0cy5UZXN0UmVzdWx0KHRlc3RfbmFtZSkKICAgICAgICAgICAgIHJlc3VsdC50eXBlID0gdGVz
dF9leHBlY3RhdGlvbnMuU0tJUAotICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuYWRkKHJlc3Vs
dCwgZXhwZWN0ZWQ9VHJ1ZSwgdGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X25h
bWUpKQorICAgICAgICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQ9VHJ1ZSwg
dGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X25hbWUpKQogCiAgICAgICAgIHNl
bGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTaGFyZGluZyB0ZXN0cyAuLi4nKQogICAgICAgICBs
b2NrZWRfc2hhcmRzLCB1bmxvY2tlZF9zaGFyZHMgPSBzZWxmLl9zaGFyZGVyLnNoYXJkX3Rlc3Rz
KHRlc3RfaW5wdXRzLCBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpLCBzZWxmLl9v
cHRpb25zLmZ1bGx5X3BhcmFsbGVsKQpAQCAtMTIyLDcgKzEyMyw3IEBAIGNsYXNzIExheW91dFRl
c3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF93b3JrZXJzX2Fu
ZF9zaGFyZHMobnVtX3dvcmtlcnMsIGxlbihhbGxfc2hhcmRzKSwgbGVuKGxvY2tlZF9zaGFyZHMp
KQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHRfc3VtbWFyeQorICAgICAgICAgICAgcmV0dXJuIHJ1bl9yZXN1bHRzCiAKICAgICAg
ICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nICVzIC4uLicgJSBncmFtbWFy
LnBsdXJhbGl6ZSgnd29ya2VyJywgbnVtX3dvcmtlcnMpKQogCkBAIC0xMzEsNyArMTMyLDcgQEAg
Y2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHBvb2wucnVu
KCgndGVzdF9saXN0Jywgc2hhcmQubmFtZSwgc2hhcmQudGVzdF9pbnB1dHMpIGZvciBzaGFyZCBp
biBhbGxfc2hhcmRzKQogICAgICAgICBleGNlcHQgVGVzdFJ1bkludGVycnVwdGVkRXhjZXB0aW9u
LCBlOgogICAgICAgICAgICAgX2xvZy53YXJuaW5nKGUucmVhc29uKQotICAgICAgICAgICAgcmVz
dWx0X3N1bW1hcnkuaW50ZXJydXB0ZWQgPSBUcnVlCisgICAgICAgICAgICBydW5fcmVzdWx0cy5p
bnRlcnJ1cHRlZCA9IFRydWUKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAg
ICAgICAgICAgc2VsZi5fcHJpbnRlci5mbHVzaCgpCiAgICAgICAgICAgICBzZWxmLl9wcmludGVy
LndyaXRlbG4oJ0ludGVycnVwdGVkLCBleGl0aW5nIC4uLicpCkBAIC0xNDIsNyArMTQzLDcgQEAg
Y2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBmaW5hbGx5OgogICAgICAg
ICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAotICAgICAgICByZXR1cm4gcmVz
dWx0X3N1bW1hcnkKKyAgICAgICAgcmV0dXJuIHJ1bl9yZXN1bHRzCiAKICAgICBkZWYgX3dvcmtl
cl9mYWN0b3J5KHNlbGYsIHdvcmtlcl9jb25uZWN0aW9uKToKICAgICAgICAgcmVzdWx0c19kaXJl
Y3RvcnkgPSBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeQpAQCAtMTUxLDM3ICsxNTIsMzcgQEAgY2xh
c3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgcmVzdWx0c19kaXJlY3Rv
cnkgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksICdyZXRy
aWVzJykKICAgICAgICAgcmV0dXJuIFdvcmtlcih3b3JrZXJfY29ubmVjdGlvbiwgcmVzdWx0c19k
aXJlY3RvcnksIHNlbGYuX29wdGlvbnMpCiAKLSAgICBkZWYgX21hcmtfaW50ZXJydXB0ZWRfdGVz
dHNfYXNfc2tpcHBlZChzZWxmLCByZXN1bHRfc3VtbWFyeSk6CisgICAgZGVmIF9tYXJrX2ludGVy
cnVwdGVkX3Rlc3RzX2FzX3NraXBwZWQoc2VsZiwgcnVuX3Jlc3VsdHMpOgogICAgICAgICBmb3Ig
dGVzdF9pbnB1dCBpbiBzZWxmLl90ZXN0X2lucHV0czoKLSAgICAgICAgICAgIGlmIHRlc3RfaW5w
dXQudGVzdF9uYW1lIG5vdCBpbiByZXN1bHRfc3VtbWFyeS5yZXN1bHRzOgorICAgICAgICAgICAg
aWYgdGVzdF9pbnB1dC50ZXN0X25hbWUgbm90IGluIHJ1bl9yZXN1bHRzLnJlc3VsdHNfYnlfbmFt
ZToKICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0
X2lucHV0LnRlc3RfbmFtZSwgW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUVhcmx5RXhpdCgpXSkKICAg
ICAgICAgICAgICAgICAjIEZJWE1FOiBXZSBwcm9iYWJseSBuZWVkIHRvIGxvb3AgaGVyZSBpZiB0
aGVyZSBhcmUgbXVsdGlwbGUgaXRlcmF0aW9ucy4KICAgICAgICAgICAgICAgICAjIEZJWE1FOiBB
bHNvLCB0aGVzZSByZXN1bHRzIGFyZSByZWFsbHkgbmVpdGhlciBleHBlY3RlZCBub3IgdW5leHBl
Y3RlZC4gV2UgcHJvYmFibHkKICAgICAgICAgICAgICAgICAjIG5lZWQgYSB0aGlyZCB0eXBlIG9m
IHJlc3VsdC4KLSAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQocmVzdWx0LCBleHBl
Y3RlZD1GYWxzZSwgdGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X2lucHV0LnRl
c3RfbmFtZSkpCisgICAgICAgICAgICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0
ZWQ9RmFsc2UsIHRlc3RfaXNfc2xvdz1zZWxmLl90ZXN0X2lzX3Nsb3codGVzdF9pbnB1dC50ZXN0
X25hbWUpKQogCi0gICAgZGVmIF9pbnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMoc2VsZiwg
cmVzdWx0X3N1bW1hcnkpOgorICAgIGRlZiBfaW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRz
KHNlbGYsIHJ1bl9yZXN1bHRzKToKICAgICAgICAgIyBOb3RlOiBUaGUgbWVzc2FnZXMgaW4gdGhp
cyBtZXRob2QgYXJlIGNvbnN0cnVjdGVkIHRvIG1hdGNoIG9sZC1ydW4td2Via2l0LXRlc3RzCiAg
ICAgICAgICMgc28gdGhhdCBleGlzdGluZyBidWlsZGJvdCBncmVwIHJ1bGVzIHdvcmsuCi0gICAg
ICAgIGRlZiBpbnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdChsaW1pdCwgZmFpbHVyZV9jb3Vu
dCwgcmVzdWx0X3N1bW1hcnksIG1lc3NhZ2UpOgorICAgICAgICBkZWYgaW50ZXJydXB0X2lmX2F0
X2ZhaWx1cmVfbGltaXQobGltaXQsIGZhaWx1cmVfY291bnQsIHJ1bl9yZXN1bHRzLCBtZXNzYWdl
KToKICAgICAgICAgICAgIGlmIGxpbWl0IGFuZCBmYWlsdXJlX2NvdW50ID49IGxpbWl0OgotICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiAlZCB0ZXN0cyBydW4uIiAlIChyZXN1bHRfc3VtbWFy
eS5leHBlY3RlZCArIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQpCi0gICAgICAgICAgICAgICAg
c2VsZi5fbWFya19pbnRlcnJ1cHRlZF90ZXN0c19hc19za2lwcGVkKHJlc3VsdF9zdW1tYXJ5KQor
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiAlZCB0ZXN0cyBydW4uIiAlIChydW5fcmVzdWx0
cy5leHBlY3RlZCArIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fbWFya19pbnRlcnJ1cHRlZF90ZXN0c19hc19za2lwcGVkKHJ1bl9yZXN1bHRzKQogICAgICAg
ICAgICAgICAgIHJhaXNlIFRlc3RSdW5JbnRlcnJ1cHRlZEV4Y2VwdGlvbihtZXNzYWdlKQogCiAg
ICAgICAgIGludGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0KAogICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5leGl0X2FmdGVyX25fZmFpbHVyZXMsCi0gICAgICAgICAgICByZXN1bHRfc3VtbWFy
eS51bmV4cGVjdGVkX2ZhaWx1cmVzLAotICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnksCi0gICAg
ICAgICAgICAiRXhpdGluZyBlYXJseSBhZnRlciAlZCBmYWlsdXJlcy4iICUgcmVzdWx0X3N1bW1h
cnkudW5leHBlY3RlZF9mYWlsdXJlcykKKyAgICAgICAgICAgIHJ1bl9yZXN1bHRzLnVuZXhwZWN0
ZWRfZmFpbHVyZXMsCisgICAgICAgICAgICBydW5fcmVzdWx0cywKKyAgICAgICAgICAgICJFeGl0
aW5nIGVhcmx5IGFmdGVyICVkIGZhaWx1cmVzLiIgJSBydW5fcmVzdWx0cy51bmV4cGVjdGVkX2Zh
aWx1cmVzKQogICAgICAgICBpbnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdCgKICAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuZXhpdF9hZnRlcl9uX2NyYXNoZXNfb3JfdGltZW91dHMsCi0gICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkX2NyYXNoZXMgKyByZXN1bHRfc3VtbWFy
eS51bmV4cGVjdGVkX3RpbWVvdXRzLAotICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnksCisgICAg
ICAgICAgICBydW5fcmVzdWx0cy51bmV4cGVjdGVkX2NyYXNoZXMgKyBydW5fcmVzdWx0cy51bmV4
cGVjdGVkX3RpbWVvdXRzLAorICAgICAgICAgICAgcnVuX3Jlc3VsdHMsCiAgICAgICAgICAgICAj
IFRoaXMgZGlmZmVycyBmcm9tIE9SV1QgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbmNsdWRlIFdlYlBy
b2Nlc3MgY3Jhc2hlcy4KLSAgICAgICAgICAgICJFeGl0aW5nIGVhcmx5IGFmdGVyICVkIGNyYXNo
ZXMgYW5kICVkIHRpbWVvdXRzLiIgJSAocmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZF9jcmFzaGVz
LCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkX3RpbWVvdXRzKSkKKyAgICAgICAgICAgICJFeGl0
aW5nIGVhcmx5IGFmdGVyICVkIGNyYXNoZXMgYW5kICVkIHRpbWVvdXRzLiIgJSAocnVuX3Jlc3Vs
dHMudW5leHBlY3RlZF9jcmFzaGVzLCBydW5fcmVzdWx0cy51bmV4cGVjdGVkX3RpbWVvdXRzKSkK
IAotICAgIGRlZiBfdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQoc2VsZiwgcmVzdWx0X3N1bW1h
cnksIHJlc3VsdCk6CisgICAgZGVmIF91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChzZWxmLCBy
dW5fcmVzdWx0cywgcmVzdWx0KToKICAgICAgICAgaWYgcmVzdWx0LnR5cGUgPT0gdGVzdF9leHBl
Y3RhdGlvbnMuU0tJUDoKICAgICAgICAgICAgIGV4cF9zdHIgPSBnb3Rfc3RyID0gJ1NLSVAnCiAg
ICAgICAgICAgICBleHBlY3RlZCA9IFRydWUKQEAgLTE5MCwxMSArMTkxLDExIEBAIGNsYXNzIExh
eW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgIGV4cF9zdHIgPSBzZWxmLl9leHBl
Y3RhdGlvbnMuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcocmVzdWx0LnRlc3RfbmFtZSkKICAgICAg
ICAgICAgIGdvdF9zdHIgPSBzZWxmLl9leHBlY3RhdGlvbnMuZXhwZWN0YXRpb25fdG9fc3RyaW5n
KHJlc3VsdC50eXBlKQogCi0gICAgICAgIHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQsIGV4cGVj
dGVkLCBzZWxmLl90ZXN0X2lzX3Nsb3cocmVzdWx0LnRlc3RfbmFtZSkpCisgICAgICAgIHJ1bl9y
ZXN1bHRzLmFkZChyZXN1bHQsIGV4cGVjdGVkLCBzZWxmLl90ZXN0X2lzX3Nsb3cocmVzdWx0LnRl
c3RfbmFtZSkpCiAKICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9maW5pc2hlZF90ZXN0KHJl
c3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIpCiAKLSAgICAgICAgc2VsZi5faW50ZXJy
dXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRzKHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBzZWxmLl9p
bnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMocnVuX3Jlc3VsdHMpCiAKICAgICBkZWYgc3Rh
cnRfc2VydmVyc193aXRoX2xvY2soc2VsZiwgbnVtYmVyX29mX3NlcnZlcnMpOgogICAgICAgICBz
ZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQpAQCAt
MjQyLDcgKzI0Myw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQogCiAgICAgZGVmIF9oYW5kbGVf
ZmluaXNoZWRfdGVzdChzZWxmLCB3b3JrZXJfbmFtZSwgcmVzdWx0LCBsb2dfbWVzc2FnZXM9W10p
OgotICAgICAgICBzZWxmLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChzZWxmLl9jdXJyZW50
X3Jlc3VsdF9zdW1tYXJ5LCByZXN1bHQpCisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5X3dp
dGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcnVuX3Jlc3VsdHMsIHJlc3VsdCkKIAogCiBjbGFzcyBX
b3JrZXIob2JqZWN0KToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1
bm5lcl91bml0dGVzdC5weQppbmRleCAzYThkNzVjZDViZmY5MjNkMTU4ZWU5MTJkNzFlZTBlNDMx
NTA2YzI4Li5jODZlOWEyOTkxZGQ4MjNmN2JlYmIwY2E2NGUxNDFlOTI5ODZmYmEzIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlv
dXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5CkBA
IC0zNSw3ICszNSw3IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBydW5fd2Vi
a2l0X3Rlc3RzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5sYXlvdXRf
dGVzdF9ydW5uZXIgaW1wb3J0IExheW91dFRlc3RSdW5uZXIsIFNoYXJkZXIsIFRlc3RSdW5JbnRl
cnJ1cHRlZEV4Y2VwdGlvbgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGlt
cG9ydCB0ZXN0X2ZhaWx1cmVzCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMucmVz
dWx0X3N1bW1hcnkgaW1wb3J0IFJlc3VsdFN1bW1hcnkKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVscy50ZXN0X3J1bl9yZXN1bHRzIGltcG9ydCBUZXN0UnVuUmVzdWx0cwogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfaW5wdXQgaW1wb3J0IFRlc3RJbnB1dAog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfcmVzdWx0cyBpbXBvcnQgVGVz
dFJlc3VsdAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC50ZXN0IGltcG9ydCBUZXN0
UG9ydApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBGYWtlUHJpbnRlcihvYmplY3QpOgogICAgIG51
bV9jb21wbGV0ZWQgPSAwCiAgICAgbnVtX3Rlc3RzID0gMAogCi0gICAgZGVmIHByaW50X2V4cGVj
dGVkKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCBnZXRfdGVzdHNfd2l0aF9yZXN1bHRfdHlwZSk6Cisg
ICAgZGVmIHByaW50X2V4cGVjdGVkKHNlbGYsIHJ1bl9yZXN1bHRzLCBnZXRfdGVzdHNfd2l0aF9y
ZXN1bHRfdHlwZSk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBwcmludF93b3JrZXJzX2FuZF9z
aGFyZHMoc2VsZiwgbnVtX3dvcmtlcnMsIG51bV9zaGFyZHMsIG51bV9sb2NrZWRfc2hhcmRzKToK
QEAgLTEyMiwyNyArMTIyLDI3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHRlc3RfbmFtZXMgPSBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAn
cGFzc2VzL2ltYWdlLmh0bWwnXQogICAgICAgICBydW5uZXIuX3Rlc3RfaW5wdXRzID0gW1Rlc3RJ
bnB1dCh0ZXN0X25hbWUsIDYwMDApIGZvciB0ZXN0X25hbWUgaW4gdGVzdF9uYW1lc10KIAotICAg
ICAgICByZXN1bHRfc3VtbWFyeSA9IFJlc3VsdFN1bW1hcnkoVGVzdEV4cGVjdGF0aW9ucyhydW5u
ZXIuX3BvcnQsIHRlc3RfbmFtZXMpLCBsZW4odGVzdF9uYW1lcykpCi0gICAgICAgIHJlc3VsdF9z
dW1tYXJ5LnVuZXhwZWN0ZWRfZmFpbHVyZXMgPSAxMDAKLSAgICAgICAgcmVzdWx0X3N1bW1hcnku
dW5leHBlY3RlZF9jcmFzaGVzID0gNTAKLSAgICAgICAgcmVzdWx0X3N1bW1hcnkudW5leHBlY3Rl
ZF90aW1lb3V0cyA9IDUwCisgICAgICAgIHJ1bl9yZXN1bHRzID0gVGVzdFJ1blJlc3VsdHMoVGVz
dEV4cGVjdGF0aW9ucyhydW5uZXIuX3BvcnQsIHRlc3RfbmFtZXMpLCBsZW4odGVzdF9uYW1lcykp
CisgICAgICAgIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWRfZmFpbHVyZXMgPSAxMDAKKyAgICAgICAg
cnVuX3Jlc3VsdHMudW5leHBlY3RlZF9jcmFzaGVzID0gNTAKKyAgICAgICAgcnVuX3Jlc3VsdHMu
dW5leHBlY3RlZF90aW1lb3V0cyA9IDUwCiAgICAgICAgICMgTm8gZXhjZXB0aW9uIHdoZW4gdGhl
IGV4aXRfYWZ0ZXIqIG9wdGlvbnMgYXJlIE5vbmUuCi0gICAgICAgIHJ1bm5lci5faW50ZXJydXB0
X2lmX2F0X2ZhaWx1cmVfbGltaXRzKHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBydW5uZXIuX2lu
dGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhydW5fcmVzdWx0cykKIAogICAgICAgICAjIE5v
IGV4Y2VwdGlvbiB3aGVuIHdlIGhhdmVuJ3QgaGl0IHRoZSBsaW1pdCB5ZXQuCiAgICAgICAgIHJ1
bm5lci5fb3B0aW9ucy5leGl0X2FmdGVyX25fZmFpbHVyZXMgPSAxMDEKICAgICAgICAgcnVubmVy
Ll9vcHRpb25zLmV4aXRfYWZ0ZXJfbl9jcmFzaGVzX29yX3RpbWVvdXRzID0gMTAxCi0gICAgICAg
IHJ1bm5lci5faW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRzKHJlc3VsdF9zdW1tYXJ5KQor
ICAgICAgICBydW5uZXIuX2ludGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhydW5fcmVzdWx0
cykKIAogICAgICAgICAjIEludGVycnVwdCBpZiB3ZSd2ZSBleGNlZWRlZCBlaXRoZXIgbGltaXQ6
CiAgICAgICAgIHJ1bm5lci5fb3B0aW9ucy5leGl0X2FmdGVyX25fY3Jhc2hlc19vcl90aW1lb3V0
cyA9IDEwCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFRlc3RSdW5JbnRlcnJ1cHRlZEV4Y2Vw
dGlvbiwgcnVubmVyLl9pbnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMsIHJlc3VsdF9zdW1t
YXJ5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHNbJ3Bh
c3Nlcy90ZXh0Lmh0bWwnXS50eXBlLCB0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHNbJ3Bhc3Nlcy9pbWFnZS5odG1s
J10udHlwZSwgdGVzdF9leHBlY3RhdGlvbnMuU0tJUCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVGVzdFJ1bkludGVycnVwdGVkRXhjZXB0aW9uLCBydW5uZXIuX2ludGVycnVwdF9pZl9hdF9m
YWlsdXJlX2xpbWl0cywgcnVuX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnVu
X3Jlc3VsdHMucmVzdWx0c19ieV9uYW1lWydwYXNzZXMvdGV4dC5odG1sJ10udHlwZSwgdGVzdF9l
eHBlY3RhdGlvbnMuU0tJUCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5fcmVzdWx0cy5y
ZXN1bHRzX2J5X25hbWVbJ3Bhc3Nlcy9pbWFnZS5odG1sJ10udHlwZSwgdGVzdF9leHBlY3RhdGlv
bnMuU0tJUCkKIAogICAgICAgICBydW5uZXIuX29wdGlvbnMuZXhpdF9hZnRlcl9uX2NyYXNoZXNf
b3JfdGltZW91dHMgPSBOb25lCiAgICAgICAgIHJ1bm5lci5fb3B0aW9ucy5leGl0X2FmdGVyX25f
ZmFpbHVyZXMgPSAxMAotICAgICAgICBleGNlcHRpb24gPSBzZWxmLmFzc2VydFJhaXNlcyhUZXN0
UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24sIHJ1bm5lci5faW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVf
bGltaXRzLCByZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgZXhjZXB0aW9uID0gc2VsZi5hc3NlcnRS
YWlzZXMoVGVzdFJ1bkludGVycnVwdGVkRXhjZXB0aW9uLCBydW5uZXIuX2ludGVycnVwdF9pZl9h
dF9mYWlsdXJlX2xpbWl0cywgcnVuX3Jlc3VsdHMpCiAKICAgICBkZWYgdGVzdF91cGRhdGVfc3Vt
bWFyeV93aXRoX3Jlc3VsdChzZWxmKToKICAgICAgICAgIyBSZWZ0ZXN0cyBleHBlY3RlZCB0byBi
ZSBpbWFnZSBtaXNtYXRjaCBzaG91bGQgYmUgcmVzcGVjdGVkIHdoZW4gcGl4ZWxfdGVzdHM9RmFs
c2UuCkBAIC0xNTIsMTcgKzE1MiwxNyBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyVGVzdHModW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRpb25z
KHJ1bm5lci5fcG9ydCwgdGVzdHM9W3Rlc3RdKQogICAgICAgICBydW5uZXIuX2V4cGVjdGF0aW9u
cyA9IGV4cGVjdGF0aW9ucwogCi0gICAgICAgIHJlc3VsdF9zdW1tYXJ5ID0gUmVzdWx0U3VtbWFy
eShleHBlY3RhdGlvbnMsIDEpCisgICAgICAgIHJ1bl9yZXN1bHRzID0gVGVzdFJ1blJlc3VsdHMo
ZXhwZWN0YXRpb25zLCAxKQogICAgICAgICByZXN1bHQgPSBUZXN0UmVzdWx0KHRlc3RfbmFtZT10
ZXN0LCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoRGlkTm90
T2NjdXIoKV0sIHJlZnRlc3RfdHlwZT1bJyE9J10pCi0gICAgICAgIHJ1bm5lci5fdXBkYXRlX3N1
bW1hcnlfd2l0aF9yZXN1bHQocmVzdWx0X3N1bW1hcnksIHJlc3VsdCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgwLCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQorICAgICAgICBydW5uZXIuX3Vw
ZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHJ1bl9yZXN1bHRzLCByZXN1bHQpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgcnVuX3Jlc3VsdHMuZXhwZWN0ZWQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMCwgcnVuX3Jlc3VsdHMudW5leHBlY3RlZCkKIAotICAgICAgICByZXN1bHRfc3Vt
bWFyeSA9IFJlc3VsdFN1bW1hcnkoZXhwZWN0YXRpb25zLCAxKQorICAgICAgICBydW5fcmVzdWx0
cyA9IFRlc3RSdW5SZXN1bHRzKGV4cGVjdGF0aW9ucywgMSkKICAgICAgICAgcmVzdWx0ID0gVGVz
dFJlc3VsdCh0ZXN0X25hbWU9dGVzdCwgZmFpbHVyZXM9W10sIHJlZnRlc3RfdHlwZT1bJz09J10p
Ci0gICAgICAgIHJ1bm5lci5fdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQocmVzdWx0X3N1bW1h
cnksIHJlc3VsdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCByZXN1bHRfc3VtbWFyeS51bmV4
cGVjdGVkKQorICAgICAgICBydW5uZXIuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHJ1bl9y
ZXN1bHRzLCByZXN1bHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcnVuX3Jlc3VsdHMu
ZXhwZWN0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcnVuX3Jlc3VsdHMudW5leHBl
Y3RlZCkKIAogICAgIGRlZiB0ZXN0X3NlcnZlcnNfc3RhcnRlZChzZWxmKToKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdl
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21h
bmFnZXIucHkKaW5kZXggOTMwZjU3ZDNhMGFkNjc0Zjc4MjM4ZGFlMzVkNzc2ODZlOWE1Njc2OS4u
NzVjNjViYzZmYWJlMjExODI0Mjk0NjI0N2M0MzUxOTJkNTI2YmQ2ZCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5h
Z2VyLnB5CkBAIC01OCwxMSArNTgsMTEgQEAgVGVzdEV4cGVjdGF0aW9ucyA9IHRlc3RfZXhwZWN0
YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMKIAogCiBjbGFzcyBSdW5EZXRhaWxzKG9iamVjdCk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4aXRfY29kZSwgc3VtbWFyaXplZF9yZXN1bHRzPU5vbmUs
IHJlc3VsdF9zdW1tYXJ5PU5vbmUsIHJldHJ5X3N1bW1hcnk9Tm9uZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGV4aXRfY29kZSwgc3VtbWFyaXplZF9yZXN1bHRzPU5vbmUsIGluaXRpYWxfcmVz
dWx0cz1Ob25lLCByZXRyeV9yZXN1bHRzPU5vbmUpOgogICAgICAgICBzZWxmLmV4aXRfY29kZSA9
IGV4aXRfY29kZQogICAgICAgICBzZWxmLnN1bW1hcml6ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZWRf
cmVzdWx0cwotICAgICAgICBzZWxmLnJlc3VsdF9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKLSAg
ICAgICAgc2VsZi5yZXRyeV9zdW1tYXJ5ID0gcmV0cnlfc3VtbWFyeQorICAgICAgICBzZWxmLmlu
aXRpYWxfcmVzdWx0cyA9IGluaXRpYWxfcmVzdWx0cworICAgICAgICBzZWxmLnJldHJ5X3Jlc3Vs
dHMgPSByZXRyeV9yZXN1bHRzCiAKIAogZGVmIGludGVycHJldF90ZXN0X2ZhaWx1cmVzKGZhaWx1
cmVzKToKQEAgLTk2LDcgKzk2LDcgQEAgZGVmIHVzZV90cmFjX2xpbmtzX2luX3Jlc3VsdHNfaHRt
bChwb3J0X29iaik6CiAjIG9yIHNwbGl0IG9mZiBmcm9tIE1hbmFnZXIgb250byBhbm90aGVyIGhl
bHBlciBjbGFzcywgYnV0IHNob3VsZCBub3QgYmUgYSBmcmVlIGZ1bmN0aW9uLgogIyBNb3N0IGxp
a2VseSB0aGlzIHNob3VsZCBiZSBtYWRlIGludG8gaXRzIG93biBjbGFzcywgYW5kIHRoaXMgc3Vw
ZXItbG9uZyBmdW5jdGlvbgogIyBzcGxpdCBpbnRvIG1hbnkgaGVscGVyIGZ1bmN0aW9ucy4KLWRl
ZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFy
eSwgcmV0cnlfc3VtbWFyeSk6CitkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9vYmosIGV4cGVj
dGF0aW9ucywgaW5pdGlhbF9yZXN1bHRzLCByZXRyeV9yZXN1bHRzKToKICAgICAiIiJSZXR1cm5z
IGEgZGljdGlvbmFyeSBjb250YWluaW5nIGEgc3VtbWFyeSBvZiB0aGUgdGVzdCBydW5zLCB3aXRo
IHRoZSBmb2xsb3dpbmcgZmllbGRzOgogICAgICAgICAndmVyc2lvbic6IGEgdmVyc2lvbiBpbmRp
Y2F0b3IKICAgICAgICAgJ2ZpeGFibGUnOiBUaGUgbnVtYmVyIG9mIGZpeGFibGUgdGVzdHMgKE5P
VyAtIFBBU1MpCkBAIC0xMTAsOCArMTEwLDggQEAgZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRf
b2JqLCBleHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5KToKICAgICBy
ZXN1bHRzID0ge30KICAgICByZXN1bHRzWyd2ZXJzaW9uJ10gPSAzCiAKLSAgICB0YmUgPSByZXN1
bHRfc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvbgotICAgIHRidCA9IHJlc3VsdF9zdW1tYXJ5
LnRlc3RzX2J5X3RpbWVsaW5lCisgICAgdGJlID0gaW5pdGlhbF9yZXN1bHRzLnRlc3RzX2J5X2V4
cGVjdGF0aW9uCisgICAgdGJ0ID0gaW5pdGlhbF9yZXN1bHRzLnRlc3RzX2J5X3RpbWVsaW5lCiAg
ICAgcmVzdWx0c1snZml4YWJsZSddID0gbGVuKHRidFt0ZXN0X2V4cGVjdGF0aW9ucy5OT1ddIC0g
dGJlW3Rlc3RfZXhwZWN0YXRpb25zLlBBU1NdKQogICAgIHJlc3VsdHNbJ3NraXBwZWQnXSA9IGxl
bih0YnRbdGVzdF9leHBlY3RhdGlvbnMuTk9XXSAmIHRiZVt0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQ
XSkKIApAQCAtMTI4LDcgKzEyOCw3IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwg
ZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSk6CiAKICAgICB0ZXN0
cyA9IHt9CiAKLSAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVz
dWx0cy5pdGVyaXRlbXMoKToKKyAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gaW5pdGlhbF9y
ZXN1bHRzLnJlc3VsdHNfYnlfbmFtZS5pdGVyaXRlbXMoKToKICAgICAgICAgIyBOb3RlIHRoYXQg
aWYgYSB0ZXN0IGNyYXNoZWQgaW4gdGhlIG9yaWdpbmFsIHJ1biwgd2UgaWdub3JlCiAgICAgICAg
ICMgd2hldGhlciBvciBub3QgaXQgY3Jhc2hlZCB3aGVuIHdlIHJldHJpZWQgaXQgKGlmIHdlIHJl
dHJpZWQgaXQpLAogICAgICAgICAjIGFuZCBhbHdheXMgY29uc2lkZXIgdGhlIHJlc3VsdCBub3Qg
Zmxha3kuCkBAIC0xNTUsMTcgKzE1NSwxNyBAQCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9v
YmosIGV4cGVjdGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnkpOgogICAgICAg
ICAgICAgaWYgZXhwZWN0ZWQgPT0gJ1BBU1MnOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAg
ICAgICAgIGVsaWYgcmVzdWx0X3R5cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0g6Ci0gICAg
ICAgICAgICBpZiB0ZXN0X25hbWUgaW4gcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZF9yZXN1bHRz
OgorICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIGluaXRpYWxfcmVzdWx0cy51bmV4cGVjdGVk
X3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBudW1fcmVncmVzc2lvbnMgKz0gMQog
ICAgICAgICBlbGlmIHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLk1JU1NJTkc6Ci0g
ICAgICAgICAgICBpZiB0ZXN0X25hbWUgaW4gcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZF9yZXN1
bHRzOgorICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIGluaXRpYWxfcmVzdWx0cy51bmV4cGVj
dGVkX3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBudW1fbWlzc2luZyArPSAxCi0g
ICAgICAgIGVsaWYgdGVzdF9uYW1lIGluIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWRfcmVzdWx0
czoKLSAgICAgICAgICAgIGlmIHJldHJ5X3N1bW1hcnkgYW5kIHRlc3RfbmFtZSBub3QgaW4gcmV0
cnlfc3VtbWFyeS51bmV4cGVjdGVkX3Jlc3VsdHM6CisgICAgICAgIGVsaWYgdGVzdF9uYW1lIGlu
IGluaXRpYWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKKyAgICAgICAgICAg
IGlmIHJldHJ5X3Jlc3VsdHMgYW5kIHRlc3RfbmFtZSBub3QgaW4gcmV0cnlfcmVzdWx0cy51bmV4
cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBhY3R1YWwuZXh0ZW5kKGV4
cGVjdGF0aW9ucy5nZXRfZXhwZWN0YXRpb25zX3N0cmluZyh0ZXN0X25hbWUpLnNwbGl0KCIgIikp
CiAgICAgICAgICAgICAgICAgbnVtX2ZsYWt5ICs9IDEKLSAgICAgICAgICAgIGVsaWYgcmV0cnlf
c3VtbWFyeToKLSAgICAgICAgICAgICAgICByZXRyeV9yZXN1bHRfdHlwZSA9IHJldHJ5X3N1bW1h
cnkudW5leHBlY3RlZF9yZXN1bHRzW3Rlc3RfbmFtZV0udHlwZQorICAgICAgICAgICAgZWxpZiBy
ZXRyeV9yZXN1bHRzOgorICAgICAgICAgICAgICAgIHJldHJ5X3Jlc3VsdF90eXBlID0gcmV0cnlf
cmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZVt0ZXN0X25hbWVdLnR5cGUKICAgICAg
ICAgICAgICAgICBpZiByZXN1bHRfdHlwZSAhPSByZXRyeV9yZXN1bHRfdHlwZToKICAgICAgICAg
ICAgICAgICAgICAgYWN0dWFsLmFwcGVuZChrZXl3b3Jkc1tyZXRyeV9yZXN1bHRfdHlwZV0pCiAg
ICAgICAgICAgICAgICAgICAgIG51bV9mbGFreSArPSAxCkBAIC0yMDYsNyArMjA2LDcgQEAgZGVm
IHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRfb2JqLCBleHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5
LCByZXRyeV9zdW1tYXJ5KToKICAgICByZXN1bHRzWydudW1fbWlzc2luZyddID0gbnVtX21pc3Np
bmcKICAgICByZXN1bHRzWydudW1fcmVncmVzc2lvbnMnXSA9IG51bV9yZWdyZXNzaW9ucwogICAg
IHJlc3VsdHNbJ3VzZXNfZXhwZWN0YXRpb25zX2ZpbGUnXSA9IHBvcnRfb2JqLnVzZXNfdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZSgpCi0gICAgcmVzdWx0c1snaW50ZXJydXB0ZWQnXSA9IHJlc3VsdF9z
dW1tYXJ5LmludGVycnVwdGVkICAjIERvZXMgcmVzdWx0cy5odG1sIGhhdmUgZW5vdWdoIGluZm9y
bWF0aW9uIHRvIGNvbXB1dGUgdGhpcyBpdHNlbGY/IChieSBjaGVja2luZyB0b3RhbCBudW1iZXIg
b2YgcmVzdWx0cyB2cy4gdG90YWwgbnVtYmVyIG9mIHRlc3RzPykKKyAgICByZXN1bHRzWydpbnRl
cnJ1cHRlZCddID0gaW5pdGlhbF9yZXN1bHRzLmludGVycnVwdGVkICAjIERvZXMgcmVzdWx0cy5o
dG1sIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgdGhpcyBpdHNlbGY/IChieSBj
aGVja2luZyB0b3RhbCBudW1iZXIgb2YgcmVzdWx0cyB2cy4gdG90YWwgbnVtYmVyIG9mIHRlc3Rz
PykKICAgICByZXN1bHRzWydsYXlvdXRfdGVzdHNfZGlyJ10gPSBwb3J0X29iai5sYXlvdXRfdGVz
dHNfZGlyKCkKICAgICByZXN1bHRzWydoYXNfd2RpZmYnXSA9IHBvcnRfb2JqLndkaWZmX2F2YWls
YWJsZSgpCiAgICAgcmVzdWx0c1snaGFzX3ByZXR0eV9wYXRjaCddID0gcG9ydF9vYmoucHJldHR5
X3BhdGNoX2F2YWlsYWJsZSgpCkBAIC0zNjQsMTggKzM2NCwxOCBAQCBjbGFzcyBNYW5hZ2VyKG9i
amVjdCk6CiAKICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5ID0gc2VsZi5fcnVuX3Rlc3RzKHRlc3RzX3RvX3J1
biwgdGVzdHNfdG9fc2tpcCwgc2VsZi5fb3B0aW9ucy5yZXBlYXRfZWFjaCwgc2VsZi5fb3B0aW9u
cy5pdGVyYXRpb25zLAorICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzID0gc2VsZi5fcnVuX3Rl
c3RzKHRlc3RzX3RvX3J1biwgdGVzdHNfdG9fc2tpcCwgc2VsZi5fb3B0aW9ucy5yZXBlYXRfZWFj
aCwgc2VsZi5fb3B0aW9ucy5pdGVyYXRpb25zLAogICAgICAgICAgICAgICAgIGludChzZWxmLl9v
cHRpb25zLmNoaWxkX3Byb2Nlc3NlcyksIHJldHJ5aW5nPUZhbHNlKQogCi0gICAgICAgICAgICB0
ZXN0c190b19yZXRyeSA9IHNlbGYuX3Rlc3RfdG9fcmV0cnkocmVzdWx0X3N1bW1hcnksIGluY2x1
ZGVfY3Jhc2hlcz1zZWxmLl9wb3J0LnNob3VsZF9yZXRyeV9jcmFzaGVzKCkpCi0gICAgICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnJldHJ5X2ZhaWx1cmVzIGFuZCB0ZXN0c190b19yZXRyeSBhbmQg
bm90IHJlc3VsdF9zdW1tYXJ5LmludGVycnVwdGVkOgorICAgICAgICAgICAgdGVzdHNfdG9fcmV0
cnkgPSBzZWxmLl90ZXN0c190b19yZXRyeShpbml0aWFsX3Jlc3VsdHMsIGluY2x1ZGVfY3Jhc2hl
cz1zZWxmLl9wb3J0LnNob3VsZF9yZXRyeV9jcmFzaGVzKCkpCisgICAgICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnJldHJ5X2ZhaWx1cmVzIGFuZCB0ZXN0c190b19yZXRyeSBhbmQgbm90IGluaXRp
YWxfcmVzdWx0cy5pbnRlcnJ1cHRlZDoKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oJycpCiAg
ICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJSZXRyeWluZyAlZCB1bmV4cGVjdGVkIGZhaWx1cmUo
cykgLi4uIiAlIGxlbih0ZXN0c190b19yZXRyeSkpCiAgICAgICAgICAgICAgICAgX2xvZy5pbmZv
KCcnKQotICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkgPSBzZWxmLl9ydW5fdGVzdHModGVz
dHNfdG9fcmV0cnksIHRlc3RzX3RvX3NraXA9c2V0KCksIHJlcGVhdF9lYWNoPTEsIGl0ZXJhdGlv
bnM9MSwKKyAgICAgICAgICAgICAgICByZXRyeV9yZXN1bHRzID0gc2VsZi5fcnVuX3Rlc3RzKHRl
c3RzX3RvX3JldHJ5LCB0ZXN0c190b19za2lwPXNldCgpLCByZXBlYXRfZWFjaD0xLCBpdGVyYXRp
b25zPTEsCiAgICAgICAgICAgICAgICAgICAgIG51bV93b3JrZXJzPTEsIHJldHJ5aW5nPVRydWUp
CiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkgPSBOb25l
CisgICAgICAgICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IE5vbmUKICAgICAgICAgZmluYWxseToK
ICAgICAgICAgICAgIHNlbGYuX2NsZWFuX3VwX3J1bigpCiAKQEAgLTM4MywyNSArMzgzLDI1IEBA
IGNsYXNzIE1hbmFnZXIob2JqZWN0KToKIAogICAgICAgICAjIFNvbWUgY3Jhc2ggbG9ncyBjYW4g
dGFrZSBhIGxvbmcgdGltZSB0byBiZSB3cml0dGVuIG91dCBzbyBsb29rCiAgICAgICAgICMgZm9y
IG5ldyBsb2dzIGFmdGVyIHRoZSB0ZXN0IHJ1biBmaW5pc2hlcy4KLSAgICAgICAgc2VsZi5fbG9v
a19mb3JfbmV3X2NyYXNoX2xvZ3MocmVzdWx0X3N1bW1hcnksIHN0YXJ0X3RpbWUpCi0gICAgICAg
IGlmIHJldHJ5X3N1bW1hcnk6Ci0gICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9uZXdfY3Jhc2hf
bG9ncyhyZXRyeV9zdW1tYXJ5LCBzdGFydF90aW1lKQorICAgICAgICBzZWxmLl9sb29rX2Zvcl9u
ZXdfY3Jhc2hfbG9ncyhpbml0aWFsX3Jlc3VsdHMsIHN0YXJ0X3RpbWUpCisgICAgICAgIGlmIHJl
dHJ5X3Jlc3VsdHM6CisgICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9uZXdfY3Jhc2hfbG9ncyhy
ZXRyeV9yZXN1bHRzLCBzdGFydF90aW1lKQogCi0gICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0cyA9
IHN1bW1hcml6ZV9yZXN1bHRzKHNlbGYuX3BvcnQsIHNlbGYuX2V4cGVjdGF0aW9ucywgcmVzdWx0
X3N1bW1hcnksIHJldHJ5X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcmVz
dWx0cyhlbmRfdGltZSAtIHN0YXJ0X3RpbWUsIHJlc3VsdF9zdW1tYXJ5LCBzdW1tYXJpemVkX3Jl
c3VsdHMpCisgICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHNl
bGYuX3BvcnQsIHNlbGYuX2V4cGVjdGF0aW9ucywgaW5pdGlhbF9yZXN1bHRzLCByZXRyeV9yZXN1
bHRzKQorICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Jlc3VsdHMoZW5kX3RpbWUgLSBzdGFy
dF90aW1lLCBpbml0aWFsX3Jlc3VsdHMsIHN1bW1hcml6ZWRfcmVzdWx0cykKIAogICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5wcmlu
dF9sZWFrc19zdW1tYXJ5KCkKLSAgICAgICAgICAgIHNlbGYuX3VwbG9hZF9qc29uX2ZpbGVzKHN1
bW1hcml6ZWRfcmVzdWx0cywgcmVzdWx0X3N1bW1hcnkpCisgICAgICAgICAgICBzZWxmLl91cGxv
YWRfanNvbl9maWxlcyhzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxfcmVzdWx0cykKIAogICAg
ICAgICAgICAgcmVzdWx0c19wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3Jlc3Vs
dHNfZGlyZWN0b3J5LCAicmVzdWx0cy5odG1sIikKICAgICAgICAgICAgIHNlbGYuX2NvcHlfcmVz
dWx0c19odG1sX2ZpbGUocmVzdWx0c19wYXRoKQotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5zaG93X3Jlc3VsdHMgYW5kIChyZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkX3Jlc3VsdHMgb3IK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX29w
dGlvbnMuZnVsbF9yZXN1bHRzX2h0bWwgYW5kIHJlc3VsdF9zdW1tYXJ5LnRvdGFsX2ZhaWx1cmVz
KSk6CisgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnNob3dfcmVzdWx0cyBhbmQgKGluaXRp
YWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZSBvcgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy5mdWxsX3Jlc3Vs
dHNfaHRtbCBhbmQgaW5pdGlhbF9yZXN1bHRzLnRvdGFsX2ZhaWx1cmVzKSk6CiAgICAgICAgICAg
ICAgICAgc2VsZi5fcG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKHJlc3VsdHNfcGF0aCkKIAog
ICAgICAgICByZXR1cm4gUnVuRGV0YWlscyhzZWxmLl9wb3J0LmV4aXRfY29kZV9mcm9tX3N1bW1h
cml6ZWRfcmVzdWx0cyhzdW1tYXJpemVkX3Jlc3VsdHMpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxfcmVz
dWx0cywgcmV0cnlfcmVzdWx0cykKIAogICAgIGRlZiBfcnVuX3Rlc3RzKHNlbGYsIHRlc3RzX3Rv
X3J1biwgdGVzdHNfdG9fc2tpcCwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMsIG51bV93b3JrZXJz
LCByZXRyeWluZyk6CiAgICAgICAgIG5lZWRzX2h0dHAgPSBzZWxmLl9wb3J0LnJlcXVpcmVzX2h0
dHBfc2VydmVyKCkgb3IgYW55KHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0
ZXN0c190b19ydW4pCkBAIC00MjYsMTYgKzQyNiwxNiBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6
CiAgICAgICAgIF9sb2cuZGVidWcoImNsZWFuaW5nIHVwIHBvcnQiKQogICAgICAgICBzZWxmLl9w
b3J0LmNsZWFuX3VwX3Rlc3RfcnVuKCkKIAotICAgIGRlZiBfbG9va19mb3JfbmV3X2NyYXNoX2xv
Z3Moc2VsZiwgcmVzdWx0X3N1bW1hcnksIHN0YXJ0X3RpbWUpOgorICAgIGRlZiBfbG9va19mb3Jf
bmV3X2NyYXNoX2xvZ3Moc2VsZiwgcnVuX3Jlc3VsdHMsIHN0YXJ0X3RpbWUpOgogICAgICAgICAi
IiJTaW5jZSBjcmFzaCBsb2dzIGNhbiB0YWtlIGEgbG9uZyB0aW1lIHRvIGJlIHdyaXR0ZW4gb3V0
IGlmIHRoZSBzeXN0ZW0gaXMKICAgICAgICAgICAgdW5kZXIgc3RyZXNzIGRvIGEgc2Vjb25kIHBh
c3MgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdCBydW4uCiAKLSAgICAgICAgICAgcmVzdWx0X3N1bW1h
cnk6IHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0IHJ1bgorICAgICAgICAgICBydW5fcmVzdWx0czog
dGhlIHJlc3VsdHMgb2YgdGhlIHRlc3QgcnVuCiAgICAgICAgICAgIHN0YXJ0X3RpbWU6IHRpbWUg
dGhlIHRlc3RzIHN0YXJ0ZWQgYXQuICBXZSdyZSBsb29raW5nIGZvciBjcmFzaAogICAgICAgICAg
ICAgICAgbG9ncyBhZnRlciB0aGF0IHRpbWUuCiAgICAgICAgICIiIgogICAgICAgICBjcmFzaGVk
X3Byb2Nlc3NlcyA9IFtdCi0gICAgICAgIGZvciB0ZXN0LCByZXN1bHQgaW4gcmVzdWx0X3N1bW1h
cnkudW5leHBlY3RlZF9yZXN1bHRzLml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgcmVz
dWx0IGluIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1lLml0ZXJpdGVtcygp
OgogICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlICE9IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNI
KToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgZm9yIGZhaWx1cmUgaW4g
cmVzdWx0LmZhaWx1cmVzOgpAQCAtNDYxLDI4ICs0NjEsMjggQEAgY2xhc3MgTWFuYWdlcihvYmpl
Y3QpOgogICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5pc2RpcihzZWxmLl9maWxlc3lz
dGVtLmpvaW4obGF5b3V0X3Rlc3RzX2RpciwgZGlybmFtZSkpOgogICAgICAgICAgICAgICAgIHNl
bGYuX2ZpbGVzeXN0ZW0ucm10cmVlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRz
X2RpcmVjdG9yeSwgZGlybmFtZSkpCiAKLSAgICBkZWYgX3Rlc3RfdG9fcmV0cnkoc2VsZiwgcmVz
dWx0X3N1bW1hcnksIGluY2x1ZGVfY3Jhc2hlcyk6Ci0gICAgICAgIHJldHVybiBbcmVzdWx0LnRl
c3RfbmFtZSBmb3IgcmVzdWx0IGluIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWRfcmVzdWx0cy52
YWx1ZXMoKSBpZgorICAgIGRlZiBfdGVzdHNfdG9fcmV0cnkoc2VsZiwgcnVuX3Jlc3VsdHMsIGlu
Y2x1ZGVfY3Jhc2hlcyk6CisgICAgICAgIHJldHVybiBbcmVzdWx0LnRlc3RfbmFtZSBmb3IgcmVz
dWx0IGluIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1lLnZhbHVlcygpIGlm
CiAgICAgICAgICAgICAgICAgICAgKChyZXN1bHQudHlwZSAhPSB0ZXN0X2V4cGVjdGF0aW9ucy5Q
QVNTKSBhbmQKICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdC50eXBlICE9IHRlc3RfZXhwZWN0
YXRpb25zLk1JU1NJTkcpIGFuZAogICAgICAgICAgICAgICAgICAgICAocmVzdWx0LnR5cGUgIT0g
dGVzdF9leHBlY3RhdGlvbnMuQ1JBU0ggb3IgaW5jbHVkZV9jcmFzaGVzKSldCiAKLSAgICBkZWYg
X3VwbG9hZF9qc29uX2ZpbGVzKHNlbGYsIHN1bW1hcml6ZWRfcmVzdWx0cywgcmVzdWx0X3N1bW1h
cnkpOgorICAgIGRlZiBfdXBsb2FkX2pzb25fZmlsZXMoc2VsZiwgc3VtbWFyaXplZF9yZXN1bHRz
LCBpbml0aWFsX3Jlc3VsdHMpOgogICAgICAgICAiIiJXcml0ZXMgdGhlIHJlc3VsdHMgb2YgdGhl
IHRlc3QgcnVuIGFzIEpTT04gZmlsZXMgaW50byB0aGUgcmVzdWx0cwogICAgICAgICBkaXIgYW5k
IHVwbG9hZCB0aGUgZmlsZXMgdG8gdGhlIGFwcGVuZ2luZSBzZXJ2ZXIuCiAKICAgICAgICAgQXJn
czoKICAgICAgICAgICBzdW1tYXJpemVkX3Jlc3VsdHM6IGRpY3Qgb2YgcmVzdWx0cwotICAgICAg
ICAgIHJlc3VsdF9zdW1tYXJ5OiBmdWxsIHN1bW1hcnkgb2JqZWN0CisgICAgICAgICAgaW5pdGlh
bF9yZXN1bHRzOiBmdWxsIHN1bW1hcnkgb2JqZWN0CiAgICAgICAgICIiIgogICAgICAgICBfbG9n
LmRlYnVnKCJXcml0aW5nIEpTT04gZmlsZXMgaW4gJXMuIiAlIHNlbGYuX3Jlc3VsdHNfZGlyZWN0
b3J5KQogCiAgICAgICAgICMgRklYTUU6IFVwbG9hZCBzdGF0cy5qc29uIHRvIHRoZSBzZXJ2ZXIg
YW5kIGRlbGV0ZSB0aW1lc19tcy4KLSAgICAgICAgdGltZXNfdHJpZSA9IGpzb25fcmVzdWx0c19n
ZW5lcmF0b3IudGVzdF90aW1pbmdzX3RyaWUoc2VsZi5fcG9ydCwgcmVzdWx0X3N1bW1hcnkucmVz
dWx0cy52YWx1ZXMoKSkKKyAgICAgICAgdGltZXNfdHJpZSA9IGpzb25fcmVzdWx0c19nZW5lcmF0
b3IudGVzdF90aW1pbmdzX3RyaWUoc2VsZi5fcG9ydCwgaW5pdGlhbF9yZXN1bHRzLnJlc3VsdHNf
YnlfbmFtZS52YWx1ZXMoKSkKICAgICAgICAgdGltZXNfanNvbl9wYXRoID0gc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAidGltZXNfbXMuanNvbiIpCiAgICAg
ICAgIGpzb25fcmVzdWx0c19nZW5lcmF0b3Iud3JpdGVfanNvbihzZWxmLl9maWxlc3lzdGVtLCB0
aW1lc190cmllLCB0aW1lc19qc29uX3BhdGgpCiAKLSAgICAgICAgc3RhdHNfdHJpZSA9IHNlbGYu
X3N0YXRzX3RyaWUocmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHN0YXRzX3RyaWUgPSBzZWxmLl9z
dGF0c190cmllKGluaXRpYWxfcmVzdWx0cykKICAgICAgICAgc3RhdHNfcGF0aCA9IHNlbGYuX2Zp
bGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgInN0YXRzLmpzb24iKQogICAg
ICAgICBzZWxmLl9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShzdGF0c19wYXRoLCBqc29uLmR1
bXBzKHN0YXRzX3RyaWUpKQogCkBAIC00OTQsNyArNDk0LDcgQEAgY2xhc3MgTWFuYWdlcihvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucy5idWlsZGVyX25hbWUs
IHNlbGYuX29wdGlvbnMuYnVpbGRfbmFtZSwKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuYnVp
bGRfbnVtYmVyLCBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwKICAgICAgICAgICAgIEJVSUxERVJf
QkFTRV9VUkwsCi0gICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5
LAorICAgICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zLCBpbml0aWFsX3Jlc3VsdHMsCiAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnRlc3RfcmVzdWx0c19zZXJ2ZXIsCiAgICAgICAgICAgICAi
bGF5b3V0LXRlc3RzIiwKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFzdGVyX25hbWUpCkBA
IC01MjEsMTIgKzUyMSwxMiBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGlmIHNl
bGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHJlc3VsdHNfZmlsZSk6CiAgICAgICAgICAgICBzZWxmLl9m
aWxlc3lzdGVtLmNvcHlmaWxlKHJlc3VsdHNfZmlsZSwgZGVzdGluYXRpb25fcGF0aCkKIAotICAg
IGRlZiBfc3RhdHNfdHJpZShzZWxmLCByZXN1bHRfc3VtbWFyeSk6CisgICAgZGVmIF9zdGF0c190
cmllKHNlbGYsIGluaXRpYWxfcmVzdWx0cyk6CiAgICAgICAgIGRlZiBfd29ya2VyX251bWJlcih3
b3JrZXJfbmFtZSk6CiAgICAgICAgICAgICByZXR1cm4gaW50KHdvcmtlcl9uYW1lLnNwbGl0KCcv
JylbMV0pIGlmIHdvcmtlcl9uYW1lIGVsc2UgLTEKIAogICAgICAgICBzdGF0cyA9IHt9Ci0gICAg
ICAgIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMoKToKKyAgICAg
ICAgZm9yIHJlc3VsdCBpbiBpbml0aWFsX3Jlc3VsdHMucmVzdWx0c19ieV9uYW1lLnZhbHVlcygp
OgogICAgICAgICAgICAgaWYgcmVzdWx0LnR5cGUgIT0gdGVzdF9leHBlY3RhdGlvbnMuU0tJUDoK
ICAgICAgICAgICAgICAgICBzdGF0c1tyZXN1bHQudGVzdF9uYW1lXSA9IHsncmVzdWx0cyc6IChf
d29ya2VyX251bWJlcihyZXN1bHQud29ya2VyX25hbWUpLCByZXN1bHQudGVzdF9udW1iZXIsIHJl
c3VsdC5waWQsIGludChyZXN1bHQudGVzdF9ydW5fdGltZSAqIDEwMDApLCBpbnQocmVzdWx0LnRv
dGFsX3J1bl90aW1lICogMTAwMCkpfQogICAgICAgICBzdGF0c190cmllID0ge30KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CmluZGV4IGE5YmViNWQ0OGFhMjE4NzhiMmYwOGU2
YzUwZWY1NGE4ZDM0NmY5NGQuLjM5NGIwZmU5MGU1YmE5MjgwNTQ4YjdiMWRhZDdjMTFhOTFmNGNi
MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQpAQCAtMzgsNyArMzgs
NyBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy5tYW5hZ2VyIGltcG9y
dCBNYW5hZ2VyLCBpbnRlcnByZXRfdGVzdF9mYQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
bW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
bW9kZWxzLnJlc3VsdF9zdW1tYXJ5IGltcG9ydCBSZXN1bHRTdW1tYXJ5Citmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9ydW5fcmVzdWx0cyBpbXBvcnQgVGVzdFJ1blJlc3Vs
dHMKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtp
dHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKQEAgLTg3LDEyICs4NywxMiBA
QCBjbGFzcyBNYW5hZ2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBo
b3N0LnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3QtbWFjLWxlb3BhcmQnKQogICAgICAgICB0ZXN0cyA9
IFsnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCddCiAgICAgICAgIGV4cGVjdGF0aW9ucyA9
IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMocG9ydCwgdGVzdHMpCi0gICAgICAg
IHJzID0gUmVzdWx0U3VtbWFyeShleHBlY3RhdGlvbnMsIGxlbih0ZXN0cykpCisgICAgICAgIHJ1
bl9yZXN1bHRzID0gVGVzdFJ1blJlc3VsdHMoZXhwZWN0YXRpb25zLCBsZW4odGVzdHMpKQogICAg
ICAgICBtYW5hZ2VyID0gZ2V0X21hbmFnZXIoKQotICAgICAgICBtYW5hZ2VyLl9sb29rX2Zvcl9u
ZXdfY3Jhc2hfbG9ncyhycywgdGltZS50aW1lKCkpCisgICAgICAgIG1hbmFnZXIuX2xvb2tfZm9y
X25ld19jcmFzaF9sb2dzKHJ1bl9yZXN1bHRzLCB0aW1lLnRpbWUoKSkKIAogCi1jbGFzcyBSZXN1
bHRTdW1tYXJ5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBTdW1tYXJpemVSZXN1bHRz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAg
IGhvc3QgPSBNb2NrSG9zdCgpCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBjbGFzcyBSZXN1bHRTdW1t
YXJ5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBmYWlsdXJlcyA9IFt0ZXN0
X2ZhaWx1cmVzLkZhaWx1cmVDcmFzaCgpXQogICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHRzLlRl
c3RSZXN1bHQodGVzdF9uYW1lLCBmYWlsdXJlcz1mYWlsdXJlcywgdGVzdF9ydW5fdGltZT1ydW5f
dGltZSkKIAotICAgIGRlZiBnZXRfcmVzdWx0X3N1bW1hcnkoc2VsZiwgcG9ydCwgdGVzdF9uYW1l
cywgZXhwZWN0YXRpb25zX3N0cik6CisgICAgZGVmIGdldF9ydW5fcmVzdWx0cyhzZWxmLCBwb3J0
LCB0ZXN0X25hbWVzLCBleHBlY3RhdGlvbnNfc3RyKToKICAgICAgICAgcG9ydC5leHBlY3RhdGlv
bnNfZGljdCA9IGxhbWJkYTogeycnOiBleHBlY3RhdGlvbnNfc3RyfQogICAgICAgICBleHBlY3Rh
dGlvbnMgPSB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zKHBvcnQsIHRlc3RfbmFt
ZXMpCi0gICAgICAgIHJldHVybiB0ZXN0X25hbWVzLCBSZXN1bHRTdW1tYXJ5KGV4cGVjdGF0aW9u
cywgbGVuKHRlc3RfbmFtZXMpKSwgZXhwZWN0YXRpb25zCisgICAgICAgIHJldHVybiB0ZXN0X25h
bWVzLCBUZXN0UnVuUmVzdWx0cyhleHBlY3RhdGlvbnMsIGxlbih0ZXN0X25hbWVzKSksIGV4cGVj
dGF0aW9ucwogCiAgICAgIyBGSVhNRTogVXNlIHRoaXMgdG8gdGVzdCBtb3JlIG9mIHN1bW1hcml6
ZV9yZXN1bHRzLiBUaGlzIHdhcyBtb3ZlZCBmcm9tIHByaW50aW5nX3VuaXR0ZXN0LnB5LgogICAg
IGRlZiBzdW1tYXJpemVkX3Jlc3VsdHMoc2VsZiwgcG9ydCwgZXhwZWN0ZWQsIHBhc3NpbmcsIGZs
YWt5LCBleHRyYV90ZXN0cz1bXSwgZXh0cmFfZXhwZWN0YXRpb25zPU5vbmUpOgpAQCAtMTQ0LDMy
ICsxNDQsMzIgQEAgY2xhc3MgUmVzdWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICAgICAgZXhwZWN0YXRpb25zICs9IGV4dHJhX2V4cGVjdGF0aW9ucwogCiAgICAgICAg
IHRlc3RfaXNfc2xvdyA9IEZhbHNlCi0gICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRf
cmVzdWx0X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgcGF0aHMs
IGluaXRpYWxfcmVzdWx0cywgZXhwID0gc2VsZi5nZXRfcnVuX3Jlc3VsdHMocG9ydCwgdGVzdHMs
IGV4cGVjdGF0aW9ucykKICAgICAgICAgaWYgZXhwZWN0ZWQ6Ci0gICAgICAgICAgICBycy5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFT
UyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9u
cy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgIHJzLmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0
aWFsX3Jlc3VsdHMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3Rf
ZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAg
aW5pdGlhbF9yZXN1bHRzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rp
bWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9p
c19zbG93KQorICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChzZWxmLmdldF9yZXN1bHQo
J2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCks
IGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGVsaWYgcGFzc2luZzoKLSAgICAgICAg
ICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQs
IHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQotICAg
ICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2gu
aHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgaW5pdGlhbF9yZXN1
bHRzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoc2VsZi5nZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMv
dGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lz
X3Nsb3cpCi0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBl
Y3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0
ZXN0X2lzX3Nsb3cpCi0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJl
cy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVj
dGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQp
LCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFk
ZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRlc3Rf
ZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAg
IGluaXRpYWxfcmVzdWx0cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9j
cmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lz
X3Nsb3cpCiAKICAgICAgICAgZm9yIHRlc3QgaW4gZXh0cmFfdGVzdHM6Ci0gICAgICAgICAgICBy
cy5hZGQoc2VsZi5nZXRfcmVzdWx0KHRlc3QsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhw
ZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KHRlc3QsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKIAogICAgICAgICBpZiBmbGFreToKLSAgICAgICAgICAgIHBhdGhzLCByZXRy
eSwgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9u
cykKLSAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0
bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUsIHRlc3RfaXNf
c2xvdykKLSAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcGF0
aHMsIHJldHJ5X3Jlc3VsdHMsIGV4cCA9IHNlbGYuZ2V0X3J1bl9yZXN1bHRzKHBvcnQsIHRlc3Rz
LCBleHBlY3RhdGlvbnMpCisgICAgICAgICAgICByZXRyeV9yZXN1bHRzLmFkZChzZWxmLmdldF9y
ZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAg
ICAgcmV0cnlfcmVzdWx0cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90
aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcmV0cnlfcmVz
dWx0cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyks
IFRydWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHJ5ID0g
Tm9uZQorICAgICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IE5vbmUKIAotICAgICAgICByZXR1cm4g
c3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnkpCisgICAgICAgIHJldHVybiBz
dW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIGluaXRpYWxfcmVzdWx0cywgcmV0cnlfcmVzdWx0
cykKIAogICAgIGRlZiB0ZXN0X25vX3N2bl9yZXZpc2lvbihzZWxmKToKICAgICAgICAgaG9zdCA9
IE1vY2tIb3N0KGluaXRpYWxpemVfc2NtX2J5X2RlZmF1bHQ9RmFsc2UpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xh
eW91dF9yZXN1bHRzX2dlbmVyYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5Cmlu
ZGV4IGIxYjhhOTAwYTgwMTMwM2MyMGQ4NTdjNmRiZjVkMzY5MDBhYWM2ODIuLmE2MzVmNmU2NTVi
M2I0NDA5ZDFlYTA4MDFmODkxMDc5NTUzNWE5NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNf
Z2VuZXJhdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CkBAIC01MiwxNCAr
NTIsMTMgQEAgY2xhc3MgSlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dl
bmVyYXRvci5KU09OUmVzdWx0c0dlbmVyYXRvckJhc2UKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwb3J0LCBidWlsZGVyX25hbWUsIGJ1aWxkX25hbWUsIGJ1aWxkX251bWJlciwKICAgICAgICAg
cmVzdWx0c19maWxlX2Jhc2VfcGF0aCwgYnVpbGRlcl9iYXNlX3VybCwKLSAgICAgICAgZXhwZWN0
YXRpb25zLCByZXN1bHRfc3VtbWFyeSwKKyAgICAgICAgZXhwZWN0YXRpb25zLCBydW5fcmVzdWx0
cywKICAgICAgICAgdGVzdF9yZXN1bHRzX3NlcnZlcj1Ob25lLCB0ZXN0X3R5cGU9IiIsIG1hc3Rl
cl9uYW1lPSIiKToKICAgICAgICAgIiIiTW9kaWZpZXMgdGhlIHJlc3VsdHMuanNvbiBmaWxlLiBH
cmFicyBpdCBvZmYgdGhlIGFyY2hpdmUgZGlyZWN0b3J5CiAgICAgICAgIGlmIGl0IGlzIG5vdCBm
b3VuZCBsb2NhbGx5LgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0X3N1bW1hcnk6
IFJlc3VsdHNTdW1tYXJ5IG9iamVjdCBzdG9yaW5nIHRoZSBzdW1tYXJ5IG9mIHRoZSB0ZXN0Ci0g
ICAgICAgICAgICAgIHJlc3VsdHMuCisgICAgICAgICAgcnVuX3Jlc3VsdHM6IFRlc3RSdW5SZXN1
bHRzIG9iamVjdCBzdG9yaW5nIHRoZSBkZXRhaWxzIG9mIHRoZSB0ZXN0IHJ1bi4KICAgICAgICAg
IiIiCiAgICAgICAgIHN1cGVyKEpTT05MYXlvdXRSZXN1bHRzR2VuZXJhdG9yLCBzZWxmKS5fX2lu
aXRfXygKICAgICAgICAgICAgIHBvcnQsIGJ1aWxkZXJfbmFtZSwgYnVpbGRfbmFtZSwgYnVpbGRf
bnVtYmVyLCByZXN1bHRzX2ZpbGVfYmFzZV9wYXRoLApAQCAtNjgsOSArNjcsOSBAQCBjbGFzcyBK
U09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05SZXN1
bHRzR2VuZXJhdG9yQmFzZQogCiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0
aW9ucwogCi0gICAgICAgIHNlbGYuX3Jlc3VsdF9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKLSAg
ICAgICAgc2VsZi5fZmFpbHVyZXMgPSBkaWN0KCh0ZXN0X25hbWUsIHJlc3VsdF9zdW1tYXJ5LnJl
c3VsdHNbdGVzdF9uYW1lXS50eXBlKSBmb3IgdGVzdF9uYW1lIGluIHJlc3VsdF9zdW1tYXJ5LmZh
aWx1cmVzKQotICAgICAgICBzZWxmLl90ZXN0X3RpbWluZ3MgPSByZXN1bHRfc3VtbWFyeS5yZXN1
bHRzCisgICAgICAgIHNlbGYuX3J1bl9yZXN1bHRzID0gcnVuX3Jlc3VsdHMKKyAgICAgICAgc2Vs
Zi5fZmFpbHVyZXMgPSBkaWN0KCh0ZXN0X25hbWUsIHJ1bl9yZXN1bHRzLnJlc3VsdHNfYnlfbmFt
ZVt0ZXN0X25hbWVdLnR5cGUpIGZvciB0ZXN0X25hbWUgaW4gcnVuX3Jlc3VsdHMuZmFpbHVyZXNf
YnlfbmFtZSkKKyAgICAgICAgc2VsZi5fdGVzdF90aW1pbmdzID0gcnVuX3Jlc3VsdHMucmVzdWx0
c19ieV9uYW1lCiAKICAgICAgICAgc2VsZi5nZW5lcmF0ZV9qc29uX291dHB1dCgpCiAKQEAgLTEw
Nyw3ICsxMDYsNyBAQCBjbGFzcyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3Vs
dHNfZ2VuZXJhdG9yLkpTT05SZXN1bHRzR2VuZXJhdG9yQmFzZQogCiAgICAgIyBvdmVycmlkZQog
ICAgIGRlZiBfZ2V0X21vZGlmaWVyX2NoYXIoc2VsZiwgdGVzdF9uYW1lKToKLSAgICAgICAgaWYg
dGVzdF9uYW1lIG5vdCBpbiBzZWxmLl9yZXN1bHRfc3VtbWFyeS5yZXN1bHRzOgorICAgICAgICBp
ZiB0ZXN0X25hbWUgbm90IGluIHNlbGYuX3J1bl9yZXN1bHRzLnJlc3VsdHNfYnlfbmFtZToKICAg
ICAgICAgICAgIHJldHVybiBzZWxmLk5PX0RBVEFfUkVTVUxUCiAKICAgICAgICAgaWYgdGVzdF9u
YW1lIGluIHNlbGYuX2ZhaWx1cmVzOgpAQCAtMTIxLDEyICsxMjAsMTIgQEAgY2xhc3MgSlNPTkxh
eW91dFJlc3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dlbmVyYXRvci5KU09OUmVzdWx0c0dl
bmVyYXRvckJhc2UKIAogICAgICMgb3ZlcnJpZGUKICAgICBkZWYgX2luc2VydF9mYWlsdXJlX3N1
bW1hcmllcyhzZWxmLCByZXN1bHRzX2Zvcl9idWlsZGVyKToKLSAgICAgICAgc3VtbWFyeSA9IHNl
bGYuX3Jlc3VsdF9zdW1tYXJ5CisgICAgICAgIHJ1bl9yZXN1bHRzID0gc2VsZi5fcnVuX3Jlc3Vs
dHMKIAogICAgICAgICBzZWxmLl9pbnNlcnRfaXRlbV9pbnRvX3Jhd19saXN0KHJlc3VsdHNfZm9y
X2J1aWxkZXIsCi0gICAgICAgICAgICBsZW4oKHNldChzdW1tYXJ5LmZhaWx1cmVzLmtleXMoKSkg
fAotICAgICAgICAgICAgICAgIHN1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBl
Y3RhdGlvbnMuU0tJUF0pICYKLSAgICAgICAgICAgICAgICBzdW1tYXJ5LnRlc3RzX2J5X3RpbWVs
aW5lW3Rlc3RfZXhwZWN0YXRpb25zLk5PV10pLAorICAgICAgICAgICAgbGVuKChzZXQocnVuX3Jl
c3VsdHMuZmFpbHVyZXNfYnlfbmFtZS5rZXlzKCkpIHwKKyAgICAgICAgICAgICAgICBydW5fcmVz
dWx0cy50ZXN0c19ieV9leHBlY3RhdGlvblt0ZXN0X2V4cGVjdGF0aW9ucy5TS0lQXSkgJgorICAg
ICAgICAgICAgICAgIHJ1bl9yZXN1bHRzLnRlc3RzX2J5X3RpbWVsaW5lW3Rlc3RfZXhwZWN0YXRp
b25zLk5PV10pLAogICAgICAgICAgICAgc2VsZi5GSVhBQkxFX0NPVU5UKQogICAgICAgICBzZWxm
Ll9pbnNlcnRfaXRlbV9pbnRvX3Jhd19saXN0KHJlc3VsdHNfZm9yX2J1aWxkZXIsCiAgICAgICAg
ICAgICBzZWxmLl9nZXRfZmFpbHVyZV9zdW1tYXJ5X2VudHJ5KHRlc3RfZXhwZWN0YXRpb25zLk5P
VyksCkBAIC0xNTMsMjMgKzE1MiwyMiBAQCBjbGFzcyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRv
cihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05SZXN1bHRzR2VuZXJhdG9yQmFzZQogICAgICAg
ICAiIiJDcmVhdGVzIGEgc3VtbWFyeSBvYmplY3QgdG8gaW5zZXJ0IGludG8gdGhlIEpTT04uCiAK
ICAgICAgICAgQXJnczoKLSAgICAgICAgICBzdW1tYXJ5ICAgUmVzdWx0U3VtbWFyeSBvYmplY3Qg
d2l0aCB0ZXN0IHJlc3VsdHMKICAgICAgICAgICB0aW1lbGluZSAgY3VycmVudCB0ZXN0X2V4cGVj
dGF0aW9ucyB0aW1lbGluZSB0byBidWlsZCBlbnRyeSBmb3IKICAgICAgICAgICAgICAgICAgICAg
KGUuZy4sIHRlc3RfZXhwZWN0YXRpb25zLk5PVywgZXRjLikKICAgICAgICAgIiIiCiAgICAgICAg
IGVudHJ5ID0ge30KLSAgICAgICAgc3VtbWFyeSA9IHNlbGYuX3Jlc3VsdF9zdW1tYXJ5Ci0gICAg
ICAgIHRpbWVsaW5lX3Rlc3RzID0gc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0K
KyAgICAgICAgcnVuX3Jlc3VsdHMgPSBzZWxmLl9ydW5fcmVzdWx0cworICAgICAgICB0aW1lbGlu
ZV90ZXN0cyA9IHJ1bl9yZXN1bHRzLnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXQogICAgICAg
ICBlbnRyeVtzZWxmLlNLSVBfUkVTVUxUXSA9IGxlbigKLSAgICAgICAgICAgIHN1bW1hcnkudGVz
dHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuU0tJUF0gJgorICAgICAgICAgICAg
cnVuX3Jlc3VsdHMudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuU0tJUF0g
JgogICAgICAgICAgICAgdGltZWxpbmVfdGVzdHMpCiAgICAgICAgIGVudHJ5W3NlbGYuUEFTU19S
RVNVTFRdID0gbGVuKAotICAgICAgICAgICAgc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvblt0
ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAmCisgICAgICAgICAgICBydW5fcmVzdWx0cy50ZXN0c19i
eV9leHBlY3RhdGlvblt0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAmCiAgICAgICAgICAgICB0aW1l
bGluZV90ZXN0cykKLSAgICAgICAgZm9yIGZhaWx1cmVfdHlwZSBpbiBzdW1tYXJ5LnRlc3RzX2J5
X2V4cGVjdGF0aW9uLmtleXMoKToKKyAgICAgICAgZm9yIGZhaWx1cmVfdHlwZSBpbiBydW5fcmVz
dWx0cy50ZXN0c19ieV9leHBlY3RhdGlvbi5rZXlzKCk6CiAgICAgICAgICAgICBpZiBmYWlsdXJl
X3R5cGUgbm90IGluIHNlbGYuRkFJTFVSRV9UT19DSEFSOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgICAgICBjb3VudCA9IGxlbihzdW1tYXJ5LnRlc3RzX2J5X2V4cGVjdGF0aW9u
W2ZhaWx1cmVfdHlwZV0gJgorICAgICAgICAgICAgY291bnQgPSBsZW4ocnVuX3Jlc3VsdHMudGVz
dHNfYnlfZXhwZWN0YXRpb25bZmFpbHVyZV90eXBlXSAmCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lbGluZV90ZXN0cykKICAgICAgICAgICAgIGVudHJ5W3NlbGYuRkFJTFVSRV9UT19DSEFS
W2ZhaWx1cmVfdHlwZV1dID0gY291bnQKICAgICAgICAgcmV0dXJuIGVudHJ5CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1h
cnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvcmVzdWx0
X3N1bW1hcnkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzOTM3NGE2Y2YwNDcw
MDVhZTNkZGE3NTc2ZTdlN2Q5MWU3NzU1NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Jlc3VsdF9zdW1tYXJ5LnB5CisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdhYm9yIFJhcGNzYW55aSAocmdhYm9yQGluZi51LXN6ZWdlZC5odSks
IFVuaXZlcnNpdHkgb2YgU3plZ2VkCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1mcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3Rh
dGlvbnMsIFNLSVAsIENSQVNILCBUSU1FT1VUCi0KLQotY2xhc3MgUmVzdWx0U3VtbWFyeShvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RhdGlvbnMsIG51bV90ZXN0cyk6Ci0g
ICAgICAgIHNlbGYudG90YWwgPSBudW1fdGVzdHMKLSAgICAgICAgc2VsZi5yZW1haW5pbmcgPSBz
ZWxmLnRvdGFsCi0gICAgICAgIHNlbGYuZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zCi0gICAg
ICAgIHNlbGYuZXhwZWN0ZWQgPSAwCi0gICAgICAgIHNlbGYudW5leHBlY3RlZCA9IDAKLSAgICAg
ICAgc2VsZi51bmV4cGVjdGVkX2ZhaWx1cmVzID0gMAotICAgICAgICBzZWxmLnVuZXhwZWN0ZWRf
Y3Jhc2hlcyA9IDAKLSAgICAgICAgc2VsZi51bmV4cGVjdGVkX3RpbWVvdXRzID0gMAotICAgICAg
ICBzZWxmLnRlc3RzX2J5X2V4cGVjdGF0aW9uID0ge30KLSAgICAgICAgc2VsZi50ZXN0c19ieV90
aW1lbGluZSA9IHt9Ci0gICAgICAgIHNlbGYucmVzdWx0cyA9IHt9ICAjIE1hcCBvZiB0ZXN0IG5h
bWUgdG8gdGhlIGxhc3QgcmVzdWx0IGZvciB0aGUgdGVzdC4KLSAgICAgICAgc2VsZi5hbGxfcmVz
dWx0cyA9IFtdICAjIEFsbCByZXN1bHRzIGZyb20gYSBydW4sIGluY2x1ZGluZyBldmVyeSBpdGVy
YXRpb24gb2YgZXZlcnkgdGVzdC4KLSAgICAgICAgc2VsZi51bmV4cGVjdGVkX3Jlc3VsdHMgPSB7
fQotICAgICAgICBzZWxmLmZhaWx1cmVzID0ge30KLSAgICAgICAgc2VsZi50b3RhbF9mYWlsdXJl
cyA9IDAKLSAgICAgICAgc2VsZi5leHBlY3RlZF9za2lwcyA9IDAKLSAgICAgICAgZm9yIGV4cGVj
dGF0aW9uIGluIFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TLnZhbHVlcygpOgotICAgICAg
ICAgICAgc2VsZi50ZXN0c19ieV9leHBlY3RhdGlvbltleHBlY3RhdGlvbl0gPSBzZXQoKQotICAg
ICAgICBmb3IgdGltZWxpbmUgaW4gVGVzdEV4cGVjdGF0aW9ucy5USU1FTElORVMudmFsdWVzKCk6
Ci0gICAgICAgICAgICBzZWxmLnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSA9IGV4cGVjdGF0
aW9ucy5nZXRfdGVzdHNfd2l0aF90aW1lbGluZSh0aW1lbGluZSkKLSAgICAgICAgc2VsZi5zbG93
X3Rlc3RzID0gc2V0KCkKLSAgICAgICAgc2VsZi5pbnRlcnJ1cHRlZCA9IEZhbHNlCi0KLSAgICBk
ZWYgYWRkKHNlbGYsIHRlc3RfcmVzdWx0LCBleHBlY3RlZCwgdGVzdF9pc19zbG93KToKLSAgICAg
ICAgc2VsZi50ZXN0c19ieV9leHBlY3RhdGlvblt0ZXN0X3Jlc3VsdC50eXBlXS5hZGQodGVzdF9y
ZXN1bHQudGVzdF9uYW1lKQotICAgICAgICBzZWxmLnJlc3VsdHNbdGVzdF9yZXN1bHQudGVzdF9u
YW1lXSA9IHRlc3RfcmVzdWx0Ci0gICAgICAgIGlmIHRlc3RfcmVzdWx0LnR5cGUgIT0gU0tJUDoK
LSAgICAgICAgICAgIHNlbGYuYWxsX3Jlc3VsdHMuYXBwZW5kKHRlc3RfcmVzdWx0KQotICAgICAg
ICBzZWxmLnJlbWFpbmluZyAtPSAxCi0gICAgICAgIGlmIGxlbih0ZXN0X3Jlc3VsdC5mYWlsdXJl
cyk6Ci0gICAgICAgICAgICBzZWxmLnRvdGFsX2ZhaWx1cmVzICs9IDEKLSAgICAgICAgICAgIHNl
bGYuZmFpbHVyZXNbdGVzdF9yZXN1bHQudGVzdF9uYW1lXSA9IHRlc3RfcmVzdWx0LmZhaWx1cmVz
Ci0gICAgICAgIGlmIGV4cGVjdGVkOgotICAgICAgICAgICAgc2VsZi5leHBlY3RlZCArPSAxCi0g
ICAgICAgICAgICBpZiB0ZXN0X3Jlc3VsdC50eXBlID09IFNLSVA6Ci0gICAgICAgICAgICAgICAg
c2VsZi5leHBlY3RlZF9za2lwcyArPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
LnVuZXhwZWN0ZWRfcmVzdWx0c1t0ZXN0X3Jlc3VsdC50ZXN0X25hbWVdID0gdGVzdF9yZXN1bHQK
LSAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZCArPSAxCi0gICAgICAgICAgICBpZiBsZW4odGVz
dF9yZXN1bHQuZmFpbHVyZXMpOgotICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9mYWls
dXJlcyArPSAxCi0gICAgICAgICAgICBpZiB0ZXN0X3Jlc3VsdC50eXBlID09IENSQVNIOgotICAg
ICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jcmFzaGVzICs9IDEKLSAgICAgICAgICAgIGVs
aWYgdGVzdF9yZXN1bHQudHlwZSA9PSBUSU1FT1VUOgotICAgICAgICAgICAgICAgIHNlbGYudW5l
eHBlY3RlZF90aW1lb3V0cyArPSAxCi0gICAgICAgIGlmIHRlc3RfaXNfc2xvdzoKLSAgICAgICAg
ICAgIHNlbGYuc2xvd190ZXN0cy5hZGQodGVzdF9yZXN1bHQudGVzdF9uYW1lKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9ydW5fcmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjVlNmM1MDU0ODJmY2M4ZTA2YzBmMjA0Y2Qw
OWYyMmY3NWFjOWFjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkKQEAgLTAsMCArMSw4MSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEwIEdhYm9yIFJhcGNzYW55aSAocmdhYm9yQGluZi51LXN6ZWdlZC5o
dSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBl
Y3RhdGlvbnMsIFNLSVAsIENSQVNILCBUSU1FT1VUCisKKworY2xhc3MgVGVzdFJ1blJlc3VsdHMo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwZWN0YXRpb25zLCBudW1fdGVzdHMp
OgorICAgICAgICBzZWxmLnRvdGFsID0gbnVtX3Rlc3RzCisgICAgICAgIHNlbGYucmVtYWluaW5n
ID0gc2VsZi50b3RhbAorICAgICAgICBzZWxmLmV4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwor
ICAgICAgICBzZWxmLmV4cGVjdGVkID0gMAorICAgICAgICBzZWxmLnVuZXhwZWN0ZWQgPSAwCisg
ICAgICAgIHNlbGYudW5leHBlY3RlZF9mYWlsdXJlcyA9IDAKKyAgICAgICAgc2VsZi51bmV4cGVj
dGVkX2NyYXNoZXMgPSAwCisgICAgICAgIHNlbGYudW5leHBlY3RlZF90aW1lb3V0cyA9IDAKKyAg
ICAgICAgc2VsZi50ZXN0c19ieV9leHBlY3RhdGlvbiA9IHt9CisgICAgICAgIHNlbGYudGVzdHNf
YnlfdGltZWxpbmUgPSB7fQorICAgICAgICBzZWxmLnJlc3VsdHNfYnlfbmFtZSA9IHt9ICAjIE1h
cCBvZiB0ZXN0IG5hbWUgdG8gdGhlIGxhc3QgcmVzdWx0IGZvciB0aGUgdGVzdC4KKyAgICAgICAg
c2VsZi5hbGxfcmVzdWx0cyA9IFtdICAjIEFsbCByZXN1bHRzIGZyb20gYSBydW4sIGluY2x1ZGlu
ZyBldmVyeSBpdGVyYXRpb24gb2YgZXZlcnkgdGVzdC4KKyAgICAgICAgc2VsZi51bmV4cGVjdGVk
X3Jlc3VsdHNfYnlfbmFtZSA9IHt9CisgICAgICAgIHNlbGYuZmFpbHVyZXNfYnlfbmFtZSA9IHt9
CisgICAgICAgIHNlbGYudG90YWxfZmFpbHVyZXMgPSAwCisgICAgICAgIHNlbGYuZXhwZWN0ZWRf
c2tpcHMgPSAwCisgICAgICAgIGZvciBleHBlY3RhdGlvbiBpbiBUZXN0RXhwZWN0YXRpb25zLkVY
UEVDVEFUSU9OUy52YWx1ZXMoKToKKyAgICAgICAgICAgIHNlbGYudGVzdHNfYnlfZXhwZWN0YXRp
b25bZXhwZWN0YXRpb25dID0gc2V0KCkKKyAgICAgICAgZm9yIHRpbWVsaW5lIGluIFRlc3RFeHBl
Y3RhdGlvbnMuVElNRUxJTkVTLnZhbHVlcygpOgorICAgICAgICAgICAgc2VsZi50ZXN0c19ieV90
aW1lbGluZVt0aW1lbGluZV0gPSBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dpdGhfdGltZWxpbmUo
dGltZWxpbmUpCisgICAgICAgIHNlbGYuc2xvd190ZXN0cyA9IHNldCgpCisgICAgICAgIHNlbGYu
aW50ZXJydXB0ZWQgPSBGYWxzZQorCisgICAgZGVmIGFkZChzZWxmLCB0ZXN0X3Jlc3VsdCwgZXhw
ZWN0ZWQsIHRlc3RfaXNfc2xvdyk6CisgICAgICAgIHNlbGYudGVzdHNfYnlfZXhwZWN0YXRpb25b
dGVzdF9yZXN1bHQudHlwZV0uYWRkKHRlc3RfcmVzdWx0LnRlc3RfbmFtZSkKKyAgICAgICAgc2Vs
Zi5yZXN1bHRzX2J5X25hbWVbdGVzdF9yZXN1bHQudGVzdF9uYW1lXSA9IHRlc3RfcmVzdWx0Cisg
ICAgICAgIGlmIHRlc3RfcmVzdWx0LnR5cGUgIT0gU0tJUDoKKyAgICAgICAgICAgIHNlbGYuYWxs
X3Jlc3VsdHMuYXBwZW5kKHRlc3RfcmVzdWx0KQorICAgICAgICBzZWxmLnJlbWFpbmluZyAtPSAx
CisgICAgICAgIGlmIGxlbih0ZXN0X3Jlc3VsdC5mYWlsdXJlcyk6CisgICAgICAgICAgICBzZWxm
LnRvdGFsX2ZhaWx1cmVzICs9IDEKKyAgICAgICAgICAgIHNlbGYuZmFpbHVyZXNfYnlfbmFtZVt0
ZXN0X3Jlc3VsdC50ZXN0X25hbWVdID0gdGVzdF9yZXN1bHQuZmFpbHVyZXMKKyAgICAgICAgaWYg
ZXhwZWN0ZWQ6CisgICAgICAgICAgICBzZWxmLmV4cGVjdGVkICs9IDEKKyAgICAgICAgICAgIGlm
IHRlc3RfcmVzdWx0LnR5cGUgPT0gU0tJUDoKKyAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVk
X3NraXBzICs9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9y
ZXN1bHRzX2J5X25hbWVbdGVzdF9yZXN1bHQudGVzdF9uYW1lXSA9IHRlc3RfcmVzdWx0CisgICAg
ICAgICAgICBzZWxmLnVuZXhwZWN0ZWQgKz0gMQorICAgICAgICAgICAgaWYgbGVuKHRlc3RfcmVz
dWx0LmZhaWx1cmVzKToKKyAgICAgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfZmFpbHVyZXMg
Kz0gMQorICAgICAgICAgICAgaWYgdGVzdF9yZXN1bHQudHlwZSA9PSBDUkFTSDoKKyAgICAgICAg
ICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfY3Jhc2hlcyArPSAxCisgICAgICAgICAgICBlbGlmIHRl
c3RfcmVzdWx0LnR5cGUgPT0gVElNRU9VVDoKKyAgICAgICAgICAgICAgICBzZWxmLnVuZXhwZWN0
ZWRfdGltZW91dHMgKz0gMQorICAgICAgICBpZiB0ZXN0X2lzX3Nsb3c6CisgICAgICAgICAgICBz
ZWxmLnNsb3dfdGVzdHMuYWRkKHRlc3RfcmVzdWx0LnRlc3RfbmFtZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdy
YXRpb250ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKaW5kZXggYThhZmY2Mjk0OTM5N2RkODBlMWQx
ZTNlMGY4MWQ4Yjk3NzFjYjg3MS4uNGI2N2Y2YzA4NDhkZTI4ZmZiMmMxOGE3YTg2MjNkN2E3OWZi
OWUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAg
LTE1MCwxMSArMTUwLDExIEBAIGRlZiBnZXRfdGVzdF9yZXN1bHRzKGFyZ3MsIGhvc3Q9Tm9uZSk6
CiAgICAgICAgIG9jLnJlc3RvcmVfb3V0cHV0KCkKIAogICAgIGFsbF9yZXN1bHRzID0gW10KLSAg
ICBpZiBydW5fZGV0YWlscy5yZXN1bHRfc3VtbWFyeToKLSAgICAgICAgYWxsX3Jlc3VsdHMuZXh0
ZW5kKHJ1bl9kZXRhaWxzLnJlc3VsdF9zdW1tYXJ5LmFsbF9yZXN1bHRzKQorICAgIGlmIHJ1bl9k
ZXRhaWxzLmluaXRpYWxfcmVzdWx0czoKKyAgICAgICAgYWxsX3Jlc3VsdHMuZXh0ZW5kKHJ1bl9k
ZXRhaWxzLmluaXRpYWxfcmVzdWx0cy5hbGxfcmVzdWx0cykKIAotICAgIGlmIHJ1bl9kZXRhaWxz
LnJldHJ5X3N1bW1hcnk6Ci0gICAgICAgIGFsbF9yZXN1bHRzLmV4dGVuZChydW5fZGV0YWlscy5y
ZXRyeV9zdW1tYXJ5LmFsbF9yZXN1bHRzKQorICAgIGlmIHJ1bl9kZXRhaWxzLnJldHJ5X3Jlc3Vs
dHM6CisgICAgICAgIGFsbF9yZXN1bHRzLmV4dGVuZChydW5fZGV0YWlscy5yZXRyeV9yZXN1bHRz
LmFsbF9yZXN1bHRzKQogICAgIHJldHVybiBhbGxfcmVzdWx0cwogCiAKQEAgLTI3NywxNSArMjc3
LDE1IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4
aW4pOgogICAgICAgICBkZXRhaWxzID0gcnVuX3dlYmtpdF90ZXN0cy5ydW4ocG9ydF9vYmosIG9w
dGlvbnMsIGFyZ3MsIGxvZ2dpbmdfc3RyZWFtKQogCiAgICAgICAgICMgVGhlc2UgbnVtYmVycyB3
aWxsIG5lZWQgdG8gYmUgdXBkYXRlZCB3aGVuZXZlciB3ZSBhZGQgbmV3IHRlc3RzLgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGRldGFpbHMucmVzdWx0X3N1bW1hcnkudG90YWwsIHRlc3QuVE9U
QUxfVEVTVFMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGV0YWlscy5yZXN1bHRfc3VtbWFy
eS5leHBlY3RlZF9za2lwcywgdGVzdC5UT1RBTF9TS0lQUykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oZGV0YWlscy5yZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkX3Jlc3VsdHMpLCB0ZXN0
LlVORVhQRUNURURfUEFTU0VTICsgdGVzdC5VTkVYUEVDVEVEX0ZBSUxVUkVTKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGRldGFpbHMuaW5pdGlhbF9yZXN1bHRzLnRvdGFsLCB0ZXN0LlRPVEFM
X1RFU1RTKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRldGFpbHMuaW5pdGlhbF9yZXN1bHRz
LmV4cGVjdGVkX3NraXBzLCB0ZXN0LlRPVEFMX1NLSVBTKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihkZXRhaWxzLmluaXRpYWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFt
ZSksIHRlc3QuVU5FWFBFQ1RFRF9QQVNTRVMgKyB0ZXN0LlVORVhQRUNURURfRkFJTFVSRVMpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGV0YWlscy5leGl0X2NvZGUsIHRlc3QuVU5FWFBFQ1RF
RF9GQUlMVVJFUykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZXRhaWxzLnJldHJ5X3N1bW1h
cnkudG90YWwsIHRlc3QuVE9UQUxfUkVUUklFUykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
ZXRhaWxzLnJldHJ5X3Jlc3VsdHMudG90YWwsIHRlc3QuVE9UQUxfUkVUUklFUykKIAogICAgICAg
ICBvbmVfbGluZV9zdW1tYXJ5ID0gIiVkIHRlc3RzIHJhbiBhcyBleHBlY3RlZCwgJWQgZGlkbid0
OlxuIiAlICgKLSAgICAgICAgICAgIGRldGFpbHMucmVzdWx0X3N1bW1hcnkudG90YWwgLSBkZXRh
aWxzLnJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzIC0gbGVuKGRldGFpbHMucmVzdWx0X3N1
bW1hcnkudW5leHBlY3RlZF9yZXN1bHRzKSwKLSAgICAgICAgICAgIGxlbihkZXRhaWxzLnJlc3Vs
dF9zdW1tYXJ5LnVuZXhwZWN0ZWRfcmVzdWx0cykpCisgICAgICAgICAgICBkZXRhaWxzLmluaXRp
YWxfcmVzdWx0cy50b3RhbCAtIGRldGFpbHMuaW5pdGlhbF9yZXN1bHRzLmV4cGVjdGVkX3NraXBz
IC0gbGVuKGRldGFpbHMuaW5pdGlhbF9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVzdWx0c19ieV9uYW1l
KSwKKyAgICAgICAgICAgIGxlbihkZXRhaWxzLmluaXRpYWxfcmVzdWx0cy51bmV4cGVjdGVkX3Jl
c3VsdHNfYnlfbmFtZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvbmVfbGluZV9zdW1tYXJ5
IGluIGxvZ2dpbmdfc3RyZWFtLmJ1Zmxpc3QpCiAKICAgICAgICAgIyBFbnN1cmUgdGhlIHJlc3Vs
dHMgd2VyZSBzdW1tYXJpemVkIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0cy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHMucHkKaW5k
ZXggYTY0NGNlODA1ZjljYWM3MmMyOTU3YTI3YzczNjQ1NDEwZTQzMzE1OS4uY2NiMzA1Y2M0ODQy
NGYxYjU4MzQ4OWM4MjI2ZDM3OTdlMWFiZGU5MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzLnB5
CkBAIC00OCw0MiArNDgsNDEgQEAgY2xhc3MgQnVpbGRCb3RQcmludGVyKG9iamVjdCk6CiAKICAg
ICBkZWYgcHJpbnRfcmVzdWx0cyhzZWxmLCBydW5fZGV0YWlscyk6CiAgICAgICAgIGlmIHNlbGYu
ZGVidWdfbG9nZ2luZzoKLSAgICAgICAgICAgIHNlbGYucHJpbnRfcmVzdWx0X3N1bW1hcnkocnVu
X2RldGFpbHMucmVzdWx0X3N1bW1hcnkpCisgICAgICAgICAgICBzZWxmLnByaW50X3J1bl9yZXN1
bHRzKHJ1bl9kZXRhaWxzLnJ1bl9yZXN1bHRzKQogICAgICAgICBzZWxmLnByaW50X3VuZXhwZWN0
ZWRfcmVzdWx0cyhydW5fZGV0YWlscy5zdW1tYXJpemVkX3Jlc3VsdHMpCiAKICAgICBkZWYgX3By
aW50KHNlbGYsIG1zZyk6CiAgICAgICAgIHNlbGYuc3RyZWFtLndyaXRlKG1zZyArICdcbicpCiAK
LSAgICBkZWYgcHJpbnRfcmVzdWx0X3N1bW1hcnkoc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgotICAg
ICAgICBmYWlsZWQgPSByZXN1bHRfc3VtbWFyeS50b3RhbF9mYWlsdXJlcwotICAgICAgICB0b3Rh
bCA9IHJlc3VsdF9zdW1tYXJ5LnRvdGFsCi0gICAgICAgIHBhc3NlZCA9IHRvdGFsIC0gZmFpbGVk
IC0gcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nCisgICAgZGVmIHByaW50X3J1bl9yZXN1bHRzKHNl
bGYsIHJ1bl9yZXN1bHRzKToKKyAgICAgICAgZmFpbGVkID0gcnVuX3Jlc3VsdHMudG90YWxfZmFp
bHVyZXMKKyAgICAgICAgdG90YWwgPSBydW5fcmVzdWx0cy50b3RhbAorICAgICAgICBwYXNzZWQg
PSB0b3RhbCAtIGZhaWxlZCAtIHJ1bl9yZXN1bHRzLnJlbWFpbmluZwogICAgICAgICBwZXJjZW50
X3Bhc3NlZCA9IDAuMAogICAgICAgICBpZiB0b3RhbCA+IDA6CiAgICAgICAgICAgICBwZXJjZW50
X3Bhc3NlZCA9IGZsb2F0KHBhc3NlZCkgKiAxMDAgLyB0b3RhbAogCiAgICAgICAgIHNlbGYuX3By
aW50KCI9PiBSZXN1bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUgKHBhc3NlZCwg
dG90YWwsIHBlcmNlbnRfcGFzc2VkKSkKICAgICAgICAgc2VsZi5fcHJpbnQoIiIpCi0gICAgICAg
IHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LCB0ZXN0X2V4
cGVjdGF0aW9ucy5OT1csICJUZXN0cyB0byBiZSBmaXhlZCIpCisgICAgICAgIHNlbGYuX3ByaW50
X3J1bl9yZXN1bHRzX2VudHJ5KHJ1bl9yZXN1bHRzLCB0ZXN0X2V4cGVjdGF0aW9ucy5OT1csICJU
ZXN0cyB0byBiZSBmaXhlZCIpCiAKICAgICAgICAgc2VsZi5fcHJpbnQoIiIpCiAgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZCBiZSBza2lwcGluZyBhbnl0aGluZyBtYXJrZWQgV09OVEZJWCwgc28g
d2Ugc2hvdWxkbid0IGJvdGhlciBsb2dnaW5nIHRoZXNlIHN0YXRzLgotICAgICAgICBzZWxmLl9w
cmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlv
bnMuV09OVEZJWCwKKyAgICAgICAgc2VsZi5fcHJpbnRfcnVuX3Jlc3VsdHNfZW50cnkocnVuX3Jl
c3VsdHMsIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCiAgICAgICAgICAgICAiVGVzdHMgdGhh
dCB3aWxsIG9ubHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCkiKQogICAgICAgICBz
ZWxmLl9wcmludCgiIikKIAotICAgIGRlZiBfcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkoc2Vs
ZiwgcmVzdWx0X3N1bW1hcnksIHRpbWVsaW5lLCBoZWFkaW5nKToKLSAgICAgICAgdG90YWwgPSBs
ZW4ocmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKQorICAgIGRlZiBf
cHJpbnRfcnVuX3Jlc3VsdHNfZW50cnkoc2VsZiwgcnVuX3Jlc3VsdHMsIHRpbWVsaW5lLCBoZWFk
aW5nKToKKyAgICAgICAgdG90YWwgPSBsZW4ocnVuX3Jlc3VsdHMudGVzdHNfYnlfdGltZWxpbmVb
dGltZWxpbmVdKQogICAgICAgICBub3RfcGFzc2luZyA9ICh0b3RhbCAtCi0gICAgICAgICAgICBs
ZW4ocmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMu
UEFTU10gJgotICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5l
W3RpbWVsaW5lXSkpCisgICAgICAgICAgICBsZW4ocnVuX3Jlc3VsdHMudGVzdHNfYnlfZXhwZWN0
YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuUEFTU10gJgorICAgICAgICAgICAgICAgIHJ1bl9yZXN1
bHRzLnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkpCiAgICAgICAgIHNlbGYuX3ByaW50KCI9
PiAlcyAoJWQpOiIgJSAoaGVhZGluZywgbm90X3Bhc3NpbmcpKQogCiAgICAgICAgIGZvciByZXN1
bHQgaW4gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9PUkRFUjoKICAgICAgICAgICAgIGlm
IHJlc3VsdCBpbiAodGVzdF9leHBlY3RhdGlvbnMuUEFTUywgdGVzdF9leHBlY3RhdGlvbnMuU0tJ
UCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJlc3VsdHMgPSAocmVz
dWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bcmVzdWx0XSAmCi0gICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCisg
ICAgICAgICAgICByZXN1bHRzID0gKHJ1bl9yZXN1bHRzLnRlc3RzX2J5X2V4cGVjdGF0aW9uW3Jl
c3VsdF0gJiBydW5fcmVzdWx0cy50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCiAgICAgICAg
ICAgICBkZXNjID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlNbcmVz
dWx0XQogICAgICAgICAgICAgaWYgbm90X3Bhc3NpbmcgYW5kIGxlbihyZXN1bHRzKToKICAgICAg
ICAgICAgICAgICBwY3QgPSBsZW4ocmVzdWx0cykgKiAxMDAuMCAvIG5vdF9wYXNzaW5nCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJv
dF9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQppbmRleCBhZDQyMDVhNDNkOTJh
NWQyMzJjZDgxODJiYzhkZTU2NDBiYTE3M2NiLi5mMDhlNjUzODhmZDA4ZGI4MWI2NDg3NGQ4NTdk
ZGRhZjhiYTZmMzEwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3Qu
cHkKQEAgLTMzLDEwICszMywxMCBAQCBpbXBvcnQgdW5pdHRlc3QKIGZyb20gd2Via2l0cHkuY29t
bW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMuY29udHJvbGxlcnMgaW1wb3J0IG1hbmFnZXIKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscyBpbXBvcnQgcmVzdWx0X3N1bW1hcnkKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscyBpbXBvcnQgdGVzdF9ydW5fcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMudmlld3MgaW1wb3J0IGJ1aWxkYm90X3Jlc3VsdHMKIAogCkBAIC02MiwxMSArNjIsMTEgQEAg
Y2xhc3MgQnVpbGRCb3RQcmludGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlQXVkaW9NaXNtYXRjaCgpXQogICAg
ICAgICByZXR1cm4gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdF9uYW1lLCBmYWlsdXJlcz1m
YWlsdXJlcywgdGVzdF9ydW5fdGltZT1ydW5fdGltZSkKIAotICAgIGRlZiBnZXRfcmVzdWx0X3N1
bW1hcnkoc2VsZiwgcG9ydCwgdGVzdF9uYW1lcywgZXhwZWN0YXRpb25zX3N0cik6CisgICAgZGVm
IGdldF9ydW5fcmVzdWx0cyhzZWxmLCBwb3J0LCB0ZXN0X25hbWVzLCBleHBlY3RhdGlvbnNfc3Ry
KToKICAgICAgICAgcG9ydC50ZXN0X2V4cGVjdGF0aW9ucyA9IGxhbWJkYTogZXhwZWN0YXRpb25z
X3N0cgogICAgICAgICBwb3J0LnRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyA9IGxhbWJkYTog
Tm9uZQogICAgICAgICBleHBlY3RhdGlvbnMgPSB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0
YXRpb25zKHBvcnQsIHRlc3RfbmFtZXMpCi0gICAgICAgIHJzID0gcmVzdWx0X3N1bW1hcnkuUmVz
dWx0U3VtbWFyeShleHBlY3RhdGlvbnMsIGxlbih0ZXN0X25hbWVzKSkKKyAgICAgICAgcnMgPSB0
ZXN0X3J1bl9yZXN1bHRzLlRlc3RSdW5SZXN1bHRzKGV4cGVjdGF0aW9ucywgbGVuKHRlc3RfbmFt
ZXMpKQogICAgICAgICByZXR1cm4gdGVzdF9uYW1lcywgcnMsIGV4cGVjdGF0aW9ucwogCiAgICAg
ZGVmIHRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHNlbGYpOgpAQCAtMTAwLDcgKzEwMCw3
IEBAIGNsYXNzIEJ1aWxkQm90UHJpbnRlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgICIiIgogICAgICAgICAgICAgcG9ydCA9IE1vY2tIb3N0KCkucG9ydF9mYWN0b3J5Lmdl
dCgndGVzdCcpCiAgICAgICAgICAgICB0ZXN0X2lzX3Nsb3cgPSBGYWxzZQotICAgICAgICAgICAg
cGF0aHMsIHJzLCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFyeShwb3J0LCB0ZXN0cywgZXhw
ZWN0YXRpb25zKQorICAgICAgICAgICAgcGF0aHMsIHJzLCBleHAgPSBzZWxmLmdldF9ydW5fcmVz
dWx0cyhwb3J0LCB0ZXN0cywgZXhwZWN0YXRpb25zKQogICAgICAgICAgICAgaWYgZXhwZWN0ZWQ6
CiAgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRt
bCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAg
ICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2F1
ZGlvLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5BVURJTyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Ns
b3cpCkBAIC0xMTgsNyArMTE4LDcgQEAgY2xhc3MgQnVpbGRCb3RQcmludGVyVGVzdHModW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwg
ZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgIHJldHJ5ID0gcnMKICAgICAgICAg
ICAgIGlmIGZsYWt5OgotICAgICAgICAgICAgICAgIHBhdGhzLCByZXRyeSwgZXhwID0gc2VsZi5n
ZXRfcmVzdWx0X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAg
ICAgICBwYXRocywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3J1bl9yZXN1bHRzKHBvcnQsIHRlc3Rz
LCBleHBlY3RhdGlvbnMpCiAgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICAg
ICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvYXVkaW8uaHRt
bCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUsIHRlc3Rf
aXNfc2xvdykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3ZpZXdzL3ByaW50aW5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dmlld3MvcHJpbnRpbmcucHkKaW5kZXggNDcwNjMyY2FmMjZkYWIzMDY4YjRkN2FkMjJhNTM2Y2Zh
NjU1N2IxMC4uMzI1MjUxZTEzYmEzZTU1MTYzNDFlYjMyOWRiZTIyM2YwYTNjMGUzMiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRp
bmcucHkKQEAgLTEwNSwxMCArMTA1LDEwIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAg
ICAgZm91bmRfc3RyICs9ICcsIHNraXBwaW5nICVkJyAlIChudW1fYWxsX3Rlc3RfZmlsZXMgLSBu
dW1fdW5pcXVlX3Rlc3RzKQogICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KGZvdW5kX3N0ciAr
ICcuJykKIAotICAgIGRlZiBwcmludF9leHBlY3RlZChzZWxmLCByZXN1bHRfc3VtbWFyeSwgdGVz
dHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6Ci0gICAgICAgIHNlbGYuX3ByaW50X2V4cGVj
dGVkX3Jlc3VsdHNfb2ZfdHlwZShyZXN1bHRfc3VtbWFyeSwgdGVzdF9leHBlY3RhdGlvbnMuUEFT
UywgInBhc3NlcyIsIHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2spCi0gICAgICAgIHNl
bGYuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlwZShyZXN1bHRfc3VtbWFyeSwgdGVzdF9l
eHBlY3RhdGlvbnMuRkFJTCwgImZhaWx1cmVzIiwgdGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxs
YmFjaykKLSAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHJlc3Vs
dF9zdW1tYXJ5LCB0ZXN0X2V4cGVjdGF0aW9ucy5GTEFLWSwgImZsYWt5IiwgdGVzdHNfd2l0aF9y
ZXN1bHRfdHlwZV9jYWxsYmFjaykKKyAgICBkZWYgcHJpbnRfZXhwZWN0ZWQoc2VsZiwgcnVuX3Jl
c3VsdHMsIHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVfY2FsbGJhY2spOgorICAgICAgICBzZWxmLl9w
cmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUocnVuX3Jlc3VsdHMsIHRlc3RfZXhwZWN0YXRp
b25zLlBBU1MsICJwYXNzZXMiLCB0ZXN0c193aXRoX3Jlc3VsdF90eXBlX2NhbGxiYWNrKQorICAg
ICAgICBzZWxmLl9wcmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUocnVuX3Jlc3VsdHMsIHRl
c3RfZXhwZWN0YXRpb25zLkZBSUwsICJmYWlsdXJlcyIsIHRlc3RzX3dpdGhfcmVzdWx0X3R5cGVf
Y2FsbGJhY2spCisgICAgICAgIHNlbGYuX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNfb2ZfdHlwZShy
dW5fcmVzdWx0cywgdGVzdF9leHBlY3RhdGlvbnMuRkxBS1ksICJmbGFreSIsIHRlc3RzX3dpdGhf
cmVzdWx0X3R5cGVfY2FsbGJhY2spCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCcnKQogCiAg
ICAgZGVmIHByaW50X3dvcmtlcnNfYW5kX3NoYXJkcyhzZWxmLCBudW1fd29ya2VycywgbnVtX3No
YXJkcywgbnVtX2xvY2tlZF9zaGFyZHMpOgpAQCAtMTIwLDEwICsxMjAsMTAgQEAgY2xhc3MgUHJp
bnRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIChudW1fd29ya2VycywgZHJpdmVyX25hbWUs
IG51bV9zaGFyZHMsIG51bV9sb2NrZWRfc2hhcmRzKSkKICAgICAgICAgc2VsZi5fcHJpbnRfZGVm
YXVsdCgnJykKIAotICAgIGRlZiBfcHJpbnRfZXhwZWN0ZWRfcmVzdWx0c19vZl90eXBlKHNlbGYs
IHJlc3VsdF9zdW1tYXJ5LCByZXN1bHRfdHlwZSwgcmVzdWx0X3R5cGVfc3RyLCB0ZXN0c193aXRo
X3Jlc3VsdF90eXBlX2NhbGxiYWNrKToKKyAgICBkZWYgX3ByaW50X2V4cGVjdGVkX3Jlc3VsdHNf
b2ZfdHlwZShzZWxmLCBydW5fcmVzdWx0cywgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBlX3N0ciwg
dGVzdHNfd2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayk6CiAgICAgICAgIHRlc3RzID0gdGVzdHNf
d2l0aF9yZXN1bHRfdHlwZV9jYWxsYmFjayhyZXN1bHRfdHlwZSkKLSAgICAgICAgbm93ID0gcmVz
dWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGVzdF9leHBlY3RhdGlvbnMuTk9XXQotICAg
ICAgICB3b250Zml4ID0gcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGVzdF9leHBl
Y3RhdGlvbnMuV09OVEZJWF0KKyAgICAgICAgbm93ID0gcnVuX3Jlc3VsdHMudGVzdHNfYnlfdGlt
ZWxpbmVbdGVzdF9leHBlY3RhdGlvbnMuTk9XXQorICAgICAgICB3b250Zml4ID0gcnVuX3Jlc3Vs
dHMudGVzdHNfYnlfdGltZWxpbmVbdGVzdF9leHBlY3RhdGlvbnMuV09OVEZJWF0KIAogICAgICAg
ICAjIFdlIHVzZSBhIGZhbmN5IGZvcm1hdCBzdHJpbmcgaW4gb3JkZXIgdG8gcHJpbnQgdGhlIGRh
dGEgb3V0IGluIGEKICAgICAgICAgIyBuaWNlbHktYWxpZ25lZCB0YWJsZS4KQEAgLTEzNywyNyAr
MTM3LDI3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgIG5kaWdpdHMgPSBp
bnQobWF0aC5sb2cxMChsZW4obnVtKSkpICsgMQogICAgICAgICByZXR1cm4gbmRpZ2l0cwogCi0g
ICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3RpbWUsIHJlc3VsdF9zdW1tYXJ5LCBzdW1t
YXJpemVkX3Jlc3VsdHMpOgotICAgICAgICBzZWxmLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyhy
dW5fdGltZSwgcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3ByaW50X29uZV9saW5lX3N1
bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lw
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5l
eHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQpCisgICAgZGVm
IHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3RpbWUsIHJ1bl9yZXN1bHRzLCBzdW1tYXJpemVkX3Jl
c3VsdHMpOgorICAgICAgICBzZWxmLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyhydW5fdGltZSwg
cnVuX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuX3ByaW50X29uZV9saW5lX3N1bW1hcnkocnVuX3Jl
c3VsdHMudG90YWwgLSBydW5fcmVzdWx0cy5leHBlY3RlZF9za2lwcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5fcmVzdWx0cy5leHBlY3RlZCAtIHJ1bl9yZXN1bHRz
LmV4cGVjdGVkX3NraXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9yZXN1bHRzLnVuZXhwZWN0ZWQpCiAKLSAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNz
KHNlbGYsIHRvdGFsX3RpbWUsIHJlc3VsdF9zdW1tYXJ5KToKKyAgICBkZWYgX3ByaW50X3RpbWlu
Z19zdGF0aXN0aWNzKHNlbGYsIHRvdGFsX3RpbWUsIHJ1bl9yZXN1bHRzKToKICAgICAgICAgc2Vs
Zi5fcHJpbnRfZGVidWcoIlRlc3QgdGltaW5nOiIpCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVn
KCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0b3RhbF90aW1lKQogICAgICAgICBzZWxm
Ll9wcmludF9kZWJ1ZygiIikKIAotICAgICAgICBzZWxmLl9wcmludF93b3JrZXJfc3RhdGlzdGlj
cyhyZXN1bHRfc3VtbWFyeSwgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkKLSAg
ICAgICAgc2VsZi5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhyZXN1bHRfc3VtbWFy
eSkKLSAgICAgICAgc2VsZi5fcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKHJlc3VsdF9zdW1t
YXJ5KQotICAgICAgICBzZWxmLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhyZXN1bHRfc3VtbWFy
eSkKKyAgICAgICAgc2VsZi5fcHJpbnRfd29ya2VyX3N0YXRpc3RpY3MocnVuX3Jlc3VsdHMsIGlu
dChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykpCisgICAgICAgIHNlbGYuX3ByaW50X2Fn
Z3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3MocnVuX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuX3ByaW50
X2luZGl2aWR1YWxfdGVzdF90aW1lcyhydW5fcmVzdWx0cykKKyAgICAgICAgc2VsZi5fcHJpbnRf
ZGlyZWN0b3J5X3RpbWluZ3MocnVuX3Jlc3VsdHMpCiAKLSAgICBkZWYgX3ByaW50X3dvcmtlcl9z
dGF0aXN0aWNzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCBudW1fd29ya2Vycyk6CisgICAgZGVmIF9w
cmludF93b3JrZXJfc3RhdGlzdGljcyhzZWxmLCBydW5fcmVzdWx0cywgbnVtX3dvcmtlcnMpOgog
ICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiVGhyZWFkIHRpbWluZzoiKQogICAgICAgICBzdGF0
cyA9IHt9CiAgICAgICAgIGN1bWxfdGltZSA9IDAKLSAgICAgICAgZm9yIHJlc3VsdCBpbiByZXN1
bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygpOgorICAgICAgICBmb3IgcmVzdWx0IGluIHJ1bl9y
ZXN1bHRzLnJlc3VsdHNfYnlfbmFtZS52YWx1ZXMoKToKICAgICAgICAgICAgIHN0YXRzLnNldGRl
ZmF1bHQocmVzdWx0Lndvcmtlcl9uYW1lLCB7J251bV90ZXN0cyc6IDAsICd0b3RhbF90aW1lJzog
MH0pCiAgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWydudW1fdGVzdHMnXSAr
PSAxCiAgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWyd0b3RhbF90aW1lJ10g
Kz0gcmVzdWx0LnRvdGFsX3J1bl90aW1lCkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBjbGFzcyBQcmlu
dGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIgICAlNi4yZiBjdW11bGF0
aXZlLCAlNi4yZiBvcHRpbWFsIiAlIChjdW1sX3RpbWUsIGN1bWxfdGltZSAvIG51bV93b3JrZXJz
KSkKICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCiAKLSAgICBkZWYgX3ByaW50X2FnZ3Jl
Z2F0ZV90ZXN0X3N0YXRpc3RpY3Moc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgotICAgICAgICB0aW1l
c19mb3JfZHVtcF9yZW5kZXJfdHJlZSA9IFtyZXN1bHQudGVzdF9ydW5fdGltZSBmb3IgcmVzdWx0
IGluIHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMudmFsdWVzKCldCisgICAgZGVmIF9wcmludF9hZ2dy
ZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIHJ1bl9yZXN1bHRzKToKKyAgICAgICAgdGltZXNf
Zm9yX2R1bXBfcmVuZGVyX3RyZWUgPSBbcmVzdWx0LnRlc3RfcnVuX3RpbWUgZm9yIHJlc3VsdCBp
biBydW5fcmVzdWx0cy5yZXN1bHRzX2J5X25hbWUudmFsdWVzKCldCiAgICAgICAgIHNlbGYuX3By
aW50X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGltaW5ncygiUEVSIFRFU1QgVElNRSBJTiBURVNUU0hF
TEwgKHNlY29uZHMpOiIsIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlKQogCi0gICAgZGVmIF9w
cmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMoc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgorICAgIGRl
ZiBfcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIHJ1bl9yZXN1bHRzKToKICAgICAg
ICAgIyBSZXZlcnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVtcFJlbmRlclRyZWUuCiAK
LSAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MgPSBzb3J0ZWQocmVzdWx0X3N1bW1hcnku
cmVzdWx0cy52YWx1ZXMoKSwga2V5PWxhbWJkYSByZXN1bHQ6IHJlc3VsdC50ZXN0X3J1bl90aW1l
LCByZXZlcnNlPVRydWUpCisgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzID0gc29ydGVk
KHJ1bl9yZXN1bHRzLnJlc3VsdHNfYnlfbmFtZS52YWx1ZXMoKSwga2V5PWxhbWJkYSByZXN1bHQ6
IHJlc3VsdC50ZXN0X3J1bl90aW1lLCByZXZlcnNlPVRydWUpCiAgICAgICAgIG51bV9wcmludGVk
ID0gMAogICAgICAgICBzbG93X3Rlc3RzID0gW10KICAgICAgICAgdGltZW91dF9vcl9jcmFzaF90
ZXN0cyA9IFtdCkBAIC0xODMsMTIgKzE4MywxMiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAg
ICAgICAgIGZvciB0ZXN0X3R1cGxlIGluIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOgogICAgICAg
ICAgICAgdGVzdF9uYW1lID0gdGVzdF90dXBsZS50ZXN0X25hbWUKICAgICAgICAgICAgIGlzX3Rp
bWVvdXRfY3Jhc2hfb3Jfc2xvdyA9IEZhbHNlCi0gICAgICAgICAgICBpZiB0ZXN0X25hbWUgaW4g
cmVzdWx0X3N1bW1hcnkuc2xvd190ZXN0czoKKyAgICAgICAgICAgIGlmIHRlc3RfbmFtZSBpbiBy
dW5fcmVzdWx0cy5zbG93X3Rlc3RzOgogICAgICAgICAgICAgICAgIGlzX3RpbWVvdXRfY3Jhc2hf
b3Jfc2xvdyA9IFRydWUKICAgICAgICAgICAgICAgICBzbG93X3Rlc3RzLmFwcGVuZCh0ZXN0X3R1
cGxlKQogCi0gICAgICAgICAgICBpZiB0ZXN0X25hbWUgaW4gcmVzdWx0X3N1bW1hcnkuZmFpbHVy
ZXM6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0X3N1bW1hcnkucmVzdWx0c1t0ZXN0
X25hbWVdLnR5cGUKKyAgICAgICAgICAgIGlmIHRlc3RfbmFtZSBpbiBydW5fcmVzdWx0cy5mYWls
dXJlc19ieV9uYW1lOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJ1bl9yZXN1bHRzLnJlc3Vs
dHNfYnlfbmFtZVt0ZXN0X25hbWVdLnR5cGUKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09
IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQgb3IKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
ID09IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKToKICAgICAgICAgICAgICAgICAgICAgaXNfdGlt
ZW91dF9jcmFzaF9vcl9zbG93ID0gVHJ1ZQpAQCAtMjEzLDkgKzIxMyw5IEBAIGNsYXNzIFByaW50
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHRlc3RfcnVuX3RpbWUgPSByb3VuZCh0ZXN0X3R1cGxl
LnRlc3RfcnVuX3RpbWUsIDEpCiAgICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAlcyB0
b29rICVzIHNlY29uZHMiICUgKHRlc3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90aW1lKSkK
IAotICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgcmVzdWx0X3N1bW1hcnkp
OgorICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgcnVuX3Jlc3VsdHMpOgog
ICAgICAgICBzdGF0cyA9IHt9Ci0gICAgICAgIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnku
cmVzdWx0cy52YWx1ZXMoKToKKyAgICAgICAgZm9yIHJlc3VsdCBpbiBydW5fcmVzdWx0cy5yZXN1
bHRzX2J5X25hbWUudmFsdWVzKCk6CiAgICAgICAgICAgICBzdGF0cy5zZXRkZWZhdWx0KHJlc3Vs
dC5zaGFyZF9uYW1lLCB7J251bV90ZXN0cyc6IDAsICd0b3RhbF90aW1lJzogMH0pCiAgICAgICAg
ICAgICBzdGF0c1tyZXN1bHQuc2hhcmRfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKICAgICAgICAg
ICAgIHN0YXRzW3Jlc3VsdC5zaGFyZF9uYW1lXVsndG90YWxfdGltZSddICs9IHJlc3VsdC50b3Rh
bF9ydW5fdGltZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQppbmRleCA4NWE0ZjBkY2NjZjdh
NDIzZTBkODdjMWI2Yzg1M2JhODc0MDkwMTVlLi5hNzk3MjY4ZjE2ZjFiYjA0MmRlYzQ3NWY5N2Zh
OTgyMmU2OWY3NzY5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtMzksNyArMzks
NiBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGxvZ3Rlc3RpbmcKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250
cm9sbGVycyBpbXBvcnQgbWFuYWdlcgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxz
IGltcG9ydCByZXN1bHRfc3VtbWFyeQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxz
IGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2Rl
bHMgaW1wb3J0IHRlc3RfcmVzdWx0cwo=
</data>
<flag name="review"
          id="195949"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>