<?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>157545</bug_id>
          
          <creation_ts>2016-05-10 16:56:31 -0700</creation_ts>
          <short_desc>Improve error messages for accessing arguments.callee and similar getters in strict mode</short_desc>
          <delta_ts>2016-05-11 11:32:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1191733</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-10 16:56:31 -0700</bug_when>
    <thetext>* SUMMARY
Improve error messages for accessing arguments.callee and similar getters in strict mode.

Error should be more like accessing callee inside of a class context.

* BEFORE:
&gt;&gt;&gt; (function() { &quot;use strict&quot;; arguments.callee })()
Exception: TypeError: Type error
&gt;&gt;&gt; (function() { &quot;use strict&quot;; arguments.callee }).arguments
Exception: TypeError: Type error
&gt;&gt;&gt; class Foo { method() { arguments.callee; } }; (new Foo).method()
Exception: TypeError: &apos;callee&apos; and &apos;caller&apos; cannot be accessed in strict mode.

* AFTER:
&gt;&gt;&gt; (function() { &quot;use strict&quot;; arguments.callee })()
Exception: TypeError: &apos;callee&apos; and &apos;caller&apos; cannot be accessed in strict mode.
&gt;&gt;&gt; (function() { &quot;use strict&quot;; arguments.callee }).arguments
Exception: TypeError: &apos;caller&apos; and &apos;arguments&apos; cannot be accessed in strict mode.
&gt;&gt;&gt; class Foo { method() { arguments.callee; } }; (new Foo).method()
Exception: TypeError: &apos;callee&apos; and &apos;caller&apos; cannot be accessed in strict mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191735</commentid>
    <comment_count>1</comment_count>
      <attachid>278552</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-10 16:58:58 -0700</bug_when>
    <thetext>Created attachment 278552
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191736</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-10 17:00:52 -0700</bug_when>
    <thetext>Attachment 278552 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:399:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/JSGlobalObject.cpp:407:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191741</commentid>
    <comment_count>3</comment_count>
      <attachid>278552</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-10 17:08:14 -0700</bug_when>
    <thetext>Comment on attachment 278552
[PATCH] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191994</commentid>
    <comment_count>4</comment_count>
      <attachid>278552</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 11:32:42 -0700</bug_when>
    <thetext>Comment on attachment 278552
[PATCH] Proposed Fix

Clearing flags on attachment: 278552

Committed r200694: &lt;http://trac.webkit.org/changeset/200694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191995</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 11:32:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278552</attachid>
            <date>2016-05-10 16:58:58 -0700</date>
            <delta_ts>2016-05-11 11:32:42 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>better-errors-1.patch</filename>
            <type>text/plain</type>
            <size>25250</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMTY0M2M0Li40NTc2OTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUt
MTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBy
b3ZlIGVycm9yIG1lc3NhZ2VzIGZvciBhY2Nlc3NpbmcgYXJndW1lbnRzLmNhbGxlZSBhbmQgc2lt
aWxhciBnZXR0ZXJzIGluIHN0cmljdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGpzL2Jhc2ljLXN0cmljdC1tb2RlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBqcy9jYWxsZXItcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpz
L3NjcmlwdC10ZXN0cy9jYWxsZXItcHJvcGVydHkuanM6CisKIDIwMTYtMDUtMTAgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFya2luZyBmYXN0L3RleHQv
dW5pY29kZS1yYW5nZS1kb3dubG9hZC5odG1sIGFzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9iYXNpYy1zdHJpY3QtbW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9i
YXNpYy1zdHJpY3QtbW9kZS1leHBlY3RlZC50eHQKaW5kZXggYWE0NjI1Ni4uMGE1ODRmZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvYmFzaWMtc3RyaWN0LW1vZGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXN0cmljdC1tb2RlLWV4cGVjdGVkLnR4dApAQCAtNTYs
MTggKzU2LDE4IEBAIFBBU1MgKGZ1bmN0aW9uICgpe3ZhciBhOyBmdW5jdGlvbiBmKCkgeyd1c2Ug
c3RyaWN0JzsgZGVsZXRlIGE7fSB9KSgpIHRocmV3IGV4Y2VwCiBQQVNTIChmdW5jdGlvbigpeyhm
dW5jdGlvbiAoKXt2YXIgYTsgZnVuY3Rpb24gZigpIHsndXNlIHN0cmljdCc7IGRlbGV0ZSBhO30g
fSkoKX0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogQ2Fubm90IGRlbGV0ZSB1bnF1YWxp
ZmllZCBwcm9wZXJ0eSAnYScgaW4gc3RyaWN0IG1vZGUuLgogUEFTUyAoZnVuY3Rpb24gKCl7J3Vz
ZSBzdHJpY3QnOyB3aXRoKDEpe307fSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiAnd2l0
aCcgc3RhdGVtZW50cyBhcmUgbm90IHZhbGlkIGluIHN0cmljdCBtb2RlLi4KIFBBU1MgKGZ1bmN0
aW9uKCl7KGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0Jzsgd2l0aCgxKXt9O30pfSkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiAnd2l0aCcgc3RhdGVtZW50cyBhcmUgbm90IHZhbGlkIGluIHN0
cmljdCBtb2RlLi4KLVBBU1MgKGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzLmNh
bGxlZTsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyAo
ZnVuY3Rpb24gKCl7J3VzZSBzdHJpY3QnOyBhcmd1bWVudHMuY2FsbGVyOyB9KSgpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIChmdW5jdGlvbiBmKCl7J3VzZSBz
dHJpY3QnOyBmLmFyZ3VtZW50czsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgotUEFTUyAoZnVuY3Rpb24gZigpeyd1c2Ugc3RyaWN0JzsgZi5jYWxsZXI7IH0pKCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgKGZ1bmN0aW9uIGYo
KXsndXNlIHN0cmljdCc7IGYuYXJndW1lbnRzPTU7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgKGZ1bmN0aW9uIGYoKXsndXNlIHN0cmljdCc7IGYuY2Fs
bGVyPTU7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
KGZ1bmN0aW9uIChhcmcpeyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzLmNhbGxlZTsgfSkoKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyAoZnVuY3Rpb24gKGFyZyl7
J3VzZSBzdHJpY3QnOyBhcmd1bWVudHMuY2FsbGVyOyB9KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIChmdW5jdGlvbiBmKGFyZyl7J3VzZSBzdHJpY3QnOyBm
LmFyZ3VtZW50czsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
UEFTUyAoZnVuY3Rpb24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgZi5jYWxsZXI7IH0pKCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgKGZ1bmN0aW9uIGYoYXJnKXsn
dXNlIHN0cmljdCc7IGYuYXJndW1lbnRzPTU7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgKGZ1bmN0aW9uIGYoYXJnKXsndXNlIHN0cmljdCc7IGYuY2Fs
bGVyPTU7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
KGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzLmNhbGxlZTsgfSkoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVlJyBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vz
c2VkIGluIHN0cmljdCBtb2RlLi4KK1BBU1MgKGZ1bmN0aW9uICgpeyd1c2Ugc3RyaWN0JzsgYXJn
dW1lbnRzLmNhbGxlcjsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVlJyBh
bmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KK1BBU1MgKGZ1
bmN0aW9uIGYoKXsndXNlIHN0cmljdCc7IGYuYXJndW1lbnRzOyB9KSgpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQg
aW4gc3RyaWN0IG1vZGUuLgorUEFTUyAoZnVuY3Rpb24gZigpeyd1c2Ugc3RyaWN0JzsgZi5jYWxs
ZXI7IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVu
dHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBzdHJpY3QgbW9kZS4uCitQQVNTIChmdW5jdGlvbiBm
KCl7J3VzZSBzdHJpY3QnOyBmLmFyZ3VtZW50cz01OyB9KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3Ry
aWN0IG1vZGUuLgorUEFTUyAoZnVuY3Rpb24gZigpeyd1c2Ugc3RyaWN0JzsgZi5jYWxsZXI9NTsg
fSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycg
Y2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KK1BBU1MgKGZ1bmN0aW9uIChhcmcp
eyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzLmNhbGxlZTsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiAnY2FsbGVlJyBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmlj
dCBtb2RlLi4KK1BBU1MgKGZ1bmN0aW9uIChhcmcpeyd1c2Ugc3RyaWN0JzsgYXJndW1lbnRzLmNh
bGxlcjsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVlJyBhbmQgJ2NhbGxl
cicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KK1BBU1MgKGZ1bmN0aW9uIGYo
YXJnKXsndXNlIHN0cmljdCc7IGYuYXJndW1lbnRzOyB9KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3Ry
aWN0IG1vZGUuLgorUEFTUyAoZnVuY3Rpb24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgZi5jYWxsZXI7
IH0pKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMn
IGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBzdHJpY3QgbW9kZS4uCitQQVNTIChmdW5jdGlvbiBmKGFy
Zyl7J3VzZSBzdHJpY3QnOyBmLmFyZ3VtZW50cz01OyB9KSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6ICdjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3Ry
aWN0IG1vZGUuLgorUEFTUyAoZnVuY3Rpb24gZihhcmcpeyd1c2Ugc3RyaWN0JzsgZi5jYWxsZXI9
NTsgfSkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50
cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KIFBBU1MgImNhbGxlciIgaW4g
ZnVuY3Rpb24oKXsidXNlIHN0cmljdCJ9IGlzIHRydWUKIFBBU1MgKGZ1bmN0aW9uKCl7InVzZSBz
dHJpY3QiO30pLmhhc093blByb3BlcnR5KCJjYWxsZXIiKSBpcyB0cnVlCiBQQVNTICJhcmd1bWVu
dHMiIGluIGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QifSBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9jYWxsZXItcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
Y2FsbGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCBlNTU0NDYyLi4wYzEzNjk2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9jYWxsZXItcHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2pzL2NhbGxlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTcsMjUgKzcs
MjUgQEAgUEFTUyBjaGlsZEhhc0NhbGxlcldoZW5FeGVjdXRpbmdHbG9iYWxDb2RlIGlzIGZhbHNl
CiBQQVNTIGNoaWxkSGFzQ2FsbGVyV2hlbkNhbGxlZFdpdGhvdXRQYXJlbnQgaXMgZmFsc2UKIFBB
U1MgY2hpbGRIYXNDYWxsZXJXaGVuQ2FsbGVkRnJvbVdpdGhpblBhcmVudCBpcyB0cnVlCiBQQVNT
IG5vblN0cmljdENhbGxlcihub25TdHJpY3RDYWxsZWUpIGlzIG5vblN0cmljdENhbGxlcgotUEFT
UyBub25TdHJpY3RDYWxsZXIoc3RyaWN0Q2FsbGVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBub25TdHJpY3RDYWxsZXIoc3RyaWN0Q2FsbGVlKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFj
Y2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KIFBBU1Mgc3RyaWN0Q2FsbGVyKG5vblN0cmljdENhbGxl
ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRnVuY3Rpb24uY2FsbGVyIHVzZWQgdG8gcmV0
cmlldmUgc3RyaWN0IGNhbGxlci4KLVBBU1Mgc3RyaWN0Q2FsbGVyKHN0cmljdENhbGxlZSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgc3RyaWN0Q2FsbGVyKHN0
cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1
bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBzdHJpY3QgbW9kZS4uCiBQQVNTIHN0cmljdFRh
aWxDYWxsZXIobm9uU3RyaWN0Q2FsbGVlKSBpcyBudWxsCi1QQVNTIHN0cmljdFRhaWxDYWxsZXIo
c3RyaWN0Q2FsbGVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBzdHJpY3RUYWlsQ2FsbGVyKHN0cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBzdHJpY3Qg
bW9kZS4uCiBQQVNTIG5vblN0cmljdENhbGxlcihib3VuZE5vblN0cmljdENhbGxlZSkgaXMgbm9u
U3RyaWN0Q2FsbGVyCi1QQVNTIG5vblN0cmljdENhbGxlcihib3VuZFN0cmljdENhbGxlZSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgbm9uU3RyaWN0Q2FsbGVy
KGJvdW5kU3RyaWN0Q2FsbGVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVyJyBh
bmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KIFBBU1Mg
c3RyaWN0Q2FsbGVyKGJvdW5kTm9uU3RyaWN0Q2FsbGVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBGdW5jdGlvbi5jYWxsZXIgdXNlZCB0byByZXRyaWV2ZSBzdHJpY3QgY2FsbGVyLgotUEFT
UyBzdHJpY3RDYWxsZXIoYm91bmRTdHJpY3RDYWxsZWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIHN0cmljdENhbGxlcihib3VuZFN0cmljdENhbGxlZSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBi
ZSBhY2Nlc3NlZCBpbiBzdHJpY3QgbW9kZS4uCiBQQVNTIHN0cmljdFRhaWxDYWxsZXIoYm91bmRO
b25TdHJpY3RDYWxsZWUpIGlzIG51bGwKLVBBU1Mgc3RyaWN0VGFpbENhbGxlcihib3VuZFN0cmlj
dENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgc3Ry
aWN0VGFpbENhbGxlcihib3VuZFN0cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiBzdHJpY3Qg
bW9kZS4uCiBQQVNTIG5vblN0cmljdEdldHRlcihub25TdHJpY3RBY2Nlc3NvcikgaXMgbm9uU3Ry
aWN0R2V0dGVyCiBQQVNTIG5vblN0cmljdFNldHRlcihub25TdHJpY3RBY2Nlc3NvcikgaXMgdHJ1
ZQotUEFTUyBub25TdHJpY3RHZXR0ZXIoc3RyaWN0QWNjZXNzb3IpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG5vblN0cmljdFNldHRlcihzdHJpY3RBY2Nlc3Nv
cikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgbm9uU3RyaWN0
R2V0dGVyKHN0cmljdEFjY2Vzc29yKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAnY2FsbGVy
JyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmljdCBtb2RlLi4KK1BB
U1Mgbm9uU3RyaWN0U2V0dGVyKHN0cmljdEFjY2Vzc29yKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiAnY2FsbGVyJyBhbmQgJ2FyZ3VtZW50cycgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHN0cmlj
dCBtb2RlLi4KIFBBU1Mgc3RyaWN0R2V0dGVyKG5vblN0cmljdEFjY2Vzc29yKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBGdW5jdGlvbi5jYWxsZXIgdXNlZCB0byByZXRyaWV2ZSBzdHJpY3Qg
Y2FsbGVyLgogUEFTUyBzdHJpY3RTZXR0ZXIobm9uU3RyaWN0QWNjZXNzb3IpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEZ1bmN0aW9uLmNhbGxlciB1c2VkIHRvIHJldHJpZXZlIHN0cmljdCBj
YWxsZXIuCi1QQVNTIHN0cmljdEdldHRlcihzdHJpY3RBY2Nlc3NvcikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mgc3RyaWN0U2V0dGVyKHN0cmljdEFjY2Vzc29y
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdHJpY3RHZXR0
ZXIoc3RyaWN0QWNjZXNzb3IpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICdjYWxsZXInIGFu
ZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3RyaWN0IG1vZGUuLgorUEFTUyBz
dHJpY3RTZXR0ZXIoc3RyaWN0QWNjZXNzb3IpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICdj
YWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3RyaWN0IG1vZGUu
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2FsbGVyLXByb3BlcnR5LmpzIGIv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NhbGxlci1wcm9wZXJ0eS5qcwppbmRleCA3MDQ4
ZjBkLi5jMGEzODVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2Fs
bGVyLXByb3BlcnR5LmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jYWxsZXIt
cHJvcGVydHkuanMKQEAgLTI3LDIxICsyNywyMSBAQCBmdW5jdGlvbiBub25TdHJpY3RDYWxsZXIo
eCkgeyByZXR1cm4geCgpOyB9CiBmdW5jdGlvbiBzdHJpY3RDYWxsZXIoeCkgeyAidXNlIHN0cmlj
dCI7IHZhciByZXN1bHQgPSB4KCk7IHJldHVybiByZXN1bHQ7IH0KIGZ1bmN0aW9uIHN0cmljdFRh
aWxDYWxsZXIoeCkgeyAidXNlIHN0cmljdCI7IHJldHVybiB4KCk7IH0KIHNob3VsZEJlKCJub25T
dHJpY3RDYWxsZXIobm9uU3RyaWN0Q2FsbGVlKSIsICJub25TdHJpY3RDYWxsZXIiKTsKLXNob3Vs
ZFRocm93KCJub25TdHJpY3RDYWxsZXIoc3RyaWN0Q2FsbGVlKSIsICciVHlwZUVycm9yOiBUeXBl
IGVycm9yIicpOworc2hvdWxkVGhyb3coIm5vblN0cmljdENhbGxlcihzdHJpY3RDYWxsZWUpIik7
CiBzaG91bGRUaHJvdygic3RyaWN0Q2FsbGVyKG5vblN0cmljdENhbGxlZSkiLCAnIlR5cGVFcnJv
cjogRnVuY3Rpb24uY2FsbGVyIHVzZWQgdG8gcmV0cmlldmUgc3RyaWN0IGNhbGxlciInKTsKLXNo
b3VsZFRocm93KCJzdHJpY3RDYWxsZXIoc3RyaWN0Q2FsbGVlKSIsICciVHlwZUVycm9yOiBUeXBl
IGVycm9yIicpOworc2hvdWxkVGhyb3coInN0cmljdENhbGxlcihzdHJpY3RDYWxsZWUpIik7CiBz
aG91bGRCZSgic3RyaWN0VGFpbENhbGxlcihub25TdHJpY3RDYWxsZWUpIiwgIm51bGwiKTsKLXNo
b3VsZFRocm93KCJzdHJpY3RUYWlsQ2FsbGVyKHN0cmljdENhbGxlZSkiLCAnIlR5cGVFcnJvcjog
VHlwZSBlcnJvciInKTsKK3Nob3VsZFRocm93KCJzdHJpY3RUYWlsQ2FsbGVyKHN0cmljdENhbGxl
ZSkiKTsKIAogLy8gLmNhbGxlciB3aXRoaW4gYSBib3VuZCBmdW5jdGlvbiByZWFjaGVzIHRoZSBj
YWxsZXIsIGlnbm9yaW5nIHRoZSBiaW5kaW5nLgogdmFyIGJvdW5kTm9uU3RyaWN0Q2FsbGVlID0g
bm9uU3RyaWN0Q2FsbGVlLmJpbmQoKTsKIHZhciBib3VuZFN0cmljdENhbGxlZSA9IHN0cmljdENh
bGxlZS5iaW5kKCk7CiBzaG91bGRCZSgibm9uU3RyaWN0Q2FsbGVyKGJvdW5kTm9uU3RyaWN0Q2Fs
bGVlKSIsICJub25TdHJpY3RDYWxsZXIiKTsKLXNob3VsZFRocm93KCJub25TdHJpY3RDYWxsZXIo
Ym91bmRTdHJpY3RDYWxsZWUpIiwgJyJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiJyk7CitzaG91bGRU
aHJvdygibm9uU3RyaWN0Q2FsbGVyKGJvdW5kU3RyaWN0Q2FsbGVlKSIpOwogc2hvdWxkVGhyb3co
InN0cmljdENhbGxlcihib3VuZE5vblN0cmljdENhbGxlZSkiLCAnIlR5cGVFcnJvcjogRnVuY3Rp
b24uY2FsbGVyIHVzZWQgdG8gcmV0cmlldmUgc3RyaWN0IGNhbGxlciInKTsKLXNob3VsZFRocm93
KCJzdHJpY3RDYWxsZXIoYm91bmRTdHJpY3RDYWxsZWUpIiwgJyJUeXBlRXJyb3I6IFR5cGUgZXJy
b3IiJyk7CitzaG91bGRUaHJvdygic3RyaWN0Q2FsbGVyKGJvdW5kU3RyaWN0Q2FsbGVlKSIpOwog
c2hvdWxkQmUoInN0cmljdFRhaWxDYWxsZXIoYm91bmROb25TdHJpY3RDYWxsZWUpIiwgIm51bGwi
KTsKLXNob3VsZFRocm93KCJzdHJpY3RUYWlsQ2FsbGVyKGJvdW5kU3RyaWN0Q2FsbGVlKSIsICci
VHlwZUVycm9yOiBUeXBlIGVycm9yIicpOworc2hvdWxkVGhyb3coInN0cmljdFRhaWxDYWxsZXIo
Ym91bmRTdHJpY3RDYWxsZWUpIik7CiAKIC8vIENoZWNrIHRoYXQgLmNhbGxlciB3b3JrcyAob3Ig
dGhyb3dzKSBhcyBleHBlY3RlZCwgb3ZlciBhbiBhY2Nlc3NvciBjYWxsLgogZnVuY3Rpb24gZ2V0
Rm9vR2V0dGVyKHgpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeCwg
J2ZvbycpLmdldDsgfQpAQCAtNjAsOSArNjAsOSBAQCBmdW5jdGlvbiBzdHJpY3RHZXR0ZXIoeCkg
eyAidXNlIHN0cmljdCI7IHJldHVybiB4LmZvbzsgfQogZnVuY3Rpb24gc3RyaWN0U2V0dGVyKHgp
IHsgInVzZSBzdHJpY3QiOyB4LmZvbyA9IG5vblN0cmljdFNldHRlcjsgcmV0dXJuIHRydWU7IH0K
IHNob3VsZEJlKCJub25TdHJpY3RHZXR0ZXIobm9uU3RyaWN0QWNjZXNzb3IpIiwgIm5vblN0cmlj
dEdldHRlciIpOwogc2hvdWxkQmVUcnVlKCJub25TdHJpY3RTZXR0ZXIobm9uU3RyaWN0QWNjZXNz
b3IpIik7Ci1zaG91bGRUaHJvdygibm9uU3RyaWN0R2V0dGVyKHN0cmljdEFjY2Vzc29yKSIsICci
VHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwotc2hvdWxkVGhyb3coIm5vblN0cmljdFNldHRlcihz
dHJpY3RBY2Nlc3NvcikiLCAnIlR5cGVFcnJvcjogVHlwZSBlcnJvciInKTsKK3Nob3VsZFRocm93
KCJub25TdHJpY3RHZXR0ZXIoc3RyaWN0QWNjZXNzb3IpIik7CitzaG91bGRUaHJvdygibm9uU3Ry
aWN0U2V0dGVyKHN0cmljdEFjY2Vzc29yKSIpOwogc2hvdWxkVGhyb3coInN0cmljdEdldHRlcihu
b25TdHJpY3RBY2Nlc3NvcikiLCAnIlR5cGVFcnJvcjogRnVuY3Rpb24uY2FsbGVyIHVzZWQgdG8g
cmV0cmlldmUgc3RyaWN0IGNhbGxlciInKTsKIHNob3VsZFRocm93KCJzdHJpY3RTZXR0ZXIobm9u
U3RyaWN0QWNjZXNzb3IpIiwgJyJUeXBlRXJyb3I6IEZ1bmN0aW9uLmNhbGxlciB1c2VkIHRvIHJl
dHJpZXZlIHN0cmljdCBjYWxsZXIiJyk7Ci1zaG91bGRUaHJvdygic3RyaWN0R2V0dGVyKHN0cmlj
dEFjY2Vzc29yKSIsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwotc2hvdWxkVGhyb3coInN0
cmljdFNldHRlcihzdHJpY3RBY2Nlc3NvcikiLCAnIlR5cGVFcnJvcjogVHlwZSBlcnJvciInKTsK
K3Nob3VsZFRocm93KCJzdHJpY3RHZXR0ZXIoc3RyaWN0QWNjZXNzb3IpIik7CitzaG91bGRUaHJv
dygic3RyaWN0U2V0dGVyKHN0cmljdEFjY2Vzc29yKSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggYzRhYTgxOS4uM2M1N2ZkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMzkgQEAKIDIwMTYtMDUtMTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAorICAgICAgICBJbXByb3ZlIGVycm9yIG1lc3NhZ2VzIGZvciBhY2Nlc3NpbmcgYXJndW1l
bnRzLmNhbGxlZSBhbmQgc2ltaWxhciBnZXR0ZXJzIGluIHN0cmljdCBtb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJn
dW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2xvbmVkQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6Om1hdGVyaWFsaXplU3BlY2lh
bHMpOgorICAgICAgICBQcm92aWRlIGJldHRlciBlcnJvciBHZXR0ZXJTZXR0ZXIgaW4gc3RyaWN0
IG1vZGUuCisKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpnZXRUaHJvd1R5cGVFcnJvckdldHRlclNldHRlcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rp
b246OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgUHJvdmlkZSBiZXR0ZXIgZXJyb3IgR2V0
dGVyU2V0dGVyIGluIHN0cmljdCBtb2RlLgorCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnRocm93VHlw
ZUVycm9yR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnRocm93
VHlwZUVycm9yQ2FsbGVlQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNH
bG9iYWxPYmplY3Q6OnRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVySW5TdHJpY3RNb2Rl
R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnRocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVySW5DbGFzc0NvbnRleHRHZXR0ZXJTZXR0ZXIpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJH
ZXR0ZXJTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JDYWxs
ZWVBbmRDYWxsZXIpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1
bWVudHNBbmRDYWxsZXJJblN0cmljdE1vZGUpOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jVGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJbkNsYXNzQ29udGV4dCk6CisgICAgICAgIChK
U0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICBS
ZW5hbWUgYW5kIGV4cG9zZSBuZXcgaGFuZGxlcyBmb3IgbmV3IGVycm9yIGdldHRlciBzZXR0ZXIg
bmF0aXZlIGZ1bmN0aW9ucy4KKworMjAxNi0wNS0xMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCiAgICAgICAgIE1ha2UgdGhlIGRpZmZlcmVudCBldmFsdWF0ZVdpdGhT
Y29wZUV4dGVuc2lvbiBpbXBsZW1lbnRhdGlvbnMgbW9yZSBjb25zaXN0ZW50CiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1MzYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5jcHAKaW5kZXggODI5
ZjhlNC4uYjdkMWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2xvbmVkQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
bG9uZWRBcmd1bWVudHMuY3BwCkBAIC0xNTgsMTEgKzE1OCwxMSBAQCBib29sIENsb25lZEFyZ3Vt
ZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcAogCiAgICAgICAgIGlmIChpc1N0cmljdE1vZGUpIHsKICAgICAgICAgICAgIGlmIChp
ZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZWUpIHsKLSAgICAgICAgICAgICAgICBzbG90
LnNldEdldHRlclNsb3QodGhpc09iamVjdCwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNz
b3IsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cigpKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEdldHRlclNsb3QodGhpc09iamVjdCwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgp
LT50aHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlckdldHRlclNldHRlcigpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChpZGVu
dCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZXIpIHsKLSAgICAgICAgICAgICAgICBzbG90LnNl
dEdldHRlclNsb3QodGhpc09iamVjdCwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3Is
IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcigp
KTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEdldHRlclNsb3QodGhpc09iamVjdCwgRG9udERl
bGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50
aHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlckdldHRlclNldHRlcigpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KIApAQCAtMjM4LDggKzIzOCw4IEBAIHZv
aWQgQ2xvbmVkQXJndW1lbnRzOjptYXRlcmlhbGl6ZVNwZWNpYWxzKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBib29sIGlzU3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpOwogICAg
IAogICAgIGlmIChpc1N0cmljdE1vZGUpIHsKLSAgICAgICAgcHV0RGlyZWN0QWNjZXNzb3IoZXhl
Yywgdm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVlLCBnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJy
b3JHZXR0ZXJTZXR0ZXIoKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwotICAg
ICAgICBwdXREaXJlY3RBY2Nlc3NvcihleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZXIsIGds
b2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcigpLCBEb250RGVsZXRlIHwg
RG9udEVudW0gfCBBY2Nlc3Nvcik7CisgICAgICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHZt
LnByb3BlcnR5TmFtZXMtPmNhbGxlZSwgZ2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQ2Fs
bGVlQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKCksIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vz
c29yKTsKKyAgICAgICAgcHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+
Y2FsbGVyLCBnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JDYWxsZWVBbmRDYWxsZXJHZXR0
ZXJTZXR0ZXIoKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwogICAgIH0gZWxz
ZQogICAgICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNhbGxlZSwgSlNWYWx1
ZShtX2NhbGxlZS5nZXQoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCmluZGV4IDZlZDI0NTYuLjYzOGU3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMjIsOCArMzIyLDggQEAgc3RhdGlj
IEpTVmFsdWUgcmV0cmlldmVDYWxsZXJGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rp
b24qIGZ1bmN0aW9uT2JqKQogc3RhdGljIEdldHRlclNldHRlciogZ2V0VGhyb3dUeXBlRXJyb3JH
ZXR0ZXJTZXR0ZXIoSlNGdW5jdGlvbiogZnVuY3Rpb24pCiB7CiAgICAgcmV0dXJuIGZ1bmN0aW9u
LT5qc0V4ZWN1dGFibGUoKS0+aXNDbGFzc0NvbnN0cnVjdG9yRnVuY3Rpb24oKSB8fCBmdW5jdGlv
bi0+anNFeGVjdXRhYmxlKCktPnBhcnNlTW9kZSgpID09IFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9k
TW9kZQotICAgICAgICA/IGZ1bmN0aW9uLT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JB
cmd1bWVudHNBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIoKQotICAgICAgICA6IGZ1bmN0aW9uLT5nbG9i
YWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoKTsKKyAgICAgICAgPyBmdW5j
dGlvbi0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVySW5D
bGFzc0NvbnRleHRHZXR0ZXJTZXR0ZXIoKQorICAgICAgICA6IGZ1bmN0aW9uLT5nbG9iYWxPYmpl
Y3QoKS0+dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJblN0cmljdE1vZGVHZXR0ZXJT
ZXR0ZXIoKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkBA
IC00OTksNyArNDk5LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmEKICAgICAgICAgaWYgKHRo
aXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAg
UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAgICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAg
ICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3BlcnR5TmFtZSwgdGhp
c09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKCksIERv
bnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICB0aGlzT2Jq
ZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGdldFRocm93VHlwZUVy
cm9yR2V0dGVyU2V0dGVyKHRoaXNPYmplY3QpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBBY2Nl
c3Nvcik7CiAgICAgICAgICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKTsKICAgICAg
ICAgfQogICAgICAgICB2YWx1ZUNoZWNrID0gIWRlc2NyaXB0b3IudmFsdWUoKSB8fCBzYW1lVmFs
dWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCByZXRyaWV2ZUFyZ3VtZW50cyhleGVjLCB0aGlz
T2JqZWN0KSk7CkBAIC01MDcsNyArNTA3LDcgQEAgYm9vbCBKU0Z1bmN0aW9uOjpkZWZpbmVPd25Q
cm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmEKICAg
ICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewog
ICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJ
bnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAgICAgICAgICBpZiAoIUJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQot
ICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVy
U2V0dGVyKCksIERvbnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKKyAgICAgICAgICAg
ICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGdl
dFRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKHRoaXNPYmplY3QpLCBEb250RGVsZXRlIHwgRG9u
dEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgICAgICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0
aW9uKTsKICAgICAgICAgfQogICAgICAgICB2YWx1ZUNoZWNrID0gIWRlc2NyaXB0b3IudmFsdWUo
KSB8fCBzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCByZXRyaWV2ZUNhbGxlckZ1
bmN0aW9uKGV4ZWMsIHRoaXNPYmplY3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA3NWI0ODViLi5kNzcwNTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0z
ODcsOSArMzg3LDI1IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgICAg
ICAgICAgZ2V0dGVyU2V0dGVyLT5zZXRTZXR0ZXIoaW5pdC52bSwgaW5pdC5vd25lciwgdGhyb3dl
cik7CiAgICAgICAgICAgICBpbml0LnNldChnZXR0ZXJTZXR0ZXIpOwogICAgICAgICB9KTsKLSAg
ICBtX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyLmluaXRMYXRl
cigKKyAgICBtX3Rocm93VHlwZUVycm9yQ2FsbGVlQW5kQ2FsbGVyR2V0dGVyU2V0dGVyLmluaXRM
YXRlcigKICAgICAgICAgW10gKGNvbnN0IEluaXRpYWxpemVyPEdldHRlclNldHRlcj4mIGluaXQp
IHsKLSAgICAgICAgICAgIEpTRnVuY3Rpb24qIHRocm93ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUo
aW5pdC52bSwgaW5pdC5vd25lciwgMCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
ckFyZ3VtZW50c0FuZENhbGxlcik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiB0aHJvd2VyID0g
SlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIDAsIFN0cmluZygpLCBnbG9i
YWxGdW5jVGhyb3dUeXBlRXJyb3JDYWxsZWVBbmRDYWxsZXIpOworICAgICAgICAgICAgR2V0dGVy
U2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZShpbml0LnZtLCBpbml0
Lm93bmVyKTsKKyAgICAgICAgICAgIGdldHRlclNldHRlci0+c2V0R2V0dGVyKGluaXQudm0sIGlu
aXQub3duZXIsIHRocm93ZXIpOworICAgICAgICAgICAgZ2V0dGVyU2V0dGVyLT5zZXRTZXR0ZXIo
aW5pdC52bSwgaW5pdC5vd25lciwgdGhyb3dlcik7CisgICAgICAgICAgICBpbml0LnNldChnZXR0
ZXJTZXR0ZXIpOworICAgICAgICB9KTsKKyAgICBtX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5k
Q2FsbGVySW5TdHJpY3RNb2RlR2V0dGVyU2V0dGVyLmluaXRMYXRlcigKKyAgICAgICAgW10gKGNv
bnN0IEluaXRpYWxpemVyPEdldHRlclNldHRlcj4mIGluaXQpIHsKKyAgICAgICAgICAgIEpTRnVu
Y3Rpb24qIHRocm93ZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwgaW5pdC5vd25lciwg
MCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcklu
U3RyaWN0TW9kZSk7CisgICAgICAgICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IEdl
dHRlclNldHRlcjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIpOworICAgICAgICAgICAgZ2V0
dGVyU2V0dGVyLT5zZXRHZXR0ZXIoaW5pdC52bSwgaW5pdC5vd25lciwgdGhyb3dlcik7CisgICAg
ICAgICAgICBnZXR0ZXJTZXR0ZXItPnNldFNldHRlcihpbml0LnZtLCBpbml0Lm93bmVyLCB0aHJv
d2VyKTsKKyAgICAgICAgICAgIGluaXQuc2V0KGdldHRlclNldHRlcik7CisgICAgICAgIH0pOwor
ICAgIG1fdGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJbkNsYXNzQ29udGV4dEdldHRl
clNldHRlci5pbml0TGF0ZXIoCisgICAgICAgIFtdIChjb25zdCBJbml0aWFsaXplcjxHZXR0ZXJT
ZXR0ZXI+JiBpbml0KSB7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiB0aHJvd2VyID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKGluaXQudm0sIGluaXQub3duZXIsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5j
VGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJbkNsYXNzQ29udGV4dCk7CiAgICAgICAg
ICAgICBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKGlu
aXQudm0sIGluaXQub3duZXIpOwogICAgICAgICAgICAgZ2V0dGVyU2V0dGVyLT5zZXRHZXR0ZXIo
aW5pdC52bSwgaW5pdC5vd25lciwgdGhyb3dlcik7CiAgICAgICAgICAgICBnZXR0ZXJTZXR0ZXIt
PnNldFNldHRlcihpbml0LnZtLCBpbml0Lm93bmVyLCB0aHJvd2VyKTsKQEAgLTEwNzIsNyArMTA4
OCw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9u
ZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgdGhp
c09iamVjdC0+bV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlci52aXNpdCh2aXNpdG9yKTsKLSAg
ICB0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0
dGVyLnZpc2l0KHZpc2l0b3IpOworICAgIHRoaXNPYmplY3QtPm1fdGhyb3dUeXBlRXJyb3JDYWxs
ZWVBbmRDYWxsZXJHZXR0ZXJTZXR0ZXIudmlzaXQodmlzaXRvcik7CisgICAgdGhpc09iamVjdC0+
bV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckluU3RyaWN0TW9kZUdldHRlclNldHRl
ci52aXNpdCh2aXNpdG9yKTsKKyAgICB0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yQXJndW1l
bnRzQW5kQ2FsbGVySW5DbGFzc0NvbnRleHRHZXR0ZXJTZXR0ZXIudmlzaXQodmlzaXRvcik7CiAg
ICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlTG9hZGVyKTsKIAogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX29iamVjdFByb3RvdHlwZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzMWY4ZDExLi5m
NTgwNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTI0NiwxMiArMjQ2LDE0IEBAIHB1YmxpYzoKICAgICBMYXp5UHJvcGVydHk8SlNH
bG9iYWxPYmplY3QsIEpTRnVuY3Rpb24+IG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbjsKICAg
ICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9u
OwogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5j
ZVN5bWJvbEZ1bmN0aW9uOwotICAgIExhenlQcm9wZXJ0eTxKU0dsb2JhbE9iamVjdCwgR2V0dGVy
U2V0dGVyPiBtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyOwogICAgIFdyaXRlQmFycmllcjxK
U09iamVjdD4gbV9yZWdFeHBQcm90b0V4ZWM7CiAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBt
X3JlZ0V4cFByb3RvU3ltYm9sUmVwbGFjZTsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1f
cmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXI7CiAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3Jl
Z0V4cFByb3RvVW5pY29kZUdldHRlcjsKLSAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3Qs
IEdldHRlclNldHRlcj4gbV90aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckdldHRlclNl
dHRlcjsKKyAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIEdldHRlclNldHRlcj4gbV90
aHJvd1R5cGVFcnJvckdldHRlclNldHRlcjsKKyAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmpl
Y3QsIEdldHRlclNldHRlcj4gbV90aHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlckdldHRlclNl
dHRlcjsKKyAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIEdldHRlclNldHRlcj4gbV90
aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckluU3RyaWN0TW9kZUdldHRlclNldHRlcjsK
KyAgICBMYXp5UHJvcGVydHk8SlNHbG9iYWxPYmplY3QsIEdldHRlclNldHRlcj4gbV90aHJvd1R5
cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlckluQ2xhc3NDb250ZXh0R2V0dGVyU2V0dGVyOwogCiAg
ICAgV3JpdGVCYXJyaWVyPE1vZHVsZUxvYWRlck9iamVjdD4gbV9tb2R1bGVMb2FkZXI7CiAKQEAg
LTQ5MywxNSArNDk1LDExIEBAIHB1YmxpYzoKICAgICBKU09iamVjdCogcmVnRXhwUHJvdG9TeW1i
b2xSZXBsYWNlRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cFByb3RvU3ltYm9sUmVw
bGFjZS5nZXQoKTsgfQogICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b0dsb2JhbEdldHRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIuZ2V0KCk7IH0KICAgICBKU09i
amVjdCogcmVnRXhwUHJvdG9Vbmljb2RlR2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWdFeHBQ
cm90b1VuaWNvZGVHZXR0ZXIuZ2V0KCk7IH0KLSAgICBHZXR0ZXJTZXR0ZXIqIHRocm93VHlwZUVy
cm9yR2V0dGVyU2V0dGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3Rocm93VHlwZUVycm9y
R2V0dGVyU2V0dGVyLmdldCh0aGlzKTsKLSAgICB9CiAKLSAgICBHZXR0ZXJTZXR0ZXIqIHRocm93
VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX3Rocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2FsbGVyR2V0dGVyU2V0dGVyLmdl
dCh0aGlzKTsKLSAgICB9CisgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVFcnJvckdldHRlclNl
dHRlcigpIHsgcmV0dXJuIG1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIuZ2V0KHRoaXMpOyB9
CisgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlckdldHRlclNl
dHRlcigpIHsgcmV0dXJuIG1fdGhyb3dUeXBlRXJyb3JDYWxsZWVBbmRDYWxsZXJHZXR0ZXJTZXR0
ZXIuZ2V0KHRoaXMpOyB9CisgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVFcnJvckFyZ3VtZW50
c0FuZENhbGxlckluU3RyaWN0TW9kZUdldHRlclNldHRlcigpIHsgcmV0dXJuIG1fdGhyb3dUeXBl
RXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJblN0cmljdE1vZGVHZXR0ZXJTZXR0ZXIuZ2V0KHRoaXMp
OyB9CisgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVFcnJvckFyZ3VtZW50c0FuZENhbGxlcklu
Q2xhc3NDb250ZXh0R2V0dGVyU2V0dGVyKCkgeyByZXR1cm4gbV90aHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0FuZENhbGxlckluQ2xhc3NDb250ZXh0R2V0dGVyU2V0dGVyLmdldCh0aGlzKTsgfQogICAg
IAogICAgIE1vZHVsZUxvYWRlck9iamVjdCogbW9kdWxlTG9hZGVyKCkgY29uc3QgeyByZXR1cm4g
bV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDZiYmFhYzku
LjRiNzc4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTc4MSw4ICs3ODEsMTggQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogfQotICAgIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1
bWVudHNBbmRDYWxsZXIoRXhlY1N0YXRlKiBleGVjKQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlcihFeGVjU3RhdGUq
IGV4ZWMpCit7CisgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgIidjYWxsZWUnIGFu
ZCAnY2FsbGVyJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gc3RyaWN0IG1vZGUuIik7Cit9CisKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1l
bnRzQW5kQ2FsbGVySW5TdHJpY3RNb2RlKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCAiJ2NhbGxlcicgYW5kICdhcmd1bWVudHMnIGNhbm5vdCBi
ZSBhY2Nlc3NlZCBpbiBzdHJpY3QgbW9kZS4iKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJbkNsYXNz
Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgIidjYWxsZXInIGFuZCAnYXJndW1lbnRzJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gY2xh
c3MgY29udGV4dC4iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDUyYzUwN2YuLjFlOGVhMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuaApAQCAtNDksNyArNDksOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKik7CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShFeGVjU3RhdGUqKTsKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKEV4ZWNT
dGF0ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBl
RXJyb3JBcmd1bWVudHNBbmRDYWxsZXIoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckNhbGxlZUFuZENhbGxlcihFeGVjU3Rh
dGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVy
cm9yQXJndW1lbnRzQW5kQ2FsbGVySW5TdHJpY3RNb2RlKEV4ZWNTdGF0ZSopOworRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRD
YWxsZXJJbkNsYXNzQ29udGV4dChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIoRXhlY1N0YXRlKik7CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNCdWlsdGluTG9nKEV4ZWNTdGF0ZSopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>