<?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>52528</bug_id>
          
          <creation_ts>2011-01-15 21:24:38 -0800</creation_ts>
          <short_desc>Strict mode restrictions on arguments and eval usage aren&apos;t complete</short_desc>
          <delta_ts>2011-01-16 15:55:06 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>335013</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-15 21:24:38 -0800</bug_when>
    <thetext>Strict mode restrictions on arguments and eval usage aren&apos;t complete</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335015</commentid>
    <comment_count>1</comment_count>
      <attachid>79092</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-15 21:44:26 -0800</bug_when>
    <thetext>Created attachment 79092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335081</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-16 13:36:40 -0800</bug_when>
    <thetext>+            isEvalOrArguments = m_globalData-&gt;propertyNames-&gt;eval == *m_lastIdentifier || m_globalData-&gt;propertyNames-&gt;arguments == *m_lastIdentifier;

We usually write comparisons like this in the opposite order.

Did you test the performance of this change? I think it&apos;s worth a SunSpider --parse-only run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335085</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-16 14:20:07 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; +            isEvalOrArguments = m_globalData-&gt;propertyNames-&gt;eval == *m_lastIdentifier || m_globalData-&gt;propertyNames-&gt;arguments == *m_lastIdentifier;
&gt; 
&gt; We usually write comparisons like this in the opposite order.

Just heading out, i&apos;ll fix this when i get back

&gt; 
&gt; Did you test the performance of this change? I think it&apos;s worth a SunSpider --parse-only run.
Of course :p

sunspider says no change but over many runs i estimate it is actually a slowdown, just very very slight.  I don&apos;t believe that there&apos;s anything that can be done about it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335093</commentid>
    <comment_count>4</comment_count>
      <attachid>79092</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-16 15:01:23 -0800</bug_when>
    <thetext>Comment on attachment 79092
Patch

If a slowdown happens in a forest, and SunSpider doesn&apos;t measure it, does it actually exist?

r=me with that one change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335104</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-16 15:55:06 -0800</bug_when>
    <thetext>Committed r75896: &lt;http://trac.webkit.org/changeset/75896&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79092</attachid>
            <date>2011-01-15 21:44:26 -0800</date>
            <delta_ts>2011-01-16 15:01:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52528-20110115214424.patch</filename>
            <type>text/plain</type>
            <size>29612</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNGIyY2ZkYjQxYmZmMTliMDAzZmQxYjcwMTVlNWJiZGRiY2MyMzlmLi5kZWZhNjg0
