<?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>20874</bug_id>
          
          <creation_ts>2008-09-15 21:26:56 -0700</creation_ts>
          <short_desc>op_resolve does not do any form of caching</short_desc>
          <delta_ts>2008-09-15 22:54:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>91309</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-15 21:26:56 -0700</bug_when>
    <thetext>op_resolve is slower than necessary as it does no property access caching</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91313</commentid>
    <comment_count>1</comment_count>
      <attachid>23460</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-15 22:01:29 -0700</bug_when>
    <thetext>Created attachment 23460
Patch-o-rama</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91315</commentid>
    <comment_count>2</comment_count>
      <attachid>23460</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-15 22:30:30 -0700</bug_when>
    <thetext>Comment on attachment 23460
Patch-o-rama

r=me with the changes discussed on IRC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91318</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-15 22:54:13 -0700</bug_when>
    <thetext>	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/VM/CTI.cpp
	M	JavaScriptCore/VM/CTI.h
	M	JavaScriptCore/VM/CodeBlock.cpp
	M	JavaScriptCore/VM/CodeGenerator.cpp
	M	JavaScriptCore/VM/Machine.cpp
	M	JavaScriptCore/VM/Machine.h
	M	JavaScriptCore/VM/Opcode.h
Committed r36480

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23460</attachid>
            <date>2008-09-15 22:01:29 -0700</date>
            <delta_ts>2008-09-15 22:30:30 -0700</delta_ts>
            <desc>Patch-o-rama</desc>
            <filename>resolve-faster.patch</filename>
            <type>text/plain</type>
            <size>14536</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA0YmYyYmQzLi4zNzJhZDVmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMDgtMDktMTUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgMjA4NzQ6IG9wX3Jl
