<?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>70517</bug_id>
          
          <creation_ts>2011-10-20 09:44:24 -0700</creation_ts>
          <short_desc>Implement SSE denormal disabler for windows.</short_desc>
          <delta_ts>2011-10-20 15:38:11 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymond Toy">rtoy</reporter>
          <assigned_to name="Raymond Toy">rtoy</assigned_to>
          <cc>crogers</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>487654</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 09:44:24 -0700</bug_when>
    <thetext>Implement SSE denormal disabler for windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487662</commentid>
    <comment_count>1</comment_count>
      <attachid>111796</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 09:49:39 -0700</bug_when>
    <thetext>Created attachment 111796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487665</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-20 09:53:11 -0700</bug_when>
    <thetext>Attachment 111796 did not pass style-queue:

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

Source/WebCore/ChangeLog:4:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 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>487673</commentid>
    <comment_count>3</comment_count>
      <attachid>111797</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 10:02:25 -0700</bug_when>
    <thetext>Created attachment 111797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487674</commentid>
    <comment_count>4</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 10:05:00 -0700</bug_when>
    <thetext>This implements the denormal disabler for Windows similar to what is done on Mac and Linux.  

Chris, although we talked about not checking, I decided that we should check if SSE2 is available before we try to run instructions that might not be available.  I didn&apos;t want to cause crashes for people running chrome on windows on old machines without SSE2.  The same check is done for Mac/Linux because I merged most of the code into one implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487694</commentid>
    <comment_count>5</comment_count>
      <attachid>111797</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-10-20 10:28:15 -0700</bug_when>
    <thetext>Comment on attachment 111797
Patch

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

&gt; Source/WebCore/platform/audio/DenormalDisabler.h:39
&gt;  #if defined(__GNUC__) &amp;&amp; (defined(__i386__) || defined(__x86_64__))

Are you sure that inline assembly is supported in the 64-bit MSVC compiler? http://stackoverflow.com/questions/2980674/fesetround-with-msvc-x64 indicates it isn&apos;t.

Could you use Microsoft-specific intrinsics instead of assembly? See http://msdn.microsoft.com/en-gb/library/e9b52ceh.aspx .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487825</commentid>
    <comment_count>6</comment_count>
      <attachid>111838</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 13:24:35 -0700</bug_when>
    <thetext>Created attachment 111838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487827</commentid>
    <comment_count>7</comment_count>
      <attachid>111797</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 13:27:03 -0700</bug_when>
    <thetext>Comment on attachment 111797
Patch

