<?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>130877</bug_id>
          
          <creation_ts>2014-03-27 17:05:00 -0700</creation_ts>
          <short_desc>Support spread operand in |new| expressions</short_desc>
          <delta_ts>2014-03-30 18:34:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995161</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-27 17:05:00 -0700</bug_when>
    <thetext>Support spread operand in |new| expressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995168</commentid>
    <comment_count>1</comment_count>
      <attachid>228010</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-27 17:10:21 -0700</bug_when>
    <thetext>Created attachment 228010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995196</commentid>
    <comment_count>2</comment_count>
      <attachid>228010</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-27 18:05:26 -0700</bug_when>
    <thetext>Comment on attachment 228010
Patch

r=me
Any reason you didn&apos;t split this into the refactor and then the spread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995199</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-27 18:09:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 228010 [details])
&gt; r=me
&gt; Any reason you didn&apos;t split this into the refactor and then the spread?

Because the only point of the refactor was so i could share code for op_construct_varargs i think the only thing that really counted as a refactor was emjtcompilevarargs in byecodegenerator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995201</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-27 18:10:52 -0700</bug_when>
    <thetext>Committed r166392: &lt;http://trac.webkit.org/changeset/166392&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995398</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-28 11:10:18 -0700</bug_when>
    <thetext>This broke the CLOOP build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995701</commentid>
    <comment_count>6</comment_count>
      <attachid>228010</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-30 18:34:13 -0700</bug_when>
    <thetext>Comment on attachment 228010
Patch

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

&gt; LayoutTests/js/regress/script-tests/call-spread.js:34
&gt; +
&gt; +function testFunction(a, b)
&gt; +{
&gt; +    &quot;use strict&quot;
&gt; +    result |= 0;
&gt; +    return a * 1000 + b * 100 + arguments[2] * 10 + arguments.length ^ (result &amp; 1024);
&gt; +}
&gt; +
&gt; +var arrayArguments = [2, 3, 4]
&gt; +var result = 0;
&gt; +for (var i = 0; i &lt; 1000000; i++)
&gt; +    result += testFunction(...arrayArguments);
&gt; +
&gt; +for (var i = 0; i &lt; 1000000; i++)
&gt; +    result += testFunction(...[1, 2, result, 4]);
&gt; +
&gt; +function test2() {
&gt; +    for (var i = 0; i &lt; 1000000; i++)
&gt; +        result += testFunction(...arguments);
&gt; +}
&gt; +
&gt; +test2(1,2,3,4)
&gt; +
&gt; +
&gt; +function test3() {
&gt; +    aliasedArguments = arguments;
&gt; +    for (var i = 0; i &lt; 1000000; i++)
&gt; +        result += testFunction(...aliasedArguments);
&gt; +}
&gt; +
&gt; +test3(1,2,result,4)
&gt; +
&gt; +if (result != -856444619779264)
&gt; +    throw &quot;Result was &quot; + result + &quot; expected -856444619779264&quot;;

Is there a reason why this test needs to run for 30 seconds?

&gt; LayoutTests/js/regress/script-tests/new-spread.js:34
&gt; +
&gt; +function testFunction(a, b)
&gt; +{
&gt; +    &quot;use strict&quot;
&gt; +    result |= 0;
&gt; +    result += a * 1000 + b * 100 + arguments[2] * 10 + arguments.length ^ (result &amp; 1024);
&gt; +}
&gt; +
&gt; +var arrayArguments = [2, 3, 4]
&gt; +var result = 0;
&gt; +for (var i = 0; i &lt; 1000000; i++)
&gt; +    new testFunction(...arrayArguments);
&gt; +
&gt; +for (var i = 0; i &lt; 1000000; i++)
&gt; +    new testFunction(...[1, 2, result, 4]);
&gt; +
&gt; +function test2() {
&gt; +    for (var i = 0; i &lt; 1000000; i++)
&gt; +        new testFunction(...arguments);
&gt; +}
&gt; +
&gt; +test2(1,2,3,4)
&gt; +
&gt; +
&gt; +function test3() {
&gt; +    aliasedArguments = arguments;
&gt; +    for (var i = 0; i &lt; 1000000; i++)
&gt; +        new testFunction(...aliasedArguments);
&gt; +}
&gt; +
&gt; +test3(1,2,result,4)
&gt; +
&gt; +if (result != -2371153088)
&gt; +    throw &quot;Result was &quot; + result + &quot; expected -2371153088&quot;;

Is there a reason why this test next to run for 40 seconds?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228010</attachid>
            <date>2014-03-27 17:10:21 -0700</date>
            <delta_ts>2014-03-30 18:34:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130877-20140327170959.patch</filename>
            <type>text/plain</type>
            <size>33620</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjFiNzI0YjdkZmQ2MDNkNzE2NzFhZWE0YzhhZDc0ZjRlZTY0ZDI0Li5mMTE4YmNhYjZhZjUzNGI4
