<?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>149033</bug_id>
          
          <creation_ts>2015-09-10 01:46:57 -0700</creation_ts>
          <short_desc>Convert arguments to WebAssembly functions to the declared types</short_desc>
          <delta_ts>2015-09-10 17:46:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124867</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-10 01:46:57 -0700</bug_when>
    <thetext>Convert arguments to WebAssembly functions to the declared types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124868</commentid>
    <comment_count>1</comment_count>
      <attachid>260915</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-10 01:59:29 -0700</bug_when>
    <thetext>Created attachment 260915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124960</commentid>
    <comment_count>2</comment_count>
      <attachid>260915</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-10 11:31:26 -0700</bug_when>
    <thetext>Comment on attachment 260915
Patch

r=me

Can we avoid these conversions if we know that we have a WASM caller?

Why is the test case skipped?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124971</commentid>
    <comment_count>3</comment_count>
      <attachid>260915</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 12:01:58 -0700</bug_when>
    <thetext>Comment on attachment 260915
Patch

Clearing flags on attachment: 260915

Committed r189582: &lt;http://trac.webkit.org/changeset/189582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124972</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 12:02:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125087</commentid>
    <comment_count>5</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-10 17:09:20 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #2)
&gt; Comment on attachment 260915 [details]
&gt; Patch
&gt; 
&gt; r=me
&gt; 
&gt; Can we avoid these conversions if we know that we have a WASM caller?

Yes, that&apos;s one of the optimizations I plan to do. Maybe exported WASM functions should have two entry points?

&gt; Why is the test case skipped?

Because WebAssembly is not enabled by default, so loadWebAssembly() is not defined by default. I will create a patch that removes the &quot;@skip&quot; and uses &quot;if (loadWebAssembly !== undefined) { ... }&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125094</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-10 17:46:44 -0700</bug_when>
    <thetext>&gt; &gt; Can we avoid these conversions if we know that we have a WASM caller?
&gt; 
&gt; Yes, that&apos;s one of the optimizations I plan to do. Maybe exported WASM
&gt; functions should have two entry points?

Yes -- I think we should either use two entry points or require non-WASM functions calling WASM functions to call through a thunk.

&gt; &gt; Why is the test case skipped?
&gt; 
&gt; Because WebAssembly is not enabled by default, so loadWebAssembly() is not
&gt; defined by default. I will create a patch that removes the &quot;@skip&quot; and uses
&gt; &quot;if (loadWebAssembly !== undefined) { ... }&quot;

Sounds good.

It seems like we have enough WASM functionality that we might want to enable WASM in trunk for testing -- even though we should leave the API for running WASM out of WebKit and Safari by default.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260915</attachid>
            <date>2015-09-10 01:59:29 -0700</date>
            <delta_ts>2015-09-10 12:01:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149033-20150910015922.patch</filename>
            <type>text/plain</type>
            <size>12378</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDc3MDI3NWI4M2M3ZTI0OWZjMTYzYzkwMmVkODg2NDQwM2Y0M2U3Li5iOWNhNWUwOWUwZGFiZjNi
