<?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>182231</bug_id>
          
          <creation_ts>2018-01-28 23:37:53 -0800</creation_ts>
          <short_desc>Add the support for running Speedometer 2.0 to run-benchmark</short_desc>
          <delta_ts>2018-01-29 10:18:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1393990</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-28 23:37:53 -0800</bug_when>
    <thetext>Make it possible to run Speedometer 2.0 using run-benchmark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393991</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-28 23:38:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/36976267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393995</commentid>
    <comment_count>2</comment_count>
      <attachid>332514</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-29 00:01:45 -0800</bug_when>
    <thetext>Created attachment 332514
Adds the support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394077</commentid>
    <comment_count>3</comment_count>
      <attachid>332514</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-29 07:53:19 -0800</bug_when>
    <thetext>Comment on attachment 332514
Adds the support

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

&gt; Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan:5
&gt; +    &quot;svn_source&quot;: &quot;https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/Speedometer/@r226694&quot;,
&gt; +    &quot;webserver_benchmark_patch&quot;: &quot;data/patches/webserver/Speedometer2.patch&quot;,

Does this cover StyleBench too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394133</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-29 10:10:15 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 332514 [details]
&gt; Adds the support
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332514&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan:5
&gt; &gt; +    &quot;svn_source&quot;: &quot;https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/Speedometer/@r226694&quot;,
&gt; &gt; +    &quot;webserver_benchmark_patch&quot;: &quot;data/patches/webserver/Speedometer2.patch&quot;,
&gt; 
&gt; Does this cover StyleBench too?

No, we have to add a new plan file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394137</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-29 10:18:39 -0800</bug_when>
    <thetext>Committed r227739: &lt;https://trac.webkit.org/changeset/227739&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332514</attachid>
            <date>2018-01-29 00:01:45 -0800</date>
            <delta_ts>2018-01-29 07:53:19 -0800</delta_ts>
            <desc>Adds the support</desc>
            <filename>bug-182231-20180129000144.patch</filename>
            <type>text/plain</type>
            <size>32879</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyNzcyMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUyIEBACisyMDE4LTAxLTI4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFkZCB0aGUgc3VwcG9ydCBmb3IgcnVubmluZyBTcGVlZG9tZXRlciAyLjAgdG8g
cnVuLWJlbmNobWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgyMjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFkZSBpdCBwb3NzaWJsZSB0byBydW4gU3BlZWRvbWV0ZXIgMi4wIHVzaW5nIHJ1bi1i
ZW5jaG1hcmsuIFRvIGRvIHRoaXMsIHRoaXMgcGF0Y2ggYWRkcyB0aGUgYWJpbGl0eSB0bworICAg
ICAgICBhZ2dyZWdhdGUgcmVzdWx0cyB1c2luZyB0aGUgZGlmZmVyZW50bHkgYWdncmVnYXRlZCB2
YWx1ZXMgb2Ygc3VidGVzdHMuIEluIHBhcnRpY3VsYXIsIFNwZWVkb21ldGVyIDIuMAorICAgICAg
ICByZXF1aXJlcyBhZ2dyZWdhdGluZyB0aGUgZ2VvbWV0cmljIG1lYW4gb3V0IG9mIHRvdGFsIHRp
bWUgc3BlbnQgaW4gZWFjaCBzdWl0ZS4KKworICAgICAgICBBbHNvIGFkZGVkIC0tc2hvdy1pdGVy
YXRpb24tdmFsdWVzIHRvIHNob3cgaW5kaXZpZHVhbCBtZWFzdXJlZCB2YWx1ZXMgaW4gZWFjaCBp
dGVyYXRpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX3Jlc3VsdHMucHk6CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzLmZvcm1hdCk6
IEFkZGVkIHNob3dfaXRlcmF0aW9uX3ZhbHVlcyBhcyBhbiBvcHRpb24uCisgICAgICAgIChCZW5j
aG1hcmtSZXN1bHRzLl9mb3JtYXRfdGVzdHMpOiBEaXR0by4KKyAgICAgICAgKEJlbmNobWFya1Jl
c3VsdHMuX2Zvcm1hdF92YWx1ZXMpOiBEaXR0by4gQWRkZWQgdGhlIGNvZGUgdG8gc2hvdyB0aGUg
bWVhc3VyZWQgdmFsdWVzIGZvciBlYWNoIGl0ZXJhdGlvbgorICAgICAgICB3aGVuIHNob3dfaXRl
cmF0aW9uX3ZhbHVlcyBpcyBzZXQgdG8gVHJ1ZS4gV2UgZG9uJ3QgZW1pdCB0aGUgdW5pdCBpbiBl
YWNoIHZhbHVlIHNvIHRoYXQgdGhlIGxpc3Qgb2YgdmFsdWVzCisgICAgICAgIGlzIGVhc2lseSBw
YXJzYWJsZSBhcyBhIEpTT04gYXJyYXkuCisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzLl9mb3Jt
YXRfdmFsdWVzLmZvcm1hdF9zY2FsZWQpOiBBZGRlZC4gQSBoZWxwZXIgZnVuY3Rpb24uCisgICAg
ICAgIChCZW5jaG1hcmtSZXN1bHRzLl9zdWJ0ZXN0X3ZhbHVlc19ieV9jb25maWdfaXRlcmF0aW9u
KTogQWRkZWQgdGhlIHN1cHBvcnQgZm9yIGFnZ3JlZ2F0aW5nIHZhbHVlcyB1c2luZworICAgICAg
ICB0aGUgYWdncmVnYXRlZCB2YWx1ZXMgb2YgYSBzdWJ0ZXN0IGV2ZW4gd2hlbiB0aGV5IHdlcmUg
Y29tcHV0ZWQgdXNpbmcgYSBkaWZmZXJlbnQgYWdncmVnYXRvciBpZiB0aGUgc3VidGVzdAorICAg
ICAgICBoYWQgZXhhY3RseSBvbmUgYWdncmVnYXRvci4KKyAgICAgICAgKEJlbmNobWFya1Jlc3Vs
dHMuX2xpbnRfcmVzdWx0cyk6CisgICAgICAgIChCZW5jaG1hcmtSZXN1bHRzLl9saW50X3N1YnRl
c3RfcmVzdWx0cyk6IFJlcGxhY2VkIHBhcmVudF9uZWVkaW5nX2FnZ3JlZ2F0aW9uLCB3aGljaCBp
cyBzZXQgdG8gdGhlIHBhcmVudAorICAgICAgICB0ZXN0J3MgbmFtZSBvbmx5IHdoZW4gdGhlIHBh
cmVudCB0ZXN0IGhhZCBhbiBhZ2dyZWdhdG9yLCBieSBzZWxmLWV4cGxhbmF0b3J5IHBhcmVudF90
ZXN0IGFuZAorICAgICAgICBwYXJlbnRfYWdncmVnYXRvcl9saXN0LgorICAgICAgICAoQmVuY2ht
YXJrUmVzdWx0cy5fbGludF9hZ2dyZWdhdG9yX2xpc3QpOiBEaXR0by4gQWRkZWQgcmFpc2UgYW4g
ZXhjZXB0aW9uIHdoZW4gYSB0ZXN0IGhhcyBhbiBhZ2dyZWdhdG9yIGJ1dAorICAgICAgICBpdHMg
c3VidGVzdCBkb2Vzbid0IHNwZWNpZnkgdGhlIHNhbWUgYWdncmVnYXRvciBvciBpdCBoYXMgbW9y
ZSB0aGFuIG9uZSBhZ2dyZWdhdG9ycywgbWFraW5nIGl0IGFtYmlndW91cy4KKyAgICAgICAgKEJl
bmNobWFya1Jlc3VsdHMuX2xpbnRfY29uZmlndXJhdGlvbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRzX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAodGVzdF9mb3JtYXRfdmFsdWVzX3dpdGhfbm9fdW5pdF9zY2FsaW5nKTogQWRkZWQu
CisgICAgICAgICh0ZXN0X2Zvcm1hdF92YWx1ZXNfd2l0aF9pdGVyYXRpb25fdmFsdWVzKTogQWRk
ZWQuCisgICAgICAgICh0ZXN0X2Zvcm1hdF92YWx1ZXNfd2l0aF9ub191bml0X3NjYWxpbmdfYW5k
X2l0ZXJhdGlvbl92YWx1ZXMpOiBBZGRlZC4KKyAgICAgICAgKHRlc3RfYWdncmVnYXRlX3Jlc3Vs
dHNfZnJvbV9hbm90aGVyX2FnZ3JlZ2F0b3IpOiBBZGRlZC4KKyAgICAgICAgKHRlc3RfbGludF9y
ZXN1bHRzKTogQWRkZWQgYSB0ZXN0IGNhc2UuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHk6CisgICAgICAgIChCZW5jaG1hcmtS
dW5uZXIuX19pbml0X18pOiBBZGRlZCBzaG93X2l0ZXJhdGlvbl92YWx1ZXMgYXMgYW4gYXJndW1l
bnQuCisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuX3J1bl9iZW5jaG1hcmspOiBEaXR0by4KKyAg
ICAgICAgKEJlbmNobWFya1J1bm5lci5zaG93X3Jlc3VsdHMpOiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wYXRjaGVzL3dlYnNlcnZlci9T
cGVlZG9tZXRlcjIucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3NwZWVkb21ldGVyMi5wbGFuOiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weToK
KyAgICAgICAgKHBhcnNlX2FyZ3MpOiBBZGRlZCAtLXNob3ctaXRlcmF0aW9uLXZhbHVlcyBhcyBh
IGJvb2xlYW4gYXJndW1lbnQuCisgICAgICAgIChydW5fYmVuY2htYXJrX3BsYW4pOiBEaXR0by4K
KyAgICAgICAgKHN0YXJ0KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OgorICAgICAgICAoV2Vi
U2VydmVyQmVuY2htYXJrUnVubmVyLl9faW5pdF9fKTogRGl0dG8uCisKIDIwMTgtMDEtMjcgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlSW50ZXJuYWxTREsg
aW5jbHVkZXMgc2hvdWxkIGJlICIjaW5jbHVkZT8iCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19yZXN1bHRz
LnB5CShyZXZpc2lvbiAyMjc3MjEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDExICs0
OCwxMSBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xp
bnRfcmVzdWx0cyhyZXN1bHRzKQogICAgICAgICBzZWxmLl9yZXN1bHRzID0gc2VsZi5fYWdncmVn
YXRlX3Jlc3VsdHMocmVzdWx0cykKIAotICAgIGRlZiBmb3JtYXQoc2VsZiwgc2NhbGVfdW5pdD1U
cnVlKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Zvcm1hdF90ZXN0cyhzZWxmLl9yZXN1bHRzLCBz
Y2FsZV91bml0KQorICAgIGRlZiBmb3JtYXQoc2VsZiwgc2NhbGVfdW5pdD1UcnVlLCBzaG93X2l0
ZXJhdGlvbl92YWx1ZXM9RmFsc2UpOgorICAgICAgICByZXR1cm4gc2VsZi5fZm9ybWF0X3Rlc3Rz
KHNlbGYuX3Jlc3VsdHMsIHNjYWxlX3VuaXQsIHNob3dfaXRlcmF0aW9uX3ZhbHVlcykKIAogICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiBfZm9ybWF0X3Rlc3RzKGNscywgdGVzdHMsIHNjYWxlX3Vu
aXQsIGluZGVudD0nJyk6CisgICAgZGVmIF9mb3JtYXRfdGVzdHMoY2xzLCB0ZXN0cywgc2NhbGVf
dW5pdCwgc2hvd19pdGVyYXRpb25fdmFsdWVzLCBpbmRlbnQ9JycpOgogICAgICAgICBvdXRwdXQg
PSAnJwogICAgICAgICBjb25maWdfbmFtZSA9ICdjdXJyZW50JwogICAgICAgICBmb3IgdGVzdF9u
YW1lIGluIHNvcnRlZCh0ZXN0cy5rZXlzKCkpOgpAQCAtNzEsMTMgKzcxLDEzIEBAIGNsYXNzIEJl
bmNobWFya1Jlc3VsdHMob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc6
JyArIG1ldHJpY19uYW1lICsgJzonCiAgICAgICAgICAgICAgICAgICAgIGlmIGFnZ3JlZ2F0b3Jf
bmFtZToKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBhZ2dyZWdhdG9yX25hbWUg
KyAnOicKLSAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgJyArIGNscy5fZm9ybWF0X3Zh
bHVlcyhtZXRyaWNfbmFtZSwgbWV0cmljW2FnZ3JlZ2F0b3JfbmFtZV1bY29uZmlnX25hbWVdLCBz
Y2FsZV91bml0KSArICdcbicKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgJyArIGNs
cy5fZm9ybWF0X3ZhbHVlcyhtZXRyaWNfbmFtZSwgbWV0cmljW2FnZ3JlZ2F0b3JfbmFtZV1bY29u
ZmlnX25hbWVdLCBzY2FsZV91bml0LCBzaG93X2l0ZXJhdGlvbl92YWx1ZXMpICsgJ1xuJwogICAg
ICAgICAgICAgaWYgJ3Rlc3RzJyBpbiB0ZXN0OgotICAgICAgICAgICAgICAgIG91dHB1dCArPSBj
bHMuX2Zvcm1hdF90ZXN0cyh0ZXN0Wyd0ZXN0cyddLCBzY2FsZV91bml0LCBpbmRlbnQ9KGluZGVu
dCArICcgJyAqIGxlbih0ZXN0X25hbWUpKSkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gY2xz
Ll9mb3JtYXRfdGVzdHModGVzdFsndGVzdHMnXSwgc2NhbGVfdW5pdCwgc2hvd19pdGVyYXRpb25f
dmFsdWVzLCBpbmRlbnQ9KGluZGVudCArICcgJyAqIGxlbih0ZXN0X25hbWUpKSkKICAgICAgICAg
cmV0dXJuIG91dHB1dAogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9mb3JtYXRfdmFsdWVz
KGNscywgbWV0cmljX25hbWUsIHZhbHVlcywgc2NhbGVfdW5pdD1UcnVlKToKKyAgICBkZWYgX2Zv
cm1hdF92YWx1ZXMoY2xzLCBtZXRyaWNfbmFtZSwgdmFsdWVzLCBzY2FsZV91bml0PVRydWUsIHNo
b3dfaXRlcmF0aW9uX3ZhbHVlcz1GYWxzZSk6CiAgICAgICAgIHZhbHVlcyA9IG1hcChmbG9hdCwg
dmFsdWVzKQogICAgICAgICB0b3RhbCA9IHN1bSh2YWx1ZXMpCiAgICAgICAgIG1lYW4gPSB0b3Rh
bCAvIGxlbih2YWx1ZXMpCkBAIC05NSwyNCArOTUsMzUgQEAgY2xhc3MgQmVuY2htYXJrUmVzdWx0
cyhvYmplY3QpOgogICAgICAgICB1bml0ID0gY2xzLl91bml0X2Zyb21fbWV0cmljKG1ldHJpY19u
YW1lKQogCiAgICAgICAgIGlmIG5vdCBzY2FsZV91bml0OgotICAgICAgICAgICAgcmV0dXJuICgn
e21lYW46LjNmfXt1bml0fSBzdGRldj17ZGVsdGE6LjElfScpLmZvcm1hdChtZWFuPW1lYW4sIGRl
bHRhPXNhbXBsZV9zdGRldiAvIG1lYW4sIHVuaXQ9dW5pdCkKKyAgICAgICAgICAgIGZvcm1hdHRl
ZF92YWx1ZSA9ICd7bWVhbjouM2Z9e3VuaXR9IHN0ZGV2PXtkZWx0YTouMSV9Jy5mb3JtYXQobWVh
bj1tZWFuLCBkZWx0YT1zYW1wbGVfc3RkZXYgLyBtZWFuLCB1bml0PXVuaXQpCisgICAgICAgICAg
ICBpZiBzaG93X2l0ZXJhdGlvbl92YWx1ZXM6CisgICAgICAgICAgICAgICAgZm9ybWF0dGVkX3Zh
bHVlICs9ICcgWycgKyAnLCAnLmpvaW4obWFwKGxhbWJkYSB2YWx1ZTogJ3t2YWx1ZTouM2Z9Jy5m
b3JtYXQodmFsdWU9dmFsdWUpLCB2YWx1ZXMpKSArICddJworICAgICAgICAgICAgcmV0dXJuIGZv
cm1hdHRlZF92YWx1ZQogCiAgICAgICAgIGlmIHVuaXQgPT0gJ21zJzoKICAgICAgICAgICAgIHVu
aXQgPSAncycKICAgICAgICAgICAgIG1lYW4gPSBmbG9hdChtZWFuKSAvIDEwMDAKKyAgICAgICAg
ICAgIHZhbHVlcyA9IG1hcChsYW1iZGEgdmFsdWU6IGZsb2F0KHZhbHVlKSAvIDEwMDAsIHZhbHVl
cykKICAgICAgICAgICAgIHNhbXBsZV9zdGRldiAvPSAxMDAwCiAKICAgICAgICAgYmFzZSA9IDEw
MjQgaWYgdW5pdCA9PSAnQicgZWxzZSAxMDAwCiAgICAgICAgIHZhbHVlX3NpZ19maWcgPSAxIC0g
bWF0aC5mbG9vcihtYXRoLmxvZzEwKHNhbXBsZV9zdGRldiAvIG1lYW4pKSBpZiBzYW1wbGVfc3Rk
ZXYgZWxzZSAzCiAgICAgICAgIFNJX21hZ25pdHVkZSA9IG1hdGguZmxvb3IobWF0aC5sb2cobWVh
biwgYmFzZSkpCiAKLSAgICAgICAgc2NhbGVkX21lYW4gPSBtZWFuICogbWF0aC5wb3coYmFzZSwg
LVNJX21hZ25pdHVkZSkKKyAgICAgICAgc2NhbGluZ19mYWN0b3IgPSBtYXRoLnBvdyhiYXNlLCAt
U0lfbWFnbml0dWRlKQorICAgICAgICBzY2FsZWRfbWVhbiA9IG1lYW4gKiBzY2FsaW5nX2ZhY3Rv
cgogICAgICAgICBTSV9wcmVmaXggPSBjbHMuU0lfcHJlZml4ZXNbaW50KFNJX21hZ25pdHVkZSkg
KyAzXQogCiAgICAgICAgIG5vbl9mbG9hdGluZ19kaWdpdHMgPSAxICsgbWF0aC5mbG9vcihtYXRo
LmxvZzEwKHNjYWxlZF9tZWFuKSkKICAgICAgICAgZmxvYXRpbmdfcG9pbnRzX2NvdW50ID0gbWF4
KDAsIHZhbHVlX3NpZ19maWcgLSBub25fZmxvYXRpbmdfZGlnaXRzKQotICAgICAgICByZXR1cm4g
KCd7bWVhbjouJyArIHN0cihpbnQoZmxvYXRpbmdfcG9pbnRzX2NvdW50KSkgKyAnZn17cHJlZml4
fXt1bml0fSBzdGRldj17ZGVsdGE6LjElfScpLmZvcm1hdCgKLSAgICAgICAgICAgIG1lYW49c2Nh
bGVkX21lYW4sIGRlbHRhPXNhbXBsZV9zdGRldiAvIG1lYW4sIHByZWZpeD1TSV9wcmVmaXgsIHVu
aXQ9dW5pdCkKKworICAgICAgICBkZWYgZm9ybWF0X3NjYWxlZCh2YWx1ZSk6CisgICAgICAgICAg
ICByZXR1cm4gKCd7dmFsdWU6LicgKyBzdHIoaW50KGZsb2F0aW5nX3BvaW50c19jb3VudCkpICsg
J2Z9JykuZm9ybWF0KHZhbHVlPXZhbHVlKQorCisgICAgICAgIGZvcm1hdHRlZF92YWx1ZSA9ICd7
bWVhbn17cHJlZml4fXt1bml0fSBzdGRldj17ZGVsdGE6LjElfScuZm9ybWF0KG1lYW49Zm9ybWF0
X3NjYWxlZChzY2FsZWRfbWVhbiksIGRlbHRhPXNhbXBsZV9zdGRldiAvIG1lYW4sIHByZWZpeD1T
SV9wcmVmaXgsIHVuaXQ9dW5pdCkKKyAgICAgICAgaWYgc2hvd19pdGVyYXRpb25fdmFsdWVzOgor
ICAgICAgICAgICAgZm9ybWF0dGVkX3ZhbHVlICs9ICcgWycgKyAnLCAnLmpvaW4obWFwKGxhbWJk
YSB2YWx1ZTogZm9ybWF0X3NjYWxlZCh2YWx1ZSAqIHNjYWxpbmdfZmFjdG9yKSwgdmFsdWVzKSkg
KyAnXScKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZF92YWx1ZQogCiAgICAgQGNsYXNzbWV0aG9k
CiAgICAgZGVmIF91bml0X2Zyb21fbWV0cmljKGNscywgbWV0cmljX25hbWUpOgpAQCAtMTYzLDcg
KzE3NCwxNCBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgIHZhbHVl
c19ieV9jb25maWdfaXRlcmF0aW9uID0ge30KICAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3Vi
dGVzdCBpbiBzdWJ0ZXN0X3Jlc3VsdHMuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgICByZXN1bHRz
X2Zvcl9tZXRyaWMgPSBzdWJ0ZXN0WydtZXRyaWNzJ10uZ2V0KG1ldHJpY19uYW1lLCB7fSkKLSAg
ICAgICAgICAgIHJlc3VsdHNfZm9yX2FnZ3JlZ2F0b3IgPSByZXN1bHRzX2Zvcl9tZXRyaWMuZ2V0
KGFnZ3JlZ2F0b3IsIHJlc3VsdHNfZm9yX21ldHJpYy5nZXQoTm9uZSwge30pKQorICAgICAgICAg
ICAgaWYgYWdncmVnYXRvciBpbiByZXN1bHRzX2Zvcl9tZXRyaWM6CisgICAgICAgICAgICAgICAg
cmVzdWx0c19mb3JfYWdncmVnYXRvciA9IHJlc3VsdHNfZm9yX21ldHJpYy5nZXQoYWdncmVnYXRv
cikKKyAgICAgICAgICAgIGVsaWYgTm9uZSBpbiByZXN1bHRzX2Zvcl9tZXRyaWM6CisgICAgICAg
ICAgICAgICAgcmVzdWx0c19mb3JfYWdncmVnYXRvciA9IHJlc3VsdHNfZm9yX21ldHJpYy5nZXQo
Tm9uZSkKKyAgICAgICAgICAgIGVsaWYgbGVuKHJlc3VsdHNfZm9yX21ldHJpYy5rZXlzKCkpID09
IDE6CisgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfYWdncmVnYXRvciA9IHJlc3VsdHNfZm9y
X21ldHJpYy5nZXQocmVzdWx0c19mb3JfbWV0cmljLmtleXMoKVswXSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfYWdncmVnYXRvciA9IHt9CiAgICAgICAg
ICAgICBmb3IgY29uZmlnX25hbWUsIHZhbHVlcyBpbiByZXN1bHRzX2Zvcl9hZ2dyZWdhdG9yLml0
ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgIHZhbHVlc19ieV9jb25maWdfaXRlcmF0aW9uLnNl
dGRlZmF1bHQoY29uZmlnX25hbWUsIFtbXSBmb3IgXyBpbiB2YWx1ZXNdKQogICAgICAgICAgICAg
ICAgIGZvciBpdGVyYXRpb24sIHZhbHVlIGluIGVudW1lcmF0ZSh2YWx1ZXMpOgpAQCAtMTc2LDE0
ICsxOTQsMTQgQEAgY2xhc3MgQmVuY2htYXJrUmVzdWx0cyhvYmplY3QpOgogCiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIF9saW50X3Jlc3VsdHMoY2xzLCB0ZXN0cyk6Ci0gICAgICAgIGNscy5f
bGludF9zdWJ0ZXN0X3Jlc3VsdHModGVzdHMsIE5vbmUpCisgICAgICAgIGNscy5fbGludF9zdWJ0
ZXN0X3Jlc3VsdHModGVzdHMsIE5vbmUsIE5vbmUpCiAgICAgICAgIHJldHVybiBUcnVlCiAKICAg
ICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2xpbnRfc3VidGVzdF9yZXN1bHRzKGNscywgc3VidGVz
dHMsIHBhcmVudF9uZWVkaW5nX2FnZ3JlZ2F0aW9uKToKKyAgICBkZWYgX2xpbnRfc3VidGVzdF9y
ZXN1bHRzKGNscywgc3VidGVzdHMsIHBhcmVudF90ZXN0LCBwYXJlbnRfYWdncmVnYXRvcl9saXN0
KToKICAgICAgICAgaXRlcmF0aW9uX2dyb3Vwc19ieV9jb25maWcgPSB7fQogICAgICAgICBmb3Ig
dGVzdF9uYW1lLCB0ZXN0IGluIHN1YnRlc3RzLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgbmVl
ZHNfYWdncmVnYXRpb24gPSBGYWxzZQorICAgICAgICAgICAgYWdncmVnYXRvcl9saXN0ID0gTm9u
ZQogCiAgICAgICAgICAgICBpZiAnbWV0cmljcycgbm90IGluIHRlc3QgYW5kICd0ZXN0cycgbm90
IGluIHRlc3Q6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCciJXMiIGRvZXMgbm90
IGNvbnRhaW4gbWV0cmljcyBvciB0ZXN0cycgJSB0ZXN0X25hbWUpCkBAIC0xOTQsMjEgKzIxMiwy
MSBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1bHRzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcignVGhlIG1ldHJpY3MgaW4gIiVzIiBpcyBub3QgYSBkaWN0aW9uYXJ5
JyAlIHRlc3RfbmFtZSkKICAgICAgICAgICAgICAgICBmb3IgbWV0cmljX25hbWUsIG1ldHJpYyBp
biBtZXRyaWNzLml0ZXJpdGVtcygpOgogICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNl
KG1ldHJpYywgbGlzdCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbHMuX2xpbnRfYWdncmVn
YXRvcl9saXN0KHRlc3RfbmFtZSwgbWV0cmljX25hbWUsIG1ldHJpYykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5lZWRzX2FnZ3JlZ2F0aW9uID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAg
ICAgY2xzLl9saW50X2FnZ3JlZ2F0b3JfbGlzdCh0ZXN0X25hbWUsIG1ldHJpY19uYW1lLCBtZXRy
aWMsIHBhcmVudF90ZXN0LCBwYXJlbnRfYWdncmVnYXRvcl9saXN0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgYWdncmVnYXRvcl9saXN0ID0gbWV0cmljCiAgICAgICAgICAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShtZXRyaWMsIGRpY3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgY2xz
Ll9saW50X2NvbmZpZ3VyYXRpb24odGVzdF9uYW1lLCBtZXRyaWNfbmFtZSwgbWV0cmljLCBwYXJl
bnRfbmVlZGluZ19hZ2dyZWdhdGlvbiwgaXRlcmF0aW9uX2dyb3Vwc19ieV9jb25maWcpCisgICAg
ICAgICAgICAgICAgICAgICAgICBjbHMuX2xpbnRfY29uZmlndXJhdGlvbih0ZXN0X25hbWUsIG1l
dHJpY19uYW1lLCBtZXRyaWMsIHBhcmVudF90ZXN0LCBwYXJlbnRfYWdncmVnYXRvcl9saXN0LCBp
dGVyYXRpb25fZ3JvdXBzX2J5X2NvbmZpZykKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignIiVzIiBtZXRyaWMgb2YgIiVz
IiB3YXMgbm90IGFuIGFnZ3JlZ2F0b3IgbGlzdCBvciBhIGRpY3Rpb25hcnkgb2YgY29uZmlndXJh
dGlvbnM6ICVzJyAlIChtZXRyaWNfbmFtZSwgdGVzdF9uYW1lLCBzdHIobWV0cmljKSkpCiAKICAg
ICAgICAgICAgIGlmICd0ZXN0cycgaW4gdGVzdDoKLSAgICAgICAgICAgICAgICBjbHMuX2xpbnRf
c3VidGVzdF9yZXN1bHRzKHRlc3RbJ3Rlc3RzJ10sIHRlc3RfbmFtZSBpZiBuZWVkc19hZ2dyZWdh
dGlvbiBlbHNlIE5vbmUpCi0gICAgICAgICAgICBlbGlmIG5lZWRzX2FnZ3JlZ2F0aW9uOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignIiVzIiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBi
dXQgIlNvbWVUZXN0IiBoYXMgbm8gc3VidGVzdHMnICUgKHRlc3RfbmFtZSkpCisgICAgICAgICAg
ICAgICAgY2xzLl9saW50X3N1YnRlc3RfcmVzdWx0cyh0ZXN0Wyd0ZXN0cyddLCB0ZXN0X25hbWUs
IGFnZ3JlZ2F0b3JfbGlzdCkKKyAgICAgICAgICAgIGVsaWYgYWdncmVnYXRvcl9saXN0OgorICAg
ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignIiVzIiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBi
dXQgaXQgaGFzIG5vIHN1YnRlc3RzJyAlICh0ZXN0X25hbWUpKQogICAgICAgICByZXR1cm4gaXRl
cmF0aW9uX2dyb3Vwc19ieV9jb25maWcKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBfbGlu
dF9hZ2dyZWdhdG9yX2xpc3QoY2xzLCB0ZXN0X25hbWUsIG1ldHJpY19uYW1lLCBhZ2dyZWdhdG9y
X2xpc3QpOgorICAgIGRlZiBfbGludF9hZ2dyZWdhdG9yX2xpc3QoY2xzLCB0ZXN0X25hbWUsIG1l
dHJpY19uYW1lLCBhZ2dyZWdhdG9yX2xpc3QsIHBhcmVudF90ZXN0LCBwYXJlbnRfYWdncmVnYXRv
cl9saXN0KToKICAgICAgICAgaWYgbGVuKGFnZ3JlZ2F0b3JfbGlzdCkgIT0gbGVuKHNldChhZ2dy
ZWdhdG9yX2xpc3QpKToKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignIiVzIiBtZXRyaWMg
b2YgIiVzIiBoYWQgaW52YWxpZCBhZ2dyZWdhdG9yIGxpc3Q6ICVzJyAlIChtZXRyaWNfbmFtZSwg
dGVzdF9uYW1lLCBqc29uLmR1bXBzKGFnZ3JlZ2F0b3JfbGlzdCkpKQogICAgICAgICBpZiBub3Qg
YWdncmVnYXRvcl9saXN0OgpAQCAtMjE4LDkgKzIzNiwxNSBAQCBjbGFzcyBCZW5jaG1hcmtSZXN1
bHRzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCciJXMiIG1ldHJp
YyBvZiAiJXMiIGlzIG5vdCB3cmFwcGVkIGJ5IGEgY29uZmlndXJhdGlvbjsgZS5nLiAiY3VycmVu
dCInICUgKG1ldHJpY19uYW1lLCB0ZXN0X25hbWUpKQogICAgICAgICAgICAgaWYgYWdncmVnYXRv
cl9uYW1lIG5vdCBpbiBjbHMuYWdncmVnYXRvcnM6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlw
ZUVycm9yKCciJXMiIG1ldHJpYyBvZiAiJXMiIHVzZXMgdW5rbm93biBhZ2dyZWdhdG9yOiAlcycg
JSAobWV0cmljX25hbWUsIHRlc3RfbmFtZSwgYWdncmVnYXRvcl9uYW1lKSkKKyAgICAgICAgaWYg
bm90IHBhcmVudF9hZ2dyZWdhdG9yX2xpc3Q6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
Zm9yIHBhcmVudF9hZ2dyZWdhdG9yIGluIHBhcmVudF9hZ2dyZWdhdG9yX2xpc3Q6CisgICAgICAg
ICAgICBpZiBwYXJlbnRfYWdncmVnYXRvciBub3QgaW4gYWdncmVnYXRvcl9saXN0IGFuZCBsZW4o
YWdncmVnYXRvcl9saXN0KSA+IDE6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCci
JXMiIG1ldHJpYyBvZiAiJXMiIGhhcyBubyB2YWx1ZSB0byBhZ2dyZWdhdGUgYXMgIiVzIiBpbiBh
IHN1YnRlc3QgIiVzIicgJSAoCisgICAgICAgICAgICAgICAgICAgIG1ldHJpY19uYW1lLCBwYXJl
bnRfdGVzdCwgcGFyZW50X2FnZ3JlZ2F0b3IsIHRlc3RfbmFtZSkpCiAKICAgICBAY2xhc3NtZXRo
b2QKLSAgICBkZWYgX2xpbnRfY29uZmlndXJhdGlvbihjbHMsIHRlc3RfbmFtZSwgbWV0cmljX25h
bWUsIGNvbmZpZ3VyYXRpb25zLCBwYXJlbnRfbmVlZGluZ19hZ2dyZWdhdGlvbiwgaXRlcmF0aW9u
X2dyb3Vwc19ieV9jb25maWcpOgorICAgIGRlZiBfbGludF9jb25maWd1cmF0aW9uKGNscywgdGVz
dF9uYW1lLCBtZXRyaWNfbmFtZSwgY29uZmlndXJhdGlvbnMsIHBhcmVudF90ZXN0LCBwYXJlbnRf
YWdncmVnYXRvcl9saXN0LCBpdGVyYXRpb25fZ3JvdXBzX2J5X2NvbmZpZyk6CiAgICAgICAgICMg
RklYTUU6IENoZWNrIHRoYXQgY29uZmlnX25hbWUgaXMgYWx3YXlzICJjdXJyZW50Ii4KICAgICAg
ICAgZm9yIGNvbmZpZ19uYW1lLCB2YWx1ZXMgaW4gY29uZmlndXJhdGlvbnMuaXRlcml0ZW1zKCk6
CiAgICAgICAgICAgICBuZXN0ZWRfbGlzdF9jb3VudCA9IFtpc2luc3RhbmNlKHZhbHVlLCBsaXN0
KSBmb3IgdmFsdWUgaW4gdmFsdWVzXS5jb3VudChUcnVlKQpAQCAtMjM3LDggKzI2MSw4IEBAIGNs
YXNzIEJlbmNobWFya1Jlc3VsdHMob2JqZWN0KToKICAgICAgICAgICAgICAgICBjbHMuX2xpbnRf
dmFsdWVzKHRlc3RfbmFtZSwgbWV0cmljX25hbWUsIHZhbHVlcykKIAogICAgICAgICAgICAgaXRl
cmF0aW9uX2dyb3Vwc19ieV9jb25maWcuc2V0ZGVmYXVsdChtZXRyaWNfbmFtZSwge30pLnNldGRl
ZmF1bHQoY29uZmlnX25hbWUsIHZhbHVlX3NoYXBlKQotICAgICAgICAgICAgaWYgcGFyZW50X25l
ZWRpbmdfYWdncmVnYXRpb24gYW5kIHZhbHVlX3NoYXBlICE9IGl0ZXJhdGlvbl9ncm91cHNfYnlf
Y29uZmlnW21ldHJpY19uYW1lXVtjb25maWdfbmFtZV06Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
VHlwZUVycm9yKCciJXMiIG1ldHJpYyBvZiAiJXMiIGhhZCBhIG1pc21hdGNoaW5nIHN1YnRlc3Qg
dmFsdWVzJyAlIChtZXRyaWNfbmFtZSwgcGFyZW50X25lZWRpbmdfYWdncmVnYXRpb24pKQorICAg
ICAgICAgICAgaWYgcGFyZW50X2FnZ3JlZ2F0b3JfbGlzdCBhbmQgdmFsdWVfc2hhcGUgIT0gaXRl
cmF0aW9uX2dyb3Vwc19ieV9jb25maWdbbWV0cmljX25hbWVdW2NvbmZpZ19uYW1lXToKKyAgICAg
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJyIlcyIgbWV0cmljIG9mICIlcyIgaGFkIGEgbWlz
bWF0Y2hpbmcgc3VidGVzdCB2YWx1ZXMnICUgKG1ldHJpY19uYW1lLCBwYXJlbnRfdGVzdCkpCiAK
ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgX2xpbnRfdmFsdWVzKGNscywgdGVzdF9uYW1lLCBt
ZXRyaWNfbmFtZSwgdmFsdWVzKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfcmVzdWx0c191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3Jlc3VsdHNf
dW5pdHRlc3QucHkJKHJldmlzaW9uIDIyNzcyMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcmVzdWx0c191bml0dGVzdC5weQkod29ya2luZyBj
b3B5KQpAQCAtOTcsNiArOTcsNDcgQEAgU29tZVRlc3Q6VGltZTpBcml0aG1ldGljOiAzLjBtcyBz
dGRldj0zMwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1h
dF92YWx1ZXMoJ1RpbWUnLCBbMC4wMDExLCAwLjAwMTIsIDAuMDAxM10pLCAnMS4yMHVzIHN0ZGV2
PTguMyUnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1h
dF92YWx1ZXMoJ1RpbWUnLCBbMC4wMDAxMSwgMC4wMDAxMiwgMC4wMDAxM10pLCAnMTIwbnMgc3Rk
ZXY9OC4zJScpCiAKKyAgICBkZWYgdGVzdF9mb3JtYXRfdmFsdWVzX3dpdGhfbm9fdW5pdF9zY2Fs
aW5nKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zv
cm1hdF92YWx1ZXMoJ1J1bnMnLCBbMSwgMiwgM10sIHNjYWxlX3VuaXQ9RmFsc2UpLCAnMi4wMDAv
cyBzdGRldj01MC4wJScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0
cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFsxMCwgMjAsIDMwXSwgc2NhbGVfdW5pdD1GYWxzZSks
ICcyMC4wMDAvcyBzdGRldj01MC4wJScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2ht
YXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFsxMDAsIDIwMCwgMzAwXSwgc2NhbGVf
dW5pdD1GYWxzZSksICcyMDAuMDAwL3Mgc3RkZXY9NTAuMCUnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMTAwMCwgMjAw
MCwgMzAwMF0sIHNjYWxlX3VuaXQ9RmFsc2UpLCAnMjAwMC4wMDAvcyBzdGRldj01MC4wJScpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcygn
UnVucycsIFsxMDAwMCwgMjAwMDAsIDMwMDAwXSwgc2NhbGVfdW5pdD1GYWxzZSksICcyMDAwMC4w
MDAvcyBzdGRldj01MC4wJScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVz
dWx0cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFsxMDAwMDAsIDIwMDAwMCwgMzAwMDAwXSwgc2Nh
bGVfdW5pdD1GYWxzZSksICcyMDAwMDAuMDAwL3Mgc3RkZXY9NTAuMCUnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMTAw
MDAwMCwgMjAwMDAwMCwgMzAwMDAwMF0sIHNjYWxlX3VuaXQ9RmFsc2UpLCAnMjAwMDAwMC4wMDAv
cyBzdGRldj01MC4wJScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0
cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFswLjEsIDAuMiwgMC4zXSwgc2NhbGVfdW5pdD1GYWxz
ZSksICcwLjIwMC9zIHN0ZGV2PTUwLjAlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5j
aG1hcmtSZXN1bHRzLl9mb3JtYXRfdmFsdWVzKCdSdW5zJywgWzAuMDEsIDAuMDIsIDAuMDNdLCBz
Y2FsZV91bml0PUZhbHNlKSwgJzAuMDIwL3Mgc3RkZXY9NTAuMCUnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMC4wMDEs
IDAuMDAyLCAwLjAwM10sIHNjYWxlX3VuaXQ9RmFsc2UpLCAnMC4wMDIvcyBzdGRldj01MC4wJScp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVl
cygnUnVucycsIFswLjAwMDEsIDAuMDAwMiwgMC4wMDAzXSwgc2NhbGVfdW5pdD1GYWxzZSksICcw
LjAwMC9zIHN0ZGV2PTUwLjAlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5jaG1hcmtS
ZXN1bHRzLl9mb3JtYXRfdmFsdWVzKCdSdW5zJywgWzAuMDAwMDEsIDAuMDAwMDIsIDAuMDAwMDNd
LCBzY2FsZV91bml0PUZhbHNlKSwgJzAuMDAwL3Mgc3RkZXY9NTAuMCUnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMC4w
MDAwMDEsIDAuMDAwMDAyLCAwLjAwMDAwM10sIHNjYWxlX3VuaXQ9RmFsc2UpLCAnMC4wMDAvcyBz
dGRldj01MC4wJScpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfdmFsdWVzX3dpdGhfaXRlcmF0aW9u
X3ZhbHVlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5jaG1hcmtSZXN1bHRz
Ll9mb3JtYXRfdmFsdWVzKCdUaW1lJywgWzEsIDIsIDNdLCBzaG93X2l0ZXJhdGlvbl92YWx1ZXM9
VHJ1ZSksICcyLjBtcyBzdGRldj01MC4wJSBbMS4wLCAyLjAsIDMuMF0nKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1RpbWUnLCBbMTAs
IDIwLCAzMF0sIHNob3dfaXRlcmF0aW9uX3ZhbHVlcz1UcnVlKSwgJzIwbXMgc3RkZXY9NTAuMCUg
WzEwLCAyMCwgMzBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5jaG1hcmtSZXN1bHRz
Ll9mb3JtYXRfdmFsdWVzKCdUaW1lJywgWzEwMCwgMjAwLCAzMDBdLCBzaG93X2l0ZXJhdGlvbl92
YWx1ZXM9VHJ1ZSksICcyMDBtcyBzdGRldj01MC4wJSBbMTAwLCAyMDAsIDMwMF0nKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1RpbWUn
LCBbMTAwMCwgMjAwMCwgMzAwMF0sIHNob3dfaXRlcmF0aW9uX3ZhbHVlcz1UcnVlKSwgJzIuMHMg
c3RkZXY9NTAuMCUgWzEuMCwgMi4wLCAzLjBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChC
ZW5jaG1hcmtSZXN1bHRzLl9mb3JtYXRfdmFsdWVzKCdUaW1lJywgWzEwMDAwLCAyMDAwMCwgMzAw
MDBdLCBzaG93X2l0ZXJhdGlvbl92YWx1ZXM9VHJ1ZSksICcyMHMgc3RkZXY9NTAuMCUgWzEwLCAy
MCwgMzBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5jaG1hcmtSZXN1bHRzLl9mb3Jt
YXRfdmFsdWVzKCdUaW1lJywgWzEwMDAwMCwgMjAwMDAwLCAzMDAwMDBdLCBzaG93X2l0ZXJhdGlv
bl92YWx1ZXM9VHJ1ZSksICcyMDBzIHN0ZGV2PTUwLjAlIFsxMDAsIDIwMCwgMzAwXScpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcygnVGlt
ZScsIFswLjExLCAwLjEyLCAwLjEzXSwgc2hvd19pdGVyYXRpb25fdmFsdWVzPVRydWUpLCAnMTIw
dXMgc3RkZXY9OC4zJSBbMTEwLCAxMjAsIDEzMF0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1RpbWUnLCBbMC4wMTEsIDAuMDEyLCAw
LjAxM10sIHNob3dfaXRlcmF0aW9uX3ZhbHVlcz1UcnVlKSwgJzEyLjB1cyBzdGRldj04LjMlIFsx
MS4wLCAxMi4wLCAxMy4wXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVz
dWx0cy5fZm9ybWF0X3ZhbHVlcygnVGltZScsIFswLjAwMTEsIDAuMDAxMiwgMC4wMDEzXSwgc2hv
d19pdGVyYXRpb25fdmFsdWVzPVRydWUpLCAnMS4yMHVzIHN0ZGV2PTguMyUgWzEuMTAsIDEuMjAs
IDEuMzBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5jaG1hcmtSZXN1bHRzLl9mb3Jt
YXRfdmFsdWVzKCdUaW1lJywgWzAuMDAwMTEsIDAuMDAwMTIsIDAuMDAwMTNdLCBzaG93X2l0ZXJh
dGlvbl92YWx1ZXM9VHJ1ZSksICcxMjBucyBzdGRldj04LjMlIFsxMTAsIDEyMCwgMTMwXScpCisK
KyAgICBkZWYgdGVzdF9mb3JtYXRfdmFsdWVzX3dpdGhfbm9fdW5pdF9zY2FsaW5nX2FuZF9pdGVy
YXRpb25fdmFsdWVzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jl
c3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMSwgMiwgM10sIHNjYWxlX3VuaXQ9RmFsc2Us
IHNob3dfaXRlcmF0aW9uX3ZhbHVlcz1UcnVlKSwKKyAgICAgICAgICAgICcyLjAwMC9zIHN0ZGV2
PTUwLjAlIFsxLjAwMCwgMi4wMDAsIDMuMDAwXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
QmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFsxMDAsIDIwMCwgMzAwXSwg
c2NhbGVfdW5pdD1GYWxzZSwgc2hvd19pdGVyYXRpb25fdmFsdWVzPVRydWUpLAorICAgICAgICAg
ICAgJzIwMC4wMDAvcyBzdGRldj01MC4wJSBbMTAwLjAwMCwgMjAwLjAwMCwgMzAwLjAwMF0nKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMo
J1J1bnMnLCBbMTAwMCwgMjAwMCwgMzAwMF0sIHNjYWxlX3VuaXQ9RmFsc2UsIHNob3dfaXRlcmF0
aW9uX3ZhbHVlcz1UcnVlKSwKKyAgICAgICAgICAgICcyMDAwLjAwMC9zIHN0ZGV2PTUwLjAlIFsx
MDAwLjAwMCwgMjAwMC4wMDAsIDMwMDAuMDAwXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
QmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0X3ZhbHVlcygnUnVucycsIFsxMDAwMDAwLCAyMDAwMDAw
LCAzMDAwMDAwXSwgc2NhbGVfdW5pdD1GYWxzZSwgc2hvd19pdGVyYXRpb25fdmFsdWVzPVRydWUp
LAorICAgICAgICAgICAgJzIwMDAwMDAuMDAwL3Mgc3RkZXY9NTAuMCUgWzEwMDAwMDAuMDAwLCAy
MDAwMDAwLjAwMCwgMzAwMDAwMC4wMDBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCZW5j
aG1hcmtSZXN1bHRzLl9mb3JtYXRfdmFsdWVzKCdSdW5zJywgWzAuMSwgMC4yLCAwLjNdLCBzY2Fs
ZV91bml0PUZhbHNlLCBzaG93X2l0ZXJhdGlvbl92YWx1ZXM9VHJ1ZSksCisgICAgICAgICAgICAn
MC4yMDAvcyBzdGRldj01MC4wJSBbMC4xMDAsIDAuMjAwLCAwLjMwMF0nKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEJlbmNobWFya1Jlc3VsdHMuX2Zvcm1hdF92YWx1ZXMoJ1J1bnMnLCBbMC4w
MDAxLCAwLjAwMDIsIDAuMDAwM10sIHNjYWxlX3VuaXQ9RmFsc2UsIHNob3dfaXRlcmF0aW9uX3Zh
bHVlcz1UcnVlKSwKKyAgICAgICAgICAgICcwLjAwMC9zIHN0ZGV2PTUwLjAlIFswLjAwMCwgMC4w
MDAsIDAuMDAwXScpCisKICAgICBkZWYgdGVzdF9mb3JtYXRfdmFsdWVzX3dpdGhfbm9fZXJyb3Io
c2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmVuY2htYXJrUmVzdWx0cy5fZm9ybWF0
X3ZhbHVlcygnVGltZScsIFsxLCAxLCAxXSksICcxLjAwbXMgc3RkZXY9MC4wJScpCiAKQEAgLTE5
NCw2ICsyMzUsMjggQEAgU29tZVRlc3Q6VGltZTpBcml0aG1ldGljOiAzLjBtcyBzdGRldj0zMwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdHcmFuZENoaWxkMic6IHsnbWV0cmljcyc6IHsn
VGltZSc6IHtOb25lOiB7J2N1cnJlbnQnOiBbMywgNF19fX0sICd0ZXN0cyc6IHt9fX19LAogICAg
ICAgICAgICAgICAgICAgICAnU3ViVGVzdDInOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7Tm9uZTog
eydjdXJyZW50JzogWzUsIDZdfX19LCAndGVzdHMnOiB7fX19fX0pCiAKKyAgICBkZWYgdGVzdF9h
Z2dyZWdhdGVfcmVzdWx0c19mcm9tX2Fub3RoZXJfYWdncmVnYXRvcihzZWxmKToKKyAgICAgICAg
c2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJlbmNobWFya1Jl
c3VsdHMuX2FnZ3JlZ2F0ZV9yZXN1bHRzKAorICAgICAgICAgICAgeydTb21lVGVzdCc6IHsKKyAg
ICAgICAgICAgICAgICAnbWV0cmljcyc6IHsnVGltZSc6IFsnQXJpdGhtZXRpYycsICdHZW9tZXRy
aWMnXX0sCisgICAgICAgICAgICAgICAgJ3Rlc3RzJzogeworICAgICAgICAgICAgICAgICAgICAn
U3ViVGVzdDEnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnbWV0cmljcyc6IHsnVGltZSc6
IFsnVG90YWwnXX0sCisgICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMnOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ0dyYW5kQ2hpbGQxJzogeydtZXRyaWNzJzogeydUaW1lJzog
eydjdXJyZW50JzogWzEsIDJdfX19LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdHcmFu
ZENoaWxkMic6IHsnbWV0cmljcyc6IHsnVGltZSc6IHsnY3VycmVudCc6IFszLCA0XX19fX19LAor
ICAgICAgICAgICAgICAgICAgICAnU3ViVGVzdDInOiB7J21ldHJpY3MnOiB7J1RpbWUnOiB7J2N1
cnJlbnQnOiBbOSwgMjRdfX19fX19KSwKKyAgICAgICAgICAgIHsnU29tZVRlc3QnOiB7CisgICAg
ICAgICAgICAgICAgJ21ldHJpY3MnOiB7J1RpbWUnOiB7J0dlb21ldHJpYyc6IHsnY3VycmVudCc6
IFs2LjAsIDEyLjBdfSwgJ0FyaXRobWV0aWMnOiB7J2N1cnJlbnQnOiBbNiwgMTVdfX19LAorICAg
ICAgICAgICAgICAgICd0ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ1N1YlRlc3QxJzog
eworICAgICAgICAgICAgICAgICAgICAgICAgJ21ldHJpY3MnOiB7J1RpbWUnOiB7J1RvdGFsJzog
eydjdXJyZW50JzogWzQsIDZdfX19LAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RzJzog
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdHcmFuZENoaWxkMSc6IHsnbWV0cmljcyc6
IHsnVGltZSc6IHtOb25lOiB7J2N1cnJlbnQnOiBbMSwgMl19fX0sICd0ZXN0cyc6IHt9fSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnR3JhbmRDaGlsZDInOiB7J21ldHJpY3MnOiB7J1Rp
bWUnOiB7Tm9uZTogeydjdXJyZW50JzogWzMsIDRdfX19LCAndGVzdHMnOiB7fX19fSwKKyAgICAg
ICAgICAgICAgICAgICAgJ1N1YlRlc3QyJzogeydtZXRyaWNzJzogeydUaW1lJzoge05vbmU6IHsn
Y3VycmVudCc6IFs5LCAyNF19fX0sICd0ZXN0cyc6IHt9fX19fSkKKwogICAgIGRlZiB0ZXN0X2xp
bnRfcmVzdWx0cyhzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChU
eXBlRXJyb3IsIHInIlNvbWVUZXN0IiBkb2VzIG5vdCBjb250YWluIG1ldHJpY3Mgb3IgdGVzdHMn
KToKICAgICAgICAgICAgIEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVUZXN0
Jzoge319KQpAQCAtMjE4LDkgKzI4MSwxMiBAQCBTb21lVGVzdDpUaW1lOkFyaXRobWV0aWM6IDMu
MG1zIHN0ZGV2PTMzCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAoVHlwZUVy
cm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0IiBjb250YWlucyBub24tbnVtZXJpYyB2
YWx1ZTogXFsiVG90YWwiLCAiR2VvbWV0cmljIlxdJyk6CiAgICAgICAgICAgICBCZW5jaG1hcmtS
ZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6IHsn
Y3VycmVudCc6IFtbJ1RvdGFsJywgJ0dlb21ldHJpYyddXX19fX0pCiAKLSAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlNvbWVUZXN0IiByZXF1aXJlcyBh
Z2dyZWdhdGlvbiBidXQgIlNvbWVUZXN0IiBoYXMgbm8gc3VidGVzdHMnKToKKyAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlNvbWVUZXN0IiByZXF1aXJl
cyBhZ2dyZWdhdGlvbiBidXQgaXQgaGFzIG5vIHN1YnRlc3RzJyk6CiAgICAgICAgICAgICBCZW5j
aG1hcmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGlt
ZSc6IFsnVG90YWwnXX19fSkKIAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhw
KFR5cGVFcnJvciwgciciT3RoZXJUZXN0IiByZXF1aXJlcyBhZ2dyZWdhdGlvbiBidXQgaXQgaGFz
IG5vIHN1YnRlc3RzJyk6CisgICAgICAgICAgICBCZW5jaG1hcmtSZXN1bHRzLl9saW50X3Jlc3Vs
dHMoeydPdGhlclRlc3QnOiB7J21ldHJpY3MnOiB7J1RpbWUnOiBbJ1RvdGFsJ119fX0pCisKICAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cChUeXBlRXJyb3IsIHInIlRpbWUiIG1l
dHJpYyBvZiAiU29tZVRlc3QiIGhhZCBpbnZhbGlkIGFnZ3JlZ2F0b3IgbGlzdDogXFsiVG90YWwi
LCAiVG90YWwiXF0nKToKICAgICAgICAgICAgIEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0
cyh7J1NvbWVUZXN0JzogeydtZXRyaWNzJzogeydUaW1lJzogWydUb3RhbCcsICdUb3RhbCddfSwg
J3Rlc3RzJzogewogICAgICAgICAgICAgICAgICdTdWJUZXN0MSc6IHsnbWV0cmljcyc6IHsnVGlt
ZSc6IHsnY3VycmVudCc6IFtdfX19fX19KQpAQCAtMjQyLDYgKzMwOCwxNyBAQCBTb21lVGVzdDpU
aW1lOkFyaXRobWV0aWM6IDMuMG1zIHN0ZGV2PTMzCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXNSZWdleHAoVHlwZUVycm9yLCByJyJUaW1lIiBtZXRyaWMgb2YgIlNvbWVUZXN0IiBoYWQg
bWFsZm9ybWVkIHZhbHVlczogXFsxLCBcWzJcXSwgM1xdJyk6CiAgICAgICAgICAgICBCZW5jaG1h
cmtSZXN1bHRzLl9saW50X3Jlc3VsdHMoeydTb21lVGVzdCc6IHsnbWV0cmljcyc6IHsnVGltZSc6
IHsnY3VycmVudCc6IFsxLCBbMl0sIDNdfX19fSkKIAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzUmVnZXhwKFR5cGVFcnJvciwgciciVGltZSIgbWV0cmljIG9mICJTb21lVGVzdCIgaGFz
IG5vIHZhbHVlIHRvIGFnZ3JlZ2F0ZSBhcyAiQXJpdGhtZXRpYyIgaW4gYSBzdWJ0ZXN0ICJTdWJU
ZXN0MSInKToKKyAgICAgICAgICAgIEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1Nv
bWVUZXN0JzogeworICAgICAgICAgICAgICAgICdtZXRyaWNzJzogeydUaW1lJzogWydBcml0aG1l
dGljJ119LAorICAgICAgICAgICAgICAgICd0ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAgICAg
J1N1YlRlc3QxJzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ21ldHJpY3MnOiB7J1RpbWUn
OiBbJ1RvdGFsJywgJ0dlb21ldHJpYyddfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0
cyc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR3JhbmRDaGlsZDEnOiB7J21ldHJp
Y3MnOiB7J1RpbWUnOiB7J2N1cnJlbnQnOiBbMSwgMl19fX0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ0dyYW5kQ2hpbGQyJzogeydtZXRyaWNzJzogeydUaW1lJzogeydjdXJyZW50Jzog
WzMsIDRdfX19fX0sCisgICAgICAgICAgICAgICAgICAgICdTdWJUZXN0Mic6IHsnbWV0cmljcyc6
IHsnVGltZSc6IHsnY3VycmVudCc6IFs5LCAyNF19fX19fX0pCisKICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKEJlbmNobWFya1Jlc3VsdHMuX2xpbnRfcmVzdWx0cyh7J1NvbWVUZXN0JzogeydtZXRy
aWNzJzogeydUaW1lJzogWydUb3RhbCddfSwgJ3Rlc3RzJzogewogICAgICAgICAgICAgJ1N1YlRl
c3QxJzogeydtZXRyaWNzJzogeydUaW1lJzogeydjdXJyZW50JzogWzEsIDIsIDNdfX19LAogICAg
ICAgICAgICAgJ1N1YlRlc3QyJzogeydtZXRyaWNzJzogeydUaW1lJzogeydjdXJyZW50JzogWzQs
IDUsIDZdLCAnYmFzZWxpbmUnOiBbN119fX19fX0pKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkJKHJldmlzaW9uIDIyNzcyMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3
IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIGNsYXNzIEJlbmNobWFya1J1
bm5lcihvYmplY3QpOgogICAgIG5hbWUgPSAnYmVuY2htYXJrX3J1bm5lcicKIAotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwbGFuX2ZpbGUsIGxvY2FsX2NvcHksIGNvdW50X292ZXJyaWRlLCBidWls
ZF9kaXIsIG91dHB1dF9maWxlLCBwbGF0Zm9ybSwgYnJvd3Nlciwgc2NhbGVfdW5pdD1UcnVlLCBk
ZXZpY2VfaWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsYW5fZmlsZSwgbG9jYWxf
Y29weSwgY291bnRfb3ZlcnJpZGUsIGJ1aWxkX2Rpciwgb3V0cHV0X2ZpbGUsIHBsYXRmb3JtLCBi
cm93c2VyLCBzY2FsZV91bml0PVRydWUsIHNob3dfaXRlcmF0aW9uX3ZhbHVlcz1GYWxzZSwgZGV2
aWNlX2lkPU5vbmUpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBwbGFuX2ZpbGUgPSBzZWxm
Ll9maW5kX3BsYW5fZmlsZShwbGFuX2ZpbGUpCiAgICAgICAgICAgICB3aXRoIG9wZW4ocGxhbl9m
aWxlLCAncicpIGFzIGZwOgpAQCAtMzksNiArMzksNyBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9kaXIgPSBvcy5wYXRoLmFic3Bh
dGgoYnVpbGRfZGlyKSBpZiBidWlsZF9kaXIgZWxzZSBOb25lCiAgICAgICAgICAgICAgICAgc2Vs
Zi5fb3V0cHV0X2ZpbGUgPSBvdXRwdXRfZmlsZQogICAgICAgICAgICAgICAgIHNlbGYuX3NjYWxl
X3VuaXQgPSBzY2FsZV91bml0CisgICAgICAgICAgICAgICAgc2VsZi5fc2hvd19pdGVyYXRpb25f
dmFsdWVzID0gc2hvd19pdGVyYXRpb25fdmFsdWVzCiAgICAgICAgICAgICAgICAgc2VsZi5fY29u
ZmlnID0gc2VsZi5fcGxhbi5nZXQoJ2NvbmZpZycsIHt9KQogICAgICAgICAgICAgICAgIGlmIGRl
dmljZV9pZDoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29uZmlnWydkZXZpY2VfaWQnXSA9
IGRldmljZV9pZApAQCAtMTA1LDcgKzEwNiw3IEBAIGNsYXNzIEJlbmNobWFya1J1bm5lcihvYmpl
Y3QpOgogICAgICAgICByZXN1bHRzID0gc2VsZi5fd3JhcChyZXN1bHRzKQogICAgICAgICBvdXRw
dXRfZmlsZSA9IHNlbGYuX291dHB1dF9maWxlIGlmIHNlbGYuX291dHB1dF9maWxlIGVsc2Ugc2Vs
Zi5fcGxhblsnb3V0cHV0X2ZpbGUnXQogICAgICAgICBzZWxmLl9kdW1wKHNlbGYuX21lcmdlKHsn
ZGVidWdPdXRwdXQnOiBkZWJ1Z19vdXRwdXRzfSwgcmVzdWx0cyksIG91dHB1dF9maWxlKQotICAg
ICAgICBzZWxmLnNob3dfcmVzdWx0cyhyZXN1bHRzLCBzZWxmLl9zY2FsZV91bml0KQorICAgICAg
ICBzZWxmLnNob3dfcmVzdWx0cyhyZXN1bHRzLCBzZWxmLl9zY2FsZV91bml0LCBzZWxmLl9zaG93
X2l0ZXJhdGlvbl92YWx1ZXMpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmKToKICAgICAgICAgd2l0
aCBCZW5jaG1hcmtCdWlsZGVyKHNlbGYuX3BsYW5fbmFtZSwgc2VsZi5fcGxhbiwgc2VsZi5uYW1l
KSBhcyB3ZWJfcm9vdDoKQEAgLTE1NCw2ICsxNTUsNiBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIo
b2JqZWN0KToKICAgICAgICAgcmV0dXJuIGEgKyBiCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBk
ZWYgc2hvd19yZXN1bHRzKGNscywgcmVzdWx0cywgc2NhbGVfdW5pdD1UcnVlKToKKyAgICBkZWYg
c2hvd19yZXN1bHRzKGNscywgcmVzdWx0cywgc2NhbGVfdW5pdD1UcnVlLCBzaG93X2l0ZXJhdGlv
bl92YWx1ZXM9RmFsc2UpOgogICAgICAgICByZXN1bHRzID0gQmVuY2htYXJrUmVzdWx0cyhyZXN1
bHRzKQotICAgICAgICBwcmludChyZXN1bHRzLmZvcm1hdChzY2FsZV91bml0KSkKKyAgICAgICAg
cHJpbnQocmVzdWx0cy5mb3JtYXQoc2NhbGVfdW5pdCwgc2hvd19pdGVyYXRpb25fdmFsdWVzKSkK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9ydW5fYmVuY2ht
YXJrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9ydW5fYmVuY2htYXJrLnB5CShyZXZpc2lvbiAyMjc3MjEpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQkod29ya2luZyBjb3B5
KQpAQCAtNDksNiArNDksNyBAQCBkZWYgcGFyc2VfYXJncygpOgogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tZGV2aWNlLWlkJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdVbmRvY3VtZW50ZWQgb3B0
aW9uIGZvciBtb2JpbGUgZGV2aWNlIHRlc3RpbmcuJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLWRlYnVnJywgYWN0aW9uPSdzdG9yZV90cnVlJywgaGVscD0nRW5hYmxlIGRlYnVnIGxvZ2dp
bmcuJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5vLWFkanVzdC11bml0JywgZGVzdD0n
c2NhbGVfdW5pdCcsIGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBoZWxwPSJEb24ndCBjb252ZXJ0IHRv
IHNjaWVudGlmaWMgbm90YXRpb24uIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXNob3ct
aXRlcmF0aW9uLXZhbHVlcycsIGRlc3Q9J3Nob3dfaXRlcmF0aW9uX3ZhbHVlcycsIGFjdGlvbj0n
c3RvcmVfdHJ1ZScsIGhlbHA9IlNob3cgdGhlIG1lYXN1cmVkIHZhbHVlIGZvciBlYWNoIGl0ZXJh
dGlvbiBpbiBhZGRpdGlvbiB0byBhdmVyYWdlcy4iKQogCiAgICAgYXJncyA9IHBhcnNlci5wYXJz
ZV9hcmdzKCkKIApAQCAtNjQsNyArNjUsNyBAQCBkZWYgcGFyc2VfYXJncygpOgogCiBkZWYgcnVu
X2JlbmNobWFya19wbGFuKGFyZ3MsIHBsYW4pOgogICAgIGJlbmNobWFya19ydW5uZXJfY2xhc3Mg
PSBiZW5jaG1hcmtfcnVubmVyX3N1YmNsYXNzZXNbYXJncy5kcml2ZXJdCi0gICAgcnVubmVyID0g
YmVuY2htYXJrX3J1bm5lcl9jbGFzcyhwbGFuLCBhcmdzLmxvY2FsX2NvcHksIGFyZ3MuY291bnQs
IGFyZ3MuYnVpbGRfZGlyLCBhcmdzLm91dHB1dF9maWxlLCBhcmdzLnBsYXRmb3JtLCBhcmdzLmJy
b3dzZXIsIGFyZ3Muc2NhbGVfdW5pdCwgYXJncy5kZXZpY2VfaWQpCisgICAgcnVubmVyID0gYmVu
Y2htYXJrX3J1bm5lcl9jbGFzcyhwbGFuLCBhcmdzLmxvY2FsX2NvcHksIGFyZ3MuY291bnQsIGFy
Z3MuYnVpbGRfZGlyLCBhcmdzLm91dHB1dF9maWxlLCBhcmdzLnBsYXRmb3JtLCBhcmdzLmJyb3dz
ZXIsIGFyZ3Muc2NhbGVfdW5pdCwgYXJncy5zaG93X2l0ZXJhdGlvbl92YWx1ZXMsIGFyZ3MuZGV2
aWNlX2lkKQogICAgIHJ1bm5lci5leGVjdXRlKCkKIAogCkBAIC03OSw3ICs4MCw3IEBAIGRlZiBz
dGFydChhcmdzKToKICAgICAgICAgcmVzdWx0c19qc29uID0ganNvbi5sb2FkKG9wZW4oYXJncy5q
c29uX2ZpbGUsICdyJykpCiAgICAgICAgIGlmICdkZWJ1Z091dHB1dCcgaW4gcmVzdWx0c19qc29u
OgogICAgICAgICAgICAgZGVsIHJlc3VsdHNfanNvblsnZGVidWdPdXRwdXQnXQotICAgICAgICBC
ZW5jaG1hcmtSdW5uZXIuc2hvd19yZXN1bHRzKHJlc3VsdHNfanNvbiwgYXJncy5zY2FsZV91bml0
KQorICAgICAgICBCZW5jaG1hcmtSdW5uZXIuc2hvd19yZXN1bHRzKHJlc3VsdHNfanNvbiwgYXJn
cy5zY2FsZV91bml0LCBhcmdzLnNob3dfaXRlcmF0aW9uX3ZhbHVlcykKICAgICAgICAgcmV0dXJu
CiAgICAgaWYgYXJncy5hbGxwbGFuczoKICAgICAgICAgZmFpbGVkID0gW10KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1
bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHkJKHJldmlzaW9uIDIyNzcyMSkKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2ht
YXJrX3J1bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMTUsMTAgKzE1LDEwIEBAIF9sb2cgPSBs
b2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIGNsYXNzIFdlYlNlcnZlckJlbmNobWFya1J1bm5l
cihCZW5jaG1hcmtSdW5uZXIpOgogICAgIG5hbWUgPSAnd2Vic2VydmVyJwogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBsYW5fZmlsZSwgbG9jYWxfY29weSwgY291bnRfb3ZlcnJpZGUsIGJ1aWxk
X2Rpciwgb3V0cHV0X2ZpbGUsIHBsYXRmb3JtLCBicm93c2VyLCBzY2FsZV91bml0PVRydWUsIGRl
dmljZV9pZD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGxhbl9maWxlLCBsb2NhbF9j
b3B5LCBjb3VudF9vdmVycmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmlsZSwgcGxhdGZvcm0sIGJy
b3dzZXIsIHNjYWxlX3VuaXQ9VHJ1ZSwgc2hvd19pdGVyYXRpb25fdmFsdWVzPUZhbHNlLCBkZXZp
Y2VfaWQ9Tm9uZSk6CiAgICAgICAgIHNlbGYuX2h0dHBfc2VydmVyX2RyaXZlciA9IEhUVFBTZXJ2
ZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShwbGF0Zm9ybSkKICAgICAgICAgc2VsZi5faHR0cF9zZXJ2
ZXJfZHJpdmVyLnNldF9kZXZpY2VfaWQoZGV2aWNlX2lkKQotICAgICAgICBzdXBlcihXZWJTZXJ2
ZXJCZW5jaG1hcmtSdW5uZXIsIHNlbGYpLl9faW5pdF9fKHBsYW5fZmlsZSwgbG9jYWxfY29weSwg
Y291bnRfb3ZlcnJpZGUsIGJ1aWxkX2Rpciwgb3V0cHV0X2ZpbGUsIHBsYXRmb3JtLCBicm93c2Vy
LCBzY2FsZV91bml0LCBkZXZpY2VfaWQpCisgICAgICAgIHN1cGVyKFdlYlNlcnZlckJlbmNobWFy
a1J1bm5lciwgc2VsZikuX19pbml0X18ocGxhbl9maWxlLCBsb2NhbF9jb3B5LCBjb3VudF9vdmVy
cmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmlsZSwgcGxhdGZvcm0sIGJyb3dzZXIsIHNjYWxlX3Vu
aXQsIHNob3dfaXRlcmF0aW9uX3ZhbHVlcywgZGV2aWNlX2lkKQogCiAgICAgZGVmIF9nZXRfcmVz
dWx0KHNlbGYsIHRlc3RfdXJsKToKICAgICAgICAgcmVzdWx0ID0gc2VsZi5fYnJvd3Nlcl9kcml2
ZXIuYWRkX2FkZGl0aW9uYWxfcmVzdWx0cyh0ZXN0X3VybCwgc2VsZi5faHR0cF9zZXJ2ZXJfZHJp
dmVyLmZldGNoX3Jlc3VsdCgpKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2RhdGEvcGF0Y2hlcy93ZWJzZXJ2ZXIvU3BlZWRvbWV0ZXIyLnBhdGNoCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3Bh
dGNoZXMvd2Vic2VydmVyL1NwZWVkb21ldGVyMi5wYXRjaAkobm9uZXhpc3RlbnQpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wYXRjaGVzL3dlYnNlcnZl
ci9TcGVlZG9tZXRlcjIucGF0Y2gJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MCBAQAorZGlm
ZiAtLWdpdCBhL2luZGV4Lmh0bWwgYi9pbmRleC5odG1sCitpbmRleCA0ODZlYjYzNDg3MC4uNzlh
ZTdiYjRmNTAgMTAwNjQ0CistLS0gYS9pbmRleC5odG1sCisrKysgYi9pbmRleC5odG1sCitAQCAt
Nyw3ICs3LDYgQEAKKyAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9tYWluLmpzIiBkZWZlcj48
L3NjcmlwdD4KKyAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9iZW5jaG1hcmstcnVubmVyLmpz
IiBkZWZlcj48L3NjcmlwdD4KKyAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9iZW5jaG1hcmst
cmVwb3J0LmpzIiBkZWZlcj48L3NjcmlwdD4KKy0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9zdGF0aXN0aWNzLmpzIiBkZWZlcj48L3NjcmlwdD4KKyAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0cy5qcyIgZGVmZXI+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorZGlmZiAt
LWdpdCBhL3Jlc291cmNlcy9iZW5jaG1hcmstcmVwb3J0LmpzIGIvcmVzb3VyY2VzL2JlbmNobWFy
ay1yZXBvcnQuanMKK2luZGV4IGM0YjRjNjRmODNkLi43MWNjYTUzYTM4OCAxMDA2NDQKKy0tLSBh
L3Jlc291cmNlcy9iZW5jaG1hcmstcmVwb3J0LmpzCisrKysgYi9yZXNvdXJjZXMvYmVuY2htYXJr
LXJlcG9ydC5qcworQEAgLTEsNSArMSw2MyBAQAorIC8vIFRoaXMgZmlsZSBjYW4gYmUgY3VzdG9t
aXplZCB0byByZXBvcnQgcmVzdWx0cyBhcyBuZWVkZWQuCisgCisrKGZ1bmN0aW9uICgpIHsKKysg
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKysgICAgICAgIHN0YXJ0QmVuY2htYXJr
KCk7CisrICAgICAgICBzaG93U2VjdGlvbigncnVubmluZycpOworKyAgICB9CisrCisrICAgIG9y
aWdpbmFsRGlkRmluaXNoTGFzdEl0ZXJhdGlvbiA9IHdpbmRvdy5iZW5jaG1hcmtDbGllbnQuZGlk
RmluaXNoTGFzdEl0ZXJhdGlvbjsKKysKKysgICAgd2luZG93LmJlbmNobWFya0NsaWVudC5kaWRG
aW5pc2hMYXN0SXRlcmF0aW9uID0gZnVuY3Rpb24gKCkgeworKyAgICAgICAgb3JpZ2luYWxEaWRG
aW5pc2hMYXN0SXRlcmF0aW9uLmFwcGx5KHRoaXMpOworKworKyAgICAgICAgY29uc3Qgc2NvcmVz
ID0gW107CisrICAgICAgICBjb25zdCByZXN1bHRzU3VpdGVzID0ge307CisrICAgICAgICBjb25z
dCByZXN1bHRzID0geydTcGVlZG9tZXRlcic6IHsKKysgICAgICAgICAgICAnbWV0cmljcyc6IHsK
KysgICAgICAgICAgICAgICAgJ1Njb3JlJzogeydjdXJyZW50JzogW3Njb3Jlc119LAorKyAgICAg
ICAgICAgICAgICAnVGltZSc6IFsnVG90YWwnLCAnR2VvbWV0cmljJ119LAorKyAgICAgICAgICAg
ICAgICAndGVzdHMnOiByZXN1bHRzU3VpdGVzfX07CisrCisrICAgICAgICBmb3IgKGNvbnN0IG1l
YXN1cmVkVmFsdWVzIG9mIHRoaXMuX21lYXN1cmVkVmFsdWVzTGlzdCkgeworKyAgICAgICAgICAg
IHNjb3Jlcy5wdXNoKG1lYXN1cmVkVmFsdWVzLnNjb3JlKTsKKysgICAgICAgICAgICBmb3IgKGNv
bnN0IHN1aXRlTmFtZSBpbiBtZWFzdXJlZFZhbHVlcy50ZXN0cykgeworKyAgICAgICAgICAgICAg
ICBjb25zdCBtZWFzdXJlZFRlc3RzID0gbWVhc3VyZWRWYWx1ZXMudGVzdHNbc3VpdGVOYW1lXS50
ZXN0czsKKysgICAgICAgICAgICAgICAgaWYgKCEoc3VpdGVOYW1lIGluIHJlc3VsdHNTdWl0ZXMp
KQorKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1N1aXRlc1tzdWl0ZU5hbWVdID0geydtZXRy
aWNzJzogeydUaW1lJzogWydUb3RhbCddfSwgJ3Rlc3RzJzoge319OworKyAgICAgICAgICAgICAg
ICBjb25zdCByZXN1bHRzVGVzdHMgPSByZXN1bHRzU3VpdGVzW3N1aXRlTmFtZV0udGVzdHM7Cisr
ICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGVzdE5hbWUgaW4gbWVhc3VyZWRUZXN0cykgewor
KyAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVhc3VyZWRTdWJ0ZXN0cyA9IG1lYXN1cmVkVGVz
dHNbdGVzdE5hbWVdLnRlc3RzOworKyAgICAgICAgICAgICAgICAgICAgaWYgKCEodGVzdE5hbWUg
aW4gcmVzdWx0c1Rlc3RzKSkKKysgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzVGVzdHNb
dGVzdE5hbWVdID0geydtZXRyaWNzJzogeydUaW1lJzogWydUb3RhbCddfSwgJ3Rlc3RzJzoge319
OworKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0c1N1YnRlc3RzID0gcmVzdWx0c1Rl
c3RzW3Rlc3ROYW1lXS50ZXN0czsKKysgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vi
dGVzdE5hbWUgaW4gbWVhc3VyZWRTdWJ0ZXN0cykgeworKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghKHN1YnRlc3ROYW1lIGluIHJlc3VsdHNTdWJ0ZXN0cykpCisrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdHNTdWJ0ZXN0c1tzdWJ0ZXN0TmFtZV0gPSB7J21ldHJpY3MnOiB7
J1RpbWUnOiB7J2N1cnJlbnQnOiBbW11dfX19OworKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdHNTdWJ0ZXN0c1tzdWJ0ZXN0TmFtZV0ubWV0cmljcy5UaW1lLmN1cnJlbnRbMF0ucHVzaCht
ZWFzdXJlZFN1YnRlc3RzW3N1YnRlc3ROYW1lXSk7CisrICAgICAgICAgICAgICAgICAgICB9Cisr
ICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrCisrICAgICAg
ICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKysgICAgICAgIHhoci5vcGVuKCJQ
T1NUIiwgIi9yZXBvcnQiKTsKKysKKysgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250
ZW50LXR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpOworKyAgICAgICAgeGhyLnNldFJlcXVlc3RI
ZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIiwgcmVzdWx0cy5sZW5ndGgpOworKyAgICAgICAgeGhyLnNl
dFJlcXVlc3RIZWFkZXIoIkNvbm5lY3Rpb24iLCAiY2xvc2UiKTsKKysKKysgICAgICAgIHhoci5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKysgICAgICAgICAgICBpZiAoeGhyLnJl
YWR5U3RhdGUgPT0gWE1MSHR0cFJlcXVlc3QuRE9ORSAmJiB4aHIuc3RhdHVzID09IDIwMCkgewor
KyAgICAgICAgICAgICAgICBjb25zdCBjbG9zZVJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKKysgICAgICAgICAgICAgICAgY2xvc2VSZXF1ZXN0Lm9wZW4oIkdFVCIsICIvc2h1dGRvd24i
KTsKKysgICAgICAgICAgICAgICAgY2xvc2VSZXF1ZXN0LnNlbmQoKTsKKysgICAgICAgICAgICB9
CisrICAgICAgICB9CisrICAgICAgICB4aHIuc2VuZChKU09OLnN0cmluZ2lmeShyZXN1bHRzKSk7
CisrICAgIH0KKyt9KSgpOworKworIChmdW5jdGlvbiAoKSB7CisgICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIgJiYgbG9jYXRpb24uc2VhcmNoICE9ICc/d2Via2l0JyAmJiBsb2NhdGlvbi5oYXNo
ICE9ICcjd2Via2l0JykKKyAgICAgICAgIHJldHVybjsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3NwZWVkb21ldGVyMi5wbGFuCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3Bs
YW5zL3NwZWVkb21ldGVyMi5wbGFuCShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3NwZWVkb21ldGVyMi5wbGFuCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAoreworICAgICJ0aW1lb3V0IjogNjAwLAorICAgICJj
b3VudCI6IDQsCisgICAgInN2bl9zb3VyY2UiOiAiaHR0cHM6Ly9zdm4ud2Via2l0Lm9yZy9yZXBv
c2l0b3J5L3dlYmtpdC90cnVuay9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL0ByMjI2Njk0
IiwKKyAgICAid2Vic2VydmVyX2JlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvd2Vic2Vy
dmVyL1NwZWVkb21ldGVyMi5wYXRjaCIsCisgICAgImVudHJ5X3BvaW50IjogImluZGV4Lmh0bWwi
LAorICAgICJvdXRwdXRfZmlsZSI6ICJzcGVlZG9tZXRlcjIucmVzdWx0IgorfQo=
</data>
<flag name="review"
          id="351453"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>