<?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>170261</bug_id>
          
          <creation_ts>2017-03-29 17:22:07 -0700</creation_ts>
          <short_desc>WebAssembly: Make our calls out to JS PIC friendly</short_desc>
          <delta_ts>2017-03-31 19:09:56 -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>168264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1292642</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-29 17:22:07 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293352</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-31 16:13:08 -0700</bug_when>
    <thetext>Working on this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293404</commentid>
    <comment_count>2</comment_count>
      <attachid>306034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-31 18:12:33 -0700</bug_when>
    <thetext>Created attachment 306034
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293410</commentid>
    <comment_count>3</comment_count>
      <attachid>306034</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-03-31 18:27:51 -0700</bug_when>
    <thetext>Comment on attachment 306034
patch

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

r=me.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.h:120
&gt; +    static ptrdiff_t offsetOfImportWasmToJSStub(unsigned calleeCount, unsigned importIndex)
&gt; +    {
&gt; +        return offsetOfCallees()
&gt; +            + (sizeof(WriteBarrier&lt;JSWebAssemblyCallee&gt;) * calleeCount * 2)
&gt; +            + (sizeof(void*) * importIndex);
&gt; +    }
&gt; +

oh man, this is brutal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293413</commentid>
    <comment_count>4</comment_count>
      <attachid>306034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-31 18:32:15 -0700</bug_when>
    <thetext>Comment on attachment 306034
patch

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

&gt;&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.h:120
&gt;&gt; +
&gt; 
&gt; oh man, this is brutal.

Glorious object layout 🎉</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293427</commentid>
    <comment_count>5</comment_count>
      <attachid>306034</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-31 19:09:55 -0700</bug_when>
    <thetext>Comment on attachment 306034
patch

Clearing flags on attachment: 306034

Committed r214711: &lt;http://trac.webkit.org/changeset/214711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293428</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-31 19:09:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306034</attachid>
            <date>2017-03-31 18:12:33 -0700</date>
            <delta_ts>2017-03-31 19:09:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>13581</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0NzA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE3LTAzLTMxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkFzc2VtYmx5OiBNYWtlIG91ciBjYWxscyBvdXQgdG8gSlMgUElDIGZyaWVuZGx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAyNjEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJl
