<?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>153080</bug_id>
          
          <creation_ts>2016-01-13 14:04:52 -0800</creation_ts>
          <short_desc>Use DFG Graph::binary/unaryArithShouldSpeculateInt32/MachineInt() functions consistently.</short_desc>
          <delta_ts>2016-01-13 14:23:05 -0800</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 Local 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>153019</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1155226</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-13 14:04:52 -0800</bug_when>
    <thetext>We currently have Graph::mulShouldSpeculateInt32/machineInt() and Graph::negateShouldSpeculateInt32/MachineInt() functions which are only used by the ArithMul and ArithNegate nodes.  However, the same tests need to be done for many other arith nodes in the DFG.  This patch renames these functions as Graph::binaryArithShouldSpeculateInt32/machineInt() and Graph::unaryArithShouldSpeculateInt32/MachineInt(), and uses them consistently in the DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155231</commentid>
    <comment_count>1</comment_count>
      <attachid>268902</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-13 14:13:53 -0800</bug_when>
    <thetext>Created attachment 268902
proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155232</commentid>
    <comment_count>2</comment_count>
      <attachid>268902</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-13 14:17:04 -0800</bug_when>
    <thetext>Comment on attachment 268902
proposed fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155236</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-13 14:23:05 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r194983: &lt;http://trac.webkit.org/r194983&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268902</attachid>
            <date>2016-01-13 14:13:53 -0800</date>
            <delta_ts>2016-01-13 14:17:04 -0800</delta_ts>
            <desc>proposed fix.</desc>
            <filename>bug-153080.patch</filename>
            <type>text/plain</type>
            <size>12533</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0OTY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE2LTAxLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgREZHIEdyYXBoOjpiaW5hcnkvdW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyL01hY2hp
