<?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>109776</bug_id>
          
          <creation_ts>2013-02-13 17:26:17 -0800</creation_ts>
          <short_desc>Support both MutationObserver and WebKitMutationObserver</short_desc>
          <delta_ts>2013-02-19 15:00:15 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89231</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rafaelw</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832578</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-13 17:26:17 -0800</bug_when>
    <thetext>Unprefix MutationObserver constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832613</commentid>
    <comment_count>1</comment_count>
      <attachid>188240</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-13 17:57:15 -0800</bug_when>
    <thetext>Created attachment 188240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832686</commentid>
    <comment_count>2</comment_count>
      <attachid>188240</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-13 19:55:56 -0800</bug_when>
    <thetext>Comment on attachment 188240
Patch

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

&gt; Source/WebCore/page/DOMWindow.idl:802
&gt; +    attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.

Should we add a test that the prefixed version still works?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832694</commentid>
    <comment_count>3</comment_count>
      <attachid>188240</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-13 20:17:14 -0800</bug_when>
    <thetext>Comment on attachment 188240
Patch

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

&gt;&gt; Source/WebCore/page/DOMWindow.idl:802
&gt;&gt; +    attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
&gt; 
&gt; Should we add a test that the prefixed version still works?

I did, that&apos;s what the mutation-observer-prefix.html test is in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834209</commentid>
    <comment_count>4</comment_count>
      <attachid>188240</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-15 11:27:14 -0800</bug_when>
    <thetext>Comment on attachment 188240
Patch

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

&gt;&gt;&gt; Source/WebCore/page/DOMWindow.idl:802
&gt;&gt;&gt; +    attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
&gt;&gt; 
&gt;&gt; Should we add a test that the prefixed version still works?
&gt; 
&gt; I did, that&apos;s what the mutation-observer-prefix.html test is in the ChangeLog.

Ah. I missed that obviously. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836804</commentid>
    <comment_count>5</comment_count>
      <attachid>188240</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 15:00:11 -0800</bug_when>
    <thetext>Comment on attachment 188240
Patch

Clearing flags on attachment: 188240

Committed r143386: &lt;http://trac.webkit.org/changeset/143386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836805</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 15:00:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188240</attachid>
            <date>2013-02-13 17:57:15 -0800</date>
            <delta_ts>2013-02-19 15:00:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109776-20130213175342.patch</filename>
            <type>text/plain</type>
            <size>43979</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRkOTU0ZjAxZjk0ZjA4
