<?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>142390</bug_id>
          
          <creation_ts>2015-03-06 01:33:42 -0800</creation_ts>
          <short_desc>ES6: Object Literal Extensions - Methods</short_desc>
          <delta_ts>2015-03-06 14:31:59 -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>JavaScriptCore</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074887</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 01:33:42 -0800</bug_when>
    <thetext>* SUMMARY
Object Literal Extensions - Methods.

&gt; ObjectLiteral[Yield] : {}
&gt;     { PropertyDefinitionList[?Yield] }
&gt;     { PropertyDefinitionList[?Yield] , }
&gt;
&gt; PropertyDefinitionList:
&gt;    PropertyDefinition[?Yield]
&gt;    ...
&gt;
&gt; PropertyDefinition[?Yield]
&gt;    ...
&gt;    MethodDefinition[?Yield]
&gt;
&gt; MethodDefinition[Yield] :
&gt;     PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody }

Example:

  var o = {
    foo() { return 10; },
    bar(a, b) { return a + b; },
    100() { return 100; },
    &apos;method&apos;() { return 0; },
  };

This is pretty much identical to class methods, just for object literals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074888</commentid>
    <comment_count>1</comment_count>
      <attachid>248054</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 01:38:40 -0800</bug_when>
    <thetext>Created attachment 248054
[PATCH] Proposed Fix

Requires a patch not yet landed (the PutType stuff).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074889</commentid>
    <comment_count>2</comment_count>
      <attachid>248055</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 01:39:57 -0800</bug_when>
    <thetext>Created attachment 248055
[PATCH] For Bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075019</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 10:54:47 -0800</bug_when>
    <thetext>It should be trivial to extend this to support computed methods as well:

  var o = {
    [&quot;foo&quot; + &quot;bar&quot;]() { return 10; }
  };
  o.foobar();

Since it is highly related, I&apos;ll put up a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075048</commentid>
    <comment_count>4</comment_count>
      <attachid>248085</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 12:06:10 -0800</bug_when>
    <thetext>Created attachment 248085
[PATCH] Proposed Fix - With Computed Method Names

Still requires a previous change, so this won&apos;t build on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075078</commentid>
    <comment_count>5</comment_count>
      <attachid>248095</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-03-06 13:38:38 -0800</bug_when>
    <thetext>Created attachment 248095
[PATCH] Proposed Fix - With Computed Method Names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075079</commentid>
    <comment_count>6</comment_count>
      <attachid>248095</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-06 13:48:00 -0800</bug_when>
    <thetext>Comment on attachment 248095
[PATCH] Proposed Fix - With Computed Method Names

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075096</commentid>
    <comment_count>7</comment_count>
      <attachid>248095</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-06 14:31:54 -0800</bug_when>
    <thetext>Comment on attachment 248095
[PATCH] Proposed Fix - With Computed Method Names

Clearing flags on attachment: 248095

Committed r181183: &lt;http://trac.webkit.org/changeset/181183&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075097</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-06 14:31:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248054</attachid>
            <date>2015-03-06 01:38:40 -0800</date>
            <delta_ts>2015-03-06 12:06:10 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>object-methods.patch</filename>
            <type>text/plain</type>
            <size>12684</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMWNmYjMyLi4zYmJmMGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDMt
MDYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBFUzY6
IE9iamVjdCBMaXRlcmFsIEV4dGVuc2lvbnMgLSBNZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIzOTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL29iamVjdC1saXRlcmFsLW1ldGhvZHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJhbC1tZXRob2Rz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1t
ZXRob2RzLmpzOiBBZGRlZC4KKwogMjAxNS0wMy0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIF9fcHJvdG9fXyBzaG9ydGhhbmQgcHJvcGVydHkgc2hv
dWxkIG5vdCBtb2RpZnkgcHJvdG90eXBlIGluIE9iamVjdCBMaXRlcmFsIGNvbnN0cnVjdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjhlMGRiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2MCBAQAorYmFzaWMgdGVzdHMgZm9yIG9iamVjdCBsaXRlcmFsIG1ldGhv
ZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbyA9IHsgZm9vKCkgeyBy
ZXR1cm4gMTA7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8uZm9vKCkgaXMg
MTAKK1BBU1MgdHlwZW9mIG8uZm9vIGlzICdmdW5jdGlvbicKK1BBU1Mgby5mb28ubGVuZ3RoIGlz
IDAKK1BBU1Mgby5mb28ubmFtZSBpcyAnZm9vJworUEFTUyBvLmZvby50b1N0cmluZygpIGlzICdm
dW5jdGlvbiBmb28oKSB7IHJldHVybiAxMDsgfScKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvLCAnZm9vJykudmFsdWUgaXMgby5mb28KK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuZW51bWVyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLndyaXRhYmxl
IGlzIHRydWUKK1BBU1MgbyA9IHsgYWRkKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07IGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZCg0MiwgLTEwKSBpcyAzMgorUEFTUyB0eXBl
b2Ygby5hZGQgaXMgJ2Z1bmN0aW9uJworUEFTUyBvLmFkZC5sZW5ndGggaXMgMgorUEFTUyBvLmFk
ZC5uYW1lIGlzICdhZGQnCitQQVNTIG8uYWRkLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9uIGFkZCh4
LCB5KSB7IHJldHVybiB4ICsgeTsgfScKK1BBU1MgbyA9IHsgJ2FkZCcoYSwgYiwgYykgeyByZXR1
cm4gYSArIGIgKyBjOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZCgx
LCAyLCAzKSBpcyA2CitQQVNTIG8gPSB7ICdhKGQpZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIg
KyBjOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWydhKGQpZCddKDEsIDIs
IDMpIGlzIDYKK1BBU1MgbyA9IHsgMTAwKCkgeyByZXR1cm4gMTAwOyB9IH07IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBvWzEwMF0oKSBpcyAxMDAKK1BBU1Mgb1snMTAwJ10oKSBpcyAx
MDAKK1BBU1MgbyA9IHsgYWRkKFt4LCB5XSkgeyByZXR1cm4geCArIHk7IH0gfTsgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCitQQVNTIG8uYWRkKFsxNDIsIC0xMDBdKSBpcyA0MgorUEFTUyBvID0g
eyBmb28oKSB7IHJldHVybiAxMDsgfSwgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IG8gPSB7IGZvbyAoICApIHsgcmV0dXJuIDEwOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBvID0ge3RydWUoKXtyZXR1cm4gdHJ1ZTt9fTsgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG8gPSB7TmFOKCl7cmV0dXJuIE5hTjt9fTsgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG8gPSB7ZXZhbCgpe3JldHVybiBldmFsO319OyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgbyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYmFyKCkgeyByZXR1
cm4gMjA7IH0sIGI6IDIgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6
MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBiIH07IGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9
LCBiOiBiLCBiYXIoKSB7IHJldHVybiAyMDsgfSwgYzogMiB9OyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgbyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYiwgYmFyKCkgeyBy
ZXR1cm4gMjA7IH0sIGMgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7aW5u
ZXI6e21ldGhvZCgpeyByZXR1cm4gMTAwOyB9fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBvLmlubmVyLm1ldGhvZCgpIGlzIDEwMAorUEFTUyBvID0geyBmb28oKSB7IHJldHVybiAx
MDsgfSwgZm9vKCkgeyByZXR1cm4gMjA7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQ
QVNTIG8uZm9vKCkgaXMgMjAKK1BBU1MgbyA9IHsgZ2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmdldCgnaGVsbG8nLCAnd29ybGQn
KSBpcyAnaGVsbG93b3JsZCcKK1BBU1MgbyA9IHsgc2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLnNldCgnaGVsbG8nLCAnd29ybGQn
KSBpcyAnaGVsbG93b3JsZCcKK1BBU1MgKHtnZXQgeCgpeyByZXR1cm4gdHJ1ZTsgfX0pLnggaXMg
dHJ1ZQorUEFTUyAoe2dldCAneCcoKXsgcmV0dXJuIHRydWU7IH19KS54IGlzIHRydWUKK1BBU1Mg
KHtnZXQgNDIoKXsgcmV0dXJuIHRydWU7IH19KVsnNDInXSBpcyB0cnVlCitQQVNTICEhT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IHgodmFsdWUpe319LCAneCcpLnNldCBpcyB0
cnVlCitQQVNTICEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1
ZSl7fX0sICd4Jykuc2V0IGlzIHRydWUKK1BBU1MgISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHtzZXQgNDIodmFsdWUpe319LCAnNDInKS5zZXQgaXMgdHJ1ZQorUEFTUyAoe19fcHJv
dG9fXzogZnVuY3Rpb24oKXt9fSkgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQQVNTICh7
X19wcm90b19fKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgZmFsc2UKK1BBU1MgKHtfX3By
b3RvX18oKXt9fSkuX19wcm90b19fIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuaHRtbCBiL0xheW91dFRlc3Rz
L2pzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MmYxZmY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvb2Jq
ZWN0LWxpdGVyYWwtbWV0aG9kcy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzU5MzcwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmpzCkBAIC0wLDAgKzEsNjcgQEAK
K2Rlc2NyaXB0aW9uKCJiYXNpYyB0ZXN0cyBmb3Igb2JqZWN0IGxpdGVyYWwgbWV0aG9kcyIpOwor
CitzaG91bGROb3RUaHJvdygibyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0gfTsiKTsKK3Nob3Vs
ZEJlKCJvLmZvbygpIiwgIjEwIik7CitzaG91bGRCZSgidHlwZW9mIG8uZm9vIiwgIidmdW5jdGlv
biciKTsKK3Nob3VsZEJlKCJvLmZvby5sZW5ndGgiLCAiMCIpOworc2hvdWxkQmUoIm8uZm9vLm5h
bWUiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCJvLmZvby50b1N0cmluZygpIiwgIidmdW5jdGlvbiBm
b28oKSB7IHJldHVybiAxMDsgfSciKTsKK3Nob3VsZEJlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKG8sICdmb28nKS52YWx1ZSIsICJvLmZvbyIpOworc2hvdWxkQmVUcnVlKCJPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5lbnVtZXJhYmxlIik7CitzaG91
bGRCZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmNvbmZp
Z3VyYWJsZSIpOworc2hvdWxkQmVUcnVlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KG8sICdmb28nKS53cml0YWJsZSIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsgYWRkKHgsIHkp
IHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5hZGQoNDIsIC0xMCkiLCAiMzIi
KTsKK3Nob3VsZEJlKCJ0eXBlb2Ygby5hZGQiLCAiJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmUoIm8u
YWRkLmxlbmd0aCIsICIyIik7CitzaG91bGRCZSgiby5hZGQubmFtZSIsICInYWRkJyIpOworc2hv
dWxkQmUoIm8uYWRkLnRvU3RyaW5nKCkiLCAiJ2Z1bmN0aW9uIGFkZCh4LCB5KSB7IHJldHVybiB4
ICsgeTsgfSciKTsKKworc2hvdWxkTm90VGhyb3coIm8gPSB7ICdhZGQnKGEsIGIsIGMpIHsgcmV0
dXJuIGEgKyBiICsgYzsgfSB9OyIpOworc2hvdWxkQmUoIm8uYWRkKDEsIDIsIDMpIiwgIjYiKTsK
K3Nob3VsZE5vdFRocm93KCJvID0geyAnYShkKWQnKGEsIGIsIGMpIHsgcmV0dXJuIGEgKyBiICsg
YzsgfSB9OyIpOworc2hvdWxkQmUoIm9bJ2EoZClkJ10oMSwgMiwgMykiLCAiNiIpOworc2hvdWxk
Tm90VGhyb3coIm8gPSB7IDEwMCgpIHsgcmV0dXJuIDEwMDsgfSB9OyIpOworc2hvdWxkQmUoIm9b
MTAwXSgpIiwgIjEwMCIpOworc2hvdWxkQmUoIm9bJzEwMCddKCkiLCAiMTAwIik7CisKK3Nob3Vs
ZE5vdFRocm93KCJvID0geyBhZGQoW3gsIHldKSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hv
dWxkQmUoIm8uYWRkKFsxNDIsIC0xMDBdKSIsICI0MiIpOworCithID0gMTsgYiA9IDI7IGMgPSAz
Oworc2hvdWxkTm90VGhyb3coIm8gPSB7IGZvbygpIHsgcmV0dXJuIDEwOyB9LCB9OyIpOworc2hv
dWxkTm90VGhyb3coIm8gPSB7IGZvbyAoICApIHsgcmV0dXJuIDEwOyB9IH07Iik7CitzaG91bGRO
b3RUaHJvdygibyA9IHt0cnVlKCl7cmV0dXJuIHRydWU7fX07Iik7CitzaG91bGROb3RUaHJvdygi
byA9IHtOYU4oKXtyZXR1cm4gTmFOO319OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7ZXZhbCgp
e3JldHVybiBldmFsO319OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwgZm9vKCkgeyBy
ZXR1cm4gMTA7IH0sIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBiOiAyIH07Iik7CitzaG91bGROb3RU
aHJvdygibyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYmFyKCkgeyByZXR1cm4gMjA7
IH0sIGIgfTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEw
OyB9LCBiOiBiLCBiYXIoKSB7IHJldHVybiAyMDsgfSwgYzogMiB9OyIpOworc2hvdWxkTm90VGhy
b3coIm8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGIsIGJhcigpIHsgcmV0dXJuIDIw
OyB9LCBjIH07Iik7CisKK3Nob3VsZE5vdFRocm93KCJvID0ge2lubmVyOnttZXRob2QoKXsgcmV0
dXJuIDEwMDsgfX19OyIpOworc2hvdWxkQmUoIm8uaW5uZXIubWV0aG9kKCkiLCAiMTAwIik7CisK
Ky8vIER1cGxpY2F0ZSBtZXRob2RzIGFyZSBva2F5Lgorc2hvdWxkTm90VGhyb3coIm8gPSB7IGZv
bygpIHsgcmV0dXJuIDEwOyB9LCBmb28oKSB7IHJldHVybiAyMDsgfSB9OyIpOworc2hvdWxkQmUo
Im8uZm9vKCkiLCAiMjAiKTsKKworLy8gTWV0aG9kIG5hbWVkICJnZXQiIG9yICJzZXQiLgorc2hv
dWxkTm90VGhyb3coIm8gPSB7IGdldCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hv
dWxkQmUoIm8uZ2V0KCdoZWxsbycsICd3b3JsZCcpIiwgIidoZWxsb3dvcmxkJyIpOworc2hvdWxk
Tm90VGhyb3coIm8gPSB7IHNldCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hvdWxk
QmUoIm8uc2V0KCdoZWxsbycsICd3b3JsZCcpIiwgIidoZWxsb3dvcmxkJyIpOworCisvLyBHZXR0
ZXIvU2V0dGVyIHN5bnRheCBzdGlsbCB3b3Jrcy4KK3Nob3VsZEJlVHJ1ZSgiKHtnZXQgeCgpeyBy
ZXR1cm4gdHJ1ZTsgfX0pLngiKTsKK3Nob3VsZEJlVHJ1ZSgiKHtnZXQgJ3gnKCl7IHJldHVybiB0
cnVlOyB9fSkueCIpOworc2hvdWxkQmVUcnVlKCIoe2dldCA0MigpeyByZXR1cm4gdHJ1ZTsgfX0p
Wyc0MiddIik7CitzaG91bGRCZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih7c2V0IHgodmFsdWUpe319LCAneCcpLnNldCIpOworc2hvdWxkQmVUcnVlKCIhIU9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCAneCcodmFsdWUpe319LCAneCcpLnNldCIpOwor
c2hvdWxkQmVUcnVlKCIhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCA0Mih2
YWx1ZSl7fX0sICc0MicpLnNldCIpOworCisvLyBfX3Byb3RvX18gbWV0aG9kIHNob3VsZCBiZSBu
b3QgbW9kaWZ5IHRoZSBwcm90b3R5cGUuCitzaG91bGRCZVRydWUoIih7X19wcm90b19fOiBmdW5j
dGlvbigpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZUZhbHNlKCIoe19fcHJv
dG9fXygpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZVRydWUoIih7X19wcm90
b19fKCl7fX0pLl9fcHJvdG9fXyBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA2YTViMjVmLi5lODgwOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxNS0wMy0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIEVTNjogT2JqZWN0IExpdGVyYWwgRXh0ZW5zaW9ucyAtIE1l
dGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MjM5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbWV0aG9kIHN5bnRheCBpbiBvYmplY3QgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBwYXJz
ZXIvUGFyc2VyLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6
OnN0cmluZ0ZvckZ1bmN0aW9uTW9kZSk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZVByb3BlcnR5KToKKyAgICAgICAgTWV0aG9kcyBhcmUgYWxsb3dlZCBmb3IgaWRlbnRp
Zmllciwgc3RyaW5nLCBhbmQgbnVtZXJpYyBuYW1lcy4KKworICAgICAgICAoSlNDOjpQYXJzZXI8
TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eU1ldGhvZCk6CisgICAgICAgIEhlbHBlciBmb3IgcGFy
c2luZyBhIHByb3BlcnR5IG1ldGhvZC4KKwogMjAxNS0wMy0wNSAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIF9fcHJvdG9fXyBzaG9ydGhhbmQgcHJvcGVy
dHkgc2hvdWxkIG5vdCBtb2RpZnkgcHJvdG90eXBlIGluIE9iamVjdCBMaXRlcmFsIGNvbnN0cnVj
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGZmZTIxMjEu
LjRlZDRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTEy
ODIsMTAgKzEyODIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogc3RyaW5nRm9yRnVuY3Rpb25Nb2Rl
KEZ1bmN0aW9uUGFyc2VNb2RlIG1vZGUpCiAgICAgICAgIHJldHVybiAic2V0dGVyIjsKICAgICBj
YXNlIEZ1bmN0aW9uTW9kZToKICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiI7Ci0jaWYgRU5BQkxF
KEVTNl9DTEFTU19TWU5UQVgpCiAgICAgY2FzZSBNZXRob2RNb2RlOgogICAgICAgICByZXR1cm4g
Im1ldGhvZCI7Ci0jZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE5MzYsNiArMTkzNCw5IEBAIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVBy
b3BlcnR5KFRyZWVCCiAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShp
ZGVudCwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtub3du
LCBjb21wbGV0ZSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobWF0Y2goT1BFTlBBUkVOKSkK
KyAgICAgICAgICAgIHJldHVybiBwYXJzZVByb3BlcnR5TWV0aG9kKGNvbnRleHQsIGlkZW50LCBQ
cm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0LCBjb21wbGV0ZSk7CisKICAgICAgICAgZmFpbElmRmFs
c2Uod2FzSWRlbnQsICJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFzIHByb3BlcnR5IG5hbWUiKTsK
IAogICAgICAgICBpZiAobWF0Y2goQ09NTUEpIHx8IG1hdGNoKENMT1NFQlJBQ0UpKSB7CkBAIC0x
OTU5LDYgKzE5NjAsMTIgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVy
dHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHkoVHJlZUIKICAgICBjYXNlIElOVEVH
RVI6IHsKICAgICAgICAgZG91YmxlIHByb3BlcnR5TmFtZSA9IG1fdG9rZW4ubV9kYXRhLmRvdWJs
ZVZhbHVlOwogICAgICAgICBuZXh0KCk7CisKKyAgICAgICAgaWYgKG1hdGNoKE9QRU5QQVJFTikp
IHsKKyAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gbV9wYXJzZXJBcmVuYS5p
ZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50aWZpZXIoY29uc3RfY2FzdDxWTSo+KG1f
dm0pLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHBhcnNlUHJvcGVydHlNZXRo
b2QoY29udGV4dCwgJmlkZW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKKyAg
ICAgICAgfQorCiAgICAgICAgIGNvbnN1bWVPckZhaWwoQ09MT04sICJFeHBlY3RlZCAnOicgYWZ0
ZXIgcHJvcGVydHkgbmFtZSIpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VB
c3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwg
IkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwpAQCAt
MTk4NCw2ICsxOTkxLDE4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3Bl
cnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiB9CiAKIHRlbXBsYXRl
IDx0eXBlbmFtZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQ
cm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eU1ldGhvZChUcmVlQnVpbGRl
ciYgY29udGV4dCwgY29uc3QgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBQcm9wZXJ0eU5vZGU6
OlB1dFR5cGUgcHV0VHlwZSwgYm9vbCBzdHJpY3QpCit7CisgICAgSlNUb2tlbkxvY2F0aW9uIG1l
dGhvZExvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgdW5zaWduZWQgbWV0aG9kU3RhcnQg
PSB0b2tlblN0YXJ0KCk7CisgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBtZXRo
b2RJbmZvOworICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5j
dGlvbk5vUmVxdWlyZW1lbnRzLCBNZXRob2RNb2RlLCBmYWxzZSwgbWV0aG9kSW5mbykpLCAiQ2Fu
bm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CisgICAgbWV0aG9kSW5mby5uYW1lID0gcHJvcGVydHlO
YW1lOworICAgIFRyZWVFeHByZXNzaW9uIG1ldGhvZCA9IGNvbnRleHQuY3JlYXRlRnVuY3Rpb25F
eHByKG1ldGhvZExvY2F0aW9uLCBtZXRob2RJbmZvLCBtZXRob2RTdGFydCk7CisgICAgcmV0dXJu
IGNvbnRleHQuY3JlYXRlUHJvcGVydHkocHJvcGVydHlOYW1lLCBtZXRob2QsIFByb3BlcnR5Tm9k
ZTo6Q29uc3RhbnQsIHB1dFR5cGUsIHN0cmljdCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBM
ZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGJv
b2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgdW5zaWduZWQgZ2V0dGVyT3JTZXR0
ZXJTdGFydE9mZnNldCkKIHsKICAgICBjb25zdCBJZGVudGlmaWVyKiBzdHJpbmdQcm9wZXJ0eU5h
bWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggNTAxYzAzNi4u
YmJmMGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC04NSw5ICs4
NSw3IEBAIGVudW0gRnVuY3Rpb25QYXJzZU1vZGUgewogICAgIEZ1bmN0aW9uTW9kZSwKICAgICBH
ZXR0ZXJNb2RlLAogICAgIFNldHRlck1vZGUsCi0jaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgp
Ci0gICAgTWV0aG9kTW9kZQotI2VuZGlmCisgICAgTWV0aG9kTW9kZSwKIH07CiBlbnVtIERlY29u
c3RydWN0aW9uS2luZCB7CiAgICAgRGVjb25zdHJ1Y3RUb1ZhcmlhYmxlcywKQEAgLTczOSw2ICs3
MzcsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU3ByZWFkTW9kZSB7IEFsbG93U3ByZWFkLCBEb250
QWxsb3dTcHJlYWQgfTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19J
TkxJTkUgVHJlZUFyZ3VtZW50cyBwYXJzZUFyZ3VtZW50cyhUcmVlQnVpbGRlciYsIFNwcmVhZE1v
ZGUpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IHBhcnNl
UHJvcGVydHkoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCk7CisgICAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgcGFyc2VQcm9wZXJ0eU1ldGhvZChUcmVlQnVpbGRl
ciYsIGNvbnN0IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBl
LCBib29sIHN0cmljdCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJv
cGVydHkgcGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCwgUHJvcGVy
dHlOb2RlOjpUeXBlLCB1bnNpZ25lZCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0KTsKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJlZUZ1bmN0aW9uQm9k
eSBwYXJzZUZ1bmN0aW9uQm9keShUcmVlQnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBU
cmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRm9ybWFsUGFyYW1ldGVyTGlzdCBwYXJzZUZv
cm1hbFBhcmFtZXRlcnMoVHJlZUJ1aWxkZXImKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248055</attachid>
            <date>2015-03-06 01:39:57 -0800</date>
            <delta_ts>2015-03-06 12:06:10 -0800</delta_ts>
            <desc>[PATCH] For Bots</desc>
            <filename>for-bots.patch</filename>
            <type>text/plain</type>
            <size>26806</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLW1ldGhvZHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY4ZTBkYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLW1ldGhvZHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNjAgQEAKK2Jhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0ZXJhbCBtZXRo