_controlfp_s intrinsic is used now.  No inline assembly is used because it is not available on x64. (http://msdn.microsoft.com/en-us/library/wbk4z78b.aspx).

Ripped out the check for SSE2 since we&apos;re not doing that on Windows and weren&apos;t doing it on Linux/Mac previously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487840</commentid>
    <comment_count>8</comment_count>
      <attachid>111838</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-10-20 13:40:26 -0700</bug_when>
    <thetext>Comment on attachment 111838
Patch

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

Looks good to me. One question, but r=me.

&gt; Source/WebCore/platform/audio/DenormalDisabler.h:55
&gt; +        _controlfp_s(&amp;unused, _DN_FLUSH, _MCW_DN);

Since the guard in flushDenormalFloatToZero includes (!_M_IX86_FP), would it make sense to elide this block and the _controlfp_s call in the destructor if (!_M_IX86_FP)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487847</commentid>
    <comment_count>9</comment_count>
      <attachid>111838</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-10-20 13:49:31 -0700</bug_when>
    <thetext>Comment on attachment 111838
Patch

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

&gt;&gt; Source/WebCore/platform/audio/DenormalDisabler.h:55
&gt;&gt; +        _controlfp_s(&amp;unused, _DN_FLUSH, _MCW_DN);
&gt; 
&gt; Since the guard in flushDenormalFloatToZero includes (!_M_IX86_FP), would it make sense to elide this block and the _controlfp_s call in the destructor if (!_M_IX86_FP)?

I thought about that, but the OS(WINDOWS) and COMPILER(MSVC) makes it clear this is a windows thing, which is harder to tell if you just had !_M_IX86_FP.  But at some expense in readability and duplication.

No problem if you think changing it makes it better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487859</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-10-20 13:58:45 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 111838 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111838&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/audio/DenormalDisabler.h:55
&gt; &gt;&gt; +        _controlfp_s(&amp;unused, _DN_FLUSH, _MCW_DN);
&gt; &gt; 
&gt; &gt; Since the guard in flushDenormalFloatToZero includes (!_M_IX86_FP), would it make sense to elide this block and the _controlfp_s call in the destructor if (!_M_IX86_FP)?
&gt; 
&gt; I thought about that, but the OS(WINDOWS) and COMPILER(MSVC) makes it clear this is a windows thing, which is harder to tell if you just had !_M_IX86_FP.  But at some expense in readability and duplication.
&gt;
&gt; No problem if you think changing it makes it better.

I see. What I was suggesting was to add the #if (!_M_IX86_FP) include guard inside the existing OS(WINDOWS) include guards. It&apos;s fine as is; the extra work on non-SSE2 platforms should be negligible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487934</commentid>
    <comment_count>11</comment_count>
      <attachid>111838</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-20 15:38:07 -0700</bug_when>
    <thetext>Comment on attachment 111838
Patch

Clearing flags on attachment: 111838

Committed r98029: &lt;http://trac.webkit.org/changeset/98029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487935</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-20 15:38:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111796</attachid>
            <date>2011-10-20 09:49:39 -0700</date>
            <delta_ts>2011-10-20 10:02:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70517-20111020094938.patch</filename>
            <type>text/plain</type>
            <size>5339</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTVmY2Y5MDdmZDUyNGEz
MzkyYzZjNWQ4ZGUxNDNlZjBlZDMwN2EzLi44ODE3YWQyNDdmY2Y5YzBlYjUxNGRjNDA5ZmZmOTM1
N2ZkMDFjNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMTAtMjAgIFJheW1v
bmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTU0UgZGVub3Jt
YWwgZGlzYWJsZXIgZm9yIHdpbmRvd3MuCisJVW5pZnkgaW1wbGVtZW50YXRpb24gZm9yIFdpbmRv
d3Mgd2l0aCBNYWMgYW5kIExpbnV4LgorCQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0Rlbm9ybWFsRGlzYWJsZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6OkRlbm9ybWFsRGlzYWJsZXIpOgorICAg
ICAgICBPbmx5IGZyb2IgdGhlIENTUiBpZiB3ZSBoYXZlIFNTRTIKKyAgICAgICAgKFdlYkNvcmU6
OkRlbm9ybWFsRGlzYWJsZXI6On5EZW5vcm1hbERpc2FibGVyKToKKyAgICAgICAgT25seSBmcm9i
IHRoZSBDU1IgaWYgd2UgaGF2ZSBTU0UyCisgICAgICAgIChXZWJDb3JlOjpEZW5vcm1hbERpc2Fi
bGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8pOgorICAgICAgICBVbmlmeSBXaW5kb3dzIHdp
dGggbWFjL2xpbnV4LgorICAgICAgICAoV2ViQ29yZTo6RGVub3JtYWxEaXNhYmxlcjo6Z2V0Q1NS
KToKKyAgICAgICAgQWRkIFdpbmRvd3MgaW1wbGVtZW50YXRpb24KKyAgICAgICAgKFdlYkNvcmU6
OkRlbm9ybWFsRGlzYWJsZXI6OnNldENTUik6CisgICAgICAgIEFkZCBXaW5kb3dzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIChXZWJDb3JlOjpEZW5vcm1hbERpc2FibGVyOjpjcHVpZCk6CisgICAg
ICAgIE5ldyBmdW5jdGlvbiB0byBydW4gdGhlIGNwdWlkIGluc3RydWN0aW9uIHRvIGdldCBDUFUg
aW5mb3JtYXRpb24uIAorICAgICAgICAoV2ViQ29yZTo6RGVub3JtYWxEaXNhYmxlcjo6aGF2ZVNT
RTIpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdG8gY2hlY2sgaWYgU1NFMiBpcyBhdmFpbGFibGUu
CisKIDIwMTEtMTAtMTkgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaGUgIngiIGluICI5ODBweCB4IDM2cHgiIGxvb2tz
IHdlaXJkIGluIHRoZSBpbnNwZWN0b3Igbm9kZSBjYWxsb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmgKaW5kZXggNTg4M2VlZGM2YTc2Yzhh
ZGUxMzQyODJjOTI4NGU2ZDg2OWUwMThhNS4uYTQ2YmRiNTA0MjM1Zjg5ZDAxMmMwOTQzMGVlOTZl
NjRkYzgxMjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRGVu
b3JtYWxEaXNhYmxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Rlbm9y
bWFsRGlzYWJsZXIuaApAQCAtMzEsNTggKzMxLDEyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IC8vIERlYWwgd2l0aCBkZW5vcm1hbHMuIFRoZXkgY2FuIHZlcnkgc2VyaW91c2x5IGltcGFjdCBw
ZXJmb3JtYW5jZSBvbiB4ODYuCiAKKy8vIERlZmluZSBIQVZFX0RFTk9STUFMIGlmIHdlIHN1cHBv
cnQgZmx1c2hpbmcgZGVub3JtYWxzIHRvIHplcm8uCisjaWYgT1MoV0lORE9XUykgJiYgQ09NUElM
RVIoTVNWQykKKyNkZWZpbmUgSEFWRV9ERU5PUk1BTAorI2VuZGlmCisKICNpZiBkZWZpbmVkKF9f
R05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSkKKyNk
ZWZpbmUgSEFWRV9ERU5PUk1BTAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0RFTk9STUFMCiBjbGFz
cyBEZW5vcm1hbERpc2FibGVyIHsKIHB1YmxpYzoKICAgICBEZW5vcm1hbERpc2FibGVyKCkKKyAg
ICAgICAgICAgIDogbV9zYXZlZENTUigwKQogICAgIHsKLSAgICAgICAgbV9zYXZlZENTUiA9IGdl
dENTUigpOwotICAgICAgICBzZXRDU1IobV9zYXZlZENTUiB8IDB4ODA0MCk7CisgICAgICAgIGlm
IChoYXZlU1NFMigpKSB7CisgICAgICAgICAgICBtX3NhdmVkQ1NSID0gZ2V0Q1NSKCk7CisgICAg
ICAgICAgICBzZXRDU1IobV9zYXZlZENTUiB8IDB4ODA0MCk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICB+RGVub3JtYWxEaXNhYmxlcigpCiAgICAgewotICAgICAgICBzZXRDU1IobV9zYXZlZENT
Uik7CisgICAgICAgIGlmIChoYXZlU1NFMigpKQorICAgICAgICAgICAgc2V0Q1NSKG1fc2F2ZWRD
U1IpOwogICAgIH0KIAogICAgIC8vIFRoaXMgaXMgYSBub3AgaWYgd2UgY2FuIGZsdXNoIGRlbm9y
bWFscyB0byB6ZXJvIGluIGhhcmR3YXJlLgogICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQgZmx1c2hE
ZW5vcm1hbEZsb2F0VG9aZXJvKGZsb2F0IGYpCiAgICAgeworI2lmIE9TKFdJTkRPV1MpICYmIENP
TVBJTEVSKE1TVkMpICYmICghX01fSVg4Nl9GUCkKKyAgICAgICAgLy8gRm9yIHN5c3RlbXMgdXNp
bmcgeDg3IGluc3RlYWQgb2Ygc3NlLCB0aGVyZSdzIG5vIGhhcmR3YXJlIHN1cHBvcnQKKyAgICAg
ICAgLy8gdG8gZmx1c2ggZGVub3JtYWxzIGF1dG9tYXRpY2FsbHkuIEhlbmNlLCB3ZSBuZWVkIHRv
IGZsdXNoCisgICAgICAgIC8vIGRlbm9ybWFscyB0byB6ZXJvIG1hbnVhbGx5LgorICAgICAgICBy
ZXR1cm4gKGZhYnMoZikgPCBGTFRfTUlOKSA/IDAuMGYgOiBmOworI2Vsc2UKICAgICAgICAgcmV0
dXJuIGY7CisjZW5kaWYKICAgICB9CiBwcml2YXRlOgogICAgIGlubGluZSBpbnQgZ2V0Q1NSKCkK
ICAgICB7CiAgICAgICAgIGludCByZXN1bHQ7CisjaWYgQ09NUElMRVIoTVNWQykKKyAgICAgICAg
X19hc20ge3N0bXhjc3IgcmVzdWx0fQorI2Vsc2UKICAgICAgICAgYXNtIHZvbGF0aWxlKCJzdG14
Y3NyICUwIiA6ICI9bSIgKHJlc3VsdCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgc2V0Q1NSKGludCBhKQogICAgIHsKICAgICAgICAg
aW50IHRlbXAgPSBhOworI2lmIENPTVBJTEVSKE1TVkMpCisgICAgICAgIF9fYXNtIHtsZG14Y3Ny
IHRlbXB9CisjZWxzZQogICAgICAgICBhc20gdm9sYXRpbGUoImxkbXhjc3IgJTAiIDogOiAibSIg
KHRlbXApKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlubGluZSB2b2lkIGNwdWlkKGludCBmdW5j
LCBpbnQmYSwgaW50JiBiLCBpbnQmIGMsIGludCYgZCkKKyAgICB7CisgICAgICAgIGludCB4YTsK
KyAgICAgICAgaW50IHhiOworICAgICAgICBpbnQgeGM7CisgICAgICAgIGludCB4ZDsKKworI2lm
IENPTVBJTEVSKE1TVkMpCisgICAgICAgIF9fYXNtIHsKKyAgICAgICAgICAgIG1vdiBlYXgsIGZ1
bmMKKyAgICAgICAgICAgIGNwdWlkCisgICAgICAgICAgICBtb3YgeGEsIGVheAorICAgICAgICAg
ICAgbW92IHhiLCBlYngKKyAgICAgICAgICAgIG1vdiB4YywgZWN4CisgICAgICAgICAgICBtb3Yg
eGQsIGVkeAorICAgICAgICB9CisjZWxzZQorICAgICAgICBhc20gdm9sYXRpbGUoImNwdWlkIjog
Ij1hIiAoeGEpLCAiPWIiICh4YiksICI9YyIgKHhjKSwgIj1kIiAoeGQpIDogImEiIChmdW5jKSk7
CisjZW5kaWYKKyAgICAgICAgYSA9IHhhOworICAgICAgICBiID0geGI7CisgICAgICAgIGMgPSB4
YzsKKyAgICAgICAgZCA9IHhkOworICAgIH0KKworICAgIC8vIEZJWE1FOiBJIChydG95KSB0aGlu
ayBhbGwgTWFjcyBoYXZlIHNzZTIsIHNvIHRoaXMgY291bGQgYWx3YXlzCisgICAgLy8gcmV0dXJu
IHRydWUgd2l0aG91dCBoYXZpbmcgdG8gY2hlY2suIFdlIGNvdWxkIGdldCByaWQgb2YgdGhlCisg
ICAgLy8gY3B1aWQgZnVuY3Rpb24gYWJvdmUgdG9vLgorICAgIC8vCisgICAgLy8gRklYTUU6IFNo
b3VsZCB0aGUgcmVzdWx0IG9mIGhhdmVTU0UyIGJlIGNhY2hlZD8KKyAgICBpbmxpbmUgYm9vbCBo
YXZlU1NFMigpCisgICAgeworICAgICAgICBpbnQgZWF4OworICAgICAgICBpbnQgZWJ4OworICAg
ICAgICBpbnQgZWN4OworICAgICAgICBpbnQgZWR4OworICAgICAgICAvLyBGdW5jdGlvbiAxIGdl
dHMgdGhlIHN0YW5kYXJkIGZlYXR1cmUgZmxhZ3MgaW4gZWR4LgorICAgICAgICBjcHVpZCgxLCBl
YXgsIGVieCwgZWN4LCBlZHgpOworICAgICAgICAvLyBCaXQgMjYgb2YgdGhlIGVkeCByZWdpc3Rl
ciBpbmRpY2F0ZXMgdGhlIGNoaXAgaGFzIFNTRTIuCisgICAgICAgIHJldHVybiBlZHggJiAoMSA8
PCAyNik7CiAgICAgfQogCiAgICAgaW50IG1fc2F2ZWRDU1I7CiB9OwogCiAjZWxzZQotLy8gRklY
TUU6IGFkZCBpbXBsZW1lbnRhdGlvbnMgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMgYW5kIGNvbXBp
bGVycyBzdWNoIGFzIFZpc3VhbCBTdHVkaW8uCisvLyBGSVhNRTogYWRkIGltcGxlbWVudGF0aW9u
cyBmb3Igb3RoZXIgYXJjaGl0ZWN0dXJlcyBhbmQgY29tcGlsZXJzCiBjbGFzcyBEZW5vcm1hbERp
c2FibGVyIHsKIHB1YmxpYzoKICAgICBEZW5vcm1hbERpc2FibGVyKCkgeyB9CiAKKyAgICAvLyBB
c3N1bWUgdGhlIHdvcnN0IGNhc2UgdGhhdCBvdGhlciBhcmNoaXRlY3R1cmVzIGFuZCBjb21waWxl
cnMKKyAgICAvLyBuZWVkIHRvIGZsdXNoIGRlbm9ybWFscyB0byB6ZXJvIG1hbnVhbGx5LgogICAg
IHN0YXRpYyBpbmxpbmUgZmxvYXQgZmx1c2hEZW5vcm1hbEZsb2F0VG9aZXJvKGZsb2F0IGYpCiAg
ICAgewotI2lmIE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKE1TVkMpICYmICghX01fSVg4Nl9GUCkK
LSAgICAgICAgLy8gRm9yIHN5c3RlbXMgdXNpbmcgeDg3IGluc3RlYWQgb2Ygc3NlLCB0aGVyZSdz
IG5vIGhhcmR3YXJlIHN1cHBvcnQKLSAgICAgICAgLy8gdG8gZmx1c2ggZGVub3JtYWxzIGF1dG9t
YXRpY2FsbHkuIEhlbmNlLCB3ZSBuZWVkIHRvIGZsdXNoCi0gICAgICAgIC8vIGRlbm9ybWFscyB0
byB6ZXJvIG1hbnVhbGx5LgogICAgICAgICByZXR1cm4gKGZhYnMoZikgPCBGTFRfTUlOKSA/IDAu
MGYgOiBmOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIGY7Ci0jZW5kaWYKICAgICB9CiB9OwogCkBA
IC05MCw0ICsxNTUsNSBAQCBwdWJsaWM6CiAKIH0gLy8gV2ViQ29yZQogCisjdW5kZWYgSEFWRV9E
RU5PUk1BTAogI2VuZGlmIC8vIERlbm9ybWFsRGlzYWJsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111797</attachid>
            <date>2011-10-20 10:02:25 -0700</date>
            <delta_ts>2011-10-20 13:27:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70517-20111020100224.patch</filename>
            <type>text/plain</type>
            <size>5345</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTVmY2Y5MDdmZDUyNGEz
MzkyYzZjNWQ4ZGUxNDNlZjBlZDMwN2EzLi5lMjM0NGU4MDA2OGU5NDA0YjljZTRjYjJmNzAyOWJm
ODQwZGM4ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMTAtMjAgIFJheW1v
bmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTU0UgZGVub3Jt
YWwgZGlzYWJsZXIgZm9yIHdpbmRvd3MuCisgICAgICAgIFVuaWZ5IGltcGxlbWVudGF0aW9uIGZv
ciBXaW5kb3dzIHdpdGggTWFjIGFuZCBMaW51eC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0Rlbm9ybWFsRGlzYWJsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6OkRlbm9ybWFsRGlzYWJsZXIp
OgorICAgICAgICBPbmx5IGZyb2IgdGhlIENTUiBpZiB3ZSBoYXZlIFNTRTIKKyAgICAgICAgKFdl
YkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6On5EZW5vcm1hbERpc2FibGVyKToKKyAgICAgICAgT25s
eSBmcm9iIHRoZSBDU1IgaWYgd2UgaGF2ZSBTU0UyCisgICAgICAgIChXZWJDb3JlOjpEZW5vcm1h
bERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8pOgorICAgICAgICBVbmlmeSBXaW5k
b3dzIHdpdGggbWFjL2xpbnV4LgorICAgICAgICAoV2ViQ29yZTo6RGVub3JtYWxEaXNhYmxlcjo6
Z2V0Q1NSKToKKyAgICAgICAgQWRkIFdpbmRvd3MgaW1wbGVtZW50YXRpb24KKyAgICAgICAgKFdl
YkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6OnNldENTUik6CisgICAgICAgIEFkZCBXaW5kb3dzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIChXZWJDb3JlOjpEZW5vcm1hbERpc2FibGVyOjpjcHVpZCk6
CisgICAgICAgIE5ldyBmdW5jdGlvbiB0byBydW4gdGhlIGNwdWlkIGluc3RydWN0aW9uIHRvIGdl
dCBDUFUgaW5mb3JtYXRpb24uIAorICAgICAgICAoV2ViQ29yZTo6RGVub3JtYWxEaXNhYmxlcjo6
aGF2ZVNTRTIpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdG8gY2hlY2sgaWYgU1NFMiBpcyBhdmFp
bGFibGUuCisKIDIwMTEtMTAtMTkgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaGUgIngiIGluICI5ODBweCB4IDM2cHgi
IGxvb2tzIHdlaXJkIGluIHRoZSBpbnNwZWN0b3Igbm9kZSBjYWxsb3V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmgKaW5kZXggNTg4M2VlZGM2
YTc2YzhhZGUxMzQyODJjOTI4NGU2ZDg2OWUwMThhNS4uYTQ2YmRiNTA0MjM1Zjg5ZDAxMmMwOTQz
MGVlOTZlNjRkYzgxMjU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRGVub3JtYWxEaXNhYmxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0Rlbm9ybWFsRGlzYWJsZXIuaApAQCAtMzEsNTggKzMxLDEyMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlYWwgd2l0aCBkZW5vcm1hbHMuIFRoZXkgY2FuIHZlcnkgc2VyaW91c2x5IGlt
cGFjdCBwZXJmb3JtYW5jZSBvbiB4ODYuCiAKKy8vIERlZmluZSBIQVZFX0RFTk9STUFMIGlmIHdl
IHN1cHBvcnQgZmx1c2hpbmcgZGVub3JtYWxzIHRvIHplcm8uCisjaWYgT1MoV0lORE9XUykgJiYg
Q09NUElMRVIoTVNWQykKKyNkZWZpbmUgSEFWRV9ERU5PUk1BTAorI2VuZGlmCisKICNpZiBkZWZp
bmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f
KSkKKyNkZWZpbmUgSEFWRV9ERU5PUk1BTAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0RFTk9STUFM
CiBjbGFzcyBEZW5vcm1hbERpc2FibGVyIHsKIHB1YmxpYzoKICAgICBEZW5vcm1hbERpc2FibGVy
KCkKKyAgICAgICAgICAgIDogbV9zYXZlZENTUigwKQogICAgIHsKLSAgICAgICAgbV9zYXZlZENT
UiA9IGdldENTUigpOwotICAgICAgICBzZXRDU1IobV9zYXZlZENTUiB8IDB4ODA0MCk7CisgICAg
ICAgIGlmIChoYXZlU1NFMigpKSB7CisgICAgICAgICAgICBtX3NhdmVkQ1NSID0gZ2V0Q1NSKCk7
CisgICAgICAgICAgICBzZXRDU1IobV9zYXZlZENTUiB8IDB4ODA0MCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICB+RGVub3JtYWxEaXNhYmxlcigpCiAgICAgewotICAgICAgICBzZXRDU1IobV9z
YXZlZENTUik7CisgICAgICAgIGlmIChoYXZlU1NFMigpKQorICAgICAgICAgICAgc2V0Q1NSKG1f
c2F2ZWRDU1IpOwogICAgIH0KIAogICAgIC8vIFRoaXMgaXMgYSBub3AgaWYgd2UgY2FuIGZsdXNo
IGRlbm9ybWFscyB0byB6ZXJvIGluIGhhcmR3YXJlLgogICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQg
Zmx1c2hEZW5vcm1hbEZsb2F0VG9aZXJvKGZsb2F0IGYpCiAgICAgeworI2lmIE9TKFdJTkRPV1Mp
ICYmIENPTVBJTEVSKE1TVkMpICYmICghX01fSVg4Nl9GUCkKKyAgICAgICAgLy8gRm9yIHN5c3Rl
bXMgdXNpbmcgeDg3IGluc3RlYWQgb2Ygc3NlLCB0aGVyZSdzIG5vIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgLy8gdG8gZmx1c2ggZGVub3JtYWxzIGF1dG9tYXRpY2FsbHkuIEhlbmNlLCB3ZSBu
ZWVkIHRvIGZsdXNoCisgICAgICAgIC8vIGRlbm9ybWFscyB0byB6ZXJvIG1hbnVhbGx5LgorICAg
ICAgICByZXR1cm4gKGZhYnMoZikgPCBGTFRfTUlOKSA/IDAuMGYgOiBmOworI2Vsc2UKICAgICAg
ICAgcmV0dXJuIGY7CisjZW5kaWYKICAgICB9CiBwcml2YXRlOgogICAgIGlubGluZSBpbnQgZ2V0
Q1NSKCkKICAgICB7CiAgICAgICAgIGludCByZXN1bHQ7CisjaWYgQ09NUElMRVIoTVNWQykKKyAg
ICAgICAgX19hc20ge3N0bXhjc3IgcmVzdWx0fQorI2Vsc2UKICAgICAgICAgYXNtIHZvbGF0aWxl
KCJzdG14Y3NyICUwIiA6ICI9bSIgKHJlc3VsdCkpOworI2VuZGlmCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgc2V0Q1NSKGludCBhKQogICAgIHsKICAg
ICAgICAgaW50IHRlbXAgPSBhOworI2lmIENPTVBJTEVSKE1TVkMpCisgICAgICAgIF9fYXNtIHts
ZG14Y3NyIHRlbXB9CisjZWxzZQogICAgICAgICBhc20gdm9sYXRpbGUoImxkbXhjc3IgJTAiIDog
OiAibSIgKHRlbXApKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlubGluZSB2b2lkIGNwdWlkKGlu
dCBmdW5jLCBpbnQmYSwgaW50JiBiLCBpbnQmIGMsIGludCYgZCkKKyAgICB7CisgICAgICAgIGlu
dCB4YTsKKyAgICAgICAgaW50IHhiOworICAgICAgICBpbnQgeGM7CisgICAgICAgIGludCB4ZDsK
KworI2lmIENPTVBJTEVSKE1TVkMpCisgICAgICAgIF9fYXNtIHsKKyAgICAgICAgICAgIG1vdiBl
YXgsIGZ1bmMKKyAgICAgICAgICAgIGNwdWlkCisgICAgICAgICAgICBtb3YgeGEsIGVheAorICAg
ICAgICAgICAgbW92IHhiLCBlYngKKyAgICAgICAgICAgIG1vdiB4YywgZWN4CisgICAgICAgICAg
ICBtb3YgeGQsIGVkeAorICAgICAgICB9CisjZWxzZQorICAgICAgICBhc20gdm9sYXRpbGUoImNw
dWlkIjogIj1hIiAoeGEpLCAiPWIiICh4YiksICI9YyIgKHhjKSwgIj1kIiAoeGQpIDogImEiIChm
dW5jKSk7CisjZW5kaWYKKyAgICAgICAgYSA9IHhhOworICAgICAgICBiID0geGI7CisgICAgICAg
IGMgPSB4YzsKKyAgICAgICAgZCA9IHhkOworICAgIH0KKworICAgIC8vIEZJWE1FOiBJIChydG95
KSB0aGluayBhbGwgTWFjcyBoYXZlIHNzZTIsIHNvIHRoaXMgY291bGQgYWx3YXlzCisgICAgLy8g
cmV0dXJuIHRydWUgd2l0aG91dCBoYXZpbmcgdG8gY2hlY2suIFdlIGNvdWxkIGdldCByaWQgb2Yg
dGhlCisgICAgLy8gY3B1aWQgZnVuY3Rpb24gYWJvdmUgdG9vLgorICAgIC8vCisgICAgLy8gRklY
TUU6IFNob3VsZCB0aGUgcmVzdWx0IG9mIGhhdmVTU0UyIGJlIGNhY2hlZD8KKyAgICBpbmxpbmUg
Ym9vbCBoYXZlU1NFMigpCisgICAgeworICAgICAgICBpbnQgZWF4OworICAgICAgICBpbnQgZWJ4
OworICAgICAgICBpbnQgZWN4OworICAgICAgICBpbnQgZWR4OworICAgICAgICAvLyBGdW5jdGlv
biAxIGdldHMgdGhlIHN0YW5kYXJkIGZlYXR1cmUgZmxhZ3MgaW4gZWR4LgorICAgICAgICBjcHVp
ZCgxLCBlYXgsIGVieCwgZWN4LCBlZHgpOworICAgICAgICAvLyBCaXQgMjYgb2YgdGhlIGVkeCBy
ZWdpc3RlciBpbmRpY2F0ZXMgdGhlIGNoaXAgaGFzIFNTRTIuCisgICAgICAgIHJldHVybiBlZHgg
JiAoMSA8PCAyNik7CiAgICAgfQogCiAgICAgaW50IG1fc2F2ZWRDU1I7CiB9OwogCiAjZWxzZQot
Ly8gRklYTUU6IGFkZCBpbXBsZW1lbnRhdGlvbnMgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMgYW5k
IGNvbXBpbGVycyBzdWNoIGFzIFZpc3VhbCBTdHVkaW8uCisvLyBGSVhNRTogYWRkIGltcGxlbWVu
dGF0aW9ucyBmb3Igb3RoZXIgYXJjaGl0ZWN0dXJlcyBhbmQgY29tcGlsZXJzCiBjbGFzcyBEZW5v
cm1hbERpc2FibGVyIHsKIHB1YmxpYzoKICAgICBEZW5vcm1hbERpc2FibGVyKCkgeyB9CiAKKyAg
ICAvLyBBc3N1bWUgdGhlIHdvcnN0IGNhc2UgdGhhdCBvdGhlciBhcmNoaXRlY3R1cmVzIGFuZCBj
b21waWxlcnMKKyAgICAvLyBuZWVkIHRvIGZsdXNoIGRlbm9ybWFscyB0byB6ZXJvIG1hbnVhbGx5
LgogICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQgZmx1c2hEZW5vcm1hbEZsb2F0VG9aZXJvKGZsb2F0
IGYpCiAgICAgewotI2lmIE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKE1TVkMpICYmICghX01fSVg4
Nl9GUCkKLSAgICAgICAgLy8gRm9yIHN5c3RlbXMgdXNpbmcgeDg3IGluc3RlYWQgb2Ygc3NlLCB0
aGVyZSdzIG5vIGhhcmR3YXJlIHN1cHBvcnQKLSAgICAgICAgLy8gdG8gZmx1c2ggZGVub3JtYWxz
IGF1dG9tYXRpY2FsbHkuIEhlbmNlLCB3ZSBuZWVkIHRvIGZsdXNoCi0gICAgICAgIC8vIGRlbm9y
bWFscyB0byB6ZXJvIG1hbnVhbGx5LgogICAgICAgICByZXR1cm4gKGZhYnMoZikgPCBGTFRfTUlO
KSA/IDAuMGYgOiBmOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIGY7Ci0jZW5kaWYKICAgICB9CiB9
OwogCkBAIC05MCw0ICsxNTUsNSBAQCBwdWJsaWM6CiAKIH0gLy8gV2ViQ29yZQogCisjdW5kZWYg
SEFWRV9ERU5PUk1BTAogI2VuZGlmIC8vIERlbm9ybWFsRGlzYWJsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111838</attachid>
            <date>2011-10-20 13:24:35 -0700</date>
            <delta_ts>2011-10-20 15:38:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70517-20111020132434.patch</filename>
            <type>text/plain</type>
            <size>4142</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTVmY2Y5MDdmZDUyNGEz
MzkyYzZjNWQ4ZGUxNDNlZjBlZDMwN2EzLi5kMTdjZjk5NGIwNzM3N2JmNThkNTQxYWRkNTQ4YzU3
NGI1YTc2ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTAtMjAgIFJheW1v
bmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTU0UgZGVub3Jt
YWwgZGlzYWJsZXIgZm9yIHdpbmRvd3MuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZW5vcm1hbERpc2FibGVyOjpEZW5vcm1hbERpc2FibGVyKToKKyAg
ICAgICAgQWRkIGltcGxlbWVudGF0aW9uIGZvciBXaW5kb3dzLgorICAgICAgICAoV2ViQ29yZTo6
RGVub3JtYWxEaXNhYmxlcjo6fkRlbm9ybWFsRGlzYWJsZXIpOgorICAgICAgICBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVy
byk6CisgICAgICAgIFVuaWZ5IFdpbmRvd3Mgd2l0aCBtYWMvbGludXguCisgICAgICAgIChXZWJD
b3JlOjpEZW5vcm1hbERpc2FibGVyOjpnZXRDU1IpOgorICAgICAgICBEZWZpbmUgb25seSBpZiB3
ZSdyZSBub3Qgb24gV2luZG93cy4KKyAgICAgICAgKFdlYkNvcmU6OkRlbm9ybWFsRGlzYWJsZXI6
OnNldENTUik6CisgICAgICAgIERpdHRvLgorCiAyMDExLTEwLTE5ICBBbGV4YW5kZXIgUGF2bG92
ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVGhlICJ4
IiBpbiAiOTgwcHggeCAzNnB4IiBsb29rcyB3ZWlyZCBpbiB0aGUgaW5zcGVjdG9yIG5vZGUgY2Fs
bG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRGVub3JtYWxE
aXNhYmxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRGVub3JtYWxEaXNhYmxl
ci5oCmluZGV4IDU4ODNlZWRjNmE3NmM4YWRlMTM0MjgyYzkyODRlNmQ4NjllMDE4YTUuLjZlOWY0
ZTAxZGFlNmQ0NWQwMjExMWQ1ZDViMTI4ZWYzODg2YjIyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Rlbm9ybWFsRGlzYWJsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9EZW5vcm1hbERpc2FibGVyLmgKQEAgLTMxLDI2ICszMSw1OCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIERlYWwgd2l0aCBkZW5vcm1hbHMuIFRoZXkgY2Fu
IHZlcnkgc2VyaW91c2x5IGltcGFjdCBwZXJmb3JtYW5jZSBvbiB4ODYuCiAKKy8vIERlZmluZSBI
QVZFX0RFTk9STUFMIGlmIHdlIHN1cHBvcnQgZmx1c2hpbmcgZGVub3JtYWxzIHRvIHplcm8uCisj
aWYgT1MoV0lORE9XUykgJiYgQ09NUElMRVIoTVNWQykKKyNkZWZpbmUgSEFWRV9ERU5PUk1BTAor
I2VuZGlmCisKICNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwg
ZGVmaW5lZChfX3g4Nl82NF9fKSkKKyNkZWZpbmUgSEFWRV9ERU5PUk1BTAorI2VuZGlmCisKKyNp
ZmRlZiBIQVZFX0RFTk9STUFMCiBjbGFzcyBEZW5vcm1hbERpc2FibGVyIHsKIHB1YmxpYzoKICAg
ICBEZW5vcm1hbERpc2FibGVyKCkKKyAgICAgICAgICAgIDogbV9zYXZlZENTUigwKQogICAgIHsK
KyNpZiBPUyhXSU5ET1dTKSAmJiBDT01QSUxFUihNU1ZDKQorICAgICAgICAvLyBTYXZlIHRoZSBj
dXJyZW50IHN0YXRlLCBhbmQgc2V0IG1vZGUgdG8gZmx1c2ggZGVub3JtYWxzLgorICAgICAgICAv
LworICAgICAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYzNzE3NS9w
b3NzaWJsZS1idWctaW4tY29udHJvbGZwLXMtbWF5LW5vdC1yZXN0b3JlLWNvbnRyb2wtd29yZC1j
b3JyZWN0bHkKKyAgICAgICAgX2NvbnRyb2xmcF9zKCZtX3NhdmVkQ1NSLCAwLCAwKTsKKyAgICAg
ICAgdW5zaWduZWQgaW50IHVudXNlZDsKKyAgICAgICAgX2NvbnRyb2xmcF9zKCZ1bnVzZWQsIF9E
Tl9GTFVTSCwgX01DV19ETik7CisjZWxzZQogICAgICAgICBtX3NhdmVkQ1NSID0gZ2V0Q1NSKCk7
CiAgICAgICAgIHNldENTUihtX3NhdmVkQ1NSIHwgMHg4MDQwKTsKKyNlbmRpZgogICAgIH0KIAog
ICAgIH5EZW5vcm1hbERpc2FibGVyKCkKICAgICB7CisjaWYgT1MoV0lORE9XUykgJiYgQ09NUElM
RVIoTVNWQykKKyAgICAgICAgdW5zaWduZWQgaW50IHVudXNlZDsKKyAgICAgICAgX2NvbnRyb2xm
cF9zKCZ1bnVzZWQsIG1fc2F2ZWRDU1IsIF9NQ1dfRE4pOworI2Vsc2UKICAgICAgICAgc2V0Q1NS
KG1fc2F2ZWRDU1IpOworI2VuZGlmCiAgICAgfQogCiAgICAgLy8gVGhpcyBpcyBhIG5vcCBpZiB3
ZSBjYW4gZmx1c2ggZGVub3JtYWxzIHRvIHplcm8gaW4gaGFyZHdhcmUuCiAgICAgc3RhdGljIGlu
bGluZSBmbG9hdCBmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8oZmxvYXQgZikKICAgICB7CisjaWYg
T1MoV0lORE9XUykgJiYgQ09NUElMRVIoTVNWQykgJiYgKCFfTV9JWDg2X0ZQKQorICAgICAgICAv
LyBGb3Igc3lzdGVtcyB1c2luZyB4ODcgaW5zdGVhZCBvZiBzc2UsIHRoZXJlJ3Mgbm8gaGFyZHdh
cmUgc3VwcG9ydAorICAgICAgICAvLyB0byBmbHVzaCBkZW5vcm1hbHMgYXV0b21hdGljYWxseS4g
SGVuY2UsIHdlIG5lZWQgdG8gZmx1c2gKKyAgICAgICAgLy8gZGVub3JtYWxzIHRvIHplcm8gbWFu
dWFsbHkuCisgICAgICAgIHJldHVybiAoZmFicyhmKSA8IEZMVF9NSU4pID8gMC4wZiA6IGY7Cisj
ZWxzZQogICAgICAgICByZXR1cm4gZjsKKyNlbmRpZgogICAgIH0KIHByaXZhdGU6CisjaWYgZGVm
aW5lZChfX0dOVUNfXykgJiYgKGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf
XykpCiAgICAgaW5saW5lIGludCBnZXRDU1IoKQogICAgIHsKICAgICAgICAgaW50IHJlc3VsdDsK
QEAgLTY0LDI1ICs5NiwyMiBAQCBwcml2YXRlOgogICAgICAgICBhc20gdm9sYXRpbGUoImxkbXhj
c3IgJTAiIDogOiAibSIgKHRlbXApKTsKICAgICB9CiAKLSAgICBpbnQgbV9zYXZlZENTUjsKKyNl
bmRpZgorCisgICAgdW5zaWduZWQgaW50IG1fc2F2ZWRDU1I7CiB9OwogCiAjZWxzZQotLy8gRklY
TUU6IGFkZCBpbXBsZW1lbnRhdGlvbnMgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMgYW5kIGNvbXBp
bGVycyBzdWNoIGFzIFZpc3VhbCBTdHVkaW8uCisvLyBGSVhNRTogYWRkIGltcGxlbWVudGF0aW9u
cyBmb3Igb3RoZXIgYXJjaGl0ZWN0dXJlcyBhbmQgY29tcGlsZXJzCiBjbGFzcyBEZW5vcm1hbERp
c2FibGVyIHsKIHB1YmxpYzoKICAgICBEZW5vcm1hbERpc2FibGVyKCkgeyB9CiAKKyAgICAvLyBB
c3N1bWUgdGhlIHdvcnN0IGNhc2UgdGhhdCBvdGhlciBhcmNoaXRlY3R1cmVzIGFuZCBjb21waWxl
cnMKKyAgICAvLyBuZWVkIHRvIGZsdXNoIGRlbm9ybWFscyB0byB6ZXJvIG1hbnVhbGx5LgogICAg
IHN0YXRpYyBpbmxpbmUgZmxvYXQgZmx1c2hEZW5vcm1hbEZsb2F0VG9aZXJvKGZsb2F0IGYpCiAg
ICAgewotI2lmIE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKE1TVkMpICYmICghX01fSVg4Nl9GUCkK
LSAgICAgICAgLy8gRm9yIHN5c3RlbXMgdXNpbmcgeDg3IGluc3RlYWQgb2Ygc3NlLCB0aGVyZSdz
IG5vIGhhcmR3YXJlIHN1cHBvcnQKLSAgICAgICAgLy8gdG8gZmx1c2ggZGVub3JtYWxzIGF1dG9t
YXRpY2FsbHkuIEhlbmNlLCB3ZSBuZWVkIHRvIGZsdXNoCi0gICAgICAgIC8vIGRlbm9ybWFscyB0
byB6ZXJvIG1hbnVhbGx5LgogICAgICAgICByZXR1cm4gKGZhYnMoZikgPCBGTFRfTUlOKSA/IDAu
MGYgOiBmOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIGY7Ci0jZW5kaWYKICAgICB9CiB9OwogCkBA
IC05MCw0ICsxMTksNSBAQCBwdWJsaWM6CiAKIH0gLy8gV2ViQ29yZQogCisjdW5kZWYgSEFWRV9E
RU5PUk1BTAogI2VuZGlmIC8vIERlbm9ybWFsRGlzYWJsZXJfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>