<?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>63684</bug_id>
          
          <creation_ts>2011-06-29 21:10:16 -0700</creation_ts>
          <short_desc>DFG non-speculative JIT always performs slow C calls for div and mod</short_desc>
          <delta_ts>2011-07-01 13:04:41 -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>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>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>430146</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-29 21:10:16 -0700</bug_when>
    <thetext>For division it&apos;s safe to always do it using the FPU, and for modulo it&apos;s best to first try integer mod and then revert to FPU mod.  This strategy will outperform the current one, which always results in slow C calls and register spilling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430148</commentid>
    <comment_count>1</comment_count>
      <attachid>99229</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-29 21:13:27 -0700</bug_when>
    <thetext>Created attachment 99229
the patch

This fixes the regression on string-fasta.  It also results in an overall 1% speed-up on sunspider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430150</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 21:15:47 -0700</bug_when>
    <thetext>Attachment 99229 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGNonSpeculativeJIT.cpp:683:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430155</commentid>
    <comment_count>3</comment_count>
      <attachid>99230</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-29 21:17:15 -0700</bug_when>
    <thetext>Created attachment 99230
the patch (fix style)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431374</commentid>
    <comment_count>4</comment_count>
      <attachid>99230</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-01 13:04:37 -0700</bug_when>
    <thetext>Comment on attachment 99230
the patch (fix style)

Clearing flags on attachment: 99230

Committed r90268: &lt;http://trac.webkit.org/changeset/90268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431375</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-01 13:04:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99229</attachid>
            <date>2011-06-29 21:13:27 -0700</date>
            <delta_ts>2011-06-29 21:17:15 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>divmod_patch_1.diff</filename>
            <type>text/plain</type>
            <size>6206</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTAwODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDYtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgbm9uLXNwZWN1bGF0aXZl
