<?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>178946</bug_id>
          
          <creation_ts>2017-10-27 10:43:15 -0700</creation_ts>
          <short_desc>WebAssembly: update arbitrary limits to what browsers use</short_desc>
          <delta_ts>2017-10-27 11:42:32 -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>WebAssembly</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1365428</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 10:43:15 -0700</bug_when>
    <thetext>https://github.com/WebAssembly/design/issues/1138 discusses the arbitrary function size limit, which it turns out Chrome and Firefox didn&apos;t enforce. We didn&apos;t use it because it was ridiculously low and actual programs ran into that limit (bummer for Edge which just shipped it...). Now that we agree on a high arbitrary program limit, let&apos;s update it! While I&apos;m doing this there are a few other spots that I&apos;d polish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365432</commentid>
    <comment_count>1</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 10:46:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/34257412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365433</commentid>
    <comment_count>2</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 10:46:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/34501154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365436</commentid>
    <comment_count>3</comment_count>
      <attachid>325177</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 10:49:31 -0700</bug_when>
    <thetext>Created attachment 325177
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365439</commentid>
    <comment_count>4</comment_count>
      <attachid>325177</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-27 10:58:12 -0700</bug_when>
    <thetext>Comment on attachment 325177
patch

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

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:514
&gt; +    size_t totalBytes = m_locals.size() + count;

Don&apos;t you want this to be Checked?

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:515
&gt; +    WASM_COMPILE_FAIL_IF((static_cast&lt;uint32_t&gt;(totalBytes) &lt; count) || !m_locals.tryReserveCapacity(totalBytes), &quot;can&apos;t allocate memory for &quot;, totalBytes, &quot; locals&quot;);

Why not use Checked?

&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:41
&gt; +    size_t totalBytes = sizeof(Segment) + sizeInBytes;
&gt; +    if (static_cast&lt;uint32_t&gt;(totalBytes) &lt; sizeInBytes)
&gt; +        return nullptr;

Why not use checked&lt;uint32_t&gt;?

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:65
&gt; +    m_jsFunctions = MallocPtr&lt;WriteBarrier&lt;JSObject&gt;&gt;::malloc((sizeof(WriteBarrier&lt;JSObject&gt;) * Checked&lt;size_t&gt;(size())).unsafeGet());

why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365445</commentid>
    <comment_count>5</comment_count>
      <attachid>325180</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 11:23:05 -0700</bug_when>
    <thetext>Created attachment 325180
patch

Address comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365450</commentid>
    <comment_count>6</comment_count>
      <attachid>325180</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-27 11:42:31 -0700</bug_when>
    <thetext>Comment on attachment 325180
patch

Clearing flags on attachment: 325180

