<?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>156277</bug_id>
          
          <creation_ts>2016-04-05 20:55:00 -0700</creation_ts>
          <short_desc>Improve some other cases of context-sensitive inlining</short_desc>
          <delta_ts>2016-04-05 21:46:39 -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>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181142</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-05 20:55:00 -0700</bug_when>
    <thetext>I found some simple improvements in the bytecode parser that greatly improve the chances of context-sensitive inlining happening by revealing the callee constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181147</commentid>
    <comment_count>1</comment_count>
      <attachid>275744</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-05 21:03:57 -0700</bug_when>
    <thetext>Created attachment 275744
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181148</commentid>
    <comment_count>2</comment_count>
      <attachid>275744</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-04-05 21:14:52 -0700</bug_when>
    <thetext>Comment on attachment 275744
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:32
&gt; +        This is a 14% speed-up on Octane/raytrace.

On one hand, optimizing at the parser level is pretty weird.
On the other hand...14%!

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1176
&gt; +        return;

You don&apos;t need the return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181160</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-05 21:46:39 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/199093</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275744</attachid>
            <date>2016-04-05 21:03:57 -0700</date>
            <delta_ts>2016-04-05 21:14:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12127</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MDkxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDE2LTA0LTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wcm92ZSBzb21lIG90aGVyIGNhc2VzIG9mIGNvbnRleHQtc2Vuc2l0aXZlIGlubGluaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYyNzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgaW1wbGVtZW50cyBzb21lIGltcHJvdmVtZW50cyBmb3IgaW5saW5pbmc6CisKKyAgICAgICAg