IEpJVCBhbHdheXMgcGVyZm9ybXMgc2xvdyBDIGNhbGxzIGZvciBkaXYgYW5kIG1vZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjg0CisKKyAgICAg
ICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAqIGRmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDExLTA2LTI5ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
bi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9uU3BlY3Vs
YXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MDA4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsMzkgKzYw
OCwxMjEgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShTcGVjdWxhdAogICAgIH0K
IAogICAgIGNhc2UgQXJpdGhEaXY6IHsKLSAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlz
LCBub2RlLmNoaWxkMSk7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIodGhpcywgbm9kZS5j
aGlsZDIpOwotICAgICAgICBHUFJSZWcgYXJnMUdQUiA9IGFyZzEuZ3ByKCk7Ci0gICAgICAgIEdQ
UlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKKyAgICAgICAgRG91YmxlT3BlcmFuZCBvcDEodGhp
cywgbm9kZS5jaGlsZDEpOworICAgICAgICBEb3VibGVPcGVyYW5kIG9wMih0aGlzLCBub2RlLmNo
aWxkMik7CisgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3AxKTsKKyAgICAgICAg
RlBSUmVnIG9wMUZQUiA9IG9wMS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIG9wMkZQUiA9IG9wMi5m
cHIoKTsKKyAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKICAgICAgICAg
Ci0gICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0KLSAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0
aGlzKTsKLQotICAgICAgICBBU1NFUlQoaXNGbHVzaGVkKCkpOwotICAgICAgICBzZXR1cFR3b1N0
dWJBcmdzPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxPihhcmcx
R1BSLCBhcmcyR1BSKTsKLSAgICAgICAgbV9qaXQuYXBwZW5kQ2FsbChvcGVyYXRpb25Bcml0aERp
dik7Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdC5n
cHIoKSk7Ci0KLSAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUlu
ZGV4KTsKKyAgICAgICAgbV9qaXQuZGl2RG91YmxlKG9wMUZQUiwgb3AyRlBSLCByZXN1bHRGUFIp
OworICAgICAgICAKKyAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbV9jb21waWxlSW5k
ZXgpOwogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIEFyaXRoTW9kOiB7Ci0gICAg
ICAgIEpTVmFsdWVPcGVyYW5kIGFyZzEodGhpcywgbm9kZS5jaGlsZDEpOwotICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBhcmcyKHRoaXMsIG5vZGUuY2hpbGQyKTsKLSAgICAgICAgR1BSUmVnIGFyZzFH
UFIgPSBhcmcxLmdwcigpOwotICAgICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7Ci0g
ICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0KLSAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlz
KTsKLQotICAgICAgICBBU1NFUlQoaXNGbHVzaGVkKCkpOwotICAgICAgICBzZXR1cFR3b1N0dWJB
cmdzPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxPihhcmcxR1BS
LCBhcmcyR1BSKTsKLSAgICAgICAgbV9qaXQuYXBwZW5kQ2FsbChvcGVyYXRpb25Bcml0aE1vZCk7
Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdC5ncHIo
KSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSk7CisgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIG9wMih0aGlzLCBub2RlLmNoaWxkMik7CisgICAgICAgIEdQUlRl
bXBvcmFyeSBlYXgodGhpcywgWDg2UmVnaXN0ZXJzOjplYXgpOworICAgICAgICBHUFJUZW1wb3Jh
cnkgZWR4KHRoaXMsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKKworICAgICAgICBGUFJUZW1wb3Jhcnkg
b3AxRG91YmxlKHRoaXMpOworICAgICAgICBGUFJUZW1wb3Jhcnkgb3AyRG91YmxlKHRoaXMpOwor
ICAgIAorICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOworICAgICAgICBHUFJSZWcg
b3AyR1BSID0gb3AyLmdwcigpOworICAgIAorICAgICAgICBGUFJSZWcgb3AxRlBSID0gb3AxRG91
YmxlLmZwcigpOworICAgICAgICBGUFJSZWcgb3AyRlBSID0gb3AyRG91YmxlLmZwcigpOworICAg
IAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBmaXJzdE9wTm90SW50OworICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBzZWNvbmRPcE5vdEludDsKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBM
aXN0IGRvbmU7CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG1vZEJ5WmVybzsKKyAgICAKKyAg
ICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSkpCisgICAgICAgICAgICBmaXJz
dE9wTm90SW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgb3AxR1BS
LCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICBpZiAoIWlzS25vd25J
bnRlZ2VyKG5vZGUuY2hpbGQyKSkKKyAgICAgICAgICAgIHNlY29uZE9wTm90SW50ID0gbV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgb3AyR1BSLCBHUFJJbmZvOjp0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIpOworICAgIAorICAgICAgICBtb2RCeVplcm8gPSBtX2ppdC5icmFuY2hU
ZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIG9wMkdQUik7CisgICAgCisgICAgICAgIEdQUlJl
ZyB0ZW1wMiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIGlmIChvcDJHUFIgPT0gWDg2UmVnaXN0
ZXJzOjplYXggfHwgb3AyR1BSID09IFg4NlJlZ2lzdGVyczo6ZWR4KSB7CisgICAgICAgICAgICB0
ZW1wMiA9IGFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKG9wMkdQUiwgdGVtcDIp
OworICAgICAgICAgICAgb3AyR1BSID0gdGVtcDI7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAg
bV9qaXQubW92ZShvcDFHUFIsIGVheC5ncHIoKSk7CisgICAgICAgIG1faml0LmFzc2VtYmxlcigp
LmNkcSgpOworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5pZGl2bF9yKG9wMkdQUik7CisgICAg
CisgICAgICAgIGlmICh0ZW1wMiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdW5sb2Nr
KHRlbXAyKTsKKyAgICAKKyAgICAgICAgbV9qaXQub3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgCisgICAgICAgIGRvbmUuYXBwZW5k
KG1faml0Lmp1bXAoKSk7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBnb3RE
b3VibGVBcmdzOworICAgIAorICAgICAgICBtb2RCeVplcm8ubGluaygmbV9qaXQpOworICAgICAg
ICAKKyAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9O
YU4oKSkpKSwgWDg2UmVnaXN0ZXJzOjplZHgpOworICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5q
dW1wKCkpOworICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKSkg
eworICAgICAgICAgICAgZmlyc3RPcE5vdEludC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAg
ICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2Vjb25kT3BOb3RJbnQyOworICAgICAgICAKKyAg
ICAgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIpKSB7CisgICAgICAgICAg
ICAgICAgc2Vjb25kT3BOb3RJbnQyID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgb3AyR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8vIGZpcnN0IG9wIGlzIGEgZG91YmxlLCBzZWNv
bmQgb3AgaXMgYW4gaW50LgorICAgICAgICAgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUo
b3AyR1BSLCBvcDJGUFIpOwogCi0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBt
X2NvbXBpbGVJbmRleCk7CisgICAgICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hp
bGQyKSkgeworICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGdvdFNlY29uZE9wID0g
bV9qaXQuanVtcCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2Vjb25kT3BOb3RJ
bnQyLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGZpcnN0
IG9wIGlzIGEgZG91YmxlLCBzZWNvbmQgb3AgaXMgYSBkb3VibGUuCisgICAgICAgICAgICAgICAg
dW5ib3hEb3VibGUob3AyR1BSLCBvcDJGUFIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgZ290U2Vjb25kT3AubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgICAgIHVuYm94RG91YmxlKG9wMUdQUiwgb3AxRlBSKTsKKyAgICAgICAgCisgICAgICAg
ICAgICBnb3REb3VibGVBcmdzID0gbV9qaXQuanVtcCgpOworICAgICAgICB9CisgICAgCisgICAg
ICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIpKSB7CisgICAgICAgICAgICBzZWNv
bmRPcE5vdEludC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gd2Uga25v
dyB0aGF0IHRoZSBmaXJzdCBvcCBpcyBhbiBpbnQsIGFuZCB0aGUgc2Vjb25kIGlzIGEgZG91Ymxl
CisgICAgICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShvcDFHUFIsIG9wMUZQUik7
CisgICAgICAgICAgICB1bmJveERvdWJsZShvcDJHUFIsIG9wMkZQUik7CisgICAgICAgIH0KKyAg
ICAKKyAgICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSkpCisgICAgICAgICAg
ICBnb3REb3VibGVBcmdzLmxpbmsoJm1faml0KTsKKyAgICAKKyAgICAgICAgaWYgKCFpc0tub3du
SW50ZWdlcihub2RlLmNoaWxkMSkgfHwgIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKSkgewor
ICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMoWDg2UmVnaXN0ZXJzOjplZHgpOwor
ICAgICAgICAgICAgc2V0dXBUd29TdHViQXJnczxGUFJJbmZvOjphcmd1bWVudEZQUjAsIEZQUklu
Zm86OmFyZ3VtZW50RlBSMT4ob3AxRlBSLCBvcDJGUFIpOworICAgICAgICAgICAgbV9qaXQuYXBw
ZW5kQ2FsbChmbW9kKTsKKyAgICAgICAgICAgIGJveERvdWJsZShGUFJJbmZvOjpyZXR1cm5WYWx1
ZUZQUiwgWDg2UmVnaXN0ZXJzOjplZHgpOworICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRv
bmUubGluaygmbV9qaXQpOworICAgIAorICAgICAgICBqc1ZhbHVlUmVzdWx0KFg4NlJlZ2lzdGVy
czo6ZWR4LCBtX2NvbXBpbGVJbmRleCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99230</attachid>
            <date>2011-06-29 21:17:15 -0700</date>
            <delta_ts>2011-07-01 13:04:37 -0700</delta_ts>
            <desc>the patch (fix style)</desc>
            <filename>divmod_patch_2.diff</filename>
            <type>text/plain</type>
            <size>6142</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTAwODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDYtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgbm9uLXNwZWN1bGF0aXZl
