<?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>94001</bug_id>
          
          <creation_ts>2012-08-14 10:53:21 -0700</creation_ts>
          <short_desc>Web Inspector: split standalone test runner, test scanner and test stub.</short_desc>
          <delta_ts>2012-08-15 03:10:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>695148</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-14 10:53:21 -0700</bug_when>
    <thetext>This change allows opening a) test runner, b) layout tests and c) inspector front-end off different hosts. It is one more step towards extension-driven runner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695156</commentid>
    <comment_count>1</comment_count>
      <attachid>158370</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-14 10:59:28 -0700</bug_when>
    <thetext>Created attachment 158370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695881</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-15 03:10:31 -0700</bug_when>
    <thetext>Committed r125661: &lt;http://trac.webkit.org/changeset/125661&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158370</attachid>
            <date>2012-08-14 10:59:28 -0700</date>
            <delta_ts>2012-08-15 03:09:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94001-20120814215855.patch</filename>
            <type>text/plain</type>
            <size>24434</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVhOTBjYWI2ODE3YWZj
MTc3YjViNGIzMjRmZDE2NjQ0ZDU5M2IyNS4uMTEwMDhkNTNkYzc0YTgyYWFiZmVlZTljZjY0MTBk
MTgwZmM4NDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTA4LTE0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNwbGl0IHN0YW5kYWxvbmUgdGVzdCBydW5uZXIsIHRlc3Qgc2Nhbm5lciBhbmQgdGVzdCBz
dHViLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQw
MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBzdGFydHMgc2VuZGluZyBsb2FjQ29tcGxldGVkIG1lc3NhZ2UgdG8gdGhlIGVtYmVk
ZGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qczoKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQVBJLmxvYWRDb21wbGV0ZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdGVzdC1ydW5uZXIuaHRtbDogQWRkZWQuCisKKzIw
MTItMDgtMTQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogYWRkIGV4dGVybmFsIHRlc3QgcnVubmVyIGZvciBydW5uaW5nIGlu
c3BlY3RvciBmcm9udC1lbmQgdGVzdHMgd2l0aCBubyBUZXN0UnVubmVyIGluZnJhc3RydWN0dXJl
LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM4MzMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0
b3JGcm9udGVuZEFQSS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5z
cGVjdG9yRnJvbnRlbmRBUEkuanMKaW5kZXggYTA5OWNhMzAyZWQ2MjMwMjFjODdiOGIyZmNiZjEy
OTE1ZTg3NTdmMS4uNDczMjY3MDkxNWIyYzMxYmY4Mjc0YjRmYTkyYTQ4NWQ2ZmM1NjM1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9u
dGVuZEFQSS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3Bl
Y3RvckZyb250ZW5kQVBJLmpzCkBAIC0xNDAsNiArMTQwLDggQEAgSW5zcGVjdG9yRnJvbnRlbmRB
UEkgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgSW5zcGVjdG9yRnJvbnRlbmRBUEku
X3BlbmRpbmdDb21tYW5kcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIEluc3BlY3RvckZyb250
ZW5kQVBJLmRpc3BhdGNoKEluc3BlY3RvckZyb250ZW5kQVBJLl9wZW5kaW5nQ29tbWFuZHNbaV0p
OwogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEFQSS5fcGVuZGluZ0NvbW1hbmRzID0gW107Cisg
ICAgICAgIGlmICh3aW5kb3cub3BlbmVyKQorICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0
TWVzc2FnZShbImxvYWRDb21wbGV0ZWQiXSwgIioiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGVzdC1ydW5uZXIuaHRtbCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGVzdC1ydW5uZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lODNiMDgxMGRlNDU4NjYwYWUzNjMwZTZkZjA4MDc2MTgwZWU1ZTlmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90ZXN0LXJ1bm5lci5o
dG1sCkBAIC0wLDAgKzEsMzAwIEBACis8aHRtbD4KKzxzY3JpcHQgc3JjPSJqc2RpZmZsaWIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRE9NRXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0cmVlb3V0bGlu
ZS5qcyI+PC9zY3JpcHQ+CisKKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3Mi
IGhyZWY9Imluc3BlY3Rvci5jc3MiPgorPHN0eWxlPgorOmZvY3VzIHsKKyAgICBvdXRsaW5lOiBu
b25lOworfQorCisuZmFpbGVkIHsKKyAgICBjb2xvcjogcmVkOworfQorCisudGltZW91dCB7Cisg
ICAgY29sb3I6IGJyb3duOworfQorCitpZnJhbWUgeworICAgIHdpZHRoOiAwOworICAgIGhlaWdo
dDogMDsKKyAgICBvcGFjaXR5OiAwOworfQorCis8L3N0eWxlPgorCis8c2NyaXB0PgorCit2YXIg
dGVzdHMgPSBbXTsKK3ZhciBza2lwTGlzdCA9IFsKKyAgICAvLyBIQUxUCisgICAgImluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtYXBpLW9uLWNhbGwtZnJhbWUuaHRtbCIsCisKKyAgICAvLyBGQUlM
RUQKKyAgICAiaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwiLAorICAg
ICJpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy10b1N0cmluZy1vYmplY3QuaHRtbCIsCisg
ICAgImluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdW5jYXVnaHQtZXhjZXB0aW9uLWluLWV2YWwu
aHRtbCIsCisgICAgImluc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWwiLAor
ICAgICJpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLmh0bWwiLAorICAg
ICJpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2Nyb2xsLmh0bWwiLAorICAgICJp
bnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUuaHRtbCIsCisgICAgImluc3BlY3Rvci9l
bGVtZW50cy9oaWdobGlnaHQtc3ZnLXJvb3QuaHRtbCIsCisgICAgImluc3BlY3Rvci9uZXR3b3Jr
LXN0YXR1cy1ub24taHR0cC5odG1sIiwKKyAgICAiaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9t
LXN0b3JhZ2UtdXBkYXRlLmh0bWwiLAorICAgICJpbnNwZWN0b3Ivc3R5bGVzL2luamVjdC1zdHls
ZXNoZWV0Lmh0bWwiLAorICAgICJpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25z
LWNvbW1hbmRzLmh0bWwiLAorICAgICJpbnNwZWN0b3Ivc3R5bGVzL3JlZ2lvbi1zdHlsZS1jcmFz
aC5odG1sIiwKKyAgICAiaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZGlzYWJsZS10aGVuLWVuYWJs
ZS1vdmVycmlkZW4tdWEuaHRtbCIsCisgICAgImluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVybC1s
aW5raWZ5Lmh0bWwiLAorICAgICJpbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1s
IiwKKyAgICAiaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWwi
LAorICAgICJpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZnJhbWVzLmh0bWwiLAorICAgICJp
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5odG1sIiwKKyAgICAi
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50Lmh0bWwiLAorICAgICJpbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtcmVjZWl2ZS1yZXNwb25zZS1ldmVudC5odG1sIiwKKworICAgIC8v
IFRJTUVPVVQKKyAgICAiaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmct
d2l0aG91dC1pbnNwZWN0b3IuaHRtbCIsCisgICAgImluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbCIsCisgICAgImluc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1uZXR3b3JrLXJlY2VpdmVkLWRhdGEuaHRtbCIsCitdOwordmFyIHRyZWVPdXRs
aW5lID0gbnVsbDsKKworZnVuY3Rpb24gcnVuKGRlYnVnKQoreworICAgIHZhciBpZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3JjID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvdGVzdC1zY2FubmVyLmh0bWwiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lKTsKKyAgICB3aW5kb3cuZGVidWcgPSBkZWJ1ZzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMo
KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRsaW5lIikucmVtb3ZlQ2hpbGRy
ZW4oKTsKKyAgICB0cmVlT3V0bGluZSA9IG5ldyBUcmVlT3V0bGluZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0bGluZSIpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXNz
IikudGV4dENvbnRlbnQgPSAwOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJza2lwIiku
dGV4dENvbnRlbnQgPSAwOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmYWlsIikudGV4
dENvbnRlbnQgPSAwOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1lb3V0IikudGV4
dENvbnRlbnQgPSAwOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZW1haW5pbmciKS50
ZXh0Q29udGVudCA9IHRlc3RzLmxlbmd0aDsKKworICAgIHJ1bk5leHRUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIGludGVycnVwdCgpCit7CisgICAgdGVzdHMgPSBbXTsKK30KKworZnVuY3Rpb24gcnVu
TmV4dFRlc3QobGFzdFJlc3VsdCkKK3sKKyAgICBpZiAobGFzdFJlc3VsdCkgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RSZXN1bHQpOworICAgICAg
ICBlbGVtZW50LnRleHRDb250ZW50ID0gcGFyc2VJbnQoZWxlbWVudC50ZXh0Q29udGVudCkgKyAx
OworCisgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVtYWluaW5n
Iik7CisgICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBwYXJzZUludChlbGVtZW50LnRleHRD
b250ZW50KSAtIDE7CisgICAgICAgIGlmICh3aW5kb3cuZGVidWcpCisgICAgICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgdmFyIHRlc3Q7CisgICAgdmFyIGZpbHRlciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmaWx0ZXIiKS52YWx1ZTsKKyAgICB3aGlsZSAodGVzdCA9IHRlc3RzLnNo
aWZ0KCkpIHsKKyAgICAgICAgaWYgKCFmaWx0ZXIgfHwgdGVzdFswXS5tYXRjaChmaWx0ZXIpKSB7
CisgICAgICAgICAgICBuZXcgU3RhbmRhbG9uZVRlc3RSdW5uZXIoImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMSIgKyB0ZXN0WzBdLCB0ZXN0WzFdLCBydW5OZXh0VGVzdC5iaW5kKG51bGwpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gU3RhbmRhbG9u
ZVRlc3RSdW5uZXIodGVzdFBhdGgsIGV4cGVjdGVkLCBuZXh0KQoreworICAgIHRoaXMuX3Rlc3RQ
YXRoID0gdGVzdFBhdGg7CisgICAgdGhpcy5fbmV4dCA9IG5leHQ7CisgICAgdGhpcy5fZXhwZWN0
ZWQgPSBleHBlY3RlZDsKKyAgICB0aGlzLl9wZW5kaW5nTWVzc2FnZXMgPSBbXTsKKworICAgIHRo
aXMuX3RyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KHRlc3RQYXRoKTsKKyAgICB0cmVlT3V0
bGluZS5hcHBlbmRDaGlsZCh0aGlzLl90cmVlRWxlbWVudCk7CisKKyAgICBmb3IgKHZhciBpID0g
MDsgIXdpbmRvdy5kZWJ1ZyAmJiBpIDwgc2tpcExpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
aWYgKHRlc3RQYXRoLmluZGV4T2Yoc2tpcExpc3RbaV0pICE9PSAtMSkgeworICAgICAgICAgICAg
dGhpcy5fdHJlZUVsZW1lbnQudGl0bGUgPSB0ZXN0UGF0aCArICI6IFNLSVBQRUQiOworICAgICAg
ICAgICAgdGhpcy5fbmV4dCgic2tpcCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQorCisgICAgdGhpcy5fdGVzdFBhZ2UgPSB3aW5kb3cub3BlbigiYWJvdXQ6Ymxhbmsi
LCAiaW5zcGVjdGVkIiwgIndpZHRoPTgwMCxoZWlnaHQ9NjAwIik7CisKKyAgICB3aW5kb3cucmVt
b3RlRGVidWdnaW5nSGFuZHNoYWtlID0gdGhpcy5fcmVtb3RlRGVidWdnaW5nSGFuZHNoYWtlLmJp
bmQodGhpcyk7CisgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpOworICAgIHNjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo5MjIyL2pzb24/anNvbnA9
cmVtb3RlRGVidWdnaW5nSGFuZHNoYWtlIjsKKyAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxk
KHNjcmlwdCk7Cit9CisKK1N0YW5kYWxvbmVUZXN0UnVubmVyLkZyb250ZW5kTG9jYXRpb24gPSAi
aW5zcGVjdG9yLmh0bWwiOworCitTdGFuZGFsb25lVGVzdFJ1bm5lci5wcm90b3R5cGUgPSB7Cisg
ICAgX3JlbW90ZURlYnVnZ2luZ0hhbmRzaGFrZTogZnVuY3Rpb24oZGF0YSkKKyAgICB7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
aWYgKGRhdGFbaV0udXJsICE9PSAiYWJvdXQ6YmxhbmsiKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgdGhpcy5fZGVidWdnZXJVUkwgPSBkYXRhW2ldLndlYlNvY2tldERl
YnVnZ2VyVXJsLnJlcGxhY2UoIjovLyIsICI9Iik7CisgICAgICAgICAgICB0aGlzLl9vcGVuVGVz
dFBhZ2UoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfSwKKworICAgIF9v
cGVuVGVzdFBhZ2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHdpbmRvdy5ydW5uZXIgPSB0
aGlzOworICAgICAgICB0aGlzLl90ZXN0UGFnZS5sb2NhdGlvbi5ocmVmID0gdGhpcy5fdGVzdFBh
dGg7CisgICAgICAgIHRoaXMuX2luc3BlY3RvcldpbmRvd0xvYWRpbmcgPSB3aW5kb3cub3BlbihT
dGFuZGFsb25lVGVzdFJ1bm5lci5Gcm9udGVuZExvY2F0aW9uICsgIj8iICsgdGhpcy5fZGVidWdn
ZXJVUkwsICJpbnNwZWN0b3IiLCAid2lkdGg9NjAwLGhlaWdodD00MDAiKTsKKyAgICAgICAgdGhp
cy5fd2F0Y2hEb2cgPSBzZXRUaW1lb3V0KHRoaXMuX3RpbWVvdXQuYmluZCh0aGlzKSwgMTAwMDAp
OworICAgIH0sCisKKyAgICBsb2FkQ29tcGxldGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB0aGlzLl9pbnNwZWN0b3JXaW5kb3cgPSB0aGlzLl9pbnNwZWN0b3JXaW5kb3dMb2FkaW5nOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3BlbmRpbmdNZXNzYWdlcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2luc3BlY3RvcldpbmRvdy5wb3N0TWVzc2FnZSh0aGlz
Ll9wZW5kaW5nTWVzc2FnZXNbaV0sICIqIik7CisgICAgICAgIHRoaXMuX3BlbmRpbmdNZXNzYWdl
cyA9IFtdOworICAgIH0sCisKKyAgICBjbG9zZVdlYkluc3BlY3RvcjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuZGVidWcpCisgICAgICAgICAgICB0aGlzLl9pbnNwZWN0
b3JXaW5kb3cuY2xvc2UoKTsKKyAgICB9LAorCisgICAgbm90aWZ5RG9uZTogZnVuY3Rpb24oYWN0
dWFsKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2RvbmUpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXMuX2RvbmUgPSB0cnVlOworICAgICAgICBkZWxldGUgd2luZG93LnJ1bm5l
cjsKKworICAgICAgICBpZiAoIXdpbmRvdy5kZWJ1ZykgeworICAgICAgICAgICAgdGhpcy5fdGVz
dFBhZ2UuY2xvc2UoKTsKKyAgICAgICAgICAgIHRoaXMuX2luc3BlY3RvcldpbmRvdy5jbG9zZSgp
OworICAgICAgICB9CisgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl93YXRjaERvZyk7CisKKyAg
ICAgICAgaWYgKGFjdHVhbCA9PT0gdGhpcy5fZXhwZWN0ZWQgfHwgYWN0dWFsID09PSB0aGlzLl9l
eHBlY3RlZCArICJcbiIpIHsKKyAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LnRpdGxlID0g
dGhpcy5fdGVzdFBhdGggKyAiOiBTVUNDRVNTIjsKKyAgICAgICAgICAgIHRoaXMuX25leHQoInBh
c3MiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3Ry
ZWVFbGVtZW50LnRpdGxlID0gdGhpcy5fdGVzdFBhdGggKyAiOiBGQUlMRUQiOworICAgICAgICB0
aGlzLl90cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZmFpbGVkIik7
CisKKyAgICAgICAgdmFyIGJhc2VMaW5lcyA9IGRpZmZsaWIuc3RyaW5nQXNMaW5lcyh0aGlzLl9l
eHBlY3RlZCk7CisgICAgICAgIHZhciBuZXdMaW5lcyA9IGRpZmZsaWIuc3RyaW5nQXNMaW5lcyhh
Y3R1YWwpOworICAgICAgICB2YXIgc20gPSBuZXcgZGlmZmxpYi5TZXF1ZW5jZU1hdGNoZXIoYmFz
ZUxpbmVzLCBuZXdMaW5lcyk7CisgICAgICAgIHZhciBvcGNvZGVzID0gc20uZ2V0X29wY29kZXMo
KTsKKyAgICAgICAgdmFyIGxhc3RXYXNTZXBhcmF0b3IgPSBmYWxzZTsKKworICAgICAgICBmb3Ig
KHZhciBpZHggPSAwOyBpZHggPCBvcGNvZGVzLmxlbmd0aDsgaWR4KyspIHsKKyAgICAgICAgICAg
IHZhciBjb2RlID0gb3Bjb2Rlc1tpZHhdOworICAgICAgICAgICAgdmFyIGNoYW5nZSA9IGNvZGVb
MF07CisgICAgICAgICAgICB2YXIgYiA9IGNvZGVbMV07CisgICAgICAgICAgICB2YXIgYmUgPSBj
b2RlWzJdOworICAgICAgICAgICAgdmFyIG4gPSBjb2RlWzNdOworICAgICAgICAgICAgdmFyIG5l
ID0gY29kZVs0XTsKKyAgICAgICAgICAgIHZhciByb3dDb3VudCA9IE1hdGgubWF4KGJlIC0gYiwg
bmUgLSBuKTsKKyAgICAgICAgICAgIHZhciB0b3BSb3dzID0gW107CisgICAgICAgICAgICB2YXIg
Ym90dG9tUm93cyA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dDb3Vu
dDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSA9PT0gImRlbGV0ZSIgfHwgKGNo
YW5nZSA9PT0gInJlcGxhY2UiICYmIGIgPCBiZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IGxpbmVOdW1iZXIgPSBiKys7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50
LmFwcGVuZENoaWxkKG5ldyBUcmVlRWxlbWVudCgiLSBbIiArIGxpbmVOdW1iZXIgKyAiXSAiICsg
YmFzZUxpbmVzW2xpbmVOdW1iZXJdKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgaWYgKGNoYW5nZSA9PT0gImluc2VydCIgfHwgKGNoYW5nZSA9PT0gInJlcGxhY2UiICYm
IG4gPCBuZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBuKys7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LmFwcGVuZENoaWxkKG5ldyBUcmVl
RWxlbWVudCgiKyBbIiArIGxpbmVOdW1iZXIgKyAiXSAiICsgbmV3TGluZXNbbGluZU51bWJlcl0p
KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY2hhbmdlID09PSAi
ZXF1YWwiKSB7CisgICAgICAgICAgICAgICAgICAgIGIrKzsKKyAgICAgICAgICAgICAgICAgICAg
bisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIHRoaXMuX25leHQoImZhaWwiKTsKKyAgICB9LAorCisgICAgZXZhbHVhdGVJbldlYkluc3Bl
Y3RvcjogZnVuY3Rpb24oY2FsbElkLCBzY3JpcHQpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
aW5zcGVjdG9yV2luZG93KQorICAgICAgICAgICAgdGhpcy5faW5zcGVjdG9yV2luZG93LnBvc3RN
ZXNzYWdlKFsiZXZhbHVhdGVGb3JUZXN0IiwgY2FsbElkLCBzY3JpcHRdLCAiKiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9wZW5kaW5nTWVzc2FnZXMucHVzaChbImV2YWx1YXRl
Rm9yVGVzdCIsIGNhbGxJZCwgc2NyaXB0XSk7CisgICAgfSwKKworICAgIF90aW1lb3V0OiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB0aGlzLl90cmVlRWxlbWVudC50aXRsZSA9IHRoaXMuX3Rl
c3RQYXRoICsgIjogVElNRU9VVCI7CisgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50Lmxpc3RJdGVt
RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0aW1lb3V0Iik7CisgICAgICAgIHRoaXMuX2RvbmUgPSB0
cnVlOworICAgICAgICBpZiAoIXdpbmRvdy5kZWJ1ZykgeworICAgICAgICAgICAgdGhpcy5fdGVz
dFBhZ2UuY2xvc2UoKTsKKyAgICAgICAgICAgIHRoaXMuX2luc3BlY3RvcldpbmRvdy5jbG9zZSgp
OworICAgICAgICB9CisgICAgICAgIHRoaXMuX25leHQoInRpbWVvdXQiKTsKKyAgICB9LAorCisg
ICAgZGlzcGxheTogZnVuY3Rpb24oKSB7IH0KK30KKworZnVuY3Rpb24gb25NZXNzYWdlRnJvbVRl
c3RQYWdlKGV2ZW50KQoreworICAgIHZhciBzaWduYXR1cmUgPSBldmVudC5kYXRhOworICAgIHZh
ciBtZXRob2QgPSBzaWduYXR1cmUuc2hpZnQoKTsKKyAgICBpZiAobWV0aG9kID09PSAidGVzdHMi
KSB7CisgICAgICAgIHRlc3RzID0gc2lnbmF0dXJlWzBdOworICAgICAgICBydW5UZXN0cygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJ1bm5lcikKKyAgICAgICAgcnVubmVy
W21ldGhvZF0uYXBwbHkocnVubmVyLCBzaWduYXR1cmUpOworfQorCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIG9uTWVzc2FnZUZyb21UZXN0UGFnZSwgdHJ1ZSk7CisKKzwvc2Ny
aXB0PgorPGJvZHk+CitUaGlzIGlzIGEgc3RhbmRhbG9uZSB0ZXN0IHN1aXRlIGZvciBpbnNwZWN0
b3IgZnJvbnQtZW5kLiBIZXJlIGlzIGhvdyB5b3UgcnVuIGl0OgorPHVsPgorPGxpPkNoZWNrIG91
dCBXZWJLaXQgc291cmNlIHRyZWU6IGdpdCBjbG9uZSBodHRwOi8vZ2l0LmNocm9taXVtLm9yZy9l
eHRlcm5hbC9XZWJraXQuZ2l0PC9saT4KKzxsaT5SdW4gIlRvb2xzL1NjcmlwdHMvbmV3LXJ1bi13
ZWJraXQtaHR0cGQgLS1yb290PS4gLS1wb3J0PTgwMDIgLS1zZXJ2ZXI9c3RhcnQiPC9saT4KKzxs
aT5WaXNpdCA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC90ZXN0LXJ1bm5lci5odG1sIgorPmh0dHA6Ly9sb2NhbGhvc3Q6ODAw
Mi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Rlc3QtcnVubmVyLmh0bWw8L2E+
PC9saT4KKzxsaT5SdW4gQ2hyb21lIENhbmFyeSAoVG9UIENocm9taXVtKSB3aXRoIGZvbGxvd2lu
ZyBmbGFnczogIi0tcmVtb3RlLWRlYnVnZ2luZy1wb3J0PTkyMjIgLS11c2VyLWRhdGEtZGlyPXRl
c3RQcm9maWxlIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL3Rlc3QtcnVubmVyLmh0bWw8L2xpPgorPC91bD4KKworPGJ1dHRvbiBvbmNsaWNr
PSJydW4oKSI+UnVuPC9idXR0b24+Cis8YnV0dG9uIG9uY2xpY2s9InJ1bih0cnVlKSI+RGVidWc8
L2J1dHRvbj4KKzxidXR0b24gb25jbGljaz0iaW50ZXJydXB0KCkiPkludGVycnVwdDwvYnV0dG9u
PgorRmlsdGVyOiA8aW5wdXQgaWQ9ImZpbHRlciIgdHlwZT0idGV4dCI+PC9pbnB1dD48YnI+CisK
KzxzcGFuPlBhc3NlZDogPHNwYW4gaWQ9InBhc3MiPjA8L3NwYW4+PC9zcGFuPgorPHNwYW4+RmFp
bGVkOiA8c3BhbiBpZD0iZmFpbCI+MDwvc3Bhbj48L3NwYW4+Cis8c3Bhbj5UaW1lb3V0OiA8c3Bh
biBpZD0idGltZW91dCI+MDwvc3Bhbj48L3NwYW4+Cis8c3Bhbj5Ta2lwcGVkOiA8c3BhbiBpZD0i
c2tpcCI+MDwvc3Bhbj48L3NwYW4+Cis8c3Bhbj5SZW1haW5pbmc6IDxzcGFuIGlkPSJyZW1haW5p
bmciPjA8L3NwYW4+PGJyPgorCis8b2wgaWQ9Im91dGxpbmUiIHN0eWxlPSJmb250LXNpemU6IDEy
cHggIWltcG9ydGFudCIgY2xhc3M9InNvdXJjZS1jb2RlIG91dGxpbmUtZGlzY2xvc3VyZSI+PC9v
bD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGViYWIwMWY0ZGMxNmUwOGJmOGIxYWJlYWVm
MTQ0YzgxZTc3YWI4YmEuLmNjNmEwZGVmZGJhMjU5ODk3MWQ4ODkyYWZkOTcxYjc0NDQ0MmUzMDgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMi0wOC0xNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBzcGxpdCBzdGFuZGFs
b25lIHRlc3QgcnVubmVyLCB0ZXN0IHNjYW5uZXIgYW5kIHRlc3Qgc3R1Yi4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDAxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxsb3dzIG9w
ZW5pbmcgYSkgdGVzdCBydW5uZXIsIGIpIGxheW91dCB0ZXN0cyBhbmQgYykgaW5zcGVjdG9yIGZy
b250LWVuZCBvZmYgZGlmZmVyZW50CisgICAgICAgIGhvc3RzLiBJdCBpcyBvbmUgbW9yZSBzdGVw
IHRvd2FyZHMgZXh0ZW5zaW9uLWRyaXZlbiBydW5uZXIuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvdGVzdC1ydW5uZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1zY2FubmVyLmh0bWw6IEFkZGVkLgorCisy
MDEyLTA4LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBleHRlcm5hbCB0ZXN0IHJ1bm5lciBmb3IgcnVubmluZyBp
bnNwZWN0b3IgZnJvbnQtZW5kIHRlc3RzIHdpdGggbm8gVGVzdFJ1bm5lciBpbmZyYXN0cnVjdHVy
ZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzODMz
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMKaW5kZXggMjkzYWFhYjMxZTk1NzY3MjNiMzg2ZjZlY2Q1ZWU4YTI4NDE3YjIyZi4uOWFi
MTBjNDE1YTRlOTE1ZjVhYzg5NDhkMzExMTgwODJhNWEwYTllNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTUxNiw1ICs1
MTYsMzcgQEAgZnVuY3Rpb24gY2xlYXJPdXRwdXQoKQogICAgIH0KIH0KIAorZnVuY3Rpb24gU3Rh
bmRhbG9uZVRlc3RSdW5uZXJTdHViKCkKK3sKK30KKworU3RhbmRhbG9uZVRlc3RSdW5uZXJTdHVi
LnByb3RvdHlwZSA9IHsKKyAgICBkdW1wQXNUZXh0OiBmdW5jdGlvbigpCisgICAgeworICAgIH0s
CisKKyAgICB3YWl0VW50aWxEb25lOiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBj
bG9zZVdlYkluc3BlY3RvcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2luZG93Lm9wZW5l
ci5wb3N0TWVzc2FnZShbImNsb3NlV2ViSW5zcGVjdG9yIl0sICIqIik7CisgICAgfSwKKworICAg
IG5vdGlmeURvbmU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBhY3R1YWwgPSBkb2N1
bWVudC5ib2R5LmlubmVyVGV4dCArICJcbiI7CisgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1l
c3NhZ2UoWyJub3RpZnlEb25lIiwgYWN0dWFsXSwgIioiKTsKKyAgICB9LAorCisgICAgZXZhbHVh
dGVJbldlYkluc3BlY3RvcjogZnVuY3Rpb24oY2FsbElkLCBzY3JpcHQpCisgICAgeworICAgICAg
ICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKFsiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGNh
bGxJZCwgc2NyaXB0XSwgIioiKTsKKyAgICB9LAorCisgICAgZGlzcGxheTogZnVuY3Rpb24oKSB7
IH0KK30KKwogaWYgKCF3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cub3BlbmVyKQotICAgIHdp
bmRvdy50ZXN0UnVubmVyID0gd2luZG93Lm9wZW5lci50ZXN0UnVubmVyOworICAgIHdpbmRvdy50
ZXN0UnVubmVyID0gbmV3IFN0YW5kYWxvbmVUZXN0UnVubmVyU3R1YigpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Rlc3QtcnVubmVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1ydW5u
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ5ZWU2YWM0OTdjMjJiZWVj
YmJlZTkzOTY1NTdjZDBlZGM3YTYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
dGVzdC1ydW5uZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzMyArMCwwIEBACi08aHRtbD4K
LTxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9qc2RpZmZsaWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NRXh0ZW5zaW9uLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcyI+PC9zY3JpcHQ+Ci0KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MiPgotPHN0eWxl
PgotOmZvY3VzIHsKLSAgICBvdXRsaW5lOiBub25lOwotfQotCi0uZmFpbGVkIHsKLSAgICBjb2xv
cjogcmVkOwotfQotCi0udGltZW91dCB7Ci0gICAgY29sb3I6IGJyb3duOwotfQotPC9zdHlsZT4K
LQotPHNjcmlwdD4KLQotdmFyIHRlc3RzID0gW107Ci12YXIgc2tpcExpc3QgPSBbImNvbnNvbGUt
YXBpLW9uLWNhbGwtZnJhbWUuaHRtbCIsICJkZWJ1Z2dlci8iXTsKLXZhciB0cmVlT3V0bGluZSA9
IG51bGw7Ci0KLWZ1bmN0aW9uIHN0YXJ0KCkKLXsKLSAgICBzY2FuRm9sZGVyKCJpbnNwZWN0b3Iv
Y29uc29sZSIpOwotICAgIHNjYW5Gb2xkZXIoImluc3BlY3Rvci9kZWJ1Z2dlciIpOwotICAgIHNj
YW5Gb2xkZXIoImluc3BlY3Rvci9lZGl0b3IiKTsKLSAgICBzY2FuRm9sZGVyKCJpbnNwZWN0b3Iv
ZWxlbWVudHMiKTsKLSAgICBzY2FuRm9sZGVyKCJpbnNwZWN0b3IvcHJvZmlsZXIiKTsKLSAgICBz
Y2FuRm9sZGVyKCJpbnNwZWN0b3Ivc3R5bGVzIik7Ci0gICAgc2NhbkZvbGRlcigiaW5zcGVjdG9y
L3RpbWVsaW5lIik7Ci0gICAgc2NhbkZvbGRlcigiaW5zcGVjdG9yIik7Ci0KLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0bGluZSIpLnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgdHJlZU91
dGxpbmUgPSBuZXcgVHJlZU91dGxpbmUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGxpbmUi
KSk7Ci0KLSAgICBydW5OZXh0VGVzdCgpOwotfQotCi1mdW5jdGlvbiBzdG9wKCkKLXsKLSAgICB0
ZXN0cyA9IFtdOwotfQotCi1mdW5jdGlvbiBzY2FuRm9sZGVyKGZvbGRlcikKLXsKLSAgICB2YXIg
eGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9wZW4oIkdFVCIsICIvTGF5b3V0
VGVzdHMvIiArIGZvbGRlciArICIvIiwgZmFsc2UpOwotICAgIHhoci5zZW5kKG51bGwpOwotICAg
IHZhciB0ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGV4dDsKLSAg
ICB2YXIgbGlua3MgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImEiKTsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBsaW5rID0gbGlu
a3NbaV0uaHJlZjsKLSAgICAgICAgdmFyIG1hdGNoID0gbGluay5tYXRjaCgvW15cL10qXC8oW15c
L10rXC5odG1sKSQvKTsKLSAgICAgICAgaWYgKG1hdGNoKQotICAgICAgICAgICAgdGVzdHMucHVz
aChmb2xkZXIgKyAiLyIgKyBtYXRjaFsxXSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBydW5OZXh0
VGVzdChsYXN0UmVzdWx0KQotewotICAgIGlmIChsYXN0UmVzdWx0KSB7Ci0gICAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGFzdFJlc3VsdCk7Ci0gICAgICAgIGVs
ZW1lbnQudGV4dENvbnRlbnQgPSBwYXJzZUludChlbGVtZW50LnRleHRDb250ZW50KSArIDE7Ci0g
ICAgfQotICAgIHZhciB0ZXN0UGF0aCA9IHRlc3RzLnNoaWZ0KCk7Ci0gICAgaWYgKHRlc3RQYXRo
KQotICAgICAgICBuZXcgU3RhbmRhbG9uZVRlc3RSdW5uZXIoImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9MYXlvdXRUZXN0cy8iICsgdGVzdFBhdGgsIHJ1bk5leHRUZXN0KTsKLX0KLQotZnVuY3Rpb24g
U3RhbmRhbG9uZVRlc3RSdW5uZXIodGVzdFBhdGgsIG5leHQpCi17Ci0gICAgdGhpcy5fdGVzdFBh
dGggPSB0ZXN0UGF0aDsKLSAgICB0aGlzLl9uZXh0ID0gbmV4dDsKLQotICAgIHRoaXMuX3RyZWVF
bGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KHRlc3RQYXRoKTsKLSAgICB0cmVlT3V0bGluZS5hcHBl
bmRDaGlsZCh0aGlzLl90cmVlRWxlbWVudCk7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNr
aXBMaXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICh0ZXN0UGF0aC5pbmRleE9mKHNraXBM
aXN0W2ldKSAhPT0gLTEpIHsKLSAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LnRpdGxlID0g
dGVzdFBhdGggKyAiOiBTS0lQUEVEIjsKLSAgICAgICAgICAgIHRoaXMuX25leHQoInNraXAiKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHRoaXMuX3Rlc3RQ
YWdlID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgImluc3BlY3RlZCIsICJ3aWR0aD04MDAs
aGVpZ2h0PTYwMCIpOwotCi0gICAgd2luZG93LnJlbW90ZURlYnVnZ2luZ0hhbmRzaGFrZSA9IHRo
aXMuX3JlbW90ZURlYnVnZ2luZ0hhbmRzaGFrZS5iaW5kKHRoaXMpOwotICAgIHZhciBzY3JpcHQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBzY3JpcHQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6OTIyMi9qc29uP2pzb25wPXJlbW90ZURlYnVnZ2luZ0hhbmRzaGFrZSI7
Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwotfQotCi1TdGFuZGFsb25l
VGVzdFJ1bm5lci5Gcm9udGVuZExvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kLyI7Ci0KLVN0YW5kYWxvbmVUZXN0UnVubmVy
LnByb3RvdHlwZSA9IHsKLSAgICBfcmVtb3RlRGVidWdnaW5nSGFuZHNoYWtlOiBmdW5jdGlvbihk
YXRhKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICBpZiAoZGF0YVtpXS51cmwgIT09ICJhYm91dDpibGFuayIpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2YXIgZGVidWdnZXJVUkwgPSBkYXRh
W2ldLndlYlNvY2tldERlYnVnZ2VyVXJsLnJlcGxhY2UoIjovLyIsICI9Iik7Ci0gICAgICAgICAg
ICB0aGlzLl9pbnNwZWN0b3JXaW5kb3cgPSB3aW5kb3cub3BlbihTdGFuZGFsb25lVGVzdFJ1bm5l
ci5Gcm9udGVuZExvY2F0aW9uICsgImluc3BlY3Rvci5odG1sPyIgKyBkZWJ1Z2dlclVSTCwgImlu
c3BlY3RvciIsICJ3aWR0aD02MDAsaGVpZ2h0PTQwMCIpOwotICAgICAgICAgICAgdGhpcy5faW5z
cGVjdG9yV2luZG93Lm9ubG9hZCA9IHRoaXMuX2luc3BlY3RvcldpbmRvd0xvYWRlZC5iaW5kKHRo
aXMpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9pbnNwZWN0b3JXaW5kb3dMb2FkZWQ6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHdpbmRvdy50ZXN0UnVubmVyID0gdGhpczsKLSAgICAg
ICAgdGhpcy5fdGVzdFBhZ2UubG9jYXRpb24uaHJlZiA9IHRoaXMuX3Rlc3RQYXRoOwotICAgICAg
ICB0aGlzLl93YXRjaERvZyA9IHNldFRpbWVvdXQodGhpcy5fdGltZW91dC5iaW5kKHRoaXMpLCAx
MDAwMCk7Ci0gICAgfSwKLQotICAgIGR1bXBBc1RleHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
fSwKLQotICAgIHdhaXRVbnRpbERvbmU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgfSwKLQotICAg
IGNsb3NlV2ViSW5zcGVjdG9yOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9pbnNw
ZWN0b3JXaW5kb3cuY2xvc2UoKTsKLSAgICB9LAotCi0gICAgbm90aWZ5RG9uZTogZnVuY3Rpb24o
dGltZW91dCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kb25lKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB0aGlzLl9kb25lID0gdHJ1ZTsKLQotICAgICAgICB2YXIgYWN0dWFsID0g
dGhpcy5fdGVzdFBhZ2UuZG9jdW1lbnQuYm9keS5pbm5lclRleHQgKyAiXG4iOwotICAgICAgICB0
aGlzLl90ZXN0UGFnZS5jbG9zZSgpOwotICAgICAgICB0aGlzLl9pbnNwZWN0b3JXaW5kb3cuY2xv
c2UoKTsKLSAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3dhdGNoRG9nKTsKLQotICAgICAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgICAgIHZhciBleHQgPSB0aGlzLl90
ZXN0UGF0aC5sYXN0SW5kZXhPZigiLiIpOwotICAgICAgICB4aHIub3BlbigiR0VUIiwgdGhpcy5f
dGVzdFBhdGguc3Vic3RyaW5nKDAsIGV4dCkgKyAiLWV4cGVjdGVkLnR4dCIsIGZhbHNlKTsKLSAg
ICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgICAgIHZhciBleHBlY3RlZCA9IHhoci5yZXNwb25z
ZVRleHQ7Ci0gICAgICAgIGlmIChhY3R1YWwgPT09IGV4cGVjdGVkKSB7Ci0gICAgICAgICAgICB0
aGlzLl90cmVlRWxlbWVudC50aXRsZSA9IHRoaXMuX3Rlc3RQYXRoICsgIjogU1VDQ0VTUyI7Ci0g
ICAgICAgICAgICB0aGlzLl9uZXh0KCJwYXNzIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICB0aGlzLl90cmVlRWxlbWVudC50aXRsZSA9IHRoaXMuX3Rlc3RQYXRo
ICsgIjogRkFJTEVEIjsKLSAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImZhaWxlZCIpOwotCi0gICAgICAgIHZhciBiYXNlTGluZXMgPSBkaWZm
bGliLnN0cmluZ0FzTGluZXMoZXhwZWN0ZWQpOwotICAgICAgICB2YXIgbmV3TGluZXMgPSBkaWZm
bGliLnN0cmluZ0FzTGluZXMoYWN0dWFsKTsKLSAgICAgICAgdmFyIHNtID0gbmV3IGRpZmZsaWIu
U2VxdWVuY2VNYXRjaGVyKGJhc2VMaW5lcywgbmV3TGluZXMpOwotICAgICAgICB2YXIgb3Bjb2Rl
cyA9IHNtLmdldF9vcGNvZGVzKCk7Ci0gICAgICAgIHZhciBsYXN0V2FzU2VwYXJhdG9yID0gZmFs
c2U7Ci0KLSAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgb3Bjb2Rlcy5sZW5ndGg7IGlk
eCsrKSB7Ci0gICAgICAgICAgICB2YXIgY29kZSA9IG9wY29kZXNbaWR4XTsKLSAgICAgICAgICAg
IHZhciBjaGFuZ2UgPSBjb2RlWzBdOwotICAgICAgICAgICAgdmFyIGIgPSBjb2RlWzFdOwotICAg
ICAgICAgICAgdmFyIGJlID0gY29kZVsyXTsKLSAgICAgICAgICAgIHZhciBuID0gY29kZVszXTsK
LSAgICAgICAgICAgIHZhciBuZSA9IGNvZGVbNF07Ci0gICAgICAgICAgICB2YXIgcm93Q291bnQg
PSBNYXRoLm1heChiZSAtIGIsIG5lIC0gbik7Ci0gICAgICAgICAgICB2YXIgdG9wUm93cyA9IFtd
OwotICAgICAgICAgICAgdmFyIGJvdHRvbVJvd3MgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcm93Q291bnQ7IGkrKykgewotICAgICAgICAgICAgICAgIGlmIChjaGFuZ2Ug
PT09ICJkZWxldGUiIHx8IChjaGFuZ2UgPT09ICJyZXBsYWNlIiAmJiBiIDwgYmUpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gYisrOwotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl90cmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgVHJlZUVsZW1lbnQoIi0gWyIgKyBs
aW5lTnVtYmVyICsgIl0gIiArIGJhc2VMaW5lc1tsaW5lTnVtYmVyXSkpOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UgPT09ICJpbnNlcnQiIHx8IChjaGFu
Z2UgPT09ICJyZXBsYWNlIiAmJiBuIDwgbmUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBs
aW5lTnVtYmVyID0gbisrOwotICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmVlRWxlbWVudC5h
cHBlbmRDaGlsZChuZXcgVHJlZUVsZW1lbnQoIisgWyIgKyBsaW5lTnVtYmVyICsgIl0gIiArIG5l
d0xpbmVzW2xpbmVOdW1iZXJdKSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgaWYgKGNoYW5nZSA9PT0gImVxdWFsIikgewotICAgICAgICAgICAgICAgICAgICBiKys7Ci0g
ICAgICAgICAgICAgICAgICAgIG4rKzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9uZXh0KCJmYWlsIik7Ci0gICAgfSwKLQotICAg
IGV2YWx1YXRlSW5XZWJJbnNwZWN0b3I6IGZ1bmN0aW9uKGNhbGxJZCwgc2NyaXB0KQotICAgIHsK
LSAgICAgICAgdGhpcy5faW5zcGVjdG9yV2luZG93LnBvc3RNZXNzYWdlKFsiZXZhbHVhdGVGb3JU
ZXN0IiwgY2FsbElkLCBzY3JpcHRdLCAiKiIpOwotICAgIH0sCi0KLSAgICBfdGltZW91dDogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgICB0aGlzLl90cmVlRWxlbWVudC50aXRsZSA9IHRoaXMu
X3Rlc3RQYXRoICsgIjogVElNRU9VVCI7Ci0gICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnQubGlz
dEl0ZW1FbGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVvdXQiKTsKLSAgICAgICAgICB0aGlzLl9k
b25lID0gdHJ1ZTsKLSAgICAgICAgICB0aGlzLl90ZXN0UGFnZS5jbG9zZSgpOwotICAgICAgICAg
IHRoaXMuX2luc3BlY3RvcldpbmRvdy5jbG9zZSgpOwotICAgICAgICAgIHRoaXMuX25leHQoInRp
bWVvdXQiKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPGJvZHk+Ci1UaGlzIGlzIGEgc3RhbmRh
bG9uZSB0ZXN0IHN1aXRlIGZvciBpbnNwZWN0b3IgZnJvbnQtZW5kLiBIZXJlIGlzIGhvdyB5b3Ug
cnVuIGl0Ojxicj4KLTEpIFN0YXJ0IHNlcnZpbmcgV2ViS2l0IGZvbGRlciBvZmYgcG9ydCA4MDAw
IHNvIHRoYXQgdGhpcyBwYWdlIHdvdWxkIGhhdmUgZm9sbG93aW5nIGFkZHJlc3M6Ci08YSBocmVm
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Rlc3QtcnVubmVyLmh0bWwiCi0+aHR0cDovL2xvY2FsaG9zdDo4MDAwL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy90ZXN0LXJ1bm5lci5odG1sPC9h
Pjxicj4KLTIpIFJ1biBDaHJvbWUgQ2FuYXJ5IChUb1QgQ2hyb21pdW0pIHdpdGggZm9sbG93aW5n
IGZsYWdzOgotIC0tcmVtb3RlLWRlYnVnZ2luZy1wb3J0PTkyMjIgLS11c2VyLWRhdGEtZGlyPXRl
c3RQcm9maWxlIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1ydW5uZXIuaHRtbDxicj48YnI+Ci0KLTxidXR0b24gb25j
bGljaz0ic3RhcnQoKSI+U3RhcnQ8L2J1dHRvbj4KLTxidXR0b24gb25jbGljaz0ic3RvcCgpIj5T
dG9wPC9idXR0b24+Ci0KLTxzcGFuPlBhc3M6IDxzcGFuIGlkPSJwYXNzIj4wPC9zcGFuPjwvc3Bh
bj4KLTxzcGFuPkZhaWw6IDxzcGFuIGlkPSJmYWlsIj4wPC9zcGFuPjwvc3Bhbj4KLTxzcGFuPlRp
bWVvdXQ6IDxzcGFuIGlkPSJ0aW1lb3V0Ij4wPC9zcGFuPjwvc3Bhbj4KLTxzcGFuPlNraXA6IDxz
cGFuIGlkPSJza2lwIj4wPC9zcGFuPjwvc3Bhbj4KLQotPG9sIGlkPSJvdXRsaW5lIiBzdHlsZT0i
Zm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQiIGNsYXNzPSJzb3VyY2UtY29kZSBvdXRsaW5lLWRp
c2Nsb3N1cmUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1zY2FubmVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvdGVzdC1zY2FubmVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTM3MTVkMjIwMTRlNmNmMzJiNTVjNTYzNmJlMzI5ZTJkMjQyNzEwZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy90ZXN0LXNjYW5uZXIuaHRtbApAQCAtMCwwICsxLDY4IEBACis8aHRtbD4KKzxzY3JpcHQ+Cit2
YXIgdGVzdHMgPSBbXTsKKworc2NhbkZvbGRlcigiaW5zcGVjdG9yL2NvbnNvbGUiKTsKKy8vIHNj
YW5Gb2xkZXIoImluc3BlY3Rvci9kZWJ1Z2dlciIpOworc2NhbkZvbGRlcigiaW5zcGVjdG9yL2Vk
aXRvciIpOworc2NhbkZvbGRlcigiaW5zcGVjdG9yL2VsZW1lbnRzIik7CitzY2FuRm9sZGVyKCJp
bnNwZWN0b3IvcHJvZmlsZXIiKTsKK3NjYW5Gb2xkZXIoImluc3BlY3Rvci9zdHlsZXMiKTsKK3Nj
YW5Gb2xkZXIoImluc3BlY3Rvci90aW1lbGluZSIpOworc2NhbkZvbGRlcigiaW5zcGVjdG9yIik7
CisKK2Z1bmN0aW9uIHNjYW5Gb2xkZXIoZm9sZGVyKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgIi9MYXlvdXRUZXN0cy8iICsgZm9s
ZGVyICsgIi8iLCBmYWxzZSk7CisgICAgeGhyLnNlbmQobnVsbCk7CisgICAgdmFyIHRleHQgPSB4
aHIucmVzcG9uc2VUZXh0OworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0ZXh0OworICAgIHZhciBsaW5rcyA9
IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiYSIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bGlua3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGxpbmsgPSBsaW5rc1tpXS5ocmVmOwor
ICAgICAgICB2YXIgbWF0Y2ggPSBsaW5rLm1hdGNoKC9bXlwvXSpcLyhbXlwvXStcLmh0bWwpJC8p
OworICAgICAgICBpZiAoIW1hdGNoKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZh
ciBwYXRoID0gIi9MYXlvdXRUZXN0cy8iICsgZm9sZGVyICsgIi8iICsgbWF0Y2hbMV07CisgICAg
ICAgIHZhciBleHBlY3RlZCA9IGZldGNoRXhjcGVjdGF0aW9ucyhwYXRoKTsKKyAgICAgICAgdGVz
dHMucHVzaChbcGF0aCwgZXhwZWN0ZWRdKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGZldGNoRXhj
cGVjdGF0aW9ucyhwYXRoKQoreworICAgIHZhciBleHQgPSBwYXRoLmxhc3RJbmRleE9mKCIuIik7
CisgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIGV4dCkgKyAiLWV4cGVjdGVkLnR4dCI7Cisg
ICAgdmFyIGNocm9taXVtUGF0aCA9IHBhdGgucmVwbGFjZSgiL0xheW91dFRlc3RzLyIsICIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vIik7CisKKyAgICB2YXIgZXhwZWN0YXRpb25zID0g
ZmV0Y2goY2hyb21pdW1QYXRoKSB8fCBmZXRjaChwYXRoKSB8fCAiIjsKKworICAgIHZhciBleHBl
Y3RhdGlvbkxpbmVzID0gZXhwZWN0YXRpb25zLnNwbGl0KCJcbiIpOworICAgIHZhciBmaWx0ZXJl
ZCA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0YXRpb25MaW5lcy5sZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAoIWV4cGVjdGF0aW9uTGluZXNbaV0uaW5kZXhPZigiQUxFUlQ6
ICIpIHx8CisgICAgICAgICAgICAhZXhwZWN0YXRpb25MaW5lc1tpXS5pbmRleE9mKCJDT05TT0xF
IE1FU1NBR0U6ICIpKSB7CisgICAgICAgICAgICBmaWx0ZXJlZCA9IFtdOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZmlsdGVyZWQucHVzaChleHBlY3RhdGlvbkxp
bmVzW2ldKTsKKyAgICB9CisgICAgcmV0dXJuIGZpbHRlcmVkLmpvaW4oIlxuIik7Cit9CisKK2Z1
bmN0aW9uIGZldGNoKHBhdGgpCit7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgIHhoci5vcGVuKCJHRVQiLCBwYXRoLCBmYWxzZSk7CisgICAgeGhyLnNlbmQobnVsbCk7
CisgICAgcmV0dXJuIHhoci5zdGF0dXMgIT09IDQwNCA/IHhoci5yZXNwb25zZVRleHQgOiAiIjsK
K30KKword2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShbInRlc3RzIiwgdGVzdHNdLCAiKiIpOwor
Cis8L3NjcmlwdD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="168474"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>