<?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>91439</bug_id>
          
          <creation_ts>2012-07-16 16:01:55 -0700</creation_ts>
          <short_desc>nrwt: move a bunch of printing code from manager.py to printing.py</short_desc>
          <delta_ts>2012-07-16 16:46:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670749</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-16 16:01:55 -0700</bug_when>
    <thetext>nrwt: move a bunch of printing code from manager.py to printing.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670756</commentid>
    <comment_count>1</comment_count>
      <attachid>152635</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-16 16:06:05 -0700</bug_when>
    <thetext>Created attachment 152635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670762</commentid>
    <comment_count>2</comment_count>
      <attachid>152635</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-07-16 16:15:45 -0700</bug_when>
    <thetext>Comment on attachment 152635
Patch

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

&gt; Tools/ChangeLog:10
&gt; +        live in printing.py; this patch moves a large chunk of hit that
&gt; +        prints all of the stuff after the run completes.

This sentence is missing some words. Not sure what it&apos;s supposed to say. :)

&gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:207
&gt; +                               directory_test_timings, individual_test_timings,
&gt; +                               result_summary):

This indentation is funny

&gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:245
&gt; +                                  result_summary):

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670776</commentid>
    <comment_count>3</comment_count>
      <attachid>152642</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-16 16:39:57 -0700</bug_when>
    <thetext>Created attachment 152642
fix typos from review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670780</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-16 16:46:18 -0700</bug_when>
    <thetext>Committed r122777: &lt;http://trac.webkit.org/changeset/122777&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152635</attachid>
            <date>2012-07-16 16:06:05 -0700</date>
            <delta_ts>2012-07-16 16:39:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91439-20120716160604.patch</filename>
            <type>text/plain</type>
            <size>35068</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjczNDY0NjgwZWVkM2IyMThhYzViN2RiNmY2MmRjMjY1