b2RzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG8gPSB7IGZvbygpIHsg
cmV0dXJuIDEwOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmZvbygpIGlz
IDEwCitQQVNTIHR5cGVvZiBvLmZvbyBpcyAnZnVuY3Rpb24nCitQQVNTIG8uZm9vLmxlbmd0aCBp
cyAwCitQQVNTIG8uZm9vLm5hbWUgaXMgJ2ZvbycKK1BBU1Mgby5mb28udG9TdHJpbmcoKSBpcyAn
ZnVuY3Rpb24gZm9vKCkgeyByZXR1cm4gMTA7IH0nCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IobywgJ2ZvbycpLnZhbHVlIGlzIG8uZm9vCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmVudW1lcmFibGUgaXMgdHJ1ZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS53cml0YWJs
ZSBpcyB0cnVlCitQQVNTIG8gPSB7IGFkZCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5hZGQoNDIsIC0xMCkgaXMgMzIKK1BBU1MgdHlw
ZW9mIG8uYWRkIGlzICdmdW5jdGlvbicKK1BBU1Mgby5hZGQubGVuZ3RoIGlzIDIKK1BBU1Mgby5h
ZGQubmFtZSBpcyAnYWRkJworUEFTUyBvLmFkZC50b1N0cmluZygpIGlzICdmdW5jdGlvbiBhZGQo
eCwgeSkgeyByZXR1cm4geCArIHk7IH0nCitQQVNTIG8gPSB7ICdhZGQnKGEsIGIsIGMpIHsgcmV0
dXJuIGEgKyBiICsgYzsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5hZGQo
MSwgMiwgMykgaXMgNgorUEFTUyBvID0geyAnYShkKWQnKGEsIGIsIGMpIHsgcmV0dXJuIGEgKyBi
ICsgYzsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgb1snYShkKWQnXSgxLCAy
LCAzKSBpcyA2CitQQVNTIG8gPSB7IDEwMCgpIHsgcmV0dXJuIDEwMDsgfSB9OyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1Mgb1sxMDBdKCkgaXMgMTAwCitQQVNTIG9bJzEwMCddKCkgaXMg
MTAwCitQQVNTIG8gPSB7IGFkZChbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9IH07IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZChbMTQyLCAtMTAwXSkgaXMgNDIKK1BBU1MgbyA9
IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBvID0geyBmb28gKCAgKSB7IHJldHVybiAxMDsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1MgbyA9IHt0cnVlKCl7cmV0dXJuIHRydWU7fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBvID0ge05hTigpe3JldHVybiBOYU47fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBvID0ge2V2YWwoKXtyZXR1cm4gZXZhbDt9fTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGJhcigpIHsgcmV0
dXJuIDIwOyB9LCBiOiAyIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBh
OjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9LCBiYXIoKSB7IHJldHVybiAyMDsgfSwgYiB9OyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsg
fSwgYjogYiwgYmFyKCkgeyByZXR1cm4gMjA7IH0sIGM6IDIgfTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGIsIGJhcigpIHsg
cmV0dXJuIDIwOyB9LCBjIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge2lu
bmVyOnttZXRob2QoKXsgcmV0dXJuIDEwMDsgfX19OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1Mgby5pbm5lci5tZXRob2QoKSBpcyAxMDAKK1BBU1MgbyA9IHsgZm9vKCkgeyByZXR1cm4g
MTA7IH0sIGZvbygpIHsgcmV0dXJuIDIwOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBvLmZvbygpIGlzIDIwCitQQVNTIG8gPSB7IGdldCh4LCB5KSB7IHJldHVybiB4ICsgeTsg
fSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5nZXQoJ2hlbGxvJywgJ3dvcmxk
JykgaXMgJ2hlbGxvd29ybGQnCitQQVNTIG8gPSB7IHNldCh4LCB5KSB7IHJldHVybiB4ICsgeTsg
fSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5zZXQoJ2hlbGxvJywgJ3dvcmxk
JykgaXMgJ2hlbGxvd29ybGQnCitQQVNTICh7Z2V0IHgoKXsgcmV0dXJuIHRydWU7IH19KS54IGlz
IHRydWUKK1BBU1MgKHtnZXQgJ3gnKCl7IHJldHVybiB0cnVlOyB9fSkueCBpcyB0cnVlCitQQVNT
ICh7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlbJzQyJ10gaXMgdHJ1ZQorUEFTUyAhIU9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCB4KHZhbHVlKXt9fSwgJ3gnKS5zZXQgaXMg
dHJ1ZQorUEFTUyAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCAneCcodmFs
dWUpe319LCAneCcpLnNldCBpcyB0cnVlCitQQVNTICEhT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih7c2V0IDQyKHZhbHVlKXt9fSwgJzQyJykuc2V0IGlzIHRydWUKK1BBU1MgKHtfX3By
b3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyAo
e19fcHJvdG9fXygpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIGZhbHNlCitQQVNTICh7X19w
cm90b19fKCl7fX0pLl9fcHJvdG9fXyBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uODJmMWZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL29i
amVjdC1saXRlcmFsLW1ldGhvZHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9v
YmplY3QtbGl0ZXJhbC1zaG9ydGhhbmQtY29uc3RydWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDJhZDQ3NWIuLmM0MzI0ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL29i
amVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24tZXhwZWN0
ZWQudHh0CkBAIC02MSw2ICs2MSw5IEBAIFBBU1MgKHtnZXQgNDIoKXsgcmV0dXJuIHRydWU7IH19
KVsnNDInXSBpcyB0cnVlCiBQQVNTICEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7
c2V0IHgodmFsdWUpe319LCAneCcpLnNldCBpcyB0cnVlCiBQQVNTICEhT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1ZSl7fX0sICd4Jykuc2V0IGlzIHRydWUKIFBB
U1MgISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtzZXQgNDIodmFsdWUpe319LCAn
NDInKS5zZXQgaXMgdHJ1ZQorUEFTUyBfX3Byb3RvX18gPSBbXTsgKHtfX3Byb3RvX186IF9fcHJv
dG9fX30pIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBfX3Byb3RvX18gPSBbXTsgKHtf
X3Byb3RvX199KSBpbnN0YW5jZW9mIEFycmF5IGlzIGZhbHNlCitQQVNTIF9fcHJvdG9fXyA9IFtd
OyAoe19fcHJvdG9fX30pLl9fcHJvdG9fXyBpbnN0YW5jZW9mIEFycmF5IGlzIHRydWUKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTkzNzA2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMK
QEAgLTAsMCArMSw2NyBAQAorZGVzY3JpcHRpb24oImJhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0
ZXJhbCBtZXRob2RzIik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyBmb28oKSB7IHJldHVybiAx
MDsgfSB9OyIpOworc2hvdWxkQmUoIm8uZm9vKCkiLCAiMTAiKTsKK3Nob3VsZEJlKCJ0eXBlb2Yg
by5mb28iLCAiJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmUoIm8uZm9vLmxlbmd0aCIsICIwIik7Citz
aG91bGRCZSgiby5mb28ubmFtZSIsICInZm9vJyIpOworc2hvdWxkQmUoIm8uZm9vLnRvU3RyaW5n
KCkiLCAiJ2Z1bmN0aW9uIGZvbygpIHsgcmV0dXJuIDEwOyB9JyIpOworc2hvdWxkQmUoIk9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLnZhbHVlIiwgIm8uZm9vIik7Citz
aG91bGRCZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmVu
dW1lcmFibGUiKTsKK3Nob3VsZEJlVHJ1ZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihvLCAnZm9vJykuY29uZmlndXJhYmxlIik7CitzaG91bGRCZVRydWUoIk9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLndyaXRhYmxlIik7CisKK3Nob3VsZE5vdFRocm93
KCJvID0geyBhZGQoeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsKK3Nob3VsZEJlKCJvLmFk
ZCg0MiwgLTEwKSIsICIzMiIpOworc2hvdWxkQmUoInR5cGVvZiBvLmFkZCIsICInZnVuY3Rpb24n
Iik7CitzaG91bGRCZSgiby5hZGQubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJvLmFkZC5uYW1l
IiwgIidhZGQnIik7CitzaG91bGRCZSgiby5hZGQudG9TdHJpbmcoKSIsICInZnVuY3Rpb24gYWRk
KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JyIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsgJ2Fk
ZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7CitzaG91bGRCZSgiby5hZGQo
MSwgMiwgMykiLCAiNiIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7ICdhKGQpZCcoYSwgYiwgYykg
eyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7CitzaG91bGRCZSgib1snYShkKWQnXSgxLCAyLCAz
KSIsICI2Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsgMTAwKCkgeyByZXR1cm4gMTAwOyB9IH07
Iik7CitzaG91bGRCZSgib1sxMDBdKCkiLCAiMTAwIik7CitzaG91bGRCZSgib1snMTAwJ10oKSIs
ICIxMDAiKTsKKworc2hvdWxkTm90VGhyb3coIm8gPSB7IGFkZChbeCwgeV0pIHsgcmV0dXJuIHgg
KyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5hZGQoWzE0MiwgLTEwMF0pIiwgIjQyIik7CisKK2Eg
PSAxOyBiID0gMjsgYyA9IDM7CitzaG91bGROb3RUaHJvdygibyA9IHsgZm9vKCkgeyByZXR1cm4g
MTA7IH0sIH07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsgZm9vICggICkgeyByZXR1cm4gMTA7
IH0gfTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0ge3RydWUoKXtyZXR1cm4gdHJ1ZTt9fTsiKTsK
K3Nob3VsZE5vdFRocm93KCJvID0ge05hTigpe3JldHVybiBOYU47fX07Iik7CitzaG91bGROb3RU
aHJvdygibyA9IHtldmFsKCl7cmV0dXJuIGV2YWw7fX07Iik7CitzaG91bGROb3RUaHJvdygibyA9
IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYmFyKCkgeyByZXR1cm4gMjA7IH0sIGI6IDIg
fTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9LCBi
YXIoKSB7IHJldHVybiAyMDsgfSwgYiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwg
Zm9vKCkgeyByZXR1cm4gMTA7IH0sIGI6IGIsIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBjOiAyIH07
Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYiwg
YmFyKCkgeyByZXR1cm4gMjA7IH0sIGMgfTsiKTsKKworc2hvdWxkTm90VGhyb3coIm8gPSB7aW5u
ZXI6e21ldGhvZCgpeyByZXR1cm4gMTAwOyB9fX07Iik7CitzaG91bGRCZSgiby5pbm5lci5tZXRo
b2QoKSIsICIxMDAiKTsKKworLy8gRHVwbGljYXRlIG1ldGhvZHMgYXJlIG9rYXkuCitzaG91bGRO
b3RUaHJvdygibyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGZvbygpIHsgcmV0dXJuIDIwOyB9
IH07Iik7CitzaG91bGRCZSgiby5mb28oKSIsICIyMCIpOworCisvLyBNZXRob2QgbmFtZWQgImdl
dCIgb3IgInNldCIuCitzaG91bGROb3RUaHJvdygibyA9IHsgZ2V0KHgsIHkpIHsgcmV0dXJuIHgg
KyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5nZXQoJ2hlbGxvJywgJ3dvcmxkJykiLCAiJ2hlbGxv
d29ybGQnIik7CitzaG91bGROb3RUaHJvdygibyA9IHsgc2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5
OyB9IH07Iik7CitzaG91bGRCZSgiby5zZXQoJ2hlbGxvJywgJ3dvcmxkJykiLCAiJ2hlbGxvd29y
bGQnIik7CisKKy8vIEdldHRlci9TZXR0ZXIgc3ludGF4IHN0aWxsIHdvcmtzLgorc2hvdWxkQmVU
cnVlKCIoe2dldCB4KCl7IHJldHVybiB0cnVlOyB9fSkueCIpOworc2hvdWxkQmVUcnVlKCIoe2dl
dCAneCcoKXsgcmV0dXJuIHRydWU7IH19KS54Iik7CitzaG91bGRCZVRydWUoIih7Z2V0IDQyKCl7
IHJldHVybiB0cnVlOyB9fSlbJzQyJ10iKTsKK3Nob3VsZEJlVHJ1ZSgiISFPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHtzZXQgeCh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CitzaG91bGRC
ZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1ZSl7
fX0sICd4Jykuc2V0Iik7CitzaG91bGRCZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih7c2V0IDQyKHZhbHVlKXt9fSwgJzQyJykuc2V0Iik7CisKKy8vIF9fcHJvdG9fXyBt
ZXRob2Qgc2hvdWxkIGJlIG5vdCBtb2RpZnkgdGhlIHByb3RvdHlwZS4KK3Nob3VsZEJlVHJ1ZSgi
KHtfX3Byb3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3Vs
ZEJlRmFsc2UoIih7X19wcm90b19fKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3Vs
ZEJlVHJ1ZSgiKHtfX3Byb3RvX18oKXt9fSkuX19wcm90b19fIGluc3RhbmNlb2YgRnVuY3Rpb24i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9vYmplY3QtbGl0ZXJh
bC1zaG9ydGhhbmQtY29uc3RydWN0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24uanMKaW5kZXggY2VhNDg5Ni4u
YjdmYjY0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1s
aXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL29iamVjdC1saXRlcmFsLXNob3J0aGFuZC1jb25zdHJ1Y3Rpb24uanMKQEAgLTEw
OCwzICsxMDgsOCBAQCBzaG91bGRCZVRydWUoIih7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlb
JzQyJ10iKTsKIHNob3VsZEJlVHJ1ZSgiISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHtzZXQgeCh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CiBzaG91bGRCZVRydWUoIiEhT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CiBz
aG91bGRCZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IDQyKHZh
bHVlKXt9fSwgJzQyJykuc2V0Iik7CisKKy8vIF9fcHJvdG9fXyBzaG9ydGhhbmQgc2hvdWxkIGJl
IG5vdCBtb2RpZnkgdGhlIHByb3RvdHlwZS4KK3Nob3VsZEJlVHJ1ZSgiX19wcm90b19fID0gW107
ICh7X19wcm90b19fOiBfX3Byb3RvX199KSBpbnN0YW5jZW9mIEFycmF5Iik7CitzaG91bGRCZUZh
bHNlKCJfX3Byb3RvX18gPSBbXTsgKHtfX3Byb3RvX199KSBpbnN0YW5jZW9mIEFycmF5Iik7Citz
aG91bGRCZVRydWUoIl9fcHJvdG9fXyA9IFtdOyAoe19fcHJvdG9fX30pLl9fcHJvdG9fXyBpbnN0
YW5jZW9mIEFycmF5Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDViN2Y5MmEuLjI4OTMxNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCkBAIC0xNDAyLDcgKzE0MDIsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcAogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXREaXJlY3RQdXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0RGlyZWN0UHV0QnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUsIGJvb2wga25vd25EaXJlY3QpCiB7CiAgICAg
dW5zaWduZWQgcHJvcGVydHlJbmRleCA9IGFkZENvbnN0YW50KHByb3BlcnR5KTsKIApAQCAtMTQx
OCw5ICsxNDE4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlY3RQ
dXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWYKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOwogICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZCgwKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoCi0gICAgICAgIHBy
b3BlcnR5ICE9IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90bwotICAgICAgICAm
JiBQcm9wZXJ0eU5hbWUocHJvcGVydHkpLmFzSW5kZXgoKSA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFu
SW5kZXgpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChrbm93bkRpcmVjdCB8fCAocHJvcGVy
dHkgIT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvICYmIFByb3BlcnR5TmFt
ZShwcm9wZXJ0eSkuYXNJbmRleCgpID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkpOwogICAg
IHJldHVybiB2YWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGZiMDgzNjMuLmE5MzQ0ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmgKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdEdldEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNl
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRH
ZXRBcmd1bWVudHNMZW5ndGgoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlKTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdERpcmVjdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERp
cmVjdFB1dEJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHks
IFJlZ2lzdGVySUQqIHZhbHVlLCBib29sIGtub3duRGlyZWN0KTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdERlbGV0ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25z
dCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRCeVZhbChSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEdldEFyZ3VtZW50QnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggNTBlNjhmOC4u
ODMxNjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcApAQCAtMzc2LDcgKzM3Niw3IEBAIFJlZ2lzdGVySUQqIFByb3BlcnR5
TGlzdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlCiB2b2lkIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRQdXRDb25zdGFudFByb3BlcnR5KEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIG5ld09iaiwgUHJvcGVydHlOb2Rl
JiBub2RlKQogewogICAgIGlmIChub2RlLm5hbWUoKSkgewotICAgICAgICBnZW5lcmF0b3IuZW1p
dERpcmVjdFB1dEJ5SWQobmV3T2JqLCAqbm9kZS5uYW1lKCksIGdlbmVyYXRvci5lbWl0Tm9kZShu
b2RlLm1fYXNzaWduKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0RGlyZWN0UHV0QnlJZChuZXdP
YmosICpub2RlLm5hbWUoKSwgZ2VuZXJhdG9yLmVtaXROb2RlKG5vZGUubV9hc3NpZ24pLCBub2Rl
LnB1dFR5cGUoKSA9PSBQcm9wZXJ0eU5vZGU6Oktub3duRGlyZWN0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHlOYW1lID0gZ2VuZXJhdG9y
LmVtaXROb2RlKG5vZGUubV9leHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9BU1RCdWlsZGVyLmgKaW5kZXggZmE2NDk1MS4uMWIwZGM4YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTMxNiw3ICszMTYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGluZm8uYm9keS0+c2V0SW5mZXJyZWROYW1lKCpuYW1lKTsKICAgICAgICAgaW5mby5i
b2R5LT5zZXRGdW5jdGlvbktleXdvcmRTdGFydChnZXRPclNldFN0YXJ0T2Zmc2V0KTsKICAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKCpuYW1lLCBuZXcgKG1f
cGFyc2VyQXJlbmEpIEZ1bmNFeHByTm9kZShsb2NhdGlvbiwgbV92bS0+cHJvcGVydHlOYW1lcy0+
bnVsbElkZW50aWZpZXIsCi0gICAgICAgICAgICBpbmZvLmJvZHksIG1fc291cmNlQ29kZS0+c3Vi
RXhwcmVzc2lvbihpbmZvLm9wZW5CcmFjZU9mZnNldCwgaW5mby5jbG9zZUJyYWNlT2Zmc2V0LCBp
bmZvLmJvZHlTdGFydExpbmUsIGluZm8uYm9keVN0YXJ0Q29sdW1uKSwgaW5mby5wYXJhbWV0ZXJz
KSwgdHlwZSk7CisgICAgICAgICAgICBpbmZvLmJvZHksIG1fc291cmNlQ29kZS0+c3ViRXhwcmVz
c2lvbihpbmZvLm9wZW5CcmFjZU9mZnNldCwgaW5mby5jbG9zZUJyYWNlT2Zmc2V0LCBpbmZvLmJv
ZHlTdGFydExpbmUsIGluZm8uYm9keVN0YXJ0Q29sdW1uKSwgaW5mby5wYXJhbWV0ZXJzKSwgdHlw
ZSwgUHJvcGVydHlOb2RlOjpVbmtub3duKTsKICAgICB9CiAgICAgCiAgICAgTkVWRVJfSU5MSU5F
IFByb3BlcnR5Tm9kZSogY3JlYXRlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eShWTSogdm0sIFBhcnNl
ckFyZW5hJiBwYXJzZXJBcmVuYSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgUHJv
cGVydHlOb2RlOjpUeXBlIHR5cGUsIGJvb2wsIGRvdWJsZSBuYW1lLCBjb25zdCBQYXJzZXJGdW5j
dGlvbkluZm88QVNUQnVpbGRlcj4mIGluZm8sIHVuc2lnbmVkIGdldE9yU2V0U3RhcnRPZmZzZXQp
CkBAIC0zMjUsNyArMzI1LDcgQEAgcHVibGljOgogICAgICAgICBpbmZvLmJvZHktPnNldEZ1bmN0
aW9uS2V5d29yZFN0YXJ0KGdldE9yU2V0U3RhcnRPZmZzZXQpOwogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCA9IHBhcnNlckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmlj
SWRlbnRpZmllcih2bSwgbmFtZSk7CiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IFByb3BlcnR5Tm9kZShpZGVudCwgbmV3IChtX3BhcnNlckFyZW5hKSBGdW5jRXhwck5vZGUobG9j
YXRpb24sIHZtLT5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllciwKLSAgICAgICAgICAgIGlu
Zm8uYm9keSwgbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9uKGluZm8ub3BlbkJyYWNlT2Zmc2V0
LCBpbmZvLmNsb3NlQnJhY2VPZmZzZXQsIGluZm8uYm9keVN0YXJ0TGluZSwgaW5mby5ib2R5U3Rh
cnRDb2x1bW4pLCBpbmZvLnBhcmFtZXRlcnMpLCB0eXBlKTsKKyAgICAgICAgICAgIGluZm8uYm9k
eSwgbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9uKGluZm8ub3BlbkJyYWNlT2Zmc2V0LCBpbmZv
LmNsb3NlQnJhY2VPZmZzZXQsIGluZm8uYm9keVN0YXJ0TGluZSwgaW5mby5ib2R5U3RhcnRDb2x1
bW4pLCBpbmZvLnBhcmFtZXRlcnMpLCB0eXBlLCBQcm9wZXJ0eU5vZGU6OlVua25vd24pOwogICAg
IH0KIAogICAgIEFyZ3VtZW50c05vZGUqIGNyZWF0ZUFyZ3VtZW50cygpIHsgcmV0dXJuIG5ldyAo
bV9wYXJzZXJBcmVuYSkgQXJndW1lbnRzTm9kZSgpOyB9CkBAIC0zMzMsMTcgKzMzMywxNyBAQCBw
dWJsaWM6CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogYXJnKSB7IHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIEFyZ3VtZW50TGlzdE5vZGUobG9jYXRpb24sIGFyZyk7IH0KICAg
ICBBcmd1bWVudExpc3ROb2RlKiBjcmVhdGVBcmd1bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIEFyZ3VtZW50TGlzdE5vZGUqIGFyZ3MsIEV4cHJlc3Npb25Ob2RlKiBh
cmcpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXJndW1lbnRMaXN0Tm9kZShsb2NhdGlv
biwgYXJncywgYXJnKTsgfQogCi0gICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShjb25z
dCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0
eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCkKKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5
KGNvbnN0IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUsIFBy
b3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSwgYm9v
bCkKICAgICB7CiAgICAgICAgIGlmIChub2RlLT5pc0Z1bmNFeHByTm9kZSgpKQogICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8RnVuY0V4cHJOb2RlKj4obm9kZSktPmJvZHkoKS0+c2V0SW5mZXJyZWRO
YW1lKCpwcm9wZXJ0eU5hbWUpOwotICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQ
cm9wZXJ0eU5vZGUoKnByb3BlcnR5TmFtZSwgbm9kZSwgdHlwZSk7CisgICAgICAgIHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZSgqcHJvcGVydHlOYW1lLCBub2RlLCB0eXBl
LCBwdXRUeXBlKTsKICAgICB9Ci0gICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShWTSog
dm0sIFBhcnNlckFyZW5hJiBwYXJzZXJBcmVuYSwgZG91YmxlIHByb3BlcnR5TmFtZSwgRXhwcmVz
c2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sKQorICAgIFByb3Bl
cnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoVk0qIHZtLCBQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEs
IGRvdWJsZSBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6
OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wpCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocGFyc2VyQXJl
bmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBwcm9wZXJ0eU5h
bWUpLCBub2RlLCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJv
cGVydHlOb2RlKHBhcnNlckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRp
Zmllcih2bSwgcHJvcGVydHlOYW1lKSwgbm9kZSwgdHlwZSwgcHV0VHlwZSk7CiAgICAgfQotICAg
IFByb3BlcnR5Tm9kZSogY3JlYXRlUHJvcGVydHkoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFt
ZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBib29sKSB7
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUsIG5v
ZGUsIHR5cGUpOyB9CisgICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShFeHByZXNzaW9u
Tm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVydHlOb2RlOjpU
eXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBwdXRUeXBlLCBib29sKSB7IHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUs
IHB1dFR5cGUpOyB9CiAgICAgUHJvcGVydHlMaXN0Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZSogcHJvcGVydHkpIHsg
cmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJv
cGVydHkpOyB9CiAgICAgUHJvcGVydHlMaXN0Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZSogcHJvcGVydHksIFByb3Bl
cnR5TGlzdE5vZGUqIHRhaWwpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlM
aXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHksIHRhaWwpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggMTJlM2Q0ZC4uYjRkOWIx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKQEAgLTE1OSwxOCArMTU5LDIwIEBAIGlubGluZSBSZXNvbHZlTm9kZTo6UmVzb2x2ZU5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllCiAgICAgewog
ICAgIH0KIAotICAgIGlubGluZSBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBFeHByZXNzaW9uTm9kZSogYXNzaWduLCBUeXBlIHR5cGUpCisgICAgaW5s
aW5lIFByb3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4
cHJlc3Npb25Ob2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlKQogICAgICAg
ICA6IG1fbmFtZSgmbmFtZSkKICAgICAgICAgLCBtX2Fzc2lnbihhc3NpZ24pCiAgICAgICAgICwg
bV90eXBlKHR5cGUpCisgICAgICAgICwgbV9wdXRUeXBlKHB1dFR5cGUpCiAgICAgewogICAgIH0K
IAotICAgIGlubGluZSBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSog
bmFtZSwgRXhwcmVzc2lvbk5vZGUqIGFzc2lnbiwgVHlwZSB0eXBlKQorICAgIGlubGluZSBQcm9w
ZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogbmFtZSwgRXhwcmVzc2lvbk5v
ZGUqIGFzc2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUpCiAgICAgICAgIDogbV9uYW1l
KDApCiAgICAgICAgICwgbV9leHByZXNzaW9uKG5hbWUpCiAgICAgICAgICwgbV9hc3NpZ24oYXNz
aWduKQogICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBl
KQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAz
MGVkYjBhLi45ODMxOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC00
OTksMTQgKzQ5OSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBQcm9wZXJ0eU5vZGUg
OiBwdWJsaWMgUGFyc2VyQXJlbmFGcmVlYWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBlbnVt
IFR5cGUgeyBDb25zdGFudCA9IDEsIEdldHRlciA9IDIsIFNldHRlciA9IDQgfTsKKyAgICAgICAg
ZW51bSBQdXRUeXBlIHsgVW5rbm93biwgS25vd25EaXJlY3QgfTsKIAotICAgICAgICBQcm9wZXJ0
eU5vZGUoY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSk7Ci0gICAgICAg
IFByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9k
ZSosIFR5cGUpOworICAgICAgICBQcm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZShFeHByZXNz
aW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUpOwog
ICAgICAgICAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb25OYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9leHByZXNzaW9uOyB9CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgICAgICBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KKyAgICAgICAgUHV0VHlwZSBwdXRUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wdXRUeXBlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgUHJv
cGVydHlMaXN0Tm9kZTsKQEAgLTUxNCw2ICs1MTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcmVzc2lvbjsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fYXNzaWduOwogICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgUHV0VHlwZSBtX3B1dFR5
cGU7CiAgICAgfTsKIAogICAgIGNsYXNzIFByb3BlcnR5TGlzdE5vZGUgOiBwdWJsaWMgRXhwcmVz
c2lvbk5vZGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGY0
OTFlYTYuLjRlZDRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
QEAgLTEyODIsMTAgKzEyODIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogc3RyaW5nRm9yRnVuY3Rp
b25Nb2RlKEZ1bmN0aW9uUGFyc2VNb2RlIG1vZGUpCiAgICAgICAgIHJldHVybiAic2V0dGVyIjsK
ICAgICBjYXNlIEZ1bmN0aW9uTW9kZToKICAgICAgICAgcmV0dXJuICJmdW5jdGlvbiI7Ci0jaWYg
RU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCiAgICAgY2FzZSBNZXRob2RNb2RlOgogICAgICAgICBy
ZXR1cm4gIm1ldGhvZCI7Ci0jZW5kaWYKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE1MjIsNyArMTUyMCw3IEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNzRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VDbGFzcyhUCiAgICAgICAgICAgICAvLyBGSVhNRTogU3ludGF4IGVycm9yIHdo
ZW4gc3VwZXIoKSBpcyBjYWxsZWQKICAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc1N0
YXRpY01ldGhvZCAmJiAqbWV0aG9kSW5mby5uYW1lID09IHByb3BlcnR5TmFtZXMucHJvdG90eXBl
LAogICAgICAgICAgICAgICAgICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRpYyBtZXRob2QgbmFtZWQg
J3Byb3RvdHlwZSciKTsKLSAgICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9w
ZXJ0eShtZXRob2RJbmZvLm5hbWUsIG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgYWx3
YXlzU3RyaWN0SW5zaWRlQ2xhc3MpOworICAgICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0LmNy
ZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0
YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzKTsKICAg
ICAgICAgfQogCiAgICAgICAgIFRyZWVQcm9wZXJ0eUxpc3QmIHRhaWwgPSBpc1N0YXRpY01ldGhv
ZCA/IHN0YXRpY01ldGhvZHNUYWlsIDogaW5zdGFuY2VNZXRob2RzVGFpbDsKQEAgLTE5MzMsOSAr
MTkzMSwxMiBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eShUcmVlQgogICAgICAgICAgICAgVHJlZUV4cHJl
c3Npb24gbm9kZSA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAg
ICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gZm9yIHByb3Bl
cnR5IGRlY2xhcmF0aW9uIik7CiAgICAgICAgICAgICBjb250ZXh0LnNldEVuZE9mZnNldChub2Rl
LCBtX2xleGVyLT5jdXJyZW50T2Zmc2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQu
Y3JlYXRlUHJvcGVydHkoaWRlbnQsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIGNvbXBs
ZXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBu
b2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBs
ZXRlKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKQorICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlUHJvcGVydHlNZXRob2QoY29udGV4dCwgaWRlbnQsIFByb3BlcnR5
Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRlKTsKKwogICAgICAgICBmYWlsSWZGYWxzZSh3YXNJ
ZGVudCwgIkV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYXMgcHJvcGVydHkgbmFtZSIpOwogCiAgICAg
ICAgIGlmIChtYXRjaChDT01NQSkgfHwgbWF0Y2goQ0xPU0VCUkFDRSkpIHsKQEAgLTE5NDMsNyAr
MTk0NCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgICAgICAgICBKU1Rva2VuTG9j
YXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKICAgICAgICAgICAgIGN1cnJlbnRTY29w
ZSgpLT51c2VWYXJpYWJsZShpZGVudCwgbV92bS0+cHJvcGVydHlOYW1lcy0+ZXZhbCA9PSAqaWRl
bnQpOwogICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IGNvbnRleHQuY3JlYXRlUmVz
b2x2ZShsb2NhdGlvbiwgaWRlbnQsIHN0YXJ0KTsKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0
LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBjb21w
bGV0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShpZGVudCwg
bm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpLbm93bkRpcmVjdCwg
Y29tcGxldGUpOwogICAgICAgICB9CiAKICAgICAgICAgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGU7
CkBAIC0xOTU5LDExICsxOTYwLDE3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVByb3BlcnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgY2Fz
ZSBJTlRFR0VSOiB7CiAgICAgICAgIGRvdWJsZSBwcm9wZXJ0eU5hbWUgPSBtX3Rva2VuLm1fZGF0
YS5kb3VibGVWYWx1ZTsKICAgICAgICAgbmV4dCgpOworCisgICAgICAgIGlmIChtYXRjaChPUEVO
UEFSRU4pKSB7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IG1fcGFyc2Vy
QXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKGNvbnN0X2Nhc3Q8
Vk0qPihtX3ZtKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBwYXJzZVByb3Bl
cnR5TWV0aG9kKGNvbnRleHQsICZpZGVudCwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBjb21wbGV0
ZSk7CisgICAgICAgIH0KKwogICAgICAgICBjb25zdW1lT3JGYWlsKENPTE9OLCAiRXhwZWN0ZWQg
JzonIGFmdGVyIHByb3BlcnR5IG5hbWUiKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9
IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNl
KG5vZGUsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBmb3IgcHJvcGVydHkgZGVjbGFyYXRpb24i
KTsKICAgICAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQobm9kZSwgbV9sZXhlci0+Y3VycmVudE9m
ZnNldCgpKTsKLSAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29uc3RfY2Fz
dDxWTSo+KG1fdm0pLCBtX3BhcnNlckFyZW5hLCBwcm9wZXJ0eU5hbWUsIG5vZGUsIFByb3BlcnR5
Tm9kZTo6Q29uc3RhbnQsIGNvbXBsZXRlKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRl
UHJvcGVydHkoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX3BhcnNlckFyZW5hLCBwcm9wZXJ0eU5h
bWUsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwg
Y29tcGxldGUpOwogICAgIH0KICAgICBjYXNlIE9QRU5CUkFDS0VUOiB7CiAgICAgICAgIG5leHQo
KTsKQEAgLTE5NzUsNyArMTk4Miw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVByb3BlcnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgICAg
IFRyZWVFeHByZXNzaW9uIG5vZGUgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQp
OwogICAgICAgICBmYWlsSWZGYWxzZShub2RlLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gZm9y
IHByb3BlcnR5IGRlY2xhcmF0aW9uIik7CiAgICAgICAgIGNvbnRleHQuc2V0RW5kT2Zmc2V0KG5v
ZGUsIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSk7Ci0gICAgICAgIHJldHVybiBjb250ZXh0LmNy
ZWF0ZVByb3BlcnR5KHByb3BlcnR5TmFtZSwgbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwg
Y29tcGxldGUpOworICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShwcm9wZXJ0
eU5hbWUsIG5vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93
biwgY29tcGxldGUpOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsSWZGYWxzZSht
X3Rva2VuLm1fdHlwZSAmIEtleXdvcmRUb2tlbkZsYWcsICJFeHBlY3RlZCBhIHByb3BlcnR5IG5h
bWUiKTsKQEAgLTE5ODQsNiArMTk5MSwxOCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVQcm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eShUcmVlQgogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlUHJvcGVydHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRob2Qo
VHJlZUJ1aWxkZXImIGNvbnRleHQsIGNvbnN0IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wgc3RyaWN0KQoreworICAgIEpTVG9rZW5M
b2NhdGlvbiBtZXRob2RMb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIHVuc2lnbmVkIG1l
dGhvZFN0YXJ0ID0gdG9rZW5TdGFydCgpOworICAgIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVp
bGRlcj4gbWV0aG9kSW5mbzsKKyAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29u
dGV4dCwgRnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgTWV0aG9kTW9kZSwgZmFsc2UsIG1ldGhvZElu
Zm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgIG1ldGhvZEluZm8ubmFtZSA9
IHByb3BlcnR5TmFtZTsKKyAgICBUcmVlRXhwcmVzc2lvbiBtZXRob2QgPSBjb250ZXh0LmNyZWF0
ZUZ1bmN0aW9uRXhwcihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5mbywgbWV0aG9kU3RhcnQpOwor
ICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KHByb3BlcnR5TmFtZSwgbWV0aG9kLCBQ
cm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBwdXRUeXBlLCBzdHJpY3QpOworfQorCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgTGV4ZXJUeXBlPgogdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJv
cGVydHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlR2V0dGVyU2V0dGVyKFRyZWVCdWlsZGVyJiBj
b250ZXh0LCBib29sIHN0cmljdCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIHVuc2lnbmVkIGdl
dHRlck9yU2V0dGVyU3RhcnRPZmZzZXQpCiB7CiAgICAgY29uc3QgSWRlbnRpZmllciogc3RyaW5n
UHJvcGVydHlOYW1lID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCmluZGV4
IDUwMWMwMzYuLmJiZjBkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApA
QCAtODUsOSArODUsNyBAQCBlbnVtIEZ1bmN0aW9uUGFyc2VNb2RlIHsKICAgICBGdW5jdGlvbk1v
ZGUsCiAgICAgR2V0dGVyTW9kZSwKICAgICBTZXR0ZXJNb2RlLAotI2lmIEVOQUJMRShFUzZfQ0xB
U1NfU1lOVEFYKQotICAgIE1ldGhvZE1vZGUKLSNlbmRpZgorICAgIE1ldGhvZE1vZGUsCiB9Owog
ZW51bSBEZWNvbnN0cnVjdGlvbktpbmQgewogICAgIERlY29uc3RydWN0VG9WYXJpYWJsZXMsCkBA
IC03MzksNiArNzM3LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNwcmVhZE1vZGUgeyBBbGxvd1Nw
cmVhZCwgRG9udEFsbG93U3ByZWFkIH07CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBBTFdBWVNfSU5MSU5FIFRyZWVBcmd1bWVudHMgcGFyc2VBcmd1bWVudHMoVHJlZUJ1aWxkZXIm
LCBTcHJlYWRNb2RlKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9w
ZXJ0eSBwYXJzZVByb3BlcnR5KFRyZWVCdWlsZGVyJiwgYm9vbCBzdHJpY3QpOworICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IHBhcnNlUHJvcGVydHlNZXRob2Qo
VHJlZUJ1aWxkZXImLCBjb25zdCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5Tm9k
ZTo6UHV0VHlwZSwgYm9vbCBzdHJpY3QpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRl
cj4gVHJlZVByb3BlcnR5IHBhcnNlR2V0dGVyU2V0dGVyKFRyZWVCdWlsZGVyJiwgYm9vbCBzdHJp
Y3QsIFByb3BlcnR5Tm9kZTo6VHlwZSwgdW5zaWduZWQgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNl
dCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5MSU5FIFRyZWVG
dW5jdGlvbkJvZHkgcGFyc2VGdW5jdGlvbkJvZHkoVHJlZUJ1aWxkZXImKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJlZUZvcm1hbFBhcmFtZXRlckxp
c3QgcGFyc2VGb3JtYWxQYXJhbWV0ZXJzKFRyZWVCdWlsZGVyJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCmluZGV4IDU4ODRmYjI4Li40NDFkMzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtMTc1
LDIwICsxNzUsMjAgQEAgcHVibGljOgogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVNwcmVhZEV4
cHJlc3Npb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUsIGludCwgaW50
LCBpbnQpIHsgcmV0dXJuIFNwcmVhZEV4cHI7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlz
dChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsgcmV0dXJuIEFyZ3VtZW50c0xpc3RSZXN1
bHQ7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBpbnQsIGludCkgeyByZXR1cm4gQXJndW1lbnRzTGlzdFJlc3VsdDsgfQotICAgIFByb3BlcnR5
IGNyZWF0ZVByb3BlcnR5KGNvbnN0IElkZW50aWZpZXIqIG5hbWUsIGludCwgUHJvcGVydHlOb2Rl
OjpUeXBlIHR5cGUsIGJvb2wgY29tcGxldGUpCisgICAgUHJvcGVydHkgY3JlYXRlUHJvcGVydHko
Y29uc3QgSWRlbnRpZmllciogbmFtZSwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJv
cGVydHlOb2RlOjpQdXRUeXBlLCBib29sIGNvbXBsZXRlKQogICAgIHsKICAgICAgICAgaWYgKCFj
b21wbGV0ZSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eSh0eXBlKTsKICAgICAgICAgQVNT
RVJUKG5hbWUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkobmFtZSwgdHlwZSk7CiAgICAgfQot
ICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFy
ZW5hLCBkb3VibGUgbmFtZSwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCBjb21w
bGV0ZSkKKyAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShWTSogdm0sIFBhcnNlckFyZW5hJiBw
YXJzZXJBcmVuYSwgZG91YmxlIG5hbWUsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFBy
b3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCBjb21wbGV0ZSkKICAgICB7CiAgICAgICAgIGlmICgh
Y29tcGxldGUpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CiAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eSgmcGFyc2VyQXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJ
ZGVudGlmaWVyKHZtLCBuYW1lKSwgdHlwZSk7CiAgICAgfQotICAgIFByb3BlcnR5IGNyZWF0ZVBy
b3BlcnR5KGludCwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgYm9vbCkKKyAgICBQcm9w
ZXJ0eSBjcmVhdGVQcm9wZXJ0eShpbnQsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFBy
b3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCkKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0
eSh0eXBlKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248085</attachid>
            <date>2015-03-06 12:06:10 -0800</date>
            <delta_ts>2015-03-06 13:38:38 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix - With Computed Method Names</desc>
            <filename>withcomputed.patch</filename>
            <type>text/plain</type>
            <size>23501</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMWNmYjMyLi41NGI2NjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDMt
MDYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBFUzY6
IE9iamVjdCBMaXRlcmFsIEV4dGVuc2lvbnMgLSBNZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIzOTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL29iamVjdC1saXRlcmFsLWNvbXB1dGVk
LW1ldGhvZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9vYmplY3QtbGl0ZXJh
bC1jb21wdXRlZC1tZXRob2RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL29iamVjdC1saXRl
cmFsLW1ldGhvZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9vYmplY3QtbGl0
ZXJhbC1tZXRob2RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9vYmpl
Y3QtbGl0ZXJhbC1jb21wdXRlZC1tZXRob2RzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3Jp
cHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5qczogQWRkZWQuCisKIDIwMTUtMDMtMDUg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBfX3Byb3Rv
X18gc2hvcnRoYW5kIHByb3BlcnR5IHNob3VsZCBub3QgbW9kaWZ5IHByb3RvdHlwZSBpbiBPYmpl
Y3QgTGl0ZXJhbCBjb25zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL29iamVj
dC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
b2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg2YTA1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNjUgQEAKK2Jhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0ZXJhbCBjb21wdXRlZCBt
ZXRob2RzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG8gPSB7IFsnZicr
J29vJ10oKSB7IHJldHVybiAxMDsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
by5mb28oKSBpcyAxMAorUEFTUyB0eXBlb2Ygby5mb28gaXMgJ2Z1bmN0aW9uJworUEFTUyBvLmZv
by5sZW5ndGggaXMgMAorUEFTUyBvLmZvby5uYW1lIGlzICcnCitQQVNTIG8uZm9vLnRvU3RyaW5n
KCkgaXMgJ2Z1bmN0aW9uICgpIHsgcmV0dXJuIDEwOyB9JworUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS52YWx1ZSBpcyBvLmZvbworUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5lbnVtZXJhYmxlIGlzIHRydWUKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuY29uZmlndXJhYmxlIGlz
IHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykud3Jp
dGFibGUgaXMgdHJ1ZQorUEFTUyBtZXRob2ROYW1lID0gJ2FkZCc7IG8gPSB7IFttZXRob2ROYW1l
XSh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BB
U1Mgby5hZGQoNDIsIC0xMCkgaXMgMzIKK1BBU1MgdHlwZW9mIG8uYWRkIGlzICdmdW5jdGlvbicK
K1BBU1Mgby5hZGQubGVuZ3RoIGlzIDIKK1BBU1Mgby5hZGQubmFtZSBpcyAnJworUEFTUyBvLmFk
ZC50b1N0cmluZygpIGlzICdmdW5jdGlvbiAoeCwgeSkgeyByZXR1cm4geCArIHk7IH0nCitQQVNT
IG8gPSB7IFsgKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ21ldGhvZCc7IH0pKCkgXSh4LCB5KSB7IHJl
dHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5tZXRob2Qo
MTQyLCAtMTApIGlzIDEzMgorUEFTUyBvID0geyBbMTAqMTBdKCkgeyByZXR1cm4gMTAwOyB9IH07
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWzEwMF0oKSBpcyAxMDAKK1BBU1Mgb1sn
MTAwJ10oKSBpcyAxMDAKK1BBU1MgbyA9IHsgWzEwMCArIDAuMTAwXSgpIHsgcmV0dXJuIDEwMC4x
MDA7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9bMTAwLjFdKCkgaXMgMTAw
LjEKK1BBU1Mgb1snMTAwLjEnXSgpIGlzIDEwMC4xCitQQVNTIG8gPSB7IFsnYScgKyAnZGQnXShb
eCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBvLmFkZChbMTQyLCAtMTAwXSkgaXMgNDIKK1BBU1MgbyA9IHsgW0FycmF5XShbeCwgeV0pIHsg
cmV0dXJuIHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvW0FycmF5
LnRvU3RyaW5nKCldKFsxNDIsIC0xMDBdKSBpcyA0MgorUEFTUyBvID0geyBmb28oKSB7IHJldHVy
biAxMDsgfSwgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGZvbyAoICAp
IHsgcmV0dXJuIDEwOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge1t0
cnVlXSgpe3JldHVybiB0cnVlO319OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9
IHtbTmFOXSgpe3JldHVybiBOYU47fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBv
ID0ge1tldmFsXSgpe3JldHVybiBldmFsO319OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BB
U1MgbyA9IHsgYToxLCBbZm9vXSgpIHsgcmV0dXJuIDEwOyB9LCBbYmFyXSgpIHsgcmV0dXJuIDIw
OyB9LCBiOiAyIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBhOjEsIFtm
b29dKCkgeyByZXR1cm4gMTA7IH0sIFtiYXJdKCkgeyByZXR1cm4gMjA7IH0sIGIgfTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsg
fSwgYjogYiwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwgYzogMiB9OyBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbyA9IHsgYToxLCBbZm9vXSgpIHsgcmV0dXJuIDEwOyB9LCBiLCBbYmFy
XSgpIHsgcmV0dXJuIDIwOyB9LCBjIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBv
ID0ge1tmb29dOntbYmFyXSgpeyByZXR1cm4gMTAwOyB9fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBvLmZvby5iYXIoKSBpcyAxMDAKK1BBU1MgbyA9IHsgW2Zvb10oKSB7IHJldHVy
biAxMDsgfSwgW2Zvb10oKSB7IHJldHVybiAyMDsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1Mgby5mb28oKSBpcyAyMAorUEFTUyBvID0geyBbJ2dldCddKHgsIHkpIHsgcmV0dXJu
IHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmdldCgnaGVsbG8n
LCAnd29ybGQnKSBpcyAnaGVsbG93b3JsZCcKK1BBU1MgbyA9IHsgWydzZXQnXSh4LCB5KSB7IHJl
dHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5zZXQoJ2hl
bGxvJywgJ3dvcmxkJykgaXMgJ2hlbGxvd29ybGQnCitQQVNTICh7IFtdKCwsLCl7fSB9KSB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ10nLgorUEFTUyAoeyBb
MStdKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
J10nLgorUEFTUyAoeyBbMSxdKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gJ10nLgorUEFTUyAoeyBbWzFdKCl7fSB9KSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ3snLiBFeHBlY3RlZCAnXScgdG8gZW5kIGEg
Y29tcHV0ZWQgcHJvcGVydHkgbmFtZS4uCitQQVNTICh7IFtmb29dKCwsLCl7fSB9KSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJywnLiBFeHBlY3RlZCBhIHBh
cmFtZXRlciBwYXR0ZXJuIG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0Li4KK1BBU1MgKHsgW2Zv
b10oYXt9LCBiYXIoKXt9IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCB0b2tlbiAneycuIEV4cGVjdGVkIGEgJyknIG9yIGEgJywnIGFmdGVyIGEgcGFyYW1ldGVyIGRl
Y2xhcmF0aW9uLi4KK1BBU1MgKHsgW2Zvb10oYSwgYiksIGJhcigpe30gfSkgdGhyZXcgZXhjZXB0
aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcsJy4gRXhwZWN0ZWQgYW4gb3Blbmlu
ZyAneycgYXQgdGhlIHN0YXJ0IG9mIGEgbWV0aG9kIGJvZHkuLgorUEFTUyAoeyBbZm9vXShhLCBi
KSB7IGlmIH0sIGJhcigpe30gfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICd9Jy4gRXhwZWN0ZWQgJygnIHRvIHN0YXJ0IGEgJ2lmJyBjb25kaXRpb24uLgor
UEFTUyAoe19fcHJvdG9fXzogZnVuY3Rpb24oKXt9fSkgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0
cnVlCitQQVNTICh7WydfX3Byb3RvX18nXSgpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIGZh
bHNlCitQQVNTICh7WydfX3Byb3RvX18nXSgpe319KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBGdW5j
dGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0
ZWQtbWV0aG9kcy5odG1sIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQt
bWV0aG9kcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MDNhNzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1jb21wdXRl
ZC1tZXRob2RzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2Jq
ZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3Qt
bGl0ZXJhbC1tZXRob2RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zMzE4ZGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0
LWxpdGVyYWwtbWV0aG9kcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NCBAQAorYmFzaWMgdGVz
dHMgZm9yIG9iamVjdCBsaXRlcmFsIG1ldGhvZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0gfTsgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIG8uZm9vKCkgaXMgMTAKK1BBU1MgdHlwZW9mIG8uZm9vIGlzICdmdW5j
dGlvbicKK1BBU1Mgby5mb28ubGVuZ3RoIGlzIDAKK1BBU1Mgby5mb28ubmFtZSBpcyAnZm9vJwor
UEFTUyBvLmZvby50b1N0cmluZygpIGlzICdmdW5jdGlvbiBmb28oKSB7IHJldHVybiAxMDsgfScK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykudmFsdWUgaXMg
by5mb28KK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuZW51
bWVyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywg
J2ZvbycpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IobywgJ2ZvbycpLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgbyA9IHsgYWRkKHgsIHkp
IHsgcmV0dXJuIHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFk
ZCg0MiwgLTEwKSBpcyAzMgorUEFTUyB0eXBlb2Ygby5hZGQgaXMgJ2Z1bmN0aW9uJworUEFTUyBv
LmFkZC5sZW5ndGggaXMgMgorUEFTUyBvLmFkZC5uYW1lIGlzICdhZGQnCitQQVNTIG8uYWRkLnRv
U3RyaW5nKCkgaXMgJ2Z1bmN0aW9uIGFkZCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfScKK1BBU1Mg
byA9IHsgJ2FkZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZCgxLCAyLCAzKSBpcyA2CitQQVNTIG8gPSB7ICdhKGQp
ZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBvWydhKGQpZCddKDEsIDIsIDMpIGlzIDYKK1BBU1MgbyA9IHsgMTAwKCkgeyBy
ZXR1cm4gMTAwOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWzEwMF0oKSBp
cyAxMDAKK1BBU1Mgb1snMTAwJ10oKSBpcyAxMDAKK1BBU1MgbyA9IHsgMTAwLjEwMCgpIHsgcmV0
dXJuIDEwMC4xMDA7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9bMTAwLjFd
KCkgaXMgMTAwLjEKK1BBU1Mgb1snMTAwLjEnXSgpIGlzIDEwMC4xCitQQVNTIG8gPSB7IDFlMygp
IHsgcmV0dXJuIDFlMzsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgb1sxZTNd
KCkgaXMgMTAwMAorUEFTUyBvWycxMDAwJ10oKSBpcyAxMDAwCitQQVNTIG8gPSB7IDB4MTEoKSB7
IHJldHVybiAweDExOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWzB4MTFd
KCkgaXMgMTcKK1BBU1Mgb1snMTcnXSgpIGlzIDE3CitQQVNTIG8gPSB7IGFkZChbeCwgeV0pIHsg
cmV0dXJuIHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZChb
MTQyLCAtMTAwXSkgaXMgNDIKK1BBU1MgbyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIH07IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBmb28gKCAgKSB7IHJldHVybiAxMDsg
fSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHt0cnVlKCl7cmV0dXJuIHRy
dWU7fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge05hTigpe3JldHVybiBO
YU47fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge2V2YWwoKXtyZXR1cm4g
ZXZhbDt9fTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkg
eyByZXR1cm4gMTA7IH0sIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBiOiAyIH07IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9LCBiYXIo
KSB7IHJldHVybiAyMDsgfSwgYiB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9
IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYjogYiwgYmFyKCkgeyByZXR1cm4gMjA7IH0s
IGM6IDIgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkg
eyByZXR1cm4gMTA7IH0sIGIsIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBjIH07IGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge2lubmVyOnttZXRob2QoKXsgcmV0dXJuIDEwMDsgfX19
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5pbm5lci5tZXRob2QoKSBpcyAxMDAK
K1BBU1MgbyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGZvbygpIHsgcmV0dXJuIDIwOyB9IH07
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmZvbygpIGlzIDIwCitQQVNTIG8gPSB7
IGdldCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1Mgby5nZXQoJ2hlbGxvJywgJ3dvcmxkJykgaXMgJ2hlbGxvd29ybGQnCitQQVNTIG8gPSB7
IHNldCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1Mgby5zZXQoJ2hlbGxvJywgJ3dvcmxkJykgaXMgJ2hlbGxvd29ybGQnCitQQVNTICh7Z2V0
IHgoKXsgcmV0dXJuIHRydWU7IH19KS54IGlzIHRydWUKK1BBU1MgKHtnZXQgJ3gnKCl7IHJldHVy
biB0cnVlOyB9fSkueCBpcyB0cnVlCitQQVNTICh7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlb
JzQyJ10gaXMgdHJ1ZQorUEFTUyAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3Nl
dCB4KHZhbHVlKXt9fSwgJ3gnKS5zZXQgaXMgdHJ1ZQorUEFTUyAhIU9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Ioe3NldCAneCcodmFsdWUpe319LCAneCcpLnNldCBpcyB0cnVlCitQQVNT
ICEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IDQyKHZhbHVlKXt9fSwgJzQy
Jykuc2V0IGlzIHRydWUKK1BBU1MgKHsgKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgdG9rZW4gJygnLiBFeHBlY3RlZCBhIHByb3BlcnR5IG5hbWUuLgorUEFT
UyAoeyBmb28oLCwsKXt9IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCB0b2tlbiAnLCcuIEV4cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFy
YW1ldGVyIGxpc3QuLgorUEFTUyAoeyBmb28oYXt9LCBiYXIoKXt9IH0pIHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAneycuIEV4cGVjdGVkIGEgJyknIG9yIGEg
JywnIGFmdGVyIGEgcGFyYW1ldGVyIGRlY2xhcmF0aW9uLi4KK1BBU1MgKHsgZm9vKGEsIGIpLCBi
YXIoKXt9IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
LCcuIEV4cGVjdGVkIGFuIG9wZW5pbmcgJ3snIGF0IHRoZSBzdGFydCBvZiBhIG1ldGhvZCBib2R5
Li4KK1BBU1MgKHsgZm9vKGEsIGIpIHsgaWYgfSwgYmFyKCl7fSB9KSB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCAnKCcgdG8gc3RhcnQg
YSAnaWYnIGNvbmRpdGlvbi4uCitQQVNTICh7X19wcm90b19fOiBmdW5jdGlvbigpe319KSBpbnN0
YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgKHtfX3Byb3RvX18oKXt9fSkgaW5zdGFuY2Vv
ZiBGdW5jdGlvbiBpcyBmYWxzZQorUEFTUyAoe19fcHJvdG9fXygpe319KS5fX3Byb3RvX18gaW5z
dGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxp
dGVyYWwtbWV0aG9kcy5odG1sIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9k
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZjFmZjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFs
LWNvbXB1dGVkLW1ldGhvZHMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0
LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mM2Q4ZDZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMuanMKQEAgLTAsMCArMSw3NCBA
QAorZGVzY3JpcHRpb24oImJhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0ZXJhbCBjb21wdXRlZCBt
ZXRob2RzIik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyBbJ2YnKydvbyddKCkgeyByZXR1cm4g
MTA7IH0gfTsiKTsKK3Nob3VsZEJlKCJvLmZvbygpIiwgIjEwIik7CitzaG91bGRCZSgidHlwZW9m
IG8uZm9vIiwgIidmdW5jdGlvbiciKTsKK3Nob3VsZEJlKCJvLmZvby5sZW5ndGgiLCAiMCIpOwor
c2hvdWxkQmUoIm8uZm9vLm5hbWUiLCAiJyciKTsKK3Nob3VsZEJlKCJvLmZvby50b1N0cmluZygp
IiwgIidmdW5jdGlvbiAoKSB7IHJldHVybiAxMDsgfSciKTsKK3Nob3VsZEJlKCJPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS52YWx1ZSIsICJvLmZvbyIpOworc2hvdWxk
QmVUcnVlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5lbnVtZXJh
YmxlIik7CitzaG91bGRCZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywg
J2ZvbycpLmNvbmZpZ3VyYWJsZSIpOworc2hvdWxkQmVUcnVlKCJPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKG8sICdmb28nKS53cml0YWJsZSIpOworCitzaG91bGROb3RUaHJvdygibWV0
aG9kTmFtZSA9ICdhZGQnOyBvID0geyBbbWV0aG9kTmFtZV0oeCwgeSkgeyByZXR1cm4geCArIHk7
IH0gfTsiKTsKK3Nob3VsZEJlKCJvLmFkZCg0MiwgLTEwKSIsICIzMiIpOworc2hvdWxkQmUoInR5
cGVvZiBvLmFkZCIsICInZnVuY3Rpb24nIik7CitzaG91bGRCZSgiby5hZGQubGVuZ3RoIiwgIjIi
KTsKK3Nob3VsZEJlKCJvLmFkZC5uYW1lIiwgIicnIik7CitzaG91bGRCZSgiby5hZGQudG9TdHJp
bmcoKSIsICInZnVuY3Rpb24gKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JyIpOworCitzaG91bGRO
b3RUaHJvdygibyA9IHsgWyAoZnVuY3Rpb24oKSB7IHJldHVybiAnbWV0aG9kJzsgfSkoKSBdKHgs
IHkpIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5tZXRob2QoMTQyLCAtMTAp
IiwgIjEzMiIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsgWzEwKjEwXSgpIHsgcmV0dXJuIDEw
MDsgfSB9OyIpOworc2hvdWxkQmUoIm9bMTAwXSgpIiwgIjEwMCIpOworc2hvdWxkQmUoIm9bJzEw
MCddKCkiLCAiMTAwIik7CitzaG91bGROb3RUaHJvdygibyA9IHsgWzEwMCArIDAuMTAwXSgpIHsg
cmV0dXJuIDEwMC4xMDA7IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzEwMC4xXSgpIiwgIjEwMC4xIik7
CitzaG91bGRCZSgib1snMTAwLjEnXSgpIiwgIjEwMC4xIik7CisKK3Nob3VsZE5vdFRocm93KCJv
ID0geyBbJ2EnICsgJ2RkJ10oW3gsIHldKSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hvdWxk
QmUoIm8uYWRkKFsxNDIsIC0xMDBdKSIsICI0MiIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsg
W0FycmF5XShbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgib1tBcnJh
eS50b1N0cmluZygpXShbMTQyLCAtMTAwXSkiLCAiNDIiKTsKKworYSA9IDE7IGIgPSAyOyBjID0g
MzsgZm9vID0gImZvbyI7IGJhciA9ICJiYXIiOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGZvbygp
IHsgcmV0dXJuIDEwOyB9LCB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGZvbyAoICApIHsg
cmV0dXJuIDEwOyB9IH07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHtbdHJ1ZV0oKXtyZXR1cm4g
dHJ1ZTt9fTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0ge1tOYU5dKCl7cmV0dXJuIE5hTjt9fTsi
KTsKK3Nob3VsZE5vdFRocm93KCJvID0ge1tldmFsXSgpe3JldHVybiBldmFsO319OyIpOworc2hv
dWxkTm90VGhyb3coIm8gPSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgW2Jhcl0oKSB7
IHJldHVybiAyMDsgfSwgYjogMiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwgW2Zv
b10oKSB7IHJldHVybiAxMDsgfSwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwgYiB9OyIpOworc2hv
dWxkTm90VGhyb3coIm8gPSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgYjogYiwgW2Jh
cl0oKSB7IHJldHVybiAyMDsgfSwgYzogMiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6
MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgYiwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwgYyB9
OyIpOworCitzaG91bGROb3RUaHJvdygibyA9IHtbZm9vXTp7W2Jhcl0oKXsgcmV0dXJuIDEwMDsg
fX19OyIpOworc2hvdWxkQmUoIm8uZm9vLmJhcigpIiwgIjEwMCIpOworCisvLyBEdXBsaWNhdGUg
bWV0aG9kcyBhcmUgb2theS4KK3Nob3VsZE5vdFRocm93KCJvID0geyBbZm9vXSgpIHsgcmV0dXJu
IDEwOyB9LCBbZm9vXSgpIHsgcmV0dXJuIDIwOyB9IH07Iik7CitzaG91bGRCZSgiby5mb28oKSIs
ICIyMCIpOworCisvLyBNZXRob2QgbmFtZWQgImdldCIgb3IgInNldCIuCitzaG91bGROb3RUaHJv
dygibyA9IHsgWydnZXQnXSh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hvdWxkQmUo
Im8uZ2V0KCdoZWxsbycsICd3b3JsZCcpIiwgIidoZWxsb3dvcmxkJyIpOworc2hvdWxkTm90VGhy
b3coIm8gPSB7IFsnc2V0J10oeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsKK3Nob3VsZEJl
KCJvLnNldCgnaGVsbG8nLCAnd29ybGQnKSIsICInaGVsbG93b3JsZCciKTsKKworLy8gRnVuY3Rp
b24gcGFyc2UgZXJyb3JzLgorc2hvdWxkVGhyb3coIih7IFtdKCwsLCl7fSB9KSIpOworc2hvdWxk
VGhyb3coIih7IFsxK10oKXt9IH0pIik7CitzaG91bGRUaHJvdygiKHsgWzEsXSgpe30gfSkiKTsK
K3Nob3VsZFRocm93KCIoeyBbWzFdKCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IFtmb29dKCws
LCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IFtmb29dKGF7fSwgYmFyKCl7fSB9KSIpOworc2hv
dWxkVGhyb3coIih7IFtmb29dKGEsIGIpLCBiYXIoKXt9IH0pIik7CitzaG91bGRUaHJvdygiKHsg
W2Zvb10oYSwgYikgeyBpZiB9LCBiYXIoKXt9IH0pIik7CisKKy8vIF9fcHJvdG9fXyBtZXRob2Qg
c2hvdWxkIGJlIG5vdCBtb2RpZnkgdGhlIHByb3RvdHlwZS4KK3Nob3VsZEJlVHJ1ZSgiKHtfX3By
b3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3VsZEJlRmFs
c2UoIih7WydfX3Byb3RvX18nXSgpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRC
ZVRydWUoIih7WydfX3Byb3RvX18nXSgpe319KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBGdW5jdGlv
biIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRl
cmFsLW1ldGhvZHMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVy
YWwtbWV0aG9kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzhhZTI5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1s
aXRlcmFsLW1ldGhvZHMuanMKQEAgLTAsMCArMSw4NCBAQAorZGVzY3JpcHRpb24oImJhc2ljIHRl
c3RzIGZvciBvYmplY3QgbGl0ZXJhbCBtZXRob2RzIik7CisKK3Nob3VsZE5vdFRocm93KCJvID0g
eyBmb28oKSB7IHJldHVybiAxMDsgfSB9OyIpOworc2hvdWxkQmUoIm8uZm9vKCkiLCAiMTAiKTsK
K3Nob3VsZEJlKCJ0eXBlb2Ygby5mb28iLCAiJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmUoIm8uZm9v
Lmxlbmd0aCIsICIwIik7CitzaG91bGRCZSgiby5mb28ubmFtZSIsICInZm9vJyIpOworc2hvdWxk
QmUoIm8uZm9vLnRvU3RyaW5nKCkiLCAiJ2Z1bmN0aW9uIGZvbygpIHsgcmV0dXJuIDEwOyB9JyIp
Oworc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLnZh
bHVlIiwgIm8uZm9vIik7CitzaG91bGRCZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobywgJ2ZvbycpLmVudW1lcmFibGUiKTsKK3Nob3VsZEJlVHJ1ZSgiT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuY29uZmlndXJhYmxlIik7CitzaG91bGRCZVRy
dWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLndyaXRhYmxlIik7
CisKK3Nob3VsZE5vdFRocm93KCJvID0geyBhZGQoeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsi
KTsKK3Nob3VsZEJlKCJvLmFkZCg0MiwgLTEwKSIsICIzMiIpOworc2hvdWxkQmUoInR5cGVvZiBv
LmFkZCIsICInZnVuY3Rpb24nIik7CitzaG91bGRCZSgiby5hZGQubGVuZ3RoIiwgIjIiKTsKK3No
b3VsZEJlKCJvLmFkZC5uYW1lIiwgIidhZGQnIik7CitzaG91bGRCZSgiby5hZGQudG9TdHJpbmco
KSIsICInZnVuY3Rpb24gYWRkKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JyIpOworCitzaG91bGRO
b3RUaHJvdygibyA9IHsgJ2FkZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7
CitzaG91bGRCZSgiby5hZGQoMSwgMiwgMykiLCAiNiIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7
ICdhKGQpZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7CitzaG91bGRCZSgi
b1snYShkKWQnXSgxLCAyLCAzKSIsICI2Iik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyAxMDAo
KSB7IHJldHVybiAxMDA7IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzEwMF0oKSIsICIxMDAiKTsKK3No
b3VsZEJlKCJvWycxMDAnXSgpIiwgIjEwMCIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IDEwMC4x
MDAoKSB7IHJldHVybiAxMDAuMTAwOyB9IH07Iik7CitzaG91bGRCZSgib1sxMDAuMV0oKSIsICIx
MDAuMSIpOworc2hvdWxkQmUoIm9bJzEwMC4xJ10oKSIsICIxMDAuMSIpOworc2hvdWxkTm90VGhy
b3coIm8gPSB7IDFlMygpIHsgcmV0dXJuIDFlMzsgfSB9OyIpOworc2hvdWxkQmUoIm9bMWUzXSgp
IiwgIjEwMDAiKTsKK3Nob3VsZEJlKCJvWycxMDAwJ10oKSIsICIxMDAwIik7CitzaG91bGROb3RU
aHJvdygibyA9IHsgMHgxMSgpIHsgcmV0dXJuIDB4MTE7IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzB4
MTFdKCkiLCAiMTciKTsKK3Nob3VsZEJlKCJvWycxNyddKCkiLCAiMTciKTsKKworc2hvdWxkTm90
VGhyb3coIm8gPSB7IGFkZChbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRC
ZSgiby5hZGQoWzE0MiwgLTEwMF0pIiwgIjQyIik7CisKK2EgPSAxOyBiID0gMjsgYyA9IDM7Citz
aG91bGROb3RUaHJvdygibyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIH07Iik7CitzaG91bGRO
b3RUaHJvdygibyA9IHsgZm9vICggICkgeyByZXR1cm4gMTA7IH0gfTsiKTsKK3Nob3VsZE5vdFRo
cm93KCJvID0ge3RydWUoKXtyZXR1cm4gdHJ1ZTt9fTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0g
e05hTigpe3JldHVybiBOYU47fX07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHtldmFsKCl7cmV0
dXJuIGV2YWw7fX07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsgYToxLCBmb28oKSB7IHJldHVy
biAxMDsgfSwgYmFyKCkgeyByZXR1cm4gMjA7IH0sIGI6IDIgfTsiKTsKK3Nob3VsZE5vdFRocm93
KCJvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9LCBiYXIoKSB7IHJldHVybiAyMDsgfSwg
YiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0s
IGI6IGIsIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBjOiAyIH07Iik7CitzaG91bGROb3RUaHJvdygi
byA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYiwgYmFyKCkgeyByZXR1cm4gMjA7IH0s
IGMgfTsiKTsKKworc2hvdWxkTm90VGhyb3coIm8gPSB7aW5uZXI6e21ldGhvZCgpeyByZXR1cm4g
MTAwOyB9fX07Iik7CitzaG91bGRCZSgiby5pbm5lci5tZXRob2QoKSIsICIxMDAiKTsKKworLy8g
RHVwbGljYXRlIG1ldGhvZHMgYXJlIG9rYXkuCitzaG91bGROb3RUaHJvdygibyA9IHsgZm9vKCkg
eyByZXR1cm4gMTA7IH0sIGZvbygpIHsgcmV0dXJuIDIwOyB9IH07Iik7CitzaG91bGRCZSgiby5m
b28oKSIsICIyMCIpOworCisvLyBNZXRob2QgbmFtZWQgImdldCIgb3IgInNldCIuCitzaG91bGRO
b3RUaHJvdygibyA9IHsgZ2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRC
ZSgiby5nZXQoJ2hlbGxvJywgJ3dvcmxkJykiLCAiJ2hlbGxvd29ybGQnIik7CitzaG91bGROb3RU
aHJvdygibyA9IHsgc2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgi
by5zZXQoJ2hlbGxvJywgJ3dvcmxkJykiLCAiJ2hlbGxvd29ybGQnIik7CisKKy8vIEdldHRlci9T
ZXR0ZXIgc3ludGF4IHN0aWxsIHdvcmtzLgorc2hvdWxkQmVUcnVlKCIoe2dldCB4KCl7IHJldHVy
biB0cnVlOyB9fSkueCIpOworc2hvdWxkQmVUcnVlKCIoe2dldCAneCcoKXsgcmV0dXJuIHRydWU7
IH19KS54Iik7CitzaG91bGRCZVRydWUoIih7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlbJzQy
J10iKTsKK3Nob3VsZEJlVHJ1ZSgiISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtz
ZXQgeCh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CitzaG91bGRCZVRydWUoIiEhT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih7c2V0ICd4Jyh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CitzaG91
bGRCZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IDQyKHZhbHVl
KXt9fSwgJzQyJykuc2V0Iik7CisKKy8vIEZ1bmN0aW9uIHBhcnNlIGVycm9ycy4KK3Nob3VsZFRo
cm93KCIoeyAoKXt9IH0pIik7CitzaG91bGRUaHJvdygiKHsgZm9vKCwsLCl7fSB9KSIpOworc2hv
dWxkVGhyb3coIih7IGZvbyhhe30sIGJhcigpe30gfSkiKTsKK3Nob3VsZFRocm93KCIoeyBmb28o
YSwgYiksIGJhcigpe30gfSkiKTsKK3Nob3VsZFRocm93KCIoeyBmb28oYSwgYikgeyBpZiB9LCBi
YXIoKXt9IH0pIik7CisKKy8vIF9fcHJvdG9fXyBtZXRob2Qgc2hvdWxkIGJlIG5vdCBtb2RpZnkg
dGhlIHByb3RvdHlwZS4KK3Nob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX186IGZ1bmN0aW9uKCl7fX0p
IGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3VsZEJlRmFsc2UoIih7X19wcm90b19fKCl7fX0p
IGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX18oKXt9fSku
X19wcm90b19fIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDZhNWIyNWYuLmQxZjgyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE1LTAzLTA2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgRVM2OiBPYmplY3QgTGl0ZXJhbCBFeHRlbnNpb25zIC0gTWV0aG9kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMzkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtZXRo
b2Qgc3ludGF4IGluIG9iamVjdCBsaXRlcmFscy4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXIu
aDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5nRm9y
RnVuY3Rpb25Nb2RlKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJv
cGVydHkpOgorICAgICAgICBNZXRob2RzIGFyZSBhbGxvd2VkIGZvciBpZGVudGlmaWVyLCBzdHJp
bmcsIGFuZCBudW1lcmljIG5hbWVzLAorICAgICAgICBhbmQgY29tcHV0ZWQgcHJvcGVydHkgbmFt
ZXMuCisKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRo
b2QpOgorICAgICAgICBIZWxwZXIgZm9yIHBhcnNpbmcgYSBwcm9wZXJ0eSBtZXRob2QuCisKIDIw
MTUtMDMtMDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBfX3Byb3RvX18gc2hvcnRoYW5kIHByb3BlcnR5IHNob3VsZCBub3QgbW9kaWZ5IHByb3RvdHlw
ZSBpbiBPYmplY3QgTGl0ZXJhbCBjb25zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmNwcAppbmRleCBmZmUyMTIxLi4xMGM3YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0xMjgyLDEwICsxMjgyLDggQEAgc3RhdGljIGNvbnN0
IGNoYXIqIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShGdW5jdGlvblBhcnNlTW9kZSBtb2RlKQogICAg
ICAgICByZXR1cm4gInNldHRlciI7CiAgICAgY2FzZSBGdW5jdGlvbk1vZGU6CiAgICAgICAgIHJl
dHVybiAiZnVuY3Rpb24iOwotI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIGNhc2Ug
TWV0aG9kTW9kZToKICAgICAgICAgcmV0dXJuICJtZXRob2QiOwotI2VuZGlmCiAgICAgfQogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0x
OTM2LDYgKzE5MzQsMTIgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVy
dHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHkoVHJlZUIKICAgICAgICAgICAgIHJl
dHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQcm9wZXJ0eU5vZGU6OkNv
bnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKICAgICAgICAgfQogCisg
ICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKSB7CisgICAgICAgICAgICBhdXRvIG1ldGhvZCA9
IHBhcnNlUHJvcGVydHlNZXRob2QoY29udGV4dCwgaWRlbnQpOworICAgICAgICAgICAgcHJvcGFn
YXRlRXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlk
ZW50LCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6S25vd25E
aXJlY3QsIGNvbXBsZXRlKTsKKyAgICAgICAgfQorCiAgICAgICAgIGZhaWxJZkZhbHNlKHdhc0lk
ZW50LCAiRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBhcyBwcm9wZXJ0eSBuYW1lIik7CiAKICAgICAg
ICAgaWYgKG1hdGNoKENPTU1BKSB8fCBtYXRjaChDTE9TRUJSQUNFKSkgewpAQCAtMTk1OSw2ICsx
OTYzLDE0IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgY2FzZSBJTlRFR0VSOiB7CiAg
ICAgICAgIGRvdWJsZSBwcm9wZXJ0eU5hbWUgPSBtX3Rva2VuLm1fZGF0YS5kb3VibGVWYWx1ZTsK
ICAgICAgICAgbmV4dCgpOworCisgICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKSB7CisgICAg
ICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IG1fcGFyc2VyQXJlbmEuaWRlbnRpZmll
ckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgcHJv
cGVydHlOYW1lKTsKKyAgICAgICAgICAgIGF1dG8gbWV0aG9kID0gcGFyc2VQcm9wZXJ0eU1ldGhv
ZChjb250ZXh0LCAmaWRlbnQpOworICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsKKyAgICAg
ICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KCZpZGVudCwgbWV0aG9kLCBQcm9w
ZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKKyAg
ICAgICAgfQorCiAgICAgICAgIGNvbnN1bWVPckZhaWwoQ09MT04sICJFeHBlY3RlZCAnOicgYWZ0
ZXIgcHJvcGVydHkgbmFtZSIpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VB
c3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwg
IkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwpAQCAt
MTk2OSw4ICsxOTgxLDE0IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3Bl
cnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgICAgIG5leHQo
KTsKICAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7
CiAgICAgICAgIGZhaWxJZkZhbHNlKHByb3BlcnR5TmFtZSwgIkNhbm5vdCBwYXJzZSBjb21wdXRl
ZCBwcm9wZXJ0eSBuYW1lIik7Ci0gICAgICAgIAogICAgICAgICBoYW5kbGVQcm9kdWN0aW9uT3JG
YWlsKENMT1NFQlJBQ0tFVCwgIl0iLCAiZW5kIiwgImNvbXB1dGVkIHByb3BlcnR5IG5hbWUiKTsK
KworICAgICAgICBpZiAobWF0Y2goT1BFTlBBUkVOKSkgeworICAgICAgICAgICAgYXV0byBtZXRo
b2QgPSBwYXJzZVByb3BlcnR5TWV0aG9kKGNvbnRleHQsICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5u
dWxsSWRlbnRpZmllcik7CisgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOworICAgICAgICAg
ICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkocHJvcGVydHlOYW1lLCBtZXRob2QsIFBy
b3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRl
KTsKKyAgICAgICAgfQorCiAgICAgICAgIGNvbnN1bWVPckZhaWwoQ09MT04sICJFeHBlY3RlZCAn
OicgYWZ0ZXIgcHJvcGVydHkgbmFtZSIpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0g
cGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2Uo
bm9kZSwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIp
OwpAQCAtMTk4NCw2ICsyMDAyLDE3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVByb3BlcnR5IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5TWV0aG9kKFRy
ZWVCdWlsZGVyJiBjb250ZXh0LCBjb25zdCBJZGVudGlmaWVyKiBtZXRob2ROYW1lKQoreworICAg
IEpTVG9rZW5Mb2NhdGlvbiBtZXRob2RMb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIHVu
c2lnbmVkIG1ldGhvZFN0YXJ0ID0gdG9rZW5TdGFydCgpOworICAgIFBhcnNlckZ1bmN0aW9uSW5m
bzxUcmVlQnVpbGRlcj4gbWV0aG9kSW5mbzsKKyAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlv
bkluZm8oY29udGV4dCwgRnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgTWV0aG9kTW9kZSwgZmFsc2Us
IG1ldGhvZEluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgIG1ldGhvZElu
Zm8ubmFtZSA9IG1ldGhvZE5hbWU7CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRnVuY3Rpb25F
eHByKG1ldGhvZExvY2F0aW9uLCBtZXRob2RJbmZvLCBtZXRob2RTdGFydCk7Cit9CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRy
ZWVQcm9wZXJ0eSBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxk
ZXImIGNvbnRleHQsIGJvb2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgdW5zaWdu
ZWQgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNldCkKIHsKICAgICBjb25zdCBJZGVudGlmaWVyKiBz
dHJpbmdQcm9wZXJ0eU5hbWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgK
aW5kZXggNTAxYzAzNi4uMWY3NWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oCkBAIC04NSw5ICs4NSw3IEBAIGVudW0gRnVuY3Rpb25QYXJzZU1vZGUgewogICAgIEZ1bmN0
aW9uTW9kZSwKICAgICBHZXR0ZXJNb2RlLAogICAgIFNldHRlck1vZGUsCi0jaWYgRU5BQkxFKEVT
Nl9DTEFTU19TWU5UQVgpCi0gICAgTWV0aG9kTW9kZQotI2VuZGlmCisgICAgTWV0aG9kTW9kZSwK
IH07CiBlbnVtIERlY29uc3RydWN0aW9uS2luZCB7CiAgICAgRGVjb25zdHJ1Y3RUb1ZhcmlhYmxl
cywKQEAgLTczOSw2ICs3MzcsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU3ByZWFkTW9kZSB7IEFs
bG93U3ByZWFkLCBEb250QWxsb3dTcHJlYWQgfTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IEFMV0FZU19JTkxJTkUgVHJlZUFyZ3VtZW50cyBwYXJzZUFyZ3VtZW50cyhUcmVlQnVp
bGRlciYsIFNwcmVhZE1vZGUpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZVByb3BlcnR5IHBhcnNlUHJvcGVydHkoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCk7CisgICAg
dGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZVByb3BlcnR5
TWV0aG9kKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBjb25zdCBJZGVudGlmaWVyKiBtZXRob2ROYW1l
KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBwYXJzZUdl
dHRlclNldHRlcihUcmVlQnVpbGRlciYsIGJvb2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUs
IHVuc2lnbmVkIGdldHRlck9yU2V0dGVyU3RhcnRPZmZzZXQpOwogICAgIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVlRnVuY3Rpb25Cb2R5IHBhcnNlRnVuY3Rp
b25Cb2R5KFRyZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBB
TFdBWVNfSU5MSU5FIFRyZWVGb3JtYWxQYXJhbWV0ZXJMaXN0IHBhcnNlRm9ybWFsUGFyYW1ldGVy
cyhUcmVlQnVpbGRlciYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248095</attachid>
            <date>2015-03-06 13:38:38 -0800</date>
            <delta_ts>2015-03-06 14:31:54 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix - With Computed Method Names</desc>
            <filename>final-1.patch</filename>
            <type>text/plain</type>
            <size>23714</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDY3ZWZkY2M3NWNjMTcxMjkwMmFiOTIwM2Y0MjY2MmJhZDIxODQxYjQKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPHBlY29yYXJvQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgTWFyIDYgMTM6