LSBXZSBubyBsb25nZXIgZG8gZ3VhcmRlZCBpbmxpbmluZyB3aGVuIHRoZSBwcm9maWxpbmcgZG9l
c24ndCBjb21lIGZyb20gYSBzdHViLiBEb2luZyBzbyB3b3VsZCBoYXZlCisgICAgICAgICAgYmVl
biByaXNreSwgYW5kIGFjY29yZGluZyB0byBiZW5jaG1hcmtzLCBpdCB3YXNuJ3QgY29tbW9uIGVu
b3VnaCB0byBtYXR0ZXIuIEkgdGhpbmsgaXQncyBiZXR0ZXIgdG8KKyAgICAgICAgICBlcnIgb24g
dGhlIHNpZGUgb2Ygbm90IGlubGluaW5nLgorICAgICAgICAKKyAgICAgICAgLSBUaGUgam5lcV9w
dHIgcGF0dGVybiBmb3IgdmFyaWFkaWMgY2FsbHMgbm8gbG9uZ2VyIGJyZWFrcyB0aGUgYmFzaWMg
YmxvY2suIE5vdCBicmVha2luZyB0aGUgYmxvY2sKKyAgICAgICAgICBpbmNyZWFzZXMgdGhlIGNo
YW5jZXMgb2YgdGhlIHBhcnNlciBzZWVpbmcgdGhlIGNhbGxlZSBjb25zdGFudC4gV2hpbGUgaW5s
aW5pbmcgZG9lc24ndCByZXF1aXJlIGEKKyAgICAgICAgICBjYWxsZWUgY29uc3RhbnQsIHNvbWV0
aW1lcyBpdCBtYWtlcyBhIGRpZmZlcmVuY2UuIE5vdGUgdGhhdCB3ZSB3ZXJlIHByZXZpb3VzbHkg
YnJlYWtpbmcgdGhlIGJsb2NrCisgICAgICAgICAgZm9yIG5vIHJlYXNvbiBhdCBhbGw6IGlmIHRo
ZSBib3VuZGFyeSBhZnRlciBqbmVxX3B0ciBpcyBhIGp1bXAgdGFyZ2V0IGZyb20gc29tZSBvdGhl
ciBqdW1wLCB0aGVuCisgICAgICAgICAgdGhlIHBhcnNlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnJl
YWsgdGhlIGJsb2NrIGZvciB1cy4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIGFkZCBhbnkgYmxvY2sg
YnJlYWtpbmcKKyAgICAgICAgICBvdXJzZWx2ZXMgc2luY2Ugd2UgaW1wbGVtZW50IGpuZXFfcHRy
IGJ5IGlnbm9yaW5nIHRoZSBhZmZpcm1hdGl2ZSBqdW1wIGRlc3RpbmF0aW9uIGFuZCBpbnNlcnRp
bmcgYQorICAgICAgICAgIGNoZWNrIGFuZCBmYWxsaW5nIHRocm91Z2guCisgICAgICAgIAorICAg
ICAgICAtIGdldF9ieV9pZCBoYW5kbGluZyBub3cgdHJpZXMgdG8gYXBwbHkgc29tZSBjb21tb24g
c2Vuc2UgdG8gaXRzIHN0YXR1cyBvYmplY3QuIEluIHBhcnRpY3VsYXIsIGlmCisgICAgICAgICAg
dGhlIHNvdXJjZSBpcyBhIE5ld09iamVjdCBhbmQgdGhlcmUgd2FzIG5vIGludGVyZmVyaW5nIG9w
ZXJhdGlvbiB0aGF0IGNvdWxkIGNsb2JiZXIgdGhlIHN0cnVjdHVyZSwKKyAgICAgICAgICB0aGVu
IHdlIGtub3cgd2hpY2ggY2FzZSBvZiBhIHBvbHltb3JwaGljIEdldEJ5SWRTdGF0dXMgd2Ugd291
bGQgdGFrZS4gVGhpcyBhcmlzZXMgaW4gc29tZQorICAgICAgICAgIGNvbnN0cnVjdG9yIHBhdHRl
cm5zLgorICAgICAgICAKKyAgICAgICAgTG9uZyB0ZXJtLCB3ZSBzaG91bGQgYWRkcmVzcyBhbGwg
b2YgdGhlc2UgY2FzZXMgY29tcHJlaGVuc2l2ZWx5IGJ5IGhhdmluZyBhIGxhdGUgaW5saW5lci4g
VGhlIGlubGluZXIKKyAgICAgICAgYmVpbmcgcGFydCBvZiB0aGUgYnl0ZWNvZGUgcGFyc2VyIG1l
YW5zIHRoYXQgdGhlcmUgaXMgYSBsb3Qgb2YgY29tcGxleGl0eSBpbiB0aGUgcGFyc2VyIGFuZCBp
dAorICAgICAgICBwcmV2ZW50cyB1cyBmcm9tIGlubGluaW5nIHVwb24gbGVhcm5pbmcgbmV3IGlu
Zm9ybWF0aW9uIGZyb20gc3RhdGljIGFuYWx5c2lzLiBCdXQgZm9yIG5vdywgSSB0aGluaworICAg
ICAgICBpdCdzIGZpbmUgdG8gZXhwZXJpbWVudCB3aXRoIG9uZS1vZmYgaGFja3MsIGlmIG9ubHkg
dG8gbGVhcm4gd2hhdCB0aGUgcG9zc2liaWxpdGllcyBhcmUuCisgICAgICAgIAorICAgICAgICBU
aGlzIGlzIGEgMTQlIHNwZWVkLXVwIG9uIE9jdGFuZS9yYXl0cmFjZS4KKworICAgICAgICAqIGJ5
dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6
OmR1bXApOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmg6CisgICAgICAgIChK
U0M6OkNhbGxMaW5rU3RhdHVzOjpjb3VsZFRha2VTbG93UGF0aCk6CisgICAgICAgIChKU0M6OkNh
bGxMaW5rU3RhdHVzOjpzZXRDb3VsZFRha2VTbG93UGF0aCk6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjp2YXJpYW50cyk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjpzaXpl
KToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmF0KToKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6bWFrZXND
YWxscyk6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmZpbHRlcik6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmR1bXApOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuaDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6d2FzU2VlbkluSklUKToKKyAgICAg
ICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVD
b2RlUGFyc2VyOjpoYW5kbGVDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6cmVmaW5lU3RhdGljYWxseSk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZVZhcmFyZ3NDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlSW5saW5pbmcpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIwMTYtMDQtMDUgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIxOTkwNzMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDE5OTA4MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0Miw2ICszNDIsOSBAQCB2b2lkIENhbGxMaW5rU3RhdHVzOjpkdW1wKFByaW50U3RyZWFt
JiBvCiAgICAgaWYgKG1fY291bGRUYWtlU2xvd1BhdGgpCiAgICAgICAgIG91dC5wcmludChjb21t
YSwgIkNvdWxkIFRha2UgU2xvdyBQYXRoIik7CiAgICAgCisgICAgaWYgKG1faXNCYXNlZE9uU3R1
YikKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQmFzZWQgT24gU3R1YiIpOworICAgIAogICAg
IGlmICghbV92YXJpYW50cy5pc0VtcHR5KCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgbGlz
dER1bXAobV92YXJpYW50cykpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmgJKHJldmlzaW9uIDE5OTA4MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDEsNiArMTAxLDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgY291bGRUYWtlU2xv
d1BhdGgoKSBjb25zdCB7IHJldHVybiBtX2NvdWxkVGFrZVNsb3dQYXRoOyB9CiAgICAgCisgICAg
dm9pZCBzZXRDb3VsZFRha2VTbG93UGF0aChib29sIHZhbHVlKSB7IG1fY291bGRUYWtlU2xvd1Bh
dGggPSB2YWx1ZTsgfQorICAgIAogICAgIENhbGxWYXJpYW50TGlzdCB2YXJpYW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fdmFyaWFudHM7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV92YXJpYW50cy5zaXplKCk7IH0KICAgICBDYWxsVmFyaWFudCBhdCh1bnNpZ25lZCBpKSBj
b25zdCB7IHJldHVybiBtX3ZhcmlhbnRzW2ldOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxOTkwODApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1MCw2ICszNTAsMjIgQEAgYm9vbCBHZXRCeUlkU3RhdHVzOjptYWtlc0Nh
bGxzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgR2V0QnlJZFN0YXR1czo6
ZmlsdGVyKGNvbnN0IFN0cnVjdHVyZVNldCYgc2V0KQoreworICAgIGlmIChtX3N0YXRlICE9IFNp
bXBsZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBhbHNv
IGZpbHRlciB0aGUgdmFyaWFudHMgdGhlbXNlbHZlcy4KKyAgICAKKyAgICBtX3ZhcmlhbnRzLnJl
bW92ZUFsbE1hdGNoaW5nKAorICAgICAgICBbJl0gKEdldEJ5SWRWYXJpYW50JiB2YXJpYW50KSAt
PiBib29sIHsKKyAgICAgICAgICAgIHJldHVybiAhdmFyaWFudC5zdHJ1Y3R1cmVTZXQoKS5vdmVy
bGFwcyhzZXQpOworICAgICAgICB9KTsKKyAgICAKKyAgICBpZiAobV92YXJpYW50cy5pc0VtcHR5
KCkpCisgICAgICAgIG1fc3RhdGUgPSBOb0luZm9ybWF0aW9uOworfQorCiB2b2lkIEdldEJ5SWRT
dGF0dXM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoIigi
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuaAkocmV2aXNpb24gMTk5MDgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsOSBAQCBwdWJsaWM6
CiAgICAgCiAgICAgYm9vbCB3YXNTZWVuSW5KSVQoKSBjb25zdCB7IHJldHVybiBtX3dhc1NlZW5J
bkpJVDsgfQogICAgIAorICAgIC8vIEF0dGVtcHRzIHRvIHJlZHVjZSB0aGUgc2V0IG9mIHZhcmlh
bnRzIHRvIGZpdCB0aGUgZ2l2ZW4gc3RydWN0dXJlIHNldC4gVGhpcyBtYXkgYmUgYXBwcm94aW1h
dGUuCisgICAgdm9pZCBmaWx0ZXIoY29uc3QgU3RydWN0dXJlU2V0Jik7CisgICAgCiAgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9u
IDE5OTA4MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMywxMCBAQAogI2luY2x1ZGUgIkNhbGxMaW5r
U3RhdHVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0
aEpJVFR5cGUuaCIKKyNpbmNsdWRlICJERkdBYnN0cmFjdEhlYXAuaCIKICNpbmNsdWRlICJERkdB
cnJheU1vZGUuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJERkdD
bG9iYmVyaXplLmgiCiAjaW5jbHVkZSAiREZHQ2xvYmJlcnNFeGl0U3RhdGUuaCIKICNpbmNsdWRl
ICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKQEAgLTE3Nyw2ICsxNzksNyBA
QCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoZWNrc0Z1bmN0b3I+CiAgICAgYm9v
bCBoYW5kbGVNaW5NYXgoaW50IHJlc3VsdE9wZXJhbmQsIE5vZGVUeXBlIG9wLCBpbnQgcmVnaXN0
ZXJPZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgY29uc3QgQ2hlY2tzRnVu
Y3RvciYgaW5zZXJ0Q2hlY2tzKTsKIAorICAgIHZvaWQgcmVmaW5lU3RhdGljYWxseShDYWxsTGlu
a1N0YXR1cyYsIE5vZGUqIGNhbGxUYXJnZXQpOwogICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyBy
ZXNvbHZlcyBpc3N1ZXMgc3Vycm91bmRpbmcgaW5saW5pbmcgYW5kIGludHJpbnNpY3MuCiAgICAg
ZW51bSBUZXJtaW5hbGl0eSB7IFRlcm1pbmFsLCBOb25UZXJtaW5hbCB9OwogICAgIFRlcm1pbmFs
aXR5IGhhbmRsZUNhbGwoCkBAIC0yMzAsOCArMjMzLDcgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBz
dG9yZShOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBQdXRCeUlkVmFyaWFu
dCYsIE5vZGUqIHZhbHVlKTsKICAgICAgICAgCiAgICAgdm9pZCBoYW5kbGVHZXRCeUlkKAotICAg
ICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSwgTm9kZSogYmFzZSwg
dW5zaWduZWQgaWRlbnRpZmllck51bWJlciwKLSAgICAgICAgY29uc3QgR2V0QnlJZFN0YXR1cyYp
OworICAgICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSwgTm9kZSog
YmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgR2V0QnlJZFN0YXR1cyk7CiAgICAgdm9p
ZCBlbWl0UHV0QnlJZCgKICAgICAgICAgTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciwgTm9kZSogdmFsdWUsICBjb25zdCBQdXRCeUlkU3RhdHVzJiwgYm9vbCBpc0RpcmVjdCk7
CiAgICAgdm9pZCBoYW5kbGVQdXRCeUlkKApAQCAtMTE2NywxNSArMTE2OSwyMiBAQCBCeXRlQ29k
ZVBhcnNlcjo6VGVybWluYWxpdHkgQnl0ZUNvZGVQYXJzCiAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0
LCBjYWxsTGlua1N0YXR1cywgZ2V0UHJlZGljdGlvbigpKTsKIH0KIAordm9pZCBCeXRlQ29kZVBh
cnNlcjo6cmVmaW5lU3RhdGljYWxseShDYWxsTGlua1N0YXR1cyYgY2FsbExpbmtTdGF0dXMsIE5v
ZGUqIGNhbGxUYXJnZXQpCit7CisgICAgaWYgKGNhbGxUYXJnZXQtPmlzQ2VsbENvbnN0YW50KCkp
IHsKKyAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0UHJvdmVuQ29uc3RhbnRDYWxsZWUoQ2FsbFZh
cmlhbnQoY2FsbFRhcmdldC0+YXNDZWxsKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30K
KwogQnl0ZUNvZGVQYXJzZXI6OlRlcm1pbmFsaXR5IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDYWxs
KAogICAgIGludCByZXN1bHQsIE5vZGVUeXBlIG9wLCBJbmxpbmVDYWxsRnJhbWU6OktpbmQga2lu
ZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25TaXplLAogICAgIE5vZGUqIGNhbGxUYXJnZXQsIGludCBh
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50IHJlZ2lzdGVyT2Zmc2V0LAogICAgIENhbGxM
aW5rU3RhdHVzIGNhbGxMaW5rU3RhdHVzLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKQogewog
ICAgIEFTU0VSVChyZWdpc3Rlck9mZnNldCA8PSAwKTsKLSAgICAKLSAgICBpZiAoY2FsbFRhcmdl
dC0+aXNDZWxsQ29uc3RhbnQoKSkKLSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0UHJvdmVuQ29u
c3RhbnRDYWxsZWUoQ2FsbFZhcmlhbnQoY2FsbFRhcmdldC0+YXNDZWxsKCkpKTsKKworICAgIHJl
ZmluZVN0YXRpY2FsbHkoY2FsbExpbmtTdGF0dXMsIGNhbGxUYXJnZXQpOwogICAgIAogICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlREZHQnl0ZUNvZGVQYXJzaW5nKCkpCiAgICAgICAgIGRhdGFMb2co
IiAgICBIYW5kbGluZyBjYWxsIGF0ICIsIGN1cnJlbnRDb2RlT3JpZ2luKCksICI6ICIsIGNhbGxM
aW5rU3RhdHVzLCAiXG4iKTsKQEAgLTEyMjcsOCArMTIzNiw3IEBAIEJ5dGVDb2RlUGFyc2VyOjpU
ZXJtaW5hbGl0eSBCeXRlQ29kZVBhcnMKICAgICBDYWxsTGlua1N0YXR1cyBjYWxsTGlua1N0YXR1
cyA9IENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAogICAgICAgICBtX2lubGluZVN0YWNrVG9w
LT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCksCiAgICAgICAgIG1faW5saW5l
U3RhY2tUb3AtPm1fY2FsbExpbmtJbmZvcywgbV9jYWxsQ29udGV4dE1hcCk7Ci0gICAgaWYgKGNh
bGxUYXJnZXQtPmlzQ2VsbENvbnN0YW50KCkpCi0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldFBy
b3ZlbkNvbnN0YW50Q2FsbGVlKENhbGxWYXJpYW50KGNhbGxUYXJnZXQtPmFzQ2VsbCgpKSk7Cisg
ICAgcmVmaW5lU3RhdGljYWxseShjYWxsTGlua1N0YXR1cywgY2FsbFRhcmdldCk7CiAgICAgCiAg
ICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VERkdCeXRlQ29kZVBhcnNpbmcoKSkKICAgICAgICAgZGF0
YUxvZygiICAgIFZhcmFyZ3MgY2FsbCBsaW5rIHN0YXR1cyBhdCAiLCBjdXJyZW50Q29kZU9yaWdp
bigpLCAiOiAiLCBjYWxsTGlua1N0YXR1cywgIlxuIik7CkBAIC0xNzg1LDYgKzE3OTMsMTggQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAgICAgCisgICAgLy8gSWYgdGhlIGNsYWltIGlzIHRoYXQgdGhpcyBkaWQgbm90
IG9yaWdpbmF0ZSBmcm9tIGEgc3R1YiwgdGhlbiB3ZSBkb24ndCB3YW50IHRvIGVtaXQgYSBzd2l0
Y2gKKyAgICAvLyBzdGF0ZW1lbnQuIFdoZW5ldmVyIHRoZSBub24tc3R1YiBwcm9maWxpbmcgc2F5
cyB0aGF0IGl0IGNvdWxkIHRha2Ugc2xvdyBwYXRoLCBpdCByZWFsbHkgbWVhbnMgdGhhdAorICAg
IC8vIGl0IGhhcyBubyBpZGVhLgorICAgIGlmICghT3B0aW9uczo6dXNlUG9seW1vcnBoaWNDYWxs
SW5saW5pbmdGb3JOb25TdHViU3RhdHVzKCkKKyAgICAgICAgJiYgIWNhbGxMaW5rU3RhdHVzLmlz
QmFzZWRPblN0dWIoKSkgeworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgZGF0
YUxvZygiQmFpbGluZyBpbmxpbmluZyAobm9uLXN0dWIgcG9seW1vcnBoaXNtKS5cbiIpOworICAg
ICAgICAgICAgZGF0YUxvZygiU3RhY2s6ICIsIGN1cnJlbnRDb2RlT3JpZ2luKCksICJcbiIpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCiAgICAgdW5zaWdu
ZWQgb2xkT2Zmc2V0ID0gbV9jdXJyZW50SW5kZXg7CiAgICAgCiAgICAgYm9vbCBhbGxBcmVDbG9z
dXJlQ2FsbHMgPSB0cnVlOwpAQCAtMjg2Nyw4ICsyODg3LDI0IEBAIE5vZGUqIEJ5dGVDb2RlUGFy
c2VyOjpzdG9yZShOb2RlKiBiYXNlLCAKIAogdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0
QnlJZCgKICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0
aW9uLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLAotICAgIGNvbnN0IEdl
dEJ5SWRTdGF0dXMmIGdldEJ5SWRTdGF0dXMpCisgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3Rh
dHVzKQogeworICAgIC8vIEF0dGVtcHQgdG8gcmVkdWNlIHRoZSBzZXQgb2YgdGhpbmdzIGluIHRo
ZSBHZXRCeUlkU3RhdHVzLgorICAgIGlmIChiYXNlLT5vcCgpID09IE5ld09iamVjdCkgeworICAg
ICAgICBib29sIG9rID0gdHJ1ZTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9jdXJyZW50
QmxvY2stPnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgTm9kZSogbm9kZSA9IG1fY3VycmVu
dEJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgIGlmIChub2RlID09IGJhc2UpCisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcChtX2dyYXBoLCBub2Rl
LCBKU0NlbGxfc3RydWN0dXJlSUQpKSB7CisgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBp
ZiAob2spCisgICAgICAgICAgICBnZXRCeUlkU3RhdHVzLmZpbHRlcihiYXNlLT5zdHJ1Y3R1cmUo
KSk7CisgICAgfQorICAgIAogICAgIE5vZGVUeXBlIGdldEJ5SWQgPSBnZXRCeUlkU3RhdHVzLm1h
a2VzQ2FsbHMoKSA/IEdldEJ5SWRGbHVzaCA6IEdldEJ5SWQ7CiAgICAgCiAgICAgaWYgKCFnZXRC
eUlkU3RhdHVzLmlzU2ltcGxlKCkgfHwgIWdldEJ5SWRTdGF0dXMubnVtVmFyaWFudHMoKSB8fCAh
T3B0aW9uczo6dXNlQWNjZXNzSW5saW5pbmcoKSkgewpAQCAtNDE3Myw4ICs0MjA5LDcgQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICAgICAgICAgIE9w
SW5mbyhtX2dyYXBoLmZyZWV6ZShzdGF0aWNfY2FzdDxKU0NlbGwqPihhY3R1YWxQb2ludGVyRm9y
KAogICAgICAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jaywgY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUuc3BlY2lhbFBvaW50ZXIpKSkpLAogICAgICAgICAgICAgICAg
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpKTsK
LSAgICAgICAgICAgIGFkZFRvR3JhcGgoSnVtcCwgT3BJbmZvKG1fY3VycmVudEluZGV4ICsgT1BD
T0RFX0xFTkdUSChvcF9qbmVxX3B0cikpKTsKLSAgICAgICAgICAgIExBU1RfT1BDT0RFKG9wX2pu
ZXFfcHRyKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2puZXFfcHRyKTsKIAogICAgICAg
ICBjYXNlIG9wX3Jlc29sdmVfc2NvcGU6IHsKICAgICAgICAgICAgIGludCBkc3QgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTk5MDgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNiArMTk1LDcgQEAgdHlw
ZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCB1c2VQb2x5dmFyaWFu
dERldmlydHVhbGl6YXRpb24sIHRydWUsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHVzZVBvbHlt
b3JwaGljQWNjZXNzSW5saW5pbmcsIHRydWUsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHVzZVBv
bHltb3JwaGljQ2FsbElubGluaW5nLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VQ
b2x5bW9ycGhpY0NhbGxJbmxpbmluZ0Zvck5vblN0dWJTdGF0dXMsIGZhbHNlLCBudWxscHRyKSBc
CiAgICAgdih1bnNpZ25lZCwgbWF4UG9seW1vcnBoaWNDYWxsVmFyaWFudExpc3RTaXplLCAxNSwg
bnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIG1heFBvbHltb3JwaGljQ2FsbFZhcmlhbnRMaXN0
U2l6ZUZvclRvcFRpZXIsIDUsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBtYXhQb2x5bW9y
cGhpY0NhbGxWYXJpYW50c0ZvcklubGluaW5nLCA1LCBudWxscHRyKSBcCg==
</data>
<flag name="review"
          id="300055"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>