NWFhODY5NDlmZTk1YmZmNmQ2Y2ExYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAxNC0wMy0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgc3ByZWFkIG9wZXJhbmQgaW4gfG5ld3wgZXhwcmVzc2lvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDg3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB0aGUgc3ByZWFkIG9wZXJhdG9yIGJlaW5nIGFwcGxpZWQgaW4KKyAgICAgICAgfG5ld3wg
ZXhwcmVzc2lvbnMuICBUaGlzIHJlcXVpcmVkIGFkZGluZyBzdXBwb3J0IGZvcgorICAgICAgICBh
IG5ldyBvcGNvZGUsIG9wX2NvbnN0cnVjdF92YXJhcmdzLiAgVGhpcyBpcyBhIHJlbGF0aXZlbHkK
KyAgICAgICAgc2ltcGxlIHJlZmFjdG9yaW5nIG9mIHRoZSBjYWxsX3ZhcmFyZ3MgaW1wbGVtZW50
YXRpb24uCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAg
KiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0Zv
ckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9m
ZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjp1bmxpbmspOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5m
by5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKToKKyAgICAgICAg
KEpTQzo6Q2FsbExpbmtJbmZvOjpzcGVjaWFsaXphdGlvbktpbmQpOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAgICAgICAqIGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdENvbnN0cnVjdCk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmg6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93
Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6
Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NvbnN0
cnVjdF92YXJhcmdzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jb25zdHJ1Y3Rf
dmFyYXJncyk6CisgICAgICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdFNsb3dfb3BfY29uc3RydWN0X3ZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfY29uc3RydWN0X3ZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVP
cENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZSk6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAg
ICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXNzaW9uKToKKwogMjAxNC0w
My0yNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFTVCBpbmNv
cnJlY3RseSBjb25mbGF0ZXMgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGxvY2F0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDMy
MDMzNTk3MTUxNGJkNjhhYmExOTY4ZTZiZjJjNWM0YzhhMDliZTUuLjNhYWY3ODk0MGJmNjNjZDJm
ODkxZjVhZDA4OTY3OTUwOWE1NGVhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTEwNCw2ICsxMDQsNyBAQAogICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfcmV0IiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9yZXRfb2JqZWN0X29yX3RoaXMiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2NvbnN0cnVjdCIsICJsZW5ndGgiIDogOSB9LAorICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfY29uc3RydWN0X3ZhcmFyZ3MiLCAibGVuZ3RoIiA6IDkgfSwKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3N0cmNhdCIsICJsZW5ndGgiIDogNCB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfdG9fcHJpbWl0aXZlIiwgImxlbmd0aCIgOiAzIH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfcG5hbWVzIiwgImxlbmd0aCIgOiA2IH0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDBm
MDYyNzM1MmQxYzgxZjAyYjUwYmNiNzU4YTI1YzZlMTE1NDhkMTMuLjkyNDQ5Zjk4ZDk4N2IzZGNj
YjIzZjQzYmYwODI0MjE2Mjg3MWE5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xNzYsNiArMTc2LDcgQEAgdm9pZCBjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1
Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAgY2FzZSBvcF9j
YWxsX3ZhcmFyZ3M6IHsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBv
cGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKICAgICAgICAgZnVuY3Rvcihjb2Rl
QmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKTsK
QEAgLTMwNyw2ICszMDgsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LAogICAgIGNhc2Ugb3Bf
bmV3X2NhcHR1cmVkX2Z1bmM6CiAgICAgY2FzZSBvcF9uZXdfZnVuY19leHA6CiAgICAgY2FzZSBv
cF9jYWxsX3ZhcmFyZ3M6CisgICAgY2FzZSBvcF9jb25zdHJ1Y3RfdmFyYXJnczoKICAgICBjYXNl
IG9wX2dldF9mcm9tX3Njb3BlOgogICAgIGNhc2Ugb3BfY2FsbDoKICAgICBjYXNlIG9wX2NhbGxf
ZXZhbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5j
cHAKaW5kZXggMzQ1ZTFmNWZmMGQ2M2Q2YTc1OWI1MzNjYzdhYjYwOWIzOWNkYzczNy4uNzI1NzVi
ZGRjZmEwOWNlNjAyOGU5NzIyMDNjNDNkMjEzNDJkZjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9p
ZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyKQogICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKAogICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24sCiAgICAg
ICAgIHJlcGF0Y2hCdWZmZXIuY29kZUJsb2NrKCktPnZtKCktPmdldENUSVN0dWIobGlua1RodW5r
R2VuZXJhdG9yRm9yKAotICAgICAgICAgICAgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gQ29kZUZv
ckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsLAorICAgICAgICAgICAgKGNhbGxUeXBlID09IENvbnN0
cnVjdCB8fCBjYWxsVHlwZSA9PSBDb25zdHJ1Y3RWYXJhcmdzKT8gQ29kZUZvckNvbnN0cnVjdCA6
IENvZGVGb3JDYWxsLAogICAgICAgICAgICAgaXNGVEwgPyBNdXN0UHJlc2VydmVSZWdpc3RlcnMg
OiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKSkuY29kZSgpKTsKICAgICBoYXNTZWVu
U2hvdWxkUmVwYXRjaCA9IGZhbHNlOwogICAgIGNhbGxlZS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCmluZGV4IDkzNDlmOWJjNTkyODIw
ZjAwZjg3NjIxNzQ1Y2FhMmM5M2M0NGRiYzAuLjg4MDk0ZmY2MTllNTI3OTM3NWFjY2VkOWNmM2Zj
N2E2NjgzNTExMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExp
bmtJbmZvLmgKQEAgLTQyLDEzICs0MiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFJlcGF0
Y2hCdWZmZXI7CiAKIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5l
bE5vZGU8Q2FsbExpbmtJbmZvPiB7Ci0gICAgZW51bSBDYWxsVHlwZSB7IE5vbmUsIENhbGwsIENh
bGxWYXJhcmdzLCBDb25zdHJ1Y3QgfTsKKyAgICBlbnVtIENhbGxUeXBlIHsgTm9uZSwgQ2FsbCwg
Q2FsbFZhcmFyZ3MsIENvbnN0cnVjdCwgQ29uc3RydWN0VmFyYXJncyB9OwogICAgIHN0YXRpYyBD
YWxsVHlwZSBjYWxsVHlwZUZvcihPcGNvZGVJRCBvcGNvZGVJRCkKICAgICB7CiAgICAgICAgIGlm
IChvcGNvZGVJRCA9PSBvcF9jYWxsIHx8IG9wY29kZUlEID09IG9wX2NhbGxfZXZhbCkKICAgICAg
ICAgICAgIHJldHVybiBDYWxsOwogICAgICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0
KQogICAgICAgICAgICAgcmV0dXJuIENvbnN0cnVjdDsKKyAgICAgICAgaWYgKG9wY29kZUlEID09
IG9wX2NvbnN0cnVjdF92YXJhcmdzKQorICAgICAgICAgICAgcmV0dXJuIENvbnN0cnVjdFZhcmFy
Z3M7CiAgICAgICAgIEFTU0VSVChvcGNvZGVJRCA9PSBvcF9jYWxsX3ZhcmFyZ3MpOwogICAgICAg
ICByZXR1cm4gQ2FsbFZhcmFyZ3M7CiAgICAgfQpAQCAtNzAsNyArNzIsNyBAQCBzdHJ1Y3QgQ2Fs
bExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewog
ICAgIAogICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQgc3BlY2lhbGl6YXRpb25LaW5kKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzcGVjaWFsaXphdGlvbkZyb21Jc0NvbnN0cnVjdChj
YWxsVHlwZSA9PSBDb25zdHJ1Y3QpOworICAgICAgICByZXR1cm4gc3BlY2lhbGl6YXRpb25Gcm9t
SXNDb25zdHJ1Y3QoY2FsbFR5cGUgPT0gQ29uc3RydWN0IHx8IGNhbGxUeXBlID09IENvbnN0cnVj
dFZhcmFyZ3MpOwogICAgIH0KIAogICAgIENvZGVMb2NhdGlvbk5lYXJDYWxsIGNhbGxSZXR1cm5M
b2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
aW5kZXggYzk3N2NkMDZjZjczYWU4ZmQ3YjAwZDViZGU5ZjkyYWUwZTIzNWY1ZC4uNmU1YmMzNzU3
Zjg0OTc0MWYzYmU2OTA1ZTk3ZGJlY2E0NWQ1N2RmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTYyNyw3ICs2MjcsOCBAQCB2b2lkIENvZGVC
bG9jazo6ZHVtcEJ5dGVjb2RlKAogewogICAgIGludCBsb2NhdGlvbiA9IGl0IC0gYmVnaW47CiAg
ICAgYm9vbCBoYXNQcmludGVkUHJvZmlsaW5nID0gZmFsc2U7Ci0gICAgc3dpdGNoIChleGVjLT5p
bnRlcnByZXRlcigpLT5nZXRPcGNvZGVJRChpdC0+dS5vcGNvZGUpKSB7CisgICAgT3Bjb2RlSUQg
b3Bjb2RlID0gZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaXQtPnUub3Bjb2RlKTsK
KyAgICBzd2l0Y2ggKG9wY29kZSkgewogICAgICAgICBjYXNlIG9wX2VudGVyOiB7CiAgICAgICAg
ICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJlbnRlciIp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTg4LDYgKzExODksOCBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgcHJpbnRDYWxsT3Aob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQsICJjYWxsX2V2YWwiLCBEb250RHVtcENhY2hlcywgaGFzUHJpbnRlZFByb2ZpbGlu
ZywgY2FsbExpbmtJbmZvcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAgICAgIGNhc2Ug
b3BfY2FsbF92YXJhcmdzOiB7CiAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgY2FsbGVlID0gKCsraXQpLT51Lm9wZXJhbmQ7CkBAIC0x
MTk2LDExICsxMTk5LDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAg
ICAgICBpbnQgZmlyc3RGcmVlUmVnaXN0ZXIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIGludCB2YXJBcmdPZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgICsr
aXQ7Ci0gICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwg
aXQsICJjYWxsX3ZhcmFyZ3MiKTsKKyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCwgb3Bjb2RlID09IG9wX2NhbGxfdmFyYXJncyA/ICJjYWxsX3Zh
cmFyZ3MiIDogImNvbnN0cnVjdF92YXJhcmdzIik7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCIl
cywgJXMsICVzLCAlcywgJWQsICVkIiwgcmVnaXN0ZXJOYW1lKHJlc3VsdCkuZGF0YSgpLCByZWdp
c3Rlck5hbWUoY2FsbGVlKS5kYXRhKCksIHJlZ2lzdGVyTmFtZSh0aGlzVmFsdWUpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGFyZ3VtZW50cykuZGF0YSgpLCBmaXJzdEZyZWVSZWdpc3RlciwgdmFyQXJn
T2Zmc2V0KTsKICAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmlu
dGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBvcF90ZWFyX29mZl9hY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBp
bnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHByaW50TG9jYXRpb25PcEFu
ZFJlZ2lzdGVyT3BlcmFuZChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInRlYXJfb2ZmX2FjdGl2
YXRpb24iLCByMCk7CkBAIC0xNjQwLDYgKzE2NDQsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhT
Y3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJsb2NrKiB1bmxp
bgogICAgICAgICB9CiAgICAgICAgIHN3aXRjaCAocGNbMF0udS5vcGNvZGUpIHsKICAgICAgICAg
Y2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CisgICAgICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6
CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICAgICAgY2FzZSBvcF9nZXRfYXJndW1l
bnRfYnlfdmFsOiB7CiAgICAgICAgICAgICBpbnQgYXJyYXlQcm9maWxlSW5kZXggPSBwY1tvcExl
bmd0aCAtIDJdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggMTUzNTkyMDk2Mzk4YmNl
ODMzY2E1MzU5NzQ1ZTUzMTRiNWVmZDlmNi4uZTU0OWI4MzgwNThmMTY3NjRkYWE3ZjZjMGQ1MmNl
MDI1ODRjM2Y1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTE3ODgsNiArMTc4OCwxNiBAQCBSZWdp
c3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJl
Z2lzdGVySUQqIGRzdCwgUmVnaQogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJ
RCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0
RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9m
aWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiB7
CisgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywg
dGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09m
ZnNldCwgcHJvZmlsZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsK
K30KKworUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdz
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogYXJndW1lbnRz
LCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNl
dCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKQoreworICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY29uc3Ry
dWN0X3ZhcmFyZ3MsIGRzdCwgZnVuYywgMCwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlciwg
Zmlyc3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0
LCBkaXZvdEVuZCk7Cit9CisgICAgCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dENhbGxWYXJhcmdzKE9wY29kZUlEIG9wY29kZSwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywg
UmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQs
IFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdEVuZCkKK3sKICAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7CiAg
ICAgICAgIGVtaXRNb3ZlKHByb2ZpbGVIb29rUmVnaXN0ZXIsIGZ1bmMpOwogICAgICAgICBlbWl0
T3Bjb2RlKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKQEAgLTE3OTgsMTEgKzE4MDgsMTEgQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGZ1bmMKIAogICAgIC8vIEVtaXQgY2FsbC4KICAgICBVbmxpbmtlZEFy
cmF5UHJvZmlsZSBhcnJheVByb2ZpbGUgPSBuZXdBcnJheVByb2ZpbGUoKTsKLSAgICBVbmxpbmtl
ZFZhbHVlUHJvZmlsZSBwcm9maWxlID0gZW1pdFByb2ZpbGVkT3Bjb2RlKG9wX2NhbGxfdmFyYXJn
cyk7CisgICAgVW5saW5rZWRWYWx1ZVByb2ZpbGUgcHJvZmlsZSA9IGVtaXRQcm9maWxlZE9wY29k
ZShvcGNvZGUpOwogICAgIEFTU0VSVChkc3QgIT0gaWdub3JlZFJlc3VsdCgpKTsKICAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoZnVuYy0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRoaXNSZWdpc3Rl
ci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRoaXNSZWdpc3RlciA/IHRo
aXNSZWdpc3Rlci0+aW5kZXgoKSA6IDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd1
bWVudHMtPmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChmaXJzdEZyZWVSZWdp
c3Rlci0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGZpcnN0VmFyQXJnT2Zm
c2V0KTsKQEAgLTE4NTcsNiArMTg2NywxOSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsCiAgICAg
Ly8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1lbnRzLgogICAgIHVuc2lnbmVkIGFyZ3VtZW50ID0g
MDsKICAgICBpZiAoQXJndW1lbnRzTm9kZSogYXJndW1lbnRzTm9kZSA9IGNhbGxBcmd1bWVudHMu
YXJndW1lbnRzTm9kZSgpKSB7CisgICAgICAgIAorICAgICAgICBBcmd1bWVudExpc3ROb2RlKiBu
ID0gY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2RlKCktPm1fbGlzdE5vZGU7CisgICAgICAgIGlm
IChuICYmIG4tPm1fZXhwci0+aXNTcHJlYWRFeHByZXNzaW9uKCkpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKCFuLT5tX25leHQpOworICAgICAgICAgICAgYXV0byBleHByZXNzaW9uID0g
c3RhdGljX2Nhc3Q8U3ByZWFkRXhwcmVzc2lvbk5vZGUqPihuLT5tX2V4cHIpLT5leHByZXNzaW9u
KCk7CisgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRSZWdpc3RlcjsKKyAg
ICAgICAgICAgIGlmIChleHByZXNzaW9uLT5pc1Jlc29sdmVOb2RlKCkgJiYgd2lsbFJlc29sdmVU
b0FyZ3VtZW50cyhzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGV4cHJlc3Npb24pLT5pZGVudGlm
aWVyKCkpICYmICFzeW1ib2xUYWJsZSgpLnNsb3dBcmd1bWVudHMoKSkKKyAgICAgICAgICAgICAg
ICBhcmd1bWVudFJlZ2lzdGVyID0gdW5jaGVja2VkUmVnaXN0ZXJGb3JBcmd1bWVudHMoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhcmd1bWVudFJlZ2lzdGVyID0gZXhwcmVz
c2lvbi0+ZW1pdEJ5dGVjb2RlKCp0aGlzLCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIo
MCkpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRDb25zdHJ1Y3RWYXJhcmdzKGRzdCwgZnVuYywg
YXJndW1lbnRSZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9yYXJ5KCksIDAsIGNhbGxBcmd1bWVudHMu
cHJvZmlsZUhvb2tSZWdpc3RlcigpLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOworICAg
ICAgICB9CisgICAgICAgIAogICAgICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUqIG4gPSBhcmd1
bWVudHNOb2RlLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAgICAgICAgZW1p
dE5vZGUoY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKaW5kZXggMDExM2I4MGQwN2RhMmI2NGE0ZmFlMGIyNWNlMjlkM2M0ZTBi
NTNjMS4uZGRlOGU3NmYyN2EzYjk5ZTEyYTRmYzNiZmM5OGJhZGIwYzA5OTk5NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaApAQCAtNTUxLDcgKzU1MSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbml0TGF6eVJlZ2lzdGVyKFJlZ2lzdGVySUQqKTsKLQor
ICAgICAgICAKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENvbnN0cnVjdFZhcmFyZ3MoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lz
dGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdp
c3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQs
IFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lz
dGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVy
LCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lz
dGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICAKICAg
ICBwdWJsaWM6CiAgICAgICAgIEpTU3RyaW5nKiBhZGRTdHJpbmdDb25zdGFudChjb25zdCBJZGVu
dGlmaWVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBiZDc5YTE1MDUzNzdl
MTJiZDVlMmIwODk3N2NkZDBhMjM4NGQ5OTBmLi4wZTIyNjc0ZWUyNDk5ZjMyODI1ODlmZDMxN2Fm
ZTlhZGYwNDg0YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0xODYsNiArMTg2
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVf
T1Aob3BfY2FsbCkKICAgICAgICAgREVGSU5FX09QKG9wX2NhbGxfZXZhbCkKICAgICAgICAgREVG
SU5FX09QKG9wX2NhbGxfdmFyYXJncykKKyAgICAgICAgREVGSU5FX09QKG9wX2NvbnN0cnVjdF92
YXJhcmdzKQogICAgICAgICBERUZJTkVfT1Aob3BfY2F0Y2gpCiAgICAgICAgIERFRklORV9PUChv
cF9jb25zdHJ1Y3QpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfY2FsbGVlKQpAQCAtMzUzLDYg
KzM1NCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9PUChvcF9jYWxsKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bf
Y2FsbF9ldmFsKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfY2FsbF92YXJhcmdzKQor
ICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfY29uc3RydWN0X3ZhcmFyZ3MpCiAgICAgICAg
IERFRklORV9TTE9XQ0FTRV9PUChvcF9jb25zdHJ1Y3QpCiAgICAgICAgIERFRklORV9TTE9XQ0FT
RV9PUChvcF90b190aGlzKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfY3JlYXRlX3Ro
aXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCBiYzc4OTg2MjMzNmUzYjA2OTY5ZGEzZGQy
NzY0YjM4YWJjOTU3OWJkLi4zZTEzMTIyNzI2ZTRmMDk3ZGJkNjFhNzYzNzkxYjBkY2I0NGIwN2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTQ1NSw2ICs0NTUsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2NhbGwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAg
dm9pZCBlbWl0X29wX2NhbGxfZXZhbChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfY2FsbF92YXJhcmdzKEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9jb25z
dHJ1Y3RfdmFyYXJncyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfY2FwdHVy
ZWRfbW92KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9jYXRjaChJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfY29uc3RydWN0KEluc3RydWN0aW9uKik7CkBA
IC01NTQsNiArNTU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdFNsb3df
b3BfY2FsbChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
ICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jYWxsX2V2YWwoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfY2Fs
bF92YXJhcmdzKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYp
OworICAgICAgICB2b2lkIGVtaXRTbG93X29wX2NvbnN0cnVjdF92YXJhcmdzKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRT
bG93X29wX2NhcHR1cmVkX21vdihJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jb25zdHJ1Y3QoSW5zdHJ1Y3Rp
b24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1p
dFNsb3dfb3BfdG9fdGhpcyhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCmluZGV4IGQ0ODM4YzAz
M2NjNGFlM2EwMmU5YmFjNzAwY2QxMzUyMjM1MGI1YjUuLjQ3ZDRjNGJkOGJiMGMzN2U1NzZmMGI3
MDExMTYzNjM1NzI0ZjYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcApA
QCAtMTg2LDcgKzE4Niw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BDYWxsKE9wY29kZUlEIG9wY29k
ZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhCiAgICAgKi8KICAgICBD
T01QSUxFX0FTU0VSVChPUENPREVfTEVOR1RIKG9wX2NhbGwpID09IE9QQ09ERV9MRU5HVEgob3Bf
Y29uc3RydWN0KSwgY2FsbF9hbmRfY29uc3RydWN0X29wY29kZXNfbXVzdF9iZV9zYW1lX2xlbmd0
aCk7CiAgICAgQ09NUElMRV9BU1NFUlQoT1BDT0RFX0xFTkdUSChvcF9jYWxsKSA9PSBPUENPREVf
TEVOR1RIKG9wX2NhbGxfdmFyYXJncyksIGNhbGxfYW5kX2NhbGxfdmFyYXJnc19vcGNvZGVzX211
c3RfYmVfc2FtZV9sZW5ndGgpOwotICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX3ZhcmFyZ3Mp
CisgICAgQ09NUElMRV9BU1NFUlQoT1BDT0RFX0xFTkdUSChvcF9jYWxsKSA9PSBPUENPREVfTEVO
R1RIKG9wX2NvbnN0cnVjdF92YXJhcmdzKSwgY2FsbF9hbmRfY29uc3RydWN0X3ZhcmFyZ3Nfb3Bj
b2Rlc19tdXN0X2JlX3NhbWVfbGVuZ3RoKTsKKyAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF92
YXJhcmdzIHx8IG9wY29kZUlEID09IG9wX2NvbnN0cnVjdF92YXJhcmdzKQogICAgICAgICBjb21w
aWxlTG9hZFZhcmFyZ3MoaW5zdHJ1Y3Rpb24pOwogICAgIGVsc2UgewogICAgICAgICBpbnQgYXJn
Q291bnQgPSBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CkBAIC0yNTIsNyArMjUzLDcgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rp
b24qIGluc3RydWN0aW9uLCBWZWMKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKICAgICBUaHVu
a0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCi0gICAgICAgIG9w
Y29kZUlEID09IG9wX2NvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwK
KyAgICAgICAgKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCB8fCBvcGNvZGVJRCA9PSBvcF9jb25z
dHJ1Y3RfdmFyYXJncykgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCiAgICAgICAg
IFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOwogICAgIAogICAgIG1vdmUoVHJ1c3Rl
ZEltbVB0cihtX2NhbGxDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxMaW5r
SW5mbyksIHJlZ1QyKTsKQEAgLTMyNiw2ICszMjcsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2Fs
bF92YXJhcmdzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgY29tcGls
ZU9wQ2FsbChvcF9jYWxsX3ZhcmFyZ3MsIGN1cnJlbnRJbnN0cnVjdGlvbiwgbV9jYWxsTGlua0lu
Zm9JbmRleCsrKTsKIH0KKyAgICAKK3ZvaWQgSklUOjplbWl0X29wX2NvbnN0cnVjdF92YXJhcmdz
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgY29tcGlsZU9wQ2FsbChv
cF9jb25zdHJ1Y3RfdmFyYXJncywgY3VycmVudEluc3RydWN0aW9uLCBtX2NhbGxMaW5rSW5mb0lu
ZGV4KyspOworfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jb25zdHJ1Y3QoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIHsKQEAgLTM0Niw3ICszNTIsMTIgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2NhbGxfdmFyYXJncyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0MKIHsKICAgICBjb21waWxlT3BDYWxsU2xvd0Nhc2Uob3BfY2FsbF92YXJhcmdzLCBj
dXJyZW50SW5zdHJ1Y3Rpb24sIGl0ZXIsIG1fY2FsbExpbmtJbmZvSW5kZXgrKyk7CiB9Ci0KKyAg
ICAKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9jb25zdHJ1Y3RfdmFyYXJncyhJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQoreworICAgIGNvbXBpbGVPcENhbGxTbG93Q2FzZShvcF9jb25zdHJ1Y3RfdmFyYXJncywgY3Vy
cmVudEluc3RydWN0aW9uLCBpdGVyLCBtX2NhbGxMaW5rSW5mb0luZGV4KyspOworfQorICAgIAog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2NvbnN0cnVjdChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGNv
bXBpbGVPcENhbGxTbG93Q2FzZShvcF9jb25zdHJ1Y3QsIGN1cnJlbnRJbnN0cnVjdGlvbiwgaXRl
ciwgbV9jYWxsTGlua0luZm9JbmRleCsrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbDMyXzY0LmNwcAppbmRleCA2MmEyMTcyN2Q2ZTliODJmOWFhY2JkNzk5NmU2NTBhOWM2YjYz
YjExLi5mY2MwMjUwOWJlNmViYTk0YjdhNmNhYmE0MjJjYzM4ZWRjMzQ1YmM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBAIC05OSw3ICs5OSwxMiBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2FsbF92YXJhcmdzKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93QwogewogICAgIGNvbXBpbGVPcENhbGxTbG93Q2FzZShvcF9j
YWxsX3ZhcmFyZ3MsIGN1cnJlbnRJbnN0cnVjdGlvbiwgaXRlciwgbV9jYWxsTGlua0luZm9JbmRl
eCsrKTsKIH0KLQorICAgIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX2NvbnN0cnVjdF92YXJhcmdz
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgY29tcGlsZU9wQ2FsbFNsb3dDYXNlKG9wX2NvbnN0cnVj
dF92YXJhcmdzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIGl0ZXIsIG1fY2FsbExpbmtJbmZvSW5kZXgr
Kyk7Cit9CisgICAgCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY29uc3RydWN0KEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgY29tcGlsZU9wQ2FsbFNsb3dDYXNlKG9wX2NvbnN0cnVjdCwgY3VycmVudElu
c3RydWN0aW9uLCBpdGVyLCBtX2NhbGxMaW5rSW5mb0luZGV4KyspOwpAQCAtMTE5LDcgKzEyNCwx
MiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYWxsX3ZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKICAgICBjb21waWxlT3BDYWxsKG9wX2NhbGxfdmFyYXJncywgY3VycmVu
dEluc3RydWN0aW9uLCBtX2NhbGxMaW5rSW5mb0luZGV4KyspOwogfQotCisgICAgCit2b2lkIEpJ
VDo6ZW1pdF9vcF9jb25zdHJ1Y3RfdmFyYXJncyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQoreworICAgIGNvbXBpbGVPcENhbGwob3BfY29uc3RydWN0X3ZhcmFyZ3MsIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgbV9jYWxsTGlua0luZm9JbmRleCsrKTsKK30KKyAgICAKIHZvaWQgSklUOjpl
bWl0X29wX2NvbnN0cnVjdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IGNvbXBpbGVPcENhbGwob3BfY29uc3RydWN0LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIG1fY2FsbExp
bmtJbmZvSW5kZXgrKyk7CkBAIC0yNjMsNyArMjczLDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5zaWduZWQg
Y2EKICAgICAgICAgLSBDYWxsZXIgcmVzdG9yZXMgY2FsbEZyYW1lUmVnaXN0ZXIgYWZ0ZXIgcmV0
dXJuLgogICAgICovCiAgICAgCi0gICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfdmFyYXJncykK
KyAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF92YXJhcmdzIHx8IG9wY29kZUlEID09IG9wX2Nv
bnN0cnVjdF92YXJhcmdzKQogICAgICAgICBjb21waWxlTG9hZFZhcmFyZ3MoaW5zdHJ1Y3Rpb24p
OwogICAgIGVsc2UgewogICAgICAgICBpbnQgYXJnQ291bnQgPSBpbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7CkBAIC0zMzQsNyArMzQ0LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGxTbG93Q2Fz
ZShPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBWZWMKICAgICBs
aW5rU2xvd0Nhc2UoaXRlcik7CiAKICAgICBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IgPSBsaW5r
VGh1bmtHZW5lcmF0b3JGb3IoCi0gICAgICAgIG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IENv
ZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwKKyAgICAgICAgKG9wY29kZUlEID09IG9wX2Nv
bnN0cnVjdCB8fCBvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3RfdmFyYXJncykgPyBDb2RlRm9yQ29u
c3RydWN0IDogQ29kZUZvckNhbGwsCiAgICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQpOwogICAgIAogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX2NhbGxDb21waWxhdGlvbklu
Zm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxMaW5rSW5mbyksIHJlZ1QyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGFhMjQ4MDIwZWQ4ODUzZjMy
MTk5Mzg2NjBhZjIwNjYxMGQ4NTFiZTIuLjU3YzAzZDJhZjY0ZDMzZmM3MmRkMDVlM2UyYjMwOWNj
YTdhMTE3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtNzA1LDcgKzcwNSw3IEBAIGlubGluZSBjaGFyKiBsaW5rRm9yKAogICAgICAgICB9CiAg
ICAgICAgIGNvZGVCbG9jayA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yKGtpbmQp
OwogICAgICAgICBBcml0eUNoZWNrTW9kZSBhcml0eTsKLSAgICAgICAgaWYgKGV4ZWNDYWxsZWUt
PmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVC
bG9jay0+bnVtUGFyYW1ldGVycygpKSB8fCBjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxM
aW5rSW5mbzo6Q2FsbFZhcmFyZ3MpCisgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNh
bGxWYXJhcmdzIHx8IGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0gQ2FsbExpbmtJbmZvOjpDb25z
dHJ1Y3RWYXJhcmdzKQogICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7CkBAIC04
MDIsNyArODAyLDcgQEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbCgK
ICAgICAgICAgY29kZUJsb2NrID0gMDsKICAgICBlbHNlIHsKICAgICAgICAgY29kZUJsb2NrID0g
anNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNhbGxlZS0+ZXhlY3V0YWJsZSgpKS0+Y29kZUJs
b2NrRm9yQ2FsbCgpOwotICAgICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkpIHx8IGNhbGxMaW5rSW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdz
KQorICAgICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8
IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpIHx8IGNhbGxM
aW5rSW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNhbGxWYXJhcmdzIHx8IGNhbGxMaW5r
SW5mby5jYWxsVHlwZSA9PSBDYWxsTGlua0luZm86OkNvbnN0cnVjdFZhcmFyZ3MpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggYTcyMzkzODY5MWI0YTcyZTM1M2E4ZjFk
OTYwNWRkMTNmZjM1N2ViMy4uZGE0MDkyMWY5ZTg3YjQ2MzgzZmNlMWVkM2ZlMDZmMzNkNGFjODdl
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CkBAIC0xMTkyLDcgKzExOTIsMjggQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2Nh
bGxfdmFyYXJncykKICAgICAKICAgICByZXR1cm4gc2V0VXBDYWxsKGV4ZWNDYWxsZWUsIHBjLCBD
b2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CiB9Ci0KKyAgICAKK0xMSU5UX1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3RfdmFyYXJncykKK3sKKyAgICBMTElOVF9CRUdJTl9OT19T
RVRfUEMoKTsKKyAgICAvLyBUaGlzIG5lZWRzIHRvOgorICAgIC8vIC0gRmlndXJlIG91dCB3aGF0
IHRvIGNhbGwgYW5kIGNvbXBpbGUgaXQgaWYgbmVjZXNzYXJ5LgorICAgIC8vIC0gUmV0dXJuIGEg
dHVwbGUgb2YgbWFjaGluZSBjb2RlIGFkZHJlc3MgdG8gY2FsbCBhbmQgdGhlIG5ldyBjYWxsIGZy
YW1lLgorICAgIAorICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9IExMSU5UX09QX0MoMikuanNW
YWx1ZSgpOworICAgIAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHZtLm5ld0NhbGxGcmFt
ZVJldHVyblZhbHVlOworICAgIAorICAgIGxvYWRWYXJhcmdzKGV4ZWMsIGV4ZWNDYWxsZWUsIExM
SU5UX09QX0MoMykuanNWYWx1ZSgpLCBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNbNl0udS5v
cGVyYW5kKTsKKyAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKKyAgICAKKyAg
ICBleGVjQ2FsbGVlLT51bmNoZWNrZWRSKEpTU3RhY2s6OkNhbGxlZSkgPSBjYWxsZWVBc1ZhbHVl
OworICAgIGV4ZWNDYWxsZWUtPnNldENhbGxlckZyYW1lKGV4ZWMpOworICAgIGV4ZWMtPnNldEN1
cnJlbnRWUEMocGMpOworICAgIAorICAgIHJldHVybiBzZXRVcENhbGwoZXhlY0NhbGxlZSwgcGMs
IENvZGVGb3JDb25zdHJ1Y3QsIGNhbGxlZUFzVmFsdWUpOworfQorICAgIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2NhbGxfZXZhbCkKIHsKICAgICBMTElOVF9CRUdJTl9OT19TRVRf
UEMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5k
ZXggZTEzMzAzOWZmNjNjMGZmMjZkMmZjOTNkZDM5MmU2MjdiODEyMTI4Yi4uOWM2ZjEyMjE3YjI5
MWYzMGQ4MzUzYzUxODY4MzBkYTdlMmY0YzNjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBMTElOVF9TTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9jb25zdHJ1Y3QpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfY29uc3RydWN0X3ZhcmFyZ3MpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9jYWxsX2V2YWwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF90ZWFyX29mZl9hY3RpdmF0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfdGVhcl9vZmZfYXJndW1lbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA4Zjk4MmMxOWJhOTNh
YjY3MzE1OWZiNmVkOGY5MDM4MDY4YjljNmQ2Li5iZGFjZTFhMWZlMmM3Y2IzNzRlNWFlYTUwMmI4
MmE4YjI2ZGI2YWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC05OTEsNiArOTkxLDI0IEBAIF9sbGludF9vcF9jYWxs
X3ZhcmFyZ3M6CiAgICAgZW5kCiAgICAgc2xvd1BhdGhGb3JDYWxsKF9sbGludF9zbG93X3BhdGhf
Y2FsbF92YXJhcmdzKQogCitfbGxpbnRfb3BfY29uc3RydWN0X3ZhcmFyZ3M6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3NpemVfZnJhbWVf
Zm9yX3ZhcmFyZ3MpCisgICAgYnJhbmNoSWZFeGNlcHRpb24oX2xsaW50X3Rocm93X2Zyb21fc2xv
d19wYXRoX3RyYW1wb2xpbmUpCisgICAgIyBjYWxsZWVGcmFtZSBpbiB0MQorICAgIGlmIEpTVkFM
VUU2NAorICAgICAgICBtb3ZlIHQxLCBzcAorICAgIGVsc2UKKyAgICAgICAgIyBUaGUgY2FsbGVl
RnJhbWUgaXMgbm90IHN0YWNrIGFsaWduZWQsIG1vdmUgZG93biBieSBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSB0byBhbGlnbgorICAgICAgICBpZiBBUk12NworICAgICAgICAgICAgc3VicCB0MSwgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHQyCisgICAgICAgICAgICBtb3ZlIHQyLCBzcAorICAgICAgICBl
bHNlCisgICAgICAgICAgICBzdWJwIHQxLCBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwgc3AKKyAgICAg
ICAgZW5kCisgICAgZW5kCisgICAgc2xvd1BhdGhGb3JDYWxsKF9sbGludF9zbG93X3BhdGhfY29u
c3RydWN0X3ZhcmFyZ3MpCisKIAogX2xsaW50X29wX2NhbGxfZXZhbDoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggYzVlNzBh
MzZkNTM0NjY1YmVmY2VkOGIyNzk0YmM0MDE4NGY4NTk4Yi4uN2RlYzliZmE5Zjc5NmZkZWQwYTk1
NjFjNmE5YjM3MjUzYWIxNTM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcApAQCAtMjE0NCw3ICsyMTQ0LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBU
cmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXMKICAgICAg
ICAgICAgIGlmIChuZXdDb3VudCkgewogICAgICAgICAgICAgICAgIG5ld0NvdW50LS07CiAgICAg
ICAgICAgICAgICAgSlNUZXh0UG9zaXRpb24gZXhwcmVzc2lvbkVuZCA9IGxhc3RUb2tlbkVuZFBv
c2l0aW9uKCk7Ci0gICAgICAgICAgICAgICAgVHJlZUFyZ3VtZW50cyBhcmd1bWVudHMgPSBwYXJz
ZUFyZ3VtZW50cyhjb250ZXh0LCBEb250QWxsb3dTcHJlYWQpOworICAgICAgICAgICAgICAgIFRy
ZWVBcmd1bWVudHMgYXJndW1lbnRzID0gcGFyc2VBcmd1bWVudHMoY29udGV4dCwgQWxsb3dTcHJl
YWQpOwogICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNlKGFyZ3VtZW50cywgIkNhbm5vdCBwYXJz
ZSBjYWxsIGFyZ3VtZW50cyIpOwogICAgICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0LmNyZWF0
ZU5ld0V4cHIobG9jYXRpb24sIGJhc2UsIGFyZ3VtZW50cywgZXhwcmVzc2lvblN0YXJ0LCBleHBy
ZXNzaW9uRW5kLCBsYXN0VG9rZW5FbmRQb3NpdGlvbigpKTsKICAgICAgICAgICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNGNmNzRlOTkxMzU2MGYxNTIxYzM1MDk0NzU2NDZiNzkyYWJlM2U2YS4uZmJiMzk4
Y2JmMDU5NmI3ZDcxMDQzNjBmNGU2MWYwNDg0ODVhNDk4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBA
CisyMDE0LTAzLTI3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VwcG9ydCBzcHJlYWQgb3BlcmFuZCBpbiB8bmV3fCBleHByZXNzaW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwODc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29ycmVjdG5lc3MgYW5kIHBlcmZv
cm1hbmNlIHRlc3RzIGZvciBzcHJlYWQgb3BlcmFuZHMKKworICAgICAgICAqIGpzL3BhcnNlci1z
eW50YXgtY2hlY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3JlZ3Jlc3MvY2FsbC1zcHJl
YWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2NhbGwtc3ByZWFk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmV3LXNwcmVhZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbmV3LXNwcmVhZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9jYWxsLXNwcmVhZC5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0RnVuY3Rpb24pOgorICAgICAgICAodGVzdDIpOgorICAgICAgICAodGVz
dDMpOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25ldy1zcHJlYWQuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdEZ1bmN0aW9uKToKKyAgICAgICAgKHRlc3QyKToKKyAgICAgICAg
KHRlc3QzKToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvcGFyc2VyLXN5bnRheC1jaGVjay5q
czoKKwogMjAxNC0wMy0yNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFTVCBpbmNvcnJlY3RseSBjb25mbGF0ZXMgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGxvY2F0
aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcGFyc2VyLXN5bnRheC1jaGVjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4
dAppbmRleCAxYWU4MjQ2ODRkNGZiNjkxYzRkN2E2YmE0MDBkN2Y0OThiMzZmNTc1Li43ODMxNzY1
MzljMDhjYjlhM2M0NjQ3MzcxOTUyODc2ZjEwYTU3MTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9q
cy9wYXJzZXItc3ludGF4LWNoZWNrLWV4cGVjdGVkLnR4dApAQCAtNjY4LDEyICs2NjgsMTIgQEAg
UEFTUyBWYWxpZDogICAiby5mb28oLi4uYmFyKSIKIFBBU1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYo
KSB7IG8uZm9vKC4uLmJhcikgfSIKIFBBU1MgVmFsaWQ6ICAgIm9bZm9vXSguLi5iYXIpIgogUEFT
UyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsgb1tmb29dKC4uLmJhcikgfSIKLVBBU1MgSW52YWxp
ZDogIm5ldyBmb28oLi4uYmFyKSIKLVBBU1MgSW52YWxpZDogImZ1bmN0aW9uIGYoKSB7IG5ldyBm
b28oLi4uYmFyKSB9IgotUEFTUyBJbnZhbGlkOiAibmV3IG8uZm9vKC4uLmJhcikiCi1QQVNTIElu
dmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBuZXcgby5mb28oLi4uYmFyKSB9IgotUEFTUyBJbnZhbGlk
OiAibmV3IG9bZm9vXSguLi5iYXIpIgotUEFTUyBJbnZhbGlkOiAiZnVuY3Rpb24gZigpIHsgbmV3
IG9bZm9vXSguLi5iYXIpIH0iCitQQVNTIFZhbGlkOiAgICJuZXcgZm9vKC4uLmJhcikiCitQQVNT
IFZhbGlkOiAgICJmdW5jdGlvbiBmKCkgeyBuZXcgZm9vKC4uLmJhcikgfSIKK1BBU1MgVmFsaWQ6
ICAgIm5ldyBvLmZvbyguLi5iYXIpIgorUEFTUyBWYWxpZDogICAiZnVuY3Rpb24gZigpIHsgbmV3
IG8uZm9vKC4uLmJhcikgfSIKK1BBU1MgVmFsaWQ6ICAgIm5ldyBvW2Zvb10oLi4uYmFyKSIKK1BB
U1MgVmFsaWQ6ICAgImZ1bmN0aW9uIGYoKSB7IG5ldyBvW2Zvb10oLi4uYmFyKSB9IgogUEFTUyBJ
bnZhbGlkOiAiZm9vKC4uLikiCiBQQVNTIEludmFsaWQ6ICJmdW5jdGlvbiBmKCkgeyBmb28oLi4u
KSB9IgogUEFTUyBJbnZhbGlkOiAiby5mb28oLi4uKSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvY2FsbC1zcHJlYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9jYWxsLXNwcmVhZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzIzYjJmZjEzZDY2ZmM3
NmVjZGE4MWEyZDZjOTRkNTEzZmMxN2Q5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvY2FsbC1zcHJlYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9jYWxsLXNwcmVhZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxs
LXNwcmVhZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jYWxsLXNwcmVhZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0ZjA0MDllZDU2MjY3Yjg0Y2UxZTU5Yjk2M2YwY2QyOTMyMjIyNjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NhbGwtc3ByZWFkLmh0bWwKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Y2FsbC1zcHJlYWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvbmV3LXNwcmVhZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzZTI5MWJjZGMx
OTIwZDQ5OWYyM2M4OWMzYjE5MTIxNDJlODQ5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvbmV3LXNwcmVhZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
SlNSZWdyZXNzL25ldy1zcHJlYWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3
LXNwcmVhZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9uZXctc3ByZWFkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWI0NGFiZTY3ZTRmODU2NzA0NDVkZTA5MDM3NzE1ODUzNmIxNjA1MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbmV3LXNwcmVhZC5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL25l
dy1zcHJlYWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9jYWxsLXNwcmVhZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmVjOWIx
MDc2NTlmYTQ1ODA0YWFiOTczYTQ2NzZkYjFiYTYzODgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvY2FsbC1zcHJlYWQuanMKQEAgLTAsMCAr
MSwzNCBAQAorCitmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oYSwgYikKK3sKKyAgICAidXNlIHN0cmlj
dCIKKyAgICByZXN1bHQgfD0gMDsKKyAgICByZXR1cm4gYSAqIDEwMDAgKyBiICogMTAwICsgYXJn
dW1lbnRzWzJdICogMTAgKyBhcmd1bWVudHMubGVuZ3RoIF4gKHJlc3VsdCAmIDEwMjQpOworfQor
Cit2YXIgYXJyYXlBcmd1bWVudHMgPSBbMiwgMywgNF0KK3ZhciByZXN1bHQgPSAwOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspCisgICAgcmVzdWx0ICs9IHRlc3RGdW5jdGlvbigu
Li5hcnJheUFyZ3VtZW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKQor
ICAgIHJlc3VsdCArPSB0ZXN0RnVuY3Rpb24oLi4uWzEsIDIsIHJlc3VsdCwgNF0pOworCitmdW5j
dGlvbiB0ZXN0MigpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKKyAg
ICAgICAgcmVzdWx0ICs9IHRlc3RGdW5jdGlvbiguLi5hcmd1bWVudHMpOworfQorCit0ZXN0Migx
LDIsMyw0KQorCisKK2Z1bmN0aW9uIHRlc3QzKCkgeworICAgIGFsaWFzZWRBcmd1bWVudHMgPSBh
cmd1bWVudHM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspCisgICAgICAg
IHJlc3VsdCArPSB0ZXN0RnVuY3Rpb24oLi4uYWxpYXNlZEFyZ3VtZW50cyk7Cit9CisKK3Rlc3Qz
KDEsMixyZXN1bHQsNCkKKworaWYgKHJlc3VsdCAhPSAtODU2NDQ0NjE5Nzc5MjY0KQorICAgIHRo
cm93ICJSZXN1bHQgd2FzICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIC04NTY0NDQ2MTk3NzkyNjQi
OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL25ldy1zcHJlYWQuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9uZXctc3ByZWFkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2OTQ0OTYxNTU5MzJh
ZDRkMzhlNjk3NzRjYjMwNzE2NTQ4YjRmNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXctc3ByZWFkLmpzCkBAIC0wLDAgKzEsMzQgQEAK
KworZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGEsIGIpCit7CisgICAgInVzZSBzdHJpY3QiCisgICAg
cmVzdWx0IHw9IDA7CisgICAgcmVzdWx0ICs9IGEgKiAxMDAwICsgYiAqIDEwMCArIGFyZ3VtZW50
c1syXSAqIDEwICsgYXJndW1lbnRzLmxlbmd0aCBeIChyZXN1bHQgJiAxMDI0KTsKK30KKwordmFy
IGFycmF5QXJndW1lbnRzID0gWzIsIDMsIDRdCit2YXIgcmVzdWx0ID0gMDsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwMDsgaSsrKQorICAgIG5ldyB0ZXN0RnVuY3Rpb24oLi4uYXJyYXlBcmd1
bWVudHMpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykKKyAgICBuZXcgdGVz
dEZ1bmN0aW9uKC4uLlsxLCAyLCByZXN1bHQsIDRdKTsKKworZnVuY3Rpb24gdGVzdDIoKSB7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspCisgICAgICAgIG5ldyB0ZXN0RnVu
Y3Rpb24oLi4uYXJndW1lbnRzKTsKK30KKwordGVzdDIoMSwyLDMsNCkKKworCitmdW5jdGlvbiB0
ZXN0MygpIHsKKyAgICBhbGlhc2VkQXJndW1lbnRzID0gYXJndW1lbnRzOworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrKQorICAgICAgICBuZXcgdGVzdEZ1bmN0aW9uKC4uLmFs
aWFzZWRBcmd1bWVudHMpOworfQorCit0ZXN0MygxLDIscmVzdWx0LDQpCisKK2lmIChyZXN1bHQg
IT0gLTIzNzExNTMwODgpCisgICAgdGhyb3cgIlJlc3VsdCB3YXMgIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgLTIzNzExNTMwODgiOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9wYXJzZXItc3ludGF4LWNoZWNrLmpzIGIv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2suanMKaW5kZXgg
NmQ0MGY4OGVjMzg2YWYzZDg1ZWMxNzkwNTZjZGM5OTk3ZGM4YTlmOC4uMzJhNGI0YWY5NThkMjM4
NWMwMDMzNDViYjA2M2M5NGJkNWEzYmI1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2suanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL3BhcnNlci1zeW50YXgtY2hlY2suanMKQEAgLTQxOCw5ICs0MTgsOSBAQCBkZWJ1
Zygic3ByZWFkIG9wZXJhdG9yIikKIHZhbGlkKCJmb28oLi4uYmFyKSIpCiB2YWxpZCgiby5mb28o
Li4uYmFyKSIpCiB2YWxpZCgib1tmb29dKC4uLmJhcikiKQotaW52YWxpZCgibmV3IGZvbyguLi5i
YXIpIikKLWludmFsaWQoIm5ldyBvLmZvbyguLi5iYXIpIikKLWludmFsaWQoIm5ldyBvW2Zvb10o
Li4uYmFyKSIpCit2YWxpZCgibmV3IGZvbyguLi5iYXIpIikKK3ZhbGlkKCJuZXcgby5mb28oLi4u
YmFyKSIpCit2YWxpZCgibmV3IG9bZm9vXSguLi5iYXIpIikKIGludmFsaWQoImZvbyguLi4pIikK
IGludmFsaWQoIm8uZm9vKC4uLikiKQogaW52YWxpZCgib1tmb29dKC4uLikiKQo=
</data>
<flag name="review"
          id="252270"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>