<?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>151465</bug_id>
          
          <creation_ts>2015-11-19 14:19:50 -0800</creation_ts>
          <short_desc>Create correctness tests for binary snippet operators.</short_desc>
          <delta_ts>2015-11-20 02:37:24 -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>JavaScriptCore</component>
          <version>WebKit Local 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>
          <dependson>151485</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143445</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-19 14:19:50 -0800</bug_when>
    <thetext>Implement a common infrastructure for generating and running tests on binary operators.  Also refactored the op_add, op_sub, and op_mul tests to be based on this new infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143451</commentid>
    <comment_count>1</comment_count>
      <attachid>265905</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-19 14:35:44 -0800</bug_when>
    <thetext>Created attachment 265905
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143452</commentid>
    <comment_count>2</comment_count>
      <attachid>265905</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-19 14:39:15 -0800</bug_when>
    <thetext>Comment on attachment 265905
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143471</commentid>
    <comment_count>3</comment_count>
      <attachid>265905</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-19 15:17:49 -0800</bug_when>
    <thetext>Comment on attachment 265905
proposed patch.

Cancelling commit.  Will land manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143479</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-19 15:32:44 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r192664: &lt;http://trac.webkit.org/r192664&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265905</attachid>
            <date>2015-11-19 14:35:44 -0800</date>
            <delta_ts>2015-11-19 15:17:49 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-151465.patch</filename>
            <type>text/plain</type>
            <size>53109</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNjU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTExLTE5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgY29ycmVjdG5lc3MgdGVzdHMgZm9yIGJpbmFyeSBzbmlwcGV0IG9wZXJhdG9ycy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQ2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBh
IGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBmb3IgZ2VuZXJhdGluZyBhbmQgcnVubmluZyB0ZXN0cyBv
biBiaW5hcnkKKyAgICAgICAgb3BlcmF0b3JzLiAgQWxzbyByZS1pbXBsZW1lbnRlZCB0aGUgb3Bf
YWRkLCBvcF9zdWIsIGFuZCBvcF9tdWwgdGVzdHMgdG8gYmUgYmFzZWQKKyAgICAgICAgb24gdGhp
cyBuZXcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3BfYWRkLmpz
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcF9tdWwuanM6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL29wX3N1Yi5qczoKKyAgICAgICAgLSBUaGVzZSB3ZXJlIHJlaW1wbGVtZW50ZWQgdXNpbmcg
YmluYXJ5LW9wLXRlc3QuanMuCisKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3BfZGl2LmpzOiBB
ZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3BfbW9kLmpzOiBBZGRlZC4KKworICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9vcF9iaXRvci5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL29wX2JpdHhv
ci5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LmpzOiBBZGRlZC4KKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgLSBDb21t
b24gY29kZSBmb3IgZ2VuZXJhdGluZyBhbmQgcnVubmluZyB0ZXN0cy4KKwogMjAxNS0xMS0xOSAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZUTC0+QjMgbG93ZXJp
bmcgc2hvdWxkIHN1cHBvcnQgaW50ZWdlciBjb21wYXJpc29ucyB3aXRoIHRoZSBvcGNvZGUgYWJz
dHJhY3RlZCBhbmQgYSBmZXcgb3RoZXIgdGhpbmdzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL29wX2FkZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL29wX2FkZC5qcwkocmV2aXNpb24gMTkyNjU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9hZGQuanMJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzYzICsxLDYzIEBACiAvL0AgcnVuRlRMTm9DSklUCiAKLS8vIFRoaXMgdGVzdCBtb2R1bGUg
YWltcyB0byB0ZXN0IHRoZSBhZGRpdGlvbiBvcGVyYXRvciBieSBjb21wYXJpbmcgaXRzIHJ1bnRp
bWUKLS8vIGJlaGF2aW9yICh1c2luZyB0aGUgZGlmZmVyZW50IHRpZXJzKSB3aXRoIGV4cGVjdGVk
IHZhbHVlcyBjb21wdXRlZCBhdCBpbml0aWFsaXphdGlvbgotLy8gdGltZSB1c2luZyB0aGUgTExJ
TlQgLyBieXRlY29kZSBnZW5lcmF0b3IuCi0vLwotLy8gSXQgd29ya3MgYnkgZ2VuZXJhdGluZyB0
ZXN0IHNjZW5hcmlvcyBmcm9tIHBlcm11dGF0aW9ucyBvZiB2YWx1ZSBwYWlycyB0byBleGVyY2lz
ZQotLy8gdGhlIGFkZGl0aW9uIG9wZXJhdG9yLiBJdCBjb21wdXRlcyB0aGUgZXhwZWN0ZWQgcmVz
dWx0cyBieSBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24KLS8vIHRvIGFkZCB0aGUgdmFsdWVzIGlu
IGFuIGluaXRpYWxpemF0aW9uIHBhc3MuIFRoZSBzY2VuYXJpb3MgYXJlIGxhdGVyIGFwcGxpZWQg
dG8KLS8vIGEgc2V0IG9mIHRlc3QgZnVuY3Rpb25zIG9mIHRoZSBmb3JtczoKLS8vCi0vLyAgICAg
dmFyaWFibGUgKyB2YXJpYWJsZQotLy8gICAgIGNvbnN0YW50ICsgdmFyaWFibGUKLS8vICAgICB2
YXJpYWJsZSArIGNvbnN0YW50Ci0vLwotLy8gU2VlIGdlbmVyYXRlU2NlbmFyaW9zKCkgYW5kIGlu
aXRpYWxpemVUZXN0Q2FzZXMoKSBmb3IgZGV0YWlscyBvbiBob3cgdGhlIHRlc3QKLS8vIGNhc2Vz
IGFyZSBnZW5lcmF0ZWQuCi0vLwogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVs
ZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50Ci0vLyBlcnJv
cnMuCisvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlv
bnMgaWYgbmVlZGVkLgogCi12YXIgdmVyYm9zZSA9IGZhbHNlOwotdmFyIGFib3J0T25GaXJzdEZh
aWwgPSBmYWxzZTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CisKKy8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CisKK3ZhciBv
cE5hbWUgPSAiYWRkIjsKK3ZhciBvcCA9ICIrIjsKIAogdmFyIG8xID0gewogICAgIHZhbHVlT2Y6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTA7IH0KIH07CiAKLXZhciBzZXQxID0gWwordmFyIHBvc0lu
ZmluaXR5ID0gMSAvIDA7Cit2YXIgbmVnSW5maW5pdHkgPSAtMSAvIDA7CisKK3ZhciB2YWx1ZXMg
PSBbCiAgICAgJ28xJywKICAgICAnbnVsbCcsCiAgICAgJ3VuZGVmaW5lZCcsCi0gICAgJ05hTics
Ci0gICAgJyJhYmMiJywKLV07Ci0KLXZhciBzZXQyID0gWwotICAgICcxMCcsCi0gICAgJy0xMCcs
Ci0gICAgJzIxNDc0ODM2NDcnLAotICAgICctMjE0NzQ4MzY0NycsCi0gICAgJzQyOTQ5NjcyOTYn
LAotICAgICctNDI5NDk2NzI5NicsCi0gICAgJzEwMC4yJywKLSAgICAnLTEwMC4yJywKICAgICAn
dHJ1ZScsCiAgICAgJ2ZhbHNlJywKLV07CiAKLS8vIEFzc2VtYmxlIHRoZSB2YWx1ZXMgdGhhdCB3
ZSdsbCBiZSB0ZXN0aW5nIHdpdGg6Ci12YXIgdmFsdWVzID0gW107Ci1mb3IgKHZhciBpID0gMDsg
aSA8IHNldDEubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2goc2V0MVtpXSk7Ci1mb3IgKHZh
ciBpID0gMDsgaSA8IHNldDIubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2goc2V0MltpXSk7
Ci1mb3IgKHZhciBpID0gMDsgaSA8IHNldDIubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2go
JyInICsgc2V0MltpXSArICciJyk7Ci0KLWZ1bmN0aW9uIGdlbmVyYXRlU2NlbmFyaW9zKHh2YWx1
ZXMsIHl2YWx1ZXMpIHsKLSAgICB2YXIgc2NlbmFyaW9zID0gW107Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB4dmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBq
IDwgeXZhbHVlcy5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgdmFyIHhTdHIgPSB4dmFsdWVz
W2ldOwotICAgICAgICAgICAgdmFyIHlTdHIgPSB5dmFsdWVzW2pdOwotICAgICAgICAgICAgdmFy
IHggPSBldmFsKHhTdHIpOwotICAgICAgICAgICAgdmFyIHkgPSBldmFsKHlTdHIpOwotICAgICAg
ICAgICAgdmFyIG5hbWUgPSAiKCIgKyB4U3RyICsgIiArICIgKyB5U3RyICsgIikiOwotICAgICAg
ICAgICAgdmFyIGV4cGVjdGVkID0gZXZhbCgiIiArIHhTdHIgKyAiICsgIiArIHlTdHIpOwotICAg
ICAgICAgICAgdmFyIHNjZW5hcmlvID0geyBuYW1lOiBuYW1lLCB4OiB4LCB5OiB5LCBleHBlY3Rl
ZDogZXhwZWN0ZWQgfTsKLQotICAgICAgICAgICAgc2NlbmFyaW9zLnB1c2goc2NlbmFyaW8pOwot
ICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBzY2VuYXJpb3M7Ci19Ci0KLWZ1bmN0aW9uIHBy
aW50U2NlbmFyaW9zKHNjZW5hcmlvcykgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NlbmFy
aW9zLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBzY2VuYXJpbyA9IHNjZW5hcmlvc1tpXTsK
LSAgICAgICAgcHJpbnQoInNjZW5hcmlvWyIgKyBpICsgIl06IHsgbmFtZTogIiArIHNjZW5hcmlv
Lm5hbWUgKyAiLCB4OiAiICsgc2NlbmFyaW8ueCwgIiwgeTogIiArIHNjZW5hcmlvLnkgKyAiLCBl
eHBlY3RlZDogIiArIHNjZW5hcmlvLmV4cGVjdGVkICsgIiB9Iik7Ci0gICAgfQotfQotCi12YXIg
dGVzdENhc2VzID0gWwotICAgIHsKLSAgICAgICAgbmFtZTogImFkZCIsCi0gICAgICAgIGZ1bmM6
IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1
ZXMsCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1l
OiAiYWRkSTMyViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIDEwICsg
eTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnMTAnIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVl
cwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAiYWRkVkkzMiIsCi0gICAgICAgIGZ1bmM6
IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKyAxMDsgfSwKLSAgICAgICAgeHZhbHVlczogdmFs
dWVzLAotICAgICAgICB5dmFsdWVzOiBbICcxMCcgXQotICAgIH0sCi0gICAgewotICAgICAgICBu
YW1lOiAiYWRkSTMyb1YiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAy
MTQ3NDgzNjQ3ICsgeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnMjE0NzQ4MzY0NycgXSwKLSAg
ICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRW
STMybyIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKyAyMTQ3NDgz
NjQ3OyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJzIx
NDc0ODM2NDcnIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogImFkZEkzMm9uViIsCi0g
ICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIC0yMTQ3NDgzNjQ3ICsgeTsgfSwK
LSAgICAgICAgeHZhbHVlczogWyAnLTIxNDc0ODM2NDcnIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZh
bHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAiYWRkVkkzMm9uIiwKLSAgICAgICAg
ZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCArICgtMjE0NzQ4MzY0Nyk7IH0sCi0gICAg
ICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVlczogWyAnLTIxNDc0ODM2NDcnIF0K
LSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogImFkZEk1MlYiLAotICAgICAgICBmdW5jOiBm
dW5jdGlvbih4LCB5KSB7IHJldHVybiA0Mjk0OTY3Mjk2ICsgeTsgfSwKLSAgICAgICAgeHZhbHVl
czogWyAnNDI5NDk2NzI5NicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAg
ICB7Ci0gICAgICAgIG5hbWU6ICJhZGRWSTUyIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwg
eSkgeyByZXR1cm4geCArIDQyOTQ5NjcyOTY7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywK
LSAgICAgICAgeXZhbHVlczogWyAnNDI5NDk2NzI5NicgXQotICAgIH0sCi0gICAgewotICAgICAg
ICBuYW1lOiAiYWRkSTUyblYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVy
biAtNDI5NDk2NzI5NiArIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJy00Mjk0OTY3Mjk2JyBd
LAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTog
ImFkZFZJNTJuIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCArICgt
NDI5NDk2NzI5Nik7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVl
czogWyAnLTQyOTQ5NjcyOTYnIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogImFkZERW
IiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gMTAwLjIgKyB5OyB9LAot
ICAgICAgICB4dmFsdWVzOiBbICcxMDAuMicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRWRCIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0
aW9uKHgsIHkpIHsgcmV0dXJuIHggKyAxMDAuMjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVz
LAotICAgICAgICB5dmFsdWVzOiBbICcxMDAuMicgXQotICAgIH0sCi0gICAgewotICAgICAgICBu
YW1lOiAiYWRkQlYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB0cnVl
ICsgeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAndHJ1ZScgXSwKLSAgICAgICAgeXZhbHVlczog
dmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRWQiIsCi0gICAgICAgIGZ1
bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKyB0cnVlOyB9LAotICAgICAgICB4dmFsdWVz
OiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJ3RydWUnIF0KLSAgICB9LAotICAgIHsKLSAg
ICAgICAgbmFtZTogImFkZFNpMzJWIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyBy
ZXR1cm4gIjEwIiArIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyIxMCInIF0sCi0gICAgICAg
IHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAiYWRkVlNpMzIi
LAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICsgIjEwIjsgfSwKLSAg
ICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICciMTAiJyBdCi0gICAg
fSwKLQotICAgIHsKLSAgICAgICAgbmFtZTogImFkZFNpMzJvViIsCi0gICAgICAgIGZ1bmM6IGZ1
bmN0aW9uKHgsIHkpIHsgcmV0dXJuICIyMTQ3NDgzNjQ3IiArIHk7IH0sCi0gICAgICAgIHh2YWx1
ZXM6IFsgJyIyMTQ3NDgzNjQ3IicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwK
LSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRWU2kzMm8iLAotICAgICAgICBmdW5jOiBmdW5jdGlv
bih4LCB5KSB7IHJldHVybiB4ICsgIjIxNDc0ODM2NDciOyB9LAotICAgICAgICB4dmFsdWVzOiB2
YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyIyMTQ3NDgzNjQ3IicgXQotICAgIH0sCi0gICAg
ewotICAgICAgICBuYW1lOiAiYWRkU2kzMm9uViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgs
IHkpIHsgcmV0dXJuICItMjE0NzQ4MzY0NyIgKyB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICci
LTIxNDc0ODM2NDciJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsK
LSAgICAgICAgbmFtZTogImFkZFZTaTMyb24iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5
KSB7IHJldHVybiB4ICsgIi0yMTQ3NDgzNjQ3IjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVz
LAotICAgICAgICB5dmFsdWVzOiBbICciLTIxNDc0ODM2NDciJyBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAgIG5hbWU6ICJhZGRTaTUyViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsg
cmV0dXJuICI0Mjk0OTY3Mjk2IiArIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyI0Mjk0OTY3
Mjk2IicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAg
IG5hbWU6ICJhZGRWU2k1MiIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJu
IHggKyAiNDI5NDk2NzI5NiI7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAg
eXZhbHVlczogWyAnIjQyOTQ5NjcyOTYiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6
ICJhZGRTaTUyblYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAiLTQy
OTQ5NjcyOTYiICsgeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnIi00Mjk0OTY3Mjk2IicgXSwK
LSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJh
ZGRWU2k1Mm4iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICsgIi00
Mjk0OTY3Mjk2IjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVz
OiBbICciLTQyOTQ5NjcyOTYiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRT
ZFYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAiMTAwLjIiICsgeTsg
fSwKLSAgICAgICAgeHZhbHVlczogWyAnIjEwMC4yIicgXSwKLSAgICAgICAgeXZhbHVlczogdmFs
dWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRWU2QiLAotICAgICAgICBmdW5j
OiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICsgIjEwMC4yIjsgfSwKLSAgICAgICAgeHZhbHVl
czogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICciMTAwLjIiJyBdCi0gICAgfSwKLSAgICB7
Ci0gICAgICAgIG5hbWU6ICJhZGRTYlYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7
IHJldHVybiAidHJ1ZSIgKyB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICcidHJ1ZSInIF0sCi0g
ICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAiYWRk
VlNiIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCArICJ0cnVlIjsg
fSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICcidHJ1ZSIn
IF0KLSAgICB9LAotCi0gICAgewotICAgICAgICBuYW1lOiAiYWRkU1YiLAotICAgICAgICBmdW5j
OiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAiYWJjIiArIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6
IFsgJyJhYmMiJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgbmFtZTogImFkZFZTIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1
cm4geCArICJhYmMiOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1
ZXM6IFsgJyJhYmMiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGROViIsCi0g
ICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIG51bGwgKyB5OyB9LAotICAgICAg
ICB4dmFsdWVzOiBbICdudWxsJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAot
ICAgIHsKLSAgICAgICAgbmFtZTogImFkZFZOIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwg
eSkgeyByZXR1cm4geCArIG51bGw7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAg
ICAgeXZhbHVlczogWyAnbnVsbCcgXQotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAiYWRk
T1YiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiBvMSArIHk7IH0sCi0g
ICAgICAgIHh2YWx1ZXM6IFsgJ28xJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9
LAotICAgIHsKLSAgICAgICAgbmFtZTogImFkZFZPIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24o
eCwgeSkgeyByZXR1cm4geCArIG8xOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAg
ICAgIHl2YWx1ZXM6IFsgJ28xJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJhZGRO
YU5WIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gTmFOICsgeTsgfSwK
LSAgICAgICAgeHZhbHVlczogWyAnTmFOJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogImFkZFZOYU4iLAotICAgICAgICBmdW5jOiBmdW5j
dGlvbih4LCB5KSB7IHJldHVybiB4ICsgTmFOOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMs
Ci0gICAgICAgIHl2YWx1ZXM6IFsgJ05hTicgXQotICAgIH0sCi1dOworICAgICdOYU4nLAorICAg
ICdwb3NJbmZpbml0eScsCisgICAgJ25lZ0luZmluaXR5JywKKyAgICAnMTAwLjInLCAvLyBTb21l
IHJhbmRvbSBzbWFsbCBkb3VibGUgdmFsdWUuCisgICAgJy0xMDAuMicsCisgICAgJzU0Mjk0OTY3
Mjk2LjI5MjMnLCAvLyBTb21lIHJhbmRvbSBsYXJnZSBkb3VibGUgdmFsdWUuCisgICAgJy01NDI5
NDk2NzI5Ni4yOTIzJywKIAotZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RDYXNlcygpIHsKLSAgICBm
b3IgKHZhciB0ZXN0IG9mIHRlc3RDYXNlcykgewotICAgICAgICBub0lubGluZSh0ZXN0LmZ1bmMp
OwotICAgICAgICB0ZXN0LnNjZW5hcmlvcyA9IGdlbmVyYXRlU2NlbmFyaW9zKHRlc3QueHZhbHVl
cywgdGVzdC55dmFsdWVzKTsKLSAgICB9Ci19Ci1pbml0aWFsaXplVGVzdENhc2VzKCk7Ci0KLXZh
ciBlcnJvclJlcG9ydCA9ICIiOwotCi1mdW5jdGlvbiBzdHJpbmdpZnlJZk5lZWRlZCh4KSB7Ci0g
ICAgaWYgKHR5cGVvZiB4ID09ICJzdHJpbmciKQotICAgICAgICByZXR1cm4gJyInICsgeCArICci
JzsKLSAgICByZXR1cm4geDsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCh0ZXN0KSB7Ci0gICAgdmFy
IGZhaWxlZFNjZW5hcmlvID0gW107Ci0gICAgdmFyIHNjZW5hcmlvcyA9IHRlc3Quc2NlbmFyaW9z
OwotICAgIHZhciB0ZXN0RnVuYyA9IHRlc3QuZnVuYzsKLSAgICB0cnkgewotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAgICAgICAgICAgIGZvciAodmFyIHNjZW5h
cmlvSUQgPSAwOyBzY2VuYXJpb0lEIDwgc2NlbmFyaW9zLmxlbmd0aDsgc2NlbmFyaW9JRCsrKSB7
Ci0gICAgICAgICAgICAgICAgdmFyIHNjZW5hcmlvID0gc2NlbmFyaW9zW3NjZW5hcmlvSURdOwot
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwcmludCgi
VGVzdGluZyAiICsgdGVzdC5uYW1lICsgIjoiICsgc2NlbmFyaW8ubmFtZSArICIgb24gaXRlcmF0
aW9uICIgKyBpICsgIjogZXhwZWN0aW5nICIgKyBzdHJpbmdpZnlJZk5lZWRlZChzY2VuYXJpby5l
eHBlY3RlZCkpOyAKLQotICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0ZXN0RnVuYyhzY2Vu
YXJpby54LCBzY2VuYXJpby55KTsKLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IHNjZW5h
cmlvLmV4cGVjdGVkKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdCkgJiYgTnVtYmVyLmlzTmFOKHNjZW5hcmlvLmV4
cGVjdGVkKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
aWYgKCFmYWlsZWRTY2VuYXJpb1tzY2VuYXJpb0lEXSkgewotICAgICAgICAgICAgICAgICAgICBl
cnJvclJlcG9ydCArPSAiRkFJTDogIiArIHRlc3QubmFtZSArICI6IiArIHNjZW5hcmlvLm5hbWUg
KyAiIHN0YXJ0ZWQgZmFpbGluZyBvbiBpdGVyYXRpb24gIiArIGkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICsgIjogZXhwZWN0ZWQgIiArIHN0cmluZ2lmeUlmTmVlZGVkKHNjZW5hcmlvLmV4cGVj
dGVkKSArICIsIGFjdHVhbCAiICsgc3RyaW5naWZ5SWZOZWVkZWQocmVzdWx0KSArICJcbiI7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChhYm9ydE9uRmlyc3RGYWlsKQotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgZXJyb3JSZXBvcnQ7Ci0gICAgICAgICAgICAgICAgICAgIGZhaWxlZFNj
ZW5hcmlvW3NjZW5hcmlvSURdID0gc2NlbmFyaW87Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChhYm9ydE9u
Rmlyc3RGYWlsKQotICAgICAgICAgICAgdGhyb3cgZTsgLy8gTmVnYXRlIHRoZSBjYXRjaCBieSBy
ZS10aHJvd2luZy4KLSAgICAgICAgZXJyb3JSZXBvcnQgKz0gIlVuZXhwZWN0ZWQgZXhjZXB0aW9u
OiAiICsgZSArICJcbiI7Ci0gICAgfQotfQorICAgICcwJywKKyAgICAnLTAnLAorICAgICcxJywK
KyAgICAnLTEnLAorICAgICcweDNmZmYnLAorICAgICctMHgzZmZmJywKKyAgICAnMHg3ZmZmJywK
KyAgICAnLTB4N2ZmZicsCisgICAgJzB4MTAwMDAnLAorICAgICctMHgxMDAwMCcsCisgICAgJzB4
N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYnLAorICAgICcweDEwMDAwMDAwMCcsCisgICAgJy0w
eDEwMDAwMDAwMCcsCisKKyAgICAnImFiYyInLAorICAgICciMCInLAorICAgICciLTAiJywKKyAg
ICAnIjEiJywKKyAgICAnIi0xIicsCitdOwogCi1mb3IgKHZhciB0ZXN0IG9mIHRlc3RDYXNlcykK
LSAgICBydW5UZXN0KHRlc3QpOwordGVzdHMgPSBbXTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVz
dHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CitnZW5lcmF0ZUJpbmFy
eVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7Citn
ZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMs
IHZhbHVlcyk7CiAKLWlmIChlcnJvclJlcG9ydCAhPT0gIiIpCi0gICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OlxuIiArIGVycm9yUmVwb3J0OworcnVuKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfYml0YW5kLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8vQCBydW5GVExOb0NKSVQKKworLy8gSWYgYWxsIGdv
ZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90
LCBpdCB3aWxsIHByaW50CisvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVi
dWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgorCitsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3QgY29uZmlndXJhdGlv
biBkYXRhOgorCit2YXIgb3BOYW1lID0gImJpdGFuZCI7Cit2YXIgb3AgPSAiJiI7CisKK3ZhciBv
MSA9IHsKKyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDEwOyB9Cit9OworCit2YXIg
cG9zSW5maW5pdHkgPSAxIC8gMDsKK3ZhciBuZWdJbmZpbml0eSA9IC0xIC8gMDsKKwordmFyIHZh
bHVlcyA9IFsKKyAgICAnbzEnLAorICAgICdudWxsJywKKyAgICAndW5kZWZpbmVkJywKKyAgICAn
dHJ1ZScsCisgICAgJ2ZhbHNlJywKKworICAgICdOYU4nLAorICAgICdwb3NJbmZpbml0eScsCisg
ICAgJ25lZ0luZmluaXR5JywKKyAgICAnMTAwLjInLCAvLyBTb21lIHJhbmRvbSBzbWFsbCBkb3Vi
bGUgdmFsdWUuCisgICAgJy0xMDAuMicsCisgICAgJzU0Mjk0OTY3Mjk2LjI5MjMnLCAvLyBTb21l
IHJhbmRvbSBsYXJnZSBkb3VibGUgdmFsdWUuCisgICAgJy01NDI5NDk2NzI5Ni4yOTIzJywKKwor
ICAgICcwJywKKyAgICAnLTAnLAorICAgICcxJywKKyAgICAnLTEnLAorICAgICcweDNmZmYnLAor
ICAgICctMHgzZmZmJywKKyAgICAnMHg3ZmZmJywKKyAgICAnLTB4N2ZmZicsCisgICAgJzB4MTAw
MDAnLAorICAgICctMHgxMDAwMCcsCisgICAgJzB4N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYn
LAorICAgICcweGE1YTVhNWE1JywKKyAgICAnMHgxMDAwMDAwMDAnLAorICAgICctMHgxMDAwMDAw
MDAnLAorCisgICAgJyJhYmMiJywKKyAgICAnIjAiJywKKyAgICAnIi0wIicsCisgICAgJyIxIics
CisgICAgJyItMSInLAorICAgICciMHg3ZmZmZmZmIicsCisgICAgJyItMHg3ZmZmZmZmIicsCisg
ICAgJyIweGE1YTVhNWE1IicsCisgICAgJyIweDEwMDAwMDAwMCInLAorICAgICciLTB4MTAwMDAw
MDAwIicsCitdOworCit0ZXN0cyA9IFtdOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BO
YW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHMo
dGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVz
KTsKKworcnVuKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29w
X2JpdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvb3BfYml0b3IuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL29wX2JpdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8v
QCBydW5GVExOb0NKSVQKKworLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3
aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CisvLyBlcnJvcnMu
IFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgor
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworCisvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKy8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgorCit2YXIgb3BOYW1lID0gImJp
dG9yIjsKK3ZhciBvcCA9ICJ8IjsKKwordmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTA7IH0KK307CisKK3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFyIG5l
Z0luZmluaXR5ID0gLTEgLyAwOworCit2YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAgJ251
bGwnLAorICAgICd1bmRlZmluZWQnLAorICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisgICAg
J05hTicsCisgICAgJ3Bvc0luZmluaXR5JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcxMDAu
MicsIC8vIFNvbWUgcmFuZG9tIHNtYWxsIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywKKyAg
ICAnNTQyOTQ5NjcyOTYuMjkyMycsIC8vIFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1ZS4K
KyAgICAnLTU0Mjk0OTY3Mjk2LjI5MjMnLAorCisgICAgJzAnLAorICAgICctMCcsCisgICAgJzEn
LAorICAgICctMScsCisgICAgJzB4M2ZmZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYn
LAorICAgICctMHg3ZmZmJywKKyAgICAnMHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAn
MHg3ZmZmZmZmJywKKyAgICAnLTB4N2ZmZmZmZicsCisgICAgJzB4YTVhNWE1YTUnLAorICAgICcw
eDEwMDAwMDAwMCcsCisgICAgJy0weDEwMDAwMDAwMCcsCisKKyAgICAnImFiYyInLAorICAgICci
MCInLAorICAgICciLTAiJywKKyAgICAnIjEiJywKKyAgICAnIi0xIicsCisgICAgJyIweDdmZmZm
ZmYiJywKKyAgICAnIi0weDdmZmZmZmYiJywKKyAgICAnIjB4YTVhNWE1YTUiJywKKyAgICAnIjB4
MTAwMDAwMDAwIicsCisgICAgJyItMHgxMDAwMDAwMDAiJywKK107CisKK3Rlc3RzID0gW107Citn
ZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2
YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0
IiwgdmFsdWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBv
cCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOworCitydW4oKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2OSBAQAorLy9AIHJ1bkZUTE5vQ0pJVAorCisvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKKy8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZv
ciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCisKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gVGVzdCBjb25maWd1
cmF0aW9uIGRhdGE6CisKK3ZhciBvcE5hbWUgPSAiYml0eG9yIjsKK3ZhciBvcCA9ICJeIjsKKwor
dmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTA7IH0KK307CisK
K3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFyIG5lZ0luZmluaXR5ID0gLTEgLyAwOworCit2
YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAgJ251bGwnLAorICAgICd1bmRlZmluZWQnLAor
ICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisgICAgJ05hTicsCisgICAgJ3Bvc0luZmluaXR5
JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcxMDAuMicsIC8vIFNvbWUgcmFuZG9tIHNtYWxs
IGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywKKyAgICAnNTQyOTQ5NjcyOTYuMjkyMycsIC8v
IFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTU0Mjk0OTY3Mjk2LjI5MjMn
LAorCisgICAgJzAnLAorICAgICctMCcsCisgICAgJzEnLAorICAgICctMScsCisgICAgJzB4M2Zm
ZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYnLAorICAgICctMHg3ZmZmJywKKyAgICAn
MHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAnMHg3ZmZmZmZmJywKKyAgICAnLTB4N2Zm
ZmZmZicsCisgICAgJzB4YTVhNWE1YTUnLAorICAgICcweDEwMDAwMDAwMCcsCisgICAgJy0weDEw
MDAwMDAwMCcsCisKKyAgICAnImFiYyInLAorICAgICciMCInLAorICAgICciLTAiJywKKyAgICAn
IjEiJywKKyAgICAnIi0xIicsCisgICAgJyIweDdmZmZmZmYiJywKKyAgICAnIi0weDdmZmZmZmYi
JywKKyAgICAnIjB4YTVhNWE1YTUiJywKKyAgICAnIjB4MTAwMDAwMDAwIicsCisgICAgJyItMHgx
MDAwMDAwMDAiJywKK107CisKK3Rlc3RzID0gW107CitnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3Rz
LCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOworZ2Vu
ZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2
YWx1ZXMpOworCitydW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvb3BfZGl2LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvb3BfZGl2LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9vcF9kaXYuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAorLy9A
IHJ1bkZUTE5vQ0pJVAorCisvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdp
bGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKKy8vIGVycm9ycy4g
U2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCisK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CisKKy8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CisKK3ZhciBvcE5hbWUgPSAiZGl2
IjsKK3ZhciBvcCA9ICIvIjsKKwordmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gMTA7IH0KK307CisKK3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFyIG5lZ0lu
ZmluaXR5ID0gLTEgLyAwOworCit2YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAgJ251bGwn
LAorICAgICd1bmRlZmluZWQnLAorICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisgICAgJ05h
TicsCisgICAgJ3Bvc0luZmluaXR5JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcxMDAuMics
IC8vIFNvbWUgcmFuZG9tIHNtYWxsIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywKKyAgICAn
NTQyOTQ5NjcyOTYuMjkyMycsIC8vIFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1ZS4KKyAg
ICAnLTU0Mjk0OTY3Mjk2LjI5MjMnLAorCisgICAgJzAnLAorICAgICctMCcsCisgICAgJzEnLAor
ICAgICctMScsCisgICAgJzB4M2ZmZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYnLAor
ICAgICctMHg3ZmZmJywKKyAgICAnMHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAnMHg3
ZmZmZmZmJywKKyAgICAnLTB4N2ZmZmZmZicsCisgICAgJzB4MTAwMDAwMDAwJywKKyAgICAnLTB4
MTAwMDAwMDAwJywKKworICAgICciYWJjIicsCisgICAgJyIwIicsCisgICAgJyItMCInLAorICAg
ICciMSInLAorICAgICciLTEiJywKKyAgICAnIjB4M2ZmZiInLAorICAgICciLTB4M2ZmZiInLAor
ICAgICciMHg3ZmZmIicsCisgICAgJyItMHg3ZmZmIicsCisgICAgJyIweDEwMDAwIicsCisgICAg
JyItMHgxMDAwMCInLAorICAgICciMHg3ZmZmZmZmIicsCisgICAgJyItMHg3ZmZmZmZmIicsCisg
ICAgJyIweDEwMDAwMDAwMCInLAorICAgICciLTB4MTAwMDAwMDAwIicsCitdOworCit0ZXN0cyA9
IFtdOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZh
bHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJW
YXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKKworcnVuKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX2xzaGlmdC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX2xzaGlmdC5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8vQCBydW5GVExOb0NKSVQKKwor
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CisvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgorCitsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3Qg
Y29uZmlndXJhdGlvbiBkYXRhOgorCit2YXIgb3BOYW1lID0gImxzaGlmdCI7Cit2YXIgb3AgPSAi
PDwiOworCit2YXIgbzEgPSB7CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAxMDsg
fQorfTsKKwordmFyIHBvc0luZmluaXR5ID0gMSAvIDA7Cit2YXIgbmVnSW5maW5pdHkgPSAtMSAv
IDA7CisKK3ZhciB2YWx1ZXMgPSBbCisgICAgJ28xJywKKyAgICAnbnVsbCcsCisgICAgJ3VuZGVm
aW5lZCcsCisgICAgJ3RydWUnLAorICAgICdmYWxzZScsCisKKyAgICAnTmFOJywKKyAgICAncG9z
SW5maW5pdHknLAorICAgICduZWdJbmZpbml0eScsCisgICAgJzEwMC4yJywgLy8gU29tZSByYW5k
b20gc21hbGwgZG91YmxlIHZhbHVlLgorICAgICctMTAwLjInLAorICAgICc1NDI5NDk2NzI5Ni4y
OTIzJywgLy8gU29tZSByYW5kb20gbGFyZ2UgZG91YmxlIHZhbHVlLgorICAgICctNTQyOTQ5Njcy
OTYuMjkyMycsCisKKyAgICAnMCcsCisgICAgJy0wJywKKyAgICAnMScsCisgICAgJy0xJywKKyAg
ICAnNScsCisgICAgJy01JywKKyAgICAnMzEnLAorICAgICctMzEnLAorICAgICczMicsCisgICAg
Jy0zMicsCisgICAgJzB4M2ZmZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYnLAorICAg
ICctMHg3ZmZmJywKKyAgICAnMHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAnMHg3ZmZm
ZmZmJywKKyAgICAnLTB4N2ZmZmZmZicsCisgICAgJzB4MTAwMDAwMDAwJywKKyAgICAnLTB4MTAw
MDAwMDAwJywKKworICAgICciYWJjIicsCisgICAgJyIwIicsCisgICAgJyItMCInLAorICAgICci
MSInLAorICAgICciLTEiJywKKyAgICAnIjUiJywKKyAgICAnIi01IicsCisgICAgJyIzMSInLAor
ICAgICciLTMxIicsCisgICAgJyIzMiInLAorICAgICciLTMyIicsCisgICAgJyIweDNmZmYiJywK
KyAgICAnIi0weDNmZmYiJywKK107CisKK3Rlc3RzID0gW107CitnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVC
aW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMp
OworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFs
dWVzLCB2YWx1ZXMpOworCitydW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvb3BfbW9kLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvb3BfbW9kLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9vcF9tb2QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBA
QAorLy9AIHJ1bkZUTE5vQ0pJVAorCisvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKKy8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCisKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CisKKy8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CisKK3ZhciBvcE5hbWUg
PSAibW9kIjsKK3ZhciBvcCA9ICIlIjsKKwordmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gMTA7IH0KK307CisKK3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFy
IG5lZ0luZmluaXR5ID0gLTEgLyAwOworCit2YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAg
J251bGwnLAorICAgICd1bmRlZmluZWQnLAorICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisg
ICAgJ05hTicsCisgICAgJ3Bvc0luZmluaXR5JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcx
MDAuMicsIC8vIFNvbWUgcmFuZG9tIHNtYWxsIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywK
KyAgICAnNTQyOTQ5NjcyOTYuMjkyMycsIC8vIFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1
ZS4KKyAgICAnLTU0Mjk0OTY3Mjk2LjI5MjMnLAorCisgICAgJzAnLAorICAgICctMCcsCisgICAg
JzEnLAorICAgICctMScsCisgICAgJzB4M2ZmZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdm
ZmYnLAorICAgICctMHg3ZmZmJywKKyAgICAnMHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAg
ICAnMHg3ZmZmZmZmJywKKyAgICAnLTB4N2ZmZmZmZicsCisgICAgJzB4MTAwMDAwMDAwJywKKyAg
ICAnLTB4MTAwMDAwMDAwJywKKworICAgICciYWJjIicsCisgICAgJyIwIicsCisgICAgJyItMCIn
LAorICAgICciMSInLAorICAgICciLTEiJywKKyAgICAnIjB4M2ZmZiInLAorICAgICciLTB4M2Zm
ZiInLAorICAgICciMHg3ZmZmIicsCisgICAgJyItMHg3ZmZmIicsCisgICAgJyIweDEwMDAwIics
CisgICAgJyItMHgxMDAwMCInLAorICAgICciMHg3ZmZmZmZmIicsCisgICAgJyItMHg3ZmZmZmZm
IicsCisgICAgJyIweDEwMDAwMDAwMCInLAorICAgICciLTB4MTAwMDAwMDAwIicsCitdOworCit0
ZXN0cyA9IFtdOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZh
ciIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwg
b3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVz
dHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKKworcnVuKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX211bC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX211bC5qcwkocmV2
aXNpb24gMTkyNjU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9t
dWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzEsMTUgQEAKIC8vQCBydW5GVExOb0NKSVQK
IAotLy8gVGhpcyB0ZXN0IG1vZHVsZSBhaW1zIHRvIHRlc3QgdGhlIG11bHRpcGxpY2F0aW9uIG9w
ZXJhdG9yIGJ5IGNvbXBhcmluZyBpdHMgcnVudGltZQotLy8gYmVoYXZpb3IgKHVzaW5nIHRoZSBk
aWZmZXJlbnQgdGllcnMpIHdpdGggZXhwZWN0ZWQgdmFsdWVzIGNvbXB1dGVkIGF0IGluaXRpYWxp
emF0aW9uCi0vLyB0aW1lIHVzaW5nIHRoZSBMTElOVCAvIGJ5dGVjb2RlIGdlbmVyYXRvci4KLS8v
Ci0vLyBJdCB3b3JrcyBieSBnZW5lcmF0aW5nIHRlc3Qgc2NlbmFyaW9zIGZyb20gcGVybXV0YXRp
b25zIG9mIHZhbHVlIHBhaXJzIHRvIGV4ZXJjaXNlCi0vLyB0aGUgbXVsdGlwbGljYXRpb24gb3Bl
cmF0b3IuIEl0IGNvbXB1dGVzIHRoZSBleHBlY3RlZCByZXN1bHRzIGJ5IGV2YWx1YXRpbmcgYW4K
LS8vIGV4cHJlc3Npb24gdG8gbXVsdGlwbHkgdGhlIHZhbHVlcyBpbiBhbiBpbml0aWFsaXphdGlv
biBwYXNzLiBUaGUgc2NlbmFyaW9zIGFyZSBsYXRlcgotLy8gYXBwbGllZCB0byBhIHNldCBvZiB0
ZXN0IGZ1bmN0aW9ucyBvZiB0aGUgZm9ybXM6Ci0vLwotLy8gICAgIHZhcmlhYmxlICogdmFyaWFi
bGUKLS8vICAgICBjb25zdGFudCAqIHZhcmlhYmxlCi0vLyAgICAgdmFyaWFibGUgKiBjb25zdGFu
dAotLy8KLS8vIFNlZSBnZW5lcmF0ZVNjZW5hcmlvcygpIGFuZCBpbml0aWFsaXplVGVzdENhc2Vz
KCkgZm9yIGRldGFpbHMgb24gaG93IHRoZSB0ZXN0Ci0vLyBjYXNlcyBhcmUgZ2VuZXJhdGVkLgot
Ly8KIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAotLy8gZXJyb3JzLgorLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
dmFyIHZlcmJvc2UgPSBmYWxzZTsKLXZhciBhYm9ydE9uRmlyc3RGYWlsID0gZmFsc2U7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworCisvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKy8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgorCit2YXIgb3BOYW1lID0gIm11bCI7Cit2
YXIgb3AgPSAiKiI7CiAKIHZhciBvMSA9IHsKICAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0
dXJuIDEwOyB9CkBAIC0yOSwxNyArMTgsMjEgQEAgdmFyIG8xID0gewogdmFyIHBvc0luZmluaXR5
ID0gMSAvIDA7CiB2YXIgbmVnSW5maW5pdHkgPSAtMSAvIDA7CiAKLXZhciBzZXQxID0gWwordmFy
IHZhbHVlcyA9IFsKICAgICAnbzEnLAogICAgICdudWxsJywKICAgICAndW5kZWZpbmVkJywKKyAg
ICAndHJ1ZScsCisgICAgJ2ZhbHNlJywKKwogICAgICdOYU4nLAogICAgICdwb3NJbmZpbml0eScs
CiAgICAgJ25lZ0luZmluaXR5JywKLSAgICAnImFiYyInLAotXTsKKyAgICAnMTAwLjInLCAvLyBT
b21lIHJhbmRvbSBzbWFsbCBkb3VibGUgdmFsdWUuCisgICAgJy0xMDAuMicsCisgICAgJzU0Mjk0
OTY3Mjk2LjI5MjMnLCAvLyBTb21lIHJhbmRvbSBsYXJnZSBkb3VibGUgdmFsdWUuCisgICAgJy01
NDI5NDk2NzI5Ni4yOTIzJywKIAotdmFyIHNldDIgPSBbCiAgICAgJzAnLAogICAgICctMCcsCiAg
ICAgJzEnLApAQCAtNTAsMzM3ICs0MywzMSBAQCB2YXIgc2V0MiA9IFsKICAgICAnLTB4N2ZmZics
CiAgICAgJzB4MTAwMDAnLAogICAgICctMHgxMDAwMCcsCi0gICAgJzIxNDc0ODM2NDcnLAotICAg
ICctMjE0NzQ4MzY0NycsCi0gICAgJzQyOTQ5NjcyOTYnLAotICAgICctNDI5NDk2NzI5NicsCi0g
ICAgJzEwMC4yJywKLSAgICAnLTEwMC4yJywKLSAgICAndHJ1ZScsCi0gICAgJ2ZhbHNlJywKLV07
CisgICAgJzB4N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYnLAorICAgICcweDEwMDAwMDAwMCcs
CisgICAgJy0weDEwMDAwMDAwMCcsCiAKLS8vIEFzc2VtYmxlIHRoZSB2YWx1ZXMgdGhhdCB3ZSds
bCBiZSB0ZXN0aW5nIHdpdGg6Ci12YXIgdmFsdWVzID0gW107Ci1mb3IgKHZhciBpID0gMDsgaSA8
IHNldDEubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2goc2V0MVtpXSk7Ci1mb3IgKHZhciBp
ID0gMDsgaSA8IHNldDIubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2goc2V0MltpXSk7Ci1m
b3IgKHZhciBpID0gMDsgaSA8IHNldDIubGVuZ3RoOyBpKyspCi0gICAgdmFsdWVzLnB1c2goJyIn
ICsgc2V0MltpXSArICciJyk7Ci0KLWZ1bmN0aW9uIGdlbmVyYXRlU2NlbmFyaW9zKHh2YWx1ZXMs
IHl2YWx1ZXMpIHsKLSAgICB2YXIgc2NlbmFyaW9zID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB4dmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
eXZhbHVlcy5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgdmFyIHhTdHIgPSB4dmFsdWVzW2ld
OwotICAgICAgICAgICAgdmFyIHlTdHIgPSB5dmFsdWVzW2pdOwotICAgICAgICAgICAgdmFyIHgg
PSBldmFsKHhTdHIpOwotICAgICAgICAgICAgdmFyIHkgPSBldmFsKHlTdHIpOwotICAgICAgICAg
ICAgdmFyIG5hbWUgPSAiKCIgKyB4U3RyICsgIiAqICIgKyB5U3RyICsgIikiOwotICAgICAgICAg
ICAgdmFyIGV4cGVjdGVkID0gZXZhbCgiIiArIHhTdHIgKyAiICogIiArIHlTdHIpOwotICAgICAg
ICAgICAgdmFyIHNjZW5hcmlvID0geyBuYW1lOiBuYW1lLCB4OiB4LCB5OiB5LCBleHBlY3RlZDog
ZXhwZWN0ZWQgfTsKLQotICAgICAgICAgICAgc2NlbmFyaW9zLnB1c2goc2NlbmFyaW8pOwotICAg
ICAgICB9Ci0gICAgfQotICAgIHJldHVybiBzY2VuYXJpb3M7Ci19Ci0KLWZ1bmN0aW9uIHByaW50
U2NlbmFyaW9zKHNjZW5hcmlvcykgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NlbmFyaW9z
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBzY2VuYXJpbyA9IHNjZW5hcmlvc1tpXTsKLSAg
ICAgICAgcHJpbnQoInNjZW5hcmlvWyIgKyBpICsgIl06IHsgbmFtZTogIiArIHNjZW5hcmlvLm5h
bWUgKyAiLCB4OiAiICsgc2NlbmFyaW8ueCwgIiwgeTogIiArIHNjZW5hcmlvLnkgKyAiLCBleHBl
Y3RlZDogIiArIHNjZW5hcmlvLmV4cGVjdGVkICsgIiB9Iik7Ci0gICAgfQotfQotCi12YXIgdGVz
dENhc2VzID0gWwotICAgIHsKLSAgICAgICAgbmFtZTogIm11bCIsCi0gICAgICAgIGZ1bmM6IGZ1
bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKiB5OyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMs
Ci0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAi
bXVsSTMyViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIDEgKiB5OyB9
LAotICAgICAgICB4dmFsdWVzOiBbICcxJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZJMzIiLAotICAgICAgICBmdW5jOiBmdW5j
dGlvbih4LCB5KSB7IHJldHVybiB4ICogMTsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAot
ICAgICAgICB5dmFsdWVzOiBbICcxJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJt
dWxJMzJvViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIDIxNDc0ODM2
NDcgKiB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICcyMTQ3NDgzNjQ3JyBdLAotICAgICAgICB5
dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZJMzJvIiwK
LSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAqIDIxNDc0ODM2NDc7IH0s
Ci0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVlczogWyAnMjE0NzQ4MzY0
NycgXQotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAibXVsSTMyb25WIiwKLSAgICAgICAg
ZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gLTIxNDc0ODM2NDcgKiB5OyB9LAotICAgICAg
ICB4dmFsdWVzOiBbICctMjE0NzQ4MzY0NycgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0g
ICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJtdWxWSTMyb24iLAotICAgICAgICBmdW5jOiBm
dW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICogKC0yMTQ3NDgzNjQ3KTsgfSwKLSAgICAgICAgeHZh
bHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICctMjE0NzQ4MzY0NycgXQotICAgIH0s
Ci0gICAgewotICAgICAgICBuYW1lOiAibXVsSTUyViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9u
KHgsIHkpIHsgcmV0dXJuIDQyOTQ5NjcyOTYgKiB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICc0
Mjk0OTY3Mjk2JyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgbmFtZTogIm11bFZJNTIiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJl
dHVybiB4ICogNDI5NDk2NzI5NjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAg
ICB5dmFsdWVzOiBbICc0Mjk0OTY3Mjk2JyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6
ICJtdWxJNTJuViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIC00Mjk0
OTY3Mjk2ICogeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnLTQyOTQ5NjcyOTYnIF0sCi0gICAg
ICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAibXVsVkk1
Mm4iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICogKC00Mjk0OTY3
Mjk2KTsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICct
NDI5NDk2NzI5NicgXQotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAibXVsRFYiLAotICAg
ICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAxMDAuMiAqIHk7IH0sCi0gICAgICAg
IHh2YWx1ZXM6IFsgJzEwMC4yJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAot
ICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZEIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwg
eSkgeyByZXR1cm4geCAqIDEwMC4yOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAg
ICAgIHl2YWx1ZXM6IFsgJzEwMC4yJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJt
dWxCViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHRydWUgKiB5OyB9
LAotICAgICAgICB4dmFsdWVzOiBbICd0cnVlJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMK
LSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZCIiwKLSAgICAgICAgZnVuYzogZnVu
Y3Rpb24oeCwgeSkgeyByZXR1cm4geCAqIHRydWU7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVl
cywKLSAgICAgICAgeXZhbHVlczogWyAndHJ1ZScgXQotICAgIH0sCi0gICAgewotICAgICAgICBu
YW1lOiAibXVsU2kzMlYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAi
MTAiICogeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnIjEwIicgXSwKLSAgICAgICAgeXZhbHVl
czogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJtdWxWU2kzMiIsCi0gICAg
ICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKiAiMTAiOyB9LAotICAgICAgICB4
dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyIxMCInIF0KLSAgICB9LAotCi0g
ICAgewotICAgICAgICBuYW1lOiAibXVsU2kzMm9WIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24o
eCwgeSkgeyByZXR1cm4gIjIxNDc0ODM2NDciICogeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAn
IjIxNDc0ODM2NDciJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsK
LSAgICAgICAgbmFtZTogIm11bFZTaTMybyIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkp
IHsgcmV0dXJuIHggKiAiMjE0NzQ4MzY0NyI7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywK
LSAgICAgICAgeXZhbHVlczogWyAnIjIxNDc0ODM2NDciJyBdCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAgIG5hbWU6ICJtdWxTaTMyb25WIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyBy
ZXR1cm4gIi0yMTQ3NDgzNjQ3IiAqIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyItMjE0NzQ4
MzY0NyInIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAg
ICBuYW1lOiAibXVsVlNpMzJvbiIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0
dXJuIHggKiAiLTIxNDc0ODM2NDciOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAg
ICAgIHl2YWx1ZXM6IFsgJyItMjE0NzQ4MzY0NyInIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAg
bmFtZTogIm11bFNpNTJWIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4g
IjQyOTQ5NjcyOTYiICogeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnIjQyOTQ5NjcyOTYiJyBd
LAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTog
Im11bFZTaTUyIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAqICI0
Mjk0OTY3Mjk2IjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVz
OiBbICciNDI5NDk2NzI5NiInIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFNp
NTJuViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuICItNDI5NDk2NzI5
NiIgKiB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICciLTQyOTQ5NjcyOTYiJyBdLAotICAgICAg
ICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZTaTUy
biIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggKiAiLTQyOTQ5Njcy
OTYiOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyIt
NDI5NDk2NzI5NiInIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFNkViIsCi0g
ICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuICIxMDAuMiIgKiB5OyB9LAotICAg
ICAgICB4dmFsdWVzOiBbICciMTAwLjIiJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAg
ICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bFZTZCIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0
aW9uKHgsIHkpIHsgcmV0dXJuIHggKiAiMTAwLjIiOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1
ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyIxMDAuMiInIF0KLSAgICB9LAotICAgIHsKLSAgICAg
ICAgbmFtZTogIm11bFNiViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJu
ICJ0cnVlIiAqIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyJ0cnVlIicgXSwKLSAgICAgICAg
eXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJtdWxWU2IiLAot
ICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICogInRydWUiOyB9LAotICAg
ICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyJ0cnVlIicgXQotICAg
IH0sCi0KLSAgICB7Ci0gICAgICAgIG5hbWU6ICJtdWxTViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0
aW9uKHgsIHkpIHsgcmV0dXJuICJhYmMiICogeTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnImFi
YyInIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBu
YW1lOiAibXVsVlMiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4ICog
ImFiYyI7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVlczogWyAn
ImFiYyInIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bE5WIiwKLSAgICAgICAg
ZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gbnVsbCAqIHk7IH0sCi0gICAgICAgIHh2YWx1
ZXM6IFsgJ251bGwnIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewot
ICAgICAgICBuYW1lOiAibXVsVk4iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJl
dHVybiB4ICogbnVsbDsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFs
dWVzOiBbICdudWxsJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJtdWxPViIsCi0g
ICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIG8xICogeTsgfSwKLSAgICAgICAg
eHZhbHVlczogWyAnbzEnIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAg
ewotICAgICAgICBuYW1lOiAibXVsVk8iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7
IHJldHVybiB4ICogbzE7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZh
bHVlczogWyAnbzEnIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogIm11bE5hTlYiLAot
ICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiBOYU4gKiB5OyB9LAotICAgICAg
ICB4dmFsdWVzOiBbICdOYU4nIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0g
ICAgewotICAgICAgICBuYW1lOiAibXVsVk5hTiIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgs
IHkpIHsgcmV0dXJuIHggKiBOYU47IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAg
ICAgeXZhbHVlczogWyAnTmFOJyBdCi0gICAgfSwKKyAgICAnImFiYyInLAorICAgICciMCInLAor
ICAgICciLTAiJywKKyAgICAnIjEiJywKKyAgICAnIi0xIicsCisgICAgJyIweDNmZmYiJywKKyAg
ICAnIi0weDNmZmYiJywKKyAgICAnIjB4N2ZmZiInLAorICAgICciLTB4N2ZmZiInLAorICAgICci
MHgxMDAwMCInLAorICAgICciLTB4MTAwMDAiJywKKyAgICAnIjB4N2ZmZmZmZiInLAorICAgICci
LTB4N2ZmZmZmZiInLAorICAgICciMHgxMDAwMDAwMDAiJywKKyAgICAnIi0weDEwMDAwMDAwMCIn
LAogXTsKIAotZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RDYXNlcygpIHsKLSAgICBmb3IgKHZhciB0
ZXN0IG9mIHRlc3RDYXNlcykgewotICAgICAgICBub0lubGluZSh0ZXN0LmZ1bmMpOwotICAgICAg
ICB0ZXN0LnNjZW5hcmlvcyA9IGdlbmVyYXRlU2NlbmFyaW9zKHRlc3QueHZhbHVlcywgdGVzdC55
dmFsdWVzKTsKLSAgICB9Ci19Ci1pbml0aWFsaXplVGVzdENhc2VzKCk7Ci0KLXZhciBlcnJvclJl
cG9ydCA9ICIiOwotCi1mdW5jdGlvbiBzdHJpbmdpZnlJZk5lZWRlZCh4KSB7Ci0gICAgaWYgKHR5
cGVvZiB4ID09ICJzdHJpbmciKQotICAgICAgICByZXR1cm4gJyInICsgeCArICciJzsKLSAgICBy
ZXR1cm4geDsKLX0KLQotZnVuY3Rpb24gaXNJZGVudGljYWwoeCwgeSkgewotICAgIGlmICh4ID09
IHkpIHsKLSAgICAgICAgaWYgKHgpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
Ly8gRGlzdGluZ3Vpc2ggYmV0d2VlbiAwIGFuZCBuZWdhdGl2ZSAwLgotICAgICAgICBpZiAoMSAv
IHggPT0gMSAvIHkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKE51
bWJlci5pc05hTih4KSAmJiBOdW1iZXIuaXNOYU4oeSkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCh0ZXN0KSB7Ci0gICAgdmFy
IGZhaWxlZFNjZW5hcmlvID0gW107Ci0gICAgdmFyIHNjZW5hcmlvcyA9IHRlc3Quc2NlbmFyaW9z
OwotICAgIHZhciB0ZXN0RnVuYyA9IHRlc3QuZnVuYzsKLSAgICB0cnkgewotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAgICAgICAgICAgIGZvciAodmFyIHNjZW5h
cmlvSUQgPSAwOyBzY2VuYXJpb0lEIDwgc2NlbmFyaW9zLmxlbmd0aDsgc2NlbmFyaW9JRCsrKSB7
Ci0gICAgICAgICAgICAgICAgdmFyIHNjZW5hcmlvID0gc2NlbmFyaW9zW3NjZW5hcmlvSURdOwot
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwcmludCgi
VGVzdGluZyAiICsgdGVzdC5uYW1lICsgIjoiICsgc2NlbmFyaW8ubmFtZSArICIgb24gaXRlcmF0
aW9uICIgKyBpICsgIjogZXhwZWN0aW5nICIgKyBzdHJpbmdpZnlJZk5lZWRlZChzY2VuYXJpby5l
eHBlY3RlZCkpOyAKLQotICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0ZXN0RnVuYyhzY2Vu
YXJpby54LCBzY2VuYXJpby55KTsKLSAgICAgICAgICAgICAgICBpZiAoaXNJZGVudGljYWwocmVz
dWx0LCBzY2VuYXJpby5leHBlY3RlZCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgIGlmICghZmFpbGVkU2NlbmFyaW9bc2NlbmFyaW9JRF0pIHsKLSAgICAg
ICAgICAgICAgICAgICAgZXJyb3JSZXBvcnQgKz0gIkZBSUw6ICIgKyB0ZXN0Lm5hbWUgKyAiOiIg
KyBzY2VuYXJpby5uYW1lICsgIiBzdGFydGVkIGZhaWxpbmcgb24gaXRlcmF0aW9uICIgKyBpCi0g
ICAgICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKyBzdHJpbmdpZnlJZk5lZWRl
ZChzY2VuYXJpby5leHBlY3RlZCkgKyAiLCBhY3R1YWwgIiArIHN0cmluZ2lmeUlmTmVlZGVkKHJl
c3VsdCkgKyAiXG4iOwotICAgICAgICAgICAgICAgICAgICBpZiAoYWJvcnRPbkZpcnN0RmFpbCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yUmVwb3J0OwotICAgICAgICAgICAg
ICAgICAgICBmYWlsZWRTY2VuYXJpb1tzY2VuYXJpb0lEXSA9IHNjZW5hcmlvOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gY2F0Y2goZSkgewotICAg
ICAgICBpZiAoYWJvcnRPbkZpcnN0RmFpbCkKLSAgICAgICAgICAgIHRocm93IGU7IC8vIE5lZ2F0
ZSB0aGUgY2F0Y2ggYnkgcmUtdGhyb3dpbmcuCi0gICAgICAgIGVycm9yUmVwb3J0ICs9ICJVbmV4
cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUgKyAiXG4iOwotICAgIH0KLX0KLQotZm9yICh2YXIgdGVz
dCBvZiB0ZXN0Q2FzZXMpCi0gICAgcnVuVGVzdCh0ZXN0KTsKK3Rlc3RzID0gW107CitnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMp
OworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFs
dWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNv
bnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwogCi1pZiAoZXJyb3JSZXBvcnQgIT09ICIiKQotICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDpcbiIgKyBlcnJvclJlcG9ydDsKK3J1bigpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX3Jz
aGlmdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisvL0AgcnVuRlRMTm9DSklU
CisKKy8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAorLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KKworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBU
ZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKKwordmFyIG9wTmFtZSA9ICJyc2hpZnQiOwordmFyIG9w
ID0gIj4+IjsKKwordmFyIG8xID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
MTA7IH0KK307CisKK3ZhciBwb3NJbmZpbml0eSA9IDEgLyAwOwordmFyIG5lZ0luZmluaXR5ID0g
LTEgLyAwOworCit2YXIgdmFsdWVzID0gWworICAgICdvMScsCisgICAgJ251bGwnLAorICAgICd1
bmRlZmluZWQnLAorICAgICd0cnVlJywKKyAgICAnZmFsc2UnLAorCisgICAgJ05hTicsCisgICAg
J3Bvc0luZmluaXR5JywKKyAgICAnbmVnSW5maW5pdHknLAorICAgICcxMDAuMicsIC8vIFNvbWUg
cmFuZG9tIHNtYWxsIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTEwMC4yJywKKyAgICAnNTQyOTQ5Njcy
OTYuMjkyMycsIC8vIFNvbWUgcmFuZG9tIGxhcmdlIGRvdWJsZSB2YWx1ZS4KKyAgICAnLTU0Mjk0
OTY3Mjk2LjI5MjMnLAorCisgICAgJzAnLAorICAgICctMCcsCisgICAgJzEnLAorICAgICctMScs
CisgICAgJzUnLAorICAgICctNScsCisgICAgJzMxJywKKyAgICAnLTMxJywKKyAgICAnMzInLAor
ICAgICctMzInLAorICAgICcweDNmZmYnLAorICAgICctMHgzZmZmJywKKyAgICAnMHg3ZmZmJywK
KyAgICAnLTB4N2ZmZicsCisgICAgJzB4MTAwMDAnLAorICAgICctMHgxMDAwMCcsCisgICAgJzB4
N2ZmZmZmZicsCisgICAgJy0weDdmZmZmZmYnLAorICAgICcweDEwMDAwMDAwMCcsCisgICAgJy0w
eDEwMDAwMDAwMCcsCisKKyAgICAnImFiYyInLAorICAgICciMCInLAorICAgICciLTAiJywKKyAg
ICAnIjEiJywKKyAgICAnIi0xIicsCisgICAgJyI1IicsCisgICAgJyItNSInLAorICAgICciMzEi
JywKKyAgICAnIi0zMSInLAorICAgICciMzIiJywKKyAgICAnIi0zMiInLAorICAgICciMHgzZmZm
IicsCisgICAgJyItMHgzZmZmIicsCitdOworCit0ZXN0cyA9IFtdOworZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVy
YXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFs
dWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIs
IHZhbHVlcywgdmFsdWVzKTsKKworcnVuKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL29wX3N1Yi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL29wX3N1Yi5qcwkocmV2aXNpb24gMTkyNjU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9vcF9zdWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MzA4ICsxLDczIEBACiAvL0AgcnVuRlRMTm9DSklUCiAKLS8vIFRoaXMgdGVzdCBtb2R1bGUgYWlt
cyB0byB0ZXN0IHRoZSBzdWJ0cmFjdGlvbiBvcGVyYXRvciBieSBjb21wYXJpbmcgaXRzIHJ1bnRp
bWUKLS8vIGJlaGF2aW9yICh1c2luZyB0aGUgZGlmZmVyZW50IHRpZXJzKSB3aXRoIGV4cGVjdGVk
IHZhbHVlcyBjb21wdXRlZCBhdCBpbml0aWFsaXphdGlvbgotLy8gdGltZSB1c2luZyB0aGUgTExJ
TlQgLyBieXRlY29kZSBnZW5lcmF0b3IuCi0vLwotLy8gSXQgd29ya3MgYnkgZ2VuZXJhdGluZyB0
ZXN0IHNjZW5hcmlvcyBmcm9tIHBlcm11dGF0aW9ucyBvZiB2YWx1ZSBwYWlycyB0byBleGVyY2lz
ZQotLy8gdGhlIHN1YnRyYWN0aW9uIG9wZXJhdG9yLiBJdCBjb21wdXRlcyB0aGUgZXhwZWN0ZWQg
cmVzdWx0cyBieSBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24KLS8vIHRvIHN1YnRyYWN0IHRoZSB2
YWx1ZXMgaW4gYW4gaW5pdGlhbGl6YXRpb24gcGFzcy4gVGhlIHNjZW5hcmlvcyBhcmUgbGF0ZXIg
YXBwbGllZCB0bwotLy8gYSBzZXQgb2YgdGVzdCBmdW5jdGlvbnMgb2YgdGhlIGZvcm1zOgotLy8K
LS8vICAgICB2YXJpYWJsZSAtIHZhcmlhYmxlCi0vLyAgICAgY29uc3RhbnQgLSB2YXJpYWJsZQot
Ly8gICAgIHZhcmlhYmxlIC0gY29uc3RhbnQKLS8vCi0vLyBTZWUgZ2VuZXJhdGVTY2VuYXJpb3Mo
KSBhbmQgaW5pdGlhbGl6ZVRlc3RDYXNlcygpIGZvciBkZXRhaWxzIG9uIGhvdyB0aGUgdGVzdAot
Ly8gY2FzZXMgYXJlIGdlbmVyYXRlZC4KLS8vCiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRl
c3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQK
LS8vIGVycm9ycy4KKy8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLXZhciB2ZXJib3NlID0gZmFsc2U7Ci12YXIgYWJvcnRP
bkZpcnN0RmFpbCA9IGZhbHNlOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
KwordmFyIG9wTmFtZSA9ICJzdWIiOwordmFyIG9wID0gIi0iOwogCiB2YXIgbzEgPSB7CiAgICAg
dmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAxMDsgfQogfTsKIAotdmFyIHNldDEgPSBbCit2
YXIgcG9zSW5maW5pdHkgPSAxIC8gMDsKK3ZhciBuZWdJbmZpbml0eSA9IC0xIC8gMDsKKwordmFy
IHZhbHVlcyA9IFsKICAgICAnbzEnLAogICAgICdudWxsJywKICAgICAndW5kZWZpbmVkJywKLSAg
ICAnTmFOJywKLSAgICAnImFiYyInLAotXTsKLQotdmFyIHNldDIgPSBbCi0gICAgJzEwJywKLSAg
ICAnLTEwJywKLSAgICAnMjE0NzQ4MzY0NycsCi0gICAgJy0yMTQ3NDgzNjQ3JywKLSAgICAnNDI5
NDk2NzI5NicsCi0gICAgJy00Mjk0OTY3Mjk2JywKLSAgICAnMTAwLjInLAotICAgICctMTAwLjIn
LAogICAgICd0cnVlJywKICAgICAnZmFsc2UnLAotXTsKIAotLy8gQXNzZW1ibGUgdGhlIHZhbHVl
cyB0aGF0IHdlJ2xsIGJlIHRlc3Rpbmcgd2l0aDoKLXZhciB2YWx1ZXMgPSBbXTsKLWZvciAodmFy
IGkgPSAwOyBpIDwgc2V0MS5sZW5ndGg7IGkrKykKLSAgICB2YWx1ZXMucHVzaChzZXQxW2ldKTsK
LWZvciAodmFyIGkgPSAwOyBpIDwgc2V0Mi5sZW5ndGg7IGkrKykKLSAgICB2YWx1ZXMucHVzaChz
ZXQyW2ldKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgc2V0Mi5sZW5ndGg7IGkrKykKLSAgICB2YWx1
ZXMucHVzaCgnIicgKyBzZXQyW2ldICsgJyInKTsKLQotZnVuY3Rpb24gZ2VuZXJhdGVTY2VuYXJp
b3MoeHZhbHVlcywgeXZhbHVlcykgewotICAgIHZhciBzY2VuYXJpb3MgPSBbXTsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHh2YWx1ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCB5dmFsdWVzLmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICB2YXIgeFN0ciA9
IHh2YWx1ZXNbaV07Ci0gICAgICAgICAgICB2YXIgeVN0ciA9IHl2YWx1ZXNbal07Ci0gICAgICAg
ICAgICB2YXIgeCA9IGV2YWwoeFN0cik7Ci0gICAgICAgICAgICB2YXIgeSA9IGV2YWwoeVN0cik7
Ci0gICAgICAgICAgICB2YXIgbmFtZSA9ICIoIiArIHhTdHIgKyAiIC0gIiArIHlTdHIgKyAiKSI7
Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBldmFsKCIiICsgeFN0ciArICIgLSAiICsgeVN0
cik7Ci0gICAgICAgICAgICB2YXIgc2NlbmFyaW8gPSB7IG5hbWU6IG5hbWUsIHg6IHgsIHk6IHks
IGV4cGVjdGVkOiBleHBlY3RlZCB9OwotCi0gICAgICAgICAgICBzY2VuYXJpb3MucHVzaChzY2Vu
YXJpbyk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHNjZW5hcmlvczsKLX0KLQotZnVu
Y3Rpb24gcHJpbnRTY2VuYXJpb3Moc2NlbmFyaW9zKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzY2VuYXJpb3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdmFyIHNjZW5hcmlvID0gc2NlbmFy
aW9zW2ldOwotICAgICAgICBwcmludCgic2NlbmFyaW9bIiArIGkgKyAiXTogeyBuYW1lOiAiICsg
c2NlbmFyaW8ubmFtZSArICIsIHg6ICIgKyBzY2VuYXJpby54LCAiLCB5OiAiICsgc2NlbmFyaW8u
eSArICIsIGV4cGVjdGVkOiAiICsgc2NlbmFyaW8uZXhwZWN0ZWQgKyAiIH0iKTsKLSAgICB9Ci19
Ci0KLXZhciB0ZXN0Q2FzZXMgPSBbCi0gICAgewotICAgICAgICBuYW1lOiAic3ViIiwKLSAgICAg
ICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAtIHk7IH0sCi0gICAgICAgIHh2YWx1
ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAg
ICAgIG5hbWU6ICJzdWJJMzJWIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1
cm4gMTAgLSB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICcxMCcgXSwKLSAgICAgICAgeXZhbHVl
czogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJWSTMyIiwKLSAgICAg
ICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAtIDEwOyB9LAotICAgICAgICB4dmFs
dWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJzEwJyBdCi0gICAgfSwKLSAgICB7Ci0g
ICAgICAgIG5hbWU6ICJzdWJJMzJvViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsg
cmV0dXJuIC0yMTQ3NDgzNjQ3IC0geTsgfSwKLSAgICAgICAgeHZhbHVlczogWyAnLTIxNDc0ODM2
NDcnIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBu
YW1lOiAic3ViVkkzMm8iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4
IC0gMjE0NzQ4MzY0NzsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFs
dWVzOiBbICcyMTQ3NDgzNjQ3JyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJJ
NTJWIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gNDI5NDk2NzI5NiAt
IHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJzQyOTQ5NjcyOTYnIF0sCi0gICAgICAgIHl2YWx1
ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAic3ViVkk1MiIsCi0gICAg
ICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggLSA0Mjk0OTY3Mjk2OyB9LAotICAg
ICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJzQyOTQ5NjcyOTYnIF0K
LSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogInN1YkRWIiwKLSAgICAgICAgZnVuYzogZnVu
Y3Rpb24oeCwgeSkgeyByZXR1cm4gMTAwLjIgLSB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICcx
MDAuMicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAg
IG5hbWU6ICJzdWJWRCIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHgg
LSAxMDAuMjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBb
ICcxMDAuMicgXQotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAic3ViQlYiLAotICAgICAg
ICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiB0cnVlIC0geTsgfSwKLSAgICAgICAgeHZh
bHVlczogWyAndHJ1ZScgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7
Ci0gICAgICAgIG5hbWU6ICJzdWJWQiIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsg
cmV0dXJuIHggLSB0cnVlOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2
YWx1ZXM6IFsgJ3RydWUnIF0KLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFtZTogInN1YlNpMzJW
IiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gIjEwIiAtIHk7IH0sCi0g
ICAgICAgIHh2YWx1ZXM6IFsgJyIxMCInIF0sCi0gICAgICAgIHl2YWx1ZXM6IHZhbHVlcwotICAg
IH0sCi0gICAgewotICAgICAgICBuYW1lOiAic3ViVlNpMzIiLAotICAgICAgICBmdW5jOiBmdW5j
dGlvbih4LCB5KSB7IHJldHVybiB4IC0gIjEwIjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVz
LAotICAgICAgICB5dmFsdWVzOiBbICciMTAiJyBdCi0gICAgfSwKLQotICAgIHsKLSAgICAgICAg
bmFtZTogInN1YlNpMzJvViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJu
ICItMjE0NzQ4MzY0NyIgLSB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICciLTIxNDc0ODM2NDci
JyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFt
ZTogInN1YlZTaTMybyIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHgg
LSAiMjE0NzQ4MzY0NyI7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZh
bHVlczogWyAnIjIxNDc0ODM2NDciJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJz
dWJTaTUyViIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuICI0Mjk0OTY3
Mjk2IiAtIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyI0Mjk0OTY3Mjk2IicgXSwKLSAgICAg
ICAgeXZhbHVlczogdmFsdWVzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJWU2k1
MiIsCi0gICAgICAgIGZ1bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHggLSAiNDI5NDk2NzI5
NiI7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVlczogWyAnIjQy
OTQ5NjcyOTYiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJTZFYiLAotICAg
ICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAiMTAwLjIiIC0geTsgfSwKLSAgICAg
ICAgeHZhbHVlczogWyAnIjEwMC4yIicgXSwKLSAgICAgICAgeXZhbHVlczogdmFsdWVzCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJWU2QiLAotICAgICAgICBmdW5jOiBmdW5jdGlv
bih4LCB5KSB7IHJldHVybiB4IC0gIjEwMC4yIjsgfSwKLSAgICAgICAgeHZhbHVlczogdmFsdWVz
LAotICAgICAgICB5dmFsdWVzOiBbICciMTAwLjIiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAg
IG5hbWU6ICJzdWJTYlYiLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiAi
dHJ1ZSIgLSB5OyB9LAotICAgICAgICB4dmFsdWVzOiBbICcidHJ1ZSInIF0sCi0gICAgICAgIHl2
YWx1ZXM6IHZhbHVlcwotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAic3ViVlNiIiwKLSAg
ICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAtICJ0cnVlIjsgfSwKLSAgICAg
ICAgeHZhbHVlczogdmFsdWVzLAotICAgICAgICB5dmFsdWVzOiBbICcidHJ1ZSInIF0KLSAgICB9
LAotCi0gICAgewotICAgICAgICBuYW1lOiAic3ViU1YiLAotICAgICAgICBmdW5jOiBmdW5jdGlv
bih4LCB5KSB7IHJldHVybiAiYWJjIiAtIHk7IH0sCi0gICAgICAgIHh2YWx1ZXM6IFsgJyJhYmMi
JyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAgICAgICAgbmFt
ZTogInN1YlZTIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4geCAtICJh
YmMiOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1ZXM6IFsgJyJh
YmMiJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJOViIsCi0gICAgICAgIGZ1
bmM6IGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIG51bGwgLSB5OyB9LAotICAgICAgICB4dmFsdWVz
OiBbICdudWxsJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsKLSAg
ICAgICAgbmFtZTogInN1YlZOIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1
cm4geCAtIG51bGw7IH0sCi0gICAgICAgIHh2YWx1ZXM6IHZhbHVlcywKLSAgICAgICAgeXZhbHVl
czogWyAnbnVsbCcgXQotICAgIH0sCi0gICAgewotICAgICAgICBuYW1lOiAic3ViT1YiLAotICAg
ICAgICBmdW5jOiBmdW5jdGlvbih4LCB5KSB7IHJldHVybiBvMSAtIHk7IH0sCi0gICAgICAgIHh2
YWx1ZXM6IFsgJ28xJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAgIHsK
LSAgICAgICAgbmFtZTogInN1YlZPIiwKLSAgICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyBy
ZXR1cm4geCAtIG8xOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAgIHl2YWx1
ZXM6IFsgJ28xJyBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIG5hbWU6ICJzdWJOYU5WIiwKLSAg
ICAgICAgZnVuYzogZnVuY3Rpb24oeCwgeSkgeyByZXR1cm4gTmFOIC0geTsgfSwKLSAgICAgICAg
eHZhbHVlczogWyAnTmFOJyBdLAotICAgICAgICB5dmFsdWVzOiB2YWx1ZXMKLSAgICB9LAotICAg
IHsKLSAgICAgICAgbmFtZTogInN1YlZOYU4iLAotICAgICAgICBmdW5jOiBmdW5jdGlvbih4LCB5
KSB7IHJldHVybiB4IC0gTmFOOyB9LAotICAgICAgICB4dmFsdWVzOiB2YWx1ZXMsCi0gICAgICAg
IHl2YWx1ZXM6IFsgJ05hTicgXQotICAgIH0sCi1dOworICAgICdOYU4nLAorICAgICdwb3NJbmZp
bml0eScsCisgICAgJ25lZ0luZmluaXR5JywKKyAgICAnMTAwLjInLCAvLyBTb21lIHJhbmRvbSBz
bWFsbCBkb3VibGUgdmFsdWUuCisgICAgJy0xMDAuMicsCisgICAgJzU0Mjk0OTY3Mjk2LjI5MjMn
LCAvLyBTb21lIHJhbmRvbSBsYXJnZSBkb3VibGUgdmFsdWUuCisgICAgJy01NDI5NDk2NzI5Ni4y
OTIzJywKIAotZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RDYXNlcygpIHsKLSAgICBmb3IgKHZhciB0
ZXN0IG9mIHRlc3RDYXNlcykgewotICAgICAgICBub0lubGluZSh0ZXN0LmZ1bmMpOwotICAgICAg
ICB0ZXN0LnNjZW5hcmlvcyA9IGdlbmVyYXRlU2NlbmFyaW9zKHRlc3QueHZhbHVlcywgdGVzdC55
dmFsdWVzKTsKLSAgICB9Ci19Ci1pbml0aWFsaXplVGVzdENhc2VzKCk7Ci0KLXZhciBlcnJvclJl
cG9ydCA9ICIiOwotCi1mdW5jdGlvbiBydW5UZXN0KHRlc3QpIHsKLSAgICB2YXIgZmFpbGVkU2Nl
bmFyaW8gPSBbXTsKLSAgICB2YXIgc2NlbmFyaW9zID0gdGVzdC5zY2VuYXJpb3M7Ci0gICAgdmFy
IHRlc3RGdW5jID0gdGVzdC5mdW5jOwotICAgIHRyeSB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7IGkrKykgewotICAgICAgICAgICAgZm9yICh2YXIgc2NlbmFyaW9JRCA9IDA7
IHNjZW5hcmlvSUQgPCBzY2VuYXJpb3MubGVuZ3RoOyBzY2VuYXJpb0lEKyspIHsKLSAgICAgICAg
ICAgICAgICB2YXIgc2NlbmFyaW8gPSBzY2VuYXJpb3Nbc2NlbmFyaW9JRF07Ci0gICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHByaW50KCJUZXN0aW5nICIg
KyB0ZXN0Lm5hbWUgKyAiOiIgKyBzY2VuYXJpby5uYW1lICsgIiBvbiBpdGVyYXRpb24gIiArIGkg
KyAiOiBleHBlY3RpbmcgIiArIHNjZW5hcmlvLmV4cGVjdGVkKTsgCi0KLSAgICAgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gdGVzdEZ1bmMoc2NlbmFyaW8ueCwgc2NlbmFyaW8ueSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdCA9PSBzY2VuYXJpby5leHBlY3RlZCkKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihyZXN1bHQp
ICYmIE51bWJlci5pc05hTihzY2VuYXJpby5leHBlY3RlZCkpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGlmICghZmFpbGVkU2NlbmFyaW9bc2NlbmFyaW9J
RF0pIHsKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXBvcnQgKz0gIkZBSUw6ICIgKyB0ZXN0
Lm5hbWUgKyAiOiIgKyBzY2VuYXJpby5uYW1lICsgIiBzdGFydGVkIGZhaWxpbmcgb24gaXRlcmF0
aW9uICIgKyBpICsgIjogZXhwZWN0ZWQgIiArIHNjZW5hcmlvLmV4cGVjdGVkICsgIiwgYWN0dWFs
ICIgKyByZXN1bHQgKyAiXG4iOwotICAgICAgICAgICAgICAgICAgICBpZiAoYWJvcnRPbkZpcnN0
RmFpbCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yUmVwb3J0OwotICAgICAg
ICAgICAgICAgICAgICBmYWlsZWRTY2VuYXJpb1tzY2VuYXJpb0lEXSA9IHNjZW5hcmlvOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gY2F0Y2goZSkg
ewotICAgICAgICBpZiAoYWJvcnRPbkZpcnN0RmFpbCkKLSAgICAgICAgICAgIHRocm93IGU7IC8v
IE5lZ2F0ZSB0aGUgY2F0Y2ggYnkgcmUtdGhyb3dpbmcuCi0gICAgICAgIGVycm9yUmVwb3J0ICs9
ICJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUgKyAiXG4iOwotICAgIH0KLX0KKyAgICAnMCcs
CisgICAgJy0wJywKKyAgICAnMScsCisgICAgJy0xJywKKyAgICAnMHgzZmZmJywKKyAgICAnLTB4
M2ZmZicsCisgICAgJzB4N2ZmZicsCisgICAgJy0weDdmZmYnLAorICAgICcweDEwMDAwJywKKyAg
ICAnLTB4MTAwMDAnLAorICAgICcweDdmZmZmZmYnLAorICAgICctMHg3ZmZmZmZmJywKKyAgICAn
MHgxMDAwMDAwMDAnLAorICAgICctMHgxMDAwMDAwMDAnLAorCisgICAgJyJhYmMiJywKKyAgICAn
IjAiJywKKyAgICAnIi0wIicsCisgICAgJyIxIicsCisgICAgJyItMSInLAorICAgICciMHgzZmZm
IicsCisgICAgJyItMHgzZmZmIicsCisgICAgJyIweDdmZmYiJywKKyAgICAnIi0weDdmZmYiJywK
KyAgICAnIjB4MTAwMDAiJywKKyAgICAnIi0weDEwMDAwIicsCisgICAgJyIweDdmZmZmZmYiJywK
KyAgICAnIi0weDdmZmZmZmYiJywKKyAgICAnIjB4MTAwMDAwMDAwIicsCisgICAgJyItMHgxMDAw
MDAwMDAiJywKK107CiAKLWZvciAodmFyIHRlc3Qgb2YgdGVzdENhc2VzKQotICAgIHJ1blRlc3Qo
dGVzdCk7Cit0ZXN0cyA9IFtdOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBv
cCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKK2dlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKIAot
aWYgKGVycm9yUmVwb3J0ICE9PSAiIikKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6XG4i
ICsgZXJyb3JSZXBvcnQ7CitydW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvb3BfdXJzaGlmdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3NyBAQAorLy9AIHJ1bkZUTE5vQ0pJVAorCisvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKKy8vIGVycm9ycy4KKworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
KwordmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKK3ZhciBvcCA9ICI+Pj4iOworCit2YXIgbzEgPSB7
CisgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiAxMDsgfQorfTsKKwordmFyIHBvc0lu
ZmluaXR5ID0gMSAvIDA7Cit2YXIgbmVnSW5maW5pdHkgPSAtMSAvIDA7CisKK3ZhciB2YWx1ZXMg
PSBbCisgICAgJ28xJywKKyAgICAnbnVsbCcsCisgICAgJ3VuZGVmaW5lZCcsCisgICAgJ3RydWUn
LAorICAgICdmYWxzZScsCisKKyAgICAnTmFOJywKKyAgICAncG9zSW5maW5pdHknLAorICAgICdu
ZWdJbmZpbml0eScsCisgICAgJzEwMC4yJywgLy8gU29tZSByYW5kb20gc21hbGwgZG91YmxlIHZh
bHVlLgorICAgICctMTAwLjInLAorICAgICc1NDI5NDk2NzI5Ni4yOTIzJywgLy8gU29tZSByYW5k
b20gbGFyZ2UgZG91YmxlIHZhbHVlLgorICAgICctNTQyOTQ5NjcyOTYuMjkyMycsCisKKyAgICAn
MCcsCisgICAgJy0wJywKKyAgICAnMScsCisgICAgJy0xJywKKyAgICAnNScsCisgICAgJy01JywK
KyAgICAnMzEnLAorICAgICctMzEnLAorICAgICczMicsCisgICAgJy0zMicsCisgICAgJzB4M2Zm
ZicsCisgICAgJy0weDNmZmYnLAorICAgICcweDdmZmYnLAorICAgICctMHg3ZmZmJywKKyAgICAn
MHgxMDAwMCcsCisgICAgJy0weDEwMDAwJywKKyAgICAnMHg3ZmZmZmZmJywKKyAgICAnLTB4N2Zm
ZmZmZicsCisgICAgJzB4MTAwMDAwMDAwJywKKyAgICAnLTB4MTAwMDAwMDAwJywKKworICAgICci
YWJjIicsCisgICAgJyIwIicsCisgICAgJyItMCInLAorICAgICciMSInLAorICAgICciLTEiJywK
KyAgICAnIjUiJywKKyAgICAnIi01IicsCisgICAgJyIzMSInLAorICAgICciLTMxIicsCisgICAg
JyIzMiInLAorICAgICciLTMyIicsCisgICAgJyIweDNmZmYiJywKKyAgICAnIi0weDNmZmYiJywK
K107CisKK3Rlc3RzID0gW107CitnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9w
LCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOworZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOworCity
dW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzEgQEAKKy8vIFRoaXMgdGVzdCBtb2R1
bGUgcHJvdmlkZXMgaW5mcmFzdHJ1Y3R1cmUgZm9yIGdlbmVyYXRpbmcgYW5kIHJ1bm5pbmcgdGVz
dHMgb24gYSBiaW5hcnkKKy8vIG9wZXJhdG9yLgorLy8KKy8vIEl0IHdvcmtzIGJ5IGdlbmVyYXRp
bmcgdGVzdCBmdW5jdGlvbnMgdG8gZXhlcmNpc2UgdGhlIHNwZWNpZmllZCBvcGVyYXRvciB1c2lu
ZworLy8gZnJvbSBwZXJtdXRhdGlvbnMgb2Ygb3BlcmFuZCB2YWx1ZSBwYWlycy4gRm9yIGVhY2gg
dGVzdCwgaXQgY29tcHV0ZXMgdGhlIGV4cGVjdGVkCisvLyByZXN1bHQgYnkgZXhlcmNpc2luZyB0
aGUgdGVzdCBmdW5jdGlvbiBvbmNlICh1c2luZyB0aGUgTExJTlQpIGF0IHRlc3QgZ2VuZXJhdGlv
biB0aW1lLgorLy8gVGhlIHRlc3QgcnVubmVyIGxhdGVyIGNvbXBhcmVzIHRoZSByZXN1bHQgcHJv
ZHVjZWQgYnkgdGhlIGZ1bmN0aW9uIChhcyBpdCB0aWVycyB1cCkKKy8vIGFnYWluc3QgdGhlIGV4
cGVjdGVkIHJlc3VsdC4KKy8vCisvLyBUaGUgZ2VuZXJhdGVkIHRlc3RzIGNhbiBleGVyY2lzZSB0
aGUgb3BlcmF0b3IgdXNpbmcgdGhlIGZvbGxvd2luZyBvcGVyYW5kIHR5cGVzLgorLy8gICAgIHZh
cmlhYmxlICogdmFyaWFibGUKKy8vICAgICBjb25zdGFudCAqIHZhcmlhYmxlCisvLyAgICAgdmFy
aWFibGUgKiBjb25zdGFudAorLy8KKy8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAorLy8gZXJy
b3JzLgorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIERlYnVnZ2luZyBvcHRpb25zOgorCit2
YXIgdmVyYm9zZSA9IGZhbHNlOwordmFyIGFib3J0T25GaXJzdEZhaWwgPSBmYWxzZTsKK3ZhciB0
ZXN0RmlsdGVyU3RyID0gdW5kZWZpbmVkOyAvLyBEZWZpbmUgYSBmaWx0ZXIgc3RyaW5nIHRvIGZp
bHRlciB0ZXN0cyB0byBydW4uCisKK3ZhciB2ZXJib3NlVGVzdEdlbmVyYXRpb24gPSBmYWxzZTsK
KworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUZXN0IGdlbmVyYXRpb246CisKK2Z1bmN0aW9u
IHN0cmluZ2lmeUlmTmVlZGVkKHgpIHsKKyAgICBpZiAodHlwZW9mIHggPT0gInN0cmluZyIpCisg
ICAgICAgIHJldHVybiAnIicgKyB4ICsgJyInOworICAgIHJldHVybiB4OworfQorCisvLyBvcGVy
YW5kVHlwZXMgYXJlICJWYXJWYXIiLCAiVmFyQ29uc3QiLCBhbmQgIkNvbnN0VmFyIi4KK2Z1bmN0
aW9uIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsIG9wZXJhbmRUeXBlcywg
bGVmdFZhbHVlcywgcmlnaHRWYWx1ZXMpIHsKKyAgICB2YXIgZnVuY05hbWUgPSBvcE5hbWUgKyBv
cGVyYW5kVHlwZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZWZ0VmFsdWVzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgcmlnaHRWYWx1ZXMubGVuZ3RoOyBq
KyspIHsKKyAgICAgICAgICAgIHZhciB0ZXN0ID0geyB9OworICAgICAgICAgICAgeFN0ciA9IGxl
ZnRWYWx1ZXNbaV07CisgICAgICAgICAgICB5U3RyID0gcmlnaHRWYWx1ZXNbal07CisgICAgICAg
ICAgICB0ZXN0LnggPSBldmFsKHhTdHIpOworICAgICAgICAgICAgdGVzdC55ID0gZXZhbCh5U3Ry
KTsKKworICAgICAgICAgICAgaWYgKG9wZXJhbmRUeXBlcyA9PSAiVmFyVmFyIikgeworICAgICAg
ICAgICAgICAgIHRlc3Quc2lnbmF0dXJlID0gZnVuY05hbWUgKyAiKHgsIHkpIHsgcmV0dXJuIHgg
IiArIG9wICsgIiB5IH0iOworICAgICAgICAgICAgICAgIHRlc3QubmFtZSA9IHRlc3Quc2lnbmF0
dXJlICsgIiB3aXRoIHg6IiArIHhTdHIgKyAiLCB5OiIgKyB5U3RyOworICAgICAgICAgICAgfSBl
bHNlIGlmIChvcGVyYW5kVHlwZXMgPT0gIlZhckNvbnN0IikgeworICAgICAgICAgICAgICAgIHRl
c3Quc2lnbmF0dXJlID0gZnVuY05hbWUgKyAiKHgsIF8pIHsgcmV0dXJuIHggIiArIG9wICsgIiAi
ICsgeVN0ciArICIgfSI7CisgICAgICAgICAgICAgICAgdGVzdC5uYW1lID0gdGVzdC5zaWduYXR1
cmUgKyAiIHdpdGggeDoiICsgeFN0cjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3BlcmFuZFR5
cGVzID09ICJDb25zdFZhciIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0LnNpZ25hdHVyZSA9IGZ1
bmNOYW1lICsgIihfLCB5KSB7IHJldHVybiAiICsgeFN0ciArICIgIiArIG9wICsgIiB5IH0iOwor
ICAgICAgICAgICAgICAgIHRlc3QubmFtZSA9IHRlc3Quc2lnbmF0dXJlICsgIiB3aXRoIHk6IiAr
IHlTdHI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3QuZnVuYyA9IGV2YWwoIihm
dW5jdGlvbiAiICsgdGVzdC5zaWduYXR1cmUgKyAiKSIpOworICAgICAgICAgICAgbm9JbmxpbmUo
dGVzdC5mdW5jKTsKKworICAgICAgICAgICAgdGVzdC5leHBlY3RlZFJlc3VsdCA9IHRlc3QuZnVu
Yyh0ZXN0LngsIHRlc3QueSk7CisgICAgICAgICAgICB0ZXN0Lm5hbWUgKz0gIiwgZXhwZWN0ZWQ6
IiArIHN0cmluZ2lmeUlmTmVlZGVkKHRlc3QuZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgICAg
ICB0ZXN0cy5wdXNoKHRlc3QpOworICAgICAgICAgICAgaWYgKHZlcmJvc2VUZXN0R2VuZXJhdGlv
bikKKyAgICAgICAgICAgICAgICBwcmludCgiR2VuZXJhdGVkICIgKyB0ZXN0Lm5hbWUpOworICAg
ICAgICB9CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3QgcnVubmlu
ZyBhbmQgcmVwb3J0aW5nOgorCit2YXIgZXJyb3JSZXBvcnQgPSAiIjsKKworZnVuY3Rpb24gaXNJ
ZGVudGljYWwoeCwgeSkgeworICAgIGlmICh0eXBlb2YgeCAhPSB0eXBlb2YgeSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICh4ID09IHkpIHsKKyAgICAgICAgaWYgKHgpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gRGlzdGluZ3Vpc2ggYmV0d2VlbiAwIGFuZCBu
ZWdhdGl2ZSAwLgorICAgICAgICBpZiAoMSAvIHggPT0gMSAvIHkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKE51bWJlci5pc05hTih4KSAmJiBOdW1iZXIuaXNOYU4o
eSkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCh0ZXN0KSB7CisgICAgaWYgKHRlc3RGaWx0ZXJTdHIgJiYgIXRlc3QubmFtZS5p
bmNsdWRlcyh0ZXN0RmlsdGVyU3RyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIGZpcnN0
RmFpbGVkID0gLTE7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICBwcmludCh0ZXN0Lm5hbWUpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBp
KyspIHsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSB0ZXN0LmZ1bmModGVzdC54LCB0ZXN0Lnkp
OworICAgICAgICAgICAgaWYgKGlzSWRlbnRpY2FsKHJlc3VsdCwgdGVzdC5leHBlY3RlZFJlc3Vs
dCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoZmlyc3RGYWls
ZWQgPCAwKSB7CisgICAgICAgICAgICAgICAgZXJyb3JSZXBvcnQgKz0gIkZBSUxFRDogIiArIHRl
c3QubmFtZSArICIgc3RhcnRlZCBmYWlsaW5nIG9uIGl0ZXJhdGlvbiAiICsgaQorICAgICAgICAg
ICAgICAgICAgICArICI6IGFjdHVhbCAiICsgc3RyaW5naWZ5SWZOZWVkZWQocmVzdWx0KSArICJc
biI7CisgICAgICAgICAgICAgICAgaWYgKGFib3J0T25GaXJzdEZhaWwpCisgICAgICAgICAgICAg
ICAgICAgIHRocm93IGVycm9yUmVwb3J0OworICAgICAgICAgICAgICAgIGZpcnN0RmFpbGVkID0g
aTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gY2F0Y2goZSkgeworICAgICAgICBp
ZiAoYWJvcnRPbkZpcnN0RmFpbCkKKyAgICAgICAgICAgIHRocm93IGU7IC8vIE5lZ2F0ZSB0aGUg
Y2F0Y2ggYnkgcmUtdGhyb3dpbmcuCisgICAgICAgIGVycm9yUmVwb3J0ICs9ICJGQUlMRUQ6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZSArICJcbiI7CisgICAgfQorfQorCitmdW5jdGlvbiBy
dW4oKSB7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHByaW50KCJTdGFydCB0ZXN0aW5nIik7
CisKKyAgICBmb3IgKHZhciB0ZXN0IG9mIHRlc3RzKQorICAgICAgICBydW5UZXN0KHRlc3QpOwor
ICAgIC8vIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgLy8gICAg
IHJ1blRlc3QodGVzdHNbaV0pOworCisgICAgaWYgKGVycm9yUmVwb3J0ICE9PSAiIikKKyAgICAg
ICAgdGhyb3cgIkZvdW5kIGZhaWx1cmVzOlxuIiArIGVycm9yUmVwb3J0OworCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIHByaW50KCJEb25lIHRlc3RpbmciKTsKK30K
</data>
<flag name="review"
          id="290929"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>