IEpJVCBhbHdheXMgcGVyZm9ybXMgc2xvdyBDIGNhbGxzIGZvciBkaXYgYW5kIG1vZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjg0CisKKyAgICAg
ICAgKiBkZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok5v
blNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxMS0wNi0yOSAgR2F2aW4gQmFycmFjbG91
Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYg
R2FyZW4uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZl
SklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNw
ZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTAwODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA4LDM5
ICs2MDgsMTIwIEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoU3BlY3VsYXQKICAg
ICB9CiAKICAgICBjYXNlIEFyaXRoRGl2OiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzEo
dGhpcywgbm9kZS5jaGlsZDEpOwotICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcyKHRoaXMsIG5v
ZGUuY2hpbGQyKTsKLSAgICAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwotICAgICAg
ICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CisgICAgICAgIERvdWJsZU9wZXJhbmQgb3Ax
KHRoaXMsIG5vZGUuY2hpbGQxKTsKKyAgICAgICAgRG91YmxlT3BlcmFuZCBvcDIodGhpcywgbm9k
ZS5jaGlsZDIpOworICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7CisgICAg
ICAgIEZQUlJlZyBvcDFGUFIgPSBvcDEuZnByKCk7CisgICAgICAgIEZQUlJlZyBvcDJGUFIgPSBv
cDIuZnByKCk7CisgICAgICAgIEZQUlJlZyByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7CiAgICAg
ICAgIAotICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotCi0gICAgICAgIEdQUlJlc3VsdCByZXN1
bHQodGhpcyk7Ci0KLSAgICAgICAgQVNTRVJUKGlzRmx1c2hlZCgpKTsKLSAgICAgICAgc2V0dXBU
d29TdHViQXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMT4o
YXJnMUdQUiwgYXJnMkdQUik7Ci0gICAgICAgIG1faml0LmFwcGVuZENhbGwob3BlcmF0aW9uQXJp
dGhEaXYpOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1
bHQuZ3ByKCkpOwotCi0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBtX2NvbXBp
bGVJbmRleCk7CisgICAgICAgIG1faml0LmRpdkRvdWJsZShvcDFGUFIsIG9wMkZQUiwgcmVzdWx0
RlBSKTsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG1fY29tcGls
ZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBBcml0aE1vZDogewot
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5vZGUuY2hpbGQxKTsKLSAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJnMih0aGlzLCBub2RlLmNoaWxkMik7Ci0gICAgICAgIEdQUlJlZyBh
cmcxR1BSID0gYXJnMS5ncHIoKTsKLSAgICAgICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdwcigp
OwotICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotCi0gICAgICAgIEdQUlJlc3VsdCByZXN1bHQo
dGhpcyk7Ci0KLSAgICAgICAgQVNTRVJUKGlzRmx1c2hlZCgpKTsKLSAgICAgICAgc2V0dXBUd29T
dHViQXJnczxHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMT4oYXJn
MUdQUiwgYXJnMkdQUik7Ci0gICAgICAgIG1faml0LmFwcGVuZENhbGwob3BlcmF0aW9uQXJpdGhN
b2QpOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQu
Z3ByKCkpOwotCi0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBtX2NvbXBpbGVJ
bmRleCk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSk7Cisg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMih0aGlzLCBub2RlLmNoaWxkMik7CisgICAgICAgIEdQ
UlRlbXBvcmFyeSBlYXgodGhpcywgWDg2UmVnaXN0ZXJzOjplYXgpOworICAgICAgICBHUFJUZW1w
b3JhcnkgZWR4KHRoaXMsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKKworICAgICAgICBGUFJUZW1wb3Jh
cnkgb3AxRG91YmxlKHRoaXMpOworICAgICAgICBGUFJUZW1wb3Jhcnkgb3AyRG91YmxlKHRoaXMp
OworICAgIAorICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOworICAgICAgICBHUFJS
ZWcgb3AyR1BSID0gb3AyLmdwcigpOworICAgIAorICAgICAgICBGUFJSZWcgb3AxRlBSID0gb3Ax
RG91YmxlLmZwcigpOworICAgICAgICBGUFJSZWcgb3AyRlBSID0gb3AyRG91YmxlLmZwcigpOwor
ICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBmaXJzdE9wTm90SW50OworICAgICAgICBK
SVRDb21waWxlcjo6SnVtcCBzZWNvbmRPcE5vdEludDsKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IGRvbmU7CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG1vZEJ5WmVybzsKKyAgICAK
KyAgICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSkpCisgICAgICAgICAgICBm
aXJzdE9wTm90SW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgb3Ax
R1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICBpZiAoIWlzS25v
d25JbnRlZ2VyKG5vZGUuY2hpbGQyKSkKKyAgICAgICAgICAgIHNlY29uZE9wTm90SW50ID0gbV9q
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgb3AyR1BSLCBHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIpOworICAgIAorICAgICAgICBtb2RCeVplcm8gPSBtX2ppdC5icmFu
Y2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIG9wMkdQUik7CisgICAgCisgICAgICAgIEdQ
UlJlZyB0ZW1wMiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIGlmIChvcDJHUFIgPT0gWDg2UmVn
aXN0ZXJzOjplYXggfHwgb3AyR1BSID09IFg4NlJlZ2lzdGVyczo6ZWR4KSB7CisgICAgICAgICAg
ICB0ZW1wMiA9IGFsbG9jYXRlKCk7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKG9wMkdQUiwgdGVt
cDIpOworICAgICAgICAgICAgb3AyR1BSID0gdGVtcDI7CisgICAgICAgIH0KKyAgICAKKyAgICAg
ICAgbV9qaXQubW92ZShvcDFHUFIsIGVheC5ncHIoKSk7CisgICAgICAgIG1faml0LmFzc2VtYmxl
cigpLmNkcSgpOworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5pZGl2bF9yKG9wMkdQUik7Cisg
ICAgCisgICAgICAgIGlmICh0ZW1wMiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdW5s
b2NrKHRlbXAyKTsKKyAgICAKKyAgICAgICAgbV9qaXQub3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgCisgICAgICAgIGRvbmUuYXBw
ZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBn
b3REb3VibGVBcmdzOworICAgIAorICAgICAgICBtb2RCeVplcm8ubGluaygmbV9qaXQpOworICAg
ICAgICAKKyAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSkpKSwgWDg2UmVnaXN0ZXJzOjplZHgpOworICAgICAgICBkb25lLmFwcGVuZChtX2pp
dC5qdW1wKCkpOworICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQx
KSkgeworICAgICAgICAgICAgZmlyc3RPcE5vdEludC5saW5rKCZtX2ppdCk7CisgICAgICAgIAor
ICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2Vjb25kT3BOb3RJbnQyOworICAgICAgICAK
KyAgICAgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIpKQorICAgICAgICAg
ICAgICAgIHNlY29uZE9wTm90SW50MiA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6
QmVsb3csIG9wMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgLy8gZmlyc3Qgb3AgaXMgYSBkb3VibGUsIHNlY29uZCBvcCBpcyBh
biBpbnQuCisgICAgICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShvcDJHUFIsIG9w
MkZQUik7CisKKyAgICAgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIpKSB7
CisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZ290U2Vjb25kT3AgPSBtX2ppdC5q
dW1wKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzZWNvbmRPcE5vdEludDIubGlu
aygmbV9qaXQpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZmlyc3Qgb3AgaXMg
YSBkb3VibGUsIHNlY29uZCBvcCBpcyBhIGRvdWJsZS4KKyAgICAgICAgICAgICAgICB1bmJveERv
dWJsZShvcDJHUFIsIG9wMkZQUik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBnb3RT
ZWNvbmRPcC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAg
ICAgdW5ib3hEb3VibGUob3AxR1BSLCBvcDFGUFIpOworICAgICAgICAKKyAgICAgICAgICAgIGdv
dERvdWJsZUFyZ3MgPSBtX2ppdC5qdW1wKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYg
KCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMikpIHsKKyAgICAgICAgICAgIHNlY29uZE9wTm90
SW50LmxpbmsoJm1faml0KTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSBrbm93IHRoYXQg
dGhlIGZpcnN0IG9wIGlzIGFuIGludCwgYW5kIHRoZSBzZWNvbmQgaXMgYSBkb3VibGUKKyAgICAg
ICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG9wMUdQUiwgb3AxRlBSKTsKKyAgICAg
ICAgICAgIHVuYm94RG91YmxlKG9wMkdQUiwgb3AyRlBSKTsKKyAgICAgICAgfQorICAgIAorICAg
ICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKSkKKyAgICAgICAgICAgIGdvdERv
dWJsZUFyZ3MubGluaygmbV9qaXQpOworICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2Vy
KG5vZGUuY2hpbGQxKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIpKSB7CisgICAgICAg
ICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgICAg
ICAgICBzZXR1cFR3b1N0dWJBcmdzPEZQUkluZm86OmFyZ3VtZW50RlBSMCwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIxPihvcDFGUFIsIG9wMkZQUik7CisgICAgICAgICAgICBtX2ppdC5hcHBlbmRDYWxs
KGZtb2QpOworICAgICAgICAgICAgYm94RG91YmxlKEZQUkluZm86OnJldHVyblZhbHVlRlBSLCBY
ODZSZWdpc3RlcnM6OmVkeCk7CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKFg4
NlJlZ2lzdGVyczo6ZWR4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZG9uZS5saW5r
KCZtX2ppdCk7CisgICAgCisgICAgICAgIGpzVmFsdWVSZXN1bHQoWDg2UmVnaXN0ZXJzOjplZHgs
IG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>