MDA6NDYgMjAxNSAtMDgwMAoKICAgIFBST0dSRVNTOiBNZXRob2RzCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE5OGFmMjEu
LjM4NWFhZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wMy0wNiAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIEVTNjogT2JqZWN0IExpdGVyYWwg
RXh0ZW5zaW9ucyAtIE1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjM5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICoganMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhv
ZHMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1
dGVkLW1ldGhvZHMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9vYmplY3Qt
bGl0ZXJhbC1tZXRob2RzLmpzOiBBZGRlZC4KKworMjAxNS0wMy0wNiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIF9fcHJvdG9fXyBzaG9ydGhhbmQgcHJv
cGVydHkgc2hvdWxkIG5vdCBtb2RpZnkgcHJvdG90eXBlIGluIE9iamVjdCBMaXRlcmFsIGNvbnN0
cnVjdGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyMzgyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL29iamVjdC1saXRlcmFsLWNvbXB1
dGVkLW1ldGhvZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwt
Y29tcHV0ZWQtbWV0aG9kcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjg2YTA1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL29iamVj
dC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAK
K2Jhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0ZXJhbCBjb21wdXRlZCBtZXRob2RzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG8gPSB7IFsnZicrJ29vJ10oKSB7IHJldHVy
biAxMDsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5mb28oKSBpcyAxMAor
UEFTUyB0eXBlb2Ygby5mb28gaXMgJ2Z1bmN0aW9uJworUEFTUyBvLmZvby5sZW5ndGggaXMgMAor
UEFTUyBvLmZvby5uYW1lIGlzICcnCitQQVNTIG8uZm9vLnRvU3RyaW5nKCkgaXMgJ2Z1bmN0aW9u
ICgpIHsgcmV0dXJuIDEwOyB9JworUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KG8sICdmb28nKS52YWx1ZSBpcyBvLmZvbworUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKG8sICdmb28nKS5lbnVtZXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykud3JpdGFibGUgaXMgdHJ1ZQor
UEFTUyBtZXRob2ROYW1lID0gJ2FkZCc7IG8gPSB7IFttZXRob2ROYW1lXSh4LCB5KSB7IHJldHVy
biB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5hZGQoNDIsIC0x
MCkgaXMgMzIKK1BBU1MgdHlwZW9mIG8uYWRkIGlzICdmdW5jdGlvbicKK1BBU1Mgby5hZGQubGVu
Z3RoIGlzIDIKK1BBU1Mgby5hZGQubmFtZSBpcyAnJworUEFTUyBvLmFkZC50b1N0cmluZygpIGlz
ICdmdW5jdGlvbiAoeCwgeSkgeyByZXR1cm4geCArIHk7IH0nCitQQVNTIG8gPSB7IFsgKGZ1bmN0
aW9uKCkgeyByZXR1cm4gJ21ldGhvZCc7IH0pKCkgXSh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5tZXRob2QoMTQyLCAtMTApIGlzIDEz
MgorUEFTUyBvID0geyBbMTAqMTBdKCkgeyByZXR1cm4gMTAwOyB9IH07IGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorUEFTUyBvWzEwMF0oKSBpcyAxMDAKK1BBU1Mgb1snMTAwJ10oKSBpcyAxMDAK
K1BBU1MgbyA9IHsgWzEwMCArIDAuMTAwXSgpIHsgcmV0dXJuIDEwMC4xMDA7IH0gfTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9bMTAwLjFdKCkgaXMgMTAwLjEKK1BBU1Mgb1snMTAw
LjEnXSgpIGlzIDEwMC4xCitQQVNTIG8gPSB7IFsnYScgKyAnZGQnXShbeCwgeV0pIHsgcmV0dXJu
IHggKyB5OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZChbMTQyLCAt
MTAwXSkgaXMgNDIKK1BBU1MgbyA9IHsgW0FycmF5XShbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvW0FycmF5LnRvU3RyaW5nKCldKFsx
NDIsIC0xMDBdKSBpcyA0MgorUEFTUyBvID0geyBmb28oKSB7IHJldHVybiAxMDsgfSwgfTsgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGZvbyAoICApIHsgcmV0dXJuIDEwOyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge1t0cnVlXSgpe3JldHVybiB0
cnVlO319OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHtbTmFOXSgpe3JldHVy
biBOYU47fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge1tldmFsXSgpe3Jl
dHVybiBldmFsO319OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHsgYToxLCBb
Zm9vXSgpIHsgcmV0dXJuIDEwOyB9LCBbYmFyXSgpIHsgcmV0dXJuIDIwOyB9LCBiOiAyIH07IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0geyBhOjEsIFtmb29dKCkgeyByZXR1cm4g
MTA7IH0sIFtiYXJdKCkgeyByZXR1cm4gMjA7IH0sIGIgfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG8gPSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgYjogYiwgW2Jhcl0o
KSB7IHJldHVybiAyMDsgfSwgYzogMiB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
byA9IHsgYToxLCBbZm9vXSgpIHsgcmV0dXJuIDEwOyB9LCBiLCBbYmFyXSgpIHsgcmV0dXJuIDIw
OyB9LCBjIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge1tmb29dOntbYmFy
XSgpeyByZXR1cm4gMTAwOyB9fX07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmZv
by5iYXIoKSBpcyAxMDAKK1BBU1MgbyA9IHsgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgW2Zvb10o
KSB7IHJldHVybiAyMDsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5mb28o
KSBpcyAyMAorUEFTUyBvID0geyBbJ2dldCddKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmdldCgnaGVsbG8nLCAnd29ybGQnKSBpcyAn
aGVsbG93b3JsZCcKK1BBU1MgbyA9IHsgWydzZXQnXSh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9
OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5zZXQoJ2hlbGxvJywgJ3dvcmxkJykg
aXMgJ2hlbGxvd29ybGQnCitQQVNTICh7IFtdKCwsLCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ10nLgorUEFTUyAoeyBbMStdKCl7fSB9KSB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ10nLgorUEFTUyAoeyBb
MSxdKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
J10nLgorUEFTUyAoeyBbWzFdKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gJ3snLiBFeHBlY3RlZCAnXScgdG8gZW5kIGEgY29tcHV0ZWQgcHJvcGVy
dHkgbmFtZS4uCitQQVNTICh7IFtmb29dKCwsLCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJywnLiBFeHBlY3RlZCBhIHBhcmFtZXRlciBwYXR0ZXJu
IG9yIGEgJyknIGluIHBhcmFtZXRlciBsaXN0Li4KK1BBU1MgKHsgW2Zvb10oYXt9LCBiYXIoKXt9
IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAneycuIEV4
cGVjdGVkIGEgJyknIG9yIGEgJywnIGFmdGVyIGEgcGFyYW1ldGVyIGRlY2xhcmF0aW9uLi4KK1BB
U1MgKHsgW2Zvb10oYSwgYiksIGJhcigpe30gfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcsJy4gRXhwZWN0ZWQgYW4gb3BlbmluZyAneycgYXQgdGhlIHN0
YXJ0IG9mIGEgbWV0aG9kIGJvZHkuLgorUEFTUyAoeyBbZm9vXShhLCBiKSB7IGlmIH0sIGJhcigp
e30gfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICd9Jy4g
RXhwZWN0ZWQgJygnIHRvIHN0YXJ0IGEgJ2lmJyBjb25kaXRpb24uLgorUEFTUyAoe19fcHJvdG9f
XzogZnVuY3Rpb24oKXt9fSkgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQQVNTICh7Wydf
X3Byb3RvX18nXSgpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIGZhbHNlCitQQVNTICh7Wydf
X3Byb3RvX18nXSgpe319KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5odG1s
IGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtY29tcHV0ZWQtbWV0aG9kcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MDNhNzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1jb21wdXRlZC1tZXRob2RzLmh0bWwK
QEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0
aG9kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2Rz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzE4ZGYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9k
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NCBAQAorYmFzaWMgdGVzdHMgZm9yIG9iamVjdCBs
aXRlcmFsIG1ldGhvZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbyA9
IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0gfTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IG8uZm9vKCkgaXMgMTAKK1BBU1MgdHlwZW9mIG8uZm9vIGlzICdmdW5jdGlvbicKK1BBU1Mgby5m
b28ubGVuZ3RoIGlzIDAKK1BBU1Mgby5mb28ubmFtZSBpcyAnZm9vJworUEFTUyBvLmZvby50b1N0
cmluZygpIGlzICdmdW5jdGlvbiBmb28oKSB7IHJldHVybiAxMDsgfScKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykudmFsdWUgaXMgby5mb28KK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnZm9vJykuZW51bWVyYWJsZSBpcyB0cnVl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmNvbmZpZ3Vy
YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2Zv
bycpLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgbyA9IHsgYWRkKHgsIHkpIHsgcmV0dXJuIHggKyB5
OyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZCg0MiwgLTEwKSBpcyAz
MgorUEFTUyB0eXBlb2Ygby5hZGQgaXMgJ2Z1bmN0aW9uJworUEFTUyBvLmFkZC5sZW5ndGggaXMg
MgorUEFTUyBvLmFkZC5uYW1lIGlzICdhZGQnCitQQVNTIG8uYWRkLnRvU3RyaW5nKCkgaXMgJ2Z1
bmN0aW9uIGFkZCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfScKK1BBU1MgbyA9IHsgJ2FkZCcoYSwg
YiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBvLmFkZCgxLCAyLCAzKSBpcyA2CitQQVNTIG8gPSB7ICdhKGQpZCcoYSwgYiwgYykgeyBy
ZXR1cm4gYSArIGIgKyBjOyB9IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWydh
KGQpZCddKDEsIDIsIDMpIGlzIDYKK1BBU1MgbyA9IHsgMTAwKCkgeyByZXR1cm4gMTAwOyB9IH07
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWzEwMF0oKSBpcyAxMDAKK1BBU1Mgb1sn
MTAwJ10oKSBpcyAxMDAKK1BBU1MgbyA9IHsgMTAwLjEwMCgpIHsgcmV0dXJuIDEwMC4xMDA7IH0g
fTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9bMTAwLjFdKCkgaXMgMTAwLjEKK1BB
U1Mgb1snMTAwLjEnXSgpIGlzIDEwMC4xCitQQVNTIG8gPSB7IDFlMygpIHsgcmV0dXJuIDFlMzsg
fSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgb1sxZTNdKCkgaXMgMTAwMAorUEFT
UyBvWycxMDAwJ10oKSBpcyAxMDAwCitQQVNTIG8gPSB7IDB4MTEoKSB7IHJldHVybiAweDExOyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvWzB4MTFdKCkgaXMgMTcKK1BBU1Mg
b1snMTcnXSgpIGlzIDE3CitQQVNTIG8gPSB7IGFkZChbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9
IH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvLmFkZChbMTQyLCAtMTAwXSkgaXMg
NDIKK1BBU1MgbyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIH07IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyBvID0geyBmb28gKCAgKSB7IHJldHVybiAxMDsgfSB9OyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHt0cnVlKCl7cmV0dXJuIHRydWU7fX07IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge05hTigpe3JldHVybiBOYU47fX07IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvID0ge2V2YWwoKXtyZXR1cm4gZXZhbDt9fTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0s
IGJhcigpIHsgcmV0dXJuIDIwOyB9LCBiOiAyIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBvID0geyBhOjEsIGZvbygpIHsgcmV0dXJuIDEwOyB9LCBiYXIoKSB7IHJldHVybiAyMDsg
fSwgYiB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbyA9IHsgYToxLCBmb28oKSB7
IHJldHVybiAxMDsgfSwgYjogYiwgYmFyKCkgeyByZXR1cm4gMjA7IH0sIGM6IDIgfTsgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0s
IGIsIGJhcigpIHsgcmV0dXJuIDIwOyB9LCBjIH07IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBvID0ge2lubmVyOnttZXRob2QoKXsgcmV0dXJuIDEwMDsgfX19OyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1Mgby5pbm5lci5tZXRob2QoKSBpcyAxMDAKK1BBU1MgbyA9IHsgZm9v
KCkgeyByZXR1cm4gMTA7IH0sIGZvbygpIHsgcmV0dXJuIDIwOyB9IH07IGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorUEFTUyBvLmZvbygpIGlzIDIwCitQQVNTIG8gPSB7IGdldCh4LCB5KSB7IHJl
dHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5nZXQoJ2hl
bGxvJywgJ3dvcmxkJykgaXMgJ2hlbGxvd29ybGQnCitQQVNTIG8gPSB7IHNldCh4LCB5KSB7IHJl
dHVybiB4ICsgeTsgfSB9OyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgby5zZXQoJ2hl
bGxvJywgJ3dvcmxkJykgaXMgJ2hlbGxvd29ybGQnCitQQVNTICh7Z2V0IHgoKXsgcmV0dXJuIHRy
dWU7IH19KS54IGlzIHRydWUKK1BBU1MgKHtnZXQgJ3gnKCl7IHJldHVybiB0cnVlOyB9fSkueCBp
cyB0cnVlCitQQVNTICh7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlbJzQyJ10gaXMgdHJ1ZQor
UEFTUyAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioe3NldCB4KHZhbHVlKXt9fSwg
J3gnKS5zZXQgaXMgdHJ1ZQorUEFTUyAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
e3NldCAneCcodmFsdWUpe319LCAneCcpLnNldCBpcyB0cnVlCitQQVNTICEhT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IDQyKHZhbHVlKXt9fSwgJzQyJykuc2V0IGlzIHRydWUK
K1BBU1MgKHsgKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gJygnLiBFeHBlY3RlZCBhIHByb3BlcnR5IG5hbWUuLgorUEFTUyAoeyBmb28oLCwsKXt9
IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnLCcuIEV4
cGVjdGVkIGEgcGFyYW1ldGVyIHBhdHRlcm4gb3IgYSAnKScgaW4gcGFyYW1ldGVyIGxpc3QuLgor
UEFTUyAoeyBmb28oYXt9LCBiYXIoKXt9IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAneycuIEV4cGVjdGVkIGEgJyknIG9yIGEgJywnIGFmdGVyIGEgcGFy
YW1ldGVyIGRlY2xhcmF0aW9uLi4KK1BBU1MgKHsgZm9vKGEsIGIpLCBiYXIoKXt9IH0pIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnLCcuIEV4cGVjdGVkIGFu
IG9wZW5pbmcgJ3snIGF0IHRoZSBzdGFydCBvZiBhIG1ldGhvZCBib2R5Li4KK1BBU1MgKHsgZm9v
KGEsIGIpIHsgaWYgfSwgYmFyKCl7fSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gJ30nLiBFeHBlY3RlZCAnKCcgdG8gc3RhcnQgYSAnaWYnIGNvbmRpdGlv
bi4uCitQQVNTICh7X19wcm90b19fOiBmdW5jdGlvbigpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9u
IGlzIHRydWUKK1BBU1MgKHtfX3Byb3RvX18oKXt9fSkgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyBm
YWxzZQorUEFTUyAoe19fcHJvdG9fXygpe319KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBGdW5jdGlv
biBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZjFmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9vYmplY3QtbGl0ZXJhbC1tZXRob2RzLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL29iamVjdC1s
aXRlcmFsLW1ldGhvZHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLWNvbXB1dGVkLW1ldGhv
ZHMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtY29tcHV0
ZWQtbWV0aG9kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2Q4ZDZj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1s
aXRlcmFsLWNvbXB1dGVkLW1ldGhvZHMuanMKQEAgLTAsMCArMSw3NCBAQAorZGVzY3JpcHRpb24o
ImJhc2ljIHRlc3RzIGZvciBvYmplY3QgbGl0ZXJhbCBjb21wdXRlZCBtZXRob2RzIik7CisKK3No
b3VsZE5vdFRocm93KCJvID0geyBbJ2YnKydvbyddKCkgeyByZXR1cm4gMTA7IH0gfTsiKTsKK3No
b3VsZEJlKCJvLmZvbygpIiwgIjEwIik7CitzaG91bGRCZSgidHlwZW9mIG8uZm9vIiwgIidmdW5j
dGlvbiciKTsKK3Nob3VsZEJlKCJvLmZvby5sZW5ndGgiLCAiMCIpOworc2hvdWxkQmUoIm8uZm9v
Lm5hbWUiLCAiJyciKTsKK3Nob3VsZEJlKCJvLmZvby50b1N0cmluZygpIiwgIidmdW5jdGlvbiAo
KSB7IHJldHVybiAxMDsgfSciKTsKK3Nob3VsZEJlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKG8sICdmb28nKS52YWx1ZSIsICJvLmZvbyIpOworc2hvdWxkQmVUcnVlKCJPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdmb28nKS5lbnVtZXJhYmxlIik7CitzaG91bGRC
ZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLmNvbmZpZ3Vy
YWJsZSIpOworc2hvdWxkQmVUcnVlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8s
ICdmb28nKS53cml0YWJsZSIpOworCitzaG91bGROb3RUaHJvdygibWV0aG9kTmFtZSA9ICdhZGQn
OyBvID0geyBbbWV0aG9kTmFtZV0oeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsKK3Nob3Vs
ZEJlKCJvLmFkZCg0MiwgLTEwKSIsICIzMiIpOworc2hvdWxkQmUoInR5cGVvZiBvLmFkZCIsICIn
ZnVuY3Rpb24nIik7CitzaG91bGRCZSgiby5hZGQubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJv
LmFkZC5uYW1lIiwgIicnIik7CitzaG91bGRCZSgiby5hZGQudG9TdHJpbmcoKSIsICInZnVuY3Rp
b24gKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JyIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsg
WyAoZnVuY3Rpb24oKSB7IHJldHVybiAnbWV0aG9kJzsgfSkoKSBdKHgsIHkpIHsgcmV0dXJuIHgg
KyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5tZXRob2QoMTQyLCAtMTApIiwgIjEzMiIpOworCitz
aG91bGROb3RUaHJvdygibyA9IHsgWzEwKjEwXSgpIHsgcmV0dXJuIDEwMDsgfSB9OyIpOworc2hv
dWxkQmUoIm9bMTAwXSgpIiwgIjEwMCIpOworc2hvdWxkQmUoIm9bJzEwMCddKCkiLCAiMTAwIik7
CitzaG91bGROb3RUaHJvdygibyA9IHsgWzEwMCArIDAuMTAwXSgpIHsgcmV0dXJuIDEwMC4xMDA7
IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzEwMC4xXSgpIiwgIjEwMC4xIik7CitzaG91bGRCZSgib1sn
MTAwLjEnXSgpIiwgIjEwMC4xIik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyBbJ2EnICsgJ2Rk
J10oW3gsIHldKSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hvdWxkQmUoIm8uYWRkKFsxNDIs
IC0xMDBdKSIsICI0MiIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsgW0FycmF5XShbeCwgeV0p
IHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgib1tBcnJheS50b1N0cmluZygpXShb
MTQyLCAtMTAwXSkiLCAiNDIiKTsKKworYSA9IDE7IGIgPSAyOyBjID0gMzsgZm9vID0gImZvbyI7
IGJhciA9ICJiYXIiOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGZvbygpIHsgcmV0dXJuIDEwOyB9
LCB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGZvbyAoICApIHsgcmV0dXJuIDEwOyB9IH07
Iik7CitzaG91bGROb3RUaHJvdygibyA9IHtbdHJ1ZV0oKXtyZXR1cm4gdHJ1ZTt9fTsiKTsKK3No
b3VsZE5vdFRocm93KCJvID0ge1tOYU5dKCl7cmV0dXJuIE5hTjt9fTsiKTsKK3Nob3VsZE5vdFRo
cm93KCJvID0ge1tldmFsXSgpe3JldHVybiBldmFsO319OyIpOworc2hvdWxkTm90VGhyb3coIm8g
PSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwg
YjogMiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAx
MDsgfSwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwgYiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8g
PSB7IGE6MSwgW2Zvb10oKSB7IHJldHVybiAxMDsgfSwgYjogYiwgW2Jhcl0oKSB7IHJldHVybiAy
MDsgfSwgYzogMiB9OyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IGE6MSwgW2Zvb10oKSB7IHJl
dHVybiAxMDsgfSwgYiwgW2Jhcl0oKSB7IHJldHVybiAyMDsgfSwgYyB9OyIpOworCitzaG91bGRO
b3RUaHJvdygibyA9IHtbZm9vXTp7W2Jhcl0oKXsgcmV0dXJuIDEwMDsgfX19OyIpOworc2hvdWxk
QmUoIm8uZm9vLmJhcigpIiwgIjEwMCIpOworCisvLyBEdXBsaWNhdGUgbWV0aG9kcyBhcmUgb2th
eS4KK3Nob3VsZE5vdFRocm93KCJvID0geyBbZm9vXSgpIHsgcmV0dXJuIDEwOyB9LCBbZm9vXSgp
IHsgcmV0dXJuIDIwOyB9IH07Iik7CitzaG91bGRCZSgiby5mb28oKSIsICIyMCIpOworCisvLyBN
ZXRob2QgbmFtZWQgImdldCIgb3IgInNldCIuCitzaG91bGROb3RUaHJvdygibyA9IHsgWydnZXQn
XSh4LCB5KSB7IHJldHVybiB4ICsgeTsgfSB9OyIpOworc2hvdWxkQmUoIm8uZ2V0KCdoZWxsbycs
ICd3b3JsZCcpIiwgIidoZWxsb3dvcmxkJyIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IFsnc2V0
J10oeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsKK3Nob3VsZEJlKCJvLnNldCgnaGVsbG8n
LCAnd29ybGQnKSIsICInaGVsbG93b3JsZCciKTsKKworLy8gRnVuY3Rpb24gcGFyc2UgZXJyb3Jz
Lgorc2hvdWxkVGhyb3coIih7IFtdKCwsLCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IFsxK10o
KXt9IH0pIik7CitzaG91bGRUaHJvdygiKHsgWzEsXSgpe30gfSkiKTsKK3Nob3VsZFRocm93KCIo
eyBbWzFdKCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IFtmb29dKCwsLCl7fSB9KSIpOworc2hv
dWxkVGhyb3coIih7IFtmb29dKGF7fSwgYmFyKCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IFtm
b29dKGEsIGIpLCBiYXIoKXt9IH0pIik7CitzaG91bGRUaHJvdygiKHsgW2Zvb10oYSwgYikgeyBp
ZiB9LCBiYXIoKXt9IH0pIik7CisKKy8vIF9fcHJvdG9fXyBtZXRob2Qgc2hvdWxkIGJlIG5vdCBt
b2RpZnkgdGhlIHByb3RvdHlwZS4KK3Nob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX186IGZ1bmN0aW9u
KCl7fX0pIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3VsZEJlRmFsc2UoIih7WydfX3Byb3Rv
X18nXSgpe319KSBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZVRydWUoIih7WydfX3By
b3RvX18nXSgpe319KS5fX3Byb3RvX18gaW5zdGFuY2VvZiBGdW5jdGlvbiIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMuanMg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvb2JqZWN0LWxpdGVyYWwtbWV0aG9kcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzhhZTI5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL29iamVjdC1saXRlcmFsLW1ldGhvZHMu
anMKQEAgLTAsMCArMSw4NCBAQAorZGVzY3JpcHRpb24oImJhc2ljIHRlc3RzIGZvciBvYmplY3Qg
bGl0ZXJhbCBtZXRob2RzIik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyBmb28oKSB7IHJldHVy
biAxMDsgfSB9OyIpOworc2hvdWxkQmUoIm8uZm9vKCkiLCAiMTAiKTsKK3Nob3VsZEJlKCJ0eXBl
b2Ygby5mb28iLCAiJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmUoIm8uZm9vLmxlbmd0aCIsICIwIik7
CitzaG91bGRCZSgiby5mb28ubmFtZSIsICInZm9vJyIpOworc2hvdWxkQmUoIm8uZm9vLnRvU3Ry
aW5nKCkiLCAiJ2Z1bmN0aW9uIGZvbygpIHsgcmV0dXJuIDEwOyB9JyIpOworc2hvdWxkQmUoIk9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLnZhbHVlIiwgIm8uZm9vIik7
CitzaG91bGRCZVRydWUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2Zvbycp
LmVudW1lcmFibGUiKTsKK3Nob3VsZEJlVHJ1ZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihvLCAnZm9vJykuY29uZmlndXJhYmxlIik7CitzaG91bGRCZVRydWUoIk9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ2ZvbycpLndyaXRhYmxlIik7CisKK3Nob3VsZE5vdFRo
cm93KCJvID0geyBhZGQoeCwgeSkgeyByZXR1cm4geCArIHk7IH0gfTsiKTsKK3Nob3VsZEJlKCJv
LmFkZCg0MiwgLTEwKSIsICIzMiIpOworc2hvdWxkQmUoInR5cGVvZiBvLmFkZCIsICInZnVuY3Rp
b24nIik7CitzaG91bGRCZSgiby5hZGQubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJvLmFkZC5u
YW1lIiwgIidhZGQnIik7CitzaG91bGRCZSgiby5hZGQudG9TdHJpbmcoKSIsICInZnVuY3Rpb24g
YWRkKHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9JyIpOworCitzaG91bGROb3RUaHJvdygibyA9IHsg
J2FkZCcoYSwgYiwgYykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7CitzaG91bGRCZSgiby5h
ZGQoMSwgMiwgMykiLCAiNiIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7ICdhKGQpZCcoYSwgYiwg
YykgeyByZXR1cm4gYSArIGIgKyBjOyB9IH07Iik7CitzaG91bGRCZSgib1snYShkKWQnXSgxLCAy
LCAzKSIsICI2Iik7CisKK3Nob3VsZE5vdFRocm93KCJvID0geyAxMDAoKSB7IHJldHVybiAxMDA7
IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzEwMF0oKSIsICIxMDAiKTsKK3Nob3VsZEJlKCJvWycxMDAn
XSgpIiwgIjEwMCIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IDEwMC4xMDAoKSB7IHJldHVybiAx
MDAuMTAwOyB9IH07Iik7CitzaG91bGRCZSgib1sxMDAuMV0oKSIsICIxMDAuMSIpOworc2hvdWxk
QmUoIm9bJzEwMC4xJ10oKSIsICIxMDAuMSIpOworc2hvdWxkTm90VGhyb3coIm8gPSB7IDFlMygp
IHsgcmV0dXJuIDFlMzsgfSB9OyIpOworc2hvdWxkQmUoIm9bMWUzXSgpIiwgIjEwMDAiKTsKK3No
b3VsZEJlKCJvWycxMDAwJ10oKSIsICIxMDAwIik7CitzaG91bGROb3RUaHJvdygibyA9IHsgMHgx
MSgpIHsgcmV0dXJuIDB4MTE7IH0gfTsiKTsKK3Nob3VsZEJlKCJvWzB4MTFdKCkiLCAiMTciKTsK
K3Nob3VsZEJlKCJvWycxNyddKCkiLCAiMTciKTsKKworc2hvdWxkTm90VGhyb3coIm8gPSB7IGFk
ZChbeCwgeV0pIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5hZGQoWzE0Miwg
LTEwMF0pIiwgIjQyIik7CisKK2EgPSAxOyBiID0gMjsgYyA9IDM7CitzaG91bGROb3RUaHJvdygi
byA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0sIH07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsg
Zm9vICggICkgeyByZXR1cm4gMTA7IH0gfTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0ge3RydWUo
KXtyZXR1cm4gdHJ1ZTt9fTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0ge05hTigpe3JldHVybiBO
YU47fX07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHtldmFsKCl7cmV0dXJuIGV2YWw7fX07Iik7
CitzaG91bGROb3RUaHJvdygibyA9IHsgYToxLCBmb28oKSB7IHJldHVybiAxMDsgfSwgYmFyKCkg
eyByZXR1cm4gMjA7IH0sIGI6IDIgfTsiKTsKK3Nob3VsZE5vdFRocm93KCJvID0geyBhOjEsIGZv
bygpIHsgcmV0dXJuIDEwOyB9LCBiYXIoKSB7IHJldHVybiAyMDsgfSwgYiB9OyIpOworc2hvdWxk
Tm90VGhyb3coIm8gPSB7IGE6MSwgZm9vKCkgeyByZXR1cm4gMTA7IH0sIGI6IGIsIGJhcigpIHsg
cmV0dXJuIDIwOyB9LCBjOiAyIH07Iik7CitzaG91bGROb3RUaHJvdygibyA9IHsgYToxLCBmb28o
KSB7IHJldHVybiAxMDsgfSwgYiwgYmFyKCkgeyByZXR1cm4gMjA7IH0sIGMgfTsiKTsKKworc2hv
dWxkTm90VGhyb3coIm8gPSB7aW5uZXI6e21ldGhvZCgpeyByZXR1cm4gMTAwOyB9fX07Iik7Citz
aG91bGRCZSgiby5pbm5lci5tZXRob2QoKSIsICIxMDAiKTsKKworLy8gRHVwbGljYXRlIG1ldGhv
ZHMgYXJlIG9rYXkuCitzaG91bGROb3RUaHJvdygibyA9IHsgZm9vKCkgeyByZXR1cm4gMTA7IH0s
IGZvbygpIHsgcmV0dXJuIDIwOyB9IH07Iik7CitzaG91bGRCZSgiby5mb28oKSIsICIyMCIpOwor
CisvLyBNZXRob2QgbmFtZWQgImdldCIgb3IgInNldCIuCitzaG91bGROb3RUaHJvdygibyA9IHsg
Z2V0KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5nZXQoJ2hlbGxv
JywgJ3dvcmxkJykiLCAiJ2hlbGxvd29ybGQnIik7CitzaG91bGROb3RUaHJvdygibyA9IHsgc2V0
KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9IH07Iik7CitzaG91bGRCZSgiby5zZXQoJ2hlbGxvJywg
J3dvcmxkJykiLCAiJ2hlbGxvd29ybGQnIik7CisKKy8vIEdldHRlci9TZXR0ZXIgc3ludGF4IHN0
aWxsIHdvcmtzLgorc2hvdWxkQmVUcnVlKCIoe2dldCB4KCl7IHJldHVybiB0cnVlOyB9fSkueCIp
Oworc2hvdWxkQmVUcnVlKCIoe2dldCAneCcoKXsgcmV0dXJuIHRydWU7IH19KS54Iik7CitzaG91
bGRCZVRydWUoIih7Z2V0IDQyKCl7IHJldHVybiB0cnVlOyB9fSlbJzQyJ10iKTsKK3Nob3VsZEJl
VHJ1ZSgiISFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtzZXQgeCh2YWx1ZSl7fX0s
ICd4Jykuc2V0Iik7CitzaG91bGRCZVRydWUoIiEhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih7c2V0ICd4Jyh2YWx1ZSl7fX0sICd4Jykuc2V0Iik7CitzaG91bGRCZVRydWUoIiEhT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih7c2V0IDQyKHZhbHVlKXt9fSwgJzQyJykuc2V0
Iik7CisKKy8vIEZ1bmN0aW9uIHBhcnNlIGVycm9ycy4KK3Nob3VsZFRocm93KCIoeyAoKXt9IH0p
Iik7CitzaG91bGRUaHJvdygiKHsgZm9vKCwsLCl7fSB9KSIpOworc2hvdWxkVGhyb3coIih7IGZv
byhhe30sIGJhcigpe30gfSkiKTsKK3Nob3VsZFRocm93KCIoeyBmb28oYSwgYiksIGJhcigpe30g
fSkiKTsKK3Nob3VsZFRocm93KCIoeyBmb28oYSwgYikgeyBpZiB9LCBiYXIoKXt9IH0pIik7CisK
Ky8vIF9fcHJvdG9fXyBtZXRob2Qgc2hvdWxkIGJlIG5vdCBtb2RpZnkgdGhlIHByb3RvdHlwZS4K
K3Nob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX186IGZ1bmN0aW9uKCl7fX0pIGluc3RhbmNlb2YgRnVu
Y3Rpb24iKTsKK3Nob3VsZEJlRmFsc2UoIih7X19wcm90b19fKCl7fX0pIGluc3RhbmNlb2YgRnVu
Y3Rpb24iKTsKK3Nob3VsZEJlVHJ1ZSgiKHtfX3Byb3RvX18oKXt9fSkuX19wcm90b19fIGluc3Rh
bmNlb2YgRnVuY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZhODg2MDguLmE5
MzBlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAz
LTA2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgRVM2
OiBPYmplY3QgTGl0ZXJhbCBFeHRlbnNpb25zIC0gTWV0aG9kcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMzkwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtZXRob2Qgc3ludGF4IGluIG9i
amVjdCBsaXRlcmFscy4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAgKiBw
YXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5nRm9yRnVuY3Rpb25Nb2RlKToK
KyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHkpOgorICAgICAg
ICBNZXRob2RzIGFyZSBhbGxvd2VkIGZvciBpZGVudGlmaWVyLCBzdHJpbmcsIGFuZCBudW1lcmlj
IG5hbWVzLAorICAgICAgICBhbmQgY29tcHV0ZWQgcHJvcGVydHkgbmFtZXMuCisKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRob2QpOgorICAgICAgICBI
ZWxwZXIgZm9yIHBhcnNpbmcgYSBwcm9wZXJ0eSBtZXRob2QuCisKIDIwMTUtMDMtMDUgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBfX3Byb3RvX18gc2hv
cnRoYW5kIHByb3BlcnR5IHNob3VsZCBub3QgbW9kaWZ5IHByb3RvdHlwZSBpbiBPYmplY3QgTGl0
ZXJhbCBjb25zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApp
bmRleCBmZmUyMTIxLi4xMGM3YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuY3BwCkBAIC0xMjgyLDEwICsxMjgyLDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHN0cmluZ0Zv
ckZ1bmN0aW9uTW9kZShGdW5jdGlvblBhcnNlTW9kZSBtb2RlKQogICAgICAgICByZXR1cm4gInNl
dHRlciI7CiAgICAgY2FzZSBGdW5jdGlvbk1vZGU6CiAgICAgICAgIHJldHVybiAiZnVuY3Rpb24i
OwotI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIGNhc2UgTWV0aG9kTW9kZToKICAg
ICAgICAgcmV0dXJuICJtZXRob2QiOwotI2VuZGlmCiAgICAgfQogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xOTM2LDYgKzE5MzQsMTIg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlUHJvcGVydHkgUGFyc2VyPExleGVy
VHlwZT46OnBhcnNlUHJvcGVydHkoVHJlZUIKICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNy
ZWF0ZVByb3BlcnR5KGlkZW50LCBub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0
eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtYXRj
aChPUEVOUEFSRU4pKSB7CisgICAgICAgICAgICBhdXRvIG1ldGhvZCA9IHBhcnNlUHJvcGVydHlN
ZXRob2QoY29udGV4dCwgaWRlbnQpOworICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsKKyAg
ICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGlkZW50LCBtZXRob2QsIFBy
b3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRl
KTsKKyAgICAgICAgfQorCiAgICAgICAgIGZhaWxJZkZhbHNlKHdhc0lkZW50LCAiRXhwZWN0ZWQg
YW4gaWRlbnRpZmllciBhcyBwcm9wZXJ0eSBuYW1lIik7CiAKICAgICAgICAgaWYgKG1hdGNoKENP
TU1BKSB8fCBtYXRjaChDTE9TRUJSQUNFKSkgewpAQCAtMTk1OSw2ICsxOTYzLDE0IEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZVByb3BlcnR5KFRyZWVCCiAgICAgY2FzZSBJTlRFR0VSOiB7CiAgICAgICAgIGRvdWJsZSBw
cm9wZXJ0eU5hbWUgPSBtX3Rva2VuLm1fZGF0YS5kb3VibGVWYWx1ZTsKICAgICAgICAgbmV4dCgp
OworCisgICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKSB7CisgICAgICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCA9IG1fcGFyc2VyQXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51
bWVyaWNJZGVudGlmaWVyKGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgcHJvcGVydHlOYW1lKTsKKyAg
ICAgICAgICAgIGF1dG8gbWV0aG9kID0gcGFyc2VQcm9wZXJ0eU1ldGhvZChjb250ZXh0LCAmaWRl
bnQpOworICAgICAgICAgICAgcHJvcGFnYXRlRXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBj
b250ZXh0LmNyZWF0ZVByb3BlcnR5KCZpZGVudCwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0
YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGNvbXBsZXRlKTsKKyAgICAgICAgfQorCiAgICAg
ICAgIGNvbnN1bWVPckZhaWwoQ09MT04sICJFeHBlY3RlZCAnOicgYWZ0ZXIgcHJvcGVydHkgbmFt
ZSIpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VBc3NpZ25tZW50RXhwcmVz
c2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwgIkNhbm5vdCBwYXJzZSBl
eHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwpAQCAtMTk2OSw4ICsxOTgxLDE0
IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiAgICAgICAgIG5leHQoKTsKICAgICAgICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJ
ZkZhbHNlKHByb3BlcnR5TmFtZSwgIkNhbm5vdCBwYXJzZSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1l
Iik7Ci0gICAgICAgIAogICAgICAgICBoYW5kbGVQcm9kdWN0aW9uT3JGYWlsKENMT1NFQlJBQ0tF
VCwgIl0iLCAiZW5kIiwgImNvbXB1dGVkIHByb3BlcnR5IG5hbWUiKTsKKworICAgICAgICBpZiAo
bWF0Y2goT1BFTlBBUkVOKSkgeworICAgICAgICAgICAgYXV0byBtZXRob2QgPSBwYXJzZVByb3Bl
cnR5TWV0aG9kKGNvbnRleHQsICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllcik7
CisgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOworICAgICAgICAgICAgcmV0dXJuIGNvbnRl
eHQuY3JlYXRlUHJvcGVydHkocHJvcGVydHlOYW1lLCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29u
c3RhbnQsIFByb3BlcnR5Tm9kZTo6S25vd25EaXJlY3QsIGNvbXBsZXRlKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGNvbnN1bWVPckZhaWwoQ09MT04sICJFeHBlY3RlZCAnOicgYWZ0ZXIgcHJvcGVy
dHkgbmFtZSIpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2RlID0gcGFyc2VBc3NpZ25tZW50
RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2Uobm9kZSwgIkNhbm5vdCBw
YXJzZSBleHByZXNzaW9uIGZvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbiIpOwpAQCAtMTk4NCw2ICsy
MDAyLDE3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5KFRyZWVCCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9u
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByb3BlcnR5TWV0aG9kKFRyZWVCdWlsZGVyJiBjb250
ZXh0LCBjb25zdCBJZGVudGlmaWVyKiBtZXRob2ROYW1lKQoreworICAgIEpTVG9rZW5Mb2NhdGlv
biBtZXRob2RMb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIHVuc2lnbmVkIG1ldGhvZFN0
YXJ0ID0gdG9rZW5TdGFydCgpOworICAgIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4g
bWV0aG9kSW5mbzsKKyAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwg
RnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgTWV0aG9kTW9kZSwgZmFsc2UsIG1ldGhvZEluZm8pKSwg
IkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgIG1ldGhvZEluZm8ubmFtZSA9IG1ldGhv
ZE5hbWU7CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRnVuY3Rpb25FeHByKG1ldGhvZExvY2F0
aW9uLCBtZXRob2RJbmZvLCBtZXRob2RTdGFydCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBM
ZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGJv
b2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgdW5zaWduZWQgZ2V0dGVyT3JTZXR0
ZXJTdGFydE9mZnNldCkKIHsKICAgICBjb25zdCBJZGVudGlmaWVyKiBzdHJpbmdQcm9wZXJ0eU5h
bWUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggNTAxYzAzNi4u
MWY3NWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC04NSw5ICs4
NSw3IEBAIGVudW0gRnVuY3Rpb25QYXJzZU1vZGUgewogICAgIEZ1bmN0aW9uTW9kZSwKICAgICBH
ZXR0ZXJNb2RlLAogICAgIFNldHRlck1vZGUsCi0jaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgp
Ci0gICAgTWV0aG9kTW9kZQotI2VuZGlmCisgICAgTWV0aG9kTW9kZSwKIH07CiBlbnVtIERlY29u
c3RydWN0aW9uS2luZCB7CiAgICAgRGVjb25zdHJ1Y3RUb1ZhcmlhYmxlcywKQEAgLTczOSw2ICs3
MzcsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU3ByZWFkTW9kZSB7IEFsbG93U3ByZWFkLCBEb250
QWxsb3dTcHJlYWQgfTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19J
TkxJTkUgVHJlZUFyZ3VtZW50cyBwYXJzZUFyZ3VtZW50cyhUcmVlQnVpbGRlciYsIFNwcmVhZE1v
ZGUpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IHBhcnNl
UHJvcGVydHkoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCk7CisgICAgdGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZVByb3BlcnR5TWV0aG9kKFRyZWVCdWls
ZGVyJiBjb250ZXh0LCBjb25zdCBJZGVudGlmaWVyKiBtZXRob2ROYW1lKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBwYXJzZUdldHRlclNldHRlcihUcmVl
QnVpbGRlciYsIGJvb2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5cGUsIHVuc2lnbmVkIGdldHRl
ck9yU2V0dGVyU3RhcnRPZmZzZXQpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
QUxXQVlTX0lOTElORSBUcmVlRnVuY3Rpb25Cb2R5IHBhcnNlRnVuY3Rpb25Cb2R5KFRyZWVCdWls
ZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBBTFdBWVNfSU5MSU5FIFRy
ZWVGb3JtYWxQYXJhbWV0ZXJMaXN0IHBhcnNlRm9ybWFsUGFyYW1ldGVycyhUcmVlQnVpbGRlciYp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>