<?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>178379</bug_id>
          
          <creation_ts>2017-10-17 00:33:58 -0700</creation_ts>
          <short_desc>[ARM64] static_cast&lt;int32_t&gt;() in BinaryOpNode::emitBytecode() prevents op_unsigned emission</short_desc>
          <delta_ts>2017-11-15 13:04:21 -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>New Bugs</component>
          <version>WebKit Nightly 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1361164</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-17 00:33:58 -0700</bug_when>
    <thetext>Using GCC 6.3.1 and targeting ARM64 on Linux, the stress/uint32-to-number-overflows-to-uint52.js JSC stress test (in all variations) fails since r223318 landed.

http://trac.webkit.org/browser/webkit/trunk/JSTests/stress/uint32-to-number-overflows-to-uint52.js

The compareToLargeNumber() function in that test is the problematic one:

&gt; function compareToLargeNumber(value)
&gt; {
&gt;     return (value &gt;&gt;&gt; 0) &lt; 4294967294;
&gt; }

Here&apos;s the generated bytecode output for this function on x86_64, which matches ARM64 before r223318:

compareToLargeNumber#D5ozQ8:[0x7ff965a890d0-&gt;0x7ff965aa8ba0, NoneFunctionCall, 20 (NeverInline)]: 20 m_instructions; 160 bytes; 2 parameter(s); 8 callee register(s); 6 variable(s); scope at loc3
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] check_traps       
[   7] urshift           loc6, arg1, Int32: 0(const0)
[  11] unsigned          loc6, loc6
[  14] less              loc6, loc6, Double: 4751297606871678976, 4294967294.000000(const1)
[  18] ret               loc6

Here&apos;s the currently generated bytecode on ARM64, missing op_unsigned:

compareToLargeNumber#D5ozQ8:[0x7f809890d0-&gt;0x7f809a8ba0, NoneFunctionCall, 17 (NeverInline)]: 17 m_instructions; 136 bytes; 2 parameter(s); 8 callee register(s); 6 variable(s); scope at loc3
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] check_traps       
[   7] urshift           loc6, arg1, Int32: 0(const0)
[  11] below             loc6, loc6, Double: 4751297606871678976, 4294967294.000000(const1)
[  15] ret               loc6

-----

Problem can be tracked to the double-to-int32_t conversion in the helper isUInt32() lambda in BinaryOpNode::emitBytecode(). On x86_64, the 4294967294.0 double value is converted to a negative 32-bit of value -2147483648, which prevents the m_shouldToUnsignedResult value for the op_urshift BinaryOpNode to be set to false, which ends up emitting op_unsigned and thus passing the test.

On ARM64, the same double value is converted to 2147483647. The GCC-generated code does this using the plain fcvtzs instruction:

&gt;   6fe208:	940039b2 	bl	70c8d0 &lt;JSC::NumberNode::value() const [clone .isra.109]&gt;
&gt;   6fe20c:	1e780000 	fcvtzs	w0, d0

Result of this is that both left and right sides of the binary op are recognized as an uint32 value, short-cutting op_unsigned and failing the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361282</commentid>
    <comment_count>1</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-17 10:10:00 -0700</bug_when>
    <thetext>Identical problem also appears on ARM Thumb2, with the float value being converted to the same integer value as on ARM64. 

Here&apos;s the generated code that performs conversion:

