<?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>157225</bug_id>
          
          <creation_ts>2016-04-29 20:00:05 -0700</creation_ts>
          <short_desc>Rename getAssignedNodes to assignedNodes and support flattened option</short_desc>
          <delta_ts>2016-04-29 23:07:50 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188968</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-29 20:00:05 -0700</bug_when>
    <thetext>Update HTMLSlotElement.prototype.getAssignedNodes to match the latest spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188974</commentid>
    <comment_count>1</comment_count>
      <attachid>277787</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-29 20:24:28 -0700</bug_when>
    <thetext>Created attachment 277787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188988</commentid>
    <comment_count>2</comment_count>
      <attachid>277787</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-29 21:01:19 -0700</bug_when>
    <thetext>Comment on attachment 277787
Patch

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

&gt; Source/WebCore/html/HTMLSlotElement.cpp:110
&gt; +        } else
&gt; +            nodes.append(node);

I usually use continue rather than dangling else like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189002</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-29 21:18:27 -0700</bug_when>
    <thetext>Committed r200285: &lt;http://trac.webkit.org/changeset/200285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189024</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-04-29 23:07:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/26022326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277787</attachid>
            <date>2016-04-29 20:24:28 -0700</date>
            <delta_ts>2016-04-29 21:01:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157225-20160429202501.patch</filename>
            <type>text/plain</type>
            <size>28505</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDI3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA0LTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSBnZXRBc3NpZ25lZE5v