Committed r224122: &lt;https://trac.webkit.org/changeset/224122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365451</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-27 11:42:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325177</attachid>
            <date>2017-10-27 10:49:31 -0700</date>
            <delta_ts>2017-10-27 11:23:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-update-arbitrary-limits-to-what-browsers.patch</filename>
            <type>text/plain</type>
            <size>13912</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4MDcwMzkyODI2MmMzN2Q3ODA5ZGU4ZjY4OTljZmI3MzdjYmUwMDg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI3IE9jdCAyMDE3IDEwOjQ5OjA1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHVwZGF0ZSBhcmJpdHJhcnkgbGltaXRzIHRvIHdoYXQgYnJvd3NlcnMgdXNlCgotLS0K
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgMzgg
KysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwICAgfCAgMyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZvcm1hdC5jcHAgICAgICAgICAgfCAgNSArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21GdW5jdGlvblBhcnNlci5oICAgIHwgIDQgKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtSW5zdGFuY2UuY3BwICAgICAgICB8ICA3ICsrLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21MaW1pdHMuaCAgICAgICAgICAgIHwgIDIgKysKIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwICAgIHwgIDcgKystLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oICAgICAgICAgfCAgNSArLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAgICAgICAgICAgIHwgIDQgKy0tCiAu
Li4vSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwICB8ICA1ICst
LQogMTAgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNWU1NTBlZi4uNWJhYTAzZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMTAtMjcgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5OiB1cGRhdGUgYXJiaXRy
YXJ5IGxpbWl0cyB0byB3aGF0IGJyb3dzZXJzIHVzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
NDI1NzQxMj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0NTAxMTU0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9X
ZWJBc3NlbWJseS9kZXNpZ24vaXNzdWVzLzExMzggZGlzY3Vzc2VzIHRoZQorICAgICAgICBhcmJp
dHJhcnkgZnVuY3Rpb24gc2l6ZSBsaW1pdCwgd2hpY2ggaXQgdHVybnMgb3V0IENocm9tZSBhbmQK
KyAgICAgICAgRmlyZWZveCBkaWRuJ3QgZW5mb3JjZS4gV2UgZGlkbid0IHVzZSBpdCBiZWNhdXNl
IGl0IHdhcworICAgICAgICByaWRpY3Vsb3VzbHkgbG93IGFuZCBhY3R1YWwgcHJvZ3JhbXMgcmFu
IGludG8gdGhhdCBsaW1pdCAoYnVtbWVyCisgICAgICAgIGZvciBFZGdlIHdoaWNoIGp1c3Qgc2hp
cHBlZCBpdC4uLikuIE5vdyB0aGF0IHdlIGFncmVlIG9uIGEgaGlnaAorICAgICAgICBhcmJpdHJh
cnkgcHJvZ3JhbSBsaW1pdCwgbGV0J3MgdXBkYXRlIGl0ISBXaGlsZSBJJ20gZG9pbmcgdGhpcwor
ICAgICAgICB0aGVyZSBhcmUgYSBmZXcgb3RoZXIgc3BvdHMgdGhhdCBJIHBvbGlzaGVkIHRvIHVz
ZSBDaGVja2VkIG9yCisgICAgICAgIGJldHRlciBjaGVjayBsaW1pdHMgb3ZlcmFsbC4KKworICAg
ICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpC
M0lSR2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0LmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6U2VnbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiB3YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxD
b250ZXh0Pjo6cGFyc2UpOgorICAgICAgICAqIHdhc20vV2FzbUluc3RhbmNlLmNwcDoKKyAgICAg
ICAgKiB3YXNtL1dhc21MaW1pdHMuaDoKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNb2R1bGVQYXJzZXI6OnBhcnNlR2xvYmFsKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6TW9kdWxlUGFyc2VyOjpwYXJzZUNvZGUpOgorICAgICAgICAoSlND
OjpXYXNtOjpNb2R1bGVQYXJzZXI6OnBhcnNlRGF0YSk6CisgICAgICAgICogd2FzbS9XYXNtU2ln
bmF0dXJlLmg6CisgICAgICAgIChKU0M6Oldhc206OlNpZ25hdHVyZTo6YWxsb2NhdGVkU2l6ZSk6
CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJs
ZTo6VGFibGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVRhYmxlOjpKU1dlYkFzc2VtYmx5VGFibGUpOgorICAg
ICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6Omdyb3cpOgorCiAyMDE3LTEwLTI2ICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIy
MjYwMSk6IFdlIGZhaWwgdG8gcHJvcGVybHkgYmFja3RyYWNrIGludG8gYSBzdWIgcGF0dGVybiBv
ZiBhIHBhcmVudGhlc2lzIHdpdGggbm9uLXplcm8gbWluaW11bQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDQ4MjkyZmMuLjQxN2Qx
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHAKQEAgLTUxMSw3ICs1MTEsOCBAQCB2b2lkIEIzSVJHZW5lcmF0b3I6Omluc2VydENvbnN0
YW50cygpCiAKIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkTG9jYWwoVHlwZSB0eXBlLCB1aW50MzJf
dCBjb3VudCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIFdBU01fQ09NUElMRV9GQUlMX0lGKCFt
X2xvY2Fscy50cnlSZXNlcnZlQ2FwYWNpdHkobV9sb2NhbHMuc2l6ZSgpICsgY291bnQpLCAiY2Fu
J3QgYWxsb2NhdGUgbWVtb3J5IGZvciAiLCBtX2xvY2Fscy5zaXplKCkgKyBjb3VudCwgIiBsb2Nh
bHMiKTsKKyAgICBzaXplX3QgdG90YWxCeXRlcyA9IG1fbG9jYWxzLnNpemUoKSArIGNvdW50Owor
ICAgIFdBU01fQ09NUElMRV9GQUlMX0lGKChzdGF0aWNfY2FzdDx1aW50MzJfdD4odG90YWxCeXRl
cykgPCBjb3VudCkgfHwgIW1fbG9jYWxzLnRyeVJlc2VydmVDYXBhY2l0eSh0b3RhbEJ5dGVzKSwg
ImNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgIiwgdG90YWxCeXRlcywgIiBsb2NhbHMiKTsKIAog
ICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFZhcmlh
YmxlKiBsb2NhbCA9IG1fcHJvYy5hZGRWYXJpYWJsZSh0b0IzVHlwZSh0eXBlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCmluZGV4IGUwNmU3NzYuLmQzOTdjNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCkBAIC0zNiw3ICsz
NiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBTZWdtZW50KiBTZWdt
ZW50OjpjcmVhdGUoSTMySW5pdEV4cHIgb2Zmc2V0LCB1aW50MzJfdCBzaXplSW5CeXRlcykKIHsK
LSAgICBhdXRvIGFsbG9jYXRlZCA9IHRyeUZhc3RDYWxsb2Moc2l6ZW9mKFNlZ21lbnQpICsgc2l6
ZUluQnl0ZXMsIDEpOworICAgIHNpemVfdCB0b3RhbEJ5dGVzID0gc2l6ZW9mKFNlZ21lbnQpICsg
c2l6ZUluQnl0ZXM7CisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b3RhbEJ5dGVzKSA8
IHNpemVJbkJ5dGVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGFsbG9jYXRl
ZCA9IHRyeUZhc3RDYWxsb2ModG90YWxCeXRlcywgMSk7CiAgICAgU2VnbWVudCogc2VnbWVudDsK
ICAgICBpZiAoIWFsbG9jYXRlZC5nZXRWYWx1ZShzZWdtZW50KSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rp
b25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNl
ci5oCmluZGV4IDJjMjFiYWQuLjg3MzVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBhdXRvIEZ1
bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZSgpIC0+IFJlc3VsdAogCiAgICAgV0FTTV9QQVJT
RVJfRkFJTF9JRighbV9jb250ZXh0LmFkZEFyZ3VtZW50cyhtX3NpZ25hdHVyZSksICJjYW4ndCBh
ZGQgIiwgbV9zaWduYXR1cmUuYXJndW1lbnRDb3VudCgpLCAiIGFyZ3VtZW50cyB0byBGdW5jdGlv
biIpOwogICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGxvY2FsQ291bnQp
LCAiY2FuJ3QgZ2V0IGxvY2FsIGNvdW50Iik7Ci0gICAgV0FTTV9QQVJTRVJfRkFJTF9JRihsb2Nh
bENvdW50ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSwgIkZ1bmN0aW9u
IHNlY3Rpb24ncyBsb2NhbCBjb3VudCBpcyB0b28gYmlnICIsIGxvY2FsQ291bnQpOworICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYobG9jYWxDb3VudCA+IG1heEZ1bmN0aW9uTG9jYWxzLCAiRnVuY3Rp
b24gc2VjdGlvbidzIGxvY2FsIGNvdW50IGlzIHRvbyBiaWcgIiwgbG9jYWxDb3VudCwgIiBtYXhp
bXVtICIsIG1heEZ1bmN0aW9uTG9jYWxzKTsKIAogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkg
PCBsb2NhbENvdW50OyArK2kpIHsKICAgICAgICAgdWludDMyX3QgbnVtYmVyT2ZMb2NhbHM7CiAg
ICAgICAgIFR5cGUgdHlwZU9mTG9jYWw7CiAKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRigh
cGFyc2VWYXJVSW50MzIobnVtYmVyT2ZMb2NhbHMpLCAiY2FuJ3QgZ2V0IEZ1bmN0aW9uJ3MgbnVt
YmVyIG9mIGxvY2FscyBpbiBncm91cCAiLCBpKTsKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9J
RihudW1iZXJPZkxvY2FscyA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCks
ICJGdW5jdGlvbiBzZWN0aW9uJ3MgIiwgaSwgInRoIGxvY2FsIGdyb3VwIGNvdW50IGlzIHRvbyBi
aWcgIiwgbnVtYmVyT2ZMb2NhbHMpOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKG51bWJl
ck9mTG9jYWxzID4gbWF4RnVuY3Rpb25Mb2NhbHMsICJGdW5jdGlvbiBzZWN0aW9uJ3MgIiwgaSwg
InRoIGxvY2FsIGdyb3VwIGNvdW50IGlzIHRvbyBiaWcgIiwgbnVtYmVyT2ZMb2NhbHMsICIgbWF4
aW11bSAiLCBtYXhGdW5jdGlvbkxvY2Fscyk7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYo
IXBhcnNlVmFsdWVUeXBlKHR5cGVPZkxvY2FsKSwgImNhbid0IGdldCBGdW5jdGlvbiBsb2NhbCdz
IHR5cGUgaW4gZ3JvdXAgIiwgaSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFk
ZExvY2FsKHR5cGVPZkxvY2FsLCBudW1iZXJPZkxvY2FscykpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwCmluZGV4IGE5Njg1Y2UuLjUwYTZkNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcApAQCAtMjYs
MTcgKzI2LDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNl
LmgiCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJSZWdpc3Rlci5oIgog
I2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgotCi0jaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIFdhc20gewogCiBuYW1lc3BhY2Ugewogc2l6ZV90IGdsb2JhbE1lbW9yeUJ5
dGVTaXplKE1vZHVsZSYgbW9kdWxlKQogewotICAgIHJldHVybiBtb2R1bGUubW9kdWxlSW5mb3Jt
YXRpb24oKS5nbG9iYWxzLnNpemUoKSAqIHNpemVvZihSZWdpc3Rlcik7CisgICAgcmV0dXJuIChD
aGVja2VkPHNpemVfdD4obW9kdWxlLm1vZHVsZUluZm9ybWF0aW9uKCkuZ2xvYmFscy5zaXplKCkp
ICogc2l6ZW9mKFJlZ2lzdGVyKSkudW5zYWZlR2V0KCk7CiB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MaW1pdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21MaW1pdHMuaAppbmRleCA5MmE2ZTg1Li5jNmY2Y2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTGltaXRzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUxpbWl0cy5oCkBAIC00Niw2ICs0Niw4IEBAIGNvbnN0ZXhw
ciBzaXplX3QgbWF4RGF0YVNlZ21lbnRzID0gMTAwMDAwOwogCiBjb25zdGV4cHIgc2l6ZV90IG1h
eFN0cmluZ1NpemUgPSAxMDAwMDA7CiBjb25zdGV4cHIgc2l6ZV90IG1heE1vZHVsZVNpemUgPSAx
MDI0ICogMTAyNCAqIDEwMjQ7Citjb25zdGV4cHIgc2l6ZV90IG1heEZ1bmN0aW9uU2l6ZSA9IDc2
NTQzMjE7Citjb25zdGV4cHIgc2l6ZV90IG1heEZ1bmN0aW9uTG9jYWxzID0gNTAwMDA7CiBjb25z
dGV4cHIgc2l6ZV90IG1heEZ1bmN0aW9uUGFyYW1zID0gMTAwMDsKIAogY29uc3RleHByIHNpemVf
dCBtYXhUYWJsZUVudHJpZXMgPSAxMDAwMDAwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKaW5kZXggNmQ0NGFjMi4uMGM3M2QzZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKQEAgLTM0
MCw3ICszNDAsOCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgdWludDMyX3QgZ2xvYmFsQ291bnQ7CiAgICAgV0FTTV9QQVJTRVJfRkFJTF9J
RighcGFyc2VWYXJVSW50MzIoZ2xvYmFsQ291bnQpLCAiY2FuJ3QgZ2V0IEdsb2JhbCBzZWN0aW9u
J3MgY291bnQiKTsKICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGdsb2JhbENvdW50ID4gbWF4R2xv
YmFscywgIkdsb2JhbCBzZWN0aW9uJ3MgY291bnQgaXMgdG9vIGJpZyAiLCBnbG9iYWxDb3VudCwg
IiBtYXhpbXVtICIsIG1heEdsb2JhbHMpOwotICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW1faW5m
by0+Z2xvYmFscy50cnlSZXNlcnZlQ2FwYWNpdHkoZ2xvYmFsQ291bnQgKyBtX2luZm8tPmZpcnN0
SW50ZXJuYWxHbG9iYWwpLCAiY2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciAiLCBnbG9iYWxDb3Vu
dCArIG1faW5mby0+Zmlyc3RJbnRlcm5hbEdsb2JhbCwgIiBnbG9iYWxzIik7CisgICAgc2l6ZV90
IHRvdGFsQnl0ZXMgPSBnbG9iYWxDb3VudCArIG1faW5mby0+Zmlyc3RJbnRlcm5hbEdsb2JhbDsK
KyAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKChzdGF0aWNfY2FzdDx1aW50MzJfdD4odG90YWxCeXRl
cykgPCBnbG9iYWxDb3VudCkgfHwgIW1faW5mby0+Z2xvYmFscy50cnlSZXNlcnZlQ2FwYWNpdHko
dG90YWxCeXRlcyksICJjYW4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yICIsIHRvdGFsQnl0ZXMsICIg
Z2xvYmFscyIpOwogCiAgICAgZm9yICh1aW50MzJfdCBnbG9iYWxJbmRleCA9IDA7IGdsb2JhbElu
ZGV4IDwgZ2xvYmFsQ291bnQ7ICsrZ2xvYmFsSW5kZXgpIHsKICAgICAgICAgR2xvYmFsIGdsb2Jh
bDsKQEAgLTQ3NCw3ICs0NzUsNyBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VDb2RlKCkgLT4g
UGFydGlhbFJlc3VsdAogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQz
MihmdW5jdGlvblNpemUpLCAiY2FuJ3QgZ2V0ICIsIGksICJ0aCBDb2RlIGZ1bmN0aW9uJ3Mgc2l6
ZSIpOwogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGZ1bmN0aW9uU2l6ZSA+IGxlbmd0aCgp
LCAiQ29kZSBmdW5jdGlvbidzIHNpemUgIiwgZnVuY3Rpb25TaXplLCAiIGV4Y2VlZHMgdGhlIG1v
ZHVsZSdzIHNpemUgIiwgbGVuZ3RoKCkpOwogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGZ1
bmN0aW9uU2l6ZSA+IGxlbmd0aCgpIC0gbV9vZmZzZXQsICJDb2RlIGZ1bmN0aW9uJ3Mgc2l6ZSAi
LCBmdW5jdGlvblNpemUsICIgZXhjZWVkcyB0aGUgbW9kdWxlJ3MgcmVtYWluaW5nIHNpemUiLCBs
ZW5ndGgoKSAtIG1fb2Zmc2V0KTsKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihmdW5jdGlv
blNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCksICJDb2RlIGZ1bmN0
aW9uJ3Mgc2l6ZSAiLCBmdW5jdGlvblNpemUsICIgaXMgdG9vIGJpZyIpOworICAgICAgICBXQVNN
X1BBUlNFUl9GQUlMX0lGKGZ1bmN0aW9uU2l6ZSA+IG1heEZ1bmN0aW9uU2l6ZSwgIkNvZGUgZnVu
Y3Rpb24ncyBzaXplICIsIGZ1bmN0aW9uU2l6ZSwgIiBpcyB0b28gYmlnIik7CiAKICAgICAgICAg
bV9pbmZvLT5mdW5jdGlvbkxvY2F0aW9uSW5CaW5hcnlbaV0uc3RhcnQgPSBtX29mZnNldDsKICAg
ICAgICAgbV9pbmZvLT5mdW5jdGlvbkxvY2F0aW9uSW5CaW5hcnlbaV0uZW5kID0gbV9vZmZzZXQg
KyBmdW5jdGlvblNpemU7CkBAIC01NzMsNyArNTc0LDcgQEAgYXV0byBNb2R1bGVQYXJzZXI6OnBh
cnNlRGF0YSgpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9G
QUlMUyhwYXJzZUluaXRFeHByKGluaXRPcGNvZGUsIGluaXRFeHByQml0cywgaW5pdEV4cHJUeXBl
KSk7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoaW5pdEV4cHJUeXBlICE9IEkzMiwgc2Vn
bWVudE51bWJlciwgInRoIERhdGEgc2VnbWVudCdzIGluaXRfZXhwciBtdXN0IHByb2R1Y2UgYW4g
aTMyIik7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGRhdGFC
eXRlTGVuZ3RoKSwgImNhbid0IGdldCAiLCBzZWdtZW50TnVtYmVyLCAidGggRGF0YSBzZWdtZW50
J3MgZGF0YSBieXRlIGxlbmd0aCIpOwotICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGRhdGFC
eXRlTGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSwgc2VnbWVu
dE51bWJlciwgInRoIERhdGEgc2VnbWVudCdzIGRhdGEgYnl0ZSBsZW5ndGggaXMgdG9vIGJpZyAi
LCBkYXRhQnl0ZUxlbmd0aCk7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoZGF0YUJ5dGVM
ZW5ndGggPiBtYXhNb2R1bGVTaXplLCBzZWdtZW50TnVtYmVyLCAidGggRGF0YSBzZWdtZW50J3Mg
ZGF0YSBieXRlIGxlbmd0aCBpcyB0b28gYmlnICIsIGRhdGFCeXRlTGVuZ3RoLCAiIG1heGltdW0g
IiwgbWF4TW9kdWxlU2l6ZSk7CiAKICAgICAgICAgU2VnbWVudCogc2VnbWVudCA9IFNlZ21lbnQ6
OmNyZWF0ZShtYWtlSTMySW5pdEV4cHIoaW5pdE9wY29kZSwgaW5pdEV4cHJCaXRzKSwgZGF0YUJ5
dGVMZW5ndGgpOwogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFzZWdtZW50LCAiY2FuJ3Qg
YWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgIiwgc2VnbWVudE51bWJlciwgInRoIERhdGEgc2Vn
bWVudCBvZiBzaXplICIsIGRhdGFCeXRlTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21TaWduYXR1cmUuaAppbmRleCBhYWNlZDVkLi45ZjQ5Y2NiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2lnbmF0dXJlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiV2FzbU9wcy5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8Y3N0cmluZz4K
KyNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgpAQCAtNjQsOSArNjUsOSBAQCBjbGFzcyBTaWduYXR1cmUgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8U2lnbmF0dXJlPiB7CiAgICAgICAgIHJldHVybiBpICsgcmVpbnRlcnBy
ZXRfY2FzdDxUeXBlKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBzaXplb2YoU2ln
bmF0dXJlKSk7CiAgICAgfQogICAgIFR5cGUqIHN0b3JhZ2UoU2lnbmF0dXJlQXJnQ291bnQgaSkg
Y29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxTaWduYXR1cmUqPih0aGlzKS0+c3RvcmFnZShpKTsg
fQotICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGVkU2l6ZShTaWduYXR1cmVBcmdDb3VudCBhcmdD
b3VudCkKKyAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRlZFNpemUoQ2hlY2tlZDxTaWduYXR1cmVB
cmdDb3VudD4gYXJnQ291bnQpCiAgICAgewotICAgICAgICByZXR1cm4gc2l6ZW9mKFNpZ25hdHVy
ZSkgKyAoc19yZXRDb3VudCArIGFyZ0NvdW50KSAqIHNpemVvZihUeXBlKTsKKyAgICAgICAgcmV0
dXJuIChzaXplb2YoU2lnbmF0dXJlKSArIChzX3JldENvdW50ICsgYXJnQ291bnQpICogc2l6ZW9m
KFR5cGUpKS51bnNhZmVHZXQoKTsKICAgICB9CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtVGFibGUuY3BwCmluZGV4IDI0Njc0ZTIuLjhlZWVlMWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcApAQCAtNTQsOCArNTQsOCBAQCBUYWJsZTo6
VGFibGUodWludDMyX3QgaW5pdGlhbCwgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4aW11bSkK
IAogICAgIC8vIEZJWE1FOiBJdCBtaWdodCBiZSB3b3J0aCB0cnlpbmcgdG8gcHJlLWFsbG9jYXRl
IG1heGltdW0gaGVyZS4gVGhlIHNwZWMgcmVjb21tZW5kcyBkb2luZyBzby4KICAgICAvLyBCdXQg
Zm9yIG5vdywgd2UncmUgbm90IGRvaW5nIHRoYXQuCi0gICAgbV9mdW5jdGlvbnMgPSBNYWxsb2NQ
dHI8V2FzbTo6Q2FsbGFibGVGdW5jdGlvbj46Om1hbGxvYyhzaXplb2YoV2FzbTo6Q2FsbGFibGVG
dW5jdGlvbikgKiBzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUoKSkpOwotICAgIG1faW5zdGFuY2Vz
ID0gTWFsbG9jUHRyPEluc3RhbmNlKj46Om1hbGxvYyhzaXplb2YoSW5zdGFuY2UqKSAqIHN0YXRp
Y19jYXN0PHNpemVfdD4oc2l6ZSgpKSk7CisgICAgbV9mdW5jdGlvbnMgPSBNYWxsb2NQdHI8V2Fz
bTo6Q2FsbGFibGVGdW5jdGlvbj46Om1hbGxvYygoc2l6ZW9mKFdhc206OkNhbGxhYmxlRnVuY3Rp
b24pICogQ2hlY2tlZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKKyAgICBtX2luc3Rh
bmNlcyA9IE1hbGxvY1B0cjxJbnN0YW5jZSo+OjptYWxsb2MoKHNpemVvZihJbnN0YW5jZSopICog
Q2hlY2tlZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKICAgICBmb3IgKHVpbnQzMl90
IGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbmV3ICgmbV9mdW5jdGlvbnMuZ2V0
KClbaV0pIENhbGxhYmxlRnVuY3Rpb24oKTsKICAgICAgICAgQVNTRVJUKG1fZnVuY3Rpb25zLmdl
dCgpW2ldLnNpZ25hdHVyZUluZGV4ID09IFdhc206OlNpZ25hdHVyZTo6aW52YWxpZEluZGV4KTsg
Ly8gV2UgcmVseSBvbiB0aGlzIGluIGNvbXBpbGVkIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcAppbmRleCA0MDg1YWFj
Li40ZGU0Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlUYWJsZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYxLDcgKzYy
LDcgQEAgSlNXZWJBc3NlbWJseVRhYmxlOjpKU1dlYkFzc2VtYmx5VGFibGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPFdhc206OlQKIHsKICAgICAvLyBGSVhNRTogSXQgbWlnaHQg
YmUgd29ydGggdHJ5aW5nIHRvIHByZS1hbGxvY2F0ZSBtYXhpbXVtIGhlcmUuIFRoZSBzcGVjIHJl
Y29tbWVuZHMgZG9pbmcgc28uCiAgICAgLy8gQnV0IGZvciBub3csIHdlJ3JlIG5vdCBkb2luZyB0
aGF0LgotICAgIG1fanNGdW5jdGlvbnMgPSBNYWxsb2NQdHI8V3JpdGVCYXJyaWVyPEpTT2JqZWN0
Pj46Om1hbGxvYyhzaXplb2YoV3JpdGVCYXJyaWVyPEpTT2JqZWN0PikgKiBzdGF0aWNfY2FzdDxz
aXplX3Q+KHNpemUoKSkpOworICAgIG1fanNGdW5jdGlvbnMgPSBNYWxsb2NQdHI8V3JpdGVCYXJy
aWVyPEpTT2JqZWN0Pj46Om1hbGxvYygoc2l6ZW9mKFdyaXRlQmFycmllcjxKU09iamVjdD4pICog
Q2hlY2tlZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKICAgICBmb3IgKHVpbnQzMl90
IGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpCiAgICAgICAgIG5ldygmbV9qc0Z1bmN0aW9ucy5nZXQo
KVtpXSkgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PigpOwogfQpAQCAtMTAwLDcgKzEwMSw3IEBAIGJv
b2wgSlNXZWJBc3NlbWJseVRhYmxlOjpncm93KHVpbnQzMl90IGRlbHRhKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBzaXplX3QgbmV3U2l6ZSA9IGdyZXcudmFsdWUoKTsKLSAgICBtX2pz
RnVuY3Rpb25zLnJlYWxsb2Moc2l6ZW9mKFdyaXRlQmFycmllcjxKU09iamVjdD4pICogbmV3U2l6
ZSk7CisgICAgbV9qc0Z1bmN0aW9ucy5yZWFsbG9jKChzaXplb2YoV3JpdGVCYXJyaWVyPEpTT2Jq
ZWN0PikgKiBDaGVja2VkPHNpemVfdD4obmV3U2l6ZSkpLnVuc2FmZUdldCgpKTsKIAogICAgIGZv
ciAoc2l6ZV90IGkgPSBvbGRTaXplOyBpIDwgbmV3U2l6ZTsgKytpKQogICAgICAgICBuZXcgKCZt
X2pzRnVuY3Rpb25zLmdldCgpW2ldKSBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+KCk7Ci0tIAoyLjEw
LjEKCg==
</data>
<flag name="review"
          id="344683"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="344684"
          type_id="3"
          status="-"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325180</attachid>
            <date>2017-10-27 11:23:05 -0700</date>
            <delta_ts>2017-10-27 11:42:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-update-arbitrary-limits-to-what-browsers.patch</filename>
            <type>text/plain</type>
            <size>14248</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBkMWZhZWYxY2ViZGQ2NGMxMmJhNWZmYzc4ODNjNDQ4NjcxOTU4N2EzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDI3IE9jdCAyMDE3IDEwOjQ5OjA1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IHVwZGF0ZSBhcmJpdHJhcnkgbGltaXRzIHRvIHdoYXQgYnJvd3NlcnMgdXNlCgotLS0K
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgMzgg
KysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIz
SVJHZW5lcmF0b3IuY3BwICAgfCAgNSArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Gb3JtYXQuY3BwICAgICAgICAgIHwgIDggKysrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21GdW5jdGlvblBhcnNlci5oICAgIHwgIDQgKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwICAgICAgICB8ICA3ICsrLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MaW1pdHMuaCAgICAgICAgICAgIHwgIDIgKysKIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwICAgIHwgIDcgKystLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oICAgICAgICAgfCAgNSArLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAgICAgICAgICAgIHwgIDQgKy0t
CiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwICB8ICA1
ICstLQogMTAgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNWU1NTBlZi4uOTkzMmVhZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMTAtMjcgIEpGIEJhc3RpZW4g
IDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5OiB1cGRhdGUgYXJi
aXRyYXJ5IGxpbWl0cyB0byB3aGF0IGJyb3dzZXJzIHVzZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zNDI1NzQxMj4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0NTAxMTU0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9X
ZWJBc3NlbWJseS9kZXNpZ24vaXNzdWVzLzExMzggZGlzY3Vzc2VzIHRoZQorICAgICAgICBhcmJp
dHJhcnkgZnVuY3Rpb24gc2l6ZSBsaW1pdCwgd2hpY2ggaXQgdHVybnMgb3V0IENocm9tZSBhbmQK
KyAgICAgICAgRmlyZWZveCBkaWRuJ3QgZW5mb3JjZS4gV2UgZGlkbid0IHVzZSBpdCBiZWNhdXNl
IGl0IHdhcworICAgICAgICByaWRpY3Vsb3VzbHkgbG93IGFuZCBhY3R1YWwgcHJvZ3JhbXMgcmFu
IGludG8gdGhhdCBsaW1pdCAoYnVtbWVyCisgICAgICAgIGZvciBFZGdlIHdoaWNoIGp1c3Qgc2hp
cHBlZCBpdC4uLikuIE5vdyB0aGF0IHdlIGFncmVlIG9uIGEgaGlnaAorICAgICAgICBhcmJpdHJh
cnkgcHJvZ3JhbSBsaW1pdCwgbGV0J3MgdXBkYXRlIGl0ISBXaGlsZSBJJ20gZG9pbmcgdGhpcwor
ICAgICAgICB0aGVyZSBhcmUgYSBmZXcgb3RoZXIgc3BvdHMgdGhhdCBJIHBvbGlzaGVkIHRvIHVz
ZSBDaGVja2VkIG9yCisgICAgICAgIGJldHRlciBjaGVjayBsaW1pdHMgb3ZlcmFsbC4KKworICAg
ICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpC
M0lSR2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0LmNwcDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6U2VnbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiB3YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxD
b250ZXh0Pjo6cGFyc2UpOgorICAgICAgICAqIHdhc20vV2FzbUluc3RhbmNlLmNwcDoKKyAgICAg
ICAgKiB3YXNtL1dhc21MaW1pdHMuaDoKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNb2R1bGVQYXJzZXI6OnBhcnNlR2xvYmFsKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6TW9kdWxlUGFyc2VyOjpwYXJzZUNvZGUpOgorICAgICAgICAoSlND
OjpXYXNtOjpNb2R1bGVQYXJzZXI6OnBhcnNlRGF0YSk6CisgICAgICAgICogd2FzbS9XYXNtU2ln
bmF0dXJlLmg6CisgICAgICAgIChKU0M6Oldhc206OlNpZ25hdHVyZTo6YWxsb2NhdGVkU2l6ZSk6
CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJs
ZTo6VGFibGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVRhYmxlOjpKU1dlYkFzc2VtYmx5VGFibGUpOgorICAg
ICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6Omdyb3cpOgorCiAyMDE3LTEwLTI2ICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIy
MjYwMSk6IFdlIGZhaWwgdG8gcHJvcGVybHkgYmFja3RyYWNrIGludG8gYSBzdWIgcGF0dGVybiBv
ZiBhIHBhcmVudGhlc2lzIHdpdGggbm9uLXplcm8gbWluaW11bQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDQ4MjkyZmMuLmZlYWMx
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHAKQEAgLTUxMSw3ICs1MTEsMTAgQEAgdm9pZCBCM0lSR2VuZXJhdG9yOjppbnNlcnRDb25z
dGFudHMoKQogCiBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMy
X3QgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICBXQVNNX0NPTVBJTEVfRkFJTF9JRigh
bV9sb2NhbHMudHJ5UmVzZXJ2ZUNhcGFjaXR5KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KSwgImNh
bid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgIiwgbV9sb2NhbHMuc2l6ZSgpICsgY291bnQsICIgbG9j
YWxzIik7CisgICAgQ2hlY2tlZDx1aW50MzJfdCwgUmVjb3JkT3ZlcmZsb3c+IHRvdGFsQnl0ZXND
aGVja2VkID0gY291bnQ7CisgICAgdG90YWxCeXRlc0NoZWNrZWQgKz0gbV9sb2NhbHMuc2l6ZSgp
OworICAgIHVpbnQzMl90IHRvdGFsQnl0ZXM7CisgICAgV0FTTV9DT01QSUxFX0ZBSUxfSUYoKHRv
dGFsQnl0ZXNDaGVja2VkLnNhZmVHZXQodG90YWxCeXRlcykgPT0gQ2hlY2tlZFN0YXRlOjpEaWRP
dmVyZmxvdykgfHwgIW1fbG9jYWxzLnRyeVJlc2VydmVDYXBhY2l0eSh0b3RhbEJ5dGVzKSwgImNh
bid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgIiwgdG90YWxCeXRlcywgIiBsb2NhbHMiKTsKIAogICAg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFZhcmlhYmxl
KiBsb2NhbCA9IG1fcHJvYy5hZGRWYXJpYWJsZSh0b0IzVHlwZSh0eXBlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCmluZGV4IGUwNmU3NzYuLmZkYzVjOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCkBAIC0zMCwxMyArMzAs
MTkgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJXYXNtTWVtb3J5Lmgi
CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogU2VnbWVudCog
U2VnbWVudDo6Y3JlYXRlKEkzMkluaXRFeHByIG9mZnNldCwgdWludDMyX3Qgc2l6ZUluQnl0ZXMp
CiB7Ci0gICAgYXV0byBhbGxvY2F0ZWQgPSB0cnlGYXN0Q2FsbG9jKHNpemVvZihTZWdtZW50KSAr
IHNpemVJbkJ5dGVzLCAxKTsKKyAgICBDaGVja2VkPHVpbnQzMl90LCBSZWNvcmRPdmVyZmxvdz4g
dG90YWxCeXRlc0NoZWNrZWQgPSBzaXplSW5CeXRlczsKKyAgICB0b3RhbEJ5dGVzQ2hlY2tlZCAr
PSBzaXplb2YoU2VnbWVudCk7CisgICAgdWludDMyX3QgdG90YWxCeXRlczsKKyAgICBpZiAodG90
YWxCeXRlc0NoZWNrZWQuc2FmZUdldCh0b3RhbEJ5dGVzKSA9PSBDaGVja2VkU3RhdGU6OkRpZE92
ZXJmbG93KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGFsbG9jYXRlZCA9IHRy
eUZhc3RDYWxsb2ModG90YWxCeXRlcywgMSk7CiAgICAgU2VnbWVudCogc2VnbWVudDsKICAgICBp
ZiAoIWFsbG9jYXRlZC5nZXRWYWx1ZShzZWdtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJz
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCmlu
ZGV4IDJjMjFiYWQuLjg3MzVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21GdW5jdGlvblBhcnNlci5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBhdXRvIEZ1bmN0aW9u
UGFyc2VyPENvbnRleHQ+OjpwYXJzZSgpIC0+IFJlc3VsdAogCiAgICAgV0FTTV9QQVJTRVJfRkFJ
TF9JRighbV9jb250ZXh0LmFkZEFyZ3VtZW50cyhtX3NpZ25hdHVyZSksICJjYW4ndCBhZGQgIiwg
bV9zaWduYXR1cmUuYXJndW1lbnRDb3VudCgpLCAiIGFyZ3VtZW50cyB0byBGdW5jdGlvbiIpOwog
ICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGxvY2FsQ291bnQpLCAiY2Fu
J3QgZ2V0IGxvY2FsIGNvdW50Iik7Ci0gICAgV0FTTV9QQVJTRVJfRkFJTF9JRihsb2NhbENvdW50
ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSwgIkZ1bmN0aW9uIHNlY3Rp
b24ncyBsb2NhbCBjb3VudCBpcyB0b28gYmlnICIsIGxvY2FsQ291bnQpOworICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYobG9jYWxDb3VudCA+IG1heEZ1bmN0aW9uTG9jYWxzLCAiRnVuY3Rpb24gc2Vj
dGlvbidzIGxvY2FsIGNvdW50IGlzIHRvbyBiaWcgIiwgbG9jYWxDb3VudCwgIiBtYXhpbXVtICIs
IG1heEZ1bmN0aW9uTG9jYWxzKTsKIAogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBsb2Nh
bENvdW50OyArK2kpIHsKICAgICAgICAgdWludDMyX3QgbnVtYmVyT2ZMb2NhbHM7CiAgICAgICAg
IFR5cGUgdHlwZU9mTG9jYWw7CiAKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VW
YXJVSW50MzIobnVtYmVyT2ZMb2NhbHMpLCAiY2FuJ3QgZ2V0IEZ1bmN0aW9uJ3MgbnVtYmVyIG9m
IGxvY2FscyBpbiBncm91cCAiLCBpKTsKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihudW1i
ZXJPZkxvY2FscyA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCksICJGdW5j
dGlvbiBzZWN0aW9uJ3MgIiwgaSwgInRoIGxvY2FsIGdyb3VwIGNvdW50IGlzIHRvbyBiaWcgIiwg
bnVtYmVyT2ZMb2NhbHMpOworICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKG51bWJlck9mTG9j
YWxzID4gbWF4RnVuY3Rpb25Mb2NhbHMsICJGdW5jdGlvbiBzZWN0aW9uJ3MgIiwgaSwgInRoIGxv
Y2FsIGdyb3VwIGNvdW50IGlzIHRvbyBiaWcgIiwgbnVtYmVyT2ZMb2NhbHMsICIgbWF4aW11bSAi
LCBtYXhGdW5jdGlvbkxvY2Fscyk7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNl
VmFsdWVUeXBlKHR5cGVPZkxvY2FsKSwgImNhbid0IGdldCBGdW5jdGlvbiBsb2NhbCdzIHR5cGUg
aW4gZ3JvdXAgIiwgaSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZExvY2Fs
KHR5cGVPZkxvY2FsLCBudW1iZXJPZkxvY2FscykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwCmluZGV4IGE5Njg1Y2UuLjUwYTZkNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcApAQCAtMjYsMTcgKzI2
LDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCiAK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNpbmNsdWRlICJSZWdpc3Rlci5oIgogI2luY2x1
ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQor
I2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewogCiBuYW1lc3BhY2Ugewogc2l6ZV90IGdsb2JhbE1lbW9yeUJ5dGVTaXpl
KE1vZHVsZSYgbW9kdWxlKQogewotICAgIHJldHVybiBtb2R1bGUubW9kdWxlSW5mb3JtYXRpb24o
KS5nbG9iYWxzLnNpemUoKSAqIHNpemVvZihSZWdpc3Rlcik7CisgICAgcmV0dXJuIChDaGVja2Vk
PHNpemVfdD4obW9kdWxlLm1vZHVsZUluZm9ybWF0aW9uKCkuZ2xvYmFscy5zaXplKCkpICogc2l6
ZW9mKFJlZ2lzdGVyKSkudW5zYWZlR2V0KCk7CiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MaW1pdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MaW1pdHMuaAppbmRleCA5MmE2ZTg1Li5jNmY2Y2RjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTGltaXRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxpbWl0cy5oCkBAIC00Niw2ICs0Niw4IEBAIGNvbnN0ZXhwciBzaXpl
X3QgbWF4RGF0YVNlZ21lbnRzID0gMTAwMDAwOwogCiBjb25zdGV4cHIgc2l6ZV90IG1heFN0cmlu
Z1NpemUgPSAxMDAwMDA7CiBjb25zdGV4cHIgc2l6ZV90IG1heE1vZHVsZVNpemUgPSAxMDI0ICog
MTAyNCAqIDEwMjQ7Citjb25zdGV4cHIgc2l6ZV90IG1heEZ1bmN0aW9uU2l6ZSA9IDc2NTQzMjE7
Citjb25zdGV4cHIgc2l6ZV90IG1heEZ1bmN0aW9uTG9jYWxzID0gNTAwMDA7CiBjb25zdGV4cHIg
c2l6ZV90IG1heEZ1bmN0aW9uUGFyYW1zID0gMTAwMDsKIAogY29uc3RleHByIHNpemVfdCBtYXhU
YWJsZUVudHJpZXMgPSAxMDAwMDAwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1vZHVsZVBhcnNlci5jcHAKaW5kZXggNmQ0NGFjMi4uMGM3M2QzZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZVBhcnNlci5jcHAKQEAgLTM0MCw3ICsz
NDAsOCBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFsUmVzdWx0
CiAgICAgdWludDMyX3QgZ2xvYmFsQ291bnQ7CiAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFy
c2VWYXJVSW50MzIoZ2xvYmFsQ291bnQpLCAiY2FuJ3QgZ2V0IEdsb2JhbCBzZWN0aW9uJ3MgY291
bnQiKTsKICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGdsb2JhbENvdW50ID4gbWF4R2xvYmFscywg
Ikdsb2JhbCBzZWN0aW9uJ3MgY291bnQgaXMgdG9vIGJpZyAiLCBnbG9iYWxDb3VudCwgIiBtYXhp
bXVtICIsIG1heEdsb2JhbHMpOwotICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW1faW5mby0+Z2xv
YmFscy50cnlSZXNlcnZlQ2FwYWNpdHkoZ2xvYmFsQ291bnQgKyBtX2luZm8tPmZpcnN0SW50ZXJu
YWxHbG9iYWwpLCAiY2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciAiLCBnbG9iYWxDb3VudCArIG1f
aW5mby0+Zmlyc3RJbnRlcm5hbEdsb2JhbCwgIiBnbG9iYWxzIik7CisgICAgc2l6ZV90IHRvdGFs
Qnl0ZXMgPSBnbG9iYWxDb3VudCArIG1faW5mby0+Zmlyc3RJbnRlcm5hbEdsb2JhbDsKKyAgICBX
QVNNX1BBUlNFUl9GQUlMX0lGKChzdGF0aWNfY2FzdDx1aW50MzJfdD4odG90YWxCeXRlcykgPCBn
bG9iYWxDb3VudCkgfHwgIW1faW5mby0+Z2xvYmFscy50cnlSZXNlcnZlQ2FwYWNpdHkodG90YWxC
eXRlcyksICJjYW4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yICIsIHRvdGFsQnl0ZXMsICIgZ2xvYmFs
cyIpOwogCiAgICAgZm9yICh1aW50MzJfdCBnbG9iYWxJbmRleCA9IDA7IGdsb2JhbEluZGV4IDwg
Z2xvYmFsQ291bnQ7ICsrZ2xvYmFsSW5kZXgpIHsKICAgICAgICAgR2xvYmFsIGdsb2JhbDsKQEAg
LTQ3NCw3ICs0NzUsNyBAQCBhdXRvIE1vZHVsZVBhcnNlcjo6cGFyc2VDb2RlKCkgLT4gUGFydGlh
bFJlc3VsdAogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihmdW5j
dGlvblNpemUpLCAiY2FuJ3QgZ2V0ICIsIGksICJ0aCBDb2RlIGZ1bmN0aW9uJ3Mgc2l6ZSIpOwog
ICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGZ1bmN0aW9uU2l6ZSA+IGxlbmd0aCgpLCAiQ29k
ZSBmdW5jdGlvbidzIHNpemUgIiwgZnVuY3Rpb25TaXplLCAiIGV4Y2VlZHMgdGhlIG1vZHVsZSdz
IHNpemUgIiwgbGVuZ3RoKCkpOwogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGZ1bmN0aW9u
U2l6ZSA+IGxlbmd0aCgpIC0gbV9vZmZzZXQsICJDb2RlIGZ1bmN0aW9uJ3Mgc2l6ZSAiLCBmdW5j
dGlvblNpemUsICIgZXhjZWVkcyB0aGUgbW9kdWxlJ3MgcmVtYWluaW5nIHNpemUiLCBsZW5ndGgo
KSAtIG1fb2Zmc2V0KTsKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihmdW5jdGlvblNpemUg
PiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCksICJDb2RlIGZ1bmN0aW9uJ3Mg
c2l6ZSAiLCBmdW5jdGlvblNpemUsICIgaXMgdG9vIGJpZyIpOworICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKGZ1bmN0aW9uU2l6ZSA+IG1heEZ1bmN0aW9uU2l6ZSwgIkNvZGUgZnVuY3Rpb24n
cyBzaXplICIsIGZ1bmN0aW9uU2l6ZSwgIiBpcyB0b28gYmlnIik7CiAKICAgICAgICAgbV9pbmZv
LT5mdW5jdGlvbkxvY2F0aW9uSW5CaW5hcnlbaV0uc3RhcnQgPSBtX29mZnNldDsKICAgICAgICAg
bV9pbmZvLT5mdW5jdGlvbkxvY2F0aW9uSW5CaW5hcnlbaV0uZW5kID0gbV9vZmZzZXQgKyBmdW5j
dGlvblNpemU7CkBAIC01NzMsNyArNTc0LDcgQEAgYXV0byBNb2R1bGVQYXJzZXI6OnBhcnNlRGF0
YSgpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9GQUlMUyhw
YXJzZUluaXRFeHByKGluaXRPcGNvZGUsIGluaXRFeHByQml0cywgaW5pdEV4cHJUeXBlKSk7CiAg
ICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoaW5pdEV4cHJUeXBlICE9IEkzMiwgc2VnbWVudE51
bWJlciwgInRoIERhdGEgc2VnbWVudCdzIGluaXRfZXhwciBtdXN0IHByb2R1Y2UgYW4gaTMyIik7
CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGRhdGFCeXRlTGVu
Z3RoKSwgImNhbid0IGdldCAiLCBzZWdtZW50TnVtYmVyLCAidGggRGF0YSBzZWdtZW50J3MgZGF0
YSBieXRlIGxlbmd0aCIpOwotICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGRhdGFCeXRlTGVu
Z3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSwgc2VnbWVudE51bWJl
ciwgInRoIERhdGEgc2VnbWVudCdzIGRhdGEgYnl0ZSBsZW5ndGggaXMgdG9vIGJpZyAiLCBkYXRh
Qnl0ZUxlbmd0aCk7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoZGF0YUJ5dGVMZW5ndGgg
PiBtYXhNb2R1bGVTaXplLCBzZWdtZW50TnVtYmVyLCAidGggRGF0YSBzZWdtZW50J3MgZGF0YSBi
eXRlIGxlbmd0aCBpcyB0b28gYmlnICIsIGRhdGFCeXRlTGVuZ3RoLCAiIG1heGltdW0gIiwgbWF4
TW9kdWxlU2l6ZSk7CiAKICAgICAgICAgU2VnbWVudCogc2VnbWVudCA9IFNlZ21lbnQ6OmNyZWF0
ZShtYWtlSTMySW5pdEV4cHIoaW5pdE9wY29kZSwgaW5pdEV4cHJCaXRzKSwgZGF0YUJ5dGVMZW5n
dGgpOwogICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFzZWdtZW50LCAiY2FuJ3QgYWxsb2Nh
dGUgZW5vdWdoIG1lbW9yeSBmb3IgIiwgc2VnbWVudE51bWJlciwgInRoIERhdGEgc2VnbWVudCBv
ZiBzaXplICIsIGRhdGFCeXRlTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21TaWduYXR1cmUuaAppbmRleCBhYWNlZDVkLi45ZjQ5Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2lnbmF0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
V2FzbU9wcy5oIgogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8Y3N0cmluZz4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgpAQCAtNjQsOSArNjUsOSBAQCBjbGFzcyBTaWduYXR1cmUgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8U2lnbmF0dXJlPiB7CiAgICAgICAgIHJldHVybiBpICsgcmVpbnRlcnByZXRfY2Fz
dDxUeXBlKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBzaXplb2YoU2lnbmF0dXJl
KSk7CiAgICAgfQogICAgIFR5cGUqIHN0b3JhZ2UoU2lnbmF0dXJlQXJnQ291bnQgaSkgY29uc3Qg
eyByZXR1cm4gY29uc3RfY2FzdDxTaWduYXR1cmUqPih0aGlzKS0+c3RvcmFnZShpKTsgfQotICAg
IHN0YXRpYyBzaXplX3QgYWxsb2NhdGVkU2l6ZShTaWduYXR1cmVBcmdDb3VudCBhcmdDb3VudCkK
KyAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRlZFNpemUoQ2hlY2tlZDxTaWduYXR1cmVBcmdDb3Vu
dD4gYXJnQ291bnQpCiAgICAgewotICAgICAgICByZXR1cm4gc2l6ZW9mKFNpZ25hdHVyZSkgKyAo
c19yZXRDb3VudCArIGFyZ0NvdW50KSAqIHNpemVvZihUeXBlKTsKKyAgICAgICAgcmV0dXJuIChz
aXplb2YoU2lnbmF0dXJlKSArIChzX3JldENvdW50ICsgYXJnQ291bnQpICogc2l6ZW9mKFR5cGUp
KS51bnNhZmVHZXQoKTsKICAgICB9CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtVGFibGUuY3BwCmluZGV4IDI0Njc0ZTIuLjhlZWVlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcApAQCAtNTQsOCArNTQsOCBAQCBUYWJsZTo6VGFibGUo
dWludDMyX3QgaW5pdGlhbCwgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbWF4aW11bSkKIAogICAg
IC8vIEZJWE1FOiBJdCBtaWdodCBiZSB3b3J0aCB0cnlpbmcgdG8gcHJlLWFsbG9jYXRlIG1heGlt
dW0gaGVyZS4gVGhlIHNwZWMgcmVjb21tZW5kcyBkb2luZyBzby4KICAgICAvLyBCdXQgZm9yIG5v
dywgd2UncmUgbm90IGRvaW5nIHRoYXQuCi0gICAgbV9mdW5jdGlvbnMgPSBNYWxsb2NQdHI8V2Fz
bTo6Q2FsbGFibGVGdW5jdGlvbj46Om1hbGxvYyhzaXplb2YoV2FzbTo6Q2FsbGFibGVGdW5jdGlv
bikgKiBzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUoKSkpOwotICAgIG1faW5zdGFuY2VzID0gTWFs
bG9jUHRyPEluc3RhbmNlKj46Om1hbGxvYyhzaXplb2YoSW5zdGFuY2UqKSAqIHN0YXRpY19jYXN0
PHNpemVfdD4oc2l6ZSgpKSk7CisgICAgbV9mdW5jdGlvbnMgPSBNYWxsb2NQdHI8V2FzbTo6Q2Fs
bGFibGVGdW5jdGlvbj46Om1hbGxvYygoc2l6ZW9mKFdhc206OkNhbGxhYmxlRnVuY3Rpb24pICog
Q2hlY2tlZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKKyAgICBtX2luc3RhbmNlcyA9
IE1hbGxvY1B0cjxJbnN0YW5jZSo+OjptYWxsb2MoKHNpemVvZihJbnN0YW5jZSopICogQ2hlY2tl
ZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbmV3ICgmbV9mdW5jdGlvbnMuZ2V0KClbaV0p
IENhbGxhYmxlRnVuY3Rpb24oKTsKICAgICAgICAgQVNTRVJUKG1fZnVuY3Rpb25zLmdldCgpW2ld
LnNpZ25hdHVyZUluZGV4ID09IFdhc206OlNpZ25hdHVyZTo6aW52YWxpZEluZGV4KTsgLy8gV2Ug
cmVseSBvbiB0aGlzIGluIGNvbXBpbGVkIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcAppbmRleCA0MDg1YWFjLi40ZGU0
Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlUYWJsZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCIKKyNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYxLDcgKzYyLDcgQEAg
SlNXZWJBc3NlbWJseVRhYmxlOjpKU1dlYkFzc2VtYmx5VGFibGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmPFdhc206OlQKIHsKICAgICAvLyBGSVhNRTogSXQgbWlnaHQgYmUgd29y
dGggdHJ5aW5nIHRvIHByZS1hbGxvY2F0ZSBtYXhpbXVtIGhlcmUuIFRoZSBzcGVjIHJlY29tbWVu
ZHMgZG9pbmcgc28uCiAgICAgLy8gQnV0IGZvciBub3csIHdlJ3JlIG5vdCBkb2luZyB0aGF0Lgot
ICAgIG1fanNGdW5jdGlvbnMgPSBNYWxsb2NQdHI8V3JpdGVCYXJyaWVyPEpTT2JqZWN0Pj46Om1h
bGxvYyhzaXplb2YoV3JpdGVCYXJyaWVyPEpTT2JqZWN0PikgKiBzdGF0aWNfY2FzdDxzaXplX3Q+
KHNpemUoKSkpOworICAgIG1fanNGdW5jdGlvbnMgPSBNYWxsb2NQdHI8V3JpdGVCYXJyaWVyPEpT
T2JqZWN0Pj46Om1hbGxvYygoc2l6ZW9mKFdyaXRlQmFycmllcjxKU09iamVjdD4pICogQ2hlY2tl
ZDxzaXplX3Q+KHNpemUoKSkpLnVuc2FmZUdldCgpKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgc2l6ZSgpOyArK2kpCiAgICAgICAgIG5ldygmbV9qc0Z1bmN0aW9ucy5nZXQoKVtpXSkg
V3JpdGVCYXJyaWVyPEpTT2JqZWN0PigpOwogfQpAQCAtMTAwLDcgKzEwMSw3IEBAIGJvb2wgSlNX
ZWJBc3NlbWJseVRhYmxlOjpncm93KHVpbnQzMl90IGRlbHRhKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBzaXplX3QgbmV3U2l6ZSA9IGdyZXcudmFsdWUoKTsKLSAgICBtX2pzRnVuY3Rp
b25zLnJlYWxsb2Moc2l6ZW9mKFdyaXRlQmFycmllcjxKU09iamVjdD4pICogbmV3U2l6ZSk7Cisg
ICAgbV9qc0Z1bmN0aW9ucy5yZWFsbG9jKChzaXplb2YoV3JpdGVCYXJyaWVyPEpTT2JqZWN0Pikg
KiBDaGVja2VkPHNpemVfdD4obmV3U2l6ZSkpLnVuc2FmZUdldCgpKTsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSBvbGRTaXplOyBpIDwgbmV3U2l6ZTsgKytpKQogICAgICAgICBuZXcgKCZtX2pzRnVu
Y3Rpb25zLmdldCgpW2ldKSBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+KCk7Ci0tIAoyLjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>