bmVJbnQoKSBmdW5jdGlvbnMgY29uc2lzdGVudGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3VycmVudGx5IGhhdmUgR3JhcGg6Om11bFNob3Vs
ZFNwZWN1bGF0ZUludDMyL21hY2hpbmVJbnQoKSBhbmQKKyAgICAgICAgR3JhcGg6Om5lZ2F0ZVNo
b3VsZFNwZWN1bGF0ZUludDMyL01hY2hpbmVJbnQoKSBmdW5jdGlvbnMgd2hpY2ggYXJlIG9ubHkg
dXNlZCBieQorICAgICAgICB0aGUgQXJpdGhNdWwgYW5kIEFyaXRoTmVnYXRlIG5vZGVzLiAgSG93
ZXZlciwgdGhlIHNhbWUgdGVzdHMgbmVlZCB0byBiZSBkb25lIGZvcgorICAgICAgICBtYW55IG90
aGVyIGFyaXRoIG5vZGVzIGluIHRoZSBERkcuICBUaGlzIHBhdGNoIHJlbmFtZXMgdGhlc2UgZnVu
Y3Rpb25zIGFzCisgICAgICAgIEdyYXBoOjpiaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMy
L21hY2hpbmVJbnQoKSBhbmQKKyAgICAgICAgR3JhcGg6OnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxh
dGVJbnQzMi9NYWNoaW5lSW50KCksIGFuZCB1c2VzIHRoZW0gY29uc2lzdGVudGx5CisgICAgICAg
IGluIHRoZSBERkcuCisKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3Jh
cGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6YWRkU2hvdWxkU3BlY3VsYXRlTWFjaGlu
ZUludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmJpbmFyeUFyaXRoU2hvdWxkU3BlY3Vs
YXRlSW50MzIpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpiaW5hcnlBcml0aFNob3VsZFNw
ZWN1bGF0ZU1hY2hpbmVJbnQpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjp1bmFyeUFyaXRo
U2hvdWxkU3BlY3VsYXRlSW50MzIpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjp1bmFyeUFy
aXRoU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6
Om11bFNob3VsZFNwZWN1bGF0ZUludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpH
cmFwaDo6bXVsU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6R3JhcGg6Om5lZ2F0ZVNob3VsZFNwZWN1bGF0ZUludDMyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6bmVnYXRlU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFn
YXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6ZG9E
b3VibGVWb3RpbmcpOgorCiAyMDE2LTAxLTEzICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIExlZ2FsaXplIE1lbW9yeSBPZmZzZXRzIGZvciBB
Uk02NCBiZWZvcmUgbG93ZXJpbmcgdG8gQWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDE5NDg5NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw3
ICsyMDgsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBBcml0aE5lZ2F0ZTogewotICAgICAgICAgICAgaWYgKG1fZ3JhcGgubmVnYXRlU2hvdWxkU3Bl
Y3VsYXRlSW50MzIobm9kZSwgRml4dXBQYXNzKSkgeworICAgICAgICAgICAgaWYgKG1fZ3JhcGgu
dW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKICAgICAg
ICAgICAgICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgICAgICBpZiAoYnl0ZWNvZGVDYW5UcnVuY2F0ZUludGVnZXIobm9kZS0+YXJpdGhOb2RlRmxh
Z3MoKSkpCiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6VW5j
aGVja2VkKTsKQEAgLTIxOCw3ICsyMTgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICBub2RlLT5zZXRBcml0aE1vZGUoQXJpdGg6OkNoZWNrT3ZlcmZsb3dBbmROZWdhdGl2ZVplcm8p
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KG1fZ3JhcGgubmVnYXRlU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlLCBGaXh1cFBhc3Mp
KSB7CisgICAgICAgICAgICBpZiAobV9ncmFwaC51bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlTWFj
aGluZUludChub2RlLCBGaXh1cFBhc3MpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQ1
MlJlcFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGlmIChieXRlY29kZUNh
bklnbm9yZU5lZ2F0aXZlWmVybyhub2RlLT5hcml0aE5vZGVGbGFncygpKSkKICAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+c2V0QXJpdGhNb2RlKEFyaXRoOjpDaGVja092ZXJmbG93KTsKQEAgLTI0
Miw3ICsyNDIsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChO
b2RlUmVzdWx0SlMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKG1fZ3JhcGgubXVsU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSwgRml4dXBQ
YXNzKSkgeworICAgICAgICAgICAgaWYgKG1fZ3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxh
dGVJbnQzMihub2RlLCBGaXh1cFBhc3MpKSB7CiAgICAgICAgICAgICAgICAgZml4SW50T3JCb29s
ZWFuRWRnZShsZWZ0Q2hpbGQpOwogICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVkZ2Uo
cmlnaHRDaGlsZCk7CiAgICAgICAgICAgICAgICAgaWYgKGJ5dGVjb2RlQ2FuVHJ1bmNhdGVJbnRl
Z2VyKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKQpAQCAtMjUzLDcgKzI1Myw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldEFyaXRoTW9kZShBcml0aDo6Q2hlY2tPdmVy
Zmxvd0FuZE5lZ2F0aXZlWmVybyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5tdWxTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50
KG5vZGUsIEZpeHVwUGFzcykpIHsKKyAgICAgICAgICAgIGlmIChtX2dyYXBoLmJpbmFyeUFyaXRo
U2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlLCBGaXh1cFBhc3MpKSB7CiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxJbnQ1MlJlcFVzZT4obGVmdENoaWxkKTsKICAgICAgICAgICAgICAgICBm
aXhFZGdlPEludDUyUmVwVXNlPihyaWdodENoaWxkKTsKICAgICAgICAgICAgICAgICBpZiAoYnl0
ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCkBAIC0y
ODEsOCArMjgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQo
Tm9kZVJlc3VsdEpTKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVJbnQzMk9yQm9vbGVhbkZvckFyaXRo
bWV0aWMobGVmdENoaWxkLm5vZGUoKSwgcmlnaHRDaGlsZC5ub2RlKCkpCi0gICAgICAgICAgICAg
ICAgJiYgbm9kZS0+Y2FuU3BlY3VsYXRlSW50MzIoRml4dXBQYXNzKSkgeworICAgICAgICAgICAg
aWYgKG1fZ3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBGaXh1cFBh
c3MpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG9wdGltaXplRm9yWDg2KCkgfHwgb3B0aW1pemVG
b3JBUk02NCgpIHx8IG9wdGltaXplRm9yQVJNdjdJRElWU3VwcG9ydGVkKCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgZml4SW50T3JCb29sZWFuRWRnZShsZWZ0Q2hpbGQpOwogICAgICAgICAgICAg
ICAgICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKHJpZ2h0Q2hpbGQpOwpAQCAtMzIxLDggKzMyMCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAg
ICAgY2FzZSBBcml0aE1heDogewotICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0
ZUludDMyT3JCb29sZWFuRm9yQXJpdGhtZXRpYyhub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUt
PmNoaWxkMigpLm5vZGUoKSkKLSAgICAgICAgICAgICAgICAmJiBub2RlLT5jYW5TcGVjdWxhdGVJ
bnQzMihGaXh1cFBhc3MpKSB7CisgICAgICAgICAgICBpZiAobV9ncmFwaC5iaW5hcnlBcml0aFNo
b3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKICAgICAgICAgICAgICAgICBm
aXhJbnRPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhJ
bnRPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsK
QEAgLTMzNCw4ICszMzIsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgY2FzZSBBcml0aEFiczogewotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5z
aG91bGRTcGVjdWxhdGVJbnQzMk9yQm9vbGVhbkZvckFyaXRobWV0aWMoKQotICAgICAgICAgICAg
ICAgICYmIG5vZGUtPmNhblNwZWN1bGF0ZUludDMyKEZpeHVwUGFzcykpIHsKKyAgICAgICAgICAg
IGlmIChtX2dyYXBoLnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBGaXh1cFBh
c3MpKSB7CiAgICAgICAgICAgICAgICAgZml4SW50T3JCb29sZWFuRWRnZShub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0zNjMsNyArMzYw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQXJpdGhSb3VuZDogewot
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVJbnQzMk9yQm9v
bGVhbkZvckFyaXRobWV0aWMoKSAmJiBub2RlLT5jYW5TcGVjdWxhdGVJbnQzMihGaXh1cFBhc3Mp
KSB7CisgICAgICAgICAgICBpZiAobV9ncmFwaC51bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlSW50
MzIobm9kZSwgRml4dXBQYXNzKSkgewogICAgICAgICAgICAgICAgIGZpeEludE9yQm9vbGVhbkVk
Z2Uobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGluc2VydENoZWNrPEludDMyVXNl
PihtX2luZGV4SW5CbG9jaywgbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgICAgICAg
ICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaAkocmV2aXNpb24gMTk0ODk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNDcgKzI3NSw0MSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbiAmJiAhaGFzRXhpdFNpdGUoYWRkLCBJbnQ1Mk92
ZXJmbG93KTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBtdWxTaG91bGRTcGVjdWxhdGVJbnQzMihO
b2RlKiBtdWwsIFByZWRpY3Rpb25QYXNzIHBhc3MpCisgICAgYm9vbCBiaW5hcnlBcml0aFNob3Vs
ZFNwZWN1bGF0ZUludDMyKE5vZGUqIG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCiAgICAgewot
ICAgICAgICBBU1NFUlQobXVsLT5vcCgpID09IEFyaXRoTXVsKTsKLSAgICAgICAgCi0gICAgICAg
IE5vZGUqIGxlZnQgPSBtdWwtPmNoaWxkMSgpLm5vZGUoKTsKLSAgICAgICAgTm9kZSogcmlnaHQg
PSBtdWwtPmNoaWxkMigpLm5vZGUoKTsKKyAgICAgICAgTm9kZSogbGVmdCA9IG5vZGUtPmNoaWxk
MSgpLm5vZGUoKTsKKyAgICAgICAgTm9kZSogcmlnaHQgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7
CiAgICAgICAgIAogICAgICAgICByZXR1cm4gTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50MzJPckJv
b2xlYW5Gb3JBcml0aG1ldGljKGxlZnQsIHJpZ2h0KQotICAgICAgICAgICAgJiYgbXVsLT5jYW5T
cGVjdWxhdGVJbnQzMihtdWwtPnNvdXJjZUZvcihwYXNzKSk7CisgICAgICAgICAgICAmJiBub2Rl
LT5jYW5TcGVjdWxhdGVJbnQzMihub2RlLT5zb3VyY2VGb3IocGFzcykpOwogICAgIH0KICAgICAK
LSAgICBib29sIG11bFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoTm9kZSogbXVsLCBQcmVkaWN0
aW9uUGFzcyBwYXNzKQorICAgIGJvb2wgYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVNYWNoaW5l
SW50KE5vZGUqIG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCiAgICAgewotICAgICAgICBBU1NF
UlQobXVsLT5vcCgpID09IEFyaXRoTXVsKTsKLSAgICAgICAgCiAgICAgICAgIGlmICghZW5hYmxl
SW50NTIoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIE5v
ZGUqIGxlZnQgPSBtdWwtPmNoaWxkMSgpLm5vZGUoKTsKLSAgICAgICAgTm9kZSogcmlnaHQgPSBt
dWwtPmNoaWxkMigpLm5vZGUoKTsKKyAgICAgICAgTm9kZSogbGVmdCA9IG5vZGUtPmNoaWxkMSgp
Lm5vZGUoKTsKKyAgICAgICAgTm9kZSogcmlnaHQgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CiAK
ICAgICAgICAgcmV0dXJuIE5vZGU6OnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobGVmdCwgcmln
aHQpCi0gICAgICAgICAgICAmJiBtdWwtPmNhblNwZWN1bGF0ZUludDUyKHBhc3MpCi0gICAgICAg
ICAgICAmJiAhaGFzRXhpdFNpdGUobXVsLCBJbnQ1Mk92ZXJmbG93KTsKKyAgICAgICAgICAgICYm
IG5vZGUtPmNhblNwZWN1bGF0ZUludDUyKHBhc3MpCisgICAgICAgICAgICAmJiAhaGFzRXhpdFNp
dGUobm9kZSwgSW50NTJPdmVyZmxvdyk7CiAgICAgfQogICAgIAotICAgIGJvb2wgbmVnYXRlU2hv
dWxkU3BlY3VsYXRlSW50MzIoTm9kZSogbmVnYXRlLCBQcmVkaWN0aW9uUGFzcyBwYXNzKQorICAg
IGJvb2wgdW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKE5vZGUqIG5vZGUsIFByZWRpY3Rp
b25QYXNzIHBhc3MpCiAgICAgewotICAgICAgICBBU1NFUlQobmVnYXRlLT5vcCgpID09IEFyaXRo
TmVnYXRlKTsKLSAgICAgICAgcmV0dXJuIG5lZ2F0ZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUludDMyT3JCb29sZWFuRm9yQXJpdGhtZXRpYygpCi0gICAgICAgICAgICAmJiBuZWdhdGUtPmNh
blNwZWN1bGF0ZUludDMyKHBhc3MpOworICAgICAgICByZXR1cm4gbm9kZS0+Y2hpbGQxKCktPnNo
b3VsZFNwZWN1bGF0ZUludDMyT3JCb29sZWFuRm9yQXJpdGhtZXRpYygpCisgICAgICAgICAgICAm
JiBub2RlLT5jYW5TcGVjdWxhdGVJbnQzMihwYXNzKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBu
ZWdhdGVTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KE5vZGUqIG5lZ2F0ZSwgUHJlZGljdGlvblBh
c3MgcGFzcykKKyAgICBib29sIHVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KE5v
ZGUqIG5vZGUsIFByZWRpY3Rpb25QYXNzIHBhc3MpCiAgICAgewotICAgICAgICBBU1NFUlQobmVn
YXRlLT5vcCgpID09IEFyaXRoTmVnYXRlKTsKICAgICAgICAgaWYgKCFlbmFibGVJbnQ1MigpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gbmVnYXRlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCgpCi0gICAgICAgICAgICAmJiAhaGFzRXhpdFNp
dGUobmVnYXRlLCBJbnQ1Mk92ZXJmbG93KQotICAgICAgICAgICAgJiYgbmVnYXRlLT5jYW5TcGVj
dWxhdGVJbnQ1MihwYXNzKTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPmNoaWxkMSgpLT5zaG91bGRT
cGVjdWxhdGVNYWNoaW5lSW50KCkKKyAgICAgICAgICAgICYmIG5vZGUtPmNhblNwZWN1bGF0ZUlu
dDUyKHBhc3MpCisgICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUobm9kZSwgSW50NTJPdmVyZmxv
dyk7CiAgICAgfQogCiAgICAgYm9vbCBjYW5PcHRpbWl6ZVN0cmluZ09iamVjdEFjY2Vzcyhjb25z
dCBDb2RlT3JpZ2luJik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTk0
ODk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw5ICszMDYsOSBAQCBwcml2YXRlOgog
CiAgICAgICAgIGNhc2UgQXJpdGhOZWdhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQx
KCktPnByZWRpY3Rpb24oKSkgewotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLm5lZ2F0ZVNo
b3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgaWYgKG1f
Z3JhcGgudW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCiAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMik7Ci0g
ICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5uZWdhdGVTaG91bGRTcGVjdWxhdGVNYWNo
aW5lSW50KG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC51
bmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlLCBtX3Bhc3MpKQogICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTIpOwogICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9uKG5vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCkpKTsKQEAgLTMzNyw5ICszMzcsOSBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgaWYgKGxlZnQgJiYgcmlnaHQpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNGdWxsTnVtYmVy
T3JCb29sZWFuU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKGxlZnQpCiAgICAgICAgICAgICAg
ICAgICAgICYmIGlzRnVsbE51bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5l
ZChyaWdodCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgubXVsU2hvdWxkU3Bl
Y3VsYXRlSW50MzIobm9kZSwgbV9wYXNzKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3Jh
cGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBtX3Bhc3MpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyKTsK
LSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9ncmFwaC5tdWxTaG91bGRTcGVjdWxhdGVN
YWNoaW5lSW50KG5vZGUsIG1fcGFzcykpCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1f
Z3JhcGguYmluYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUsIG1fcGFzcykp
CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVj
SW50NTIpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb25zKGxlZnQsIHJpZ2h0KSk7CkBAIC0zNjEsOCArMzYxLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzRnVsbE51
bWJlck9yQm9vbGVhblNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChsZWZ0KQogICAgICAgICAg
ICAgICAgICAgICAmJiBpc0Z1bGxOdW1iZXJPckJvb2xlYW5TcGVjdWxhdGlvbkV4cGVjdGluZ0Rl
ZmluZWQocmlnaHQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVj
dWxhdGVJbnQzMk9yQm9vbGVhbkZvckFyaXRobWV0aWMobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBu
b2RlLT5jaGlsZDIoKS5ub2RlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAmJiBub2RlLT5j
YW5TcGVjdWxhdGVJbnQzMihtX3Bhc3MpKQorICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFw
aC5iaW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIG1fcGFzcykpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwog
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjQnl0ZWNvZGVEb3VibGUpOwpAQCAtODExLDggKzgxMCw4
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoaXNGdWxsTnVt
YmVyU3BlY3VsYXRpb24obGVmdCkKICAgICAgICAgICAgICAgICAmJiBpc0Z1bGxOdW1iZXJTcGVj
dWxhdGlvbihyaWdodCkKLSAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5tdWxTaG91bGRTcGVj
dWxhdGVJbnQzMihub2RlLCBtX3Bhc3MpCi0gICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGgubXVs
U2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlLCBtX3Bhc3MpKQorICAgICAgICAgICAgICAg
ICYmICFtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSwgbV9wYXNz
KQorICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmJpbmFyeUFyaXRoU2hvdWxkU3BlY3VsYXRl
TWFjaGluZUludChub2RlLCBtX3Bhc3MpKQogICAgICAgICAgICAgICAgIGJhbGxvdCA9IFZvdGVE
b3VibGU7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYmFsbG90ID0gVm90ZVZh
bHVlOwpAQCAtODMzLDcgKzgzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24obGVmdCkKICAgICAgICAgICAgICAg
ICAmJiBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihyaWdodCkKLSAgICAgICAgICAgICAgICAmJiAh
KE5vZGU6OnNob3VsZFNwZWN1bGF0ZUludDMyT3JCb29sZWFuRm9yQXJpdGhtZXRpYyhub2RlLT5j
aGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkgJiYgbm9kZS0+Y2FuU3BlY3Vs
YXRlSW50MzIobV9wYXNzKSkpCisgICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGguYmluYXJ5QXJp
dGhTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBtX3Bhc3MpKQogICAgICAgICAgICAgICAgIGJh
bGxvdCA9IFZvdGVEb3VibGU7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYmFs
bG90ID0gVm90ZVZhbHVlOwpAQCAtODQ2LDcgKzg0NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgQXJpdGhBYnM6CiAgICAgICAgICAgICBEb3VibGVCYWxsb3QgYmFsbG90OwogICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKQotICAgICAgICAg
ICAgICAgICYmICEobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludDMyT3JCb29sZWFu
Rm9yQXJpdGhtZXRpYygpICYmIG5vZGUtPmNhblNwZWN1bGF0ZUludDMyKG1fcGFzcykpKQorICAg
ICAgICAgICAgICAgICYmICFtX2dyYXBoLnVuYXJ5QXJpdGhTaG91bGRTcGVjdWxhdGVJbnQzMihu
b2RlLCBtX3Bhc3MpKQogICAgICAgICAgICAgICAgIGJhbGxvdCA9IFZvdGVEb3VibGU7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYmFsbG90ID0gVm90ZVZhbHVlOwo=
</data>
<flag name="review"
          id="293873"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>