MTNmNWZmZmUzM2MwNzFhNmIyZTA2ODFhZTVlMGY3YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTEtMDEtMTUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpY3QgbW9kZSByZXN0cmlj
dGlvbnMgb24gYXJndW1lbnRzIGFuZCBldmFsIHVzYWdlIGFyZW4ndCBjb21wbGV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1MjgKKworICAgICAg
ICBBZGQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gYWlkIHBhcnNlIGZhaWx1cmUgdGVzdHMgYnkgdGVz
dGluZyBib3RoIGRpcmVjdAorICAgICAgICBldmFsL2dsb2JhbCBjb2RlLCBhbmQgbmVzdGVkIGNv
ZGUgKHNvIHRoYXQgd2UgdGVzdCB0aGUgc3ludGF4IGNoZWNrZXIKKyAgICAgICAgbW9kZSBhcyB3
ZWxsKQorCisgICAgICAgICogZmFzdC9qcy9iYXNpYy1zdHJpY3QtbW9kZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvYmFzaWMtc3RyaWN0LW1vZGUuanM6Cisg
ICAgICAgIChzaG91bGRCZVN5bnRheEVycm9yKToKKworMjAxMS0wMS0xNSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93
aWFrLgogCiAgICAgICAgIEluY29ycmVjdCBiZWhhdmlvciBjaGFuZ2luZyBhdHRyaWJ1dGVzIG9m
IGFuIGFjY2Vzc29yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2Jhc2ljLXN0cmlj
dC1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvYmFzaWMtc3RyaWN0LW1v
ZGUtZXhwZWN0ZWQudHh0CmluZGV4IGZhZGU0Y2YwZGM3M2UwYWE3ZDFjY2Y5Y2FmNjgxZjUyZTBk
YTk2ZDAuLmRlNzA1NjhjYzQ3YzVlMjliZWNiMDUxNmUxZTlmMTM3M2IwYjRmOWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvanMvYmFzaWMtc3RyaWN0LW1vZGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvanMvYmFzaWMtc3RyaWN0LW1vZGUtZXhwZWN0ZWQudHh0CkBA
IC0yOSwxOCArMjksMzEgQEAgUEFTUyB0ZXN0VGhpcy5hcHBseSgpIGlzIHVuZGVmaW5lZAogUEFT
UyB0ZXN0VGhpcy5jYWxsKHVuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCiBQQVNTIHRlc3RUaGlzLmFw
cGx5KHVuZGVmaW5lZCkgaXMgdW5kZWZpbmVkCiBQQVNTIChmdW5jdGlvbiBldmFsKCl7J3VzZSBz
dHJpY3QnO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNT
IChmdW5jdGlvbigpeyhmdW5jdGlvbiBldmFsKCl7J3VzZSBzdHJpY3QnO30pfSkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgKGZ1bmN0aW9uIChldmFsKXsn
dXNlIHN0cmljdCc7fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4K
K1BBU1MgKGZ1bmN0aW9uKCl7KGZ1bmN0aW9uIChldmFsKXsndXNlIHN0cmljdCc7fSl9KSB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAoZnVuY3Rpb24gYXJn
dW1lbnRzKCl7J3VzZSBzdHJpY3QnO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFy
c2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyhmdW5jdGlvbiBhcmd1bWVudHMoKXsndXNlIHN0
cmljdCc7fSl9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFT
UyAoZnVuY3Rpb24gKGFyZ3VtZW50cyl7J3VzZSBzdHJpY3QnO30pIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyhmdW5jdGlvbiAoYXJn
dW1lbnRzKXsndXNlIHN0cmljdCc7fSl9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yLgogUEFTUyAoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyB2YXIgZXZhbDt9KSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24o
KXsoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyB2YXIgZXZhbDt9KX0pIHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTIChmdW5jdGlvbiAoKXsndXNlIHN0cmlj
dCc7IHZhciBhcmd1bWVudHM7fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBl
cnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7KGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgdmFyIGFy
Z3VtZW50czt9KX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQ
QVNTIChmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHRyeXt9Y2F0Y2goZXZhbCl7fX0pIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyhm
dW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHRyeXt9Y2F0Y2goZXZhbCl7fX0pfSkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgKGZ1bmN0aW9uICgpeyd1c2Ug
c3RyaWN0JzsgdHJ5e31jYXRjaChhcmd1bWVudHMpe319KSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsoZnVuY3Rpb24gKCl7J3VzZSBz
dHJpY3QnOyB0cnl7fWNhdGNoKGFyZ3VtZW50cyl7fX0pfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgKGZ1bmN0aW9uIChhLCBhKXsndXNlIHN0cmljdCc7
fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0
aW9uKCl7KGZ1bmN0aW9uIChhLCBhKXsndXNlIHN0cmljdCc7fSl9KSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAoZnVuY3Rpb24gKGEpeyd1c2Ugc3RyaWN0
JzsgZGVsZXRlIGE7fSkoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9y
LgorUEFTUyAoZnVuY3Rpb24oKXsoZnVuY3Rpb24gKGEpeyd1c2Ugc3RyaWN0JzsgZGVsZXRlIGE7
fSkoKX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTIChm
dW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHZhciBhOyBkZWxldGUgYTt9KSgpIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyhmdW5jdGlv
biAoKXsndXNlIHN0cmljdCc7IHZhciBhOyBkZWxldGUgYTt9KSgpfSkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgKGZ1bmN0aW9uICgpe3ZhciBhOyBmdW5j
dGlvbiBmKCkgeyd1c2Ugc3RyaWN0JzsgZGVsZXRlIGE7fSB9KSgpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyhmdW5jdGlvbiAoKXt2
YXIgYTsgZnVuY3Rpb24gZigpIHsndXNlIHN0cmljdCc7IGRlbGV0ZSBhO30gfSkoKX0pIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTIChmdW5jdGlvbiAoKXsn
dXNlIHN0cmljdCc7IHdpdGgoMSl7fTt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyB3
aXRoKDEpe307fSl9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgog
UEFTUyAoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyBhcmd1bWVudHMuY2FsbGVlOyB9KSgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuYWJsZSB0byBhY2Nlc3MgY2FsbGVlIG9mIHN0cmlj
dCBtb2RlIGZ1bmN0aW9uLgogUEFTUyAoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyBhcmd1bWVu
dHMuY2FsbGVyOyB9KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuYWJsZSB0byBhY2Nl
c3MgY2FsbGVyIG9mIHN0cmljdCBtb2RlIGZ1bmN0aW9uLgogUEFTUyAoZnVuY3Rpb24gZigpeyd1
c2Ugc3RyaWN0JzsgZi5hcmd1bWVudHM7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
Q2FuJ3QgYWNjZXNzIGFyZ3VtZW50cyBvYmplY3Qgb2YgYSBzdHJpY3QgbW9kZSBmdW5jdGlvbi4K
QEAgLTU0LDIyICs2NywzNyBAQCBQQVNTIChmdW5jdGlvbiBmKGFyZyl7J3VzZSBzdHJpY3QnOyBm
LmNhbGxlcjsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBDYQogUEFTUyAoZnVuY3Rp
b24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgZi5hcmd1bWVudHM9NTsgfSkoKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBDYW5ub3QgYWNjZXNzIGFyZ3VtZW50cyBwcm9wZXJ0eSBvZiBhIHN0cmlj
dCBtb2RlIGZ1bmN0aW9uLgogUEFTUyAoZnVuY3Rpb24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgZi5j
YWxsZXI9NTsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBDYW5ub3QgYWNjZXNzIGNh
bGxlciBwcm9wZXJ0eSBvZiBhIHN0cmljdCBtb2RlIGZ1bmN0aW9uLgogUEFTUyAndXNlIHN0cmlj
dCc7IChmdW5jdGlvbiAoKXt3aXRoKDEpe307fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyAoZnVuY3Rpb24g
KCl7d2l0aCgxKXt9O30pfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJv
ci4KIFBBU1MgJ3VzZSBzdHJpY3QnOyAoZnVuY3Rpb24gKCl7dmFyIGE7IGRlbGV0ZSBhO30pIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigp
eyd1c2Ugc3RyaWN0JzsgKGZ1bmN0aW9uICgpe3ZhciBhOyBkZWxldGUgYTt9KX0pIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgdmFy
IGE7IChmdW5jdGlvbiAoKXsgZGVsZXRlIGE7fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyB2YXIgYTsgKGZ1
bmN0aW9uICgpeyBkZWxldGUgYTt9KX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFy
c2UgZXJyb3IuCiBQQVNTIHZhciBhOyAoZnVuY3Rpb24gKCl7ICd1c2Ugc3RyaWN0JzsgZGVsZXRl
IGE7fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1
bmN0aW9uKCl7dmFyIGE7IChmdW5jdGlvbiAoKXsgJ3VzZSBzdHJpY3QnOyBkZWxldGUgYTt9KX0p
IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICdtaXNjIGRp
cmVjdGl2ZSc7ICd1c2Ugc3RyaWN0Jzsgd2l0aCh7fSl7fSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsnbWlzYyBkaXJlY3RpdmUnOyAn
dXNlIHN0cmljdCc7IHdpdGgoe30pe319KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBh
cnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IHJldHVybiB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGJyZWFrIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ug
c3RyaWN0JzsgYnJlYWt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9y
LgogUEFTUyAndXNlIHN0cmljdCc7IGNvbnRpbnVlIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0JzsgY29udGludWV9
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0
cmljdCc7IGZvcig7OylyZXR1cm4gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBl
cnJvci4KIFBBU1MgJ3VzZSBzdHJpY3QnOyBmb3IoOzspYnJlYWsgbWlzc2luZ0xhYmVsIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1
c2Ugc3RyaWN0JzsgZm9yKDs7KWJyZWFrIG1pc3NpbmdMYWJlbH0pIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgZm9yKDs7KWNvbnRp
bnVlIG1pc3NpbmdMYWJlbCB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9y
LgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7IGZvcig7Oyljb250aW51ZSBtaXNzaW5n
TGFiZWx9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAn
dXNlIHN0cmljdCc7IDAwNzsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJv
ci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyAwMDc7fSkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBzdHJpY3QnOyAnXDAwNyc7IHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigp
eyd1c2Ugc3RyaWN0JzsgJ1wwMDcnO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFy
c2UgZXJyb3IuCiBQQVNTICdcMDA3JzsgJ3VzZSBzdHJpY3QnOyB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsnXDAwNyc7ICd1c2Ugc3Ry
aWN0Jzt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAn
dXNlIHN0cmljdCc7IGRlbGV0ZSBhRGVsZXRhYmxlUHJvcGVydHk7IHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0Jzsg
ZGVsZXRlIGFEZWxldGFibGVQcm9wZXJ0eTt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6
IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IChmdW5jdGlvbiAoKXsgZGVsZXRlIHNv
bWVEZWNsYXJlZEdsb2JhbDt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVy
cm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7IChmdW5jdGlvbiAoKXsgZGVsZXRl
IHNvbWVEZWNsYXJlZEdsb2JhbDt9KX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFy
c2UgZXJyb3IuCiBQQVNTIChmdW5jdGlvbiAoKXsgJ3VzZSBzdHJpY3QnOyBkZWxldGUgc29tZURl
Y2xhcmVkR2xvYmFsO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3Iu
CitQQVNTIChmdW5jdGlvbigpeyhmdW5jdGlvbiAoKXsgJ3VzZSBzdHJpY3QnOyBkZWxldGUgc29t
ZURlY2xhcmVkR2xvYmFsO30pfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBl
cnJvci4KIFBBU1MgJ3VzZSBzdHJpY3QnOyBpZiAoMCkgeyBzb21lR2xvYmFsID0gJ1Nob3VsZG5c
J3QgYmUgYWJsZSB0byBhc3NpZ24gdGhpcy4nOyB9OyB0cnVlOyBpcyB0cnVlCiBQQVNTICd1c2Ug
c3RyaWN0Jzsgc29tZUdsb2JhbCA9ICdTaG91bGRuXCd0IGJlIGFibGUgdG8gYXNzaWduIHRoaXMu
JzsgIHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogU3RyaWN0IG1vZGUgZm9yYmlkcyBp
bXBsaWNpdCBjcmVhdGlvbiBvZiBnbG9iYWwgcHJvcGVydHkgJ3NvbWVHbG9iYWwnLgogUEFTUyAn
dXNlIHN0cmljdCc7IGV2YWwoJ3ZhciBpbnRyb2R1Y2VkVmFyaWFibGUgPSAiRkFJTDogdmFyaWFi
bGUgaW50cm9kdWNlZCBpbnRvIGNvbnRhaW5pbmcgc2NvcGUiOycpOyBpbnRyb2R1Y2VkVmFyaWFi
bGUgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBp
bnRyb2R1Y2VkVmFyaWFibGUuCkBAIC03NywyNSArMTA1LDQ0IEBAIFBBU1MgJ3VzZSBzdHJpY3Qn
OyBvYmplY3RXaXRoUmVhZG9ubHlQcm9wZXJ0eS5wcm9wID0gJ2ZhaWwnIHRocmV3IGV4Y2VwdGlv
biBUeXBlCiBQQVNTICd1c2Ugc3RyaWN0JzsgZGVsZXRlIG9iamVjdFdpdGhSZWFkb25seVByb3Bl
cnR5LnByb3AgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5hYmxlIHRvIGRlbGV0ZSBwcm9w
ZXJ0eS4uCiBQQVNTICd1c2Ugc3RyaWN0JzsgZGVsZXRlIG9iamVjdFdpdGhSZWFkb25seVByb3Bl
cnR5W3JlYWRvbmx5UHJvcE5hbWVdIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuYWJsZSB0
byBkZWxldGUgcHJvcGVydHkuLgogUEFTUyAndXNlIHN0cmljdCc7ICsrZXZhbCB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0
cmljdCc7ICsrZXZhbH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3Iu
CiBQQVNTICd1c2Ugc3RyaWN0JzsgZXZhbCsrIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
UGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0JzsgZXZhbCsrfSkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBzdHJpY3Qn
OyAtLWV2YWwgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1Mg
KGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyAtLWV2YWx9KSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGV2YWwtLSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0
cmljdCc7IGV2YWwtLX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3Iu
CiBQQVNTICd1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgKythcmd1bWVudHMgfSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNl
IHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7ICsrYXJndW1lbnRzIH19KSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYo
KSB7IGFyZ3VtZW50cysrIH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJv
ci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyBhcmd1bWVu
dHMrKyB9fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1Mg
J3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyAtLWFyZ3VtZW50cyB9IHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0
JzsgZnVuY3Rpb24gZigpIHsgLS1hcmd1bWVudHMgfX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhF
cnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgYXJn
dW1lbnRzLS0gfSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgotUEFT
UyBnbG9iYWwuZXZhbCgnInVzZSBzdHJpY3QiOyBpZiAoMCkgKythcmd1bWVudHM7IHRydWU7Jykg
aXMgdHJ1ZQorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7IGFy
Z3VtZW50cy0tIH19KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgor
UEFTUyBnbG9iYWwuZXZhbCgnInVzZSBzdHJpY3QiOyBpZiAoMCkgKythcmd1bWVudHM7IHRydWU7
JykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBz
dHJpY3QnOyArKygxLCBldmFsKSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFByZWZp
eCArKyBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4K
K1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyArKygxLCBldmFsKX0pIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgKDEsIGV2
YWwpKysgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQb3N0Zml4ICsrIG9wZXJhdG9y
IGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyAoZnVuY3Rp
b24oKXsndXNlIHN0cmljdCc7ICgxLCBldmFsKSsrfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBzdHJpY3QnOyAtLSgxLCBldmFsKSB0aHJldyBl
eGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFByZWZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZh
bHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJp
Y3QnOyAtLSgxLCBldmFsKX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJy
b3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgKDEsIGV2YWwpLS0gdGhyZXcgZXhjZXB0aW9uIFJlZmVy
ZW5jZUVycm9yOiBQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBu
b3QgYSByZWZlcmVuY2UuLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ICgxLCBldmFs
KS0tfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3Vz
ZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyArKygxLCBhcmd1bWVudHMpIH0gdGhyZXcgZXhjZXB0
aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJp
Y3QnOyBmdW5jdGlvbiBmKCkgeyArKygxLCBhcmd1bWVudHMpIH19KSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYo
KSB7ICgxLCBhcmd1bWVudHMpKysgfSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNl
IGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7ICgx
LCBhcmd1bWVudHMpKysgfX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJy
b3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgLS0oMSwgYXJndW1lbnRzKSB9
IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlv
bigpeyd1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgLS0oMSwgYXJndW1lbnRzKSB9fSkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBzdHJpY3Qn
OyBmdW5jdGlvbiBmKCkgeyAoMSwgYXJndW1lbnRzKS0tIH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyBmdW5j
dGlvbiBmKCkgeyAoMSwgYXJndW1lbnRzKS0tIH19KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGlmICgwKSBkZWxldGUgK2EuYiB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24o
KXsndXNlIHN0cmljdCc7IGlmICgwKSBkZWxldGUgK2EuYn0pIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ugc3RyaWN0JzsgaWYgKDApIGRlbGV0ZSAr
K2EuYiB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVu
Y3Rpb24oKXsndXNlIHN0cmljdCc7IGlmICgwKSBkZWxldGUgKythLmJ9KSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNlIHN0cmljdCc7IGlmICgwKSBk
ZWxldGUgdm9pZCBhLmIgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4K
K1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOyBpZiAoMCkgZGVsZXRlIHZvaWQgYS5ifSkg
dGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgKGZ1bmN0aW9u
IChhKXsndXNlIHN0cmljdCc7IGEgPSBmYWxzZTsgcmV0dXJuIGEgIT09IGFyZ3VtZW50c1swXTsg
fSkodHJ1ZSkgaXMgdHJ1ZQogUEFTUyAoZnVuY3Rpb24gKGEpeyd1c2Ugc3RyaWN0JzsgYXJndW1l
bnRzWzBdID0gZmFsc2U7IHJldHVybiBhICE9PSBhcmd1bWVudHNbMF07IH0pKHRydWUpIGlzIHRy
dWUKIFBBU1MgKGZ1bmN0aW9uIChhKXsndXNlIHN0cmljdCc7IGE9ZmFsc2U7IHJldHVybiBhcmd1
bWVudHM7IH0pKHRydWUpWzBdIGlzIHRydWUKQEAgLTEyOCw5ICsxNzUsMjMgQEAgUEFTUyAoZnVu
Y3Rpb24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmkKIFBBU1MgKGZ1bmN0aW9uIGYoYXJnKXsndXNlIHN0cmljdCc7IHZhciBk
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLCAnYXJndW1lbnRz
Jyk7IHJldHVybiBkZXNjcmlwdG9yLmdldCA9PT0gZGVzY3JpcHRvci5zZXQ7IH0pKCkgaXMgdHJ1
ZQogUEFTUyAndXNlIHN0cmljdCc7IChmdW5jdGlvbiBmKCkgeyBmb3IodmFyIGkgaW4gdGhpcyk7
IH0pKCk7IHRydWU7IGlzIHRydWUKIFBBU1MgJ3VzZSBzdHJpY3QnzLsgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3Qn
zLt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgogUEFTUyAndXNl
IHN0cmljdCc1LmYgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BB
U1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnNS5mfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBQYXJzZSBlcnJvci4KIFBBU1MgJ3VzZSBzdHJpY3QnO8y7IHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0JzvM
u30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCiBQQVNTICd1c2Ug
c3RyaWN0Jzs1LmYgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BB
U1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnOzUuZn0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhF
cnJvcjogUGFyc2UgZXJyb3IuCitQQVNTICd1c2Ugc3RyaWN0JzsxLShldmFsPTEpOyB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNl
IHN0cmljdCc7MS0oZXZhbD0xKTt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNl
IGVycm9yLgorUEFTUyAndXNlIHN0cmljdCc7YXJndW1lbnRzPTE7IHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIChmdW5jdGlvbigpeyd1c2Ugc3RyaWN0Jzth
cmd1bWVudHM9MTt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgor
UEFTUyAndXNlIHN0cmljdCc7MS0oYXJndW1lbnRzPTEpOyB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7MS0oYXJn
dW1lbnRzPTEpO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQ
QVNTICd1c2Ugc3RyaWN0Jzt2YXIgYT0oZXZhbD0xKTsgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO3ZhciBhPShl
dmFsPTEpO30pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNT
ICd1c2Ugc3RyaWN0Jzt2YXIgYT0oYXJndW1lbnRzPTEpOyB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyAoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7dmFyIGE9
KGFyZ3VtZW50cz0xKTt9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9y
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9iYXNpYy1zdHJpY3QtbW9k
ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Jhc2ljLXN0cmljdC1tb2Rl
LmpzCmluZGV4IGMxM2JlYWNiY2VhOWE4NTNmODQ0ZTg1YWQwMTk3M2M4MmRhYzgxZjAuLjBjZWZj
ZGRkMzMwNDFiMGY1YzdmMzg3N2JjNmFmOTg3YzRhODIxMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Jhc2ljLXN0cmljdC1tb2RlLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Jhc2ljLXN0cmljdC1tb2RlLmpzCkBAIC0xNiw2
ICsxNiwxMSBAQCBmdW5jdGlvbiB0ZXN0VGhpc0JyYWNrZXRBY2Nlc3MocHJvcCkgewogZnVuY3Rp
b24gdGVzdEdsb2JhbEFjY2VzcygpIHsKICAgICByZXR1cm4gdGVzdFRoaXMoKTsKIH0KK2Z1bmN0
aW9uIHNob3VsZEJlU3ludGF4RXJyb3Ioc3RyKSB7CisgICAgc2hvdWxkVGhyb3coc3RyKTsKKyAg
ICBzaG91bGRUaHJvdygiKGZ1bmN0aW9uKCl7IiArIHN0ciArICJ9KSIpOworfQorCiBzaG91bGRC
ZSgidGVzdFRoaXMuY2FsbChudWxsKSIsICJudWxsIik7CiBzaG91bGRCZSgidGVzdFRoaXMuY2Fs
bCgxKSIsICIxIik7CiBzaG91bGRCZSgidGVzdFRoaXMuY2FsbCh0cnVlKSIsICJ0cnVlIik7CkBA
IC00NCwxOSArNDksMTkgQEAgc2hvdWxkQmUoInRlc3RUaGlzLmFwcGx5KCkiLCAidW5kZWZpbmVk
Iik7CiBzaG91bGRCZSgidGVzdFRoaXMuY2FsbCh1bmRlZmluZWQpIiwgInVuZGVmaW5lZCIpOwog
c2hvdWxkQmUoInRlc3RUaGlzLmFwcGx5KHVuZGVmaW5lZCkiLCAidW5kZWZpbmVkIik7CiAKLXNo
b3VsZFRocm93KCIoZnVuY3Rpb24gZXZhbCgpeyd1c2Ugc3RyaWN0Jzt9KSIpOwotc2hvdWxkVGhy
b3coIihmdW5jdGlvbiAoZXZhbCl7J3VzZSBzdHJpY3QnO30pIik7Ci1zaG91bGRUaHJvdygiKGZ1
bmN0aW9uIGFyZ3VtZW50cygpeyd1c2Ugc3RyaWN0Jzt9KSIpOwotc2hvdWxkVGhyb3coIihmdW5j
dGlvbiAoYXJndW1lbnRzKXsndXNlIHN0cmljdCc7fSkiKTsKLXNob3VsZFRocm93KCIoZnVuY3Rp
b24gKCl7J3VzZSBzdHJpY3QnOyB2YXIgZXZhbDt9KSIpOwotc2hvdWxkVGhyb3coIihmdW5jdGlv
biAoKXsndXNlIHN0cmljdCc7IHZhciBhcmd1bWVudHM7fSkiKTsKLXNob3VsZFRocm93KCIoZnVu
Y3Rpb24gKCl7J3VzZSBzdHJpY3QnOyB0cnl7fWNhdGNoKGV2YWwpe319KSIpOwotc2hvdWxkVGhy
b3coIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHRyeXt9Y2F0Y2goYXJndW1lbnRzKXt9fSki
KTsKLXNob3VsZFRocm93KCIoZnVuY3Rpb24gKGEsIGEpeyd1c2Ugc3RyaWN0Jzt9KSIpOwotc2hv
dWxkVGhyb3coIihmdW5jdGlvbiAoYSl7J3VzZSBzdHJpY3QnOyBkZWxldGUgYTt9KSgpIik7Ci1z
aG91bGRUaHJvdygiKGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgdmFyIGE7IGRlbGV0ZSBhO30p
KCkiKTsKLXNob3VsZFRocm93KCIoZnVuY3Rpb24gKCl7dmFyIGE7IGZ1bmN0aW9uIGYoKSB7J3Vz
ZSBzdHJpY3QnOyBkZWxldGUgYTt9IH0pKCkiKTsKLXNob3VsZFRocm93KCIoZnVuY3Rpb24gKCl7
J3VzZSBzdHJpY3QnOyB3aXRoKDEpe307fSkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIihmdW5j
dGlvbiBldmFsKCl7J3VzZSBzdHJpY3QnO30pIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIoZnVu
Y3Rpb24gKGV2YWwpeyd1c2Ugc3RyaWN0Jzt9KSIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiKGZ1
bmN0aW9uIGFyZ3VtZW50cygpeyd1c2Ugc3RyaWN0Jzt9KSIpOworc2hvdWxkQmVTeW50YXhFcnJv
cigiKGZ1bmN0aW9uIChhcmd1bWVudHMpeyd1c2Ugc3RyaWN0Jzt9KSIpOworc2hvdWxkQmVTeW50
YXhFcnJvcigiKGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgdmFyIGV2YWw7fSkiKTsKK3Nob3Vs
ZEJlU3ludGF4RXJyb3IoIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHZhciBhcmd1bWVudHM7
fSkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHRy
eXt9Y2F0Y2goZXZhbCl7fX0pIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIoZnVuY3Rpb24gKCl7
J3VzZSBzdHJpY3QnOyB0cnl7fWNhdGNoKGFyZ3VtZW50cyl7fX0pIik7CitzaG91bGRCZVN5bnRh
eEVycm9yKCIoZnVuY3Rpb24gKGEsIGEpeyd1c2Ugc3RyaWN0Jzt9KSIpOworc2hvdWxkQmVTeW50
YXhFcnJvcigiKGZ1bmN0aW9uIChhKXsndXNlIHN0cmljdCc7IGRlbGV0ZSBhO30pKCkiKTsKK3No
b3VsZEJlU3ludGF4RXJyb3IoIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHZhciBhOyBkZWxl
dGUgYTt9KSgpIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIoZnVuY3Rpb24gKCl7dmFyIGE7IGZ1
bmN0aW9uIGYoKSB7J3VzZSBzdHJpY3QnOyBkZWxldGUgYTt9IH0pKCkiKTsKK3Nob3VsZEJlU3lu
dGF4RXJyb3IoIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IHdpdGgoMSl7fTt9KSIpOwogc2hv
dWxkVGhyb3coIihmdW5jdGlvbiAoKXsndXNlIHN0cmljdCc7IGFyZ3VtZW50cy5jYWxsZWU7IH0p
KCkiKTsKIHNob3VsZFRocm93KCIoZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyBhcmd1bWVudHMu
Y2FsbGVyOyB9KSgpIik7CiBzaG91bGRUaHJvdygiKGZ1bmN0aW9uIGYoKXsndXNlIHN0cmljdCc7
IGYuYXJndW1lbnRzOyB9KSgpIik7CkBAIC02OSwyNyArNzQsMjcgQEAgc2hvdWxkVGhyb3coIihm
dW5jdGlvbiBmKGFyZyl7J3VzZSBzdHJpY3QnOyBmLmFyZ3VtZW50czsgfSkoKSIpOwogc2hvdWxk
VGhyb3coIihmdW5jdGlvbiBmKGFyZyl7J3VzZSBzdHJpY3QnOyBmLmNhbGxlcjsgfSkoKSIpOwog
c2hvdWxkVGhyb3coIihmdW5jdGlvbiBmKGFyZyl7J3VzZSBzdHJpY3QnOyBmLmFyZ3VtZW50cz01
OyB9KSgpIik7CiBzaG91bGRUaHJvdygiKGZ1bmN0aW9uIGYoYXJnKXsndXNlIHN0cmljdCc7IGYu
Y2FsbGVyPTU7IH0pKCkiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IChmdW5jdGlvbiAo
KXt3aXRoKDEpe307fSkiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IChmdW5jdGlvbiAo
KXt2YXIgYTsgZGVsZXRlIGE7fSkiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IHZhciBh
OyAoZnVuY3Rpb24gKCl7IGRlbGV0ZSBhO30pIik7Ci1zaG91bGRUaHJvdygidmFyIGE7IChmdW5j
dGlvbiAoKXsgJ3VzZSBzdHJpY3QnOyBkZWxldGUgYTt9KSIpOwotc2hvdWxkVGhyb3coIidtaXNj
IGRpcmVjdGl2ZSc7ICd1c2Ugc3RyaWN0Jzsgd2l0aCh7fSl7fSIpOworc2hvdWxkQmVTeW50YXhF
cnJvcigiJ3VzZSBzdHJpY3QnOyAoZnVuY3Rpb24gKCl7d2l0aCgxKXt9O30pIik7CitzaG91bGRC
ZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IChmdW5jdGlvbiAoKXt2YXIgYTsgZGVsZXRlIGE7
fSkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGE7IChmdW5jdGlv
biAoKXsgZGVsZXRlIGE7fSkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoInZhciBhOyAoZnVuY3Rp
b24gKCl7ICd1c2Ugc3RyaWN0JzsgZGVsZXRlIGE7fSkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3Io
IidtaXNjIGRpcmVjdGl2ZSc7ICd1c2Ugc3RyaWN0Jzsgd2l0aCh7fSl7fSIpOwogc2hvdWxkVGhy
b3coIid1c2Ugc3RyaWN0JzsgcmV0dXJuIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBi
cmVhayIpOwotc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgY29udGludWUiKTsKK3Nob3VsZEJl
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYnJlYWsiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3Io
Iid1c2Ugc3RyaWN0JzsgY29udGludWUiKTsKIHNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZv
cig7OylyZXR1cm4iKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZvcig7OylicmVhayBt
aXNzaW5nTGFiZWwiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZvcig7Oyljb250aW51
ZSBtaXNzaW5nTGFiZWwiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IDAwNzsiKTsKLXNo
b3VsZFRocm93KCIndXNlIHN0cmljdCc7ICdcXDAwNyc7Iik7Ci1zaG91bGRUaHJvdygiJ1xcMDA3
JzsgJ3VzZSBzdHJpY3QnOyIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBm
b3IoOzspYnJlYWsgbWlzc2luZ0xhYmVsIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IGZvcig7Oyljb250aW51ZSBtaXNzaW5nTGFiZWwiKTsKK3Nob3VsZEJlU3ludGF4RXJy
b3IoIid1c2Ugc3RyaWN0JzsgMDA3OyIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyAnXFwwMDcnOyIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ1xcMDA3JzsgJ3VzZSBzdHJp
Y3QnOyIpOwogCiB2YXIgc29tZURlY2xhcmVkR2xvYmFsOwogYURlbGV0YWJsZVByb3BlcnR5ID0g
J3Rlc3QnOwogCi1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBkZWxldGUgYURlbGV0YWJsZVBy
b3BlcnR5OyIpOwotc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgKGZ1bmN0aW9uICgpeyBkZWxl
dGUgc29tZURlY2xhcmVkR2xvYmFsO30pIik7Ci1zaG91bGRUaHJvdygiKGZ1bmN0aW9uICgpeyAn
dXNlIHN0cmljdCc7IGRlbGV0ZSBzb21lRGVjbGFyZWRHbG9iYWw7fSkiKTsKK3Nob3VsZEJlU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgZGVsZXRlIGFEZWxldGFibGVQcm9wZXJ0eTsiKTsKK3No
b3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKGZ1bmN0aW9uICgpeyBkZWxldGUgc29t
ZURlY2xhcmVkR2xvYmFsO30pIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIoZnVuY3Rpb24gKCl7
ICd1c2Ugc3RyaWN0JzsgZGVsZXRlIHNvbWVEZWNsYXJlZEdsb2JhbDt9KSIpOwogc2hvdWxkQmVU
cnVlKCIndXNlIHN0cmljdCc7IGlmICgwKSB7IHNvbWVHbG9iYWwgPSAnU2hvdWxkblxcJ3QgYmUg
YWJsZSB0byBhc3NpZ24gdGhpcy4nOyB9OyB0cnVlOyIpOwogc2hvdWxkVGhyb3coIid1c2Ugc3Ry
aWN0Jzsgc29tZUdsb2JhbCA9ICdTaG91bGRuXFwndCBiZSBhYmxlIHRvIGFzc2lnbiB0aGlzLic7
ICIpOwogc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgZXZhbCgndmFyIGludHJvZHVjZWRWYXJp
YWJsZSA9IFwiRkFJTDogdmFyaWFibGUgaW50cm9kdWNlZCBpbnRvIGNvbnRhaW5pbmcgc2NvcGVc
IjsnKTsgaW50cm9kdWNlZFZhcmlhYmxlIik7CkBAIC05OSwyNyArMTA0LDI3IEBAIHNob3VsZFRo
cm93KCIndXNlIHN0cmljdCc7IG9iamVjdFdpdGhSZWFkb25seVByb3BlcnR5LnByb3AgPSAnZmFp
bCciKTsKIHNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGRlbGV0ZSBvYmplY3RXaXRoUmVhZG9u
bHlQcm9wZXJ0eS5wcm9wIik7CiByZWFkb25seVByb3BOYW1lID0gInByb3AiOwogc2hvdWxkVGhy
b3coIid1c2Ugc3RyaWN0JzsgZGVsZXRlIG9iamVjdFdpdGhSZWFkb25seVByb3BlcnR5W3JlYWRv
bmx5UHJvcE5hbWVdIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyArK2V2YWwiKTsKLXNo
b3VsZFRocm93KCIndXNlIHN0cmljdCc7IGV2YWwrKyIpOwotc2hvdWxkVGhyb3coIid1c2Ugc3Ry
aWN0JzsgLS1ldmFsIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBldmFsLS0iKTsKLXNo
b3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7ICsrYXJndW1lbnRzIH0iKTsK
LXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7IGFyZ3VtZW50cysrIH0i
KTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7IC0tYXJndW1lbnRz
IH0iKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7IGFyZ3VtZW50
cy0tIH0iKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKytldmFsIik7Citz
aG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGV2YWwrKyIpOworc2hvdWxkQmVTeW50
YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyAtLWV2YWwiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgZXZhbC0tIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7
IGZ1bmN0aW9uIGYoKSB7ICsrYXJndW1lbnRzIH0iKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgYXJndW1lbnRzKysgfSIpOworc2hvdWxkQmVTeW50
YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyAtLWFyZ3VtZW50cyB9Iik7Citz
aG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7IGFyZ3VtZW50
cy0tIH0iKTsKIHZhciBnbG9iYWwgPSB0aGlzOwotc2hvdWxkQmVUcnVlKCJnbG9iYWwuZXZhbCgn
XCJ1c2Ugc3RyaWN0XCI7IGlmICgwKSArK2FyZ3VtZW50czsgdHJ1ZTsnKSIpOwotc2hvdWxkVGhy
b3coIid1c2Ugc3RyaWN0JzsgKysoMSwgZXZhbCkiKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmlj
dCc7ICgxLCBldmFsKSsrIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyAtLSgxLCBldmFs
KSIpOwotc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgKDEsIGV2YWwpLS0iKTsKLXNob3VsZFRo
cm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7ICsrKDEsIGFyZ3VtZW50cykgfSIpOwot
c2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgKDEsIGFyZ3VtZW50cykr
KyB9Iik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyAtLSgxLCBh
cmd1bWVudHMpIH0iKTsKLXNob3VsZFRocm93KCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGYoKSB7
ICgxLCBhcmd1bWVudHMpLS0gfSIpOwotc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgaWYgKDAp
IGRlbGV0ZSArYS5iIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBpZiAoMCkgZGVsZXRl
ICsrYS5iIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyBpZiAoMCkgZGVsZXRlIHZvaWQg
YS5iIik7CitzaG91bGRUaHJvdygiZ2xvYmFsLmV2YWwoJ1widXNlIHN0cmljdFwiOyBpZiAoMCkg
Kythcmd1bWVudHM7IHRydWU7JykiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0
JzsgKysoMSwgZXZhbCkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKDEs
IGV2YWwpKysiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgLS0oMSwgZXZh
bCkiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKDEsIGV2YWwpLS0iKTsK
K3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgKysoMSwg
YXJndW1lbnRzKSB9Iik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGZ1bmN0
aW9uIGYoKSB7ICgxLCBhcmd1bWVudHMpKysgfSIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3Vz
ZSBzdHJpY3QnOyBmdW5jdGlvbiBmKCkgeyAtLSgxLCBhcmd1bWVudHMpIH0iKTsKK3Nob3VsZEJl
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gZigpIHsgKDEsIGFyZ3VtZW50cykt
LSB9Iik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGlmICgwKSBkZWxldGUg
K2EuYiIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBpZiAoMCkgZGVsZXRl
ICsrYS5iIik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGlmICgwKSBkZWxl
dGUgdm9pZCBhLmIiKTsKIAogc2hvdWxkQmVUcnVlKCIoZnVuY3Rpb24gKGEpeyd1c2Ugc3RyaWN0
JzsgYSA9IGZhbHNlOyByZXR1cm4gYSAhPT0gYXJndW1lbnRzWzBdOyB9KSh0cnVlKSIpOwogc2hv
dWxkQmVUcnVlKCIoZnVuY3Rpb24gKGEpeyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzWzBdID0gZmFs
c2U7IHJldHVybiBhICE9PSBhcmd1bWVudHNbMF07IH0pKHRydWUpIik7CkBAIC0xNTcsOSArMTYy
LDEzIEBAIHNob3VsZEJlVHJ1ZSgiKGZ1bmN0aW9uIGYoYXJnKXsndXNlIHN0cmljdCc7IHZhciBk
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlCiBzaG91bGRCZVRydWUoIihmdW5jdGlvbiBm
KGFyZyl7J3VzZSBzdHJpY3QnOyB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZiwgJ2FyZ3VtZW50cycpOyByZXR1cm4gZGVzY3JpcHRvci5nZXQgPT09IGRl
c2NyaXB0b3Iuc2V0OyB9KSgpIik7CiBzaG91bGRCZVRydWUoIid1c2Ugc3RyaWN0JzsgKGZ1bmN0
aW9uIGYoKSB7IGZvcih2YXIgaSBpbiB0aGlzKTsgfSkoKTsgdHJ1ZTsiKQogCi1zaG91bGRUaHJv
dygiJ3VzZSBzdHJpY3QnXHUwMzNiIik7Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnNS5mIik7
Ci1zaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnO1x1MDMzYiIpOwotc2hvdWxkVGhyb3coIid1c2Ug
c3RyaWN0Jzs1LmYiKTsKLQorc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnXHUwMzNi
Iik7CitzaG91bGRCZVN5bnRheEVycm9yKCIndXNlIHN0cmljdCc1LmYiKTsKK3Nob3VsZEJlU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JztcdTAzM2IiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0Jzs1LmYiKTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsxLShl
dmFsPTEpOyIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnO2FyZ3VtZW50cz0x
OyIpOworc2hvdWxkQmVTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOzEtKGFyZ3VtZW50cz0xKTsi
KTsKK3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0Jzt2YXIgYT0oZXZhbD0xKTsiKTsK
K3Nob3VsZEJlU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0Jzt2YXIgYT0oYXJndW1lbnRzPTEpOyIp
OwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCAwNzExM2JmYmQwYWRlOTQ0NTZiZDU4NDRkOTM1NjUxZjFmMzE0NDA0Li4xMzNiNzk3M2Rk
Nzk0YzY1Y2EyNjY5OTEwZTg4OTVkYWMzNWNhMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwzOCBAQAogMjAxMS0wMS0xNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
cmljdCBtb2RlIHJlc3RyaWN0aW9ucyBvbiBhcmd1bWVudHMgYW5kIGV2YWwgdXNhZ2UgYXJlbid0
IGNvbXBsZXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MjUyOAorCisgICAgICAgIEZpeCBhIGZldyBidWdzIGluIHN0cmljdCBtb2RlIHdoZXJlIHdl
IGluY29ycmVjdCBhbGxvdyBtdXRhdGlvbiBvZgorICAgICAgICBhcmd1bWVudHMgYW5kIGV2YWwg
aW4gdGhlIHBhcnNlci4KKworICAgICAgICBBbGFzIHRoZSAib3B0aW1pc2F0aW9uIiB1c2VkIGJ5
IHRoZSBzeW50YXggY2hlY2tlciBmb3IgdmFsaWRhdGluZworICAgICAgICBiaW5hcnkgYW5kIHVu
YXJ5IGV4cHJlc3Npb25zIHdhcyB0b28gYWdncmVzc2l2ZTogd2UgZG8gYWN0dWFsbHkgbmVlZAor
ICAgICAgICBhIHN0YWNrIGZvciBvcGVyYXRpb25zIGFuZCBvcGVyYW5kcyBhbHRob3VnaCBpdCBu
ZWVkbid0IGJlIGFzIGNvbXBsZXRlCisgICAgICAgIGFzIHRoYXQgdXNlZCBmb3IgdGhlIGZ1bGwg
QVNUIGJ1aWxkZXIuCisKKyAgICAgICAgQWxzbyBkaXNhbGxvdyBhc3NpZ25tZW50IHRvIGFyZ3Vt
ZW50cyBpbiBhbGwgY2FzZXMgYXMgYWxsb3dpbmcgYXJndW1lbnRzCisgICAgICAgIHRvIGJlIGFz
c2lnbmFibGUgaXMgYWx3YXlzIGFuIGVycm9yIGluIHN0cmljdCBtb2RlLCByZWdhcmRsZXNzIG9m
IGNvbnRleHQuCisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlND
OjpBU1RCdWlsZGVyOjpCaW5hcnlFeHByQ29udGV4dDo6QmluYXJ5RXhwckNvbnRleHQpOgorICAg
ICAgICAoSlNDOjpBU1RCdWlsZGVyOjpVbmFyeUV4cHJDb250ZXh0OjpVbmFyeUV4cHJDb250ZXh0
KToKKyAgICAgICAgKiBwYXJzZXIvSlNQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpKU1BhcnNl
cjo6cGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6OkpTUGFyc2VyOjpw
YXJzZUJpbmFyeUV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjpKU1BhcnNlcjo6cGFyc2VVbmFy
eUV4cHJlc3Npb24pOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAg
IChKU0M6OlN5bnRheENoZWNrZXI6OkJpbmFyeUV4cHJDb250ZXh0OjpCaW5hcnlFeHByQ29udGV4
dCk6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OkJpbmFyeUV4cHJDb250ZXh0Ojp+Qmlu
YXJ5RXhwckNvbnRleHQpOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpVbmFyeUV4cHJD
b250ZXh0OjpVbmFyeUV4cHJDb250ZXh0KToKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6
VW5hcnlFeHByQ29udGV4dDo6flVuYXJ5RXhwckNvbnRleHQpOgorICAgICAgICAoSlNDOjpTeW50
YXhDaGVja2VyOjphcHBlbmRCaW5hcnlFeHByZXNzaW9uSW5mbyk6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6Om9wZXJhdG9yU3RhY2tQb3ApOgorCisyMDExLTAxLTE1ICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNo
b3dpYWsuCiAKICAgICAgICAgSW5jb3JyZWN0IGJlaGF2aW9yIGNoYW5naW5nIGF0dHJpYnV0ZXMg
b2YgYW4gYWNjZXNzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
aW5kZXggNDA5YzZhYjUzN2VkNTgxZWFiN2I5NTFmOWMxMWM1MzZjMTk5ZDg0NS4uMzM3Yzg3ZWZm
MDMxOWMxMGZmYmU5MWJkZDIwNWM3YjlmZTc2YjE2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTgwLDYgKzgwLDEzIEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1fc2NvcGVzLmFwcGVuZChTY29wZShnbG9iYWxEYXRhKSk7CiAgICAgfQorICAgIAor
ICAgIHN0cnVjdCBCaW5hcnlFeHByQ29udGV4dCB7CisgICAgICAgIEJpbmFyeUV4cHJDb250ZXh0
KEFTVEJ1aWxkZXImKSB7fQorICAgIH07CisgICAgc3RydWN0IFVuYXJ5RXhwckNvbnRleHQgewor
ICAgICAgICBVbmFyeUV4cHJDb250ZXh0KEFTVEJ1aWxkZXImKSB7fQorICAgIH07CiAKICAgICB0
eXBlZGVmIFN5bnRheENoZWNrZXIgRnVuY3Rpb25Cb2R5QnVpbGRlcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9KU1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNwcAppbmRleCA2NDBmNjAzZTA1ODA1ZWY3ZjQ4Y2My
OWU3YmFiNmNjNWU2YTY3ZWQzLi45ODM1ODhmZTM0YTE1NDRhMThmMWQ5ZDZjMTE0MGJmNGFmZWY5
MjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNwcApAQCAtMTQ5
MCw2ICsxNDkwLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVz
c2lvbiBKU1BhcnNlcjo6cGFyc2VBc3NpZ25tZW50RXhwcmVzc2kKICAgICAgICAgbmV4dCgpOwog
ICAgICAgICBpZiAoc3RyaWN0TW9kZSgpICYmIG1fbGFzdElkZW50aWZpZXIgJiYgY29udGV4dC5p
c1Jlc29sdmUobGhzKSkgewogICAgICAgICAgICAgZmFpbElmVHJ1ZUlmU3RyaWN0KG1fZ2xvYmFs
RGF0YS0+cHJvcGVydHlOYW1lcy0+ZXZhbCA9PSAqbV9sYXN0SWRlbnRpZmllcik7CisgICAgICAg
ICAgICBmYWlsSWZUcnVlSWZTdHJpY3QobV9nbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVzLT5hcmd1
bWVudHMgPT0gKm1fbGFzdElkZW50aWZpZXIpOwogICAgICAgICAgICAgZGVjbGFyZVdyaXRlKG1f
bGFzdElkZW50aWZpZXIpOwogICAgICAgICAgICAgbV9sYXN0SWRlbnRpZmllciA9IDA7CiAgICAg
ICAgIH0KQEAgLTE1NDUsNiArMTU0Niw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZUV4cHJlc3Npb24gSlNQYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbihUcmVlCiAKICAg
ICBpbnQgb3BlcmFuZFN0YWNrRGVwdGggPSAwOwogICAgIGludCBvcGVyYXRvclN0YWNrRGVwdGgg
PSAwOworICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpCaW5hcnlFeHByQ29udGV4dCBiaW5hcnlF
eHByQ29udGV4dChjb250ZXh0KTsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBpbnQgZXhw
clN0YXJ0ID0gdG9rZW5TdGFydCgpOwogICAgICAgICBpbnQgaW5pdGlhbEFzc2lnbm1lbnRzID0g
bV9hc3NpZ25tZW50Q291bnQ7CkBAIC0xOTQyLDYgKzE5NDQsNyBAQCBlbmRNZW1iZXJFeHByZXNz
aW9uOgogCiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIEpTUGFy
c2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbihUcmVlQnVpbGRlciYgY29udGV4dCkKIHsKKyAgICB0
eXBlbmFtZSBUcmVlQnVpbGRlcjo6VW5hcnlFeHByQ29udGV4dCB1bmFyeUV4cHJDb250ZXh0KGNv
bnRleHQpOwogICAgIEFsbG93SW5PdmVycmlkZSBhbGxvd0luT3ZlcnJpZGUodGhpcyk7CiAgICAg
aW50IHRva2VuU3RhY2tEZXB0aCA9IDA7CiAgICAgYm9vbCBtb2RpZmllc0V4cHIgPSBmYWxzZTsK
QEAgLTE5NzcsOSArMTk4MCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gSlNQYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uKFRyZWVCCiAgICAgYm9vbCBp
c0V2YWxPckFyZ3VtZW50cyA9IGZhbHNlOwogICAgIGlmIChzdHJpY3RNb2RlKCkgJiYgIW1fc3lu
dGF4QWxyZWFkeVZhbGlkYXRlZCkgewogICAgICAgICBpZiAoY29udGV4dC5pc1Jlc29sdmUoZXhw
cikpIHsKLSAgICAgICAgICAgIGlzRXZhbE9yQXJndW1lbnRzID0gbV9nbG9iYWxEYXRhLT5wcm9w
ZXJ0eU5hbWVzLT5ldmFsID09ICptX2xhc3RJZGVudGlmaWVyOwotICAgICAgICAgICAgaWYgKCFp
c0V2YWxPckFyZ3VtZW50cyAmJiBjdXJyZW50U2NvcGUoKS0+aXNGdW5jdGlvbigpKQotICAgICAg
ICAgICAgICAgIGlzRXZhbE9yQXJndW1lbnRzID0gbV9nbG9iYWxEYXRhLT5wcm9wZXJ0eU5hbWVz
LT5hcmd1bWVudHMgPT0gKm1fbGFzdElkZW50aWZpZXI7CisgICAgICAgICAgICBpc0V2YWxPckFy
Z3VtZW50cyA9IG1fZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+ZXZhbCA9PSAqbV9sYXN0SWRl
bnRpZmllciB8fCBtX2dsb2JhbERhdGEtPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cyA9PSAqbV9s
YXN0SWRlbnRpZmllcjsKICAgICAgICAgfQogICAgIH0KICAgICBmYWlsSWZUcnVlSWZTdHJpY3Qo
aXNFdmFsT3JBcmd1bWVudHMgJiYgbW9kaWZpZXNFeHByKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggM2U2NDEyNjFjNTMwODhhMTA3Zjg3OTI5
ZWQzNmIyMWYyOTMwODI0OC4uMWI1NDk3YWY0N2EyMjA4NDk5NGJiNjdkNTMzYzZmMzMxNDNmMTZm
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2Vy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAg
LTMxLDggKzMxLDM4IEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFN5bnRheENoZWNrZXIgewog
cHVibGljOgorICAgIHN0cnVjdCBCaW5hcnlFeHByQ29udGV4dCB7CisgICAgICAgIEJpbmFyeUV4
cHJDb250ZXh0KFN5bnRheENoZWNrZXImIGNvbnRleHQpCisgICAgICAgICAgICA6IG1fY29udGV4
dCgmY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb250ZXh0LT5tX3RvcEJpbmFy
eUV4cHJzLmFwcGVuZChtX2NvbnRleHQtPm1fdG9wQmluYXJ5RXhwcik7CisgICAgICAgICAgICBt
X2NvbnRleHQtPm1fdG9wQmluYXJ5RXhwciA9IDA7CisgICAgICAgIH0KKyAgICAgICAgfkJpbmFy
eUV4cHJDb250ZXh0KCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb250ZXh0LT5tX3RvcEJp
bmFyeUV4cHIgPSBtX2NvbnRleHQtPm1fdG9wQmluYXJ5RXhwcnMubGFzdCgpOworICAgICAgICAg
ICAgbV9jb250ZXh0LT5tX3RvcEJpbmFyeUV4cHJzLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgfQor
ICAgIHByaXZhdGU6CisgICAgICAgIFN5bnRheENoZWNrZXIqIG1fY29udGV4dDsKKyAgICB9Owor
ICAgIHN0cnVjdCBVbmFyeUV4cHJDb250ZXh0IHsKKyAgICAgICAgVW5hcnlFeHByQ29udGV4dChT
eW50YXhDaGVja2VyJiBjb250ZXh0KQorICAgICAgICAgICAgOiBtX2NvbnRleHQoJmNvbnRleHQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+bV90b3BVbmFyeVRva2Vucy5hcHBl
bmQobV9jb250ZXh0LT5tX3RvcFVuYXJ5VG9rZW4pOworICAgICAgICAgICAgbV9jb250ZXh0LT5t
X3RvcFVuYXJ5VG9rZW4gPSAwOworICAgICAgICB9CisgICAgICAgIH5VbmFyeUV4cHJDb250ZXh0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb250ZXh0LT5tX3RvcFVuYXJ5VG9rZW4gPSBt
X2NvbnRleHQtPm1fdG9wVW5hcnlUb2tlbnMubGFzdCgpOworICAgICAgICAgICAgbV9jb250ZXh0
LT5tX3RvcFVuYXJ5VG9rZW5zLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6
CisgICAgICAgIFN5bnRheENoZWNrZXIqIG1fY29udGV4dDsKKyAgICB9OworICAgIAogICAgIFN5
bnRheENoZWNrZXIoSlNHbG9iYWxEYXRhKiAsIExleGVyKikKLSAgICAgICAgOiBtX3RvcEJpbmFy
eUV4cHIoMCkKICAgICB7CiAgICAgfQogCkBAIC0yMTIsNiArMjQyLDggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBpbnQgbV90b3BCaW5hcnlFeHByOwogICAgIGludCBtX3RvcFVuYXJ5VG9rZW47
CisgICAgVmVjdG9yPGludCwgOD4gbV90b3BCaW5hcnlFeHByczsKKyAgICBWZWN0b3I8aW50LCA4
PiBtX3RvcFVuYXJ5VG9rZW5zOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="70475"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>