ZGVzIHRvIGFzc2lnbmVkTm9kZXMgYW5kIHN1cHBvcnQgZmxhdHRlbmVkIG9wdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBnZXRBc3Np
Z25lZE5vZGVzIGFuZCBhZGRlZCB0aGUgdGhlIHN1cHBvcnQgZm9yIHtmbGF0dGVuZWQ6IHRydWUv
ZmFsc2V9IGFzIHNwZWMnZWQgYXQKKyAgICAgICAgaHR0cDovL3czYy5naXRodWIuaW8vd2ViY29t
cG9uZW50cy9zcGVjL3NoYWRvdy8jd2lkbC1IVE1MU2xvdEVsZW1lbnQtYXNzaWduZWROb2Rlcy1z
ZXF1ZW5jZS1Ob2RlLS1Bc3NpZ25lZE5vZGVzT3B0aW9ucy1vcHRpb25zCisKKyAgICAgICAgVGVz
dDogZmFzdC9zaGFkb3ctZG9tL0hUTUxTbG90RWxlbWVudC1pbnRlcmZhY2UuaHRtbAorCisgICAg
ICAgICogaHRtbC9IVE1MU2xvdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmxhdHRl
bkFzc2lnbmVkTm9kZXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTbG90RWxlbWVu
dDo6YXNzaWduZWROb2Rlc0ZvckJpbmRpbmdzKTogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1M
U2xvdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTbG90RWxlbWVudC5pZGw6CisKIDIw
MTYtMDQtMjkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2xlYW4gdXAgR3JhcGhpY3NDb250ZXh0IHVzZSBpbiBSZW5kZXJMYXllcjo6cGFpbnRMYXll
ckNvbnRlbnRzKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIwMDI1NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFNIQURP
V19ET00pIHx8IEVOQUJMRShERVRBSUxTX0VMRU1FTlQpCiAKKyNpbmNsdWRlICJEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTk5LDYgKzEwMCwzNSBAQCBjb25zdCBWZWN0
b3I8Tm9kZSo+KiBIVE1MU2xvdEVsZW1lbnQ6OmFzCiAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmFz
c2lnbmVkTm9kZXNGb3JTbG90KCp0aGlzKTsKIH0KIAorc3RhdGljIHZvaWQgZmxhdHRlbkFzc2ln
bmVkTm9kZXMoVmVjdG9yPE5vZGUqPiYgbm9kZXMsIGNvbnN0IFZlY3RvcjxOb2RlKj4mIGFzc2ln
bmVkTm9kZXMpCit7CisgICAgZm9yIChOb2RlKiBub2RlIDogYXNzaWduZWROb2RlcykgeworICAg
ICAgICBpZiAoaXM8SFRNTFNsb3RFbGVtZW50Pigqbm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvKiBpbm5lckFzc2lnbmVkTm9kZXMgPSBkb3duY2FzdDxIVE1MU2xvdEVsZW1lbnQ+KCpub2Rl
KS5hc3NpZ25lZE5vZGVzKCkpCisgICAgICAgICAgICAgICAgZmxhdHRlbkFzc2lnbmVkTm9kZXMo
bm9kZXMsICppbm5lckFzc2lnbmVkTm9kZXMpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IG5vZGVzLmFwcGVuZChub2RlKTsKKyAgICB9Cit9CisKK2NvbnN0IFZlY3RvcjxOb2RlKj4gSFRN
TFNsb3RFbGVtZW50Ojphc3NpZ25lZE5vZGVzRm9yQmluZGluZ3MoY29uc3QgRGljdGlvbmFyeSYg
b3B0aW9ucykgY29uc3QKK3sKKyAgICBib29sIHNob3VsZEZsYXR0ZW4gPSBmYWxzZTsKKyAgICBv
cHRpb25zLmdldCgiZmxhdHRlbiIsIHNob3VsZEZsYXR0ZW4pOworCisgICAgVmVjdG9yPE5vZGUq
PiBub2RlczsKKyAgICBhdXRvKiBhc3NpZ25lZE5vZGVzID0gdGhpcy0+YXNzaWduZWROb2Rlcygp
OworICAgIGlmICghYXNzaWduZWROb2RlcykKKyAgICAgICAgcmV0dXJuIG5vZGVzOworCisgICAg
aWYgKHNob3VsZEZsYXR0ZW4pCisgICAgICAgIGZsYXR0ZW5Bc3NpZ25lZE5vZGVzKG5vZGVzLCAq
YXNzaWduZWROb2Rlcyk7CisgICAgZWxzZQorICAgICAgICBub2RlcyA9ICphc3NpZ25lZE5vZGVz
OworCisgICAgcmV0dXJuIG5vZGVzOworfQorCiB2b2lkIEhUTUxTbG90RWxlbWVudDo6ZW5xdWV1
ZVNsb3RDaGFuZ2VFdmVudCgpCiB7CiAgICAgaWYgKG1faGFzRW5xdWV1ZWRTbG90Q2hhbmdlRXZl
bnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmgJKHJldmlzaW9uIDIw
MDI1NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTFNsb3RF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBj
b25zdCBWZWN0b3I8Tm9kZSo+KiBhc3NpZ25lZE5vZGVzKCkgY29uc3Q7CisgICAgY29uc3QgVmVj
dG9yPE5vZGUqPiBhc3NpZ25lZE5vZGVzRm9yQmluZGluZ3MoY29uc3QgRGljdGlvbmFyeSYgb3B0
aW9ucykgY29uc3Q7CiAKICAgICB2b2lkIGVucXVldWVTbG90Q2hhbmdlRXZlbnQoKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmlkbAkocmV2aXNpb24gMjAwMjU3
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2xvdEVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw2IEBACiBdIGludGVyZmFjZSBIVE1MU2xvdEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAg
IFtJbXBsZW1lbnRlZEFzPWFzc2lnbmVkTm9kZXNdIHNlcXVlbmNlPE5vZGU+IGdldEFzc2lnbmVk
Tm9kZXMoKTsKKyAgICBbSW1wbGVtZW50ZWRBcz1hc3NpZ25lZE5vZGVzRm9yQmluZGluZ3NdIHNl
cXVlbmNlPE5vZGU+IGFzc2lnbmVkTm9kZXMob3B0aW9uYWwgRGljdGlvbmFyeSBvcHRpb25zKTsK
IAogfTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDI1NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA0LTI5ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSBnZXRBc3NpZ25lZE5vZGVz
IHRvIGFzc2lnbmVkTm9kZXMgYW5kIHN1cHBvcnQgZmxhdHRlbmVkIG9wdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20v
SFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9z
aGFkb3ctZG9tL0hUTUxTbG90RWxlbWVudC1pbnRlcmZhY2UuaHRtbDoKKwogMjAxNi0wNC0yOSAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIGZh
c3QvcnVieS9ydWJ5LWV4cGFuc2lvbi1jamsuaHRtbCBhbmQgZmFzdC9ydWJ5L3J1YnktZXhwYW5z
aW9uLWNqay00Lmh0bWwgYXMgZmxha3kgb24gTWFjCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL0hUTUxTbG90RWxlbWVudC1pbnRlcmZh
Y2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDAyNTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOCArMSwyMCBAQAogCiBQQVNTIEhUTUxTbG90RWxlbWVudCBtdXN0IGJlIGRl
ZmluZWQgb24gd2luZG93IAogUEFTUyAibmFtZSIgYXR0cmlidXRlIG9uIEhUTUxTbG90RWxlbWVu
dCBtdXN0IHJlZmxlY3QgIm5hbWUiIGF0dHJpYnV0ZSAKLVBBU1MgZ2V0QXNzaWduZWROb2RlcyBt
ZXRob2Qgb24gSFRNTFNsb3RFbGVtZW50IG11c3QgcmV0dXJuIHRoZSBsaXN0IG9mIGRpc3RyaWJ1
dGVkIG5vZGVzIAotUEFTUyBnZXRBc3NpZ25lZE5vZGVzIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBh
bmQgbmFtZSBhdHRyaWJ1dGVzIGFyZSBtb2RpZmllZCAKLVBBU1MgZ2V0QXNzaWduZWROb2RlcyBt
dXN0IHVwZGF0ZSB3aGVuIGEgZGVmYXVsdCBzbG90IGlzIGludHJvZHVjZWQgZHluYW1pY2FsbHkg
YnkgYSBzbG90IHJlbmFtZSAKLVBBU1MgZ2V0QXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVu
IHNsb3QgZWxlbWVudHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQgCitQQVNTIGFzc2lnbmVkTm9k
ZXMoKSBvbiBhIEhUTUxTbG90RWxlbWVudCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVu
IHRoZSBzbG90IGVsZW1lbnQgaXMgbm90IGluIGEgdHJlZSBvciBpbiBhIGRvY3VtZW50IHRyZWUg
CitQQVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOmZhbHNlfSkgb24gYSBIVE1MU2xvdEVs
ZW1lbnQgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlz
IG5vdCBpbiBhIHRyZWUgb3IgaW4gYSBkb2N1bWVudCB0cmVlIAorUEFTUyBhc3NpZ25lZE5vZGVz
KHsiZmxhdHRlbmVkIjp0cnVlfSkgb24gYSBIVE1MU2xvdEVsZW1lbnQgbXVzdCByZXR1cm4gYW4g
ZW1wdHkgYXJyYXkgd2hlbiB0aGUgc2xvdCBlbGVtZW50IGlzIG5vdCBpbiBhIHRyZWUgb3IgaW4g
YSBkb2N1bWVudCB0cmVlIAorUEFTUyBhc3NpZ25lZE5vZGVzKCkgbXVzdCByZXR1cm4gdGhlIGxp
c3Qgb2YgYXNzaWduZWQgbm9kZXMgd2hlbiBub25lIG9mIHRoZSBhc3NpZ25lZCBub2RlcyB0aGVt
c2VsdmVzIGFyZSBzbG90cyAKK1BBU1MgYXNzaWduZWROb2Rlcyh7ImZsYXR0ZW5lZCI6ZmFsc2V9
KSBtdXN0IHJldHVybiB0aGUgbGlzdCBvZiBhc3NpZ25lZCBub2RlcyB3aGVuIG5vbmUgb2YgdGhl
IGFzc2lnbmVkIG5vZGVzIHRoZW1zZWx2ZXMgYXJlIHNsb3RzIAorUEFTUyBhc3NpZ25lZE5vZGVz
KHsiZmxhdHRlbmVkIjp0cnVlfSkgbXVzdCByZXR1cm4gdGhlIGxpc3Qgb2YgYXNzaWduZWQgbm9k
ZXMgd2hlbiBub25lIG9mIHRoZSBhc3NpZ25lZCBub2RlcyB0aGVtc2VsdmVzIGFyZSBzbG90cyAK
K1BBU1MgYXNzaWduZWROb2RlcygpIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBhbmQgbmFtZSBhdHRy
aWJ1dGVzIGFyZSBtb2RpZmllZCAKK1BBU1MgYXNzaWduZWROb2Rlcyh7ImZsYXR0ZW5lZCI6ZmFs
c2V9KSBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZp
ZWQgCitQQVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQiOnRydWV9KSBtdXN0IHVwZGF0ZSB3
aGVuIHNsb3QgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgbW9kaWZpZWQgCitQQVNTIGFzc2lnbmVk
Tm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBhIGRlZmF1bHQgc2xvdCBpcyBpbnRyb2R1Y2VkIGR5bmFt
aWNhbGx5IGJ5IGEgc2xvdCByZW5hbWUgCitQQVNTIGFzc2lnbmVkTm9kZXMoeyJmbGF0dGVuZWQi
OmZhbHNlfSkgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIG1v
ZGlmaWVkIAorUEFTUyBhc3NpZ25lZE5vZGVzKHsiZmxhdHRlbmVkIjp0cnVlfSkgbXVzdCB1cGRh
dGUgd2hlbiBzbG90IGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIG1vZGlmaWVkIAorUEFTUyBhc3Np
Z25lZE5vZGVzIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBlbGVtZW50cyBhcmUgaW5zZXJ0ZWQgb3Ig
cmVtb3ZlZCAKK1BBU1MgYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgZWxlbWVu
dHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQgCitQQVNTIGFzc2lnbmVkTm9kZXMgbXVzdCB1cGRh
dGUgd2hlbiBzbG90IGVsZW1lbnRzIGFyZSBpbnNlcnRlZCBvciByZW1vdmVkIAorUEFTUyBhc3Np
Z25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5v
ZGVzLCBhbmQgYXNzaWduZWROb2RlcygpIGFuZCBhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxz
ZX0pIG11c3QgcmV0dXJuZWQgdGhlIGFzc2lnbmVkIG5vZGVzIAogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vSFRNTFNsb3RFbGVtZW50LWludGVyZmFjZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJm
YWNlLmh0bWwJKHJldmlzaW9uIDIwMDI1NykKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRv
bS9IVE1MU2xvdEVsZW1lbnQtaW50ZXJmYWNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEy
NSArMzQsMjM2IEBAIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9lcXVhbHMoc2xvdEVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCduYW1lJyksICdiYXInLCAnIm5hbWUiIGF0dHJpYnV0ZSBtdXN0
IHVwZGF0ZSB0aGUgIm5hbWUiIGNvbnRlbnQgYXR0cmlidXRlJyk7CiB9LCAnIm5hbWUiIGF0dHJp
YnV0ZSBvbiBIVE1MU2xvdEVsZW1lbnQgbXVzdCByZWZsZWN0ICJuYW1lIiBhdHRyaWJ1dGUnKTsK
IAotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgYXNzZXJ0X3RydWUoJ2dldEFzc2lnbmVkTm9kZXMn
IGluIEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUsICciZ2V0QXNzaWduZWROb2RlcyIgbWV0aG9k
IG11c3QgYmUgZGVmaW5lZCBvbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlJyk7Ci0KLSAgICB2
YXIgc2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBj
aGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLQotICAgIHZhciBzaGFkb3dSb290
ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdvcGVuJ30pOwotICAgIHZhciBzbG90
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKHNsb3RFbGVtZW50KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xv
dEVsZW1lbnQuZ2V0QXNzaWduZWROb2RlcygpLCBbXSwgJ2dldEFzc2lnbmVkTm9kZXMgbXVzdCBy
ZXR1cm4gYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGVyZSBhcmUgbm8gbm9kZXMgaW4gdGhlIHNoYWRv
dyB0cmVlJyk7Ci0KLSAgICBzaGFkb3dIb3N0LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmdldEFzc2lnbmVkTm9kZXMoKSwgW2NoaWxkXSwg
J2dldEFzc2lnbmVkTm9kZXMgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVu
dCB3aXRob3V0IHNsb3QgZWxlbWVudCcpOwotCi0gICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzbG90
JywgJ2ZvbycpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuZ2V0QXNzaWdu
ZWROb2RlcygpLCBbXSwgJ2dldEFzc2lnbmVkTm9kZXMgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCBu
b3QgcmV0dXJuIGFuIGVsZW1lbnQgd2l0aCBub24tZW1wdHkgc2xvdCBhdHRyaWJ1dGUnKTsKLQot
ICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnc2xvdCcsICcnKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKHNsb3RFbGVtZW50LmdldEFzc2lnbmVkTm9kZXMoKSwgW2NoaWxkXSwgJ2dldEFzc2lnbmVk
Tm9kZXMgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVudCB3aXRoIGVtcHR5
IHNsb3QgYXR0cmlidXRlJyk7Ci0KLSAgICBzbG90RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ25hbWUn
LCAnYmFyJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzbG90RWxlbWVudC5nZXRBc3NpZ25l
ZE5vZGVzKCksIFtdLCAnZ2V0QXNzaWduZWROb2RlcyBvbiBhIG5hbWVkIHNsb3QgbXVzdCBub3Qg
cmV0dXJuIGFuIGVsZW1lbnQgd2l0aCBlbXB0eSBzbG90IGF0dHJpYnV0ZScpOwotCi0gICAgc2xv
dEVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywgJycpOwotICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoc2xvdEVsZW1lbnQuZ2V0QXNzaWduZWROb2RlcygpLCBbY2hpbGRdLCAnZ2V0QXNzaWduZWRO
b2RlcyBvbiBhbiBlbXB0eSBuYW1lIHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVudCB3aXRoIGVt
cHR5IHNsb3QgYXR0cmlidXRlJyk7Ci0KLX0sICdnZXRBc3NpZ25lZE5vZGVzIG1ldGhvZCBvbiBI
VE1MU2xvdEVsZW1lbnQgbXVzdCByZXR1cm4gdGhlIGxpc3Qgb2YgZGlzdHJpYnV0ZWQgbm9kZXMn
KTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3AnKTsKLSAgICB2YXIgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKTsKLSAgICBzaGFk
b3dIb3N0LmFwcGVuZENoaWxkKHApOwotICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoYik7Ci0K
LSAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Bl
bid9KTsKLSAgICB2YXIgc2xvdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90
Jyk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzbG90RWxlbWVudCk7Ci0KLSAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmdldEFzc2lnbmVkTm9kZXMoKSwgW3AsIGJdLCAn
Z2V0QXNzaWduZWROb2RlcyBtdXN0IHJldHVybiB0aGUgZGlzdHJpYnV0ZWQgbm9kZXMnKTsKLQot
ICAgIHNsb3RFbGVtZW50Lm5hbWUgPSAnZm9vJzsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNs
b3RFbGVtZW50LmdldEFzc2lnbmVkTm9kZXMoKSwgW10sICdnZXRBc3NpZ25lZE5vZGVzIG11c3Qg
YmUgZW1wdHkgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMgZm9yIHRoZSBzbG90
IG5hbWUnKTsKLQotICAgIGIuc2xvdCA9ICdmb28nOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
c2xvdEVsZW1lbnQuZ2V0QXNzaWduZWROb2RlcygpLCBbYl0sICdnZXRBc3NpZ25lZE5vZGVzIG11
c3QgcmV0dXJuIHRoZSBub2RlcyB3aXRoIHRoZSBtYXRjaGluZyBzbG90IG5hbWUnKTsKLQotICAg
IHAuc2xvdCA9ICdmb28nOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuZ2V0
QXNzaWduZWROb2RlcygpLCBbcCwgYl0sICdnZXRBc3NpZ25lZE5vZGVzIG11c3QgcmV0dXJuIHRo
ZSBub2RlcyB3aXRoIHRoZSBtYXRjaGluZyBzbG90IG5hbWUgaW4gdGhlIHRyZWUgb3JkZXInKTsK
LQotICAgIHNsb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbmFtZScpOwotICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuZ2V0QXNzaWduZWROb2RlcygpLCBbXSwgJ2dldEFzc2ln
bmVkTm9kZXMgbXVzdCBiZSBlbXB0eSBmb3IgYSBkZWZhdWx0IHNsb3Qgd2hlbiBhbGwgZWxlbWVu
dHMgaGF2ZSAic2xvdCIgYXR0cmlidXRlcyBzcGVjaWZpZWQnKTsKLQotfSwgJ2dldEFzc2lnbmVk
Tm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBzbG90IGFuZCBuYW1lIGF0dHJpYnV0ZXMgYXJlIG1vZGlm
aWVkJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOwotICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotCi0g
ICAgdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4n
fSk7Ci0gICAgdmFyIHNsb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcp
OwotICAgIHNsb3RFbGVtZW50Lm5hbWUgPSAnZm9vJzsKLSAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKHNsb3RFbGVtZW50KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQu
Z2V0QXNzaWduZWROb2RlcygpLCBbXSwgJ2dldEFzc2lnbmVkTm9kZXMgbXVzdCBiZSBlbXB0eSB3
aGVuIHRoZXJlIGFyZSBubyBtYXRjaGluZyBlbGVtZW50cyBmb3IgdGhlIHNsb3QgbmFtZScpOwot
Ci0gICAgc2xvdEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCduYW1lJyk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhzbG90RWxlbWVudC5nZXRBc3NpZ25lZE5vZGVzKCksIFtjaGlsZF0sICdnZXRB
c3NpZ25lZE5vZGVzIG11c3QgYmUgZW1wdHkgd2hlbiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxl
bWVudHMgZm9yIHRoZSBzbG90IG5hbWUnKTsKLQotfSwgJ2dldEFzc2lnbmVkTm9kZXMgbXVzdCB1
cGRhdGUgd2hlbiBhIGRlZmF1bHQgc2xvdCBpcyBpbnRyb2R1Y2VkIGR5bmFtaWNhbGx5IGJ5IGEg
c2xvdCByZW5hbWUnKTsKK2Z1bmN0aW9uIHRlc3RTbG90T3V0c2lkZVNoYWRvd1RyZWUob3B0aW9u
cykKK3sKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoJ2Fzc2ln
bmVkTm9kZXMnIGluIEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUsICciYXNzaWduZWROb2RlcyIg
bWV0aG9kIG11c3QgYmUgZGVmaW5lZCBvbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlJyk7CisK
KyAgICAgICAgdmFyIHNsb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMo
b3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcygpIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5
IHdoZW4gdGhlIHNsb3QgZWxlbWVudCBpcyBub3QgaW4gYW55IHRyZWUnKTsKKworICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNsb3RFbGVtZW50KTsKKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhzbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwgJ2Fzc2ln
bmVkTm9kZXMoKSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBzbG90IGVsZW1l
bnQgaXMgaW4gYSBkb2N1bWVudCB0cmVlJyk7CisKKyAgICB9LCAnYXNzaWduZWROb2RlcygnICsg
KG9wdGlvbnMgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSA6ICcnKQorICAgICAgICArICcpIG9u
IGEgSFRNTFNsb3RFbGVtZW50IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHNs
b3QgZWxlbWVudCBpcyBub3QgaW4gYSB0cmVlIG9yIGluIGEgZG9jdW1lbnQgdHJlZScpOworfQor
Cit0ZXN0U2xvdE91dHNpZGVTaGFkb3dUcmVlKG51bGwpOwordGVzdFNsb3RPdXRzaWRlU2hhZG93
VHJlZSh7ZmxhdHRlbmVkOiBmYWxzZX0pOwordGVzdFNsb3RPdXRzaWRlU2hhZG93VHJlZSh7Zmxh
dHRlbmVkOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHRlc3RTaW5nbGVMZXZlbE9mU2xvdHRpbmcob3B0
aW9ucykKK3sKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoJ2Fz
c2lnbmVkTm9kZXMnIGluIEhUTUxTbG90RWxlbWVudC5wcm90b3R5cGUsICciYXNzaWduZWROb2Rl
cyIgbWV0aG9kIG11c3QgYmUgZGVmaW5lZCBvbiBIVE1MU2xvdEVsZW1lbnQucHJvdG90eXBlJyk7
CisKKyAgICAgICAgdmFyIHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOworCisg
ICAgICAgIHZhciBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdv
cGVuJ30pOworICAgICAgICB2YXIgc2xvdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzbG90Jyk7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2xvdEVsZW1lbnQpOwor
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2Rlcyhv
cHRpb25zKSwgW10sICdhc3NpZ25lZE5vZGVzKCkgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkg
d2hlbiB0aGVyZSBhcmUgbm8gbm9kZXMgaW4gdGhlIHNoYWRvdyB0cmVlJyk7CisKKyAgICAgICAg
c2hhZG93SG9zdC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW2NoaWxkXSwgJ2Fzc2lnbmVk
Tm9kZXMoKSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbGVtZW50IHdpdGhvdXQg
c2xvdCBlbGVtZW50Jyk7CisKKyAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzbG90JywgJ2Zv
bycpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9k
ZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3Qg
bm90IHJldHVybiBhbiBlbGVtZW50IHdpdGggbm9uLWVtcHR5IHNsb3QgYXR0cmlidXRlJyk7CisK
KyAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzbG90JywgJycpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtjaGlsZF0s
ICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZWxlbWVu
dCB3aXRoIGVtcHR5IHNsb3QgYXR0cmlidXRlJyk7CisKKyAgICAgICAgc2xvdEVsZW1lbnQuc2V0
QXR0cmlidXRlKCduYW1lJywgJ2JhcicpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNs
b3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcygpIG9u
IGEgbmFtZWQgc2xvdCBtdXN0IG5vdCByZXR1cm4gYW4gZWxlbWVudCB3aXRoIGVtcHR5IHNsb3Qg
YXR0cmlidXRlJyk7CisKKyAgICAgICAgc2xvdEVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywg
JycpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9k
ZXMob3B0aW9ucyksIFtjaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYW4gZW1wdHkgbmFtZSBz
bG90IG11c3QgcmV0dXJuIGFuIGVsZW1lbnQgd2l0aCBlbXB0eSBzbG90IGF0dHJpYnV0ZScpOwor
CisgICAgfSwgJ2Fzc2lnbmVkTm9kZXMoJyArIChvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0
aW9ucykgOiAnJykgKyAnKSBtdXN0IHJldHVybiB0aGUgbGlzdCBvZiBhc3NpZ25lZCBub2RlcyB3
aGVuIG5vbmUgb2YgdGhlIGFzc2lnbmVkIG5vZGVzIHRoZW1zZWx2ZXMgYXJlIHNsb3RzJyk7Cit9
CisKK3Rlc3RTaW5nbGVMZXZlbE9mU2xvdHRpbmcobnVsbCk7Cit0ZXN0U2luZ2xlTGV2ZWxPZlNs
b3R0aW5nKHtmbGF0dGVuZWQ6IGZhbHNlfSk7Cit0ZXN0U2luZ2xlTGV2ZWxPZlNsb3R0aW5nKHtm
bGF0dGVuZWQ6IHRydWV9KTsKKworZnVuY3Rpb24gdGVzdE11dGF0aW5nU2xvdHRlZENvbnRlbnRz
KG9wdGlvbnMpCit7CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzaGFkb3dI
b3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIHZhciBwID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOworICAgICAgICB2YXIgYiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2InKTsKKyAgICAgICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChwKTsKKyAgICAg
ICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChiKTsKKworICAgICAgICB2YXIgc2hhZG93Um9vdCA9
IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KTsKKyAgICAgICAgdmFyIHNs
b3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2xvdCcpOworICAgICAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKHNsb3RFbGVtZW50KTsKKworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtwLCBiXSwgJ2Fzc2ln
bmVkTm9kZXMgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5vZGVzJyk7CisKKyAgICAgICAg
c2xvdEVsZW1lbnQubmFtZSA9ICdmb28nOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNs
b3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcyBtdXN0
IGJlIGVtcHR5IHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIGVsZW1lbnRzIGZvciB0aGUgc2xv
dCBuYW1lJyk7CisKKyAgICAgICAgYi5zbG90ID0gJ2Zvbyc7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW2JdLCAnYXNzaWdu
ZWROb2RlcyBtdXN0IHJldHVybiB0aGUgbm9kZXMgd2l0aCB0aGUgbWF0Y2hpbmcgc2xvdCBuYW1l
Jyk7CisKKyAgICAgICAgcC5zbG90ID0gJ2Zvbyc7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwgW3AsIGJdLCAnYXNzaWduZWRO
b2RlcyBtdXN0IHJldHVybiB0aGUgbm9kZXMgd2l0aCB0aGUgbWF0Y2hpbmcgc2xvdCBuYW1lIGlu
IHRoZSB0cmVlIG9yZGVyJyk7CisKKyAgICAgICAgc2xvdEVsZW1lbnQucmVtb3ZlQXR0cmlidXRl
KCduYW1lJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWdu
ZWROb2RlcyhvcHRpb25zKSwgW10sICdhc3NpZ25lZE5vZGVzIG11c3QgYmUgZW1wdHkgZm9yIGEg
ZGVmYXVsdCBzbG90IHdoZW4gYWxsIGVsZW1lbnRzIGhhdmUgInNsb3QiIGF0dHJpYnV0ZXMgc3Bl
Y2lmaWVkJyk7CisKKyAgICB9LCAnYXNzaWduZWROb2RlcygnICsgKG9wdGlvbnMgPyBKU09OLnN0
cmluZ2lmeShvcHRpb25zKSA6ICcnKSArICcpIG11c3QgdXBkYXRlIHdoZW4gc2xvdCBhbmQgbmFt
ZSBhdHRyaWJ1dGVzIGFyZSBtb2RpZmllZCcpOworfQorCit0ZXN0TXV0YXRpbmdTbG90dGVkQ29u
dGVudHMobnVsbCk7Cit0ZXN0TXV0YXRpbmdTbG90dGVkQ29udGVudHMoe2ZsYXR0ZW5lZDogZmFs
c2V9KTsKK3Rlc3RNdXRhdGluZ1Nsb3R0ZWRDb250ZW50cyh7ZmxhdHRlbmVkOiB0cnVlfSk7CisK
K2Z1bmN0aW9uIHRlc3RNdXRhdGluZ1Nsb3ROYW1lKG9wdGlvbnMpCit7CisgICAgdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKKyAgICAgICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChjaGlsZCk7CisKKyAgICAgICAg
dmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ29wZW4nfSk7
CisgICAgICAgIHZhciBzbG90RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nsb3Qn
KTsKKyAgICAgICAgc2xvdEVsZW1lbnQubmFtZSA9ICdmb28nOworICAgICAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKHNsb3RFbGVtZW50KTsKKworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtdLCAnYXNzaWduZWROb2RlcyBt
dXN0IGJlIGVtcHR5IHdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoaW5nIGVsZW1lbnRzIGZvciB0aGUg
c2xvdCBuYW1lJyk7CisKKyAgICAgICAgc2xvdEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCduYW1l
Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2xvdEVsZW1lbnQuYXNzaWduZWROb2Rl
cyhvcHRpb25zKSwgW2NoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMgbXVzdCBiZSBlbXB0eSB3aGVuIHRo
ZXJlIGFyZSBubyBtYXRjaGluZyBlbGVtZW50cyBmb3IgdGhlIHNsb3QgbmFtZScpOworCisgICAg
fSwgJ2Fzc2lnbmVkTm9kZXMgbXVzdCB1cGRhdGUgd2hlbiBhIGRlZmF1bHQgc2xvdCBpcyBpbnRy
b2R1Y2VkIGR5bmFtaWNhbGx5IGJ5IGEgc2xvdCByZW5hbWUnKTsKK30KKwordGVzdE11dGF0aW5n
U2xvdE5hbWUobnVsbCk7Cit0ZXN0TXV0YXRpbmdTbG90dGVkQ29udGVudHMoe2ZsYXR0ZW5lZDog
ZmFsc2V9KTsKK3Rlc3RNdXRhdGluZ1Nsb3R0ZWRDb250ZW50cyh7ZmxhdHRlbmVkOiB0cnVlfSk7
CisKK2Z1bmN0aW9uIHRlc3RJbnNlcnRpbmdBbmRSZW1vdmluZ1Nsb3RzKG9wdGlvbnMpCit7Cisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgncCcpOworICAgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcn
KTsKKyAgICAgICAgdmFyIGNvbW1lbnQgPSBkb2N1bWVudC5jcmVhdGVDb21tZW50KCcnKTsKKyAg
ICAgICAgdmFyIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigndGFyZ2V0JywgJ2RhdGEnKTsKKyAgICAgICAgdmFyIGIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdiJyk7CisgICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQocCk7
CisgICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQodGV4dCk7CisgICAgICAgIHNoYWRvd0hv
c3QuYXBwZW5kQ2hpbGQoY29tbWVudCk7CisgICAgICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQo
cHJvY2Vzc2luZ0luc3RydWN0aW9uKTsKKyAgICAgICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChi
KTsKKworICAgICAgICB2YXIgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnb3Blbid9KTsKKworICAgICAgICB2YXIgZmlyc3RTbG90RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKKyAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChm
aXJzdFNsb3RFbGVtZW50KTsKKworICAgICAgICB2YXIgc2Vjb25kU2xvdEVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQoc2Vjb25kU2xvdEVsZW1lbnQpOworCisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZmly
c3RTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbcCwgdGV4dCwgYl0sCisgICAg
ICAgICAgICAnYXNzaWduZWROb2RlcyBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUg
ZWxlbWVudHMgd2l0aG91dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRleHQgbm9kZXMnKTsKKyAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9w
dGlvbnMpLCBbXSwKKyAgICAgICAgICAgICdhc3NpZ25lZE5vZGVzIG9uIHRoZSBzZWNvbmQgdW5u
YW1lZCBzbG90IGVsZW1lbnQgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKKworICAgICAg
ICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGZpcnN0U2xvdEVsZW1lbnQpOworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGZpcnN0U2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwg
W10sCisgICAgICAgICAgICAnYXNzaWduZWROb2RlcyBvbiBhIGRldGFjaGVkIGZvcm1lcmx5LWRl
ZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheScpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHNlY29uZFNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyksIFtw
LCB0ZXh0LCBiXSwKKyAgICAgICAgICAgICdhc3NpZ25lZE5vZGVzIG9uIHRoZSBzZWNvbmQgdW5u
YW1lZCBzbG90IGVsZW1lbnQgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGZpcnN0IG11c3QgcmV0dXJuIHRo
ZSBlbGVtZW50cyB3aXRob3V0IHNsb3QgYXR0cmlidXRlcyBhbmQgdGV4dCBub2RlcycpOworCisg
ICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoc2Vjb25kU2xvdEVsZW1lbnQpOworICAgICAg
ICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNlY29uZFNsb3RFbGVtZW50KTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhmaXJzdFNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXMob3B0aW9ucyks
IFtdLAorICAgICAgICAgICAgJ1JlbW92aW5nIGFuZCByZS1pbnNlcnRpbmcgYSBkZWZhdWx0IHNs
b3QgbXVzdCBub3QgY2hhbmdlIHRoZSByZXN1bHQgb2YgYXNzaWduZWROb2RlcyBvbiBhIGRldGFj
aGVkIHNsb3QnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVu
dC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbcCwgdGV4dCwgYl0sCisgICAgICAgICAgICAnUmVt
b3ZpbmcgYW5kIHJlLWluc2VydGluZyBhIGRlZmF1bHQgc2xvdCBtdXN0IG5vdCBjaGFuZ2UgdGhl
IHJlc3VsdCBvZiBhc3NpZ25lZE5vZGVzJyk7CisKKyAgICAgICAgc2hhZG93Um9vdC5pbnNlcnRC
ZWZvcmUoZmlyc3RTbG90RWxlbWVudCwgc2Vjb25kU2xvdEVsZW1lbnQpOworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGZpcnN0U2xvdEVsZW1lbnQuYXNzaWduZWROb2RlcyhvcHRpb25zKSwg
W3AsIHRleHQsIGJdLAorICAgICAgICAgICAgJ2Fzc2lnbmVkTm9kZXMgb24gYSBuZXdseSBpbnNl
cnRlZCB1bm5hbWVkIHNsb3QgZWxlbWVudCBtdXN0IHJldHVybiB0aGUgZWxlbWVudHMgd2l0aG91
dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRleHQgbm9kZXMnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhzZWNvbmRTbG90RWxlbWVudC5hc3NpZ25lZE5vZGVzKG9wdGlvbnMpLCBbXSwKKyAg
ICAgICAgICAgICdhc3NpZ25lZE5vZGVzIG9uIGZvcm1lcmx5LWZpcnN0IGJ1dCBub3cgc2Vjb25k
IHVubmFtZWQgc2xvdCBlbGVtZW50IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5Jyk7CisKKyAg
ICB9LCAnYXNzaWduZWROb2RlcyBtdXN0IHVwZGF0ZSB3aGVuIHNsb3QgZWxlbWVudHMgYXJlIGlu
c2VydGVkIG9yIHJlbW92ZWQnKTsKK30KKwordGVzdEluc2VydGluZ0FuZFJlbW92aW5nU2xvdHMo
bnVsbCk7Cit0ZXN0SW5zZXJ0aW5nQW5kUmVtb3ZpbmdTbG90cyh7ZmxhdHRlbmVkOiBmYWxzZX0p
OwordGVzdEluc2VydGluZ0FuZFJlbW92aW5nU2xvdHMoe2ZsYXR0ZW5lZDogdHJ1ZX0pOwogCiB0
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgc2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwot
ICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpOwotICAgIHZhciBjb21t
ZW50ID0gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgnJyk7Ci0gICAgdmFyIHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigndGFyZ2V0Jywg
J2RhdGEnKTsKLSAgICB2YXIgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKTsKLSAgICBz
aGFkb3dIb3N0LmFwcGVuZENoaWxkKHApOwotICAgIHNoYWRvd0hvc3QuYXBwZW5kQ2hpbGQodGV4
dCk7Ci0gICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChjb21tZW50KTsKLSAgICBzaGFkb3dIb3N0
LmFwcGVuZENoaWxkKHByb2Nlc3NpbmdJbnN0cnVjdGlvbik7Ci0gICAgc2hhZG93SG9zdC5hcHBl
bmRDaGlsZChiKTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFk
b3coe21vZGU6ICdvcGVuJ30pOwotCi0gICAgdmFyIGZpcnN0U2xvdEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChmaXJz
dFNsb3RFbGVtZW50KTsKLQotICAgIHZhciBzZWNvbmRTbG90RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3Nsb3QnKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNlY29uZFNs
b3RFbGVtZW50KTsKLQotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZmlyc3RTbG90RWxlbWVudC5n
ZXRBc3NpZ25lZE5vZGVzKCksIFtwLCB0ZXh0LCBiXSwKLSAgICAgICAgJ2dldEFzc2lnbmVkTm9k
ZXMgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGVsZW1lbnRzIHdpdGhvdXQgc2xv
dCBhdHRyaWJ1dGVzIGFuZCB0ZXh0IG5vZGVzJyk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
ZWNvbmRTbG90RWxlbWVudC5nZXRBc3NpZ25lZE5vZGVzKCksIFtdLAotICAgICAgICAnZ2V0QXNz
aWduZWROb2RlcyBvbiB0aGUgc2Vjb25kIHVubmFtZWQgc2xvdCBlbGVtZW50IG11c3QgcmV0dXJu
IGFuIGVtcHR5IGFycmF5Jyk7Ci0KLSAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGZpcnN0U2xv
dEVsZW1lbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZmlyc3RTbG90RWxlbWVudC5nZXRB
c3NpZ25lZE5vZGVzKCksIFtdLAotICAgICAgICAnZ2V0QXNzaWduZWROb2RlcyBvbiBhIGRldGFj
aGVkIGZvcm1lcmx5LWRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheScpOwot
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2Vjb25kU2xvdEVsZW1lbnQuZ2V0QXNzaWduZWROb2Rl
cygpLCBbcCwgdGV4dCwgYl0sCi0gICAgICAgICdnZXRBc3NpZ25lZE5vZGVzIG9uIHRoZSBzZWNv
bmQgdW5uYW1lZCBzbG90IGVsZW1lbnQgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGZpcnN0IG11c3QgcmV0
dXJuIHRoZSBlbGVtZW50cyB3aXRob3V0IHNsb3QgYXR0cmlidXRlcyBhbmQgdGV4dCBub2Rlcycp
OwotCi0gICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChzZWNvbmRTbG90RWxlbWVudCk7Ci0gICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzZWNvbmRTbG90RWxlbWVudCk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhmaXJzdFNsb3RFbGVtZW50LmdldEFzc2lnbmVkTm9kZXMoKSwgW10sCi0gICAg
ICAgICdSZW1vdmluZyBhbmQgcmUtaW5zZXJ0aW5nIGEgZGVmYXVsdCBzbG90IG11c3Qgbm90IGNo
YW5nZSB0aGUgcmVzdWx0IG9mIGdldEFzc2lnbmVkTm9kZXMgb24gYSBkZXRhY2hlZCBzbG90Jyk7
Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZWNvbmRTbG90RWxlbWVudC5nZXRBc3NpZ25lZE5v
ZGVzKCksIFtwLCB0ZXh0LCBiXSwKLSAgICAgICAgJ1JlbW92aW5nIGFuZCByZS1pbnNlcnRpbmcg
YSBkZWZhdWx0IHNsb3QgbXVzdCBub3QgY2hhbmdlIHRoZSByZXN1bHQgb2YgZ2V0QXNzaWduZWRO
b2RlcycpOwotCi0gICAgc2hhZG93Um9vdC5pbnNlcnRCZWZvcmUoZmlyc3RTbG90RWxlbWVudCwg
c2Vjb25kU2xvdEVsZW1lbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZmlyc3RTbG90RWxl
bWVudC5nZXRBc3NpZ25lZE5vZGVzKCksIFtwLCB0ZXh0LCBiXSwKLSAgICAgICAgJ2dldEFzc2ln
bmVkTm9kZXMgb24gYSBuZXdseSBpbnNlcnRlZCB1bm5hbWVkIHNsb3QgZWxlbWVudCBtdXN0IHJl
dHVybiB0aGUgZWxlbWVudHMgd2l0aG91dCBzbG90IGF0dHJpYnV0ZXMgYW5kIHRleHQgbm9kZXMn
KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlY29uZFNsb3RFbGVtZW50LmdldEFzc2lnbmVk
Tm9kZXMoKSwgW10sCi0gICAgICAgICdnZXRBc3NpZ25lZE5vZGVzIG9uIGZvcm1lcmx5LWZpcnN0
IGJ1dCBub3cgc2Vjb25kIHVubmFtZWQgc2xvdCBlbGVtZW50IG11c3QgcmV0dXJuIGFuIGVtcHR5
IGFycmF5Jyk7CisgICAgdmFyIG91dGVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIHZhciBvdXRlckNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bhbicp
OworICAgIG91dGVySG9zdC5hcHBlbmRDaGlsZChvdXRlckNoaWxkKTsKKworICAgIHZhciBvdXRl
clNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAg
dmFyIGlubmVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHZhciBv
dXRlclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgdmFyIGlubmVy
Q2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdiJyk7CisgICAgb3V0ZXJTaGFkb3cuYXBw
ZW5kQ2hpbGQoaW5uZXJIb3N0KTsKKyAgICBpbm5lckhvc3QuYXBwZW5kQ2hpbGQob3V0ZXJTbG90
KTsKKyAgICBpbm5lckhvc3QuYXBwZW5kQ2hpbGQoaW5uZXJDaGlsZCk7CisKKyAgICB2YXIgaW5u
ZXJTaGFkb3cgPSBpbm5lckhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAg
IHZhciBpbm5lclNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzbG90Jyk7CisgICAgaW5u
ZXJTaGFkb3cuYXBwZW5kQ2hpbGQoaW5uZXJTbG90KTsKKworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMob3V0ZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVyQ2hpbGRdLCAnYXNzaWduZWROb2Rl
cygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMob3V0ZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46
IGZhbHNlfSksIFtvdXRlckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IGZhbHNlfSkg
b24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1
ZX0pLCBbb3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgb24gYSBk
ZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzIGlmIHRoZXkgYXJlIG5v
dCB0aGVtc2VsdmVzIHNsb3RzJyk7CisKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVyU2xv
dC5hc3NpZ25lZE5vZGVzKCksIFtvdXRlclNsb3QsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rl
cygpIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46
IGZhbHNlfSksIFtvdXRlclNsb3QsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRl
bjogZmFsc2V9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgYXNzaWduZWQgbm9k
ZXMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVyU2xvdC5hc3NpZ25lZE5vZGVzKHtm
bGF0dGVuOiB0cnVlfSksIFtvdXRlckNoaWxkLCBpbm5lckNoaWxkXSwgJ2Fzc2lnbmVkTm9kZXMo
e2ZsYXR0ZW46IHRydWV9KSBvbiBhIGRlZmF1bHQgc2xvdCBtdXN0IHJldHVybiB0aGUgZGlzdHJp
YnV0ZWQgbm9kZXMnKTsKKworICAgIG91dGVyU2xvdC5uYW1lID0gJ2Zvbyc7CisgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2RlcygpLCBbXSwgJ2Fzc2lnbmVkTm9k
ZXMoKSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgaWYgdGhlcmUg
YXJlIG5vIG1hdGNoaW5nIGVsZW1lbnRzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRl
clNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW10sICdhc3NpZ25lZE5vZGVz
KHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgbmFtZWQgc2xvdCBtdXN0IHJldHVybiBhbiBlbXB0eSBh
cnJheSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMnKTsKKyAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG91dGVyU2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtdLCAn
YXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgbmFtZWQgc2xvdCBtdXN0IHJldHVy
biBhbiBlbXB0eSBhcnJheSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgZWxlbWVudHMnKTsKKwor
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVy
U2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVz
dCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhp
bm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyU2xvdCwgaW5u
ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgZGVmYXVsdCBz
bG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOworICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwgW2lubmVyQ2hp
bGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11
c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2RlcycpOworCisgICAgb3V0ZXJDaGlsZC5zbG90
ID0gJ2Zvbyc7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRlclNsb3QuYXNzaWduZWROb2Rl
cygpLCBbb3V0ZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBuYW1lZCBzbG90IG11c3Qg
cmV0dXJuIG1hdGNoaW5nIGVsZW1lbnRzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhvdXRl
clNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyQ2hpbGRdLCAnYXNz
aWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4g
bWF0Y2hpbmcgZWxlbWVudHMnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG91dGVyU2xvdC5h
c3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtvdXRlckNoaWxkXSwgJ2Fzc2lnbmVkTm9k
ZXMoe2ZsYXR0ZW46IHRydWV9KSBvbiBhIG5hbWVkIHNsb3QgbXVzdCByZXR1cm4gbWF0Y2hpbmcg
ZWxlbWVudHMnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVk
Tm9kZXMoKSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBk
ZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwg
W291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0p
IG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOworICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRy
dWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjog
dHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2Rl
cycpOworCisgICAgdmFyIG5ld0lubmVyU2xvdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Ns
b3QnKTsKKyAgICBpbm5lclNoYWRvdy5pbnNlcnRCZWZvcmUobmV3SW5uZXJTbG90LCBpbm5lclNs
b3QpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3SW5uZXJTbG90LmFzc2lnbmVkTm9kZXMo
KSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKCkgb24gYSBkZWZhdWx0
IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5vZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhuZXdJbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW291
dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9u
IGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3NpZ25lZCBub2RlcycpOworICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobmV3SW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46IHRy
dWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAnYXNzaWduZWROb2Rlcyh7ZmxhdHRlbjog
dHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBkaXN0cmlidXRlZCBub2Rl
cycpOworCisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcygp
LCBbXSwgJ2Fzc2lnbmVkTm9kZXMoKSBvbiBhIG5hbWVsZXNzIHNsb3QgZWxlbWVudCB3aGljaCBh
cHBlYXJzIGFmdGVyIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5Jyk7
CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7ZmxhdHRl
bjogZmFsc2V9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgbmFt
ZWxlc3Mgc2xvdCBlbGVtZW50IHdoaWNoIGFwcGVhcnMgYWZ0ZXIgYSBkZWZhdWx0IHNsb3QgbXVz
dCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGlubmVy
U2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtdLCAnYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgbmFtZWxlc3Mgc2xvdCBlbGVtZW50IHdoaWNoIGFwcGVhcnMg
YWZ0ZXIgYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXknKTsKKworICAg
IGlubmVyU2hhZG93LnJlbW92ZUNoaWxkKG5ld0lubmVyU2xvdCk7CisgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhuZXdJbm5lclNsb3QuYXNzaWduZWROb2RlcygpLCBbXSwgJ2Fzc2lnbmVkTm9kZXMo
KSBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZSBzbG90IGVsZW1lbnQgaXMgbm90
IGluIGFueSB0cmVlJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXdJbm5lclNsb3QuYXNz
aWduZWROb2Rlcyh7ZmxhdHRlbjogZmFsc2V9KSwgW10sICdhc3NpZ25lZE5vZGVzKHtmbGF0dGVu
OiBmYWxzZX0pIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHNsb3QgZWxlbWVu
dCBpcyBub3QgaW4gYW55IHRyZWUnKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ld0lubmVy
U2xvdC5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSksIFtdLCAnYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogdHJ1ZX0pIG11c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHNsb3Qg
ZWxlbWVudCBpcyBub3QgaW4gYW55IHRyZWUnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
aW5uZXJTbG90LmFzc2lnbmVkTm9kZXMoKSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3Np
Z25lZE5vZGVzKCkgb24gYSBkZWZhdWx0IHNsb3QgbXVzdCByZXR1cm4gdGhlIGFzc2lnbmVkIG5v
ZGVzJyk7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbm5lclNsb3QuYXNzaWduZWROb2Rlcyh7
ZmxhdHRlbjogZmFsc2V9KSwgW291dGVyU2xvdCwgaW5uZXJDaGlsZF0sICdhc3NpZ25lZE5vZGVz
KHtmbGF0dGVuOiBmYWxzZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRoZSBhc3Np
Z25lZCBub2RlcycpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW5uZXJTbG90LmFzc2lnbmVk
Tm9kZXMoe2ZsYXR0ZW46IHRydWV9KSwgW291dGVyQ2hpbGQsIGlubmVyQ2hpbGRdLCAnYXNzaWdu
ZWROb2Rlcyh7ZmxhdHRlbjogdHJ1ZX0pIG9uIGEgZGVmYXVsdCBzbG90IG11c3QgcmV0dXJuIHRo
ZSBkaXN0cmlidXRlZCBub2RlcycpOwogCi19LCAnZ2V0QXNzaWduZWROb2RlcyBtdXN0IHVwZGF0
ZSB3aGVuIHNsb3QgZWxlbWVudHMgYXJlIGluc2VydGVkIG9yIHJlbW92ZWQnKTsKK30sICdhc3Np
Z25lZE5vZGVzKHtmbGF0dGVuOiB0cnVlfSkgbXVzdCByZXR1cm4gdGhlIGRpc3RyaWJ1dGVkIG5v
ZGVzLCBhbmQgYXNzaWduZWROb2RlcygpIGFuZCBhc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiBmYWxz
ZX0pIG11c3QgcmV0dXJuZWQgdGhlIGFzc2lnbmVkIG5vZGVzJyk7CiAKIDwvc2NyaXB0PgogPC9i
b2R5Pgo=
</data>
<flag name="review"
          id="301931"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>