ODBjZjJjNGUzNGQ5OWI3MzVmY2IxMDQ0Zi4uMjlmNDVlZjEzZjdjM2Q5NGVjMTYzZTMyZmM1OTRj
ZDUyYmYxMzU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAyLTEzICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN1cHBvcnQgYm90
aCBNdXRhdGlvbk9ic2VydmVyIGFuZCBXZWJLaXRNdXRhdGlvbk9ic2VydmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgYWxsb3cgbmV3
IE11dGF0aW9uT2JzZXJ2ZXIgbm93IHRoYXQgd2Ugc3VwcG9ydCBwYXJzZXIgZ2VuZXJhdGVkCisg
ICAgICAgIG11dGF0aW9ucy4gVGhpcyBsZWF2ZXMgdGhlIG9sZCBwcmVmaXhlZCBjb25zdHJ1Y3Rv
ciBpbiB1bnRpbCB3ZSBkZWNpZGUKKyAgICAgICAgcGVvcGxlIGRvbid0IGRlcGVuZCBvbiBpdC4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9ic2Vy
dmVyLXByZWZpeC5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTMt
MDItMTMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtW
OF0gUmVuYW1lIFhYWEFjY2Vzc29yR2V0dGVyKCkgdG8gWFhYQXR0ckdldHRlckN1c3RvbSgpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGQ0NWMwMWY3MTk2OTllOTgyMzUxZDMxNDNj
ODUzZTU5YWMxYzliOTYuLjFiMTBjYmQ2NjE5YjQ3ZjQ4MzZiZWQ1MjMwNTAzM2Q5NDBlYThkY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTc5OSw3ICs3OTksOCBAQAogICAgIFtD
b25kaXRpb25hbD1CTE9CXSBhdHRyaWJ1dGUgRE9NVVJMQ29uc3RydWN0b3IgVVJMOwogICAgIFtD
b25kaXRpb25hbD1CTE9CXSBhdHRyaWJ1dGUgRE9NVVJMQ29uc3RydWN0b3Igd2Via2l0VVJMOyAv
LyBGSVhNRTogZGVwcmVjYXRlIHRoaXMuCiAKLSAgICBhdHRyaWJ1dGUgTXV0YXRpb25PYnNlcnZl
ckNvbnN0cnVjdG9yIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI7CisgICAgYXR0cmlidXRlIE11dGF0
aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOyAvLyBGSVhNRTog
QWRkIG1ldHJpY3MgdG8gZGV0ZXJtaW5lIHdoZW4gd2UgY2FuIHJlbW92ZSB0aGlzLgorICAgIGF0
dHJpYnV0ZSBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgTXV0YXRpb25PYnNlcnZlcjsKIAog
ICAgIFtDb25kaXRpb25hbD1NRURJQV9TT1VSQ0UsIFY4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNv
dXJjZV0gYXR0cmlidXRlIE1lZGlhU291cmNlQ29uc3RydWN0b3IgV2ViS2l0TWVkaWFTb3VyY2U7
CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NPVVJDRSwgVjhFbmFibGVkQXRSdW50aW1lPW1lZGlh
U291cmNlXSBhdHRyaWJ1dGUgU291cmNlQnVmZmVyQ29uc3RydWN0b3IgV2ViS2l0U291cmNlQnVm
ZmVyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGMwMTQxOTU0YTc5ZjkyYWY3NmM4NzMzNGIxNjE5ZTg1NDg1ZjcxN2QuLmU5
MWZlNGUzMDU4Njg4Y2E5NDY4MWVlNTU0MTE2MGYzMTBmYTY2ZmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MSBAQAorMjAxMy0wMi0xMyAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IGJvdGggTXV0YXRpb25PYnNlcnZlciBhbmQgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5Nzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2FkZGVkLW91dC1vZi1vcmRlci5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvY2FsbGJhY2stYXJndW1lbnRzLmh0
bWw6CisgICAgICAgICogZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9jbGVhci10cmFuc2llbnQt
d2l0aG91dC1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011dGF0
aW9uT2JzZXJ2ZXIvY3Jvc3MtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9NdXRh
dGlvbk9ic2VydmVyL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kZWxpdmVyeS1vcmRlci5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZG9jdW1lbnQtZnJhZ21lbnQt
aW5zZXJ0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9lbmQt
b2YtdGFzay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1jYWxsYmFjay1ub24t
ZWxlbWVudC1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
bXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9N
dXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9ic2VydmVyLXByZWZpeC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2
ZXItcHJlZml4Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvbXV0YXRpb24tcmVjb3JkLW51bGxpdHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9NdXRh
dGlvbk9ic2VydmVyL29ic2VydmUtYXR0cmlidXRlcy5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWNoaWxkTGlzdC5odG1sOgorICAgICAg
ICAqIGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLXN1YnRyZWUuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmVyLXdyYXBwZXItZHJv
cG9mZi10cmFuc2llbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVy
L29ic2VydmVyLXdyYXBwZXItZHJvcG9mZi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011dGF0
aW9uT2JzZXJ2ZXIvcGFyc2VyLW11dGF0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL011
dGF0aW9uT2JzZXJ2ZXIvcmVtb3ZlZC1vdXQtb2Ytb3JkZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2RvbS9NdXRhdGlvbk9ic2VydmVyL3NoYWRvdy1kb20uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9NdXRhdGlvbk9ic2VydmVyL3Rha2VSZWNvcmRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
TXV0YXRpb25PYnNlcnZlci90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbDoKKwogMjAxMy0wMi0xMyAg
IFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEhUTUxD
b2xsZWN0aW9ucyBuYW1lZEl0ZW0oKSBtZXRob2RzIHNob3VsZCByZXR1cm4gbnVsbCB0aGFuIHVu
ZGVmaW5lZCBmb3IgZW1wdHkgY29sbGVjdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2FkZGVkLW91dC1vZi1vcmRlci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9hZGRlZC1vdXQtb2Ytb3JkZXIuaHRtbApp
bmRleCA2MWI2MjFiM2I2ZTc1ZGVjZmQwYzFkOGFmZDllY2UyZGEzNzY4YjFlLi43YmYwOTQ4ZmUw
ZTczMzgxZjkxOGVmYTZkN2FiYjg1ZWY0ZThmNmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2FkZGVkLW91dC1vZi1vcmRlci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvYWRkZWQtb3V0LW9mLW9yZGVyLmh0
bWwKQEAgLTExLDcgKzExLDcgQEAgc2FuZGJveC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlUmVt
b3ZlZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICBpbnNlcnRlZCA9IHRydWU7CiAgICAgfQogfSk7
Ci12YXIgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe30p
OwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXt9KTsKIG9i
c2VydmVyLm9ic2VydmUoc2FuZGJveCwge2NoaWxkTGlzdDogdHJ1ZX0pOwogc2FuZGJveC50ZXh0
Q29udGVudCA9ICdoZWxsbyB3b3JsZCc7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIvY2FsbGJhY2stYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2NhbGxiYWNrLWFyZ3VtZW50cy5odG1sCmluZGV4
IDViMGZlZmVjODYxZGViNGMzMWM0ODViZDM4Y2ZlNWEwMjM1OWQ0OWIuLmM4NTMxNzg0ZWRjYjdi
ZjQxMThlMzc2MWM3Yzk3MGEzYWRiNDBmNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIvY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9jYWxsYmFjay1hcmd1bWVudHMuaHRtbApA
QCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiBtdXRhdGlvbkNhbGxiYWNrKG11dGF0aW9ucywgb2Jz
ZXJ2ZXIpIHsKICAgICBzaG91bGRCZSgnYXJndW1lbnQyJywgJ211dGF0aW9uT2JzZXJ2ZXInKTsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLXZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7Cit2YXIgbXV0YXRpb25PYnNlcnZl
ciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwogdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRp
diwge2F0dHJpYnV0ZXM6IHRydWV9KTsKIGRpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvY2xlYXIt
dHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011
dGF0aW9uT2JzZXJ2ZXIvY2xlYXItdHJhbnNpZW50LXdpdGhvdXQtZGVsaXZlcnkuaHRtbAppbmRl
eCA3OGNiNjdjZDg1ZWI0MzllYjNhNzJhZmEyNGUzNDBjMmMyOGM0OGQxLi44OWJmODU2MzNiYTMx
NGVmNzEzZWYwMWEwNGViZmQ3MWY5NmQzOGM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9NdXRhdGlvbk9ic2VydmVyL2NsZWFyLXRyYW5zaWVudC13aXRob3V0LWRlbGl2ZXJ5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9jbGVhci10cmFu
c2llbnQtd2l0aG91dC1kZWxpdmVyeS5odG1sCkBAIC03LDcgKzcsNyBAQCB2YXIgbXV0YXRpb25z
RGVsaXZlcmVkID0gZmFsc2U7CiBmdW5jdGlvbiBjYWxsYmFjayhtdXRhdGlvbnMpIHsKICAgICBt
dXRhdGlvbnNEZWxpdmVyZWQgPSB0cnVlOwogfQotdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoY2FsbGJhY2spOwogCiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CiB2YXIgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJykpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZl
ci9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRh
dGlvbk9ic2VydmVyL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbAppbmRleCAxZTU3Zjk0Mzlh
YmI3OWJkNTJjMWI1NjRmZjEyZTg1ZTk4Y2Y2YmJkLi45NThlMmRkMjAyZThmZTMwZTFjNDRjZjcz
MzJiYmVmNzQ3YmE2NjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlv
bk9ic2VydmVyL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbApAQCAt
MTcsMTcgKzE3LDE3IEBAIHZhciBvcmRlciA9IFtdOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwogCiB2YXIgb2JzZXJ2ZXIzOwotdmFyIG9ic2VydmVyMSA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVy
MSA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVy
LnB1c2goMSk7CiAgICAgaWYgKCFvYnNlcnZlcjMpIHsKLSAgICAgICAgb2JzZXJ2ZXIzID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9i
c2VydmVyMyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAg
ICAgICAgICAgb3JkZXIucHVzaCgzKTsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyMy5v
YnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9KTsKICAgICAgICAgZGl2LnNldEF0dHJpYnV0
ZSgnZm9vJywgJ2JheicpOwogICAgIH0KIH0pOwotdmFyIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVyMiA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVyLnB1c2go
Mik7CiB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNl
cnZlci9jcm9zcy1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25P
YnNlcnZlci9jcm9zcy1kb2N1bWVudC5odG1sCmluZGV4IGQ2NzIyOTEwNDRiMzdmZTAyNDFlOTdm
MTM5ODMxM2U2ODQ1N2Y0MzYuLmRmNjYyODFlMzRhYmU4MDFjOGMwMmMzOWNiZmY5ODdmNGVlMTBk
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvY3Jv
c3MtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2Vy
dmVyL2Nyb3NzLWRvY3VtZW50Lmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdEJh
c2ljKCkgewogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAKQEAgLTUyLDcgKzUy
LDcgQEAgZnVuY3Rpb24gdGVzdFN1YnRyZWUoKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7
CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBz
dWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwot
ICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9u
czsKICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0
aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnkuaHRt
bAppbmRleCA0Y2EzZTMyNmY4ZTIyZjNjNWZmYzZiYTEzZTY1NjJjMWZhY2Y1YmY4Li5iNzE5NDUz
MzllYzBmYzhlZDc4NTQ2NjQ1YTIzMzM4ODc4ZjY4NzAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1j
YWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3REYXRh
YmFzZSgpIHsKICAgICBmdW5jdGlvbiBzdGFydCgpIHsKICAgICAgICAgbXV0YXRpb25zID0gbnVs
bDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAg
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAg
ICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAg
ICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RlbGl2ZXJ5LW9yZGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKaW5k
ZXggMzQ5ZWQ5YmYwMzkyMzI4ZTcxNmIxOTUwOTQ4NDQ3NDNhMGM3MWY2YS4uODUyMDdjZmM5Mjg4
NDYxYWFlMmEzMjczZTE2MDcwZDZmMzgxY2NiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci9kZWxpdmVyeS1vcmRlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGVsaXZlcnktb3JkZXIuaHRtbApAQCAtMjMs
NyArMjMsNyBAQCB2YXIgb3JkZXIgPSBbXTsKIHZhciBvYnNlcnZlcnMgPSBbXTsKIAogZnVuY3Rp
b24gc2V0VXBPcmRlcmluZyhudW0pIHsKLSAgICBvYnNlcnZlcnMucHVzaChuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvYnNlcnZlcnMucHVzaChu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgb3JkZXIu
cHVzaChudW0pOwogICAgIH0pKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvZGlzY29ubmVjdC1jYW5jZWwtcGVuZGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5n
Lmh0bWwKaW5kZXggNDZhZDgwMTljYTQwZmFhYmYxMWE2MjNhNGVmODgxNzM4ZjJkMWQxYS4uNWI2
YjI2MGU3MWVhYzRhNTUwMzljNTBkYzMzNjQ0NWZkNTdkYjZiNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kaXNjb25uZWN0LWNhbmNlbC1wZW5kaW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kaXNjb25u
ZWN0LWNhbmNlbC1wZW5kaW5nLmh0bWwKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24gc3RhcnQo
KSB7CiAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKIAotICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgeworICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgewogICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RvY3VtZW50LWZyYWdtZW50LWlu
c2VydGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kb2N1
bWVudC1mcmFnbWVudC1pbnNlcnRpb24uaHRtbAppbmRleCAwM2VkOWY3NzI5YTU0YmU2YjUyZGI3
ZmQ1OTE0ZTg1Y2I2OWQzZGI2Li41NzI2ZjQyMjc5YzQ1OGFkNGM1Y2NkOGU0YjVlOTNjMjRjZWQw
ODVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2Rv
Y3VtZW50LWZyYWdtZW50LWluc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvZG9jdW1lbnQtZnJhZ21lbnQtaW5zZXJ0aW9uLmh0bWwKQEAgLTIw
LDcgKzIwLDcgQEAgZnVuY3Rpb24gY3JlYXRlT2JzZXJ2ZWREaXYoKSB7CiBmdW5jdGlvbiBjYWxs
YmFjayhtdXRhdGlvbnMpIHsKICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogfQot
dmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFy
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwogCiBmdW5jdGlvbiB0
ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgZGVidWcoJ1Rlc3RpbmcgYXBwZW5kQ2hpbGQnKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZW5kLW9mLXRh
c2stZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
ZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAppbmRleCA3NzE1YzRmMGEyYTMzODYxYzU5NzIxMjA0
MjNhNmYwNDUwZDg5NjBkLi4wMDNhYTEzNmU5ZDkzMGY2ZjRmZmU2OGY3ZTA5NmMwYjNlMjc5NmVi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2VuZC1v
Zi10YXNrLWRlbGl2ZXJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25P
YnNlcnZlci9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAg
dmFyIGxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcpOwogICAgIHZhciBwID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigncCcpOwogICAgIHZhciBvYnNlcnZlclJ1bnMgPSAwOwotICAg
IHZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyAr
K29ic2VydmVyUnVuczsgfSk7CisgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24oKSB7ICsrb2JzZXJ2ZXJSdW5zOyB9KTsKICAgICBvYnNlcnZlci5vYnNlcnZl
KGxpc3QsIHtjaGlsZExpc3Q6IHRydWV9KTsKICAgICBsaXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2Js
dXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBvYnNl
cnZlclJ1bnMgPT0gMSA/ICdQQVNTRUQnIDogJ0ZBSUxFRCc7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2ZpbGVzeXN0ZW0tY2FsbGJhY2stZGVsaXZl
cnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZmlsZXN5c3Rl
bS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCmluZGV4IGYzZGY5NTQ1ODBhNTMwNDMwZDM4MmNhZTY5
YzM2ZmEwNDI5M2Y5MTAuLjg1YjcyZjkyOWYyZjY5ZDI5MmZjNTE3MjMxMjhlMjkwMThiNmQ3NmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZmlsZXN5
c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011
dGF0aW9uT2JzZXJ2ZXIvZmlsZXN5c3RlbS1jYWxsYmFjay1kZWxpdmVyeS5odG1sCkBAIC0xMiw3
ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RGaWxlc3lzdGVtKCkgewogICAgIGZ1bmN0aW9uIHN0YXJ0
KCkgewogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAg
ICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2
ZXIvaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRh
dGlvbk9ic2VydmVyL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCmluZGV4IDIyYmNjMmM0OWM1
M2YyZGIzM2I3YTAwMjViMTdlOGM0OTMxYmI1OTAuLjBmOWE4Y2EwYzA1NTY1ZWQ0YzBlZDY2Zjhl
NDcwMDUzNmJiYTE3MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9u
T2JzZXJ2ZXIvaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbApAQCAtMTAs
NyArMTAsNyBAQAogCiAgICAgdmFyIGxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvbCcp
OwogICAgIHZhciBvYnNlcnZlclJhbiA9IGZhbHNlOwotICAgIHZhciBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyBvYnNlcnZlclJhbiA9IHRydWU7IH0p
OworICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyBv
YnNlcnZlclJhbiA9IHRydWU7IH0pOwogICAgIG9ic2VydmVyLm9ic2VydmUobGlzdCwge2NoaWxk
TGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogdHJ1ZX0pOwogICAgIGxpc3QuZm9jdXMoKTsKICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRt
bAppbmRleCAyOTM4NTA0YjhkZjEyYzg2OTcwOWUwM2NjMTYyZWU4ZDE0MjVhNDE4Li41MDllZDhk
ZDA5ZWI5NTBkYmIwYzI0YjVlOTdiM2ZjMjQ3MTY3MjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0ZS1kdXJpbmct
ZGVsaXZlcnkuaHRtbApAQCAtMTUsMTQgKzE1LDE0IEBAIGZ1bmN0aW9uIGZpbmlzaCgpIHsKIHZh
ciBvcmRlciA9IFtdOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
Ci12YXIgb2JzZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CiAgICAgb3JkZXIucHVzaCgxKTsKICAgICBkaXYuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKIH0pOwotdmFyIG9ic2VydmVyMiA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewordmFyIG9ic2VydmVy
MiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgIG9yZGVy
LnB1c2goMik7CiB9KTsKLXZhciBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKK3ZhciBvYnNlcnZlcjMgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICBvcmRlci5wdXNoKDMpOwogfSk7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24t
Y2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011
dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tY2FsbGJhY2stbm9uLWVsZW1lbnQtY3Jhc2guaHRtbApp
bmRleCBkYWYzNjVhNmE2ODliMjUxMGI2NzIwNjYzMzBkMzYwNjYwNTFhMGQzLi4xMDBhYzdmOWIx
NjViNzYxMThlODgxZmU5YzY4OWYyYTM3NDM1NjU4IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLWNhbGxiYWNrLW5vbi1lbGVtZW50LWNy
YXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRh
dGlvbi1jYWxsYmFjay1ub24tZWxlbWVudC1jcmFzaC5odG1sCkBAIC05LDcgKzksNyBAQCBmdW5j
dGlvbiBtdXRhdGlvbkNhbGxiYWNrKG11dGF0aW9ucywgb2JzZXJ2ZXIpIHsKICAgICBtdXRhdGlv
bnNbMF0uYWRkZWROb2Rlc1stMV07CiB9CiAKLXZhciBtdXRhdGlvbk9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25DYWxsYmFjayk7Cit2YXIgbXV0YXRpb25PYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9uQ2FsbGJhY2spOwogbXV0YXRpb25P
YnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTsKIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlBBU1MuIFdlYktp
dCBkaWRuJ3QgY3Jhc2giKSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3IuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2
ZXItY29uc3RydWN0b3IuaHRtbAppbmRleCA4YTA5ZWVhOGFhYzdlNGMxZTY5ZThhNmQ1OGUzYTBi
MzliM2Y1MDU5Li42NWEwZDUyNmE2Yjg0MzE5ODYwODBiYWUxZjM2NDczMTE0OTlhNzViIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9i
c2VydmVyLWNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRp
b25PYnNlcnZlci9tdXRhdGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci5odG1sCkBAIC0xNCw3ICsx
NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgc2hvdWxkQmVOb25OdWxsKCd3aW5kb3cu
V2ViS2l0TXV0YXRpb25PYnNlcnZlcicpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndHlw
ZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmUnLCAnZnVuY3Rpb24n
KTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLnByb3RvdHlwZS5kaXNjb25uZWN0JywgJ2Z1bmN0aW9uJyk7Ci0gICAgd2luZG93Lm9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7IH0p
OworICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgeyB9KTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3R5cGVvZiBvYnNlcnZl
ci5vYnNlcnZlJywgJ2Z1bmN0aW9uJyk7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0eXBl
b2Ygb2JzZXJ2ZXIuZGlzY29ubmVjdCcsICdmdW5jdGlvbicpOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1vYnNlcnZlci1wcmVm
aXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9t
dXRhdGlvbi1vYnNlcnZlci1wcmVmaXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNzc3N2U4
YWVkYjlmZGQ4YjE5YmNlNDU3OTk0ZDAxMjA4NjJhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9ic2VydmVyLXByZWZp
eC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB0aGF0IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyIGlzIHRoZSBzYW1lIGFzIG5ldyBNdXRhdGlvbk9ic2VydmVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBub1ByZWZpeE9ic2VydmVyIGluc3RhbmNl
b2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlciBpcyB0cnVlCitQQVNTIHByZWZpeE9ic2VydmVyIGlu
c3RhbmNlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlciBpcyB0cnVlCitQQVNTIG5vUHJlZml4T2Jz
ZXJ2ZXIgaW5zdGFuY2VvZiBNdXRhdGlvbk9ic2VydmVyIGlzIHRydWUKK1BBU1MgcHJlZml4T2Jz
ZXJ2ZXIgaW5zdGFuY2VvZiBNdXRhdGlvbk9ic2VydmVyIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLW9ic2VydmVyLXByZWZpeC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1vYnNl
cnZlci1wcmVmaXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Mjg2MmFhNzI5MDM5NTk5MjgxYWFhYTExYmM0
ZWM0Y2RmNzUzMmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9tdXRhdGlvbi1vYnNlcnZlci1wcmVmaXguaHRtbApAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhh
dCBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlciBpcyB0aGUgc2FtZSBhcyBuZXcgTXV0YXRpb25P
YnNlcnZlci4nKTsKKwordmFyIG5vUHJlZml4T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbigpIHsgfSk7Cit2YXIgcHJlZml4T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbigpIHsgfSk7CisKK3Nob3VsZEJlVHJ1ZSgnbm9QcmVmaXhPYnNlcnZlciBp
bnN0YW5jZW9mIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXInKTsKK3Nob3VsZEJlVHJ1ZSgncHJlZml4
T2JzZXJ2ZXIgaW5zdGFuY2VvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyJyk7CitzaG91bGRCZVRy
dWUoJ25vUHJlZml4T2JzZXJ2ZXIgaW5zdGFuY2VvZiBNdXRhdGlvbk9ic2VydmVyJyk7CitzaG91
bGRCZVRydWUoJ3ByZWZpeE9ic2VydmVyIGluc3RhbmNlb2YgTXV0YXRpb25PYnNlcnZlcicpOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9i
c2VydmVyL211dGF0aW9uLXJlY29yZC1udWxsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NdXRhdGlvbk9ic2VydmVyL211dGF0aW9uLXJlY29yZC1udWxsaXR5Lmh0bWwKaW5kZXggOGQ2
YWFkZmVkMmM3Yzk2Y2JjZjg1MWU0Y2I0N2U1ZjVkYWEzYjE5My4uMWI1MzQzOGRhMTQwMDJmYzNi
ZmFlMDdkNzFiNWRiZjMwMTlmZDY4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
TXV0YXRpb25PYnNlcnZlci9tdXRhdGlvbi1yZWNvcmQtbnVsbGl0eS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tcmVjb3JkLW51bGxpdHku
aHRtbApAQCAtMiw3ICsyLDcgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCdOb24tcmVsZXZh
bnQgcHJvcGVydGllcyBvbiBtdXRhdGlvbiByZWNvcmRzIHNob3VsZCBiZSBudWxsLCBleGNlcHQg
Zm9yIE5vZGVMaXN0cywgd2hpY2ggc2hvdWxkIGJlIGVtcHR5Jyk7Ci12YXIgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpIHt9KTsKK3ZhciBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkge30pOwogCiB2YXIgdGV4dCA9IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCdzb21ldGhpbmcnKTsKIG9ic2VydmVyLm9ic2VydmUodGV4dCwg
e2NoYXJhY3RlckRhdGE6IHRydWV9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtYXR0cmlidXRlcy5odG1sCmluZGV4IDM4
MTJjODJkMjBiNDBjOGFjMmJhOTU3ODcxY2VlM2M2MmEyYjhiMGEuLjZhN2U0NzZkZTIyMGQ5YzY1
MjRmNzhkYjM3MmY4ODc4YmFiYzgwYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWF0dHJpYnV0ZXMuaHRtbApAQCAt
MTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdiYXIn
LCAnZm9vJyk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAK
QEAgLTgyLDcgKzgyLDcgQEAgZnVuY3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKIAogICAgICAgICBt
dXRhdGlvbnMgPSBudWxsOwogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTEx
MSw3ICsxMTEsNyBAQCBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWdpc3RyYXRpb24oKSB7CiAJCWNh
bGxzID0gMDsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAJ
CQljYWxscysrOwogICAgICAgICB9KTsKQEAgLTE1MywxMCArMTUzLDEwIEBAIGZ1bmN0aW9uIHRl
c3RNdWx0aXBsZU9ic2VydmVycygpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBtdWx0
aXBsZSBvYnNlcnZlcnMgY2FuIGJlIHJlZ2lzdGVyZWQgdG8gYSBnaXZlbiBub2RlIGFuZCBib3Ro
IHJlY2VpdmUgbXV0YXRpb25zLicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwogICAgICAg
ICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2JzZXJ2ZXIg
PSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0
YXRpb25zID0gbTsKICAgICAgICAgfSk7Ci0gICAgICAgIG9ic2VydmVyMiA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zMiA9IG07
CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVz
OiB0cnVlIH0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lc3BhY2VVUkko
KSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgImF0dHJpYnV0ZU5hbWVzcGFjZSIgdmFs
dWUgaXMgZGVsaXZlcmVkIHByb3Blcmx5LicpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBmdW5j
dGlvbiB0ZXN0UHJvcGVydHlBY2Nlc3MoKSB7CiAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2ltZycpOwogICAgICAgICBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScp
OwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yNjIs
NyArMjYyLDcgQEAgZnVuY3Rpb24gdGVzdE9yZGVyaW5nV3J0RE9NU3VidHJlZU1vZGlmaWVkKCkg
ewogCiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CiAKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7
CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWUoKSB7CiAgICAgICAg
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0
cmlidXRlKCdiYXInLCAnYm9vJyk7CiAgICAgICAgIAotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAg
ICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAg
IG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZh
bHVlOiB0cnVlIH0pOwpAQCAtMzQ2LDEwICszNDYsMTAgQEAgZnVuY3Rpb24gdGVzdE9sZFZhbHVl
QXNSZXF1ZXN0ZWQoKSB7CiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBkaXYuc2V0QXR0cmlidXRl
KCdmb28nLCAnYmFyJyk7Ci0gICAgICAgIG9ic2VydmVyV2l0aE9sZFZhbHVlID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVy
V2l0aE9sZFZhbHVlID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zV2l0aE9sZFZhbHVlID0gbXV0YXRpb25zOwog
ICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlv
bnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlcldpdGhPbGRWYWx1
ZS5vYnNlcnZlKGRpdiwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1
ZSB9KTsKQEAgLTM4Nyw3ICszODcsNyBAQCBmdW5jdGlvbiB0ZXN0T2xkVmFsdWVVbmlvbk11bHRp
cGxlT2JzZXJ2YXRpb25zKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJykpOwogICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZm9vJywgJ2Jhcicp
OwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1
bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0
aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2LCB7IGF0dHJp
YnV0ZXM6IHRydWUsIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwpA
QCAtNDE3LDcgKzQxNyw3IEBAIGZ1bmN0aW9uIHRlc3RJRExBdHRyaWJ1dGUoKSB7CiAgICAgICAg
IGRlYnVnKCdUZXN0aW5nIHNldHRpbmcgYW4gYXR0cmlidXRlIHZpYSByZWZsZWN0ZWQgSURMIGF0
dHJpYnV0ZS4nKTsKICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVy
ID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAg
ICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKICAgICAgICAgb2Jz
ZXJ2ZXIub2JzZXJ2ZShkaXYsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlT2xkVmFsdWU6
IHRydWUgfSk7CkBAIC00NTQsNyArNDU0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZpbHRl
cigpIHsKICAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBhdHRyaWJ1dGVGaWx0ZXIgd29ya3Mg
YXMgZXhwZWN0ZWQgYW5kIG9ic2VydmVzIGNhc2Ugd2l0aCBIVE1MIGVsZW1lbnRzLicpOwogCiAg
ICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAg
ICAgICAgIH0pOwogCkBAIC00OTQsNyArNDk0LDcgQEAgZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUZp
bHRlclN1YnRyZWUoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoZSBiZWhhdmlvciBvZiBh
dHRyaWJ1dGVGaWx0ZXIgd2hlbiB0aGUgc2FtZSBvYnNlcnZlciBvYnNlcnZlcyBhdCBtdWx0aXBs
ZSBub2RlcyBpbiBhIHN1YnRyZWUgd2l0aCBkaWZmZXJlbnQgZmlsdGVyIG9wdGlvbnMuJyk7CiAK
ICAgICAgICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsK
ICAgICAgICAgfSk7CiAKQEAgLTU2NSw3ICs1NjUsNyBAQCBmdW5jdGlvbiB0ZXN0QXR0cmlidXRl
RmlsdGVyTm9uSFRNTEVsZW1lbnQoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgc2V0
dGluZyBhbiBhdHRyaWJ1dGVGaWx0ZXIgZmlsdGVycyBvdXQgbmFtZXNwYWNlZCBhdHRyaWJ1dGVz
LicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9u
cyA9IG07CiAgICAgICAgIH0pOwogCkBAIC01OTcsNyArNTk3LDcgQEAgZnVuY3Rpb24gdGVzdEF0
dHJpYnV0ZUZpbHRlck5vbkhUTUxEb2N1bWVudCgpIHsKIAogICAgICAgICBzdmdEb2MgPSBkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmcnLCAnc3ZnJywgJ3N2ZycpOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAg
ICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNjQyLDcgKzY0Miw3IEBA
IGZ1bmN0aW9uIHRlc3RTdHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzKCkgewogICAgICAgICBk
ZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50cyBzdHlsZSBwcm9wZXJ0eSBk
aXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMuJyk7CiAKICAgICAgICAgbXV0YXRpb25zID0gbnVs
bDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bSkgewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTY5NCw3
ICs2OTQsNyBAQCBmdW5jdGlvbiB0ZXN0U3R5bGVBdHRyaWJ1dGVQcm9wZXJ0eUFjY2Vzc09sZFZh
bHVlKCkgewogICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG1vZGlmeWluZyBhbiBlbGVtZW50
cyBzdHlsZSBwcm9wZXJ0eSBkaXNwYXRjaGVzIE11dGF0aW9uIFJlY29yZHMgd2l0aCBjb3JyZWN0
IG9sZFZhbHVlcy4nKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNl
cnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAg
ICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKIApAQCAtNzQ2LDcgKzc0Niw3IEBAIGZ1bmN0
aW9uIHRlc3RTdHlsZUF0dHJpYnV0ZVByb3BlcnR5QWNjZXNzSWdub3JlTm9vcCgpIHsKICAgICAg
ICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBhIG5vLW9wIHN0eWxlIHByb3BlcnR5IG11dGF0aW9uIGRv
ZXMgbm90IGNyZWF0ZSBNdXRhdGlvbiBSZWNvcmRzLicpOwogCiAgICAgICAgIG11dGF0aW9ucyA9
IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC03
NzYsNyArNzc2LDcgQEAgZnVuY3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZVZhbHVlKCkg
ewogICAgICAgICBkZWJ1ZygnVGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSB0aHJvdWdo
IGFuIGF0dHIgbm9kZSBkZWxpdmVycyBtdXRhdGlvbiByZWNvcmRzJyk7CiAKICAgICAgICAgbXV0
YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRh
dGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBAIC04MTAsNyArODEwLDcgQEAgZnVu
Y3Rpb24gdGVzdE11dGF0ZVRocm91Z2hBdHRyTm9kZUNoaWxkKCkgewogICAgICAgICBkZWJ1Zygn
VGVzdCB0aGF0IG11dGF0aW5nIGFuIGF0dHJpYnV0ZSBieSBhdHRhY2hpbmcgYSBjaGlsZCB0byBh
biBhdHRyIG5vZGUgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0
aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9u
T2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRp
b25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIGZ1bmN0
aW9uIHRlc3RTZXRBbmRSZW1vdmVBdHRyaWJ1dGVOb2RlKCkgewogICAgICAgICBkZWJ1ZygnVGVz
dCB0aGF0IG11dGF0aW5nIHZpYSBzZXRBdHRyaWJ1dGVOb2RlIGRlbGl2ZXJzIG11dGF0aW9uIHJl
Y29yZHMnKTsKIAogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwotICAgICAgICBvYnNlcnZlciA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAg
ICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewog
ICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAK
QEAgLTg5Myw3ICs4OTMsNyBAQCBmdW5jdGlvbiB0ZXN0TWl4ZWROb2RlQW5kRWxlbWVudE9wZXJh
dGlvbnMoKSB7CiAgICAgICAgIGRlYnVnKCdUZXN0IHRoYXQgc2V0QXR0cmlidXRlIG9uIGFuIGF0
dHJpYnV0ZSB3aXRoIGFuIGV4aXN0aW5nIEF0dHIgZGVsaXZlcnMgbXV0YXRpb24gcmVjb3Jkcycp
OwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2Vy
dmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAg
ICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApAQCAtOTI5
LDcgKzkyOSw3IEBAIGZ1bmN0aW9uIHRlc3ROYW1lZE5vZGVNYXBPcGVyYXRpb25zKCkgewogICAg
ICAgICBkZWJ1ZygnVGVzdCB0aGF0IHNldE5hbWVkSXRlbSBhbmQgcmVtb3ZlTmFtZWRJdGVtIGRl
bGl2ZXIgbXV0YXRpb24gcmVjb3JkcycpOwogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7Ci0g
ICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0
YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rp
b24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25z
OwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRp
b25PYnNlcnZlci9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1jaGFyYWN0ZXJkYXRhLmh0bWwKaW5kZXggMzgz
MmIyM2NiMGYxM2YxMGU5NzEyZDMyMTNhOTNlMmY5NzFlYmU1YS4uZTM3YmI0MmExNjk2ZWM2YmRl
Y2IyN2Q2NTc4MTU0MDY0NmRlODczMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
TXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWNoYXJhY3RlcmRhdGEuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtY2hhcmFjdGVyZGF0YS5odG1s
CkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAgICAgICAgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9
ICdmb28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAg
ICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAg
ICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTg3LDcgKzg3LDcgQEAgZnVu
Y3Rpb24gdGVzdFdyb25nVHlwZSgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdoZWxsbyc7CiAgICAgICAg
IGNoYXJEYXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMg
PSBtOwogICAgICAgICB9KTsKIApAQCAtMTE3LDEwICsxMTcsMTAgQEAgZnVuY3Rpb24gdGVzdE11
bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJE
YXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwog
ICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2
ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMyID0gbTsKICAgICAgICAgfSk7
CiAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTog
dHJ1ZX0pOwpAQCAtMTYxLDcgKzE2MSw3IEBAIGZ1bmN0aW9uIHRlc3RPcmRlcmluZ1dydERPTVN1
YnRyZWVNb2RpZmllZCgpIHsKICAgICAgICAgc3ViRGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAg
ICAgICAgIGNoYXJEYXRhTm9kZSA9IHN1YkRpdi5maXJzdENoaWxkOwogCi0gICAgICAgIG9ic2Vy
dmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBv
YnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAg
IG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0yMDIsNyArMjAyLDcgQEAgZnVuY3Rp
b24gdGVzdE9sZFZhbHVlKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgICAgICAgZGl2LnRleHRDb250ZW50ID0gJ2Zvbyc7CiAgICAgICAgIGNoYXJE
YXRhTm9kZSA9IGRpdi5maXJzdENoaWxkOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1ZSwgY2hhcmFjdGVy
RGF0YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yMzksMTAgKzIzOSwxMCBAQCBmdW5jdGlvbiB0ZXN0
T2xkVmFsdWVBc1JlcXVlc3RlZCgpIHsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29udGVudCA9ICdmb28nOwogICAgICAgICBj
aGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAgICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFs
dWUgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAg
ICAgICAgb2JzZXJ2ZXJXaXRoT2xkVmFsdWUgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnNXaXRoT2xkVmFsdWUg
PSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9
IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAg
d2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyV2l0aE9sZFZhbHVlLm9ic2VydmUoY2hhckRhdGFOb2RlLCB7Y2hhcmFjdGVyRGF0YTogdHJ1
ZSwgY2hhcmFjdGVyRGF0YU9sZFZhbHVlOiB0cnVlfSk7CkBAIC0yNzcsNyArMjc3LDcgQEAgZnVu
Y3Rpb24gdGVzdE9sZFZhbHVlVW5pb25NdWx0aXBsZU9ic2VydmF0aW9ucygpIHsKICAgICAgICAg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIGRpdi50ZXh0Q29u
dGVudCA9ICdmb28nOwogICAgICAgICBjaGFyRGF0YU5vZGUgPSBkaXYuZmlyc3RDaGlsZDsKLSAg
ICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRh
dGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlv
bihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7
CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRpdiwge2NoYXJhY3RlckRh
dGE6IHRydWUsIGNoYXJhY3RlckRhdGFPbGRWYWx1ZTogdHJ1ZSwgc3VidHJlZTogdHJ1ZX0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZl
LWNoaWxkTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9v
YnNlcnZlLWNoaWxkTGlzdC5odG1sCmluZGV4IDA4ZDYyYTgwZjZiYWE1OWM1MTI1OGQ4MzdjYjg4
NTI0ZTM1NWY5NjAuLjA5YTUwODVkOTVhZjM4M2NjNzhlOWU0MDBiMzVhMTc4NDg0NDk1MjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1j
aGlsZExpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVy
L29ic2VydmUtY2hpbGRMaXN0Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gdGVzdEJh
c2ljKCkgewogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwog
ICAgICAgICB9KTsKIApAQCAtODQsNyArODQsNyBAQCBmdW5jdGlvbiB0ZXN0V3JvbmdUeXBlKCkg
ewogCiAgICAgICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAg
ICB9KTsKIApAQCAtMTEzLDcgKzExMyw3IEBAIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZVJlZ2lzdHJh
dGlvbigpIHsKICAgICAgICAgY2FsbHMgPSAwOwogICAgICAgICBtdXRhdGlvbnMgPSBudWxsOwog
ICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgb2Jz
ZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7CisgICAgICAg
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgewogICAgICAgICAg
ICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgICAgIGNhbGxzKys7CiAgICAgICAgIH0pOwpAQCAt
MTU0LDEwICsxNTQsMTAgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAg
ICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IG11bHRpcGxlIG9ic2VydmVycyBjYW4gYmUgcmVnaXN0
ZXJlZCB0byBhIGdpdmVuIG5vZGUgYW5kIGJvdGggcmVjZWl2ZSBtdXRhdGlvbnMuJyk7CiAgICAg
ICAgIG11dGF0aW9ucyA9IG51bGw7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
KGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtKSB7CiAgICAgICAgICAgICBtdXRhdGlvbnMgPSBtOwogICAgICAgICB9KTsKLSAg
ICAgICAgb2JzZXJ2ZXIyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
eworICAgICAgICBvYnNlcnZlcjIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtKSB7
CiAgICAgICAgICAgICBtdXRhdGlvbnMyID0gbTsKICAgICAgICAgfSk7CiAgICAgICAgIG9ic2Vy
dmVyLm9ic2VydmUoZGl2LCB7IGNoaWxkTGlzdDogdHJ1ZSB9KTsKQEAgLTE5Miw3ICsxOTIsNyBA
QCBmdW5jdGlvbiB0ZXN0SW5uZXJIVE1MQW5kSW5uZXJUZXh0KCkgewogICAgICAgICBkaXYuaW5u
ZXJIVE1MID0gJzxzcGFuPkZvbzwvc3Bhbj48ZGl2PkJhcjwvZGl2Pic7CiAgICAgICAgIHJlbW92
ZWREaXYxID0gZGl2LmZpcnN0Q2hpbGQ7CiAgICAgICAgIHJlbW92ZWREaXYyID0gcmVtb3ZlZERp
djEubmV4dFNpYmxpbmc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC0yNTAsNyArMjUwLDcgQEAgZnVuY3Rpb24gdGVzdFJlcGxhY2VDaGlsZCgpIHsKICAg
ICAgICAgZGl2LmlubmVySFRNTCA9ICc8c3Bhbj5Gb288L3NwYW4+PGRpdj5CYXI8L2Rpdj4nOwog
ICAgICAgICByZW1vdmVkRGl2MSA9IGRpdi5maXJzdENoaWxkOwogCi0gICAgICAgIG9ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNl
cnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11
dGF0aW9ucyA9IG07CiAgICAgICAgIH0pOwogCkBAIC0zMTUsNyArMzE1LDcgQEAgZnVuY3Rpb24g
dGVzdEluc2VydEJlZm9yZSgpIHsKICAgICAgICAgYWRkZWREaXYxID0gZnJhZ21lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBhZGRlZERpdjIg
PSBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAK
LSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiht
KSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obSkg
ewogICAgICAgICAgICAgbXV0YXRpb25zID0gbTsKICAgICAgICAgfSk7CiAKQEAgLTM1Niw3ICsz
NTYsNyBAQCBmdW5jdGlvbiB0ZXN0QXBwZW5kQ2hpbGQoKSB7CiAgICAgICAgIGFkZGVkRGl2MSA9
IGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKICAg
ICAgICAgYWRkZWREaXYyID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2JykpOwogCi0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obSkgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgIG11dGF0aW9ucyA9IG07CiAgICAgICAgIH0p
OwogCkBAIC0zODcsNyArMzg3LDcgQEAgZnVuY3Rpb24gdGVzdElubmVySFRNTEVtcHR5KCkgewog
CiAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgbXV0YXRpb25zID0gbnVsbDsKLSAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcg
TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICAgICAgIHdpbmRv
dy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogICAgICAgICBvYnNlcnZlci5v
YnNlcnZlKGRpdiwge2NoaWxkTGlzdDogdHJ1ZX0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1leGNlcHRpb25zLmh0bWwK
aW5kZXggYTY3MWY2MzMyMmUyZGNkNTgzNjJkYTA4ZDY0MTA0YTQ2MjM2OTQ3My4uMTFkNjUzZDBk
NDllNjZkZGM3YTIxOGU1YTU4YWE4Y2VjM2RmNWFiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLWV4Y2VwdGlvbnMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtZXhjZXB0aW9ucy5o
dG1sCkBAIC0xMSw3ICsxMSw3IEBACiA8c2NyaXB0PgogCiBmdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgIHdpbmRvdy5vYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9u
KG11dGF0aW9ucykgeyB9KTsKKyAgICB3aW5kb3cub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNl
cnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsgfSk7CiAgICAgc2hvdWxkVGhyb3coJ29ic2VydmVy
Lm9ic2VydmUoKScpOwogICAgIHNob3VsZFRocm93KCdvYnNlcnZlci5vYnNlcnZlKG51bGwpJyk7
CiAgICAgc2hvdWxkVGhyb3coJ29ic2VydmVyLm9ic2VydmUodW5kZWZpbmVkKScpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLXN1YnRy
ZWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZS1z
dWJ0cmVlLmh0bWwKaW5kZXggMjIyNzg4ZjRlNjg3ZDUzNjIwYmRhZDE3ZTNhNmQ2MzY3NmQxODMy
Ni4uZTRjMDA3NDQ0N2VkOGJkYzNmZDkzZWZmYWRiNjA1MGI4NTU4Y2M0OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlLXN1YnRyZWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmUtc3Vi
dHJlZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKICAgICAg
ICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9
IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CiAgICAgICAg
IHN1YkRpdi5pbm5lckhUTUwgPSAnaGVsbG8sIHdvcmxkJzsKLSAgICAgICAgb2JzZXJ2ZXIgPSBu
ZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAg
b2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAg
ICAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0pOwogCkBA
IC02NiwxMCArNjYsMTAgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2ZXJzKCkgewogICAg
ICAgICBtdXRhdGlvbnMyID0gbnVsbDsKICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAgICAgICAgIHN1YkRpdiA9IGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3
IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5k
b3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKLSAgICAgICAgb2JzZXJ2ZXIy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAg
ICAgIG9ic2VydmVyMiA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykg
ewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9uczIgPSBtdXRhdGlvbnM7CiAgICAgICAgIH0p
OwogCkBAIC0xMDksNyArMTA5LDcgQEAgZnVuY3Rpb24gdGVzdE11bHRpcGxlT2JzZXJ2YXRpb25z
KCkgewogICAgICAgICBjYWxscyA9IDA7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOwotICAgICAgICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRh
dGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgICAgICBvYnNlcnZlciA9IG5l
dyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewogICAgICAgICAgICAgd2lu
ZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAgICAgICAgICAgICsrY2FsbHM7CiAgICAgICAg
IH0pOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIGZ1bmN0aW9uIHRlc3RUcmFuc2llbnREZXRhY2hlZEJh
c2ljKCkgewogICAgICAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgc3ViRGl2ID0gZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpKTsKICAgICAgICAgc3ViRGl2LmlubmVySFRNTCA9ICdoZWxsbywgd29ybGQnOwotICAgICAg
ICBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgICAgICBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11
dGF0aW9ucykgewogICAgICAgICAgICAgd2luZG93Lm11dGF0aW9ucyA9IG11dGF0aW9uczsKICAg
ICAgICAgfSk7CiAKQEAgLTIzMCw3ICsyMzAsNyBAQCBmdW5jdGlvbiB0ZXN0VHJhbnNpZW50RGV0
YWNoZWREZXRhaWxlZCgpIHsKICAgICAgICAgc3ViRGl2Mi5pbm5lckhUTUwgPSAnaGVsbG8sIHdv
cmxkJzsKICAgICAgICAgc3ViRGl2MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVu
Y3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRp
b25zOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9vYnNlcnZlci13cmFwcGVyLWRyb3BvZmYtdHJhbnNpZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmVyLXdyYXBwZXItZHJv
cG9mZi10cmFuc2llbnQuaHRtbAppbmRleCBiZDM2YjIyNDMwODJkN2Q3MjQwZjM3MWZlYTZlZjg2
YTEzYTljYjc5Li43NDViYjZhZWFkYTYxNjQ4ZGMwZGZjNTBmYTdlNjkwZDdkNGY4NDgyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmVyLXdy
YXBwZXItZHJvcG9mZi10cmFuc2llbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9N
dXRhdGlvbk9ic2VydmVyL29ic2VydmVyLXdyYXBwZXItZHJvcG9mZi10cmFuc2llbnQuaHRtbApA
QCAtOCw3ICs4LDcgQEAgZGVzY3JpcHRpb24oJ011dGF0aW9uT2JzZXJ2ZXIgd3JhcHBlcnMgc2hv
dWxkIHN1cnZpdmUgR0MgZm9yIHBhc3NpbmcgaW50byB0aGUgY2EKIGpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCiBmdW5jdGlvbiBhZGRPYnNlcnZlcihub2RlLCBmbikgewotICAgIHZhciBvYnNlcnZl
ciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZuKTsKKyAgICB2YXIgb2JzZXJ2ZXIgPSBu
ZXcgTXV0YXRpb25PYnNlcnZlcihmbik7CiAgICAgb2JzZXJ2ZXIudGVzdFByb3BlcnR5ID0gdHJ1
ZTsKICAgICBvYnNlcnZlci5vYnNlcnZlKG5vZGUsIHthdHRyaWJ1dGVzOnRydWUsIHN1YnRyZWU6
IHRydWV9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIvb2JzZXJ2ZXItd3JhcHBlci1kcm9wb2ZmLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NdXRhdGlvbk9ic2VydmVyL29ic2VydmVyLXdyYXBwZXItZHJvcG9mZi5odG1sCmluZGV4IGFm
NzM4MTJjYmE3MmM3ZTE1NWIyNWE0ODYyM2UyZGQxMDgzZTQ3MDEuLmIyNTQ3YjJmNGRjMjNmYzk0
M2EwZTkzZDBhZDc0NzU3ZmJkZTJiYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L011dGF0aW9uT2JzZXJ2ZXIvb2JzZXJ2ZXItd3JhcHBlci1kcm9wb2ZmLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9vYnNlcnZlci13cmFwcGVyLWRyb3Bv
ZmYuaHRtbApAQCAtOCw3ICs4LDcgQEAgZGVzY3JpcHRpb24oJ011dGF0aW9uT2JzZXJ2ZXIgd3Jh
cHBlcnMgc2hvdWxkIHN1cnZpdmUgR0MgZm9yIHBhc3NpbmcgaW50byB0aGUgY2EKIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCiBmdW5jdGlvbiBhZGRPYnNlcnZlcihub2RlLCBmbikgewotICAgIHZh
ciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZuKTsKKyAgICB2YXIgb2Jz
ZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmbik7CiAgICAgb2JzZXJ2ZXIudGVzdFByb3Bl
cnR5ID0gdHJ1ZTsKICAgICBvYnNlcnZlci5vYnNlcnZlKG5vZGUsIHthdHRyaWJ1dGVzOnRydWV9
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
cGFyc2VyLW11dGF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNl
cnZlci9wYXJzZXItbXV0YXRpb25zLmh0bWwKaW5kZXggMTU5ZThkZDE5MWM2YjY4MjNjMzc4MzIz
MTRhZjcyNTZkZGRjYzI1ZC4uMGIzNzFjMDllYzMxM2I2Yjg4NTFhZDIwMjRkNDg2NWNhY2Y1YTE4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9wYXJz
ZXItbXV0YXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNl
cnZlci9wYXJzZXItbXV0YXRpb25zLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZh
ciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cywgb2JzZXJ2ZXIpIHsKKyAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMsIG9ic2VydmVyKSB7CiAgICAgICAgIHdpbmRvdy5tdXRhdGlvbnMg
PSBtdXRhdGlvbnM7CiAgICAgfSk7CiAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5
LCB7Y2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOnRydWV9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvcmVtb3ZlZC1vdXQtb2Ytb3JkZXIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvcmVtb3ZlZC1vdXQtb2Ytb3Jk
ZXIuaHRtbAppbmRleCAyMDFiZDgxYTg5OWQ5NTVlNWNjZjRkOGU3YWZlOTk1ODdiYjMxMmQ1Li42
ZmE1ODI5Yjc1NWNjNzBkYjdlNWIzMGQ1M2ZhNjcwNzIyMjU1YmQ5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL3JlbW92ZWQtb3V0LW9mLW9yZGVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9yZW1vdmVkLW91
dC1vZi1vcmRlci5odG1sCkBAIC0xMSw3ICsxMSw3IEBAIHNhbmRib3guYWRkRXZlbnRMaXN0ZW5l
cignRE9NTm9kZUluc2VydGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIHJlbW92ZWQgPSB0cnVl
OwogICAgIH0KIH0pOwotdmFyIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24oKXt9KTsKK3ZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0
aW9uKCl7fSk7CiBvYnNlcnZlci5vYnNlcnZlKHNhbmRib3gsIHtjaGlsZExpc3Q6IHRydWV9KTsK
IHNhbmRib3guaW5uZXJIVE1MID0gJzxiPjwvYj48aT48L2k+JzsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9zaGFkb3ctZG9tLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL3NoYWRvdy1kb20uaHRtbAppbmRleCA1
OGI4NDVkMDZjODQ1MTE2NmI1OWFhMTE4YWEyMTdjYWJlODVjNzgzLi4xN2YyNDdjNjdmNmEzOGFh
YTQzZGYyYWFkNzNiZjgwNWE2MmVjYmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NdXRhdGlvbk9ic2VydmVyL3NoYWRvdy1kb20uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9NdXRhdGlvbk9ic2VydmVyL3NoYWRvdy1kb20uaHRtbApAQCAtMTYsNyArMTYsNyBAQCBm
dW5jdGlvbiBkb1Rlc3QoKQogICAgIH0KIAogICAgIHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKSk7Ci0gICAgdmFyIG9i
c2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IH0pOworICAg
IHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyB9KTsKIAog
ICAgIG9ic2VydmVyLm9ic2VydmUoc2hhZG93Um9vdC5maXJzdENoaWxkLCB7YXR0cmlidXRlczog
dHJ1ZSwgY2hpbGRMaXN0OiB0cnVlLCBjaGFyYWN0ZXJEYXRhOiB0cnVlLCBzdWJ0cmVlOiB0cnVl
fSk7CiAgICAgbXV0YXRlKHNoYWRvd1Jvb3QuZmlyc3RDaGlsZCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL3Rha2VSZWNvcmRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL3Rha2VSZWNvcmRzLmh0bWwKaW5kZXgg
NGQ5ZDM5MTVmZmViMGE1NGQzY2FhMDFmOGI4OTc2NjVlNWNkYzQyYy4uNTg2YjNlN2IyM2RiMjY5
ZThjNTdjNzRiZTUxMjVkMjhkNzZkZWJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vTXV0YXRpb25PYnNlcnZlci90YWtlUmVjb3Jkcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvdGFrZVJlY29yZHMuaHRtbApAQCAtMjMsNyArMjMsNyBA
QCBmdW5jdGlvbiB0ZXN0QmFzaWMoKSB7CiAgICAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICBzdWJEaXYgPSBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOwogICAgICAgICBzdWJEaXYuaW5uZXJIVE1MID0gJ2hlbGxv
LCB3b3JsZCc7Ci0gICAgICAgIG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CiAgICAgICAgICAgICB3aW5kb3cubXV0YXRpb25z
ID0gbXV0YXRpb25zOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvdHJhbnNpZW50LWdjLWNyYXNoLmh0bWwKaW5k
ZXggYjNlZTIzNDc4MDhkNTExNGJjM2E5OTExYjQ1YTAzYjgzYWUyMTUyYS4uZDcyOGEyMjNhMDc4
YmNmMzA3NGM1ZTIxNzMwYmEyYjRjNzI3NjRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTXV0YXRpb25PYnNlcnZlci90cmFuc2llbnQtZ2MtY3Jhc2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL3RyYW5zaWVudC1nYy1jcmFzaC5odG1s
CkBAIC02LDcgKzYsNyBAQCBkZXNjcmlwdGlvbignQ2xlYXJpbmcgdHJhbnNpZW50IG9ic2VydmVy
cyBhZnRlciBvYnNlcnZhdGlvbiBub2RlIGlzIEdDZWQgc2hvdWxkCiBmdW5jdGlvbiBjYWxsYmFj
ayhtdXRhdGlvbnMpIHsKICAgICB3aW5kb3cubXV0YXRpb25zID0gbXV0YXRpb25zOwogfQotdmFy
IG9ic2VydmVyID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwordmFyIG9i
c2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spOwogCiB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiB2YXIgc3BhbiA9IGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>