<?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>131288</bug_id>
          
          <creation_ts>2014-04-06 20:03:23 -0700</creation_ts>
          <short_desc>The DFG should fold ~~x just like x|0.</short_desc>
          <delta_ts>2015-03-23 08:30:37 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Andreas Kling">kling</assigned_to>
          <cc>atrick</cc>
    
    <cc>barraclough</cc>
    
    <cc>dtc-llvm</cc>
    
    <cc>ggaren</cc>
    
    <cc>juergen</cc>
    
    <cc>kling</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998065</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-04-06 20:03:23 -0700</bug_when>
    <thetext>...

(Yes, srsly, this is a thing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049346</commentid>
    <comment_count>1</comment_count>
      <attachid>241748</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-17 16:33:46 -0800</bug_when>
    <thetext>Created attachment 241748
Patch

First DFG patch, please don&apos;t be gentle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049353</commentid>
    <comment_count>2</comment_count>
      <attachid>241748</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-11-17 16:51:32 -0800</bug_when>
    <thetext>Comment on attachment 241748
Patch

Would be nice to use the convertToIdentityOverChild* helper, by changing the helper to accept an explicit Node* argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049355</commentid>
    <comment_count>3</comment_count>
      <attachid>241752</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-17 16:57:36 -0800</bug_when>
    <thetext>Created attachment 241752
Patch II

Tweak the helper per Geoff&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049362</commentid>
    <comment_count>4</comment_count>
      <attachid>241752</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-11-17 17:12:53 -0800</bug_when>
    <thetext>Comment on attachment 241752
Patch II

I bet you this is wrong for this code:

var tmp = ~x
var y = tmp + 1
var z = ~tmp
print(y + &quot;, &quot; + z)

And also it&apos;s wrong for this case:

var tmp = ~x
o.f // make the DFG optimize this for some structure and then call with a different structure
var y = ~tmp
print(y)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049536</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-11-18 11:17:48 -0800</bug_when>
    <thetext>I think the right answer here is to change the current XOR node to an identity node over its XOR child&apos;s child, but to leave its XOR child node unchanged, in case that child has other uses in the graph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079285</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-23 08:30:37 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think the right answer here is to change the current XOR node to an
&gt; identity node over its XOR child&apos;s child, but to leave its XOR child node
&gt; unchanged, in case that child has other uses in the graph.

Yup, that would do it.

It&apos;s worth noting that in the FTL, ~~ will get folded by LLVM, and LLVM will not have this problem since the at-exit use of the first Xor will be explicit.  So the value of this optimization on our side is mainly canonicalization: being able to see that ~~x is actually the same as x after an int check.  And leaving the original Xor is a fine way to approach this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241748</attachid>
            <date>2014-11-17 16:33:46 -0800</date>
            <delta_ts>2014-11-17 16:57:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131288.diff</filename>
            <type>text/plain</type>
            <size>4790</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YWU1NzNmLi4xMWNhNzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTEt
MTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBERkcg
c2hvdWxkIGZvbGQgfn54IGp1c3QgbGlrZSB4fDAuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xMzEyODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgdGVzdCBleGVyY2lzaW5nIHRoZSB+fnggb3B0aW1pemF0aW9uLiBUaGUgc3Bl
ZWR1cCBpcyByb3VnaGx5IDEwJS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L3RpbGRlLXRpbGRlLWZvbGRpbmcuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvdGls
ZGUtdGlsZGUtZm9sZGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3RpbGRl
LXRpbGRlLWZvbGRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNC0xMS0xNyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIGZhaWxzIHNvbWV0aW1lcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdGlsZGUtdGlsZGUtZm9sZGlu
Zy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RpbGRlLXRpbGRlLWZv
bGRpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQyZjU0YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RpbGRl
LXRpbGRlLWZvbGRpbmcuanMKQEAgLTAsMCArMSwxOCBAQAorLy8gVGhpcyB0ZXN0cyBvdXIgYWJp
bGl0eSB0byBmb2xkIH5+eCBpbnRvIGFuIEludDMyLgorCit2YXIgZ2xvYmFsID0ge307CitmdW5j
dGlvbiBmb28oKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MDAwMDAwMDA7ICsraSkgewor
ICAgICAgICBnbG9iYWwuYSA9IH5+KGkgJSAxMCk7CisgICAgICAgIGdsb2JhbC5iID0gfn4oaSAl
IDkpOworICAgICAgICBnbG9iYWwuYyA9IH5+KGkgJSA4KTsKKyAgICAgICAgZ2xvYmFsLmQgPSB+
fihpICUgNyk7CisgICAgICAgIGdsb2JhbC5lID0gfn4oaSAlIDYpOworICAgICAgICBnbG9iYWwu
ZiA9IH5+KGkgJSA1KTsKKyAgICAgICAgZ2xvYmFsLmcgPSB+fihpICUgNCk7CisgICAgICAgIGds
b2JhbC5oID0gfn4oaSAlIDMpOworICAgICAgICBnbG9iYWwuaSA9IH5+KGkgJSAyKTsKKyAgICB9
Cit9Citmb28oKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90aWxkZS10
aWxkZS1mb2xkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGlsZGUt
dGlsZGUtZm9sZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uN2U1MTNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dGlsZGUtdGlsZGUtZm9sZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL3RpbGRlLXRpbGRlLWZvbGRpbmcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dGlsZGUtdGlsZGUtZm9sZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90aWxkZS10
aWxkZS1mb2xkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMx
NTg5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGlsZGUtdGls
ZGUtZm9sZGluZy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RpbGRlLXRpbGRlLWZvbGRpbmcuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4ZmMwNi4u
ZTEwODc4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQt
MTEtMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBE
Rkcgc2hvdWxkIGZvbGQgfn54IGp1c3QgbGlrZSB4fDAuCisgICAgICAgIDxodHRwczovL3dlYmtp
dC5vcmcvYi8xMzEyODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgfn54IGlzIGEgc2xpZ2h0bHkgbGVzcyBjb21tb24gdmFyaWFudCBvZiB0aGUgeHww
IGlkaW9tIGZvciBjb252ZXJ0aW5nCisgICAgICAgIGFuIGFyYml0cmFyeSB2YWx1ZSBpbnRvIGEg
MzItYml0IGludGVnZXIuCisKKyAgICAgICAgQWRkIGEgc2ltcGxlIG9wdGltaXphdGlvbiB0byB0
aGUgREZHJ3Mgc3RyZW5ndGggcmVkdWN0aW9uIHBhc3Mgd2hlcmUKKyAgICAgICAgfn54IGlzIGZv
bGRlZCBhd2F5IGFuZCBvbmx5IHRoZSBWYWx1ZVRvSW50MzIgcmVtYWlucy4KKworICAgICAgICAq
IGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
dHJlbmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVOb2RlKToKKwogMjAxNC0xMS0xNyAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHByaW50aW5nIGZ1bmN0aW9u
YWxpdHkgaW4gSklUdGVkIGNvZGUgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
CmluZGV4IDk5M2M3ZTYuLmYxYTQ0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtODEsNiArODEsMjcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgQml0WG9yOgorICAgICAgICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOworCisgICAgICAg
ICAgICAvLyBGb2xkIH5+eCB3aGljaCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIEJpdFhvcihCaXRY
b3IoeCwgLTEpLCAtMSkKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMigpLT5pc0ludDMy
Q29uc3RhbnQoKQorICAgICAgICAgICAgICAgICYmIG1fbm9kZS0+Y2hpbGQyKCktPmFzSW50MzIo
KSA9PSAtMQorICAgICAgICAgICAgICAgICYmIG1fbm9kZS0+Y2hpbGQxKCktPm9wKCkgPT0gQml0
WG9yCisgICAgICAgICAgICAgICAgJiYgbV9ub2RlLT5jaGlsZDEoKS0+Y2hpbGQyKCktPmlzSW50
MzJDb25zdGFudCgpCisgICAgICAgICAgICAgICAgJiYgbV9ub2RlLT5jaGlsZDEoKS0+Y2hpbGQy
KCktPmFzSW50MzIoKSA9PSAtMSkgeworCisgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQu
aW5zZXJ0Tm9kZShtX25vZGVJbmRleCwgU3BlY05vbmUsIFBoYW50b20sIG1fbm9kZS0+b3JpZ2lu
LCBtX25vZGUtPmNoaWxkcmVuKTsKKyAgICAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNl
cnROb2RlKG1fbm9kZUluZGV4LCBTcGVjTm9uZSwgUGhhbnRvbSwgbV9ub2RlLT5jaGlsZDEoKS0+
b3JpZ2luLCBtX25vZGUtPmNoaWxkMSgpLT5jaGlsZHJlbik7CisKKyAgICAgICAgICAgICAgICBt
X25vZGUtPmNoaWxkcmVuLnJlbW92ZUVkZ2UoMSk7CisgICAgICAgICAgICAgICAgbV9ub2RlLT5j
b252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCktPmNo
aWxkcmVuLnJlbW92ZUVkZ2UoMSk7CisgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKS0+
Y29udmVydFRvSWRlbnRpdHkoKTsKKworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIEJpdEFu
ZDoKICAgICAgICAgICAgIGhhbmRsZUNvbW11dGF0aXZpdHkoKTsKICAgICAgICAgICAgIGJyZWFr
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241752</attachid>
            <date>2014-11-17 16:57:36 -0800</date>
            <delta_ts>2014-11-17 17:12:53 -0800</delta_ts>
            <desc>Patch II</desc>
            <filename>bug-131288-2.diff</filename>
            <type>text/plain</type>
            <size>6852</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YWU1NzNmLi4xMWNhNzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTEt
MTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBERkcg
c2hvdWxkIGZvbGQgfn54IGp1c3QgbGlrZSB4fDAuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xMzEyODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgdGVzdCBleGVyY2lzaW5nIHRoZSB+fnggb3B0aW1pemF0aW9uLiBUaGUgc3Bl
ZWR1cCBpcyByb3VnaGx5IDEwJS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L3RpbGRlLXRpbGRlLWZvbGRpbmcuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvdGls
ZGUtdGlsZGUtZm9sZGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3RpbGRl
LXRpbGRlLWZvbGRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNC0xMS0xNyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIGZhaWxzIHNvbWV0aW1lcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvdGlsZGUtdGlsZGUtZm9sZGlu
Zy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RpbGRlLXRpbGRlLWZv
bGRpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQyZjU0YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3RpbGRl
LXRpbGRlLWZvbGRpbmcuanMKQEAgLTAsMCArMSwxOCBAQAorLy8gVGhpcyB0ZXN0cyBvdXIgYWJp
bGl0eSB0byBmb2xkIH5+eCBpbnRvIGFuIEludDMyLgorCit2YXIgZ2xvYmFsID0ge307CitmdW5j
dGlvbiBmb28oKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MDAwMDAwMDA7ICsraSkgewor
ICAgICAgICBnbG9iYWwuYSA9IH5+KGkgJSAxMCk7CisgICAgICAgIGdsb2JhbC5iID0gfn4oaSAl
IDkpOworICAgICAgICBnbG9iYWwuYyA9IH5+KGkgJSA4KTsKKyAgICAgICAgZ2xvYmFsLmQgPSB+
fihpICUgNyk7CisgICAgICAgIGdsb2JhbC5lID0gfn4oaSAlIDYpOworICAgICAgICBnbG9iYWwu
ZiA9IH5+KGkgJSA1KTsKKyAgICAgICAgZ2xvYmFsLmcgPSB+fihpICUgNCk7CisgICAgICAgIGds
b2JhbC5oID0gfn4oaSAlIDMpOworICAgICAgICBnbG9iYWwuaSA9IH5+KGkgJSAyKTsKKyAgICB9
Cit9Citmb28oKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90aWxkZS10
aWxkZS1mb2xkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGlsZGUt
dGlsZGUtZm9sZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uN2U1MTNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dGlsZGUtdGlsZGUtZm9sZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL3RpbGRlLXRpbGRlLWZvbGRpbmcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
dGlsZGUtdGlsZGUtZm9sZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy90aWxkZS10
aWxkZS1mb2xkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMx
NTg5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvdGlsZGUtdGls
ZGUtZm9sZGluZy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RpbGRlLXRpbGRlLWZvbGRpbmcuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4ZmMwNi4u
MDU4NTM0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQt
MTEtMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFRoZSBE
Rkcgc2hvdWxkIGZvbGQgfn54IGp1c3QgbGlrZSB4fDAuCisgICAgICAgIDxodHRwczovL3dlYmtp
dC5vcmcvYi8xMzEyODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgfn54IGlzIGEgc2xpZ2h0bHkgbGVzcyBjb21tb24gdmFyaWFudCBvZiB0aGUgeHww
IGlkaW9tIGZvciBjb252ZXJ0aW5nCisgICAgICAgIGFuIGFyYml0cmFyeSB2YWx1ZSBpbnRvIGEg
MzItYml0IGludGVnZXIuCisKKyAgICAgICAgQWRkIGEgc2ltcGxlIG9wdGltaXphdGlvbiB0byB0
aGUgREZHJ3Mgc3RyZW5ndGggcmVkdWN0aW9uIHBhc3Mgd2hlcmUKKyAgICAgICAgfn54IGlzIGZv
bGRlZCBhd2F5IGFuZCBvbmx5IHRoZSBWYWx1ZVRvSW50MzIgcmVtYWlucy4KKworICAgICAgICAq
IGRmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
dHJlbmd0aFJlZHVjdGlvblBoYXNlOjpoYW5kbGVOb2RlKToKKworICAgICAgICAgICAgT3B0aW1p
emUuCisKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNlOjpjb252ZXJ0
VG9JZGVudGl0eU92ZXJDaGlsZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZTo6Y29udmVydFRvSWRlbnRpdHlPdmVyQ2hpbGQxKToKKyAgICAgICAgKEpTQzo6REZH
OjpTdHJlbmd0aFJlZHVjdGlvblBoYXNlOjpjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZDIpOgor
CisgICAgICAgICAgICBUd2VhayB0byB0YWtlIGEgTm9kZSogYXJndW1lbnQgc28gdGhleSBjYW4g
YmUgdXNlZCBmb3Igbm9kZXMgb3RoZXIKKyAgICAgICAgICAgIHRoYW4gdGhlIGN1cnJlbnQgbV9u
b2RlLgorCiAyMDE0LTExLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgcHJpbnRpbmcgZnVuY3Rpb25hbGl0eSBpbiBKSVR0ZWQgY29kZSBmb3IgZGVidWdn
aW5nIHB1cnBvc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKaW5kZXggOTkzYzdlNi4uZjE0M2Y4MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuY3BwCkBAIC03NSwxMiArNzUsMjggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGhhbmRs
ZUNvbW11dGF0aXZpdHkoKTsKIAogICAgICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQyKCktPmlz
SW50MzJDb25zdGFudCgpICYmICFtX25vZGUtPmNoaWxkMigpLT5hc0ludDMyKCkpIHsKLSAgICAg
ICAgICAgICAgICBjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZDEoKTsKKyAgICAgICAgICAgICAg
ICBjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZDEobV9ub2RlKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAg
ICAgICAgIGNhc2UgQml0WG9yOgorICAgICAgICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOwor
CisgICAgICAgICAgICAvLyBGb2xkIH5+eCB3aGljaCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzIEJp
dFhvcihCaXRYb3IoeCwgLTEpLCAtMSkKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMigp
LT5pc0ludDMyQ29uc3RhbnQoKQorICAgICAgICAgICAgICAgICYmIG1fbm9kZS0+Y2hpbGQyKCkt
PmFzSW50MzIoKSA9PSAtMQorICAgICAgICAgICAgICAgICYmIG1fbm9kZS0+Y2hpbGQxKCktPm9w
KCkgPT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYgbV9ub2RlLT5jaGlsZDEoKS0+Y2hpbGQy
KCktPmlzSW50MzJDb25zdGFudCgpCisgICAgICAgICAgICAgICAgJiYgbV9ub2RlLT5jaGlsZDEo
KS0+Y2hpbGQyKCktPmFzSW50MzIoKSA9PSAtMSkgeworCisgICAgICAgICAgICAgICAgY29udmVy
dFRvSWRlbnRpdHlPdmVyQ2hpbGQxKG1fbm9kZSk7CisgICAgICAgICAgICAgICAgY29udmVydFRv
SWRlbnRpdHlPdmVyQ2hpbGQxKG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKKworICAgICAgICAg
ICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKwogICAgICAgICBjYXNlIEJpdEFuZDoKICAgICAgICAgICAgIGhhbmRsZUNvbW11dGF0aXZp
dHkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtODksNyArMTA1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBCaXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0VVJTaGlmdDoKICAgICAgICAg
ICAgIGlmIChtX25vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKSAmJiAhKG1fbm9kZS0+
Y2hpbGQyKCktPmFzSW50MzIoKSAmIDB4MWYpKSB7Ci0gICAgICAgICAgICAgICAgY29udmVydFRv
SWRlbnRpdHlPdmVyQ2hpbGQxKCk7CisgICAgICAgICAgICAgICAgY29udmVydFRvSWRlbnRpdHlP
dmVyQ2hpbGQxKG1fbm9kZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwOSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgaGFuZGxlQ29tbXV0YXRpdml0eSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAobV9ub2RlLT5jaGlsZDIoKS0+aXNJbnQzMkNvbnN0YW50KCkgJiYgIW1fbm9kZS0+Y2hpbGQy
KCktPmFzSW50MzIoKSkgewotICAgICAgICAgICAgICAgIGNvbnZlcnRUb0lkZW50aXR5T3ZlckNo
aWxkMSgpOworICAgICAgICAgICAgICAgIGNvbnZlcnRUb0lkZW50aXR5T3ZlckNoaWxkMShtX25v
ZGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CkBAIC0yOTMsMjMgKzMwOSwyMyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQog
ICAgICAgICAgICAgCi0gICAgdm9pZCBjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZCh1bnNpZ25l
ZCBjaGlsZEluZGV4KQorICAgIHZvaWQgY29udmVydFRvSWRlbnRpdHlPdmVyQ2hpbGQoTm9kZSog
bm9kZSwgdW5zaWduZWQgY2hpbGRJbmRleCkKICAgICB7CiAgICAgICAgIG1faW5zZXJ0aW9uU2V0
Lmluc2VydE5vZGUoCi0gICAgICAgICAgICBtX25vZGVJbmRleCwgU3BlY05vbmUsIFBoYW50b20s
IG1fbm9kZS0+b3JpZ2luLCBtX25vZGUtPmNoaWxkcmVuKTsKLSAgICAgICAgbV9ub2RlLT5jaGls
ZHJlbi5yZW1vdmVFZGdlKGNoaWxkSW5kZXggXiAxKTsKLSAgICAgICAgbV9ub2RlLT5jb252ZXJ0
VG9JZGVudGl0eSgpOworICAgICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNOb25lLCBQaGFudG9t
LCBub2RlLT5vcmlnaW4sIG5vZGUtPmNoaWxkcmVuKTsKKyAgICAgICAgbm9kZS0+Y2hpbGRyZW4u
cmVtb3ZlRWRnZShjaGlsZEluZGV4IF4gMSk7CisgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50
aXR5KCk7CiAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgfQogICAgIAotICAgIHZvaWQg
Y29udmVydFRvSWRlbnRpdHlPdmVyQ2hpbGQxKCkKKyAgICB2b2lkIGNvbnZlcnRUb0lkZW50aXR5
T3ZlckNoaWxkMShOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgY29udmVydFRvSWRlbnRpdHlP
dmVyQ2hpbGQoMCk7CisgICAgICAgIGNvbnZlcnRUb0lkZW50aXR5T3ZlckNoaWxkKG5vZGUsIDAp
OwogICAgIH0KICAgICAKLSAgICB2b2lkIGNvbnZlcnRUb0lkZW50aXR5T3ZlckNoaWxkMigpCisg
ICAgdm9pZCBjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZDIoTm9kZSogbm9kZSkKICAgICB7Ci0g
ICAgICAgIGNvbnZlcnRUb0lkZW50aXR5T3ZlckNoaWxkKDEpOworICAgICAgICBjb252ZXJ0VG9J
ZGVudGl0eU92ZXJDaGlsZChub2RlLCAxKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBmb2xkVHlw
ZWRBcnJheVByb3BlcnR5VG9Db25zdGFudChKU0FycmF5QnVmZmVyVmlldyogdmlldywgSlNWYWx1
ZSBjb25zdGFudCkK
</data>
<flag name="review"
          id="266620"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>