YzdiYzQ2MS4uNzI0YjkxZTQ5MmI3YWY0NGQyZjY0YTFhNjg3ZDU2YzlmYWI5YjkzNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0
IEBACiAyMDEyLTA3LTE2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IG1vdmUgYSBidW5jaCBvZiBwcmludGluZyBjb2RlIGZyb20gbWFuYWdlci5w
eSB0byBwcmludGluZy5weQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTE0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBbGwgb2YgdGhlIGxvZ2ljIHRoYXQgaGFuZGxlcyB3aGF0IGdldHMgbG9nZ2VkIHNo
b3VsZCBldmVudHVhbGx5CisgICAgICAgIGxpdmUgaW4gcHJpbnRpbmcucHk7IHRoaXMgcGF0Y2gg
bW92ZXMgYSBsYXJnZSBjaHVuayBvZiBoaXQgdGhhdAorICAgICAgICBwcmludHMgYWxsIG9mIHRo
ZSBzdHVmZiBhZnRlciB0aGUgcnVuIGNvbXBsZXRlcy4KKworICAgICAgICBUaGVyZSBhcmUgbm8g
ZnVuY3Rpb25hbCBjaGFuZ2VzLCB0aGlzIGlzIGp1c3QgbW92aW5nIGNvZGUKKyAgICAgICAgYXJv
dW5kLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzICh1cGRhdGVkIGFzIG5lY2Vzc2FyeSkuCisK
KyAgICAgICAgVGhpcyBjb2RlIGlzIGFsbCBwcmV0dHkgbWVzc3kgYW5kIG1vc3Qgb2YgaXQgc2hv
dWxkIGJlIGRlbGV0ZWQKKyAgICAgICAgKG9yIGV4dHJhY3RlZCBhZnRlciB0aGUgZmFjdCBmcm9t
IHJlc3VsdHMuanNvbiksIGJ1dCBJJ20gc2F2aW5nCisgICAgICAgIHRoYXQgZm9yIGZ1cnRoZXIg
cGF0Y2hlcy4gTXkgZ29hbCBpcyBqdXN0IHRvIG1hbmFnZXIucHkgdG8gYQorICAgICAgICBtb3Jl
IG1hbmFnZWFibGUgc3RhdGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5OgorICAgICAgICAoTWFuYWdlci5wcmVwYXJlX2xp
c3RzX2FuZF9wcmludF9vdXRwdXQpOgorICAgICAgICAoTWFuYWdlci5ydW4pOgorICAgICAgICAo
TWFuYWdlci5fbWFya19pbnRlcnJ1cHRlZF90ZXN0c19hc19za2lwcGVkKToKKyAgICAgICAgKE1h
bmFnZXIuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KToKKyAgICAgICAgKE1hbmFnZXIuX251
bV9kaWdpdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChNYW5hZ2VyVGVzdC50ZXN0X2lu
dGVycnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVz
dC5zdW1tYXJpemVkX3Jlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy9yZXN1bHRfc3VtbWFyeS5weToKKyAgICAgICAgKFJlc3VsdFN1bW1hcnku
X19pbml0X18pOgorICAgICAgICAoUmVzdWx0U3VtbWFyeS5hZGQpOgorICAgICAgICBIZXJlIHdl
IGhhZCB0byBhZGQgYSBsaXN0IG9mIHRoZSBzbG93IHRlc3RzIHRvIHRoZSByZXN1bHQKKyAgICAg
ICAgc3VtbWFyeSBzbyB0aGF0IHdlIGRpZG4ndCBuZWVkIHRvIGNhbGwgYmFjayBpbnRvIHRoZSBt
YW5hZ2VyIGFuZAorICAgICAgICB0aGUgdGVzdCBleHBlY3RhdGlvbnMgb2JqZWN0IHRvIGZpZ3Vy
ZSBvdXQgaWYgYSB0ZXN0IGlzIFNMT1cuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHk6CisgICAgICAgIChQcmludGVyLnByaW50X3Jlc3Vs
dHMpOgorICAgICAgICAoUHJpbnRlcik6CisgICAgICAgIChQcmludGVyLl9wcmludF90aW1pbmdf
c3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0
aXN0aWNzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyk6
CisgICAgICAgIChQcmludGVyLl9wcmludF90ZXN0X2xpc3RfdGltaW5nKToKKyAgICAgICAgKFBy
aW50ZXIuX3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50
X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGltaW5ncyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9y
ZXN1bHRfc3VtbWFyeSk6CisgICAgICAgIChQcmludGVyLl9wcmludF9yZXN1bHRfc3VtbWFyeV9l
bnRyeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJp
bnRpbmdfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0cHJpbnRlci50ZXN0X3ByaW50X3VuZXhw
ZWN0ZWRfcmVzdWx0cy5nZXRfdW5leHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgKFRlc3Rwcmlu
dGVyKToKKworMjAxMi0wNy0xNiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
KwogICAgICAgICB0ZXN0LXdlYmtpdHB5OiBjbGVhbiB1cCBsb2dnaW5nIHRvIG1ha2UgaXQgbmlu
amEtZXNxdWUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkxMjk3CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CmluZGV4IDdhZWUwYzJmYjFlNzBjYWVhMWY2ZjYz
MGE3ZTNiMzg5NjMwNzQxODEuLmEzMmUxYTMwNWExNmU0MDk0ZjBhNjM3NTRmYzk1M2UzNDBhZGIw
YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpAQCAtNTI2LDcgKzUyNiw3IEBAIGNsYXNzIE1hbmFn
ZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJl
c3VsdCh0ZXN0KQogICAgICAgICAgICAgICAgIHJlc3VsdC50eXBlID0gdGVzdF9leHBlY3RhdGlv
bnMuU0tJUAogICAgICAgICAgICAgICAgIGZvciBpdGVyYXRpb24gaW4gcmFuZ2UoaXRlcmF0aW9u
cyk6Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQsIGV4cGVj
dGVkPVRydWUpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQs
IGV4cGVjdGVkPVRydWUsIHRlc3RfaXNfc2xvdz1zZWxmLl90ZXN0X2lzX3Nsb3codGVzdCkpCiAg
ICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfZXhwZWN0ZWQoJycpCiAKICAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy5yZXBlYXRfZWFjaCA+IDE6CkBAIC04ODIsMTMgKzg4Miw5IEBAIGNsYXNzIE1h
bmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fbG9va19mb3JfbmV3X2NyYXNoX2xvZ3MocmV0
cnlfc3VtbWFyeSwgc3RhcnRfdGltZSkKICAgICAgICAgc2VsZi5fY2xlYW5fdXBfcnVuKCkKIAot
ICAgICAgICBzZWxmLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyhlbmRfdGltZSAtIHN0YXJ0X3Rp
bWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdz
LCByZXN1bHRfc3VtbWFyeSkKLSAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnkocmVz
dWx0X3N1bW1hcnkpCi0KLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9vbmVfbGluZV9zdW1t
YXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMs
IHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMs
IHJlc3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWQpCi0KICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRz
ID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1
bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIG9ubHlf
dW5leHBlY3RlZD1UcnVlLCBpbnRlcnJ1cHRlZD1pbnRlcnJ1cHRlZCkKLSAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModW5leHBlY3RlZF9yZXN1bHRzKQorCisg
ICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcmVzdWx0cyhlbmRfdGltZSAtIHN0YXJ0X3RpbWUs
IHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCBy
ZXN1bHRfc3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRzKQogCiAgICAgICAgICMgUmUtcmFpc2Ug
YSBLZXlib2FyZEludGVycnVwdCBpZiBuZWNlc3Nhcnkgc28gdGhlIGNhbGxlciBjYW4gaGFuZGxl
IGl0LgogICAgICAgICBpZiBrZXlib2FyZF9pbnRlcnJ1cHRlZDoKQEAgLTk4NSw3ICs5ODEsNyBA
QCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogV2UgcHJv
YmFibHkgbmVlZCB0byBsb29wIGhlcmUgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGl0ZXJhdGlvbnMu
CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogQWxzbywgdGhlc2UgcmVzdWx0cyBhcmUgcmVhbGx5
IG5laXRoZXIgZXhwZWN0ZWQgbm9yIHVuZXhwZWN0ZWQuIFdlIHByb2JhYmx5CiAgICAgICAgICAg
ICAgICAgIyBuZWVkIGEgdGhpcmQgdHlwZSBvZiByZXN1bHQuCi0gICAgICAgICAgICAgICAgcmVz
dWx0X3N1bW1hcnkuYWRkKHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UpCisgICAgICAgICAgICAgICAg
cmVzdWx0X3N1bW1hcnkuYWRkKHJlc3VsdCwgZXhwZWN0ZWQ9RmFsc2UsIHRlc3RfaXNfc2xvdz1z
ZWxmLl90ZXN0X2lzX3Nsb3codGVzdF9uYW1lKSkKIAogICAgIGRlZiBfaW50ZXJydXB0X2lmX2F0
X2ZhaWx1cmVfbGltaXRzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIyBOb3RlOiBU
aGUgbWVzc2FnZXMgaW4gdGhpcyBtZXRob2QgYXJlIGNvbnN0cnVjdGVkIHRvIG1hdGNoIG9sZC1y
dW4td2Via2l0LXRlc3RzCkBAIC0xMDEwLDEwICsxMDA2LDEwIEBAIGNsYXNzIE1hbmFnZXIob2Jq
ZWN0KToKIAogICAgIGRlZiBfdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQoc2VsZiwgcmVzdWx0
X3N1bW1hcnksIHJlc3VsdCk6CiAgICAgICAgIGlmIHJlc3VsdC50eXBlID09IHRlc3RfZXhwZWN0
YXRpb25zLlNLSVA6Ci0gICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQocmVzdWx0LCBleHBl
Y3RlZD1UcnVlKQorICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuYWRkKHJlc3VsdCwgZXhwZWN0
ZWQ9VHJ1ZSwgdGVzdF9pc19zbG93PXNlbGYuX3Rlc3RfaXNfc2xvdyhyZXN1bHQudGVzdF9uYW1l
KSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRp
b25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHJlc3VsdC50ZXN0X25hbWUsIHJlc3VsdC50
eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIHRlc3RfZmFpbHVyZXMuaXNfcmVmdGVz
dF9mYWlsdXJlKHJlc3VsdC5mYWlsdXJlcykpCi0gICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5h
ZGQocmVzdWx0LCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1
bHQsIGV4cGVjdGVkLCBzZWxmLl90ZXN0X2lzX3Nsb3cocmVzdWx0LnRlc3RfbmFtZSkpCiAgICAg
ICAgICAgICBleHBfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLmdldF9leHBlY3RhdGlvbnNfc3Ry
aW5nKHJlc3VsdC50ZXN0X25hbWUpCiAgICAgICAgICAgICBnb3Rfc3RyID0gc2VsZi5fZXhwZWN0
YXRpb25zLmV4cGVjdGF0aW9uX3RvX3N0cmluZyhyZXN1bHQudHlwZSkKICAgICAgICAgICAgIHNl
bGYuX3ByaW50ZXIucHJpbnRfdGVzdF9yZXN1bHQocmVzdWx0LCBleHBlY3RlZCwgZXhwX3N0ciwg
Z290X3N0cikKQEAgLTExNjAsMjE3ICsxMTU2LDYgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgog
ICAgICAgICAgICAgbmRpZ2l0cyA9IGludChtYXRoLmxvZzEwKGxlbihudW0pKSkgKyAxCiAgICAg
ICAgIHJldHVybiBuZGlnaXRzCiAKLSAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHNl
bGYsIHRvdGFsX3RpbWUsIHRocmVhZF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAg
IiIiUmVjb3JkIHRpbWluZy1zcGVjaWZpYyBpbmZvcm1hdGlvbiBmb3IgdGhlIHRlc3QgcnVuLgot
Ci0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdG90YWxfdGltZTogdG90YWwgZWxhcHNlZCB0aW1l
IChpbiBzZWNvbmRzKSBmb3IgdGhlIHRlc3QgcnVuCi0gICAgICAgICAgdGhyZWFkX3RpbWluZ3M6
IHdhbGwgY2xvY2sgdGltZSBlYWNoIHRocmVhZCByYW4gZm9yCi0gICAgICAgICAgZGlyZWN0b3J5
X3Rlc3RfdGltaW5nczogdGltaW5nIGJ5IGRpcmVjdG9yeQotICAgICAgICAgIGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzOiB0aW1pbmcgYnkgZmlsZQotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBz
dW1tYXJ5IG9iamVjdCBmb3IgdGhlIHRlc3QgcnVuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
Ll9wcmludGVyLnByaW50X3RpbWluZygiVGVzdCB0aW1pbmc6IikKLSAgICAgICAgc2VsZi5fcHJp
bnRlci5wcmludF90aW1pbmcoIiAgJTYuMmYgdG90YWwgdGVzdGluZyB0aW1lIiAlIHRvdGFsX3Rp
bWUpCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIiKQotICAgICAgICBzZWxm
Ll9wcmludGVyLnByaW50X3RpbWluZygiVGhyZWFkIHRpbWluZzoiKQotICAgICAgICBjdW1sX3Rp
bWUgPSAwCi0gICAgICAgIGZvciB0IGluIHRocmVhZF90aW1pbmdzOgotICAgICAgICAgICAgc2Vs
Zi5fcHJpbnRlci5wcmludF90aW1pbmcoIiAgICAlMTBzOiAlNWQgdGVzdHMsICU2LjJmIHNlY3Mi
ICUKLSAgICAgICAgICAgICAgICAgICh0WyduYW1lJ10sIHRbJ251bV90ZXN0cyddLCB0Wyd0b3Rh
bF90aW1lJ10pKQotICAgICAgICAgICAgY3VtbF90aW1lICs9IHRbJ3RvdGFsX3RpbWUnXQotICAg
ICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygiICAgJTYuMmYgY3VtdWxhdGl2ZSwgJTYu
MmYgb3B0aW1hbCIgJQotICAgICAgICAgICAgICAoY3VtbF90aW1lLCBjdW1sX3RpbWUgLyBpbnQo
c2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKLSAgICAgICAgc2VsZi5fcHJpbnRlci5w
cmludF90aW1pbmcoIiIpCi0KLSAgICAgICAgc2VsZi5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3Rh
dGlzdGljcyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncykKLSAgICAgICAgc2VsZi5fcHJpbnRfaW5k
aXZpZHVhbF90ZXN0X3RpbWVzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNl
bGYuX3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpCi0KLSAg
ICBkZWYgX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Moc2VsZiwgaW5kaXZpZHVhbF90
ZXN0X3RpbWluZ3MpOgotICAgICAgICAiIiJQcmludHMgYWdncmVnYXRlIHN0YXRpc3RpY3MgKGUu
Zy4gbWVkaWFuLCBtZWFuLCBldGMuKSBmb3IgYWxsIHRlc3RzLgotICAgICAgICBBcmdzOgotICAg
ICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9mIFRlc3RSZXN1bHRzIGZvciBh
bGwgdGVzdHMuCi0gICAgICAgICIiIgotICAgICAgICB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJl
ZSA9IFt0ZXN0X3N0YXRzLnRlc3RfcnVuX3RpbWUgZm9yIHRlc3Rfc3RhdHMgaW4gaW5kaXZpZHVh
bF90ZXN0X3RpbWluZ3NdCi0gICAgICAgIHNlbGYuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3Rf
dGltaW5ncygiUEVSIFRFU1QgVElNRSBJTiBURVNUU0hFTEwgKHNlY29uZHMpOiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc19mb3JfZHVtcF9y
ZW5kZXJfdHJlZSkKLQotICAgIGRlZiBfcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYs
IGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAgIiIiUHJpbnRzIHRoZSBydW4gdGltZXMgZm9y
IHNsb3csIHRpbWVvdXQgYW5kIGNyYXNoIHRlc3RzLgotICAgICAgICBBcmdzOgotICAgICAgICAg
IGluZGl2aWR1YWxfdGVzdF90aW1pbmdzOiBMaXN0IG9mIFRlc3RTdGF0cyBmb3IgYWxsIHRlc3Rz
LgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCBmb3IgdGVzdCBydW4K
LSAgICAgICAgIiIiCi0gICAgICAgICMgUmV2ZXJzZS1zb3J0IGJ5IHRoZSB0aW1lIHNwZW50IGlu
IER1bXBSZW5kZXJUcmVlLgotICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncy5zb3J0KGxh
bWJkYSBhLCBiOgotICAgICAgICAgICAgY21wKGIudGVzdF9ydW5fdGltZSwgYS50ZXN0X3J1bl90
aW1lKSkKLQotICAgICAgICBudW1fcHJpbnRlZCA9IDAKLSAgICAgICAgc2xvd190ZXN0cyA9IFtd
Ci0gICAgICAgIHRpbWVvdXRfb3JfY3Jhc2hfdGVzdHMgPSBbXQotICAgICAgICB1bmV4cGVjdGVk
X3Nsb3dfdGVzdHMgPSBbXQotICAgICAgICBmb3IgdGVzdF90dXBsZSBpbiBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5nczoKLSAgICAgICAgICAgIHRlc3RfbmFtZSA9IHRlc3RfdHVwbGUudGVzdF9uYW1l
Ci0gICAgICAgICAgICBpc190aW1lb3V0X2NyYXNoX29yX3Nsb3cgPSBGYWxzZQotICAgICAgICAg
ICAgaWYgc2VsZi5fdGVzdF9pc19zbG93KHRlc3RfbmFtZSk6Ci0gICAgICAgICAgICAgICAgaXNf
dGltZW91dF9jcmFzaF9vcl9zbG93ID0gVHJ1ZQotICAgICAgICAgICAgICAgIHNsb3dfdGVzdHMu
YXBwZW5kKHRlc3RfdHVwbGUpCi0KLSAgICAgICAgICAgIGlmIHRlc3RfbmFtZSBpbiByZXN1bHRf
c3VtbWFyeS5mYWlsdXJlczoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHRfc3VtbWFy
eS5yZXN1bHRzW3Rlc3RfbmFtZV0udHlwZQotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0g
dGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCBvcgotICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PT0gdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpOgotICAgICAgICAgICAgICAgICAgICBpc190aW1l
b3V0X2NyYXNoX29yX3Nsb3cgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfb3Jf
Y3Jhc2hfdGVzdHMuYXBwZW5kKHRlc3RfdHVwbGUpCi0KLSAgICAgICAgICAgIGlmIChub3QgaXNf
dGltZW91dF9jcmFzaF9vcl9zbG93IGFuZAotICAgICAgICAgICAgICAgIG51bV9wcmludGVkIDwg
cHJpbnRpbmcuTlVNX1NMT1dfVEVTVFNfVE9fTE9HKToKLSAgICAgICAgICAgICAgICBudW1fcHJp
bnRlZCA9IG51bV9wcmludGVkICsgMQotICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfc2xvd190
ZXN0cy5hcHBlbmQodGVzdF90dXBsZSkKLQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Rp
bWluZygiIikKLSAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiJXMgc2xvd2Vz
dCB0ZXN0cyB0aGF0IGFyZSBub3QgIgotICAgICAgICAgICAgIm1hcmtlZCBhcyBTTE9XIGFuZCBk
aWQgbm90IHRpbWVvdXQvY3Jhc2g6IiAlCi0gICAgICAgICAgICBwcmludGluZy5OVU1fU0xPV19U
RVNUU19UT19MT0csIHVuZXhwZWN0ZWRfc2xvd190ZXN0cykKLSAgICAgICAgc2VsZi5fcHJpbnRl
ci5wcmludF90aW1pbmcoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmco
IlRlc3RzIG1hcmtlZCBhcyBTTE9XOiIsIHNsb3dfdGVzdHMpCi0gICAgICAgIHNlbGYuX3ByaW50
ZXIucHJpbnRfdGltaW5nKCIiKQotICAgICAgICBzZWxmLl9wcmludF90ZXN0X2xpc3RfdGltaW5n
KCJUZXN0cyB0aGF0IHRpbWVkIG91dCBvciBjcmFzaGVkOiIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZW91dF9vcl9jcmFzaF90ZXN0cykKLSAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF90aW1pbmcoIiIpCi0KLSAgICBkZWYgX3ByaW50X3Rlc3RfbGlzdF90aW1p
bmcoc2VsZiwgdGl0bGUsIHRlc3RfbGlzdCk6Ci0gICAgICAgICIiIlByaW50IHRpbWluZyBpbmZv
IGZvciBlYWNoIHRlc3QuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0aXRsZTogc2VjdGlv
biBoZWFkaW5nCi0gICAgICAgICAgdGVzdF9saXN0OiB0ZXN0cyB0aGF0IGZhbGwgaW4gdGhpcyBz
ZWN0aW9uCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9wcmludGVyLmRpc2FibGVkKCdz
bG93ZXN0Jyk6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9wcmludGVyLnBy
aW50X3RpbWluZyh0aXRsZSkKLSAgICAgICAgZm9yIHRlc3RfdHVwbGUgaW4gdGVzdF9saXN0Ogot
ICAgICAgICAgICAgdGVzdF9ydW5fdGltZSA9IHJvdW5kKHRlc3RfdHVwbGUudGVzdF9ydW5fdGlt
ZSwgMSkKLSAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIgICVzIHRvb2sg
JXMgc2Vjb25kcyIgJSAodGVzdF90dXBsZS50ZXN0X25hbWUsIHRlc3RfcnVuX3RpbWUpKQotCi0g
ICAgZGVmIF9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhzZWxmLCBkaXJlY3RvcnlfdGVzdF90aW1p
bmdzKToKLSAgICAgICAgIiIiUHJpbnQgdGltaW5nIGluZm8gYnkgZGlyZWN0b3J5IGZvciBhbnkg
ZGlyZWN0b3JpZXMgdGhhdAotICAgICAgICB0YWtlID4gMTAgc2Vjb25kcyB0byBydW4uCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICBkaXJlY3RvcnlfdGVzdF90aW1pbmc6IHRpbWUgaW5mbyBm
b3IgZWFjaCBkaXJlY3RvcnkKLSAgICAgICAgIiIiCi0gICAgICAgIHRpbWluZ3MgPSBbXQotICAg
ICAgICBmb3IgZGlyZWN0b3J5IGluIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3M6Ci0gICAgICAgICAg
ICBudW1fdGVzdHMsIHRpbWVfZm9yX2RpcmVjdG9yeSA9IGRpcmVjdG9yeV90ZXN0X3RpbWluZ3Nb
ZGlyZWN0b3J5XQotICAgICAgICAgICAgdGltaW5ncy5hcHBlbmQoKHJvdW5kKHRpbWVfZm9yX2Rp
cmVjdG9yeSwgMSksIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1f
dGVzdHMpKQotICAgICAgICB0aW1pbmdzLnNvcnQoKQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIu
cHJpbnRfdGltaW5nKCJUaW1lIHRvIHByb2Nlc3Mgc2xvd2VzdCBzdWJkaXJlY3RvcmllczoiKQot
ICAgICAgICBtaW5fc2Vjb25kc190b19wcmludCA9IDEwCi0gICAgICAgIGZvciB0aW1pbmcgaW4g
dGltaW5nczoKLSAgICAgICAgICAgIGlmIHRpbWluZ1swXSA+IG1pbl9zZWNvbmRzX3RvX3ByaW50
OgotICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKAotICAgICAgICAg
ICAgICAgICAgICAiICAlcyB0b29rICVzIHNlY29uZHMgdG8gcnVuICVzIHRlc3RzLiIgJSAodGlt
aW5nWzFdLAotICAgICAgICAgICAgICAgICAgICB0aW1pbmdbMF0sIHRpbWluZ1syXSkpCi0gICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIiKQotCi0gICAgZGVmIF9wcmludF9zdGF0
aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3Moc2VsZiwgdGl0bGUsIHRpbWluZ3MpOgotICAgICAgICAi
IiJQcmludHMgdGhlIG1lZGlhbiwgbWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHRoZSB2
YWx1ZXMgaW4KLSAgICAgICAgdGltaW5ncy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRp
dGxlOiBUaXRsZSBmb3IgdGhlc2UgdGltaW5ncy4KLSAgICAgICAgICB0aW1pbmdzOiBBIGxpc3Qg
b2YgZmxvYXRzIHJlcHJlc2VudGluZyB0aW1lcy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYu
X3ByaW50ZXIucHJpbnRfdGltaW5nKHRpdGxlKQotICAgICAgICB0aW1pbmdzLnNvcnQoKQotCi0g
ICAgICAgIG51bV90ZXN0cyA9IGxlbih0aW1pbmdzKQotICAgICAgICBpZiBub3QgbnVtX3Rlc3Rz
OgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHBlcmNlbnRpbGU5MCA9IHRpbWluZ3NbaW50
KC45ICogbnVtX3Rlc3RzKV0KLSAgICAgICAgcGVyY2VudGlsZTk5ID0gdGltaW5nc1tpbnQoLjk5
ICogbnVtX3Rlc3RzKV0KLQotICAgICAgICBpZiBudW1fdGVzdHMgJSAyID09IDE6Ci0gICAgICAg
ICAgICBtZWRpYW4gPSB0aW1pbmdzWygobnVtX3Rlc3RzIC0gMSkgLyAyKSAtIDFdCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBsb3dlciA9IHRpbWluZ3NbbnVtX3Rlc3RzIC8gMiAtIDFdCi0g
ICAgICAgICAgICB1cHBlciA9IHRpbWluZ3NbbnVtX3Rlc3RzIC8gMl0KLSAgICAgICAgICAgIG1l
ZGlhbiA9IChmbG9hdChsb3dlciArIHVwcGVyKSkgLyAyCi0KLSAgICAgICAgbWVhbiA9IHN1bSh0
aW1pbmdzKSAvIG51bV90ZXN0cwotCi0gICAgICAgIGZvciB0aW1pbmcgaW4gdGltaW5nczoKLSAg
ICAgICAgICAgIHN1bV9vZl9kZXZpYXRpb25zID0gbWF0aC5wb3codGltaW5nIC0gbWVhbiwgMikK
LQotICAgICAgICBzdGRfZGV2aWF0aW9uID0gbWF0aC5zcXJ0KHN1bV9vZl9kZXZpYXRpb25zIC8g
bnVtX3Rlc3RzKQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygiICBNZWRpYW46
ICAgICAgICAgICU2LjNmIiAlIG1lZGlhbikKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90
aW1pbmcoIiAgTWVhbjogICAgICAgICAgICAlNi4zZiIgJSBtZWFuKQotICAgICAgICBzZWxmLl9w
cmludGVyLnByaW50X3RpbWluZygiICA5MHRoIHBlcmNlbnRpbGU6ICU2LjNmIiAlIHBlcmNlbnRp
bGU5MCkKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90aW1pbmcoIiAgOTl0aCBwZXJjZW50
aWxlOiAlNi4zZiIgJSBwZXJjZW50aWxlOTkpCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRf
dGltaW5nKCIgIFN0YW5kYXJkIGRldjogICAgJTYuM2YiICUgc3RkX2RldmlhdGlvbikKLSAgICAg
ICAgc2VsZi5fcHJpbnRlci5wcmludF90aW1pbmcoIiIpCi0KLSAgICBkZWYgX3ByaW50X3Jlc3Vs
dF9zdW1tYXJ5KHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKLSAgICAgICAgIiIiUHJpbnQgYSBzaG9y
dCBzdW1tYXJ5IGFib3V0IGhvdyBtYW55IHRlc3RzIHBhc3NlZC4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBpbmZvcm1hdGlvbiB0byBsb2cKLSAgICAgICAgIiIi
Ci0gICAgICAgIGZhaWxlZCA9IHJlc3VsdF9zdW1tYXJ5LnRvdGFsX2ZhaWx1cmVzCi0gICAgICAg
IHRvdGFsID0gcmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9z
a2lwcwotICAgICAgICBwYXNzZWQgPSB0b3RhbCAtIGZhaWxlZAotICAgICAgICBwY3RfcGFzc2Vk
ID0gMC4wCi0gICAgICAgIGlmIHRvdGFsID4gMDoKLSAgICAgICAgICAgIHBjdF9wYXNzZWQgPSBm
bG9hdChwYXNzZWQpICogMTAwIC8gdG90YWwKLQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50
X2FjdHVhbCgiIikKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9hY3R1YWwoIj0+IFJlc3Vs
dHM6ICVkLyVkIHRlc3RzIHBhc3NlZCAoJS4xZiUlKSIgJQotICAgICAgICAgICAgICAgICAgICAg
KHBhc3NlZCwgdG90YWwsIHBjdF9wYXNzZWQpKQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50
X2FjdHVhbCgiIikKLSAgICAgICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkocmVz
dWx0X3N1bW1hcnksCi0gICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5OT1csICJUZXN0cyB0
byBiZSBmaXhlZCIpCi0KLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9hY3R1YWwoIiIpCi0g
ICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LAot
ICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuV09OVEZJWCwKLSAgICAgICAgICAgICJUZXN0
cyB0aGF0IHdpbGwgb25seSBiZSBmaXhlZCBpZiB0aGV5IGNyYXNoIChXT05URklYKSIpCi0gICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfYWN0dWFsKCIiKQotCi0gICAgZGVmIF9wcmludF9yZXN1
bHRfc3VtbWFyeV9lbnRyeShzZWxmLCByZXN1bHRfc3VtbWFyeSwgdGltZWxpbmUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nKToKLSAgICAgICAgIiIiUHJpbnQg
YSBzdW1tYXJ5IGJsb2NrIG9mIHJlc3VsdHMgZm9yIGEgcGFydGljdWxhciB0aW1lbGluZSBvZiB0
ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkg
dG8gcHJpbnQgcmVzdWx0cyBmb3IKLSAgICAgICAgICB0aW1lbGluZTogdGhlIHRpbWVsaW5lIHRv
IHByaW50IHJlc3VsdHMgZm9yIChOT1QsIFdPTlRGSVgsIGV0Yy4pCi0gICAgICAgICAgaGVhZGlu
ZzogYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSB0aW1lbGluZQotICAgICAgICAiIiIKLSAg
ICAgICAgdG90YWwgPSBsZW4ocmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxp
bmVdKQotICAgICAgICBub3RfcGFzc2luZyA9ICh0b3RhbCAtCi0gICAgICAgICAgIGxlbihyZXN1
bHRfc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvblt0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTXSAm
Ci0gICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGlu
ZV0pKQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X2FjdHVhbCgiPT4gJXMgKCVkKToiICUg
KGhlYWRpbmcsIG5vdF9wYXNzaW5nKSkKLQotICAgICAgICBmb3IgcmVzdWx0IGluIFRlc3RFeHBl
Y3RhdGlvbnMuRVhQRUNUQVRJT05fT1JERVI6Ci0gICAgICAgICAgICBpZiByZXN1bHQgPT0gdGVz
dF9leHBlY3RhdGlvbnMuUEFTUzoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgcmVzdWx0cyA9IChyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV9leHBlY3RhdGlvbltyZXN1bHRd
ICYKLSAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxp
bmVbdGltZWxpbmVdKQotICAgICAgICAgICAgZGVzYyA9IFRlc3RFeHBlY3RhdGlvbnMuRVhQRUNU
QVRJT05fREVTQ1JJUFRJT05TW3Jlc3VsdF0KLSAgICAgICAgICAgIGlmIG5vdF9wYXNzaW5nIGFu
ZCBsZW4ocmVzdWx0cyk6Ci0gICAgICAgICAgICAgICAgcGN0ID0gbGVuKHJlc3VsdHMpICogMTAw
LjAgLyBub3RfcGFzc2luZwotICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfYWN0
dWFsKCIgICU1ZCAlLTI0cyAoJTQuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbihy
ZXN1bHRzKSwgZGVzY1tsZW4ocmVzdWx0cykgIT0gMV0sIHBjdCkpCi0KICAgICBkZWYgX2NvcHlf
cmVzdWx0c19odG1sX2ZpbGUoc2VsZik6CiAgICAgICAgIGJhc2VfZGlyID0gc2VsZi5fcG9ydC5w
YXRoX2Zyb21fd2Via2l0X2Jhc2UoJ0xheW91dFRlc3RzJywgJ2Zhc3QnLCAnaGFybmVzcycpCiAg
ICAgICAgIHJlc3VsdHNfZmlsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihiYXNlX2RpciwgJ3Jl
c3VsdHMuaHRtbCcpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCAy
N2YwNmE3MGUxYmFjZDZkMWY3NDI1MmZlZDgyYWM5OTkyMTk4NzgxLi41YWE4YjMyZWJjZmNhZTlj
Yzk4Y2M4OTU5ZDUxZjdmMjUxOTNlZDUzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5p
dHRlc3QucHkKQEAgLTI1Myw2ICsyNTMsOCBAQCBjbGFzcyBNYW5hZ2VyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAKICAgICAgICAgbWFuYWdlci5fb3B0aW9ucyA9IE1vY2tPcHRpb25zKGV4aXRf
YWZ0ZXJfbl9mYWlsdXJlcz1Ob25lLCBleGl0X2FmdGVyX25fY3Jhc2hlc19vcl90aW1lb3V0cz1O
b25lKQogICAgICAgICBtYW5hZ2VyLl90ZXN0X2ZpbGVzID0gWydmb28vYmFyLmh0bWwnLCAnYmF6
Lmh0bWwnXQorICAgICAgICBtYW5hZ2VyLl90ZXN0X2lzX3Nsb3cgPSBsYW1iZGEgdGVzdF9uYW1l
OiBGYWxzZQorCiAgICAgICAgIHJlc3VsdF9zdW1tYXJ5ID0gUmVzdWx0U3VtbWFyeShleHBlY3Rh
dGlvbnM9TW9jaygpLCB0ZXN0X2ZpbGVzPW1hbmFnZXIuX3Rlc3RfZmlsZXMpCiAgICAgICAgIHJl
c3VsdF9zdW1tYXJ5LnVuZXhwZWN0ZWRfZmFpbHVyZXMgPSAxMDAKICAgICAgICAgcmVzdWx0X3N1
bW1hcnkudW5leHBlY3RlZF9jcmFzaGVzID0gNTAKQEAgLTQ4NiwyOSArNDg4LDMwIEBAIGNsYXNz
IFJlc3VsdFN1bW1hcnlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgZXh0cmFf
ZXhwZWN0YXRpb25zOgogICAgICAgICAgICAgZXhwZWN0YXRpb25zICs9IGV4dHJhX2V4cGVjdGF0
aW9ucwogCisgICAgICAgIHRlc3RfaXNfc2xvdyA9IEZhbHNlCiAgICAgICAgIHBhdGhzLCBycywg
ZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkocG9ydCwgdGVzdHMsIGV4cGVjdGF0aW9ucykK
ICAgICAgICAgaWYgZXhwZWN0ZWQ6Ci0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkKQot
ICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGlt
ZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQotICAgICAg
ICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRt
bCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
UEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5n
ZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIHJzLmFk
ZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4
cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGVsaWYg
cGFzc2luZzoKLSAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0
Lmh0bWwnKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdm
YWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICBy
cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4
cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQu
aHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIGV4cGVjdGVkLCB0
ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJl
cy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5o
dG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQotICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywg
dGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCkKLSAgICAgICAgICAgIHJzLmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4
cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFT
SCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
VElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAKICAgICAgICAgZm9yIHRlc3QgaW4g
ZXh0cmFfdGVzdHM6Ci0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KHRlc3QsIHRl
c3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBycy5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KHRlc3QsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRl
c3RfaXNfc2xvdykKIAogICAgICAgICByZXRyeSA9IHJzCiAgICAgICAgIGlmIGZsYWt5OgogICAg
ICAgICAgICAgcGF0aHMsIHJldHJ5LCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFyeShwb3J0
LCB0ZXN0cywgZXhwZWN0YXRpb25zKQotICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jl
c3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlKQotICAgICAgICAgICAgcmV0cnkuYWRkKHNl
bGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUpCi0g
ICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9j
cmFzaC5odG1sJyksIFRydWUpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdwYXNzZXMvdGV4dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIHJl
dHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcp
LCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykK
ICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5zdW1tYXJpemVfcmVzdWx0cyhw
b3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1
ZSwgaW50ZXJydXB0ZWQ9RmFsc2UpCiAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBtYW5hZ2Vy
LnN1bW1hcml6ZV9yZXN1bHRzKHBvcnQsIGV4cCwgcnMsIHJldHJ5LCB0ZXN0X3RpbWluZ3M9e30s
IG9ubHlfdW5leHBlY3RlZD1GYWxzZSwgaW50ZXJydXB0ZWQ9RmFsc2UpCiAgICAgICAgIHJldHVy
biBleHBlY3RlZF9yZXN1bHRzLCB1bmV4cGVjdGVkX3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy9yZXN1bHRfc3VtbWFyeS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy9yZXN1bHRfc3VtbWFy
eS5weQppbmRleCBkNDY3MDNlOGZkZGY2YWU0YTIwNTI3YWM5ODEwODRhOTg3ODViMzRlLi5iMDUx
MjEyN2ZiZDUwYmE1MWQ1Y2IxNTcxZDZiYjAxOThmYTY5YmRiIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1hcnkucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Jlc3VsdF9zdW1t
YXJ5LnB5CkBAIC01NSw4ICs1NSw5IEBAIGNsYXNzIFJlc3VsdFN1bW1hcnkob2JqZWN0KToKICAg
ICAgICAgICAgIHNlbGYudG90YWxfdGVzdHNfYnlfZXhwZWN0YXRpb25bZXhwZWN0YXRpb25dID0g
MAogICAgICAgICBmb3IgdGltZWxpbmUgaW4gVGVzdEV4cGVjdGF0aW9ucy5USU1FTElORVMudmFs
dWVzKCk6CiAgICAgICAgICAgICBzZWxmLnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSA9IGV4
cGVjdGF0aW9ucy5nZXRfdGVzdHNfd2l0aF90aW1lbGluZSh0aW1lbGluZSkKKyAgICAgICAgc2Vs
Zi5zbG93X3Rlc3RzID0gc2V0KCkKIAotICAgIGRlZiBhZGQoc2VsZiwgdGVzdF9yZXN1bHQsIGV4
cGVjdGVkKToKKyAgICBkZWYgYWRkKHNlbGYsIHRlc3RfcmVzdWx0LCBleHBlY3RlZCwgdGVzdF9p
c19zbG93KToKICAgICAgICAgc2VsZi50b3RhbF90ZXN0c19ieV9leHBlY3RhdGlvblt0ZXN0X3Jl
c3VsdC50eXBlXSArPSAxCiAgICAgICAgIHNlbGYudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9y
ZXN1bHQudHlwZV0uYWRkKHRlc3RfcmVzdWx0LnRlc3RfbmFtZSkKICAgICAgICAgc2VsZi5yZXN1
bHRzW3Rlc3RfcmVzdWx0LnRlc3RfbmFtZV0gPSB0ZXN0X3Jlc3VsdApAQCAtNzcsMyArNzgsNSBA
QCBjbGFzcyBSZXN1bHRTdW1tYXJ5KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4
cGVjdGVkX2NyYXNoZXMgKz0gMQogICAgICAgICAgICAgZWxpZiB0ZXN0X3Jlc3VsdC50eXBlID09
IFRJTUVPVVQ6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX3RpbWVvdXRzICs9IDEK
KyAgICAgICAgaWYgdGVzdF9pc19zbG93OgorICAgICAgICAgICAgc2VsZi5zbG93X3Rlc3RzLmFk
ZCh0ZXN0X3Jlc3VsdC50ZXN0X25hbWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CmluZGV4IDJkZDkwOTkzMDY5MDRiMWI5
OTg5NTExNDI2ZjhlMzY3NmNjYWJkMTEuLmU2YzIyY2RlYTgwNTdjZmYwNjdmZmQ4OTk0ODg0OWE3
NzY1MTY3MGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0yOSwxMCArMjksMTIgQEAKIAogIiIiUGFja2FnZSB0
aGF0IGhhbmRsZXMgbm9uLWRlYnVnLCBub24tZmlsZSBvdXRwdXQgZm9yIHJ1bi13ZWJraXQtdGVz
dHMuIiIiCiAKK2ltcG9ydCBtYXRoCiBpbXBvcnQgb3B0cGFyc2UKIAogZnJvbSB3ZWJraXRweS50
b29sIGltcG9ydCBncmFtbWFyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQgaW1wb3J0IHJlc3Vs
dHNqc29ucGFyc2VyCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRl
c3RfZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9l
eHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLnZpZXdzLm1ldGVyZWRfc3RyZWFtIGltcG9ydCBNZXRlcmVkU3RyZWFtCiAKQEAgLTE5
Miw2ICsxOTQsMjI0IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICBkZWYgaGVscF9wcmlu
dGluZyhzZWxmKToKICAgICAgICAgc2VsZi5fd3JpdGUoSEVMUF9QUklOVElORykKIAorICAgIGRl
ZiBwcmludF9yZXN1bHRzKHNlbGYsIHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1p
bmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRf
cmVzdWx0cyk6CisgICAgICAgIHNlbGYuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1bl90aW1l
LCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywg
cmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3Vs
dF9zdW1tYXJ5KQorCisgICAgICAgIHNlbGYucHJpbnRfb25lX2xpbmVfc3VtbWFyeShyZXN1bHRf
c3VtbWFyeS50b3RhbCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3Vt
bWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzLCByZXN1bHRfc3Vt
bWFyeS51bmV4cGVjdGVkKQorCisgICAgICAgIHNlbGYucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRz
KHVuZXhwZWN0ZWRfcmVzdWx0cykKKworICAgIGRlZiBfcHJpbnRfdGltaW5nX3N0YXRpc3RpY3Mo
c2VsZiwgdG90YWxfdGltZSwgdGhyZWFkX3RpbWluZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpOgorICAgICAg
ICAiIiJSZWNvcmQgdGltaW5nLXNwZWNpZmljIGluZm9ybWF0aW9uIGZvciB0aGUgdGVzdCBydW4u
CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICB0b3RhbF90aW1lOiB0b3RhbCBlbGFwc2VkIHRp
bWUgKGluIHNlY29uZHMpIGZvciB0aGUgdGVzdCBydW4KKyAgICAgICAgICB0aHJlYWRfdGltaW5n
czogd2FsbCBjbG9jayB0aW1lIGVhY2ggdGhyZWFkIHJhbiBmb3IKKyAgICAgICAgICBkaXJlY3Rv
cnlfdGVzdF90aW1pbmdzOiB0aW1pbmcgYnkgZGlyZWN0b3J5CisgICAgICAgICAgaW5kaXZpZHVh
bF90ZXN0X3RpbWluZ3M6IHRpbWluZyBieSBmaWxlCisgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6
IHN1bW1hcnkgb2JqZWN0IGZvciB0aGUgdGVzdCBydW4KKyAgICAgICAgIiIiCisgICAgICAgIHNl
bGYucHJpbnRfdGltaW5nKCJUZXN0IHRpbWluZzoiKQorICAgICAgICBzZWxmLnByaW50X3RpbWlu
ZygiICAlNi4yZiB0b3RhbCB0ZXN0aW5nIHRpbWUiICUgdG90YWxfdGltZSkKKyAgICAgICAgc2Vs
Zi5wcmludF90aW1pbmcoIiIpCisgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCJUaHJlYWQgdGlt
aW5nOiIpCisgICAgICAgIGN1bWxfdGltZSA9IDAKKyAgICAgICAgZm9yIHQgaW4gdGhyZWFkX3Rp
bWluZ3M6CisgICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICAgICUxMHM6ICU1ZCB0ZXN0
cywgJTYuMmYgc2VjcyIgJQorICAgICAgICAgICAgICAgICAgKHRbJ25hbWUnXSwgdFsnbnVtX3Rl
c3RzJ10sIHRbJ3RvdGFsX3RpbWUnXSkpCisgICAgICAgICAgICBjdW1sX3RpbWUgKz0gdFsndG90
YWxfdGltZSddCisgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgICAlNi4yZiBjdW11bGF0aXZl
LCAlNi4yZiBvcHRpbWFsIiAlCisgICAgICAgICAgICAgIChjdW1sX3RpbWUsIGN1bWxfdGltZSAv
IGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykpKQorICAgICAgICBzZWxmLnByaW50
X3RpbWluZygiIikKKworICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0
aWNzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzKQorICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlk
dWFsX3Rlc3RfdGltZXMoaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2VsZi5f
cHJpbnRfZGlyZWN0b3J5X3RpbWluZ3MoZGlyZWN0b3J5X3Rlc3RfdGltaW5ncykKKworICAgIGRl
ZiBfcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhzZWxmLCBpbmRpdmlkdWFsX3Rlc3Rf
dGltaW5ncyk6CisgICAgICAgICIiIlByaW50cyBhZ2dyZWdhdGUgc3RhdGlzdGljcyAoZS5nLiBt
ZWRpYW4sIG1lYW4sIGV0Yy4pIGZvciBhbGwgdGVzdHMuCisgICAgICAgIEFyZ3M6CisgICAgICAg
ICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3M6IExpc3Qgb2YgVGVzdFJlc3VsdHMgZm9yIGFsbCB0
ZXN0cy4KKyAgICAgICAgIiIiCisgICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlID0g
W3Rlc3Rfc3RhdHMudGVzdF9ydW5fdGltZSBmb3IgdGVzdF9zdGF0cyBpbiBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5nc10KKyAgICAgICAgc2VsZi5fcHJpbnRfc3RhdGlzdGljc19mb3JfdGVzdF90aW1p
bmdzKCJQRVIgVEVTVCBUSU1FIElOIFRFU1RTSEVMTCAoc2Vjb25kcyk6IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRl
cl90cmVlKQorCisgICAgZGVmIF9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMoc2VsZiwgaW5k
aXZpZHVhbF90ZXN0X3RpbWluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAiIiJQcmludHMgdGhlIHJ1biB0aW1lcyBmb3Igc2xv
dywgdGltZW91dCBhbmQgY3Jhc2ggdGVzdHMuCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgaW5k
aXZpZHVhbF90ZXN0X3RpbWluZ3M6IExpc3Qgb2YgVGVzdFN0YXRzIGZvciBhbGwgdGVzdHMuCisg
ICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IGZvciB0ZXN0IHJ1bgorICAg
ICAgICAiIiIKKyAgICAgICAgIyBSZXZlcnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVt
cFJlbmRlclRyZWUuCisgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLnNvcnQobGFtYmRh
IGEsIGI6CisgICAgICAgICAgICBjbXAoYi50ZXN0X3J1bl90aW1lLCBhLnRlc3RfcnVuX3RpbWUp
KQorCisgICAgICAgIG51bV9wcmludGVkID0gMAorICAgICAgICBzbG93X3Rlc3RzID0gW10KKyAg
ICAgICAgdGltZW91dF9vcl9jcmFzaF90ZXN0cyA9IFtdCisgICAgICAgIHVuZXhwZWN0ZWRfc2xv
d190ZXN0cyA9IFtdCisgICAgICAgIGZvciB0ZXN0X3R1cGxlIGluIGluZGl2aWR1YWxfdGVzdF90
aW1pbmdzOgorICAgICAgICAgICAgdGVzdF9uYW1lID0gdGVzdF90dXBsZS50ZXN0X25hbWUKKyAg
ICAgICAgICAgIGlzX3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyA9IEZhbHNlCisgICAgICAgICAgICBp
ZiB0ZXN0X25hbWUgaW4gcmVzdWx0X3N1bW1hcnkuc2xvd190ZXN0czoKKyAgICAgICAgICAgICAg
ICBpc190aW1lb3V0X2NyYXNoX29yX3Nsb3cgPSBUcnVlCisgICAgICAgICAgICAgICAgc2xvd190
ZXN0cy5hcHBlbmQodGVzdF90dXBsZSkKKworICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIHJl
c3VsdF9zdW1tYXJ5LmZhaWx1cmVzOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdF9z
dW1tYXJ5LnJlc3VsdHNbdGVzdF9uYW1lXS50eXBlCisgICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dCA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUIG9yCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCk6CisgICAgICAgICAgICAgICAgICAgIGlz
X3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgdGltZW91
dF9vcl9jcmFzaF90ZXN0cy5hcHBlbmQodGVzdF90dXBsZSkKKworICAgICAgICAgICAgaWYgKG5v
dCBpc190aW1lb3V0X2NyYXNoX29yX3Nsb3cgYW5kIG51bV9wcmludGVkIDwgTlVNX1NMT1dfVEVT
VFNfVE9fTE9HKToKKyAgICAgICAgICAgICAgICBudW1fcHJpbnRlZCA9IG51bV9wcmludGVkICsg
MQorICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfc2xvd190ZXN0cy5hcHBlbmQodGVzdF90dXBs
ZSkKKworICAgICAgICBzZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRf
dGVzdF9saXN0X3RpbWluZygiJXMgc2xvd2VzdCB0ZXN0cyB0aGF0IGFyZSBub3QgIgorICAgICAg
ICAgICAgIm1hcmtlZCBhcyBTTE9XIGFuZCBkaWQgbm90IHRpbWVvdXQvY3Jhc2g6IiAlIE5VTV9T
TE9XX1RFU1RTX1RPX0xPRywgdW5leHBlY3RlZF9zbG93X3Rlc3RzKQorICAgICAgICBzZWxmLnBy
aW50X3RpbWluZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiVGVz
dHMgbWFya2VkIGFzIFNMT1c6Iiwgc2xvd190ZXN0cykKKyAgICAgICAgc2VsZi5wcmludF90aW1p
bmcoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIlRlc3RzIHRoYXQg
dGltZWQgb3V0IG9yIGNyYXNoZWQ6IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzKQorICAgICAgICBzZWxmLnByaW50X3RpbWluZygi
IikKKworICAgIGRlZiBfcHJpbnRfdGVzdF9saXN0X3RpbWluZyhzZWxmLCB0aXRsZSwgdGVzdF9s
aXN0KToKKyAgICAgICAgIiIiUHJpbnQgdGltaW5nIGluZm8gZm9yIGVhY2ggdGVzdC4KKworICAg
ICAgICBBcmdzOgorICAgICAgICAgIHRpdGxlOiBzZWN0aW9uIGhlYWRpbmcKKyAgICAgICAgICB0
ZXN0X2xpc3Q6IHRlc3RzIHRoYXQgZmFsbCBpbiB0aGlzIHNlY3Rpb24KKyAgICAgICAgIiIiCisg
ICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ3Nsb3dlc3QnKToKKyAgICAgICAgICAgIHJldHVybgor
CisgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKHRpdGxlKQorICAgICAgICBmb3IgdGVzdF90dXBs
ZSBpbiB0ZXN0X2xpc3Q6CisgICAgICAgICAgICB0ZXN0X3J1bl90aW1lID0gcm91bmQodGVzdF90
dXBsZS50ZXN0X3J1bl90aW1lLCAxKQorICAgICAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAg
JXMgdG9vayAlcyBzZWNvbmRzIiAlICh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwgdGVzdF9ydW5fdGlt
ZSkpCisKKyAgICBkZWYgX3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKHNlbGYsIGRpcmVjdG9yeV90
ZXN0X3RpbWluZ3MpOgorICAgICAgICAiIiJQcmludCB0aW1pbmcgaW5mbyBieSBkaXJlY3Rvcnkg
Zm9yIGFueSBkaXJlY3RvcmllcyB0aGF0CisgICAgICAgIHRha2UgPiAxMCBzZWNvbmRzIHRvIHJ1
bi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIGRpcmVjdG9yeV90ZXN0X3RpbWluZzogdGlt
ZSBpbmZvIGZvciBlYWNoIGRpcmVjdG9yeQorICAgICAgICAiIiIKKyAgICAgICAgdGltaW5ncyA9
IFtdCisgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gZGlyZWN0b3J5X3Rlc3RfdGltaW5nczoKKyAg
ICAgICAgICAgIG51bV90ZXN0cywgdGltZV9mb3JfZGlyZWN0b3J5ID0gZGlyZWN0b3J5X3Rlc3Rf
dGltaW5nc1tkaXJlY3RvcnldCisgICAgICAgICAgICB0aW1pbmdzLmFwcGVuZCgocm91bmQodGlt
ZV9mb3JfZGlyZWN0b3J5LCAxKSwgZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG51bV90ZXN0cykpCisgICAgICAgIHRpbWluZ3Muc29ydCgpCisKKyAgICAgICAgc2VsZi5w
cmludF90aW1pbmcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0IHN1YmRpcmVjdG9yaWVzOiIpCisg
ICAgICAgIG1pbl9zZWNvbmRzX3RvX3ByaW50ID0gMTAKKyAgICAgICAgZm9yIHRpbWluZyBpbiB0
aW1pbmdzOgorICAgICAgICAgICAgaWYgdGltaW5nWzBdID4gbWluX3NlY29uZHNfdG9fcHJpbnQ6
CisgICAgICAgICAgICAgICAgc2VsZi5wcmludF90aW1pbmcoCisgICAgICAgICAgICAgICAgICAg
ICIgICVzIHRvb2sgJXMgc2Vjb25kcyB0byBydW4gJXMgdGVzdHMuIiAlICh0aW1pbmdbMV0sCisg
ICAgICAgICAgICAgICAgICAgIHRpbWluZ1swXSwgdGltaW5nWzJdKSkKKyAgICAgICAgc2VsZi5w
cmludF90aW1pbmcoIiIpCisKKyAgICBkZWYgX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGlt
aW5ncyhzZWxmLCB0aXRsZSwgdGltaW5ncyk6CisgICAgICAgICIiIlByaW50cyB0aGUgbWVkaWFu
LCBtZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIHZhbHVlcyBpbgorICAgICAgICB0
aW1pbmdzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgdGl0bGU6IFRpdGxlIGZvciB0aGVz
ZSB0aW1pbmdzLgorICAgICAgICAgIHRpbWluZ3M6IEEgbGlzdCBvZiBmbG9hdHMgcmVwcmVzZW50
aW5nIHRpbWVzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcodGl0bGUp
CisgICAgICAgIHRpbWluZ3Muc29ydCgpCisKKyAgICAgICAgbnVtX3Rlc3RzID0gbGVuKHRpbWlu
Z3MpCisgICAgICAgIGlmIG5vdCBudW1fdGVzdHM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgcGVyY2VudGlsZTkwID0gdGltaW5nc1tpbnQoLjkgKiBudW1fdGVzdHMpXQorICAgICAgICBw
ZXJjZW50aWxlOTkgPSB0aW1pbmdzW2ludCguOTkgKiBudW1fdGVzdHMpXQorCisgICAgICAgIGlm
IG51bV90ZXN0cyAlIDIgPT0gMToKKyAgICAgICAgICAgIG1lZGlhbiA9IHRpbWluZ3NbKChudW1f
dGVzdHMgLSAxKSAvIDIpIC0gMV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvd2VyID0g
dGltaW5nc1tudW1fdGVzdHMgLyAyIC0gMV0KKyAgICAgICAgICAgIHVwcGVyID0gdGltaW5nc1tu
dW1fdGVzdHMgLyAyXQorICAgICAgICAgICAgbWVkaWFuID0gKGZsb2F0KGxvd2VyICsgdXBwZXIp
KSAvIDIKKworICAgICAgICBtZWFuID0gc3VtKHRpbWluZ3MpIC8gbnVtX3Rlc3RzCisKKyAgICAg
ICAgZm9yIHRpbWluZyBpbiB0aW1pbmdzOgorICAgICAgICAgICAgc3VtX29mX2RldmlhdGlvbnMg
PSBtYXRoLnBvdyh0aW1pbmcgLSBtZWFuLCAyKQorCisgICAgICAgIHN0ZF9kZXZpYXRpb24gPSBt
YXRoLnNxcnQoc3VtX29mX2RldmlhdGlvbnMgLyBudW1fdGVzdHMpCisgICAgICAgIHNlbGYucHJp
bnRfdGltaW5nKCIgIE1lZGlhbjogICAgICAgICAgJTYuM2YiICUgbWVkaWFuKQorICAgICAgICBz
ZWxmLnByaW50X3RpbWluZygiICBNZWFuOiAgICAgICAgICAgICU2LjNmIiAlIG1lYW4pCisgICAg
ICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIDkwdGggcGVyY2VudGlsZTogJTYuM2YiICUgcGVyY2Vu
dGlsZTkwKQorICAgICAgICBzZWxmLnByaW50X3RpbWluZygiICA5OXRoIHBlcmNlbnRpbGU6ICU2
LjNmIiAlIHBlcmNlbnRpbGU5OSkKKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgU3RhbmRh
cmQgZGV2OiAgICAlNi4zZiIgJSBzdGRfZGV2aWF0aW9uKQorICAgICAgICBzZWxmLnByaW50X3Rp
bWluZygiIikKKworICAgIGRlZiBfcHJpbnRfcmVzdWx0X3N1bW1hcnkoc2VsZiwgcmVzdWx0X3N1
bW1hcnkpOgorICAgICAgICAiIiJQcmludCBhIHNob3J0IHN1bW1hcnkgYWJvdXQgaG93IG1hbnkg
dGVzdHMgcGFzc2VkLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6
IGluZm9ybWF0aW9uIHRvIGxvZworICAgICAgICAiIiIKKyAgICAgICAgZmFpbGVkID0gcmVzdWx0
X3N1bW1hcnkudG90YWxfZmFpbHVyZXMKKyAgICAgICAgdG90YWwgPSByZXN1bHRfc3VtbWFyeS50
b3RhbCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBzCisgICAgICAgIHBhc3NlZCA9IHRv
dGFsIC0gZmFpbGVkCisgICAgICAgIHBjdF9wYXNzZWQgPSAwLjAKKyAgICAgICAgaWYgdG90YWwg
PiAwOgorICAgICAgICAgICAgcGN0X3Bhc3NlZCA9IGZsb2F0KHBhc3NlZCkgKiAxMDAgLyB0b3Rh
bAorCisgICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCIiKQorICAgICAgICBzZWxmLnByaW50X2Fj
dHVhbCgiPT4gUmVzdWx0czogJWQvJWQgdGVzdHMgcGFzc2VkICglLjFmJSUpIiAlCisgICAgICAg
ICAgICAgICAgICAgICAocGFzc2VkLCB0b3RhbCwgcGN0X3Bhc3NlZCkpCisgICAgICAgIHNlbGYu
cHJpbnRfYWN0dWFsKCIiKQorICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRy
eShyZXN1bHRfc3VtbWFyeSwKKyAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLk5PVywgIlRl
c3RzIHRvIGJlIGZpeGVkIikKKworICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiIikKKyAgICAg
ICAgc2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnlfZW50cnkocmVzdWx0X3N1bW1hcnksCisgICAg
ICAgICAgICB0ZXN0X2V4cGVjdGF0aW9ucy5XT05URklYLAorICAgICAgICAgICAgIlRlc3RzIHRo
YXQgd2lsbCBvbmx5IGJlIGZpeGVkIGlmIHRoZXkgY3Jhc2ggKFdPTlRGSVgpIikKKyAgICAgICAg
c2VsZi5wcmludF9hY3R1YWwoIiIpCisKKyAgICBkZWYgX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2Vu
dHJ5KHNlbGYsIHJlc3VsdF9zdW1tYXJ5LCB0aW1lbGluZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRpbmcpOgorICAgICAgICAiIiJQcmludCBhIHN1bW1hcnkgYmxv
Y2sgb2YgcmVzdWx0cyBmb3IgYSBwYXJ0aWN1bGFyIHRpbWVsaW5lIG9mIHRlc3QuCisKKyAgICAg
ICAgQXJnczoKKyAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSB0byBwcmludCByZXN1
bHRzIGZvcgorICAgICAgICAgIHRpbWVsaW5lOiB0aGUgdGltZWxpbmUgdG8gcHJpbnQgcmVzdWx0
cyBmb3IgKE5PVCwgV09OVEZJWCwgZXRjLikKKyAgICAgICAgICBoZWFkaW5nOiBhIHRleHR1YWwg
ZGVzY3JpcHRpb24gb2YgdGhlIHRpbWVsaW5lCisgICAgICAgICIiIgorICAgICAgICB0b3RhbCA9
IGxlbihyZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCisgICAgICAg
IG5vdF9wYXNzaW5nID0gKHRvdGFsIC0KKyAgICAgICAgICAgbGVuKHJlc3VsdF9zdW1tYXJ5LnRl
c3RzX2J5X2V4cGVjdGF0aW9uW3Rlc3RfZXhwZWN0YXRpb25zLlBBU1NdICYKKyAgICAgICAgICAg
ICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkpCisgICAgICAg
IHNlbGYucHJpbnRfYWN0dWFsKCI9PiAlcyAoJWQpOiIgJSAoaGVhZGluZywgbm90X3Bhc3Npbmcp
KQorCisgICAgICAgIGZvciByZXN1bHQgaW4gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9P
UkRFUjoKKyAgICAgICAgICAgIGlmIHJlc3VsdCA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTOgor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICByZXN1bHRzID0gKHJlc3VsdF9z
dW1tYXJ5LnRlc3RzX2J5X2V4cGVjdGF0aW9uW3Jlc3VsdF0gJgorICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHRfc3VtbWFyeS50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0pCisgICAgICAg
ICAgICBkZXNjID0gVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTl9ERVNDUklQVElPTlNbcmVz
dWx0XQorICAgICAgICAgICAgaWYgbm90X3Bhc3NpbmcgYW5kIGxlbihyZXN1bHRzKToKKyAgICAg
ICAgICAgICAgICBwY3QgPSBsZW4ocmVzdWx0cykgKiAxMDAuMCAvIG5vdF9wYXNzaW5nCisgICAg
ICAgICAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIiAgJTVkICUtMjRzICglNC4xZiUlKSIgJQor
ICAgICAgICAgICAgICAgICAgICAobGVuKHJlc3VsdHMpLCBkZXNjW2xlbihyZXN1bHRzKSAhPSAx
XSwgcGN0KSkKKworCiAgICAgZGVmIHByaW50X2FjdHVhbChzZWxmLCBtc2cpOgogICAgICAgICBp
ZiBzZWxmLmRpc2FibGVkKCdhY3R1YWwnKToKICAgICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmlu
dGluZ191bml0dGVzdC5weQppbmRleCAxMzEyMDUwZTkxNGZlMzBmMGFmNzYyMGY1YzlmMTA5YWRm
MGQ0ZWZlLi5iMjk4MzQxZjJiY2IyMTAyMTBlNWM4YmY5ZWQ1OGU5M2MzYjg0NDAyIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZ191bml0dGVzdC5weQpAQCAtNDA1LDI1ICs0MDUsMjYgQEAgY2xhc3MgIFRlc3Rw
cmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgYWxsIHBhc3Mg
b24gdGhlIHNlY29uZCBydW4pLgogCiAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHRlc3Rf
aXNfc2xvdyA9IEZhbHNlCiAgICAgICAgICAgICBwYXRocywgcnMsIGV4cCA9IHNlbGYuZ2V0X3Jl
c3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCiAgICAgICAgICAgICBpZiBleHBlY3Rl
ZDoKLSAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5o
dG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkKQotICAgICAgICAgICAgICAg
IHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcs
IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKLSAgICAgICAgICAgICAgICBy
cy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVz
dF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCkKKyAgICAgICAgICAgICAgICBycy5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFT
UyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRl
c3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAg
ICAgIGVsaWYgcGFzc2luZzoKLSAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdwYXNzZXMvdGV4dC5odG1sJyksIGV4cGVjdGVkKQotICAgICAgICAgICAgICAgIHJzLmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBleHBlY3Rl
ZCkKLSAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBl
Y3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVkKQorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxm
LmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykK
KyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3Rl
ZC90aW1lb3V0Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAg
ICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyks
IGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuQ1JBU0gpLCBleHBlY3RlZCkKLSAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRf
cmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMu
VElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1
bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFT
SCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAgICAgICAgcmV0cnkg
PSBycwogICAgICAgICAgICAgaWYgZmxha3k6CiAgICAgICAgICAgICAgICAgcGF0aHMsIHJldHJ5
LCBleHAgPSBzZWxmLmdldF9yZXN1bHRfc3VtbWFyeSh0ZXN0cywgZXhwZWN0YXRpb25zKQotICAg
ICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwn
KSwgVHJ1ZSkKLSAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWls
dXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSkKLSAgICAgICAgICAgICAgICByZXRy
eS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRy
dWUpCisgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3Rl
eHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICAgICAgcmV0cnkuYWRk
KHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUs
IHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1hbmFnZXIuc3VtbWFyaXplX3Jlc3VsdHMo
c2VsZi5fcG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3RfdGltaW5ncz17fSwgb25seV91bmV4cGVj
dGVkPVRydWUsIGludGVycnVwdGVkPUZhbHNlKQogICAgICAgICAgICAgcmV0dXJuIHVuZXhwZWN0
ZWRfcmVzdWx0cwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152642</attachid>
            <date>2012-07-16 16:39:57 -0700</date>
            <delta_ts>2012-07-16 16:43:47 -0700</delta_ts>
            <desc>fix typos from review feedback</desc>
            <filename>bug-91439-20120716163956.patch</filename>
            <type>text/plain</type>
            <size>35076</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzY3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjczNDY0NjgwZWVkM2IyMThhYzViN2RiNmY2MmRjMjY1