bW92ZXMgYSBkaXJlY3QgY2FsbCBmcm9tIHRoZSBtb2R1bGUgdG8gdGhlIFdhc20gdG8gSlMgc3R1
Yi4KKyAgICAgICAgSW5zdGVhZCwgd2UgZG8gYW4gaW5kaXJlY3QgY2FsbCB0byB0aGUgc3R1YiBi
eSBsb2FkaW5nIHRoZSBzdHViJ3MgZXhlY3V0YWJsZQorICAgICAgICBhZGRyZXNzIG9mZiBvZiB0
aGUgQ29kZUJsb2NrLiBUaGlzIGlzIHRvIG1ha2UgdGhlIGNvZGUgd2UgZW1pdCBmb3IgY29tcGx5
IHdpdGgKKyAgICAgICAgcmVxdWlyZW1lbnRzIG5lZWRlZCBmb3IgUElDLgorICAgICAgICAKKyAg
ICAgICAgQWRkaW5nIHRoaXMgaW5kaXJlY3Rpb24gaXMgbm90IGlkZWFsLiBBbHRob3VnaCB0aGlz
IHBhdGNoIGlzIG5ldXRyYWwgb24KKyAgICAgICAgV2FzbUJlbmNoLCB3ZSByZWFsbHkgd2FudCB0
byBnZXQgYmFjayB0byBhIHdvcmxkIHdoZXJlIHdlIGhhdmUgYW4gSUMKKyAgICAgICAgY2FsbCBp
bmZyYXN0cnVjdHVyZS4gVGhpcyBwYXRjaCBpcyBvYnZpb3VzbHkgYSByZWdyZXNzaW9uIG9uIHNv
bWUKKyAgICAgICAgdHlwZXMgb2YgcHJvZ3JhbXMuIEkndmUgZmlsZWQgdGhpcyBidWcgdG8gbWFr
ZSBzdXJlIHdlIGltcGxlbWVudCBhCisgICAgICAgIFBJQyBjb21wbGlhbnQgV2FzbSB0byBKUyBj
YWxsIElDOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwMzc1CisKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KiB3YXNtL1dhc21Gb3JtYXQuaDoKKyAgICAgICAgKiB3YXNtL1dhc21QbGFuLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2FzbTo6UGxhbjo6Y29tcGxldGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseUNvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb2RlQmxv
Y2s6OmluaXRpYWxpemUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9j
ay5oOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5Q29kZUJsb2NrOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5Q29kZUJsb2NrOjpvZmZzZXRPZkltcG9ydFdhc21Ub0pT
U3R1Yik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6Om9mZnNldE9mQ2Fs
bGVlcyk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmFsbG9jYXRpb25T
aXplKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvZGVCbG9jazo6aW1wb3J0V2FzbVRv
SlNTdHViKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6YWRkVW5pdGlhbGl6ZWRDb2RlQmxv
Y2spOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmg6CisgICAgICAg
IChKU0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZDb2RlQmxvY2spOgorCiAyMDE3
LTAzLTMxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYkFzc2VtYmx5OiBBZGQgY29tcGlsYXRpb24gbGV2ZWwgb3B0aW9uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMTQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwOCwyNCArOTA4LDMwIEBAIGF1dG8gQjNJUkdlbmVy
YXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBmdW4KICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7CiAgICAgICAgICAgICAg
ICAgICAgIGppdC5hZGRMaW5rVGFzayhbdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGNhbGwsIGZ1
bmN0aW9uSW5kZXhdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB1bmxpbmtlZFdhc21Ub1dhc21DYWxscy0+YXBwZW5kKHsgbGlua0J1ZmZlci5sb2Nh
dGlvbk9mKGNhbGwpLCBmdW5jdGlvbkluZGV4LCBVbmxpbmtlZFdhc21Ub1dhc21DYWxsOjpUYXJn
ZXQ6OlRvV2FzbSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVubGlua2VkV2FzbVRvV2Fz
bUNhbGxzLT5hcHBlbmQoeyBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoY2FsbCksIGZ1bmN0aW9uSW5k
ZXggfSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIFVwc2lsb25WYWx1ZSogd2FzbUNhbGxSZXN1bHRVcHNpbG9u
ID0gcmV0dXJuVHlwZSA9PSBWb2lkID8gbnVsbHB0ciA6IGlzV2FzbUJsb2NrLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB3YXNtQ2FsbFJlc3VsdCk7CiAgICAgICAg
IGlzV2FzbUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBKdW1wLCBvcmlnaW4o
KSwgY29udGludWF0aW9uKTsKIAorICAgICAgICAvLyBGSVhNRTogTGV0cyByZW1vdmUgdGhpcyBp
bmRpcmVjdGlvbiBieSBjcmVhdGluZyBhIFBJQyBmcmllbmRseSBJQworICAgICAgICAvLyBmb3Ig
Y2FsbHMgb3V0IHRvIEpTLiBUaGlzIHNob3VsZG4ndCBiZSB0aGF0IGhhcmQgdG8gZG8uIFdlIGNv
dWxkIHByb2JhYmx5CisgICAgICAgIC8vIGltcGxlbWVudCB0aGUgSUMgdG8gYmUgb3ZlciBXYXNt
OjpDb250ZXh0Ki4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MDM3NQorICAgICAgICBWYWx1ZSogY29kZUJsb2NrID0gaXNKU0Jsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywKKyAgICAgICAgICAgIExvYWQsIHBvaW50ZXJUeXBl
KCksIG9yaWdpbigpLCBtX2luc3RhbmNlVmFsdWUsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6b2Zm
c2V0T2ZDb2RlQmxvY2soKSk7CisgICAgICAgIFZhbHVlKiBqdW1wRGVzdGluYXRpb24gPSBpc0pT
QmxvY2stPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLAorICAgICAgICAgICAgTG9hZCwg
cG9pbnRlclR5cGUoKSwgb3JpZ2luKCksIGNvZGVCbG9jaywgSlNXZWJBc3NlbWJseUNvZGVCbG9j
azo6b2Zmc2V0T2ZJbXBvcnRXYXNtVG9KU1N0dWIobV9pbmZvLmludGVybmFsRnVuY3Rpb25Db3Vu
dCgpLCBmdW5jdGlvbkluZGV4KSk7CiAgICAgICAgIFZhbHVlKiBqc0NhbGxSZXN1bHQgPSB3YXNt
Q2FsbGluZ0NvbnZlbnRpb24oKS5zZXR1cENhbGwobV9wcm9jLCBpc0pTQmxvY2ssIG9yaWdpbigp
LCBhcmdzLCB0b0IzVHlwZShyZXR1cm5UeXBlKSwKLSAgICAgICAgICAgIFs9XSAoUGF0Y2hwb2lu
dFZhbHVlKiBwYXRjaHBvaW50KSB7CisgICAgICAgICAgICBbJl0gKFBhdGNocG9pbnRWYWx1ZSog
cGF0Y2hwb2ludCkgewogICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMud3JpdGVz
UGlubmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnJlYWRz
UGlubmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQoanVtcERl
c3RpbmF0aW9uLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBwYXRj
aHBvaW50LT5jbG9iYmVyTGF0ZShQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLnRvU2F2ZSgpKTsK
LSAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoW3VubGlua2VkV2FzbVRv
V2FzbUNhbGxzLCBmdW5jdGlvbkluZGV4XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+
c2V0R2VuZXJhdG9yKFt1bmxpbmtlZFdhc21Ub1dhc21DYWxscywgZnVuY3Rpb25JbmRleCwgcmV0
dXJuVHlwZV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJiBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwotICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC5jYWxsKCk7Ci0gICAgICAgICAgICAgICAgICAgIGpp
dC5hZGRMaW5rVGFzayhbdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGNhbGwsIGZ1bmN0aW9uSW5k
ZXhdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1
bmxpbmtlZFdhc21Ub1dhc21DYWxscy0+YXBwZW5kKHsgbGlua0J1ZmZlci5sb2NhdGlvbk9mKGNh
bGwpLCBmdW5jdGlvbkluZGV4LCBVbmxpbmtlZFdhc21Ub1dhc21DYWxsOjpUYXJnZXQ6OlRvSnMg
fSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBqaXQuY2Fs
bChwYXJhbXNbcmV0dXJuVHlwZSA9PSBWb2lkID8gMCA6IDFdLmdwcigpKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICBVcHNpbG9uVmFsdWUqIGpzQ2FsbFJl
c3VsdFVwc2lsb24gPSByZXR1cm5UeXBlID09IFZvaWQgPyBudWxscHRyIDogaXNKU0Jsb2NrLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCBqc0NhbGxSZXN1bHQpOwpA
QCAtOTUzLDcgKzk1OSw3IEBAIGF1dG8gQjNJUkdlbmVyYXRvcjo6YWRkQ2FsbCh1aW50MzJfdCBm
dW4KICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFs
bG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwg
Y2FsbCA9IGppdC5jYWxsKCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhb
dW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIGNhbGwsIGZ1bmN0aW9uSW5kZXhdIChMaW5rQnVmZmVy
JiBsaW5rQnVmZmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bmxpbmtlZFdhc21Ub1dh
c21DYWxscy0+YXBwZW5kKHsgbGlua0J1ZmZlci5sb2NhdGlvbk9mKGNhbGwpLCBmdW5jdGlvbklu
ZGV4LCBVbmxpbmtlZFdhc21Ub1dhc21DYWxsOjpUYXJnZXQ6OlRvV2FzbSB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLT5hcHBlbmQoeyBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2YoY2FsbCksIGZ1bmN0aW9uSW5kZXggfSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCShyZXZpc2lvbiAyMTQ2OTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2OSwxMCArMjY5LDYgQEAgc3RydWN0IE1vZHVsZUluZm9ybWF0aW9uIHsKIHN0cnVjdCBVbmxp
bmtlZFdhc21Ub1dhc21DYWxsIHsKICAgICBDb2RlTG9jYXRpb25DYWxsIGNhbGxMb2NhdGlvbjsK
ICAgICBzaXplX3QgZnVuY3Rpb25JbmRleDsKLSAgICBlbnVtIGNsYXNzIFRhcmdldCA6IHVpbnQ4
X3QgewotICAgICAgICBUb0pzLAotICAgICAgICBUb1dhc20sCi0gICAgfSB0YXJnZXQ7CiB9Owog
CiBzdHJ1Y3QgRW50cnlwb2ludCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBsYW4uY3BwCShyZXZpc2lvbiAyMTQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NiwxMyArMjk2LDkgQEAgdm9pZCBQ
bGFuOjpjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlcgogICAgICAgICAgICAgICAgIHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzOwogICAgICAgICAgICAgICAgIGlmIChtX21vZHVsZUluZm9ybWF0
aW9uLT5pc0ltcG9ydGVkRnVuY3Rpb25Gcm9tRnVuY3Rpb25JbmRleFNwYWNlKGNhbGwuZnVuY3Rp
b25JbmRleCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUgaW1wb3J0cyBjb3VsZCBo
YXZlIGJlZW4gbGlua2VkIGluIEIzLCBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgYSBwYXRjaHBvaW50
LiBUaGlzIGNvbmRpdGlvbiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgYSBSRUxFQVNFX0FTU0VSVC4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjQ2MgotICAgICAgICAg
ICAgICAgICAgICBleGVjdXRhYmxlQWRkcmVzcyA9IGNhbGwudGFyZ2V0ID09IFVubGlua2VkV2Fz
bVRvV2FzbUNhbGw6OlRhcmdldDo6VG9KcwotICAgICAgICAgICAgICAgICAgICA/IG1fd2FzbUV4
aXRTdHVicy5hdChjYWxsLmZ1bmN0aW9uSW5kZXgpLndhc21Ub0pzLmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpCi0gICAgICAgICAgICAgICAgICAgIDogbV93YXNtRXhpdFN0dWJzLmF0KGNhbGwu
ZnVuY3Rpb25JbmRleCkud2FzbVRvV2FzbS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2FsbC50
YXJnZXQgIT0gVW5saW5rZWRXYXNtVG9XYXNtQ2FsbDo6VGFyZ2V0OjpUb0pzKTsKKyAgICAgICAg
ICAgICAgICAgICAgZXhlY3V0YWJsZUFkZHJlc3MgPSBtX3dhc21FeGl0U3R1YnMuYXQoY2FsbC5m
dW5jdGlvbkluZGV4KS53YXNtVG9XYXNtLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAg
ICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlQWRkcmVz
cyA9IG1fd2FzbUludGVybmFsRnVuY3Rpb25zLmF0KGNhbGwuZnVuY3Rpb25JbmRleCAtIG1fd2Fz
bUV4aXRTdHVicy5zaXplKCkpLT53YXNtRW50cnlwb2ludC5jb21waWxhdGlvbi0+Y29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpyZXBhdGNoQ2FsbChjYWxsLmNhbGxMb2NhdGlvbiwgQ29kZUxvY2F0aW9u
TGFiZWwoZXhlY3V0YWJsZUFkZHJlc3MpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUNvZGVCbG9jay5jcHAJKHJldmlzaW9uIDIxNDY5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Miw2ICs3MiwxMCBAQCB2b2lkIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmluaXRpYWxpemUo
CiAgICAgbV9jYWxsTGlua0luZm9zID0gcGxhbigpLnRha2VDYWxsTGlua0luZm9zKCk7CiAgICAg
bV93YXNtRXhpdFN0dWJzID0gcGxhbigpLnRha2VXYXNtRXhpdFN0dWJzKCk7CiAKKyAgICAvLyBU
aGUgY29kZSBhIG1vZHVsZSBlbWl0cyB0byBjYWxsIGludG8gSlMgcmVsaWVzIG9uIHVzIHRvIHNl
dCB0aGlzIHVwLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3dhc21FeGl0U3R1YnMu
c2l6ZSgpOyBpKyspCisgICAgICAgIGltcG9ydFdhc21Ub0pTU3R1YihtX2NhbGxlZUNvdW50LCBp
KSA9IG1fd2FzbUV4aXRTdHVic1tpXS53YXNtVG9Kcy5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKKwogICAgIHBsYW4oKS5pbml0aWFsaXplQ2FsbGVlcyhbJl0gKHVuc2lnbmVkIGNhbGxlZUlu
ZGV4LCBKU1dlYkFzc2VtYmx5Q2FsbGVlKiBqc0VudHJ5cG9pbnRDYWxsZWUsIEpTV2ViQXNzZW1i
bHlDYWxsZWUqIHdhc21FbnRyeXBvaW50Q2FsbGVlKSB7CiAgICAgICAgIHNldEpTRW50cnlwb2lu
dENhbGxlZSh2bSwgY2FsbGVlSW5kZXgsIGpzRW50cnlwb2ludENhbGxlZSk7CiAgICAgICAgIHNl
dFdhc21FbnRyeXBvaW50Q2FsbGVlKHZtLCBjYWxsZWVJbmRleCwgd2FzbUVudHJ5cG9pbnRDYWxs
ZWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
ZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlDb2RlQmxvY2suaAkocmV2aXNpb24gMjE0NjkwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC00OSw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBKU1dlYkFzc2VtYmx5TW9kdWxlKiBvd25lciwgV2FzbTo6
TWVtb3J5TW9kZSBtb2RlLCBSZWY8V2FzbTo6UGxhbj4mJiBwbGFuLCB1bnNpZ25lZCBjYWxsZWVD
b3VudCkKKyAgICBzdGF0aWMgSlNXZWJBc3NlbWJseUNvZGVCbG9jayogY3JlYXRlKFZNJiB2bSwg
SlNXZWJBc3NlbWJseU1vZHVsZSogb3duZXIsIFdhc206Ok1lbW9yeU1vZGUgbW9kZSwgUmVmPFdh
c206OlBsYW4+JiYgcGxhbiwgdW5zaWduZWQgY2FsbGVlQ291bnQsIHVuc2lnbmVkIGZ1bmN0aW9u
SW1wb3J0Q291bnQpCiAgICAgewotICAgICAgICBhdXRvKiByZXN1bHQgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5Q29kZUJsb2NrPih2bS5oZWFwLCBhbGxvY2F0aW9u
U2l6ZShjYWxsZWVDb3VudCkpKSBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrKHZtLCBvd25lciwgbW9k
ZSwgV1RGTW92ZShwbGFuKSwgY2FsbGVlQ291bnQpOworICAgICAgICBhdXRvKiByZXN1bHQgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5Q29kZUJsb2NrPih2bS5oZWFw
LCBhbGxvY2F0aW9uU2l6ZShjYWxsZWVDb3VudCwgZnVuY3Rpb25JbXBvcnRDb3VudCkpKSBKU1dl
YkFzc2VtYmx5Q29kZUJsb2NrKHZtLCBvd25lciwgbW9kZSwgV1RGTW92ZShwbGFuKSwgY2FsbGVl
Q291bnQpOwogICAgICAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CkBAIC0xMTEsNiArMTExLDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1fd2FzbUV4aXRTdHVic1tpbXBvcnRJbmRleF0ud2FzbVRvSnMuY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCk7CiAgICAgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklt
cG9ydFdhc21Ub0pTU3R1Yih1bnNpZ25lZCBjYWxsZWVDb3VudCwgdW5zaWduZWQgaW1wb3J0SW5k
ZXgpCisgICAgeworICAgICAgICByZXR1cm4gb2Zmc2V0T2ZDYWxsZWVzKCkKKyAgICAgICAgICAg
ICsgKHNpemVvZihXcml0ZUJhcnJpZXI8SlNXZWJBc3NlbWJseUNhbGxlZT4pICogY2FsbGVlQ291
bnQgKiAyKQorICAgICAgICAgICAgKyAoc2l6ZW9mKHZvaWQqKSAqIGltcG9ydEluZGV4KTsKKyAg
ICB9CisKIHByaXZhdGU6CiAgICAgSlNXZWJBc3NlbWJseUNvZGVCbG9jayhWTSYsIEpTV2ViQXNz
ZW1ibHlNb2R1bGUqLCBXYXNtOjpNZW1vcnlNb2RlLCBSZWY8V2FzbTo6UGxhbj4mJiwgdW5zaWdu
ZWQgY2FsbGVlQ291bnQpOwogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC0xMTgsMTQgKzEy
NSwyMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCi0gICAg
c3RhdGljIHNpemVfdCBvZmZzZXRPZkNhbGxlZXMoKQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZDYWxsZWVzKCkKICAgICB7CiAgICAgICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Y8c2l6ZW9mKFdyaXRlQmFycmllcjxKU1dlYkFzc2VtYmx5Q2FsbGVlPik+KHNpemVvZihK
U1dlYkFzc2VtYmx5Q29kZUJsb2NrKSk7CiAgICAgfQogCi0gICAgc3RhdGljIHNpemVfdCBhbGxv
Y2F0aW9uU2l6ZSh1bnNpZ25lZCBudW1DYWxsZWVzKQorICAgIHN0YXRpYyBzaXplX3QgYWxsb2Nh
dGlvblNpemUodW5zaWduZWQgY2FsbGVlQ291bnQsIHVuc2lnbmVkIGZ1bmN0aW9uSW1wb3J0Q291
bnQpCisgICAgeworICAgICAgICByZXR1cm4gb2Zmc2V0T2ZDYWxsZWVzKCkKKyAgICAgICAgICAg
ICsgKHNpemVvZihXcml0ZUJhcnJpZXI8SlNXZWJBc3NlbWJseUNhbGxlZT4pICogY2FsbGVlQ291
bnQgKiAyKQorICAgICAgICAgICAgKyAoc2l6ZW9mKHZvaWQqKSAqIGZ1bmN0aW9uSW1wb3J0Q291
bnQpOworICAgIH0KKworICAgIHZvaWQqJiBpbXBvcnRXYXNtVG9KU1N0dWIodW5zaWduZWQgY2Fs
bGVlQ291bnQsIHVuc2lnbmVkIGltcG9ydEluZGV4KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG9m
ZnNldE9mQ2FsbGVlcygpICsgc2l6ZW9mKFdyaXRlQmFycmllcjxKU1dlYkFzc2VtYmx5Q2FsbGVl
PikgKiBudW1DYWxsZWVzICogMjsKKyAgICAgICAgcmV0dXJuICpiaXR3aXNlX2Nhc3Q8dm9pZCoq
PihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZJbXBvcnRXYXNtVG9KU1N0dWIo
Y2FsbGVlQ291bnQsIGltcG9ydEluZGV4KSk7CiAgICAgfQogCiAgICAgY2xhc3MgVW5jb25kaXRp
b25hbEZpbmFsaXplciA6IHB1YmxpYyBKU0M6OlVuY29uZGl0aW9uYWxGaW5hbGl6ZXIgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5SW5zdGFuY2UuY3BwCShyZXZpc2lvbiAyMTQ2OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
Niw3ICs5Niw4IEBAIHZvaWQgSlNXZWJBc3NlbWJseUluc3RhbmNlOjp2aXNpdENoaWxkcmUKIAog
dm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmFkZFVuaXRpYWxpemVkQ29kZUJsb2NrKFZNJiB2
bSwgUmVmPFdhc206OlBsYW4+IHBsYW4pCiB7Ci0gICAgYXV0byogY29kZUJsb2NrID0gSlNXZWJB
c3NlbWJseUNvZGVCbG9jazo6Y3JlYXRlKHZtLCBtb2R1bGUoKSwgbWVtb3J5TW9kZSgpLCBXVEZN
b3ZlKHBsYW4pLCBtb2R1bGUoKS0+bW9kdWxlSW5mb3JtYXRpb24oKS5pbnRlcm5hbEZ1bmN0aW9u
Q291bnQoKSk7CisgICAgYXV0byogY29kZUJsb2NrID0gSlNXZWJBc3NlbWJseUNvZGVCbG9jazo6
Y3JlYXRlKAorICAgICAgICB2bSwgbW9kdWxlKCksIG1lbW9yeU1vZGUoKSwgV1RGTW92ZShwbGFu
KSwgbW9kdWxlKCktPm1vZHVsZUluZm9ybWF0aW9uKCkuaW50ZXJuYWxGdW5jdGlvbkNvdW50KCks
IG1vZHVsZSgpLT5tb2R1bGVJbmZvcm1hdGlvbigpLmltcG9ydEZ1bmN0aW9uQ291bnQoKSk7CiAg
ICAgbV9jb2RlQmxvY2suc2V0KHZtLCB0aGlzLCBjb2RlQmxvY2spOwogICAgIEFTU0VSVCghY29k
ZUJsb2NrLT5pbml0aWFsaXplZCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCShyZXZpc2lvbiAyMTQ2
OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZkNhbGxlZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1dl
YkFzc2VtYmx5SW5zdGFuY2UsIG1fY2FsbGVlKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZHbG9iYWxzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSwgbV9nbG9iYWxzKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIG1fdm0pOyB9Cisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNvZGVCbG9jaygpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIG1fY29kZUJsb2NrKTsgfQogICAgIHN0YXRp
YyBzaXplX3Qgb2Zmc2V0T2ZJbXBvcnRGdW5jdGlvbnMoKSB7IHJldHVybiBXVEY6OnJvdW5kVXBU
b011bHRpcGxlT2Y8c2l6ZW9mKFdyaXRlQmFycmllcjxKU0NlbGw+KT4oc2l6ZW9mKEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSkpOyB9CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkltcG9ydEZ1bmN0
aW9uKHNpemVfdCBpbXBvcnRGdW5jdGlvbk51bSkgeyByZXR1cm4gb2Zmc2V0T2ZJbXBvcnRGdW5j
dGlvbnMoKSArIGltcG9ydEZ1bmN0aW9uTnVtICogc2l6ZW9mKHNpemVvZihXcml0ZUJhcnJpZXI8
SlNDZWxsPikpOyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>