ZDkzMTBlZTE4Y2IxNmJjNzQzNDc5NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxNS0wOS0xMCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBDb252ZXJ0IGFyZ3VtZW50cyB0byBXZWJBc3NlbWJseSBmdW5j
dGlvbnMgdG8gdGhlIGRlY2xhcmVkIHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoZWNrcyB0aGUgdHlwZXMgb2YgYXJndW1l
bnRzIHRvIFdlYkFzc2VtYmx5IGZ1bmN0aW9ucyBhbmQKKyAgICAgICAgY29udmVydHMgdGhlbSB0
byB0aGUgZGVjbGFyZWQgdHlwZXMuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2U6CisgICAgICAg
IC0gRm9yIGV4YW1wbGUsIGlmIGEgZnVuY3Rpb24gZXhwZWN0cyBhbiBhcmd1bWVudCBvZiB0eXBl
IGRvdWJsZSBhbmQgd2UKKyAgICAgICAgICBwYXNzIDEuMCB0byBpdCwgaXQgd2lsbCBnZXQgYSBK
U1ZhbHVlIG9mIGFuIGludGVnZXIsIG5vdCBhIGRvdWJsZS4KKyAgICAgICAgLSBXZSBzaG91bGQg
Zm9sbG93IGFzbS5qcydzIGJlaGF2aW9yIGZvciBub3csIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBh
YmxlCisgICAgICAgICAgdG8gdGVzdCBXZWJBc3NlbWJseSBhcHBzIGFnYWluc3QgYXNtLmpzIGFw
cHMuIGFzbS5qcyBkb2VzIHR5cGUKKyAgICAgICAgICBjb2VyY2lvbiBvbiBhcmd1bWVudHMgYnkg
dXNpbmcgaW50fDAsIE1hdGguZnJvdW5kKGZsb2F0KSwgYW5kICtkb3VibGUuCisKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNtLXR5cGUt
Y29udmVyc2lvbi5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0d28u
dmFsdWVPZik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20vdHlwZS1jb252ZXJzaW9uLndh
c206IEFkZGVkLgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAg
ICAgKEpTQzo6b3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6
b3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSk6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvbkNvbXBpbGVyOjpzdGFydEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmFwcGVuZENhbGxTZXRSZXN1bHQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rp
b25Db21waWxlcjo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNv
bXBpbGVyOjpsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMik6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvbkNvbXBpbGVyOjpsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUpOgorCiAyMDE1LTA5
LTA5ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAg
IEltcGxlbWVudCBpbnRlcm5hbCBjYWxscyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCA2NTg1ZjA0MGQwZjU1MzZhMTZkNjFjYWE1
ZjgwNzZlZTE2ZWJiOTIwLi5kNzA4YmJhMTQ4YTI1MDdjNzk2MjFiNDM3ZWZhMWNlYjI1ZGZkNTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTczLDYg
KzE3Myw3IEBAIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25f
RSkoRXhlY1N0YXRlKik7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3Bl
cmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BF
UkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUdDKShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCopOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlv
bl9FU0pzcykoRXhlY1N0YXRlKiwgc2l6ZV90LCBKU1N0cmluZyopOwordHlwZWRlZiBpbnQzMl90
IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9F
SlopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKIHR5cGVkZWYgaW50MzJf
dCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUpaWikoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElP
TiAoKlNfSklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tdHlwZS1j
b252ZXJzaW9uLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLXR5
cGUtY29udmVyc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOWMwMDg3NTlkNWIyYzlhMTRlNTE3ZmFjNmNh
OWE3OWFkN2NmMDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy93YXNtLXR5cGUtY29udmVyc2lvbi5qcwpAQCAtMCwwICsxLDU1IEBACisvL0Ag
c2tpcAorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworLyoKK3dhc20vdHlwZS1jb252ZXJzaW9uLndhc20gaXMgZ2VuZXJh
dGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9wb2x5Zmls
bC1wcm90b3R5cGUtMT4gZnJvbSB0aGUgZm9sbG93aW5nIHNjcmlwdDoKKworZnVuY3Rpb24gYXNt
TW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIpIHsKKyAgICAidXNlIGFzbSI7CisKKyAgICBmdW5j
dGlvbiB0YWtlQW5kUmV0dXJuSW50MzIoeCkgeworICAgICAgICB4ID0geCB8IDA7CisgICAgICAg
IHJldHVybiB4OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRha2VBbmRSZXR1cm5Eb3VibGUoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKworICAgIHJldHVy
biB7CisgICAgICAgIHRha2VBbmRSZXR1cm5JbnQzMjogdGFrZUFuZFJldHVybkludDMyLAorICAg
ICAgICB0YWtlQW5kUmV0dXJuRG91YmxlOiB0YWtlQW5kUmV0dXJuRG91YmxlLAorICAgIH07Cit9
CisqLworCit2YXIgbW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3YXNtL3R5cGUtY29udmVyc2lv
bi53YXNtIik7CisKK3ZhciB0d28gPSB7CisgICAgdmFsdWVPZigpIHsgcmV0dXJuIDI7IH0KK307
CisKK3Nob3VsZEJlKG1vZHVsZS50YWtlQW5kUmV0dXJuSW50MzIoMSksIDEpOworc2hvdWxkQmUo
bW9kdWxlLnRha2VBbmRSZXR1cm5JbnQzMigiMSIpLCAxKTsKK3Nob3VsZEJlKG1vZHVsZS50YWtl
QW5kUmV0dXJuSW50MzIoMS45KSwgMSk7CitzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVybklu
dDMyKHRydWUpLCAxKTsKK3Nob3VsZEJlKG1vZHVsZS50YWtlQW5kUmV0dXJuSW50MzIoZmFsc2Up
LCAwKTsKK3Nob3VsZEJlKG1vZHVsZS50YWtlQW5kUmV0dXJuSW50MzIoIm9uZSIpLCAwKTsKK3No
b3VsZEJlKG1vZHVsZS50YWtlQW5kUmV0dXJuSW50MzIoeyB9KSwgMCk7CitzaG91bGRCZShtb2R1
bGUudGFrZUFuZFJldHVybkludDMyKFsyLjVdKSwgMik7CitzaG91bGRCZShtb2R1bGUudGFrZUFu
ZFJldHVybkludDMyKHR3byksIDIpOworCitzaG91bGRCZShtb2R1bGUudGFrZUFuZFJldHVybkRv
dWJsZSgxLjUpLCAxLjUpOworc2hvdWxkQmUobW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUoIjEu
NSIpLCAxLjUpOworc2hvdWxkQmUobW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUoMSksIDEpOwor
c2hvdWxkQmUobW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUodHJ1ZSksIDEpOworc2hvdWxkQmUo
bW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUoZmFsc2UpLCAwKTsKK3Nob3VsZEJlKGlzTmFOKG1v
ZHVsZS50YWtlQW5kUmV0dXJuRG91YmxlKCJvbmUiKSksIHRydWUpOworc2hvdWxkQmUoaXNOYU4o
bW9kdWxlLnRha2VBbmRSZXR1cm5Eb3VibGUoeyB9KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxl
LnRha2VBbmRSZXR1cm5Eb3VibGUoWzIuNV0pLCAyLjUpOworc2hvdWxkQmUobW9kdWxlLnRha2VB
bmRSZXR1cm5Eb3VibGUodHdvKSwgMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3dhc20vdHlwZS1jb252ZXJzaW9uLndhc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20vdHlwZS1jb252ZXJzaW9uLndhc20KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjZhMzk0ZjZlNGNkZTg1YzcwMmJmOWFkYTFkZWVkNzZhNjY3Mzc0YwpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgODEKemNtWFI8RVk1WGdXJmk7dTIxVylaTWtYKkQlNTdsZUtMRXJGN0AwfkV2
cmBAT1FpNClUTntqTTVeR2J9MzcjTDgqCk1UPUdra2EjOSU+MFo/Zlk9S3VmegoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvbkNvbXBpbGVyLmgKaW5kZXggMTUwNTZmM2FjZTczNzQ0M2FjMWEzODhlOWZlN2E0YjE2ZWQ3
MDA0My4uZTNjZWEzZWFlMmNhMGYwOWQ2ZTIzNTRlMGVkMjZlMzYwMTMxYWFlOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCkBAIC0z
OCw2ICszOCwxNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIGludDMyX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
KS50b0ludDMyKGV4ZWMpOworfQorCitzdGF0aWMgZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKQoreworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtYmVyKGV4
ZWMpOworfQorCiAjaWYgIUNQVShYODYpICYmICFDUFUoWDg2XzY0KQogc3RhdGljIGludDMyX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EaXYoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHJpZ2h0KQog
ewpAQCAtOTgsMTggKzEwOCwyMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBBZGRyZXNzIGFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6YXJndW1lbnRPZmZzZXQo
aSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ld
KSB7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6Ci0gICAgICAgICAgICAgICAgbG9h
ZDMyKGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAg
ICAgICAgICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKGFkZHJlc3MsIEdQUkluZm86OnJl
Z1QwKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRvSW50MzIo
YWRkcmVzcywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyNlbmRpZgogICAgICAg
ICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4
KyspKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6
OkYzMjoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOwot
ICAgICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmVn
VDAsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb0Zs
b2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgICAg
IHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4Kysp
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2
NDoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOwotICAg
ICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmVnVDAs
IEZQUkluZm86OmZwUmVnVDApOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICAgICAg
bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKGFkZHJlc3MsIEZQUkluZm86OmZwUmVnVDAsIEdQ
UkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisjZWxzZQorICAgICAgICAgICAgICAgIGxv
YWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShhZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJ
bmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QyLCBGUFJJbmZvOjpmcFJl
Z1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gV0FTTVR5
cGU6OkYzMikKKyAgICAgICAgICAgICAgICAgICAgY29udmVydERvdWJsZVRvRmxvYXQoRlBSSW5m
bzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICAgICAgc3RvcmVEb3Vi
bGUoRlBSSW5mbzo6ZnBSZWdUMCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgrKykpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTYxOSwxOCArNjMzLDY5
IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBuYWtlZENhbGw7CiAgICAgfQogCisgICAgdm9p
ZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgR1BSUmVn
IHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24pOworICAgICAgICBt
b3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOworICAgIH0KKworI2lmIENQVShY
ODYpCisgICAgdm9pZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5j
dGlvbiwgRlBSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24p
OworICAgICAgICBtX2Fzc2VtYmxlci5mc3RwbCgwLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7Cisg
ICAgICAgIGxvYWREb3VibGUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlc3VsdCk7CisgICAgfQor
I2VsaWYgQ1BVKEFSTSkgJiYgIUNQVShBUk1fSEFSREZQKQorICAgIHZvaWQgYXBwZW5kQ2FsbFNl
dFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEZQUlJlZyByZXN1bHQpCisgICAg
eworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1v
dihyZXN1bHQsIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UjIpOworICAgIH0KKyNlbHNlIC8vIENQVShYODZfNjQpIHx8IChDUFUoQVJNKSAmJiBDUFUoQVJN
X0hBUkRGUCkpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpIHx8IENQVShTSDQpCisgICAgdm9p
ZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBSUmVn
IHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24pOworICAgICAgICBt
b3ZlRG91YmxlKEZQUkluZm86OnJldHVyblZhbHVlRlBSLCByZXN1bHQpOworICAgIH0KKyNlbmRp
ZgorCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVy
YXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3JjLCBHUFJSZWcgZHN0KQorICAgIHsKKyAgICAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHNyYyk7CisgICAgICAgIGFwcGVuZENhbGxT
ZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworICAgIH0KKworICAgIHZvaWQgY2FsbE9wZXJhdGlv
bihEX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBzcmMsIEZQUlJlZyBkc3QpCisg
ICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoc3JjKTsKKyAgICAgICAg
YXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgfQorI2Vsc2UKKyAgICB2
b2lkIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3Jj
VGFnLCBHUFJSZWcgc3JjUGF5bG9hZCwgR1BSUmVnIGRzdCkKKyAgICB7CisgICAgICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBzcmNQYXlsb2FkLCBz
cmNUYWcpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKKyAg
ICB9CisKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9u
LCBHUFJSZWcgc3JjVGFnLCBHUFJSZWcgc3JjUGF5bG9hZCwgRlBSUmVnIGRzdCkKKyAgICB7Cisg
ICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBz
cmNQYXlsb2FkLCBzcmNUYWcpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlv
biwgZHN0KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90
IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3Jj
MSwgR1BSUmVnIHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAgICBzZXR1cEFyZ3VtZW50
cyhzcmMxLCBzcmMyKTsKLSAgICAgICAgYXBwZW5kQ2FsbChvcGVyYXRpb24pOwotICAgICAgICBt
b3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkc3QpOworICAgICAgICBhcHBlbmRDYWxsU2V0
UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKICAgICB9CiAKICAgICB2b2lkIGNhbGxPcGVyYXRpb24o
dWludDMyX3QgSklUX09QRVJBVElPTiAoKm9wZXJhdGlvbikodWludDMyX3QsIHVpbnQzMl90KSwg
R1BSUmVnIHNyYzEsIEdQUlJlZyBzcmMyLCBHUFJSZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0
dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7Ci0gICAgICAgIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
LSAgICAgICAgbW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZHN0KTsKKyAgICAgICAgYXBw
ZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiAgICAgfQogCiAgICAgdm9pZCBib3hB
cmd1bWVudHNBbmRBZGp1c3RTdGFja1BvaW50ZXIoY29uc3QgVmVjdG9yPFdBU01UeXBlPiYgYXJn
dW1lbnRzKQpAQCAtNzAzLDYgKzc2OCw3MCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQog
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMy
KEFkZHJlc3MgYWRkcmVzcywgR1BSUmVnIGRzdCkKKyAgICB7CisgICAgICAgIEpTVmFsdWVSZWdz
IHRlbXBSZWdzKGRzdCk7CisgICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7Cisg
ICAgICAgIEp1bXAgY2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7CisKKyAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvSW50MzIsIGRzdCwg
ZHN0KTsKKworICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAgICB9CisKKyAgICB2
b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJlZyBk
c3QsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyKQorICAgIHsKKyAgICAgICAgSlNW
YWx1ZVJlZ3MgdGVtcFJlZ3Moc2NyYXRjaDEpOworICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywg
dGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVt
cFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51bWJlcih0ZW1w
UmVncywgc2NyYXRjaDIpOworICAgICAgICBKdW1wTGlzdCBlbmQ7CisKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB0ZW1wUmVncy5ncHIoKSwg
ZHN0KTsKKyAgICAgICAgZW5kLmFwcGVuZChqdW1wKCkpOworCisgICAgICAgIGNoZWNrSlNJbnQz
Mi5saW5rKHRoaXMpOworICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZSh0ZW1wUmVncy5ncHIo
KSwgZHN0KTsKKyAgICAgICAgZW5kLmFwcGVuZChqdW1wKCkpOworCisgICAgICAgIGNoZWNrSlNO
dW1iZXIubGluayh0aGlzKTsKKyAgICAgICAgdW5ib3hEb3VibGVXaXRob3V0QXNzZXJ0aW9ucyh0
ZW1wUmVncy5ncHIoKSwgZHN0KTsKKyAgICAgICAgZW5kLmxpbmsodGhpcyk7CisgICAgfQorI2Vs
c2UKKyAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKEFkZHJlc3MgYWRkcmVzcywg
R1BSUmVnIGRzdCwgR1BSUmVnIHNjcmF0Y2gpCisgICAgeworICAgICAgICBKU1ZhbHVlUmVncyB0
ZW1wUmVncyhzY3JhdGNoLCBkc3QpOworICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJl
Z3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3Mp
OworCisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMy
LCB0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworCisgICAg
ICAgIGNoZWNrSlNJbnQzMi5saW5rKHRoaXMpOworICAgIH0KKworICAgIHZvaWQgbG9hZFZhbHVl
QW5kQ29udmVydFRvRG91YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSUmVnIGRzdCwgR1BSUmVnIHNj
cmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBzY3JhdGNoMywgRlBSUmVnIGZwU2NyYXRj
aCkKKyAgICB7CisgICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gyLCBzY3JhdGNo
MSk7CisgICAgICAgIGxvYWRWYWx1ZShhZGRyZXNzLCB0ZW1wUmVncyk7CisgICAgICAgIEp1bXAg
Y2hlY2tKU0ludDMyID0gYnJhbmNoSWZJbnQzMih0ZW1wUmVncyk7CisgICAgICAgIEp1bXAgY2hl
Y2tKU051bWJlciA9IGJyYW5jaElmTnVtYmVyKHRlbXBSZWdzLCBzY3JhdGNoMyk7CisgICAgICAg
IEp1bXBMaXN0IGVuZDsKKworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRK
U1ZhbHVlVG9Eb3VibGUsIHRlbXBSZWdzLnRhZ0dQUigpLCB0ZW1wUmVncy5wYXlsb2FkR1BSKCks
IGRzdCk7CisgICAgICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKKworICAgICAgICBjaGVja0pTSW50
MzIubGluayh0aGlzKTsKKyAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUodGVtcFJlZ3MucGF5
bG9hZEdQUigpLCBkc3QpOworICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAgICAg
Y2hlY2tKU051bWJlci5saW5rKHRoaXMpOworICAgICAgICB1bmJveERvdWJsZSh0ZW1wUmVncy50
YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCkKKyAgICAgICAg
ZW5kLmxpbmsodGhpcyk7CisgICAgfQorI2VuZGlmCisKICAgICBKU1dBU01Nb2R1bGUqIG1fbW9k
dWxlOwogICAgIHVuc2lnbmVkIG1fc3RhY2tIZWlnaHQ7CiAgICAgdW5zaWduZWQgbV9udW1iZXJP
ZkxvY2FsczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>