YzdiYzQ2MS4uYmFhY2YxOTg0MTFhMWNlMDQwMDQ5YzVkNDUxZWYxMGEyOTAyYmM5OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0
IEBACiAyMDEyLTA3LTE2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IG1vdmUgYSBidW5jaCBvZiBwcmludGluZyBjb2RlIGZyb20gbWFuYWdlci5w
eSB0byBwcmludGluZy5weQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTE0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBbGwgb2YgdGhlIGxvZ2ljIHRoYXQgaGFuZGxlcyB3aGF0IGdldHMgbG9nZ2VkIHNo
b3VsZCBldmVudHVhbGx5CisgICAgICAgIGxpdmUgaW4gcHJpbnRpbmcucHk7IHRoaXMgcGF0Y2gg
bW92ZXMgYSBsYXJnZSBjaHVuayBvZiBjb2RlIHRoYXQKKyAgICAgICAgcHJpbnRzIGFsbCBvZiB0
aGUgc3R1ZmYgYWZ0ZXIgdGhlIHJ1biBjb21wbGV0ZXMuCisKKyAgICAgICAgVGhlcmUgYXJlIG5v
IGZ1bmN0aW9uYWwgY2hhbmdlcywgdGhpcyBpcyBqdXN0IG1vdmluZyBjb2RlCisgICAgICAgIGFy
b3VuZC4gQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyAodXBkYXRlZCBhcyBuZWNlc3NhcnkpLgor
CisgICAgICAgIFRoaXMgY29kZSBpcyBhbGwgcHJldHR5IG1lc3N5IGFuZCBtb3N0IG9mIGl0IHNo
b3VsZCBiZSBkZWxldGVkCisgICAgICAgIChvciBleHRyYWN0ZWQgYWZ0ZXIgdGhlIGZhY3QgZnJv
bSByZXN1bHRzLmpzb24pLCBidXQgSSdtIHNhdmluZworICAgICAgICB0aGF0IGZvciBmdXJ0aGVy
IHBhdGNoZXMuIE15IGdvYWwgaXMganVzdCB0byBtYW5hZ2VyLnB5IHRvIGEKKyAgICAgICAgbW9y
ZSBtYW5hZ2VhYmxlIHN0YXRlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIucHJlcGFyZV9s
aXN0c19hbmRfcHJpbnRfb3V0cHV0KToKKyAgICAgICAgKE1hbmFnZXIucnVuKToKKyAgICAgICAg
KE1hbmFnZXIuX21hcmtfaW50ZXJydXB0ZWRfdGVzdHNfYXNfc2tpcHBlZCk6CisgICAgICAgIChN
YW5hZ2VyLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdCk6CisgICAgICAgIChNYW5hZ2VyLl9u
dW1fZGlnaXRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTWFuYWdlclRlc3QudGVzdF9p
bnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMpOgorICAgICAgICAoUmVzdWx0U3VtbWFyeVRl
c3Quc3VtbWFyaXplZF9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1hcnkucHk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5
Ll9faW5pdF9fKToKKyAgICAgICAgKFJlc3VsdFN1bW1hcnkuYWRkKToKKyAgICAgICAgSGVyZSB3
ZSBoYWQgdG8gYWRkIGEgbGlzdCBvZiB0aGUgc2xvdyB0ZXN0cyB0byB0aGUgcmVzdWx0CisgICAg
ICAgIHN1bW1hcnkgc28gdGhhdCB3ZSBkaWRuJ3QgbmVlZCB0byBjYWxsIGJhY2sgaW50byB0aGUg
bWFuYWdlciBhbmQKKyAgICAgICAgdGhlIHRlc3QgZXhwZWN0YXRpb25zIG9iamVjdCB0byBmaWd1
cmUgb3V0IGlmIGEgdGVzdCBpcyBTTE9XLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRlci5wcmludF9yZXN1
bHRzKToKKyAgICAgICAgKFByaW50ZXIpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfdGltaW5n
X3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3Rh
dGlzdGljcyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMp
OgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfdGVzdF9saXN0X3RpbWluZyk6CisgICAgICAgIChQ
cmludGVyLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyk6CisgICAgICAgIChQcmludGVyLl9wcmlu
dF9zdGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
cmVzdWx0X3N1bW1hcnkpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfcmVzdWx0X3N1bW1hcnlf
ZW50cnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3By
aW50aW5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIudGVzdF9wcmludF91bmV4
cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIChUZXN0cHJp
bnRlcik6CisKKzIwMTItMDctMTYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgdGVzdC13ZWJraXRweTogY2xlYW4gdXAgbG9nZ2luZyB0byBtYWtlIGl0IG5p
bmphLWVzcXVlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTI5NwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA3YWVlMGMyZmIxZTcwY2FlYTFmNmY2
MzBhN2UzYjM4OTYzMDc0MTgxLi5hMzJlMWEzMDVhMTZlNDA5NGYwYTYzNzU0ZmM5NTNlMzQwYWRi
MGIwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTUyNiw3ICs1MjYsNyBAQCBjbGFzcyBNYW5h
Z2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVzdF9yZXN1bHRzLlRlc3RS
ZXN1bHQodGVzdCkKICAgICAgICAgICAgICAgICByZXN1bHQudHlwZSA9IHRlc3RfZXhwZWN0YXRp
b25zLlNLSVAKICAgICAgICAgICAgICAgICBmb3IgaXRlcmF0aW9uIGluIHJhbmdlKGl0ZXJhdGlv
bnMpOgotICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQocmVzdWx0LCBleHBl
Y3RlZD1UcnVlKQorICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQocmVzdWx0
LCBleHBlY3RlZD1UcnVlLCB0ZXN0X2lzX3Nsb3c9c2VsZi5fdGVzdF9pc19zbG93KHRlc3QpKQog
ICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X2V4cGVjdGVkKCcnKQogCiAgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMucmVwZWF0X2VhY2ggPiAxOgpAQCAtODgyLDEzICs4ODIsOSBAQCBjbGFzcyBN
YW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xvb2tfZm9yX25ld19jcmFzaF9sb2dzKHJl
dHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCiAgICAgICAgIHNlbGYuX2NsZWFuX3VwX3J1bigpCiAK
LSAgICAgICAgc2VsZi5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MoZW5kX3RpbWUgLSBzdGFydF90
aW1lLCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5n
cywgcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJl
c3VsdF9zdW1tYXJ5KQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfb25lX2xpbmVfc3Vt
bWFyeShyZXN1bHRfc3VtbWFyeS50b3RhbCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LCByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkKQotCiAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0
cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHNlbGYuX3BvcnQsIHNlbGYuX2V4cGVjdGF0aW9ucywgcmVz
dWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnksIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCBvbmx5
X3VuZXhwZWN0ZWQ9VHJ1ZSwgaW50ZXJydXB0ZWQ9aW50ZXJydXB0ZWQpCi0gICAgICAgIHNlbGYu
X3ByaW50ZXIucHJpbnRfdW5leHBlY3RlZF9yZXN1bHRzKHVuZXhwZWN0ZWRfcmVzdWx0cykKKwor
ICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Jlc3VsdHMoZW5kX3RpbWUgLSBzdGFydF90aW1l
LCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywg
cmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRfcmVzdWx0cykKIAogICAgICAgICAjIFJlLXJhaXNl
IGEgS2V5Ym9hcmRJbnRlcnJ1cHQgaWYgbmVjZXNzYXJ5IHNvIHRoZSBjYWxsZXIgY2FuIGhhbmRs
ZSBpdC4KICAgICAgICAgaWYga2V5Ym9hcmRfaW50ZXJydXB0ZWQ6CkBAIC05ODUsNyArOTgxLDcg
QEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICMgRklYTUU6IFdlIHBy
b2JhYmx5IG5lZWQgdG8gbG9vcCBoZXJlIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBpdGVyYXRpb25z
LgogICAgICAgICAgICAgICAgICMgRklYTUU6IEFsc28sIHRoZXNlIHJlc3VsdHMgYXJlIHJlYWxs
eSBuZWl0aGVyIGV4cGVjdGVkIG5vciB1bmV4cGVjdGVkLiBXZSBwcm9iYWJseQogICAgICAgICAg
ICAgICAgICMgbmVlZCBhIHRoaXJkIHR5cGUgb2YgcmVzdWx0LgotICAgICAgICAgICAgICAgIHJl
c3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlKQorICAgICAgICAgICAgICAg
IHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQsIGV4cGVjdGVkPUZhbHNlLCB0ZXN0X2lzX3Nsb3c9
c2VsZi5fdGVzdF9pc19zbG93KHRlc3RfbmFtZSkpCiAKICAgICBkZWYgX2ludGVycnVwdF9pZl9h
dF9mYWlsdXJlX2xpbWl0cyhzZWxmLCByZXN1bHRfc3VtbWFyeSk6CiAgICAgICAgICMgTm90ZTog
VGhlIG1lc3NhZ2VzIGluIHRoaXMgbWV0aG9kIGFyZSBjb25zdHJ1Y3RlZCB0byBtYXRjaCBvbGQt
cnVuLXdlYmtpdC10ZXN0cwpAQCAtMTAxMCwxMCArMTAwNiwxMCBAQCBjbGFzcyBNYW5hZ2VyKG9i
amVjdCk6CiAKICAgICBkZWYgX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYsIHJlc3Vs
dF9zdW1tYXJ5LCByZXN1bHQpOgogICAgICAgICBpZiByZXN1bHQudHlwZSA9PSB0ZXN0X2V4cGVj
dGF0aW9ucy5TS0lQOgotICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkuYWRkKHJlc3VsdCwgZXhw
ZWN0ZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LmFkZChyZXN1bHQsIGV4cGVj
dGVkPVRydWUsIHRlc3RfaXNfc2xvdz1zZWxmLl90ZXN0X2lzX3Nsb3cocmVzdWx0LnRlc3RfbmFt
ZSkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBleHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0
aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChyZXN1bHQudGVzdF9uYW1lLCByZXN1bHQu
dHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciB0ZXN0X2ZhaWx1cmVzLmlzX3JlZnRl
c3RfZmFpbHVyZShyZXN1bHQuZmFpbHVyZXMpKQotICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnku
YWRkKHJlc3VsdCwgZXhwZWN0ZWQpCisgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS5hZGQocmVz
dWx0LCBleHBlY3RlZCwgc2VsZi5fdGVzdF9pc19zbG93KHJlc3VsdC50ZXN0X25hbWUpKQogICAg
ICAgICAgICAgZXhwX3N0ciA9IHNlbGYuX2V4cGVjdGF0aW9ucy5nZXRfZXhwZWN0YXRpb25zX3N0
cmluZyhyZXN1bHQudGVzdF9uYW1lKQogICAgICAgICAgICAgZ290X3N0ciA9IHNlbGYuX2V4cGVj
dGF0aW9ucy5leHBlY3RhdGlvbl90b19zdHJpbmcocmVzdWx0LnR5cGUpCiAgICAgICAgICAgICBz
ZWxmLl9wcmludGVyLnByaW50X3Rlc3RfcmVzdWx0KHJlc3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIs
IGdvdF9zdHIpCkBAIC0xMTYwLDIxNyArMTE1Niw2IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgICAgIG5kaWdpdHMgPSBpbnQobWF0aC5sb2cxMChsZW4obnVtKSkpICsgMQogICAg
ICAgICByZXR1cm4gbmRpZ2l0cwogCi0gICAgZGVmIF9wcmludF90aW1pbmdfc3RhdGlzdGljcyhz
ZWxmLCB0b3RhbF90aW1lLCB0aHJlYWRfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaXJlY3RvcnlfdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAg
ICIiIlJlY29yZCB0aW1pbmctc3BlY2lmaWMgaW5mb3JtYXRpb24gZm9yIHRoZSB0ZXN0IHJ1bi4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRvdGFsX3RpbWU6IHRvdGFsIGVsYXBzZWQgdGlt
ZSAoaW4gc2Vjb25kcykgZm9yIHRoZSB0ZXN0IHJ1bgotICAgICAgICAgIHRocmVhZF90aW1pbmdz
OiB3YWxsIGNsb2NrIHRpbWUgZWFjaCB0aHJlYWQgcmFuIGZvcgotICAgICAgICAgIGRpcmVjdG9y
eV90ZXN0X3RpbWluZ3M6IHRpbWluZyBieSBkaXJlY3RvcnkKLSAgICAgICAgICBpbmRpdmlkdWFs
X3Rlc3RfdGltaW5nczogdGltaW5nIGJ5IGZpbGUKLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTog
c3VtbWFyeSBvYmplY3QgZm9yIHRoZSB0ZXN0IHJ1bgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5fcHJpbnRlci5wcmludF90aW1pbmcoIlRlc3QgdGltaW5nOiIpCi0gICAgICAgIHNlbGYuX3By
aW50ZXIucHJpbnRfdGltaW5nKCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0b3RhbF90
aW1lKQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygiIikKLSAgICAgICAgc2Vs
Zi5fcHJpbnRlci5wcmludF90aW1pbmcoIlRocmVhZCB0aW1pbmc6IikKLSAgICAgICAgY3VtbF90
aW1lID0gMAotICAgICAgICBmb3IgdCBpbiB0aHJlYWRfdGltaW5nczoKLSAgICAgICAgICAgIHNl
bGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNz
IiAlCi0gICAgICAgICAgICAgICAgICAodFsnbmFtZSddLCB0WydudW1fdGVzdHMnXSwgdFsndG90
YWxfdGltZSddKSkKLSAgICAgICAgICAgIGN1bWxfdGltZSArPSB0Wyd0b3RhbF90aW1lJ10KLSAg
ICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90aW1pbmcoIiAgICU2LjJmIGN1bXVsYXRpdmUsICU2
LjJmIG9wdGltYWwiICUKLSAgICAgICAgICAgICAgKGN1bWxfdGltZSwgY3VtbF90aW1lIC8gaW50
KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCi0gICAgICAgIHNlbGYuX3ByaW50ZXIu
cHJpbnRfdGltaW5nKCIiKQotCi0gICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0
YXRpc3RpY3MoaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpCi0gICAgICAgIHNlbGYuX3ByaW50X2lu
ZGl2aWR1YWxfdGVzdF90aW1lcyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KQotICAgICAgICBz
ZWxmLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhkaXJlY3RvcnlfdGVzdF90aW1pbmdzKQotCi0g
ICAgZGVmIF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKToKLSAgICAgICAgIiIiUHJpbnRzIGFnZ3JlZ2F0ZSBzdGF0aXN0aWNzIChl
LmcuIG1lZGlhbiwgbWVhbiwgZXRjLikgZm9yIGFsbCB0ZXN0cy4KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0UmVzdWx0cyBmb3Ig
YWxsIHRlc3RzLgotICAgICAgICAiIiIKLSAgICAgICAgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3Ry
ZWUgPSBbdGVzdF9zdGF0cy50ZXN0X3J1bl90aW1lIGZvciB0ZXN0X3N0YXRzIGluIGluZGl2aWR1
YWxfdGVzdF90aW1pbmdzXQotICAgICAgICBzZWxmLl9wcmludF9zdGF0aXN0aWNzX2Zvcl90ZXN0
X3RpbWluZ3MoIlBFUiBURVNUIFRJTUUgSU4gVEVTVFNIRUxMIChzZWNvbmRzKToiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXNfZm9yX2R1bXBf
cmVuZGVyX3RyZWUpCi0KLSAgICBkZWYgX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyhzZWxm
LCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIiIlByaW50cyB0aGUgcnVuIHRpbWVzIGZv
ciBzbG93LCB0aW1lb3V0IGFuZCBjcmFzaCB0ZXN0cy4KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0U3RhdHMgZm9yIGFsbCB0ZXN0
cy4KLSAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZm9yIHRlc3QgcnVu
Ci0gICAgICAgICIiIgotICAgICAgICAjIFJldmVyc2Utc29ydCBieSB0aGUgdGltZSBzcGVudCBp
biBEdW1wUmVuZGVyVHJlZS4KLSAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Muc29ydChs
YW1iZGEgYSwgYjoKLSAgICAgICAgICAgIGNtcChiLnRlc3RfcnVuX3RpbWUsIGEudGVzdF9ydW5f
dGltZSkpCi0KLSAgICAgICAgbnVtX3ByaW50ZWQgPSAwCi0gICAgICAgIHNsb3dfdGVzdHMgPSBb
XQotICAgICAgICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzID0gW10KLSAgICAgICAgdW5leHBlY3Rl
ZF9zbG93X3Rlc3RzID0gW10KLSAgICAgICAgZm9yIHRlc3RfdHVwbGUgaW4gaW5kaXZpZHVhbF90
ZXN0X3RpbWluZ3M6Ci0gICAgICAgICAgICB0ZXN0X25hbWUgPSB0ZXN0X3R1cGxlLnRlc3RfbmFt
ZQotICAgICAgICAgICAgaXNfdGltZW91dF9jcmFzaF9vcl9zbG93ID0gRmFsc2UKLSAgICAgICAg
ICAgIGlmIHNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X25hbWUpOgotICAgICAgICAgICAgICAgIGlz
X3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyA9IFRydWUKLSAgICAgICAgICAgICAgICBzbG93X3Rlc3Rz
LmFwcGVuZCh0ZXN0X3R1cGxlKQotCi0gICAgICAgICAgICBpZiB0ZXN0X25hbWUgaW4gcmVzdWx0
X3N1bW1hcnkuZmFpbHVyZXM6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0X3N1bW1h
cnkucmVzdWx0c1t0ZXN0X25hbWVdLnR5cGUKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09
IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQgb3IKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0
ID09IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKToKLSAgICAgICAgICAgICAgICAgICAgaXNfdGlt
ZW91dF9jcmFzaF9vcl9zbG93ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X29y
X2NyYXNoX3Rlc3RzLmFwcGVuZCh0ZXN0X3R1cGxlKQotCi0gICAgICAgICAgICBpZiAobm90IGlz
X3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyBhbmQKLSAgICAgICAgICAgICAgICBudW1fcHJpbnRlZCA8
IHByaW50aW5nLk5VTV9TTE9XX1RFU1RTX1RPX0xPRyk6Ci0gICAgICAgICAgICAgICAgbnVtX3By
aW50ZWQgPSBudW1fcHJpbnRlZCArIDEKLSAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Nsb3df
dGVzdHMuYXBwZW5kKHRlc3RfdHVwbGUpCi0KLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90
aW1pbmcoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Rlc3RfbGlzdF90aW1pbmcoIiVzIHNsb3dl
c3QgdGVzdHMgdGhhdCBhcmUgbm90ICIKLSAgICAgICAgICAgICJtYXJrZWQgYXMgU0xPVyBhbmQg
ZGlkIG5vdCB0aW1lb3V0L2NyYXNoOiIgJQotICAgICAgICAgICAgcHJpbnRpbmcuTlVNX1NMT1df
VEVTVFNfVE9fTE9HLCB1bmV4cGVjdGVkX3Nsb3dfdGVzdHMpCi0gICAgICAgIHNlbGYuX3ByaW50
ZXIucHJpbnRfdGltaW5nKCIiKQotICAgICAgICBzZWxmLl9wcmludF90ZXN0X2xpc3RfdGltaW5n
KCJUZXN0cyBtYXJrZWQgYXMgU0xPVzoiLCBzbG93X3Rlc3RzKQotICAgICAgICBzZWxmLl9wcmlu
dGVyLnByaW50X3RpbWluZygiIikKLSAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWlu
ZygiVGVzdHMgdGhhdCB0aW1lZCBvdXQgb3IgY3Jhc2hlZDoiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfb3JfY3Jhc2hfdGVzdHMpCi0gICAgICAgIHNlbGYu
X3ByaW50ZXIucHJpbnRfdGltaW5nKCIiKQotCi0gICAgZGVmIF9wcmludF90ZXN0X2xpc3RfdGlt
aW5nKHNlbGYsIHRpdGxlLCB0ZXN0X2xpc3QpOgotICAgICAgICAiIiJQcmludCB0aW1pbmcgaW5m
byBmb3IgZWFjaCB0ZXN0LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGl0bGU6IHNlY3Rp
b24gaGVhZGluZwotICAgICAgICAgIHRlc3RfbGlzdDogdGVzdHMgdGhhdCBmYWxsIGluIHRoaXMg
c2VjdGlvbgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fcHJpbnRlci5kaXNhYmxlZCgn
c2xvd2VzdCcpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fcHJpbnRlci5w
cmludF90aW1pbmcodGl0bGUpCi0gICAgICAgIGZvciB0ZXN0X3R1cGxlIGluIHRlc3RfbGlzdDoK
LSAgICAgICAgICAgIHRlc3RfcnVuX3RpbWUgPSByb3VuZCh0ZXN0X3R1cGxlLnRlc3RfcnVuX3Rp
bWUsIDEpCi0gICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygiICAlcyB0b29r
ICVzIHNlY29uZHMiICUgKHRlc3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90aW1lKSkKLQot
ICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgZGlyZWN0b3J5X3Rlc3RfdGlt
aW5ncyk6Ci0gICAgICAgICIiIlByaW50IHRpbWluZyBpbmZvIGJ5IGRpcmVjdG9yeSBmb3IgYW55
IGRpcmVjdG9yaWVzIHRoYXQKLSAgICAgICAgdGFrZSA+IDEwIHNlY29uZHMgdG8gcnVuLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5nOiB0aW1lIGluZm8g
Zm9yIGVhY2ggZGlyZWN0b3J5Ci0gICAgICAgICIiIgotICAgICAgICB0aW1pbmdzID0gW10KLSAg
ICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3RvcnlfdGVzdF90aW1pbmdzOgotICAgICAgICAg
ICAgbnVtX3Rlc3RzLCB0aW1lX2Zvcl9kaXJlY3RvcnkgPSBkaXJlY3RvcnlfdGVzdF90aW1pbmdz
W2RpcmVjdG9yeV0KLSAgICAgICAgICAgIHRpbWluZ3MuYXBwZW5kKChyb3VuZCh0aW1lX2Zvcl9k
aXJlY3RvcnksIDEpLCBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVt
X3Rlc3RzKSkKLSAgICAgICAgdGltaW5ncy5zb3J0KCkKLQotICAgICAgICBzZWxmLl9wcmludGVy
LnByaW50X3RpbWluZygiVGltZSB0byBwcm9jZXNzIHNsb3dlc3Qgc3ViZGlyZWN0b3JpZXM6IikK
LSAgICAgICAgbWluX3NlY29uZHNfdG9fcHJpbnQgPSAxMAotICAgICAgICBmb3IgdGltaW5nIGlu
IHRpbWluZ3M6Ci0gICAgICAgICAgICBpZiB0aW1pbmdbMF0gPiBtaW5fc2Vjb25kc190b19wcmlu
dDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygKLSAgICAgICAg
ICAgICAgICAgICAgIiAgJXMgdG9vayAlcyBzZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgKHRp
bWluZ1sxXSwKLSAgICAgICAgICAgICAgICAgICAgdGltaW5nWzBdLCB0aW1pbmdbMl0pKQotICAg
ICAgICBzZWxmLl9wcmludGVyLnByaW50X3RpbWluZygiIikKLQotICAgIGRlZiBfcHJpbnRfc3Rh
dGlzdGljc19mb3JfdGVzdF90aW1pbmdzKHNlbGYsIHRpdGxlLCB0aW1pbmdzKToKLSAgICAgICAg
IiIiUHJpbnRzIHRoZSBtZWRpYW4sIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUg
dmFsdWVzIGluCi0gICAgICAgIHRpbWluZ3MuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0
aXRsZTogVGl0bGUgZm9yIHRoZXNlIHRpbWluZ3MuCi0gICAgICAgICAgdGltaW5nczogQSBsaXN0
IG9mIGZsb2F0cyByZXByZXNlbnRpbmcgdGltZXMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
Ll9wcmludGVyLnByaW50X3RpbWluZyh0aXRsZSkKLSAgICAgICAgdGltaW5ncy5zb3J0KCkKLQot
ICAgICAgICBudW1fdGVzdHMgPSBsZW4odGltaW5ncykKLSAgICAgICAgaWYgbm90IG51bV90ZXN0
czoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBwZXJjZW50aWxlOTAgPSB0aW1pbmdzW2lu
dCguOSAqIG51bV90ZXN0cyldCi0gICAgICAgIHBlcmNlbnRpbGU5OSA9IHRpbWluZ3NbaW50KC45
OSAqIG51bV90ZXN0cyldCi0KLSAgICAgICAgaWYgbnVtX3Rlc3RzICUgMiA9PSAxOgotICAgICAg
ICAgICAgbWVkaWFuID0gdGltaW5nc1soKG51bV90ZXN0cyAtIDEpIC8gMikgLSAxXQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgbG93ZXIgPSB0aW1pbmdzW251bV90ZXN0cyAvIDIgLSAxXQot
ICAgICAgICAgICAgdXBwZXIgPSB0aW1pbmdzW251bV90ZXN0cyAvIDJdCi0gICAgICAgICAgICBt
ZWRpYW4gPSAoZmxvYXQobG93ZXIgKyB1cHBlcikpIC8gMgotCi0gICAgICAgIG1lYW4gPSBzdW0o
dGltaW5ncykgLyBudW1fdGVzdHMKLQotICAgICAgICBmb3IgdGltaW5nIGluIHRpbWluZ3M6Ci0g
ICAgICAgICAgICBzdW1fb2ZfZGV2aWF0aW9ucyA9IG1hdGgucG93KHRpbWluZyAtIG1lYW4sIDIp
Ci0KLSAgICAgICAgc3RkX2RldmlhdGlvbiA9IG1hdGguc3FydChzdW1fb2ZfZGV2aWF0aW9ucyAv
IG51bV90ZXN0cykKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90aW1pbmcoIiAgTWVkaWFu
OiAgICAgICAgICAlNi4zZiIgJSBtZWRpYW4pCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRf
dGltaW5nKCIgIE1lYW46ICAgICAgICAgICAgJTYuM2YiICUgbWVhbikKLSAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF90aW1pbmcoIiAgOTB0aCBwZXJjZW50aWxlOiAlNi4zZiIgJSBwZXJjZW50
aWxlOTApCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIgIDk5dGggcGVyY2Vu
dGlsZTogJTYuM2YiICUgcGVyY2VudGlsZTk5KQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50
X3RpbWluZygiICBTdGFuZGFyZCBkZXY6ICAgICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCi0gICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdGltaW5nKCIiKQotCi0gICAgZGVmIF9wcmludF9yZXN1
bHRfc3VtbWFyeShzZWxmLCByZXN1bHRfc3VtbWFyeSk6Ci0gICAgICAgICIiIlByaW50IGEgc2hv
cnQgc3VtbWFyeSBhYm91dCBob3cgbWFueSB0ZXN0cyBwYXNzZWQuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICByZXN1bHRfc3VtbWFyeTogaW5mb3JtYXRpb24gdG8gbG9nCi0gICAgICAgICIi
IgotICAgICAgICBmYWlsZWQgPSByZXN1bHRfc3VtbWFyeS50b3RhbF9mYWlsdXJlcwotICAgICAg
ICB0b3RhbCA9IHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRf
c2tpcHMKLSAgICAgICAgcGFzc2VkID0gdG90YWwgLSBmYWlsZWQKLSAgICAgICAgcGN0X3Bhc3Nl
ZCA9IDAuMAotICAgICAgICBpZiB0b3RhbCA+IDA6Ci0gICAgICAgICAgICBwY3RfcGFzc2VkID0g
ZmxvYXQocGFzc2VkKSAqIDEwMCAvIHRvdGFsCi0KLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmlu
dF9hY3R1YWwoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfYWN0dWFsKCI9PiBSZXN1
bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUKLSAgICAgICAgICAgICAgICAgICAg
IChwYXNzZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmlu
dF9hY3R1YWwoIiIpCi0gICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5X2VudHJ5KHJl
c3VsdF9zdW1tYXJ5LAotICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMuTk9XLCAiVGVzdHMg
dG8gYmUgZml4ZWQiKQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfYWN0dWFsKCIiKQot
ICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFyeSwK
LSAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCi0gICAgICAgICAgICAiVGVz
dHMgdGhhdCB3aWxsIG9ubHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCkiKQotICAg
ICAgICBzZWxmLl9wcmludGVyLnByaW50X2FjdHVhbCgiIikKLQotICAgIGRlZiBfcHJpbnRfcmVz
dWx0X3N1bW1hcnlfZW50cnkoc2VsZiwgcmVzdWx0X3N1bW1hcnksIHRpbWVsaW5lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZyk6Ci0gICAgICAgICIiIlByaW50
IGEgc3VtbWFyeSBibG9jayBvZiByZXN1bHRzIGZvciBhIHBhcnRpY3VsYXIgdGltZWxpbmUgb2Yg
dGVzdC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5
IHRvIHByaW50IHJlc3VsdHMgZm9yCi0gICAgICAgICAgdGltZWxpbmU6IHRoZSB0aW1lbGluZSB0
byBwcmludCByZXN1bHRzIGZvciAoTk9ULCBXT05URklYLCBldGMuKQotICAgICAgICAgIGhlYWRp
bmc6IGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgdGltZWxpbmUKLSAgICAgICAgIiIiCi0g
ICAgICAgIHRvdGFsID0gbGVuKHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVs
aW5lXSkKLSAgICAgICAgbm90X3Bhc3NpbmcgPSAodG90YWwgLQotICAgICAgICAgICBsZW4ocmVz
dWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuUEFTU10g
JgotICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxp
bmVdKSkKLSAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9hY3R1YWwoIj0+ICVzICglZCk6IiAl
IChoZWFkaW5nLCBub3RfcGFzc2luZykpCi0KLSAgICAgICAgZm9yIHJlc3VsdCBpbiBUZXN0RXhw
ZWN0YXRpb25zLkVYUEVDVEFUSU9OX09SREVSOgotICAgICAgICAgICAgaWYgcmVzdWx0ID09IHRl
c3RfZXhwZWN0YXRpb25zLlBBU1M6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
ICAgIHJlc3VsdHMgPSAocmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bcmVzdWx0
XSAmCi0gICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVs
aW5lW3RpbWVsaW5lXSkKLSAgICAgICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVD
VEFUSU9OX0RFU0NSSVBUSU9OU1tyZXN1bHRdCi0gICAgICAgICAgICBpZiBub3RfcGFzc2luZyBh
bmQgbGVuKHJlc3VsdHMpOgotICAgICAgICAgICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEw
MC4wIC8gbm90X3Bhc3NpbmcKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X2Fj
dHVhbCgiICAlNWQgJS0yNHMgKCU0LjFmJSUpIiAlCi0gICAgICAgICAgICAgICAgICAgIChsZW4o
cmVzdWx0cyksIGRlc2NbbGVuKHJlc3VsdHMpICE9IDFdLCBwY3QpKQotCiAgICAgZGVmIF9jb3B5
X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYpOgogICAgICAgICBiYXNlX2RpciA9IHNlbGYuX3BvcnQu
cGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdMYXlvdXRUZXN0cycsICdmYXN0JywgJ2hhcm5lc3MnKQog
ICAgICAgICByZXN1bHRzX2ZpbGUgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oYmFzZV9kaXIsICdy
ZXN1bHRzLmh0bWwnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXgg
MjdmMDZhNzBlMWJhY2Q2ZDFmNzQyNTJmZWQ4MmFjOTk5MjE5ODc4MS4uNWFhOGIzMmViY2ZjYWU5
Y2M5OGNjODk1OWQ1MWY3ZjI1MTkzZWQ1MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5CkBAIC0yNTMsNiArMjUzLDggQEAgY2xhc3MgTWFuYWdlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgICAgIG1hbmFnZXIuX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhleGl0
X2FmdGVyX25fZmFpbHVyZXM9Tm9uZSwgZXhpdF9hZnRlcl9uX2NyYXNoZXNfb3JfdGltZW91dHM9
Tm9uZSkKICAgICAgICAgbWFuYWdlci5fdGVzdF9maWxlcyA9IFsnZm9vL2Jhci5odG1sJywgJ2Jh
ei5odG1sJ10KKyAgICAgICAgbWFuYWdlci5fdGVzdF9pc19zbG93ID0gbGFtYmRhIHRlc3RfbmFt
ZTogRmFsc2UKKwogICAgICAgICByZXN1bHRfc3VtbWFyeSA9IFJlc3VsdFN1bW1hcnkoZXhwZWN0
YXRpb25zPU1vY2soKSwgdGVzdF9maWxlcz1tYW5hZ2VyLl90ZXN0X2ZpbGVzKQogICAgICAgICBy
ZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkX2ZhaWx1cmVzID0gMTAwCiAgICAgICAgIHJlc3VsdF9z
dW1tYXJ5LnVuZXhwZWN0ZWRfY3Jhc2hlcyA9IDUwCkBAIC00ODYsMjkgKzQ4OCwzMCBAQCBjbGFz
cyBSZXN1bHRTdW1tYXJ5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlmIGV4dHJh
X2V4cGVjdGF0aW9uczoKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyArPSBleHRyYV9leHBlY3Rh
dGlvbnMKIAorICAgICAgICB0ZXN0X2lzX3Nsb3cgPSBGYWxzZQogICAgICAgICBwYXRocywgcnMs
IGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHBvcnQsIHRlc3RzLCBleHBlY3RhdGlvbnMp
CiAgICAgICAgIGlmIGV4cGVjdGVkOgotICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlBBU1MpLCBleHBlY3RlZCkK
LSAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rp
bWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKLSAgICAg
ICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMu
YWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25z
LlBBU1MpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3Rh
dGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAgICBlbGlm
IHBhc3Npbmc6Ci0gICAgICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4
dC5odG1sJyksIGV4cGVjdGVkKQotICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIGV4cGVjdGVkKQotICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBl
eHBlY3RlZCkKKyAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0
Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgIHJzLmFkZChzZWxm
LmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBleHBlY3RlZCwg
dGVzdF9pc19zbG93KQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQu
aHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKLSAgICAgICAgICAg
IHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcs
IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICBycy5hZGQo
c2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9leHBl
Y3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0
X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBl
eHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JB
U0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0
X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25z
LlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogCiAgICAgICAgIGZvciB0ZXN0IGlu
IGV4dHJhX3Rlc3RzOgotICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCh0ZXN0LCB0
ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkKQorICAgICAgICAgICAgcnMuYWRkKHNl
bGYuZ2V0X3Jlc3VsdCh0ZXN0LCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkLCB0
ZXN0X2lzX3Nsb3cpCiAKICAgICAgICAgcmV0cnkgPSBycwogICAgICAgICBpZiBmbGFreToKICAg
ICAgICAgICAgIHBhdGhzLCByZXRyeSwgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1hcnkocG9y
dCwgdGVzdHMsIGV4cGVjdGF0aW9ucykKLSAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9y
ZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgVHJ1ZSkKLSAgICAgICAgICAgIHJldHJ5LmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBUcnVlKQot
ICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
Y3Jhc2guaHRtbCcpLCBUcnVlKQorICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3Vs
dCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgICAgICBy
ZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwn
KSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cp
CiAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1hbmFnZXIuc3VtbWFyaXplX3Jlc3VsdHMo
cG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3RfdGltaW5ncz17fSwgb25seV91bmV4cGVjdGVkPVRy
dWUsIGludGVycnVwdGVkPUZhbHNlKQogICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gbWFuYWdl
ci5zdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9
LCBvbmx5X3VuZXhwZWN0ZWQ9RmFsc2UsIGludGVycnVwdGVkPUZhbHNlKQogICAgICAgICByZXR1
cm4gZXhwZWN0ZWRfcmVzdWx0cywgdW5leHBlY3RlZF9yZXN1bHRzCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1hcnkucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvcmVzdWx0X3N1bW1h
cnkucHkKaW5kZXggZDQ2NzAzZThmZGRmNmFlNGEyMDUyN2FjOTgxMDg0YTk4Nzg1YjM0ZS4uYjA1
MTIxMjdmYmQ1MGJhNTFkNWNiMTU3MWQ2YmIwMTk4ZmE2OWJkYiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Jlc3VsdF9zdW1tYXJ5LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy9yZXN1bHRfc3Vt
bWFyeS5weQpAQCAtNTUsOCArNTUsOSBAQCBjbGFzcyBSZXN1bHRTdW1tYXJ5KG9iamVjdCk6CiAg
ICAgICAgICAgICBzZWxmLnRvdGFsX3Rlc3RzX2J5X2V4cGVjdGF0aW9uW2V4cGVjdGF0aW9uXSA9
IDAKICAgICAgICAgZm9yIHRpbWVsaW5lIGluIFRlc3RFeHBlY3RhdGlvbnMuVElNRUxJTkVTLnZh
bHVlcygpOgogICAgICAgICAgICAgc2VsZi50ZXN0c19ieV90aW1lbGluZVt0aW1lbGluZV0gPSBl
eHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dpdGhfdGltZWxpbmUodGltZWxpbmUpCisgICAgICAgIHNl
bGYuc2xvd190ZXN0cyA9IHNldCgpCiAKLSAgICBkZWYgYWRkKHNlbGYsIHRlc3RfcmVzdWx0LCBl
eHBlY3RlZCk6CisgICAgZGVmIGFkZChzZWxmLCB0ZXN0X3Jlc3VsdCwgZXhwZWN0ZWQsIHRlc3Rf
aXNfc2xvdyk6CiAgICAgICAgIHNlbGYudG90YWxfdGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9y
ZXN1bHQudHlwZV0gKz0gMQogICAgICAgICBzZWxmLnRlc3RzX2J5X2V4cGVjdGF0aW9uW3Rlc3Rf
cmVzdWx0LnR5cGVdLmFkZCh0ZXN0X3Jlc3VsdC50ZXN0X25hbWUpCiAgICAgICAgIHNlbGYucmVz
dWx0c1t0ZXN0X3Jlc3VsdC50ZXN0X25hbWVdID0gdGVzdF9yZXN1bHQKQEAgLTc3LDMgKzc4LDUg
QEAgY2xhc3MgUmVzdWx0U3VtbWFyeShvYmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYudW5l
eHBlY3RlZF9jcmFzaGVzICs9IDEKICAgICAgICAgICAgIGVsaWYgdGVzdF9yZXN1bHQudHlwZSA9
PSBUSU1FT1VUOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF90aW1lb3V0cyArPSAx
CisgICAgICAgIGlmIHRlc3RfaXNfc2xvdzoKKyAgICAgICAgICAgIHNlbGYuc2xvd190ZXN0cy5h
ZGQodGVzdF9yZXN1bHQudGVzdF9uYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQppbmRleCAyZGQ5MDk5MzA2OTA0YjFi
OTk4OTUxMTQyNmY4ZTM2NzZjY2FiZDExLi4wOWNjYmJkNDY0ODExOGIzYWE2YTNjMzNlOTg2MWRh
YTM3NWU0MzdkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy92aWV3cy9wcmludGluZy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZy5weQpAQCAtMjksMTAgKzI5LDEyIEBACiAKICIiIlBhY2thZ2Ug
dGhhdCBoYW5kbGVzIG5vbi1kZWJ1Zywgbm9uLWZpbGUgb3V0cHV0IGZvciBydW4td2Via2l0LXRl
c3RzLiIiIgogCitpbXBvcnQgbWF0aAogaW1wb3J0IG9wdHBhcnNlCiAKIGZyb20gd2Via2l0cHku
dG9vbCBpbXBvcnQgZ3JhbW1hcgogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0IGltcG9ydCByZXN1
bHRzanNvbnBhcnNlcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0
ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3Rf
ZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy52aWV3cy5tZXRlcmVkX3N0cmVhbSBpbXBvcnQgTWV0ZXJlZFN0cmVhbQogCkBAIC0x
OTIsNiArMTk0LDIyNCBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgZGVmIGhlbHBfcHJp
bnRpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuX3dyaXRlKEhFTFBfUFJJTlRJTkcpCiAKKyAgICBk
ZWYgcHJpbnRfcmVzdWx0cyhzZWxmLCBydW5fdGltZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGlt
aW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVk
X3Jlc3VsdHMpOgorICAgICAgICBzZWxmLl9wcmludF90aW1pbmdfc3RhdGlzdGljcyhydW5fdGlt
ZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Ms
IHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeShyZXN1
bHRfc3VtbWFyeSkKKworICAgICAgICBzZWxmLnByaW50X29uZV9saW5lX3N1bW1hcnkocmVzdWx0
X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lwcywgcmVzdWx0X3N1
bW1hcnkuZXhwZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lwcywgcmVzdWx0X3N1
bW1hcnkudW5leHBlY3RlZCkKKworICAgICAgICBzZWxmLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0
cyh1bmV4cGVjdGVkX3Jlc3VsdHMpCisKKyAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNz
KHNlbGYsIHRvdGFsX3RpbWUsIHRocmVhZF90aW1pbmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWlu
Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6Cisg
ICAgICAgICIiIlJlY29yZCB0aW1pbmctc3BlY2lmaWMgaW5mb3JtYXRpb24gZm9yIHRoZSB0ZXN0
IHJ1bi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHRvdGFsX3RpbWU6IHRvdGFsIGVsYXBz
ZWQgdGltZSAoaW4gc2Vjb25kcykgZm9yIHRoZSB0ZXN0IHJ1bgorICAgICAgICAgIHRocmVhZF90
aW1pbmdzOiB3YWxsIGNsb2NrIHRpbWUgZWFjaCB0aHJlYWQgcmFuIGZvcgorICAgICAgICAgIGRp
cmVjdG9yeV90ZXN0X3RpbWluZ3M6IHRpbWluZyBieSBkaXJlY3RvcnkKKyAgICAgICAgICBpbmRp
dmlkdWFsX3Rlc3RfdGltaW5nczogdGltaW5nIGJ5IGZpbGUKKyAgICAgICAgICByZXN1bHRfc3Vt
bWFyeTogc3VtbWFyeSBvYmplY3QgZm9yIHRoZSB0ZXN0IHJ1bgorICAgICAgICAiIiIKKyAgICAg
ICAgc2VsZi5wcmludF90aW1pbmcoIlRlc3QgdGltaW5nOiIpCisgICAgICAgIHNlbGYucHJpbnRf
dGltaW5nKCIgICU2LjJmIHRvdGFsIHRlc3RpbmcgdGltZSIgJSB0b3RhbF90aW1lKQorICAgICAg
ICBzZWxmLnByaW50X3RpbWluZygiIikKKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIlRocmVh
ZCB0aW1pbmc6IikKKyAgICAgICAgY3VtbF90aW1lID0gMAorICAgICAgICBmb3IgdCBpbiB0aHJl
YWRfdGltaW5nczoKKyAgICAgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgICAgJTEwczogJTVk
IHRlc3RzLCAlNi4yZiBzZWNzIiAlCisgICAgICAgICAgICAgICAgICAodFsnbmFtZSddLCB0Wydu
dW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKKyAgICAgICAgICAgIGN1bWxfdGltZSArPSB0
Wyd0b3RhbF90aW1lJ10KKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgICU2LjJmIGN1bXVs
YXRpdmUsICU2LjJmIG9wdGltYWwiICUKKyAgICAgICAgICAgICAgKGN1bWxfdGltZSwgY3VtbF90
aW1lIC8gaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCisgICAgICAgIHNlbGYu
cHJpbnRfdGltaW5nKCIiKQorCisgICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0
YXRpc3RpY3MoaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpCisgICAgICAgIHNlbGYuX3ByaW50X2lu
ZGl2aWR1YWxfdGVzdF90aW1lcyhpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBz
ZWxmLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyhkaXJlY3RvcnlfdGVzdF90aW1pbmdzKQorCisg
ICAgZGVmIF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKToKKyAgICAgICAgIiIiUHJpbnRzIGFnZ3JlZ2F0ZSBzdGF0aXN0aWNzIChl
LmcuIG1lZGlhbiwgbWVhbiwgZXRjLikgZm9yIGFsbCB0ZXN0cy4KKyAgICAgICAgQXJnczoKKyAg
ICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0UmVzdWx0cyBmb3Ig
YWxsIHRlc3RzLgorICAgICAgICAiIiIKKyAgICAgICAgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3Ry
ZWUgPSBbdGVzdF9zdGF0cy50ZXN0X3J1bl90aW1lIGZvciB0ZXN0X3N0YXRzIGluIGluZGl2aWR1
YWxfdGVzdF90aW1pbmdzXQorICAgICAgICBzZWxmLl9wcmludF9zdGF0aXN0aWNzX2Zvcl90ZXN0
X3RpbWluZ3MoIlBFUiBURVNUIFRJTUUgSU4gVEVTVFNIRUxMIChzZWNvbmRzKToiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXNfZm9yX2R1bXBf
cmVuZGVyX3RyZWUpCisKKyAgICBkZWYgX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyhzZWxm
LCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeSk6CisgICAgICAgICIiIlByaW50cyB0aGUgcnVuIHRpbWVz
IGZvciBzbG93LCB0aW1lb3V0IGFuZCBjcmFzaCB0ZXN0cy4KKyAgICAgICAgQXJnczoKKyAgICAg
ICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogTGlzdCBvZiBUZXN0U3RhdHMgZm9yIGFsbCB0
ZXN0cy4KKyAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZm9yIHRlc3Qg
cnVuCisgICAgICAgICIiIgorICAgICAgICAjIFJldmVyc2Utc29ydCBieSB0aGUgdGltZSBzcGVu
dCBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Muc29y
dChsYW1iZGEgYSwgYjoKKyAgICAgICAgICAgIGNtcChiLnRlc3RfcnVuX3RpbWUsIGEudGVzdF9y
dW5fdGltZSkpCisKKyAgICAgICAgbnVtX3ByaW50ZWQgPSAwCisgICAgICAgIHNsb3dfdGVzdHMg
PSBbXQorICAgICAgICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzID0gW10KKyAgICAgICAgdW5leHBl
Y3RlZF9zbG93X3Rlc3RzID0gW10KKyAgICAgICAgZm9yIHRlc3RfdHVwbGUgaW4gaW5kaXZpZHVh
bF90ZXN0X3RpbWluZ3M6CisgICAgICAgICAgICB0ZXN0X25hbWUgPSB0ZXN0X3R1cGxlLnRlc3Rf
bmFtZQorICAgICAgICAgICAgaXNfdGltZW91dF9jcmFzaF9vcl9zbG93ID0gRmFsc2UKKyAgICAg
ICAgICAgIGlmIHRlc3RfbmFtZSBpbiByZXN1bHRfc3VtbWFyeS5zbG93X3Rlc3RzOgorICAgICAg
ICAgICAgICAgIGlzX3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyA9IFRydWUKKyAgICAgICAgICAgICAg
ICBzbG93X3Rlc3RzLmFwcGVuZCh0ZXN0X3R1cGxlKQorCisgICAgICAgICAgICBpZiB0ZXN0X25h
bWUgaW4gcmVzdWx0X3N1bW1hcnkuZmFpbHVyZXM6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0X3N1bW1hcnkucmVzdWx0c1t0ZXN0X25hbWVdLnR5cGUKKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0ID09IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQgb3IKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID09IHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKToKKyAgICAgICAgICAgICAg
ICAgICAgaXNfdGltZW91dF9jcmFzaF9vcl9zbG93ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAg
ICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzLmFwcGVuZCh0ZXN0X3R1cGxlKQorCisgICAgICAgICAg
ICBpZiAobm90IGlzX3RpbWVvdXRfY3Jhc2hfb3Jfc2xvdyBhbmQgbnVtX3ByaW50ZWQgPCBOVU1f
U0xPV19URVNUU19UT19MT0cpOgorICAgICAgICAgICAgICAgIG51bV9wcmludGVkID0gbnVtX3By
aW50ZWQgKyAxCisgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9zbG93X3Rlc3RzLmFwcGVuZCh0
ZXN0X3R1cGxlKQorCisgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBzZWxm
Ll9wcmludF90ZXN0X2xpc3RfdGltaW5nKCIlcyBzbG93ZXN0IHRlc3RzIHRoYXQgYXJlIG5vdCAi
CisgICAgICAgICAgICAibWFya2VkIGFzIFNMT1cgYW5kIGRpZCBub3QgdGltZW91dC9jcmFzaDoi
ICUgTlVNX1NMT1dfVEVTVFNfVE9fTE9HLCB1bmV4cGVjdGVkX3Nsb3dfdGVzdHMpCisgICAgICAg
IHNlbGYucHJpbnRfdGltaW5nKCIiKQorICAgICAgICBzZWxmLl9wcmludF90ZXN0X2xpc3RfdGlt
aW5nKCJUZXN0cyBtYXJrZWQgYXMgU0xPVzoiLCBzbG93X3Rlc3RzKQorICAgICAgICBzZWxmLnBy
aW50X3RpbWluZygiIikKKyAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF9saXN0X3RpbWluZygiVGVz
dHMgdGhhdCB0aW1lZCBvdXQgb3IgY3Jhc2hlZDoiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXRfb3JfY3Jhc2hfdGVzdHMpCisgICAgICAgIHNlbGYucHJpbnRf
dGltaW5nKCIiKQorCisgICAgZGVmIF9wcmludF90ZXN0X2xpc3RfdGltaW5nKHNlbGYsIHRpdGxl
LCB0ZXN0X2xpc3QpOgorICAgICAgICAiIiJQcmludCB0aW1pbmcgaW5mbyBmb3IgZWFjaCB0ZXN0
LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgdGl0bGU6IHNlY3Rpb24gaGVhZGluZworICAg
ICAgICAgIHRlc3RfbGlzdDogdGVzdHMgdGhhdCBmYWxsIGluIHRoaXMgc2VjdGlvbgorICAgICAg
ICAiIiIKKyAgICAgICAgaWYgc2VsZi5kaXNhYmxlZCgnc2xvd2VzdCcpOgorICAgICAgICAgICAg
cmV0dXJuCisKKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcodGl0bGUpCisgICAgICAgIGZvciB0
ZXN0X3R1cGxlIGluIHRlc3RfbGlzdDoKKyAgICAgICAgICAgIHRlc3RfcnVuX3RpbWUgPSByb3Vu
ZCh0ZXN0X3R1cGxlLnRlc3RfcnVuX3RpbWUsIDEpCisgICAgICAgICAgICBzZWxmLnByaW50X3Rp
bWluZygiICAlcyB0b29rICVzIHNlY29uZHMiICUgKHRlc3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0
X3J1bl90aW1lKSkKKworICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgZGly
ZWN0b3J5X3Rlc3RfdGltaW5ncyk6CisgICAgICAgICIiIlByaW50IHRpbWluZyBpbmZvIGJ5IGRp
cmVjdG9yeSBmb3IgYW55IGRpcmVjdG9yaWVzIHRoYXQKKyAgICAgICAgdGFrZSA+IDEwIHNlY29u
ZHMgdG8gcnVuLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgZGlyZWN0b3J5X3Rlc3RfdGlt
aW5nOiB0aW1lIGluZm8gZm9yIGVhY2ggZGlyZWN0b3J5CisgICAgICAgICIiIgorICAgICAgICB0
aW1pbmdzID0gW10KKyAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3RvcnlfdGVzdF90aW1p
bmdzOgorICAgICAgICAgICAgbnVtX3Rlc3RzLCB0aW1lX2Zvcl9kaXJlY3RvcnkgPSBkaXJlY3Rv
cnlfdGVzdF90aW1pbmdzW2RpcmVjdG9yeV0KKyAgICAgICAgICAgIHRpbWluZ3MuYXBwZW5kKChy
b3VuZCh0aW1lX2Zvcl9kaXJlY3RvcnksIDEpLCBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtX3Rlc3RzKSkKKyAgICAgICAgdGltaW5ncy5zb3J0KCkKKworICAgICAg
ICBzZWxmLnByaW50X3RpbWluZygiVGltZSB0byBwcm9jZXNzIHNsb3dlc3Qgc3ViZGlyZWN0b3Jp
ZXM6IikKKyAgICAgICAgbWluX3NlY29uZHNfdG9fcHJpbnQgPSAxMAorICAgICAgICBmb3IgdGlt
aW5nIGluIHRpbWluZ3M6CisgICAgICAgICAgICBpZiB0aW1pbmdbMF0gPiBtaW5fc2Vjb25kc190
b19wcmludDoKKyAgICAgICAgICAgICAgICBzZWxmLnByaW50X3RpbWluZygKKyAgICAgICAgICAg
ICAgICAgICAgIiAgJXMgdG9vayAlcyBzZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgKHRpbWlu
Z1sxXSwKKyAgICAgICAgICAgICAgICAgICAgdGltaW5nWzBdLCB0aW1pbmdbMl0pKQorICAgICAg
ICBzZWxmLnByaW50X3RpbWluZygiIikKKworICAgIGRlZiBfcHJpbnRfc3RhdGlzdGljc19mb3Jf
dGVzdF90aW1pbmdzKHNlbGYsIHRpdGxlLCB0aW1pbmdzKToKKyAgICAgICAgIiIiUHJpbnRzIHRo
ZSBtZWRpYW4sIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiB0aGUgdmFsdWVzIGluCisg
ICAgICAgIHRpbWluZ3MuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICB0aXRsZTogVGl0bGUg
Zm9yIHRoZXNlIHRpbWluZ3MuCisgICAgICAgICAgdGltaW5nczogQSBsaXN0IG9mIGZsb2F0cyBy
ZXByZXNlbnRpbmcgdGltZXMuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnByaW50X3RpbWlu
Zyh0aXRsZSkKKyAgICAgICAgdGltaW5ncy5zb3J0KCkKKworICAgICAgICBudW1fdGVzdHMgPSBs
ZW4odGltaW5ncykKKyAgICAgICAgaWYgbm90IG51bV90ZXN0czoKKyAgICAgICAgICAgIHJldHVy
bgorICAgICAgICBwZXJjZW50aWxlOTAgPSB0aW1pbmdzW2ludCguOSAqIG51bV90ZXN0cyldCisg
ICAgICAgIHBlcmNlbnRpbGU5OSA9IHRpbWluZ3NbaW50KC45OSAqIG51bV90ZXN0cyldCisKKyAg
ICAgICAgaWYgbnVtX3Rlc3RzICUgMiA9PSAxOgorICAgICAgICAgICAgbWVkaWFuID0gdGltaW5n
c1soKG51bV90ZXN0cyAtIDEpIC8gMikgLSAxXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
bG93ZXIgPSB0aW1pbmdzW251bV90ZXN0cyAvIDIgLSAxXQorICAgICAgICAgICAgdXBwZXIgPSB0
aW1pbmdzW251bV90ZXN0cyAvIDJdCisgICAgICAgICAgICBtZWRpYW4gPSAoZmxvYXQobG93ZXIg
KyB1cHBlcikpIC8gMgorCisgICAgICAgIG1lYW4gPSBzdW0odGltaW5ncykgLyBudW1fdGVzdHMK
KworICAgICAgICBmb3IgdGltaW5nIGluIHRpbWluZ3M6CisgICAgICAgICAgICBzdW1fb2ZfZGV2
aWF0aW9ucyA9IG1hdGgucG93KHRpbWluZyAtIG1lYW4sIDIpCisKKyAgICAgICAgc3RkX2Rldmlh
dGlvbiA9IG1hdGguc3FydChzdW1fb2ZfZGV2aWF0aW9ucyAvIG51bV90ZXN0cykKKyAgICAgICAg
c2VsZi5wcmludF90aW1pbmcoIiAgTWVkaWFuOiAgICAgICAgICAlNi4zZiIgJSBtZWRpYW4pCisg
ICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIE1lYW46ICAgICAgICAgICAgJTYuM2YiICUgbWVh
bikKKyAgICAgICAgc2VsZi5wcmludF90aW1pbmcoIiAgOTB0aCBwZXJjZW50aWxlOiAlNi4zZiIg
JSBwZXJjZW50aWxlOTApCisgICAgICAgIHNlbGYucHJpbnRfdGltaW5nKCIgIDk5dGggcGVyY2Vu
dGlsZTogJTYuM2YiICUgcGVyY2VudGlsZTk5KQorICAgICAgICBzZWxmLnByaW50X3RpbWluZygi
ICBTdGFuZGFyZCBkZXY6ICAgICU2LjNmIiAlIHN0ZF9kZXZpYXRpb24pCisgICAgICAgIHNlbGYu
cHJpbnRfdGltaW5nKCIiKQorCisgICAgZGVmIF9wcmludF9yZXN1bHRfc3VtbWFyeShzZWxmLCBy
ZXN1bHRfc3VtbWFyeSk6CisgICAgICAgICIiIlByaW50IGEgc2hvcnQgc3VtbWFyeSBhYm91dCBo
b3cgbWFueSB0ZXN0cyBwYXNzZWQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICByZXN1bHRf
c3VtbWFyeTogaW5mb3JtYXRpb24gdG8gbG9nCisgICAgICAgICIiIgorICAgICAgICBmYWlsZWQg
PSByZXN1bHRfc3VtbWFyeS50b3RhbF9mYWlsdXJlcworICAgICAgICB0b3RhbCA9IHJlc3VsdF9z
dW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMKKyAgICAgICAgcGFz
c2VkID0gdG90YWwgLSBmYWlsZWQKKyAgICAgICAgcGN0X3Bhc3NlZCA9IDAuMAorICAgICAgICBp
ZiB0b3RhbCA+IDA6CisgICAgICAgICAgICBwY3RfcGFzc2VkID0gZmxvYXQocGFzc2VkKSAqIDEw
MCAvIHRvdGFsCisKKyAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIiIpCisgICAgICAgIHNlbGYu
cHJpbnRfYWN0dWFsKCI9PiBSZXN1bHRzOiAlZC8lZCB0ZXN0cyBwYXNzZWQgKCUuMWYlJSkiICUK
KyAgICAgICAgICAgICAgICAgICAgIChwYXNzZWQsIHRvdGFsLCBwY3RfcGFzc2VkKSkKKyAgICAg
ICAgc2VsZi5wcmludF9hY3R1YWwoIiIpCisgICAgICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1t
YXJ5X2VudHJ5KHJlc3VsdF9zdW1tYXJ5LAorICAgICAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMu
Tk9XLCAiVGVzdHMgdG8gYmUgZml4ZWQiKQorCisgICAgICAgIHNlbGYucHJpbnRfYWN0dWFsKCIi
KQorICAgICAgICBzZWxmLl9wcmludF9yZXN1bHRfc3VtbWFyeV9lbnRyeShyZXN1bHRfc3VtbWFy
eSwKKyAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb25zLldPTlRGSVgsCisgICAgICAgICAgICAi
VGVzdHMgdGhhdCB3aWxsIG9ubHkgYmUgZml4ZWQgaWYgdGhleSBjcmFzaCAoV09OVEZJWCkiKQor
ICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiIikKKworICAgIGRlZiBfcHJpbnRfcmVzdWx0X3N1
bW1hcnlfZW50cnkoc2VsZiwgcmVzdWx0X3N1bW1hcnksIHRpbWVsaW5lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZyk6CisgICAgICAgICIiIlByaW50IGEgc3Vt
bWFyeSBibG9jayBvZiByZXN1bHRzIGZvciBhIHBhcnRpY3VsYXIgdGltZWxpbmUgb2YgdGVzdC4K
KworICAgICAgICBBcmdzOgorICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IHRvIHBy
aW50IHJlc3VsdHMgZm9yCisgICAgICAgICAgdGltZWxpbmU6IHRoZSB0aW1lbGluZSB0byBwcmlu
dCByZXN1bHRzIGZvciAoTk9ULCBXT05URklYLCBldGMuKQorICAgICAgICAgIGhlYWRpbmc6IGEg
dGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgdGltZWxpbmUKKyAgICAgICAgIiIiCisgICAgICAg
IHRvdGFsID0gbGVuKHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkK
KyAgICAgICAgbm90X3Bhc3NpbmcgPSAodG90YWwgLQorICAgICAgICAgICBsZW4ocmVzdWx0X3N1
bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bdGVzdF9leHBlY3RhdGlvbnMuUEFTU10gJgorICAg
ICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfdGltZWxpbmVbdGltZWxpbmVdKSkK
KyAgICAgICAgc2VsZi5wcmludF9hY3R1YWwoIj0+ICVzICglZCk6IiAlIChoZWFkaW5nLCBub3Rf
cGFzc2luZykpCisKKyAgICAgICAgZm9yIHJlc3VsdCBpbiBUZXN0RXhwZWN0YXRpb25zLkVYUEVD
VEFUSU9OX09SREVSOgorICAgICAgICAgICAgaWYgcmVzdWx0ID09IHRlc3RfZXhwZWN0YXRpb25z
LlBBU1M6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHJlc3VsdHMgPSAo
cmVzdWx0X3N1bW1hcnkudGVzdHNfYnlfZXhwZWN0YXRpb25bcmVzdWx0XSAmCisgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnRlc3RzX2J5X3RpbWVsaW5lW3RpbWVsaW5lXSkK
KyAgICAgICAgICAgIGRlc2MgPSBUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OX0RFU0NSSVBU
SU9OU1tyZXN1bHRdCisgICAgICAgICAgICBpZiBub3RfcGFzc2luZyBhbmQgbGVuKHJlc3VsdHMp
OgorICAgICAgICAgICAgICAgIHBjdCA9IGxlbihyZXN1bHRzKSAqIDEwMC4wIC8gbm90X3Bhc3Np
bmcKKyAgICAgICAgICAgICAgICBzZWxmLnByaW50X2FjdHVhbCgiICAlNWQgJS0yNHMgKCU0LjFm
JSUpIiAlCisgICAgICAgICAgICAgICAgICAgIChsZW4ocmVzdWx0cyksIGRlc2NbbGVuKHJlc3Vs
dHMpICE9IDFdLCBwY3QpKQorCisKICAgICBkZWYgcHJpbnRfYWN0dWFsKHNlbGYsIG1zZyk6CiAg
ICAgICAgIGlmIHNlbGYuZGlzYWJsZWQoJ2FjdHVhbCcpOgogICAgICAgICAgICAgcmV0dXJuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmlu
dGluZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Zp
ZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CmluZGV4IDEzMTIwNTBlOTE0ZmUzMGYwYWY3NjIwZjVj
OWYxMDlhZGYwZDRlZmUuLmIyOTgzNDFmMmJjYjIxMDIxMGU1YzhiZjllZDU4ZTkzYzNiODQ0MDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3By
aW50aW5nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC00MDUsMjUgKzQwNSwyNiBAQCBjbGFz
cyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICBh
bGwgcGFzcyBvbiB0aGUgc2Vjb25kIHJ1bikuCiAKICAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgdGVzdF9pc19zbG93ID0gRmFsc2UKICAgICAgICAgICAgIHBhdGhzLCBycywgZXhwID0gc2Vs
Zi5nZXRfcmVzdWx0X3N1bW1hcnkodGVzdHMsIGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgIGlm
IGV4cGVjdGVkOgotICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQpCi0gICAgICAg
ICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91
dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkKQotICAgICAgICAg
ICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkKQorICAgICAgICAgICAgICAg
IHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0
aW9ucy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0
X2V4cGVjdGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAg
ICAgICAgICBycy5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5o
dG1sJywgdGVzdF9leHBlY3RhdGlvbnMuQ1JBU0gpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQog
ICAgICAgICAgICAgZWxpZiBwYXNzaW5nOgotICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdl
dF9yZXN1bHQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICAgICAg
cnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyks
IGV4cGVjdGVkKQotICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgcnMu
YWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9p
c19zbG93KQorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVz
L2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAg
ICAgICAgICAgIHJzLmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNo
Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgcnMuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRl
c3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCkKLSAgICAgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0
X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVkKQotICAgICAgICAgICAgICAgIHJzLmFkZChz
ZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVj
dGF0aW9ucy5USU1FT1VUKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgcnMuYWRkKHNlbGYu
Z2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQp
LCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgICAgIHJzLmFkZChzZWxmLmdl
dF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBycy5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgdGVzdF9l
eHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAg
ICByZXRyeSA9IHJzCiAgICAgICAgICAgICBpZiBmbGFreToKICAgICAgICAgICAgICAgICBwYXRo
cywgcmV0cnksIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlv
bnMpCi0gICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3Rl
eHQuaHRtbCcpLCBUcnVlKQotICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1
bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBUcnVlKQotICAgICAgICAgICAg
ICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnKSwgVHJ1ZSkKKyAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdw
YXNzZXMvdGV4dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgICAgICAgICBy
ZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwn
KSwgVHJ1ZSwgdGVzdF9pc19zbG93KQorICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdl
dF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19z
bG93KQogICAgICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5zdW1tYXJpemVf
cmVzdWx0cyhzZWxmLl9wb3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5
X3VuZXhwZWN0ZWQ9VHJ1ZSwgaW50ZXJydXB0ZWQ9RmFsc2UpCiAgICAgICAgICAgICByZXR1cm4g
dW5leHBlY3RlZF9yZXN1bHRzCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>