&gt;   2352c8:	ed98 7b06 	vldr	d7, [r8, #24]
&gt; ...
&gt;   2352d2:	eefd 6bc7 	vcvt.s32.f64	s13, d7go</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361614</commentid>
    <comment_count>2</comment_count>
      <attachid>324106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-18 02:11:31 -0700</bug_when>
    <thetext>Created attachment 324106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361616</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-18 02:28:02 -0700</bug_when>
    <thetext>Can confirm this fixes issues on all ARM flavors. Thanks! I&apos;ll yield the review to JSC devs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361617</commentid>
    <comment_count>4</comment_count>
      <attachid>324106</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-18 02:28:38 -0700</bug_when>
    <thetext>Comment on attachment 324106
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1998
&gt; +                if (value.isInt32()) {
&gt; +                    if (value.asInt32() &gt;= 0)

Nit: these two if-statements can be folded into one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361618</commentid>
    <comment_count>5</comment_count>
      <attachid>324106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-18 02:28:56 -0700</bug_when>
    <thetext>Comment on attachment 324106
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1998
&gt;&gt; +                    if (value.asInt32() &gt;= 0)
&gt; 
&gt; Nit: these two if-statements can be folded into one.

Nice, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361620</commentid>
    <comment_count>6</comment_count>
      <attachid>324107</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-18 02:31:33 -0700</bug_when>
    <thetext>Created attachment 324107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361822</commentid>
    <comment_count>7</comment_count>
      <attachid>324107</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-18 11:50:37 -0700</bug_when>
    <thetext>Comment on attachment 324107
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1997
&gt; +                auto value = jsNumber(static_cast&lt;NumberNode*&gt;(node)-&gt;value());
&gt; +                if (value.isInt32() &amp;&amp; value.asInt32() &gt;= 0)

I thought the goal was to treat 32-bit signed JSValue representation as unsigned? Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362081</commentid>
    <comment_count>8</comment_count>
      <attachid>324107</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 01:10:08 -0700</bug_when>
    <thetext>Comment on attachment 324107
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1997
&gt;&gt; +                if (value.isInt32() &amp;&amp; value.asInt32() &gt;= 0)
&gt; 
&gt; I thought the goal was to treat 32-bit signed JSValue representation as unsigned? Am I missing something?

No. The goal of this is returning `UInt32Result::Constant` if the constant integer value is within uint32_t range. (this is `op_unsigned(lhs) &lt; rhsConstantUInt32`&apos;s rhsConstantUInt32 detection.)
In this patch, we allow [0, INT32_MAX] for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362590</commentid>
    <comment_count>9</comment_count>
      <attachid>324107</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-20 00:08:12 -0700</bug_when>
    <thetext>Comment on attachment 324107
Patch

Thank you</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362596</commentid>
    <comment_count>10</comment_count>
      <attachid>324107</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-20 00:35:19 -0700</bug_when>
    <thetext>Comment on attachment 324107
Patch

Clearing flags on attachment: 324107

Committed r223745: &lt;https://trac.webkit.org/changeset/223745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362597</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-20 00:35:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372347</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:04:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568730&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324106</attachid>
            <date>2017-10-18 02:11:31 -0700</date>
            <delta_ts>2017-10-18 02:31:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178379-20171018181130.patch</filename>
            <type>text/plain</type>
            <size>2115</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MmNjMmM3MDdlMzFmMzlhNTE2NDJiZmE3YTZlMDQ3NTBlYjk5ZjUyLi43ZWI4Y2E2ZDk1ZmIyYzk1
MDE1ZGNhYzE0YTUyZWE5MWZhNzk2NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0xMC0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQVJNNjRdIHN0YXRpY19jYXN0PGludDMyX3Q+KCkgaW4gQmluYXJ5
T3BOb2RlOjplbWl0Qnl0ZWNvZGUoKSBwcmV2ZW50cyBvcF91bnNpZ25lZCBlbWlzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Mzc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmV1c2UganNO
dW1iZXIncyBjaGVja2luZyBtZWNoYW5pc20gaGVyZSB0byBwcmVjaXNlbHkgY2hlY2sgdGhlIGdl
bmVyYXRlZCBudW1iZXIgaXMgd2l0aGluIHVpbnQzMl90CisgICAgICAgIGluIGJ5dGVjb2RlIGNv
bXBpbGVyLiBUaGlzIGlzIHJlYXNvbmFibGUgc2luY2UgdGhlIE51bWJlck5vZGUgd2lsbCBnZW5l
cmF0ZSB0aGUgZXhhY3QgdGhpcyBKU1ZhbHVlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJpbmFyeU9wTm9kZTo6ZW1pdEJ5dGVjb2Rl
KToKKwogMjAxNy0xMC0xOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBGaXggbWFjT1MgYW5kIGlPUyBidWlsZHMgYWZ0ZXIgcjIyMzU5NC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAz
NTViNGE3MmVlOTQyNjgzNzY1ZTQ1ODU3YjAzZDlkMGNhMzZhYmM5Li5iZmY4MmU1Zjc2ZDVlZDdk
OWYzZDAyNDVmOTZiZGY0MmMzNzI3ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTkzLDkgKzE5OTMsMTEgQEAg
UmVnaXN0ZXJJRCogQmluYXJ5T3BOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCoKICAgICAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeU9w
Tm9kZSgpICYmIHN0YXRpY19jYXN0PEJpbmFyeU9wTm9kZSo+KG5vZGUpLT5vcGNvZGVJRCgpID09
IG9wX3Vyc2hpZnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFVJbnQzMlJlc3VsdDo6VUludDMy
OwogICAgICAgICAgICAgaWYgKG5vZGUtPmlzTnVtYmVyKCkgJiYgc3RhdGljX2Nhc3Q8TnVtYmVy
Tm9kZSo+KG5vZGUpLT5pc0ludGVnZXJOb2RlKCkpIHsKLSAgICAgICAgICAgICAgICBpbnQzMl90
IHZhbHVlID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8SW50ZWdlck5vZGUqPihu
b2RlKS0+dmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlID49IDApCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBVSW50MzJSZXN1bHQ6OkNvbnN0YW50OworICAgICAgICAgICAg
ICAgIGF1dG8gdmFsdWUgPSBqc051bWJlcihzdGF0aWNfY2FzdDxOdW1iZXJOb2RlKj4obm9kZSkt
PnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pc0ludDMyKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlLmFzSW50MzIoKSA+PSAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFVJbnQzMlJlc3VsdDo6Q29uc3RhbnQ7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324107</attachid>
            <date>2017-10-18 02:31:33 -0700</date>
            <delta_ts>2017-10-20 00:35:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178379-20171018183132.patch</filename>
            <type>text/plain</type>
            <size>2002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MmNjMmM3MDdlMzFmMzlhNTE2NDJiZmE3YTZlMDQ3NTBlYjk5ZjUyLi43ZWI4Y2E2ZDk1ZmIyYzk1
MDE1ZGNhYzE0YTUyZWE5MWZhNzk2NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0xMC0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQVJNNjRdIHN0YXRpY19jYXN0PGludDMyX3Q+KCkgaW4gQmluYXJ5
T3BOb2RlOjplbWl0Qnl0ZWNvZGUoKSBwcmV2ZW50cyBvcF91bnNpZ25lZCBlbWlzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Mzc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmV1c2UganNO
dW1iZXIncyBjaGVja2luZyBtZWNoYW5pc20gaGVyZSB0byBwcmVjaXNlbHkgY2hlY2sgdGhlIGdl
bmVyYXRlZCBudW1iZXIgaXMgd2l0aGluIHVpbnQzMl90CisgICAgICAgIGluIGJ5dGVjb2RlIGNv
bXBpbGVyLiBUaGlzIGlzIHJlYXNvbmFibGUgc2luY2UgdGhlIE51bWJlck5vZGUgd2lsbCBnZW5l
cmF0ZSB0aGUgZXhhY3QgdGhpcyBKU1ZhbHVlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJpbmFyeU9wTm9kZTo6ZW1pdEJ5dGVjb2Rl
KToKKwogMjAxNy0xMC0xOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBGaXggbWFjT1MgYW5kIGlPUyBidWlsZHMgYWZ0ZXIgcjIyMzU5NC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAz
NTViNGE3MmVlOTQyNjgzNzY1ZTQ1ODU3YjAzZDlkMGNhMzZhYmM5Li41NDRjNmQyMzU4YzNhNGZh
M2UzYzRhOTJmZWZkZTZmZjBkN2NlMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTkzLDggKzE5OTMsOCBAQCBS
ZWdpc3RlcklEKiBCaW5hcnlPcE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKgogICAgICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5T3BO
b2RlKCkgJiYgc3RhdGljX2Nhc3Q8QmluYXJ5T3BOb2RlKj4obm9kZSktPm9wY29kZUlEKCkgPT0g
b3BfdXJzaGlmdCkKICAgICAgICAgICAgICAgICByZXR1cm4gVUludDMyUmVzdWx0OjpVSW50MzI7
CiAgICAgICAgICAgICBpZiAobm9kZS0+aXNOdW1iZXIoKSAmJiBzdGF0aWNfY2FzdDxOdW1iZXJO
b2RlKj4obm9kZSktPmlzSW50ZWdlck5vZGUoKSkgewotICAgICAgICAgICAgICAgIGludDMyX3Qg
dmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxJbnRlZ2VyTm9kZSo+KG5v
ZGUpLT52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgPj0gMCkKKyAgICAgICAg
ICAgICAgICBhdXRvIHZhbHVlID0ganNOdW1iZXIoc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSo+KG5v
ZGUpLT52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUuaXNJbnQzMigpICYmIHZh
bHVlLmFzSW50MzIoKSA+PSAwKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUludDMyUmVz
dWx0OjpDb25zdGFudDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>