c29sdmUgZG9lcyBub3QgZG8gYW55IGZvcm0gb2YgY2FjaGluZworICAgICAgICA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc0PgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBhbiBvcF9yZXNvbHZlX2dsb2JhbCBvcGNvZGUgdG8gaGFuZGxlIChhbmQgY2FjaGUp
CisgICAgICAgIHByb3BlcnR5IGxvb2t1cCB3ZSBjYW4gc3RhdGljYWxseSBkZXRlcm1pbmUgbXVz
dCBvY2N1ciBvbiB0aGUgZ2xvYmFsCisgICAgICAgIG9iamVjdCAoaWYgYXQgYWxsKS4KKworICAg
ICAgICAzJSBwcm9ncmVzc2lvbiBvbiBzdW5zcGlkZXIsIDMuMnggaW1wcm92ZW1lbnQgdG8gYml0
b3BzLWJpdHdpc2UtYW5kLCBhbmQKKyAgICAgICAgMTAlIGluIG1hdGgtcGFydGlhbC1zdW1zCisK
KyAgICAgICAgKiBWTS9DVEkuY3BwOgorICAgICAgICAoSlNDOjpDVEk6OnByaXZhdGVDb21waWxl
TWFpblBhc3MpOgorICAgICAgICAqIFZNL0NUSS5oOgorICAgICAgICAqIFZNL0NvZGVCbG9jay5j
cHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcCk6CisgICAgICAgICogVk0vQ29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkNvZGVHZW5lcmF0b3I6OmZpbmRTY29wZWRQcm9w
ZXJ0eSk6CisgICAgICAgIChKU0M6OkNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbHZlKToKKyAgICAg
ICAgKiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEpTQzo6cmVzb2x2ZV9nbG9iYWwpOgorICAg
ICAgICAoSlNDOjpNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgIChKU0M6Ok1hY2hp
bmU6OmN0aV9vcF9yZXNvbHZlX2dsb2JhbCk6CisgICAgICAgICogVk0vTWFjaGluZS5oOgorICAg
ICAgICAqIFZNL09wY29kZS5oOgorCiAyMDA4LTA5LTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvVk0vQ1RJLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL1ZNL0NUSS5jcHAKaW5kZXggNzcyNDdlYy4uYjliM2JlNyAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvVk0vQ1RJLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9WTS9DVEkuY3Bw
CkBAIC05NTIsNiArOTUyLDM5IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkK
ICAgICAgICAgICAgIGkgKz0gNDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAg
ICAgIGNhc2Ugb3BfcmVzb2x2ZV9nbG9iYWw6IHsKKyAgICAgICAgICAgIC8vIEZhc3QgY2FzZQor
ICAgICAgICAgICAgdW5zaWduZWQgZ2xvYmFsT2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZD4oaW5zdHJ1Y3Rpb25baSArIDJdLnUuanNDZWxsKTsKKyAgICAgICAgICAgIElkZW50aWZp
ZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmllcnNbaW5zdHJ1Y3Rpb25baSArIDNd
LnUub3BlcmFuZF0pOworICAgICAgICAgICAgdm9pZCogc3RydWN0dXJlSURBZGRyID0gcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oaW5zdHJ1Y3Rpb24gKyBpICsgNCk7CisgICAgICAgICAgICB2b2lk
KiBvZmZzZXRBZGRyID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oaW5zdHJ1Y3Rpb24gKyBpICsg
NSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIFN0cnVjdHVyZUlEIG9mIGdsb2JhbCBvYmplY3QK
KyAgICAgICAgICAgIG1faml0Lm1vdmxfaTMycihnbG9iYWxPYmplY3QsIFg4Njo6ZWF4KTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmxfbXIoc3RydWN0dXJlSURBZGRyLCBYODY6OmVkeCk7CisgICAg
ICAgICAgICBtX2ppdC5jbXBsX3JtKFg4Njo6ZWR4LCBPQkpFQ1RfT0ZGU0VUKEpTQ2VsbCwgbV9z
dHJ1Y3R1cmVJRCksIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3Jj
IHNsb3dDYXNlID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7IC8vIFN0cnVjdHVyZUlEcyBkb24n
dCBtYXRjaAorICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkoc2xv
d0Nhc2UsIGkpKTsKKworICAgICAgICAgICAgLy8gTG9hZCBjYWNoZWQgcHJvcGVydHkKKyAgICAg
ICAgICAgIG1faml0Lm1vdmxfbXIoT0JKRUNUX09GRlNFVChKU0dsb2JhbE9iamVjdCwgbV9wcm9w
ZXJ0eVN0b3JhZ2UpLCBYODY6OmVheCwgWDg2OjplYXgpOworICAgICAgICAgICAgbV9qaXQubW92
bF9tcihvZmZzZXRBZGRyLCBYODY6OmVkeCk7CisgICAgICAgICAgICBtX2ppdC5tb3ZsX21yKDAs
IFg4Njo6ZWF4LCBYODY6OmVkeCwgc2l6ZW9mKEpTVmFsdWUqKSwgWDg2OjplYXgpOworICAgICAg
ICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKKyAgICAg
ICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGVuZCA9IG1faml0LmVtaXRVbmxpbmtlZEptcCgp
OworCisgICAgICAgICAgICAvLyBTbG93IGNhc2UKKyAgICAgICAgICAgIG1faml0Lmxpbmsoc2xv
d0Nhc2UsIG1faml0LmxhYmVsKCkpOworICAgICAgICAgICAgZW1pdFB1dEFyZ0NvbnN0YW50KGds
b2JhbE9iamVjdCwgMCk7CisgICAgICAgICAgICBlbWl0UHV0QXJnQ29uc3RhbnQocmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZD4oaWRlbnQpLCA0KTsKKyAgICAgICAgICAgIGVtaXRQdXRBcmdDb25z
dGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihpbnN0cnVjdGlvbiArIGkpLCA4KTsKKyAg
ICAgICAgICAgIGVtaXRDYWxsKGksIE1hY2hpbmU6OmN0aV9vcF9yZXNvbHZlX2dsb2JhbCk7Cisg
ICAgICAgICAgICBlbWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwor
ICAgICAgICAgICAgbV9qaXQubGluayhlbmQsIG1faml0LmxhYmVsKCkpOworICAgICAgICAgICAg
aSArPSA2OworICAgICAgICAgICAgKytzdHJ1Y3R1cmVJREluc3RydWN0aW9uSW5kZXg7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBDVElfQ09NUElMRV9CSU5BUllfT1Ao
b3BfZGl2KQogICAgICAgICBjYXNlIG9wX3ByZV9kZWM6IHsKICAgICAgICAgICAgIGludCBzcmNE
c3QgPSBpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kOwpAQCAtMTYyNSw2ICsxNjU4LDExIEBA
IHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBpICs9IDg7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX3Jlc29sdmVf
Z2xvYmFsOiB7CisgICAgICAgICAgICArK3N0cnVjdHVyZUlESW5zdHJ1Y3Rpb25JbmRleDsKKyAg
ICAgICAgICAgIGkgKz0gNjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3BfbG9vcF9pZl9sZXNzZXE6IHsKICAgICAgICAgICAgIGVtaXRTbG93U2NyaXB0Q2hl
Y2soaSk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL1ZNL0NUSS5oIGIvSmF2YVNjcmlw
dENvcmUvVk0vQ1RJLmgKaW5kZXggMjJiYmRmYy4uMzFlZGEwZiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvVk0vQ1RJLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvVk0vQ1RJLmgKQEAgLTg0LDYg
Kzg0LDEwIEBACiAjZGVmaW5lIEFSR19pbnQyICgoaW50KSgoQVJHUylbMl0pKQogI2RlZmluZSBB
UkdfaW50MyAoKGludCkoKEFSR1MpWzNdKSkKICNkZWZpbmUgQVJHX2ludDQgKChpbnQpKChBUkdT
KVs0XSkpCisjZGVmaW5lIEFSR192UEMxICgoSW5zdHJ1Y3Rpb24qKSgoQVJHUylbMV0pKQorI2Rl
ZmluZSBBUkdfdlBDMiAoKEluc3RydWN0aW9uKikoKEFSR1MpWzJdKSkKKyNkZWZpbmUgQVJHX3ZQ
QzMgKChJbnN0cnVjdGlvbiopKChBUkdTKVszXSkpCisjZGVmaW5lIEFSR192UEM0ICgoSW5zdHJ1
Y3Rpb24qKSgoQVJHUylbNF0pKQogI2RlZmluZSBBUkdfZnVuYzEgKChGdW5jRGVjbE5vZGUqKSgo
QVJHUylbMV0pKQogI2RlZmluZSBBUkdfZnVuY2V4cDEgKChGdW5jRXhwck5vZGUqKSgoQVJHUylb
MV0pKQogI2RlZmluZSBBUkdfcmVnaXN0ZXJzMSAoKFJlZ2lzdGVyKikoKEFSR1MpWzFdKSkKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9WTS9Db2RlQmxvY2suY3BwCmluZGV4IDdiZmY0YjIuLjZiNDBjODUgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvVk0vQ29k
ZUJsb2NrLmNwcApAQCAtMjE0LDYgKzIxNCwxMCBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRTdHJ1
Y3R1cmVJRHMoY29uc3QgSW5zdHJ1Y3Rpb24qIHZQQykgY29uc3QKICAgICAgICAgcHJpbnRTdHJ1
Y3R1cmVJRCgicHV0X2J5X2lkX3JlcGxhY2UiLCB2UEMsIDQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorICAgIGlmICh2UENbMF0udS5vcGNvZGUgPT0gbWFjaGluZS0+Z2V0T3Bjb2RlKG9wX3Jl
c29sdmVfZ2xvYmFsKSkgeworICAgICAgICBwcmludFN0cnVjdHVyZUlEKCJyZXNvbHZlX2dsb2Jh
bCIsIHZQQywgNCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICAvLyBUaGVzZSBpbnN0
cnVjdGlvbnMgZG9lc24ndCByZWYgU3RydWN0dXJlSURzLgogICAgIEFTU0VSVCh2UENbMF0udS5v
cGNvZGUgPT0gbWFjaGluZS0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9nZW5lcmljKSB8fCB2UENb
MF0udS5vcGNvZGUgPT0gbWFjaGluZS0+Z2V0T3Bjb2RlKG9wX3B1dF9ieV9pZF9nZW5lcmljKSk7
CkBAIC01NDAsNiArNTQ0LDE0IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgVmVjdG9yPEluc3RydWN0aW9uPjo6Y29uc3RfaXRlcmF0b3ImCiAgICAgICAgICAg
ICBwcmludGYoIlslNGRdIHJlc29sdmVfc2tpcFx0ICVzLCAlcywgJWRcbiIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUocjApLmNfc3RyKCksIGlkTmFtZShpZDAsIGlkZW50aWZpZXJzW2lkMF0pLmNf
c3RyKCksIHNraXBMZXZlbHMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBvcF9yZXNvbHZlX2dsb2JhbDogeworICAgICAgICAgICAgaW50IHIwID0gKCsraXQp
LT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBKU1ZhbHVlKiBzY29wZSA9IHN0YXRpY19jYXN0PEpT
VmFsdWUqPigoKytpdCktPnUuanNDZWxsKTsKKyAgICAgICAgICAgIGludCBpZDAgPSAoKytpdCkt
PnUub3BlcmFuZDsKKyAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gcmVzb2x2ZV9nbG9iYWxcdCAl
cywgJXMsICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpLCB2YWx1ZVRv
U291cmNlU3RyaW5nKGV4ZWMsIHNjb3BlKS5hc2NpaSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVy
c1tpZDBdKS5jX3N0cigpKTsKKyAgICAgICAgICAgIGl0ICs9IDI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9zY29wZWRfdmFyOiB7CiAgICAgICAg
ICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBpbmRleCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwpAQCAtOTIxLDYgKzkzMywxMSBAQCB2b2lkIENvZGVCbG9jazo6
ZGVyZWZTdHJ1Y3R1cmVJRHMoSW5zdHJ1Y3Rpb24qIHZQQykgY29uc3QKICAgICAgICAgdlBDWzRd
LnUuc3RydWN0dXJlSUQtPmRlcmVmKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYg
KHZQQ1swXS51Lm9wY29kZSA9PSBtYWNoaW5lLT5nZXRPcGNvZGUob3BfcmVzb2x2ZV9nbG9iYWwp
KSB7CisgICAgICAgIGlmKHZQQ1s0XS51LnN0cnVjdHVyZUlEKQorICAgICAgICAgICAgdlBDWzRd
LnUuc3RydWN0dXJlSUQtPmRlcmVmKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgCiAg
ICAgLy8gVGhlc2UgaW5zdHJ1Y3Rpb25zIGRvbid0IHJlZiB0aGVpciBTdHJ1Y3R1cmVJRHMuCiAg
ICAgQVNTRVJUKHZQQ1swXS51Lm9wY29kZSA9PSBtYWNoaW5lLT5nZXRPcGNvZGUob3BfZ2V0X2J5
X2lkKSB8fCB2UENbMF0udS5vcGNvZGUgPT0gbWFjaGluZS0+Z2V0T3Bjb2RlKG9wX3B1dF9ieV9p
ZCkgfHwgdlBDWzBdLnUub3Bjb2RlID09IG1hY2hpbmUtPmdldE9wY29kZShvcF9nZXRfYnlfaWRf
Z2VuZXJpYykgfHwgdlBDWzBdLnUub3Bjb2RlID09IG1hY2hpbmUtPmdldE9wY29kZShvcF9wdXRf
YnlfaWRfZ2VuZXJpYykgfHwgdlBDWzBdLnUub3Bjb2RlID09IG1hY2hpbmUtPmdldE9wY29kZShv
cF9nZXRfYXJyYXlfbGVuZ3RoKSB8fCB2UENbMF0udS5vcGNvZGUgPT0gbWFjaGluZS0+Z2V0T3Bj
b2RlKG9wX2dldF9zdHJpbmdfbGVuZ3RoKSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9W
TS9Db2RlR2VuZXJhdG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuY3Bw
CmluZGV4IGYzM2QwYzkuLjQ3NmVlODUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL1ZNL0Nv
ZGVHZW5lcmF0b3IuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuY3Bw
CkBAIC03NTksMTUgKzc1OSwyMCBAQCBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjplbWl0VW5l
eHBlY3RlZExvYWQoUmVnaXN0ZXJJRCogZHN0LCBkb3VibGUgZCkKIAogYm9vbCBDb2RlR2VuZXJh
dG9yOjpmaW5kU2NvcGVkUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIGludCYg
aW5kZXgsIHNpemVfdCYgc3RhY2tEZXB0aCwgYm9vbCBmb3JXcml0aW5nLCBKU1ZhbHVlKiYgZ2xv
YmFsT2JqZWN0KQogeworICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBpdGVyID0gbV9zY29wZUNoYWlu
LT5iZWdpbigpOworICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBlbmQgPSBtX3Njb3BlQ2hhaW4tPmVu
ZCgpOworCiAgICAgLy8gQ2FzZXMgd2hlcmUgd2UgY2Fubm90IG9wdGltaXNlIHRoZSBsb29rdXAK
ICAgICBpZiAocHJvcGVydHkgPT0gcHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyB8fCAhY2FuT3B0
aW1pemVOb25Mb2NhbHMoKSkgewogICAgICAgICBzdGFja0RlcHRoID0gMDsKICAgICAgICAgaW5k
ZXggPSBtaXNzaW5nU3ltYm9sTWFya2VyKCk7CisgICAgICAgIEpTT2JqZWN0KiB0b3BTY29wZSA9
ICppdGVyOworICAgICAgICArK2l0ZXI7CisgICAgICAgIGlmIChzaG91bGRPcHRpbWl6ZUxvY2Fs
cygpICYmIG1fY29kZVR5cGUgPT0gR2xvYmFsQ29kZSkKKyAgICAgICAgICAgIGdsb2JhbE9iamVj
dCA9IHRvcFNjb3BlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgU2NvcGVD
aGFpbkl0ZXJhdG9yIGl0ZXIgPSBtX3Njb3BlQ2hhaW4tPmJlZ2luKCk7Ci0gICAgU2NvcGVDaGFp
bkl0ZXJhdG9yIGVuZCA9IG1fc2NvcGVDaGFpbi0+ZW5kKCk7CiAgICAgc2l6ZV90IGRlcHRoID0g
MDsKIAogICAgIGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyLCArK2RlcHRoKSB7CkBAIC04MjAs
NyArODI1LDcgQEAgUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdFJlc29sdmUoUmVnaXN0
ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAgICBzaXplX3QgZGVwdGggPSAw
OwogICAgIGludCBpbmRleCA9IDA7CiAgICAgSlNWYWx1ZSogZ2xvYmFsT2JqZWN0ID0gMDsKLSAg
ICBpZiAoIWZpbmRTY29wZWRQcm9wZXJ0eShwcm9wZXJ0eSwgaW5kZXgsIGRlcHRoLCBmYWxzZSwg
Z2xvYmFsT2JqZWN0KSkgeworICAgIGlmICghZmluZFNjb3BlZFByb3BlcnR5KHByb3BlcnR5LCBp
bmRleCwgZGVwdGgsIGZhbHNlLCBnbG9iYWxPYmplY3QpICYmICFnbG9iYWxPYmplY3QpIHsKICAg
ICAgICAgLy8gV2UgY2FuJ3Qgb3B0aW1pc2UgYXQgYWxsIDotKAogICAgICAgICBlbWl0T3Bjb2Rl
KG9wX3Jlc29sdmUpOwogICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgp
KTsKQEAgLTgyOCwxOCArODMzLDI4IEBAIFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRS
ZXNvbHZlKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgICAg
IHJldHVybiBkc3Q7CiAgICAgfQogCi0gICAgaWYgKGluZGV4ID09IG1pc3NpbmdTeW1ib2xNYXJr
ZXIoKSkgewotICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgYXJlIGF0IGxlYXN0IGFibGUgdG8g
ZHJvcCBhIGZldyBzY29wZSBjaGFpbnMgZnJvbSB0aGUKLSAgICAgICAgLy8gbG9va3VwIGNoYWlu
LCBhbHRob3VnaCB3ZSBzdGlsbCBuZWVkIHRvIGhhc2ggZnJvbSB0aGVuIG9uLgotICAgICAgICBl
bWl0T3Bjb2RlKG9wX3Jlc29sdmVfc2tpcCk7CisgICAgaWYgKGluZGV4ICE9IG1pc3NpbmdTeW1i
b2xNYXJrZXIoKSkKKyAgICAgICAgLy8gRGlyZWN0bHkgaW5kZXggdGhlIHByb3BlcnR5IGxvb2t1
cCBhY3Jvc3MgbXVsdGlwbGUgc2NvcGVzLiAgWWF5IQorICAgICAgICByZXR1cm4gZW1pdEdldFNj
b3BlZFZhcihkc3QsIGRlcHRoLCBpbmRleCwgZ2xvYmFsT2JqZWN0KTsKKworICAgIGlmIChnbG9i
YWxPYmplY3QpIHsKKyAgICAgICAgbV9jb2RlQmxvY2stPnN0cnVjdHVyZUlESW5zdHJ1Y3Rpb25z
LmFwcGVuZChpbnN0cnVjdGlvbnMoKS5zaXplKCkpOworICAgICAgICBlbWl0T3Bjb2RlKG9wX3Jl
c29sdmVfZ2xvYmFsKTsKICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgo
KSk7CisgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzdGF0aWNfY2FzdDxKU0NlbGwqPihn
bG9iYWxPYmplY3QpKTsKICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50
KHByb3BlcnR5KSk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkZXB0aCk7CisgICAg
ICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKKyAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKDApOwogICAgICAgICByZXR1cm4gZHN0OwogICAgIH0KIAotICAgIC8vIERpcmVjdGx5IGlu
ZGV4IHRoZSBwcm9wZXJ0eSBsb29rdXAgYWNyb3NzIG11bHRpcGxlIHNjb3Blcy4gIFlheSEKLSAg
ICByZXR1cm4gZW1pdEdldFNjb3BlZFZhcihkc3QsIGRlcHRoLCBpbmRleCwgZ2xvYmFsT2JqZWN0
KTsKKyAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgYXJlIGF0IGxlYXN0IGFibGUgdG8gZHJvcCBhIGZl
dyBzY29wZSBjaGFpbnMgZnJvbSB0aGUKKyAgICAvLyBsb29rdXAgY2hhaW4sIGFsdGhvdWdoIHdl
IHN0aWxsIG5lZWQgdG8gaGFzaCBmcm9tIHRoZW4gb24uCisgICAgZW1pdE9wY29kZShvcF9yZXNv
bHZlX3NraXApOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkpOworICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0eSkpOworICAgIGluc3Ry
dWN0aW9ucygpLmFwcGVuZChkZXB0aCk7CisgICAgcmV0dXJuIGRzdDsKIH0KIAogUmVnaXN0ZXJJ
RCogQ29kZUdlbmVyYXRvcjo6ZW1pdEdldFNjb3BlZFZhcihSZWdpc3RlcklEKiBkc3QsIHNpemVf
dCBkZXB0aCwgaW50IGluZGV4LCBKU1ZhbHVlKiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmNwcCBiL0phdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUu
Y3BwCmluZGV4IGQ1OWI1NGQuLjViMTA5M2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL1ZN
L01hY2hpbmUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUuY3BwCkBAIC0zMzEs
NiArMzMxLDQ1IEBAIHN0YXRpYyBib29sIE5FVkVSX0lOTElORSByZXNvbHZlX3NraXAoRXhlY1N0
YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogdlBDLCBSZWdpc3RlCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitzdGF0aWMgYm9vbCBORVZFUl9JTkxJTkUgcmVzb2x2ZV9nbG9iYWwoRXhlY1N0YXRlKiBl
eGVjLCBJbnN0cnVjdGlvbiogdlBDLCBSZWdpc3RlciogciwgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IEpTVmFsdWUqJiBleGNlcHRpb25WYWx1ZSkKK3sKKyAgICBpbnQgZHN0ID0gKHZQQyArIDEpLT51
Lm9wZXJhbmQ7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0
PEpTR2xvYmFsT2JqZWN0Kj4oKHZQQyArIDIpLT51LmpzQ2VsbCk7CisgICAgQVNTRVJUKGdsb2Jh
bE9iamVjdC0+aXNHbG9iYWxPYmplY3QoKSk7CisgICAgaW50IHByb3BlcnR5ID0gKHZQQyArIDMp
LT51Lm9wZXJhbmQ7CisgICAgU3RydWN0dXJlSUQqIHN0cnVjdHVyZUlEID0gKHZQQyArIDQpLT51
LnN0cnVjdHVyZUlEOworICAgIGludCBvZmZzZXQgPSAodlBDICsgNSktPnUub3BlcmFuZDsKKwor
ICAgIGlmIChzdHJ1Y3R1cmVJRCA9PSBnbG9iYWxPYmplY3QtPnN0cnVjdHVyZUlEKCkpIHsKKyAg
ICAgICAgcltkc3RdID0gZ2xvYmFsT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0KTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2Rl
QmxvY2stPmlkZW50aWZpZXJzW3Byb3BlcnR5XTsKKyAgICBQcm9wZXJ0eVNsb3Qgc2xvdChnbG9i
YWxPYmplY3QpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBp
ZGVudCwgc2xvdCkpIHsKKyAgICAgICAgSlNWYWx1ZSogcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShl
eGVjLCBpZGVudCk7CisgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlKCkpIHsKKyAgICAgICAg
ICAgIGlmICh2UENbNF0udS5zdHJ1Y3R1cmVJRCkKKyAgICAgICAgICAgICAgICB2UENbNF0udS5z
dHJ1Y3R1cmVJRC0+ZGVyZWYoKTsKKyAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+c3RydWN0dXJl
SUQoKS0+cmVmKCk7CisgICAgICAgICAgICB2UENbNF0gPSBnbG9iYWxPYmplY3QtPnN0cnVjdHVy
ZUlEKCk7CisgICAgICAgICAgICB2UENbNV0gPSBzbG90LmNhY2hlZE9mZnNldCgpOworICAgICAg
ICAgICAgcltkc3RdID0gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGV4ZWMtPmV4Y2VwdGlvbigpOworICAgICAg
ICBpZiAoZXhjZXB0aW9uVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJbZHN0XSA9IHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZXhj
ZXB0aW9uVmFsdWUgPSBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50LCB2
UEMsIGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBBTFdBWVNfSU5MSU5FIHN0
YXRpYyBKU1ZhbHVlKiBpbmxpbmVSZXNvbHZlQmFzZShFeGVjU3RhdGUqIGV4ZWMsIElkZW50aWZp
ZXImIHByb3BlcnR5LCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikKIHsKICAgICBTY29wZUNo
YWluSXRlcmF0b3IgaXRlciA9IHNjb3BlQ2hhaW4tPmJlZ2luKCk7CkBAIC0yMjIxLDggKzIyNjAs
MjAgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxhZyBmbGFn
LCBFeGVjU3RhdGUqIGV4ZWMsIFJlZ2lzdGVyRmkKIAogICAgICAgICBORVhUX09QQ09ERTsKICAg
ICB9CisgICAgQkVHSU5fT1BDT0RFKG9wX3Jlc29sdmVfZ2xvYmFsKSB7CisgICAgICAgIC8qIHJl
c29sdmVfc2tpcCBkc3QocikgZ2xvYmFsT2JqZWN0KGMpIHByb3BlcnR5KGlkKSBzdHJ1Y3R1cmVJ
RChzSUQpIG9mZnNldChuKQorICAgICAgICAgCisgICAgICAgICAgIFBlcmZvcm1zIGEgZHluYW1p
YyBwcm9wZXJ0eSBsb29rdXAgb24gdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICAqLworICAg
ICAgICBpZiAoVU5MSUtFTFkoIXJlc29sdmVfZ2xvYmFsKGV4ZWMsIHZQQywgciwgIGNvZGVCbG9j
aywgZXhjZXB0aW9uVmFsdWUpKSkKKyAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CisgICAgICAg
IAorICAgICAgICB2UEMgKz0gNjsKKyAgICAgICAgCisgICAgICAgIE5FWFRfT1BDT0RFOworICAg
IH0KICAgICBCRUdJTl9PUENPREUob3BfZ2V0X2dsb2JhbF92YXIpIHsKLSAgICAgICAgLyogZ2V0
X2dsb2JhbF92YXIgZHN0KHIpIGluZGV4KG4pCisgICAgICAgIC8qIGdldF9nbG9iYWxfdmFyIGRz
dChyKSBnbG9iYWxPYmplY3QoYykgaW5kZXgobikKIAogICAgICAgICAgICBHZXRzIHRoZSBnbG9i
YWwgdmFyIGF0IGdsb2JhbCBzbG90IGluZGV4IGFuZCBwbGFjZXMgaXQgaW4gcmVnaXN0ZXIgZHN0
LgogICAgICAgICAgKi8KQEAgLTQ3ODAsNiArNDgzMSwzNiBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpj
dGlfb3BfcmVzb2x2ZV9za2lwKENUSV9BUkdTKQogICAgIHJldHVybiAwOwogfQogCitKU1ZhbHVl
KiBNYWNoaW5lOjpjdGlfb3BfcmVzb2x2ZV9nbG9iYWwoQ1RJX0FSR1MpCit7CisgICAgRXhlY1N0
YXRlKiBleGVjID0gQVJHX2V4ZWM7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4oQVJHX3NyYzEpOworICAgIElkZW50aWZpZXIm
IGlkZW50ID0gKkFSR19pZDI7CisgICAgSW5zdHJ1Y3Rpb24qIHZQQyA9IEFSR192UEMzOworICAg
IEFTU0VSVChnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkpOworCisgICAgUHJvcGVydHlT
bG90IHNsb3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7CisgICAgICAgIEpTVmFsdWUqIHJlc3VsdCA9IHNs
b3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOworICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZSgp
KSB7CisgICAgICAgICAgICBpZiAodlBDWzRdLnUuc3RydWN0dXJlSUQpCisgICAgICAgICAgICAg
ICAgdlBDWzRdLnUuc3RydWN0dXJlSUQtPmRlcmVmKCk7CisgICAgICAgICAgICBnbG9iYWxPYmpl
Y3QtPnN0cnVjdHVyZUlEKCktPnJlZigpOworICAgICAgICAgICAgdlBDWzRdID0gZ2xvYmFsT2Jq
ZWN0LT5zdHJ1Y3R1cmVJRCgpOworICAgICAgICAgICAgdlBDWzVdID0gc2xvdC5jYWNoZWRPZmZz
ZXQoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBW
TV9DSEVDS19FWENFUFRJT05fQVRfRU5EKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fQorICAgIAorICAgIGV4ZWMtPnNldEV4Y2VwdGlvbihjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVy
cm9yKGV4ZWMsIGlkZW50LCB2UEMsIEFSR19jb2RlQmxvY2spKTsKKyAgICAKKyAgICBWTV9DSEVD
S19FWENFUFRJT05fQVRfRU5EKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIEpTVmFsdWUqIE1hY2hp
bmU6OmN0aV9vcF9kaXYoQ1RJX0FSR1MpCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gQVJHX2V4
ZWM7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmggYi9KYXZhU2NyaXB0
Q29yZS9WTS9NYWNoaW5lLmgKaW5kZXggZDc1YWY5MC4uNDA2MDM5MSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvVk0vTWFjaGluZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUu
aApAQCAtMTYzLDYgKzE2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNW
YWx1ZSogU0ZYX0NBTEwgY3RpX29wX3JldChDVElfQVJHUyk7CiAgICAgICAgIHN0YXRpYyBKU1Zh
bHVlKiBTRlhfQ0FMTCBjdGlfb3BfbmV3X2FycmF5KENUSV9BUkdTKTsKICAgICAgICAgc3RhdGlj
IEpTVmFsdWUqIFNGWF9DQUxMIGN0aV9vcF9yZXNvbHZlKENUSV9BUkdTKTsKKyAgICAgICAgc3Rh
dGljIEpTVmFsdWUqIFNGWF9DQUxMIGN0aV9vcF9yZXNvbHZlX2dsb2JhbChDVElfQVJHUyk7CiAg
ICAgICAgIHN0YXRpYyB2b2lkKiBTRlhfQ0FMTCBjdGlfb3BfY29uc3RydWN0X0pTQ29uc3RydWN0
KENUSV9BUkdTKTsKICAgICAgICAgc3RhdGljIEpTVmFsdWUqIFNGWF9DQUxMIGN0aV9vcF9jb25z
dHJ1Y3RfTm90SlNDb25zdHJ1Y3QoQ1RJX0FSR1MpOwogICAgICAgICBzdGF0aWMgdm9pZCBTRlhf
Q0FMTCBjdGlfb3BfY29uc3RydWN0X3ZlcmlmeShDVElfQVJHUyk7CmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9WTS9PcGNvZGUuaCBiL0phdmFTY3JpcHRDb3JlL1ZNL09wY29kZS5oCmluZGV4
IDU4MGRhODMuLjcxODFiYzcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL1ZNL09wY29kZS5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL1ZNL09wY29kZS5oCkBAIC04OCw2ICs4OCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBcCiAgICAgICAgIG1hY3JvKG9wX3Jlc29sdmUpIFwKICAgICAg
ICAgbWFjcm8ob3BfcmVzb2x2ZV9za2lwKSBcCisgICAgICAgIG1hY3JvKG9wX3Jlc29sdmVfZ2xv
YmFsKSBcCiAgICAgICAgIG1hY3JvKG9wX2dldF9zY29wZWRfdmFyKSBcCiAgICAgICAgIG1hY3Jv
KG9wX3B1dF9zY29wZWRfdmFyKSBcCiAgICAgICAgIG1hY3JvKG9wX2dldF9nbG9iYWxfdmFyKSBc
Cg==
</data>
<flag name="review"
          id="10478"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
      

    </bug>

</bugzilla>