<?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>37308</bug_id>
          
          <creation_ts>2010-04-08 23:10:40 -0700</creation_ts>
          <short_desc>[Chromium] Support HTML5 &lt;progress&gt; element on Windows.</short_desc>
          <delta_ts>2010-05-12 15:46:55 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          <blocked>37307</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>210570</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-08 23:10:40 -0700</bug_when>
    <thetext>Porting &lt;progress&gt; to Chromium windows.
Note that chromium has platform-specific rendering code.
So we need bugs for each platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210584</commentid>
    <comment_count>1</comment_count>
      <attachid>52939</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-08 23:40:33 -0700</bug_when>
    <thetext>Created attachment 52939
patch v0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210585</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-08 23:42:38 -0700</bug_when>
    <thetext>Attachment 52939 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/rendering/RenderThemeChromiumWin.h:91:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/rendering/RenderThemeChromiumWin.h:92:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/rendering/RenderThemeChromiumWin.h:93:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/rendering/RenderThemeChromiumWin.h:94:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/rendering/RenderThemeChromiumWin.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/rendering/RenderThemeChromiumWin.cpp:669:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebCore/rendering/RenderThemeChromiumWin.cpp:687:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 7 in 7 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>210595</commentid>
    <comment_count>3</comment_count>
      <attachid>52941</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-09 00:12:44 -0700</bug_when>
    <thetext>Created attachment 52941
v1; fix style violation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210597</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-09 00:13:30 -0700</bug_when>
    <thetext>Change on Chromium side is: http://codereview.chromium.org/1596018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210604</commentid>
    <comment_count>5</comment_count>
      <attachid>52941</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-09 00:28:34 -0700</bug_when>
    <thetext>Comment on attachment 52941
v1; fix style violation

&gt; --- a/WebCore/rendering/RenderThemeChromiumWin.cpp
&gt; +++ b/WebCore/rendering/RenderThemeChromiumWin.cpp
&gt; @@ -38,6 +38,7 @@
&gt;  #include &quot;HTMLNames.h&quot;
&gt;  #include &quot;MediaControlElements.h&quot;
&gt;  #include &quot;RenderBox.h&quot;
&gt; +#include &quot;RenderProgress.h&quot;
&gt;  #include &quot;RenderSlider.h&quot;
&gt;  #include &quot;ScrollbarTheme.h&quot;
&gt;  #include &quot;TransparencyWin.h&quot;
&gt; @@ -653,4 +654,55 @@ bool RenderThemeChromiumWin::paintTextFieldInternal(RenderObject* o,
&gt;      return false;
&gt;  }
&gt;  
&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +
&gt; +static const double progressAnimationFrameRate = 0.033;
&gt; +static const double progressAnimationNumFrames = 60;

How did you decide these values?  Do they match to Windows&apos; behavior?

&gt; --- a/WebKit/chromium/ChangeLog
&gt; +++ b/WebKit/chromium/ChangeLog
&gt; @@ -1,3 +1,19 @@
&gt; +2010-04-08  MORITA Hajime  &lt;morrita@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        [Chromium] Support HTML5 &lt;progress&gt; element on Windows.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=37308
&gt; +
&gt; +        Extended ChromiumBridge and WebThemeEngine interface
&gt; +        to handle progress bar painting. implementation will 
&gt; +        shit on Chromium tree.

I don&apos;t understand the last sentence. shit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215064</commentid>
    <comment_count>6</comment_count>
      <attachid>53905</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-20 16:48:34 -0700</bug_when>
    <thetext>Created attachment 53905
v2; fix to add rtl handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215065</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-20 16:53:28 -0700</bug_when>
    <thetext>Hi, thank you for reviewing. I&apos;m sorry for my slow response.

&gt; &gt; +#if ENABLE(PROGRESS_TAG)
&gt; &gt; +
&gt; &gt; +static const double progressAnimationFrameRate = 0.033;
&gt; &gt; +static const double progressAnimationNumFrames = 60;
&gt; 
&gt; How did you decide these values?  Do they match to Windows&apos; behavior?
I couldn&apos;t found &quot;standard&quot; behaviour for windows.
The guideline doesn&apos;t mention marquee speed,
(http://msdn.microsoft.com/en-us/library/aa511258.aspx)
Nor default value of ProgressBar class on .NET framework looks unrealistic. 


&gt; &gt; +        [Chromium] Support HTML5 &lt;progress&gt; element on Windows.
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=37308
&gt; &gt; +
&gt; &gt; +        Extended ChromiumBridge and WebThemeEngine interface
&gt; &gt; +        to handle progress bar painting. implementation will 
&gt; &gt; +        shit on Chromium tree.
&gt; 
&gt; I don&apos;t understand the last sentence. shit?
Ah, this didn&apos;t make sense... Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215097</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-20 18:24:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hi, thank you for reviewing. I&apos;m sorry for my slow response.
&gt; 
&gt; &gt; &gt; +#if ENABLE(PROGRESS_TAG)
&gt; &gt; &gt; +
&gt; &gt; &gt; +static const double progressAnimationFrameRate = 0.033;
&gt; &gt; &gt; +static const double progressAnimationNumFrames = 60;
&gt; &gt; 
&gt; &gt; How did you decide these values?  Do they match to Windows&apos; behavior?
&gt; I couldn&apos;t found &quot;standard&quot; behaviour for windows.
&gt; The guideline doesn&apos;t mention marquee speed,
&gt; (http://msdn.microsoft.com/en-us/library/aa511258.aspx)
&gt; Nor default value of ProgressBar class on .NET framework looks unrealistic. 

So, please add a comment about why you chose 0.033 and 60, and add FIXME if you think we need to improve them.

BTW,
http://msdn.microsoft.com/en-us/library/bb760842(v=VS.85).aspx
It seems the default interval is 30 msec.  So progressAnimationFrameRate=0.033 is reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215105</commentid>
    <comment_count>9</comment_count>
      <attachid>53905</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-20 19:03:17 -0700</bug_when>
    <thetext>Comment on attachment 53905
v2; fix to add rtl handling

&gt; +double RenderThemeChromiumWin::animationDurationForProgressBar(RenderProgress* o) const

I&apos;m not sure if the name &apos;o&apos; is good for an object of RenderProgress. I would say renderProgress or something like this.

&gt; +    if (o-&gt;position() &lt; 0)

I couldn&apos;t understand why this is necessary. If this is necessary, don&apos;t we need to modfify RenderThemeMac as well?

Also, it would be nice to add a function which returns position()&lt;0 in RenderProgress (maybe isIndeterminate or something like this?). Anyway, I guess we want some refactoring around this patch, but in a separated patch.

&gt; +    int fillPart;
&gt; +    IntRect fillRect;
&gt; +
&gt; +

Unnecessary blank line(s). I guess we need no blanklines here.

&gt; +        int dx = r.width() * renderProgress-&gt;animationProgress() * 2.0 - r.width();

Maybe we should use 2 instead of 2.0. (See Floating point literals in http://webkit.org/coding/coding-style.html)

r- for Tamura-san&apos;s comment and style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215383</commentid>
    <comment_count>10</comment_count>
      <attachid>53968</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-21 10:14:25 -0700</bug_when>
    <thetext>Created attachment 53968
v3; took feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215387</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-21 10:20:04 -0700</bug_when>
    <thetext>Hamaji-san, Tamura-san, thank you for reviewing.

(In reply to comment #8)
&gt; So, please add a comment about why you chose 0.033 and 60, and add FIXME if you
&gt; think we need to improve them.
Added a comment.

&gt; 
&gt; BTW,
&gt; http://msdn.microsoft.com/en-us/library/bb760842(v=VS.85).aspx
&gt; It seems the default interval is 30 msec.  So progressAnimationFrameRate=0.033
&gt; is reasonable.
Thank you for your investigation! I included this link in the comment.

(In reply to comment #9)
&gt; &gt; +double RenderThemeChromiumWin::animationDurationForProgressBar(RenderProgress* o) const
&gt; I&apos;m not sure if the name &apos;o&apos; is good for an object of RenderProgress. I would
&gt; say renderProgress or something like this.
Fixed.

&gt; 
&gt; &gt; +    if (o-&gt;position() &lt; 0)
&gt; 
&gt; I couldn&apos;t understand why this is necessary. If this is necessary, don&apos;t we
&gt; need to modfify RenderThemeMac as well?
Progress bars on windows bar has an animation only when it is indeterminate.
Progress bars on mac has animations both for determinate and for indeterminate. 
So we need this only for Windows port.

&gt; &gt; +    int fillPart;
&gt; &gt; +    IntRect fillRect;
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; Unnecessary blank line(s). I guess we need no blanklines here.
Fixed.

&gt; 
&gt; &gt; +        int dx = r.width() * renderProgress-&gt;animationProgress() * 2.0 - r.width();
&gt; 
&gt; Maybe we should use 2 instead of 2.0. (See Floating point literals in
&gt; http://webkit.org/coding/coding-style.html)
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215418</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-21 11:21:01 -0700</bug_when>
    <thetext>The patch seems outdated. I&apos;m rebasing it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215513</commentid>
    <comment_count>13</comment_count>
      <attachid>53968</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-21 14:51:47 -0700</bug_when>
    <thetext>Comment on attachment 53968
v3; took feedback

&gt; +++ b/WebCore/rendering/RenderThemeChromiumWin.cpp
...
&gt; +bool RenderThemeChromiumWin::paintProgressBar(RenderObject* o, const RenderObject::PaintInfo&amp; i, const IntRect&amp; r)
&gt; +{
&gt; +    RenderProgress* renderProgress = toRenderProgress(o);
&gt; +
&gt; +    int fillPart;
&gt; +    IntRect fillRect;
&gt; +    if (renderProgress-&gt;isDeterminate()) {
&gt; +        fillPart = PP_FILL;
&gt; +        int dx = r.width() * renderProgress-&gt;position();
&gt; +        if (renderProgress-&gt;style()-&gt;direction() == RTL)
&gt; +            fillRect = IntRect(r.x() + r.width() - dx, r.y(), dx, r.height());
&gt; +        else
&gt; +            fillRect = IntRect(r.x(), r.y(), dx, r.height());
&gt; +    } else {
&gt; +        fillPart = PP_MOVEOVERLAY;
&gt; +        int dx = r.width() * renderProgress-&gt;animationProgress() * 2 - r.width();
&gt; +        fillRect = IntRect(r.x() + dx, r.y(), r.width(), r.height());
&gt; +    }
&gt; +
&gt; +    WebCore::ThemePainter painter(i.context, r);

nit: no need for the WebCore:: prefix when you are in the WebCore namespace.


&gt; +    ChromiumBridge::paintProgressBar(painter.context(),
&gt; +                                     PP_BAR,
&gt; +                                     0,
&gt; +                                     r, 
&gt; +                                     fillPart,
&gt; +                                     0,
&gt; +                                     fillRect);

It looks like barState and fillState are not used.  Should those
parameters be excluded?  Also, is there any reason to pass PP_BAR
given that it is a constant?  It seems like the callee would know
to pass PP_BAR on to Windows.


&gt; +++ b/WebKit/chromium/public/win/WebThemeEngine.h
...
&gt; @@ -73,6 +73,10 @@ public:
&gt;      virtual void paintTrackbar(
&gt;          WebCanvas*, int part, int state, int classicState,
&gt;          const WebRect&amp;) = 0;
&gt; +
&gt; +    virtual void paintProgressBar(
&gt; +        WebCanvas*, int barPart, int barState, const WebRect&amp; barRect, 
&gt; +        int fillPart, int fillState, const WebRect&amp; fillRect) {} // FIXME: make pure virtual after implementation landed.
&gt;  };

^^^ we should actually make any embedder implemented methods non-pure.
the old way was for them to be pure, but that makes it harder to change
the API.  the new way is to make methods like these non-pure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215619</commentid>
    <comment_count>14</comment_count>
      <attachid>54011</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-21 18:23:12 -0700</bug_when>
    <thetext>Created attachment 54011
v4; took the feedback, rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215634</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-21 18:32:12 -0700</bug_when>
    <thetext>Darin, thank you for reviewing!
I updated the patch.

&gt; &gt; +    WebCore::ThemePainter painter(i.context, r);
&gt; 
&gt; nit: no need for the WebCore:: prefix when you are in the WebCore namespace.
Fixed.

&gt; &gt; +    ChromiumBridge::paintProgressBar(painter.context(),
&gt; &gt; +                                     PP_BAR,
&gt; &gt; +                                     0,
&gt; &gt; +                                     r, 
&gt; &gt; +                                     fillPart,
&gt; &gt; +                                     0,
&gt; &gt; +                                     fillRect);
&gt; 
&gt; It looks like barState and fillState are not used.  Should those
&gt; parameters be excluded?  Also, is there any reason to pass PP_BAR
&gt; given that it is a constant?  It seems like the callee would know
&gt; to pass PP_BAR on to Windows.
Agreed and fixed.
I try to align args to other APIs. But it didn&apos;t make sense in this case.

&gt; &gt; +    virtual void paintProgressBar(
&gt; &gt; +        WebCanvas*, int barPart, int barState, const WebRect&amp; barRect, 
&gt; &gt; +        int fillPart, int fillState, const WebRect&amp; fillRect) {} // FIXME: make pure virtual after implementation landed.
&gt; &gt;  };
&gt; 
&gt; ^^^ we should actually make any embedder implemented methods non-pure.
&gt; the old way was for them to be pure, but that makes it harder to change
&gt; the API.  the new way is to make methods like these non-pure.
I see. So I removed the FIXME.
We might need to export notImplemented() for such case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215825</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 04:58:03 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; &gt; +    if (o-&gt;position() &lt; 0)
&gt; &gt; 
&gt; &gt; I couldn&apos;t understand why this is necessary. If this is necessary, don&apos;t we
&gt; &gt; need to modfify RenderThemeMac as well?
&gt; Progress bars on windows bar has an animation only when it is indeterminate.
&gt; Progress bars on mac has animations both for determinate and for indeterminate. 
&gt; So we need this only for Windows port.

I remember determinate progress bar on Windows is also animated. A white gloss run from left to right.  Can you implement it?

(In reply to comment #15)
&gt; &gt; &gt; +    virtual void paintProgressBar(
&gt; &gt; &gt; +        WebCanvas*, int barPart, int barState, const WebRect&amp; barRect, 
&gt; &gt; &gt; +        int fillPart, int fillState, const WebRect&amp; fillRect) {} // FIXME: make pure virtual after implementation landed.
&gt; &gt; &gt;  };
&gt; &gt; 
&gt; &gt; ^^^ we should actually make any embedder implemented methods non-pure.
&gt; &gt; the old way was for them to be pure, but that makes it harder to change
&gt; &gt; the API.  the new way is to make methods like these non-pure.
&gt; I see. So I removed the FIXME.
&gt; We might need to export notImplemented() for such case.

Removing FIXME is worse.
In this case, you had better commit the Chromium part first, then commit this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215829</commentid>
    <comment_count>17</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 05:07:51 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Removing FIXME is worse.
&gt; In this case, you had better commit the Chromium part first, then commit this
&gt; change.

This comment was wrong.  Please ignore it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215992</commentid>
    <comment_count>18</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-04-22 11:49:48 -0700</bug_when>
    <thetext>Hi, thank you for reviewing!

&gt; I remember determinate progress bar on Windows is also animated. A white gloss
&gt; run from left to right.  Can you implement it?
It seems that animating-determinate-progress-bar is available only on Windows 7, not on Vista.
So I&apos;ll keep it not animated at this time,  and will implement animation when I get Windows 7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216200</commentid>
    <comment_count>19</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 18:15:29 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; It seems that animating-determinate-progress-bar is available only on Windows
&gt; 7, not on Vista.
&gt; So I&apos;ll keep it not animated at this time,  and will implement animation when I
&gt; get Windows 7.

It is available on Vista too.
Anyway it&apos;s ok to handle it later. It&apos;s good to file a bug entry for it now.

The code looks ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223630</commentid>
    <comment_count>20</comment_count>
      <attachid>54011</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-10 17:53:27 -0700</bug_when>
    <thetext>Comment on attachment 54011
v4; took the feedback, rebased

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224478</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-05-12 01:52:28 -0700</bug_when>
    <thetext>Committed r59217: &lt;http://trac.webkit.org/changeset/59217&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224714</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-12 10:26:30 -0700</bug_when>
    <thetext>Why is progress bar painting being done with calls to the Chrome bridge? Is there some reason this needs to be done outside WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224960</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-12 15:46:55 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Why is progress bar painting being done with calls to the Chrome bridge? Is there some reason this needs to be done outside WebKit?

Progress bar appearance depends to a desktop theme.
In Chromium port, we can&apos;t access desktop themes in WebKit.

This is a Chromium-specific issue.  So RenderThemeWin.cpp can have rendering code for native progress bar.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52939</attachid>
            <date>2010-04-08 23:40:33 -0700</date>
            <delta_ts>2010-04-09 00:12:38 -0700</delta_ts>
            <desc>patch v0</desc>
            <filename>bug-37308-20100409154031.patch</filename>
            <type>text/plain</type>
            <size>7401</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWZhY2ZhMC4uNTkwNjg1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNC0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVt
ZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIHRvIGhhbmRs
ZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcsCisgICAgICAgIGFuZCBhZGRlZCBkZWxlZ2F0aW9ucyB0
byBpdC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjYXNlcyBzaG91bGQg
YmUgc2hhcmVkIHdpdGggZXhpc3Rpbmcgb25lcyBmb3IKKyAgICAgICAgcHJvZ3Jlc3MgZWxlbWVu
dC4gIEV4cGVjdGFpb25zIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgUFJPR1JFU1NfVEFHIGlzCisgICAg
ICAgIGVuYWJsZWQgb24gQ2hyb21pdW0gdHJlZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFByb2dy
ZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1XaW4uaDoKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCmluZGV4IGU1ODIyNDEuLjM0MjQwZDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKQEAgLTIxNSw2ICsy
MTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgQ29sb3ImLCBib29sIGZpbGxDb250ZW50QXJlYSwgYm9vbCBkcmF3RWRnZXMpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwYWludFRyYWNrYmFyKAogICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVj
dCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwYWludFByb2dyZXNzQmFyKAorICAgICAgICAgICAg
R3JhcGhpY3NDb250ZXh0KiwgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3QgSW50UmVj
dCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25zdCBJbnRSZWN0JiBm
aWxsUmVjdCk7CiAjZW5kaWYKIAogICAgICAgICAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBkYjMxODI1Li4zNGEwZDVm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNw
cAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCisjaW5jbHVkZSAiUmVu
ZGVyUHJvZ3Jlc3MuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlRy
YW5zcGFyZW5jeVdpbi5oIgogI2luY2x1ZGUgIldpbmRvd3NWZXJzaW9uLmgiCkBAIC02NTMsNCAr
NjU0LDU2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRUZXh0RmllbGRJbnRl
cm5hbChSZW5kZXJPYmplY3QqIG8sCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxF
KFBST0dSRVNTX1RBRykKKworc3RhdGljIGNvbnN0IGRvdWJsZSBwcm9ncmVzc0FuaW1hdGlvbkZy
YW1lUmF0ZSA9IDAuMDMzOworc3RhdGljIGNvbnN0IGRvdWJsZSBwcm9ncmVzc0FuaW1hdGlvbk51
bUZyYW1lcyA9IDYwOworCitkb3VibGUgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YW5pbWF0aW9u
UmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyopIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHByb2dyZXNzQW5pbWF0aW9uRnJhbWVSYXRlOworfQorCitkb3VibGUgUmVuZGVy
VGhlbWVDaHJvbWl1bVdpbjo6YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0JhcihSZW5kZXJQ
cm9ncmVzcyogbykgY29uc3QKK3sKKyAgICBpZiAoby0+cG9zaXRpb24oKSA8IDApCisgICAgICAg
IHJldHVybiBwcm9ncmVzc0FuaW1hdGlvbk51bUZyYW1lcyAqIHByb2dyZXNzQW5pbWF0aW9uRnJh
bWVSYXRlOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIDAuMDsKK30KKwordm9pZCBSZW5kZXJU
aGVtZUNocm9taXVtV2luOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
LCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdAoreworfQorCitib29sIFJlbmRlclRoZW1l
Q2hyb21pdW1XaW46OnBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5k
ZXJPYmplY3Q6OlBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICBSZW5kZXJQ
cm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3MgPSB0b1JlbmRlclByb2dyZXNzKG8pOworCisgICAgaW50
IGZpbGxQYXJ0OworICAgIEludFJlY3QgZmlsbFJlY3Q7CisgICAgaWYgKHJlbmRlclByb2dyZXNz
LT5wb3NpdGlvbigpIDwgMCkgeworICAgICAgICBkb3VibGUgcCA9IHJlbmRlclByb2dyZXNzLT5h
bmltYXRpb25Qcm9ncmVzcygpOworICAgICAgICBpbnQgd2lkdGggPSByLndpZHRoKCkvMjsKKyAg
ICAgICAgaW50IGR4ID0gcCA+IDAuNSA/IHIud2lkdGgoKSooMS4wIC0gcCkgOiByLndpZHRoKCkq
cDsKKyAgICAgICAgZmlsbFJlY3QgPSBJbnRSZWN0KHIueCgpICsgZHgsIHIueSgpLCB3aWR0aCwg
ci5oZWlnaHQoKSk7CisgICAgICAgIGZpbGxQYXJ0ID0gUFBfTU9WRU9WRVJMQVk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgZmlsbFJlY3QgPSBJbnRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0aCgp
KnJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpLCByLmhlaWdodCgpKTsKKyAgICAgICAgZmlsbFBh
cnQgPSBQUF9GSUxMOworICAgIH0KKworICAgIFdlYkNvcmU6OlRoZW1lUGFpbnRlciBwYWludGVy
KGkuY29udGV4dCwgcik7CisgICAgQ2hyb21pdW1CcmlkZ2U6OnBhaW50UHJvZ3Jlc3NCYXIocGFp
bnRlci5jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFBf
QkFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgciwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmlsbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsUmVjdCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgKaW5kZXggYmJjNTRhNy4u
MWQ5MWNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVdpbi5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaApA
QCAtODYsNiArODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBTZWUgY29t
bWVudCBpbiBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6c2V0RGVmYXVsdEZvbnRTaXplKCkgcmVn
YXJkaW5nIHVnbGluZXNzIG9mIHRoaXMgaGFjay4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0RGVm
YXVsdEZvbnRTaXplKGludCk7CiAKKworI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisJdmlydHVh
bCBkb3VibGUgYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9n
cmVzcyopIGNvbnN0OworCXZpcnR1YWwgZG91YmxlIGFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jl
c3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsKKwl2aXJ0dWFsIHZvaWQgYWRqdXN0UHJvZ3Jl
c3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29u
c3Q7CisJdmlydHVhbCBib29sIHBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisjZW5kaWYKKwogICAg
IHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsSW50
ZXJuYWwoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODUwMjFmNS4uYTY0MTBhMCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMDggIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IEhUTUw1IDxwcm9ncmVzcz4gZWxlbWVudCBvbiBX
aW5kb3dzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzczMDgKKworICAgICAgICBFeHRlbmRlZCBDaHJvbWl1bUJyaWRnZSBhbmQgV2ViVGhlbWVFbmdp
bmUgaW50ZXJmYWNlCisgICAgICAgIHRvIGhhbmRsZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcuIGlt
cGxlbWVudGF0aW9uIHdpbGwgCisgICAgICAgIHNoaXQgb24gQ2hyb21pdW0gdHJlZS4KKyAgICAg
ICAgCisgICAgICAgICogcHVibGljL3dpbi9XZWJUaGVtZUVuZ2luZS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJUaGVtZUVuZ2luZTo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogc3JjL0No
cm9taXVtQnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwYWlu
dFByb2dyZXNzQmFyKToKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBXZWJlciAgPHRoYWtpc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgKaW5kZXggYjU2MzYwOC4uNWJh
YTIwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdp
bmUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJUaGVtZUVuZ2luZS5oCkBA
IC03Myw2ICs3MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VHJhY2tiYXIo
CiAgICAgICAgIFdlYkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3Rh
dGUsCiAgICAgICAgIGNvbnN0IFdlYlJlY3QmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRQcm9ncmVzc0JhcigKKyAgICAgICAgV2ViQ2FudmFzKiwgaW50IGJhclBhcnQsIGludCBiYXJT
dGF0ZSwgY29uc3QgV2ViUmVjdCYgYmFyUmVjdCwgCisgICAgICAgIGludCBmaWxsUGFydCwgaW50
IGZpbGxTdGF0ZSwgY29uc3QgV2ViUmVjdCYgZmlsbFJlY3QpIHt9IC8vIEZJWE1FOiBtYWtlIHB1
cmUgdmlydHVhbCBhZnRlciBpbXBsZW1lbnRhdGlvbiBsYW5kZWQuCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1Ccmlk
Z2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5kZXggY2Zm
ZDE2Ni4uYmM3Nzk0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJy
aWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKQEAg
LTYxNiw2ICs2MTYsMTMgQEAgdm9pZCBDaHJvbWl1bUJyaWRnZTo6cGFpbnRUcmFja2JhcigKICAg
ICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNz
aWNTdGF0ZSwgcmVjdCk7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OnBhaW50UHJvZ3Jlc3NC
YXIoCisgICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwg
Y29uc3QgSW50UmVjdCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25z
dCBJbnRSZWN0JiBmaWxsUmVjdCkKK3sKKyAgICB3ZWJLaXRDbGllbnQoKS0+dGhlbWVFbmdpbmUo
KS0+cGFpbnRQcm9ncmVzc0JhcigKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52
YXMoKSwgYmFyUGFydCwgYmFyU3RhdGUsIGJhclJlY3QsIGZpbGxQYXJ0LCBmaWxsU3RhdGUsIGZp
bGxSZWN0KTsKK30KKwogI2VuZGlmCiAKIC8vIFRyYWNlIEV2ZW50IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52941</attachid>
            <date>2010-04-09 00:12:44 -0700</date>
            <delta_ts>2010-04-20 16:48:28 -0700</delta_ts>
            <desc>v1; fix style violation</desc>
            <filename>bug-37308-20100409161242.patch</filename>
            <type>text/plain</type>
            <size>7418</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWZhY2ZhMC4uNTkwNjg1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNC0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVt
ZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIHRvIGhhbmRs
ZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcsCisgICAgICAgIGFuZCBhZGRlZCBkZWxlZ2F0aW9ucyB0
byBpdC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjYXNlcyBzaG91bGQg
YmUgc2hhcmVkIHdpdGggZXhpc3Rpbmcgb25lcyBmb3IKKyAgICAgICAgcHJvZ3Jlc3MgZWxlbWVu
dC4gIEV4cGVjdGFpb25zIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgUFJPR1JFU1NfVEFHIGlzCisgICAg
ICAgIGVuYWJsZWQgb24gQ2hyb21pdW0gdHJlZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFByb2dy
ZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1XaW4uaDoKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCmluZGV4IGU1ODIyNDEuLjM0MjQwZDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKQEAgLTIxNSw2ICsy
MTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgQ29sb3ImLCBib29sIGZpbGxDb250ZW50QXJlYSwgYm9vbCBkcmF3RWRnZXMpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwYWludFRyYWNrYmFyKAogICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVj
dCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwYWludFByb2dyZXNzQmFyKAorICAgICAgICAgICAg
R3JhcGhpY3NDb250ZXh0KiwgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3QgSW50UmVj
dCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25zdCBJbnRSZWN0JiBm
aWxsUmVjdCk7CiAjZW5kaWYKIAogICAgICAgICAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBkYjMxODI1Li43Y2RlMzM2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNw
cAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVy
UHJvZ3Jlc3MuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTY3JvbGxi
YXJUaGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zcGFyZW5jeVdpbi5oIgpAQCAtNjUzLDQgKzY1NCw1
NSBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGV4dEZpZWxkSW50ZXJuYWwo
UmVuZGVyT2JqZWN0KiBvLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShQUk9H
UkVTU19UQUcpCisKK3N0YXRpYyBjb25zdCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJh
dGUgPSAwLjAzMzsKK3N0YXRpYyBjb25zdCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25OdW1GcmFt
ZXMgPSA2MDsKKworZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFuaW1hdGlvblJlcGVh
dEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdAoreworICAgIHJl
dHVybiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZTsKK30KKworZG91YmxlIFJlbmRlclRoZW1l
Q2hyb21pdW1XaW46OmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jl
c3MqIG8pIGNvbnN0Cit7CisgICAgaWYgKG8tPnBvc2l0aW9uKCkgPCAwKQorICAgICAgICByZXR1
cm4gcHJvZ3Jlc3NBbmltYXRpb25OdW1GcmFtZXMgKiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0
ZTsKKyAgICByZXR1cm4gMC4wOworfQorCit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFk
anVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxl
bWVudCopIGNvbnN0Cit7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRQ
cm9ncmVzc0JhcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9n
cmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisKKyAgICBpbnQgZmlsbFBhcnQ7CisgICAgSW50
UmVjdCBmaWxsUmVjdDsKKyAgICBpZiAocmVuZGVyUHJvZ3Jlc3MtPnBvc2l0aW9uKCkgPCAwKSB7
CisgICAgICAgIGRvdWJsZSBwID0gcmVuZGVyUHJvZ3Jlc3MtPmFuaW1hdGlvblByb2dyZXNzKCk7
CisgICAgICAgIGludCB3aWR0aCA9IHIud2lkdGgoKSAvIDI7CisgICAgICAgIGludCBkeCA9IHAg
PiAwLjUgPyByLndpZHRoKCkgKiAoMS4wIC0gcCkgOiByLndpZHRoKCkgKiBwOworICAgICAgICBm
aWxsUmVjdCA9IEludFJlY3Qoci54KCkgKyBkeCwgci55KCksIHdpZHRoLCByLmhlaWdodCgpKTsK
KyAgICAgICAgZmlsbFBhcnQgPSBQUF9NT1ZFT1ZFUkxBWTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBmaWxsUmVjdCA9IEludFJlY3Qoci54KCksIHIueSgpLCByLndpZHRoKCkgKiByZW5kZXJQcm9n
cmVzcy0+cG9zaXRpb24oKSwgci5oZWlnaHQoKSk7CisgICAgICAgIGZpbGxQYXJ0ID0gUFBfRklM
TDsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpUaGVtZVBhaW50ZXIgcGFpbnRlcihpLmNvbnRleHQs
IHIpOworICAgIENocm9taXVtQnJpZGdlOjpwYWludFByb2dyZXNzQmFyKHBhaW50ZXIuY29udGV4
dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQX0JBUiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGxQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFJlY3QpOworICAgIHJldHVybiB0
cnVlOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCmluZGV4IGJiYzU0YTcuLjEzMTMxNGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgKQEAgLTg2LDYgKzg2
LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gU2VlIGNvbW1lbnQgaW4gUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWE6OnNldERlZmF1bHRGb250U2l6ZSgpIHJlZ2FyZGluZyB1Z2xp
bmVzcyBvZiB0aGlzIGhhY2suCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldERlZmF1bHRGb250U2l6
ZShpbnQpOwogCisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICB2aXJ0dWFsIGRv
dWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNz
KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgZG91YmxlIGFuaW1hdGlvbkR1cmF0aW9uRm9yUHJv
Z3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFk
anVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxl
bWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0JhcihSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KTsKKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJl
dEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4NTAyMWY1
Li5hNjQxMGEwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNC0wOCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dy
ZXNzPiBlbGVtZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdl
IGFuZCBXZWJUaGVtZUVuZ2luZSBpbnRlcmZhY2UKKyAgICAgICAgdG8gaGFuZGxlIHByb2dyZXNz
IGJhciBwYWludGluZy4gaW1wbGVtZW50YXRpb24gd2lsbCAKKyAgICAgICAgc2hpdCBvbiBDaHJv
bWl1bSB0cmVlLgorICAgICAgICAKKyAgICAgICAgKiBwdWJsaWMvd2luL1dlYlRoZW1lRW5naW5l
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpwYWludFByb2dyZXNzQmFyKToK
KyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21pdW1CcmlkZ2U6OnBhaW50UHJvZ3Jlc3NCYXIpOgorCiAyMDEwLTA0LTA2ICBOaWNvbGFzIFdl
YmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJUaGVt
ZUVuZ2luZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaApp
bmRleCBiNTYzNjA4Li41YmFhMjAxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L3dpbi9XZWJUaGVtZUVuZ2luZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvd2luL1dl
YlRoZW1lRW5naW5lLmgKQEAgLTczLDYgKzczLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRUcmFja2JhcigKICAgICAgICAgV2ViQ2FudmFzKiwgaW50IHBhcnQsIGludCBzdGF0
ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICAgICAgY29uc3QgV2ViUmVjdCYpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBwYWludFByb2dyZXNzQmFyKAorICAgICAgICBXZWJDYW52YXMqLCBpbnQg
YmFyUGFydCwgaW50IGJhclN0YXRlLCBjb25zdCBXZWJSZWN0JiBiYXJSZWN0LCAKKyAgICAgICAg
aW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25zdCBXZWJSZWN0JiBmaWxsUmVjdCkge30g
Ly8gRklYTUU6IG1ha2UgcHVyZSB2aXJ0dWFsIGFmdGVyIGltcGxlbWVudGF0aW9uIGxhbmRlZC4K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJp
ZGdlLmNwcAppbmRleCBjZmZkMTY2Li5iYzc3OTRlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcApAQCAtNjE2LDYgKzYxNiwxMyBAQCB2b2lkIENocm9taXVtQnJpZGdlOjpw
YWludFRyYWNrYmFyKAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBw
YXJ0LCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0KTsKIH0KIAordm9pZCBDaHJvbWl1bUJyaWRn
ZTo6cGFpbnRQcm9ncmVzc0JhcigKKyAgICBHcmFwaGljc0NvbnRleHQqIGdjLCBpbnQgYmFyUGFy
dCwgaW50IGJhclN0YXRlLCBjb25zdCBJbnRSZWN0JiBiYXJSZWN0LCBpbnQgZmlsbFBhcnQsIGlu
dCBmaWxsU3RhdGUsIGNvbnN0IEludFJlY3QmIGZpbGxSZWN0KQoreworICAgIHdlYktpdENsaWVu
dCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFByb2dyZXNzQmFyKAorICAgICAgICBnYy0+cGxhdGZv
cm1Db250ZXh0KCktPmNhbnZhcygpLCBiYXJQYXJ0LCBiYXJTdGF0ZSwgYmFyUmVjdCwgZmlsbFBh
cnQsIGZpbGxTdGF0ZSwgZmlsbFJlY3QpOworfQorCiAjZW5kaWYKIAogLy8gVHJhY2UgRXZlbnQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53905</attachid>
            <date>2010-04-20 16:48:34 -0700</date>
            <delta_ts>2010-04-21 10:14:19 -0700</delta_ts>
            <desc>v2; fix to add rtl handling</desc>
            <filename>bug-37308-20100421084831.patch</filename>
            <type>text/plain</type>
            <size>7476</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWZhY2ZhMC4uNTkwNjg1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNC0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVt
ZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIHRvIGhhbmRs
ZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcsCisgICAgICAgIGFuZCBhZGRlZCBkZWxlZ2F0aW9ucyB0
byBpdC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjYXNlcyBzaG91bGQg
YmUgc2hhcmVkIHdpdGggZXhpc3Rpbmcgb25lcyBmb3IKKyAgICAgICAgcHJvZ3Jlc3MgZWxlbWVu
dC4gIEV4cGVjdGFpb25zIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgUFJPR1JFU1NfVEFHIGlzCisgICAg
ICAgIGVuYWJsZWQgb24gQ2hyb21pdW0gdHJlZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0Jhcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFByb2dy
ZXNzQmFyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1XaW4uaDoKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCmluZGV4IGU1ODIyNDEuLjM0MjQwZDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKQEAgLTIxNSw2ICsy
MTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgQ29sb3ImLCBib29sIGZpbGxDb250ZW50QXJlYSwgYm9vbCBkcmF3RWRnZXMpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwYWludFRyYWNrYmFyKAogICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVj
dCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwYWludFByb2dyZXNzQmFyKAorICAgICAgICAgICAg
R3JhcGhpY3NDb250ZXh0KiwgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3QgSW50UmVj
dCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25zdCBJbnRSZWN0JiBm
aWxsUmVjdCk7CiAjZW5kaWYKIAogICAgICAgICAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBkYjMxODI1Li5lYjNiYjFm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNw
cAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVy
UHJvZ3Jlc3MuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTY3JvbGxi
YXJUaGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zcGFyZW5jeVdpbi5oIgpAQCAtNjUzLDQgKzY1NCw1
OSBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGV4dEZpZWxkSW50ZXJuYWwo
UmVuZGVyT2JqZWN0KiBvLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShQUk9H
UkVTU19UQUcpCisKK3N0YXRpYyBjb25zdCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJh
dGUgPSAwLjAzMzsKK3N0YXRpYyBjb25zdCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25OdW1GcmFt
ZXMgPSA2MDsKKworZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFuaW1hdGlvblJlcGVh
dEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdAoreworICAgIHJl
dHVybiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZTsKK30KKworZG91YmxlIFJlbmRlclRoZW1l
Q2hyb21pdW1XaW46OmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jl
c3MqIG8pIGNvbnN0Cit7CisgICAgaWYgKG8tPnBvc2l0aW9uKCkgPCAwKQorICAgICAgICByZXR1
cm4gcHJvZ3Jlc3NBbmltYXRpb25OdW1GcmFtZXMgKiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0
ZTsKKyAgICByZXR1cm4gMC4wOworfQorCit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFk
anVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxl
bWVudCopIGNvbnN0Cit7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRQ
cm9ncmVzc0JhcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZv
JiBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9n
cmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisKKyAgICBpbnQgZmlsbFBhcnQ7CisgICAgSW50
UmVjdCBmaWxsUmVjdDsKKworCisgICAgaWYgKHJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpIDwg
MCkgeworICAgICAgICBmaWxsUGFydCA9IFBQX01PVkVPVkVSTEFZOworICAgICAgICBpbnQgZHgg
PSByLndpZHRoKCkgKiByZW5kZXJQcm9ncmVzcy0+YW5pbWF0aW9uUHJvZ3Jlc3MoKSAqIDIuMCAt
IHIud2lkdGgoKTsKKyAgICAgICAgZmlsbFJlY3QgPSBJbnRSZWN0KHIueCgpICsgZHgsIHIueSgp
LCByLndpZHRoKCksIHIuaGVpZ2h0KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZpbGxQYXJ0
ID0gUFBfRklMTDsKKyAgICAgICAgaW50IGR4ID0gci53aWR0aCgpICogcmVuZGVyUHJvZ3Jlc3Mt
PnBvc2l0aW9uKCk7CisgICAgICAgIGlmIChyZW5kZXJQcm9ncmVzcy0+c3R5bGUoKS0+ZGlyZWN0
aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgZmlsbFJlY3QgPSBJbnRSZWN0KHIueCgpICsgci53
aWR0aCgpIC0gZHgsIHIueSgpLCBkeCwgci5oZWlnaHQoKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGZpbGxSZWN0ID0gSW50UmVjdChyLngoKSwgci55KCksIGR4LCByLmhlaWdodCgpKTsK
KyAgICB9CisKKyAgICBXZWJDb3JlOjpUaGVtZVBhaW50ZXIgcGFpbnRlcihpLmNvbnRleHQsIHIp
OworICAgIENocm9taXVtQnJpZGdlOjpwYWludFByb2dyZXNzQmFyKHBhaW50ZXIuY29udGV4dCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBQX0JBUiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bGxQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFJlY3QpOworICAgIHJldHVybiB0cnVl
OworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCmluZGV4IGJiYzU0YTcuLjEzMTMxNGEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAorKysgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgKQEAgLTg2LDYgKzg2LDE0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gU2VlIGNvbW1lbnQgaW4gUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnNldERlZmF1bHRGb250U2l6ZSgpIHJlZ2FyZGluZyB1Z2xpbmVz
cyBvZiB0aGlzIGhhY2suCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldERlZmF1bHRGb250U2l6ZShp
bnQpOwogCisKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICB2aXJ0dWFsIGRvdWJs
ZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgZG91YmxlIGFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jl
c3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0JhcihSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsK
KyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJs
aW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4NTAyMWY1Li5i
YjM2ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNC0wOCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNz
PiBlbGVtZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIGFu
ZCBXZWJUaGVtZUVuZ2luZSBpbnRlcmZhY2UgdG8gaGFuZGxlCisgICAgICAgIHByb2dyZXNzIGJh
ciBwYWludGluZy4KKyAgICAgICAgCisgICAgICAgICogcHVibGljL3dpbi9XZWJUaGVtZUVuZ2lu
ZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6cGFpbnRQcm9ncmVzc0Jhcik6
CisgICAgICAgICogc3JjL0Nocm9taXVtQnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpwYWludFByb2dyZXNzQmFyKToKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBX
ZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhl
bWVFbmdpbmUuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgK
aW5kZXggYjU2MzYwOC4uNWJhYTIwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy93aW4vV2ViVGhlbWVFbmdpbmUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9X
ZWJUaGVtZUVuZ2luZS5oCkBAIC03Myw2ICs3MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VHJhY2tiYXIoCiAgICAgICAgIFdlYkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3Rh
dGUsIGludCBjbGFzc2ljU3RhdGUsCiAgICAgICAgIGNvbnN0IFdlYlJlY3QmKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRQcm9ncmVzc0JhcigKKyAgICAgICAgV2ViQ2FudmFzKiwgaW50
IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3QgV2ViUmVjdCYgYmFyUmVjdCwgCisgICAgICAg
IGludCBmaWxsUGFydCwgaW50IGZpbGxTdGF0ZSwgY29uc3QgV2ViUmVjdCYgZmlsbFJlY3QpIHt9
IC8vIEZJWE1FOiBtYWtlIHB1cmUgdmlydHVhbCBhZnRlciBpbXBsZW1lbnRhdGlvbiBsYW5kZWQu
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJy
aWRnZS5jcHAKaW5kZXggY2ZmZDE2Ni4uYmM3Nzk0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWl1bUJyaWRnZS5jcHAKQEAgLTYxNiw2ICs2MTYsMTMgQEAgdm9pZCBDaHJvbWl1bUJyaWRnZTo6
cGFpbnRUcmFja2JhcigKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwg
cGFydCwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwgcmVjdCk7CiB9CiAKK3ZvaWQgQ2hyb21pdW1Ccmlk
Z2U6OnBhaW50UHJvZ3Jlc3NCYXIoCisgICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IGJhclBh
cnQsIGludCBiYXJTdGF0ZSwgY29uc3QgSW50UmVjdCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBp
bnQgZmlsbFN0YXRlLCBjb25zdCBJbnRSZWN0JiBmaWxsUmVjdCkKK3sKKyAgICB3ZWJLaXRDbGll
bnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRQcm9ncmVzc0JhcigKKyAgICAgICAgZ2MtPnBsYXRm
b3JtQ29udGV4dCgpLT5jYW52YXMoKSwgYmFyUGFydCwgYmFyU3RhdGUsIGJhclJlY3QsIGZpbGxQ
YXJ0LCBmaWxsU3RhdGUsIGZpbGxSZWN0KTsKK30KKwogI2VuZGlmCiAKIC8vIFRyYWNlIEV2ZW50
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53968</attachid>
            <date>2010-04-21 10:14:25 -0700</date>
            <delta_ts>2010-04-21 18:23:06 -0700</delta_ts>
            <desc>v3; took feedback</desc>
            <filename>bug-37308-20100422021424.patch</filename>
            <type>text/plain</type>
            <size>9327</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWZhY2ZhMC4uYmFiZTdjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNC0yMSAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVt
ZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIHRvIGhhbmRs
ZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcsCisgICAgICAgIGFuZCBhZGRlZCBkZWxlZ2F0aW9ucyB0
byBpdC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjYXNlcyBzaG91bGQg
YmUgc2hhcmVkIHdpdGggZXhpc3Rpbmcgb25lcyBmb3IKKyAgICAgICAgcHJvZ3Jlc3MgZWxlbWVu
dC4gIEV4cGVjdGFpb25zIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgUFJPR1JFU1NfVEFHIGlzCisgICAg
ICAgIGVuYWJsZWQgb24gQ2hyb21pdW0gdHJlZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjphbmltYXRpb25Qcm9ncmVz
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6aXNEZXRlcm1pbmF0ZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJQcm9ncmVzczo6cG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVz
c0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjphZGp1c3RQ
cm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OnBhaW50UHJvZ3Jlc3NCYXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmg6CisKIDIwMTAtMDQtMDYgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBlNTgyMjQxLi4zNDI0MGQ3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCkBAIC0yMTUs
NiArMjE1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgR3JhcGhpY3NDb250
ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IENvbG9yJiwgYm9vbCBmaWxsQ29udGVudEFyZWEsIGJvb2wgZHJhd0VkZ2VzKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRUcmFja2JhcigKICAgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IElu
dFJlY3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRQcm9ncmVzc0JhcigKKyAgICAgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBiYXJQYXJ0LCBpbnQgYmFyU3RhdGUsIGNvbnN0IElu
dFJlY3QmIGJhclJlY3QsIGludCBmaWxsUGFydCwgaW50IGZpbGxTdGF0ZSwgY29uc3QgSW50UmVj
dCYgZmlsbFJlY3QpOwogI2VuZGlmCiAKICAgICAgICAgLy8gVHJhY2UgRXZlbnQgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAwNjJmZjMyLi41NjRlMmQyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCkBAIC03NCwxMSArNzQsMTYgQEAgdm9pZCBSZW5kZXJQ
cm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIHJlcGFpbnQoKTsKIH0KIAotZG91Ymxl
IFJlbmRlclByb2dyZXNzOjphbmltYXRpb25Qcm9ncmVzcygpCitkb3VibGUgUmVuZGVyUHJvZ3Jl
c3M6OmFuaW1hdGlvblByb2dyZXNzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hbmltYXRpbmcg
PyAoZm1vZCgoY3VycmVudFRpbWUoKSAtIG1fYW5pbWF0aW9uU3RhcnRUaW1lKSwgbV9hbmltYXRp
b25EdXJhdGlvbikgLyBtX2FuaW1hdGlvbkR1cmF0aW9uKSA6IDA7CiB9CiAKK2Jvb2wgUmVuZGVy
UHJvZ3Jlc3M6OmlzRGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIHJldHVybiAwIDw9IHBvc2l0
aW9uKCk7Cit9CisKIHZvaWQgUmVuZGVyUHJvZ3Jlc3M6OmFuaW1hdGlvblRpbWVyRmlyZWQoVGlt
ZXI8UmVuZGVyUHJvZ3Jlc3M+KikKIHsKICAgICByZXBhaW50KCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuaAppbmRleCA3NjdlZDM3Li5kZmU5YWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmgKQEAgLTMxLDkgKzMxLDEwIEBAIGNsYXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQ7CiBj
bGFzcyBSZW5kZXJQcm9ncmVzcyA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAg
UmVuZGVyUHJvZ3Jlc3MoSFRNTFByb2dyZXNzRWxlbWVudCopOwotICAgIGRvdWJsZSBwb3NpdGlv
bigpIHsgcmV0dXJuIG1fcG9zaXRpb247IH0KLSAgICBkb3VibGUgYW5pbWF0aW9uUHJvZ3Jlc3Mo
KTsKKyAgICBkb3VibGUgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9Cisg
ICAgZG91YmxlIGFuaW1hdGlvblByb2dyZXNzKCkgY29uc3Q7CiAKKyAgICBib29sIGlzRGV0ZXJt
aW5hdGUoKSBjb25zdDsKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclByb2dyZXNzIjsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBkYjMxODI1Li4yM2UxNzc4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVs
ZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jl
c3MuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlRyYW5zcGFyZW5jeVdpbi5oIgpAQCAtNjUzLDQgKzY1NCw2MSBAQCBi
b29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGV4dEZpZWxkSW50ZXJuYWwoUmVuZGVy
T2JqZWN0KiBvLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCisKKy8vIE1TRE4gc2F5cyB0aGF0IHVwZGF0ZSBpbnRlcnZhbHMgZm9yIHRoZSBiYXIgaXMg
MzBtcy4KKy8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9iYjc2MDg0
Mih2PVZTLjg1KS5hc3B4CitzdGF0aWMgY29uc3QgZG91YmxlIHByb2dyZXNzQW5pbWF0aW9uRnJh
bWVSYXRlID0gMC4wMzM7CisvLyBUaGVyZSBpcyBubyBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBh
bmltYXRpb24gc3BlZWQgb2YgCisvLyB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXIuIFNv
IHdlIGp1c3QgZ3Vlc3MgaXQuCitzdGF0aWMgY29uc3QgZG91YmxlIHByb2dyZXNzQW5pbWF0aW9u
TnVtRnJhbWVzID0gNjA7CisKK2RvdWJsZSBSZW5kZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRp
b25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3QKK3sK
KyAgICByZXR1cm4gcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGU7Cit9CisKK2RvdWJsZSBSZW5k
ZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRl
clByb2dyZXNzKiByZW5kZXJQcm9ncmVzcykgY29uc3QKK3sKKyAgICBpZiAocmVuZGVyUHJvZ3Jl
c3MtPmlzRGV0ZXJtaW5hdGUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHByb2dy
ZXNzQW5pbWF0aW9uTnVtRnJhbWVzICogcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGU7Cit9CisK
K3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NT
dHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QKK3sKK30KKworYm9v
bCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCog
bywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpCit7
CisgICAgUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlclByb2dyZXNzID0gdG9SZW5kZXJQcm9ncmVzcyhv
KTsKKworICAgIGludCBmaWxsUGFydDsKKyAgICBJbnRSZWN0IGZpbGxSZWN0OworICAgIGlmIChy
ZW5kZXJQcm9ncmVzcy0+aXNEZXRlcm1pbmF0ZSgpKSB7CisgICAgICAgIGZpbGxQYXJ0ID0gUFBf
RklMTDsKKyAgICAgICAgaW50IGR4ID0gci53aWR0aCgpICogcmVuZGVyUHJvZ3Jlc3MtPnBvc2l0
aW9uKCk7CisgICAgICAgIGlmIChyZW5kZXJQcm9ncmVzcy0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkg
PT0gUlRMKQorICAgICAgICAgICAgZmlsbFJlY3QgPSBJbnRSZWN0KHIueCgpICsgci53aWR0aCgp
IC0gZHgsIHIueSgpLCBkeCwgci5oZWlnaHQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGZpbGxSZWN0ID0gSW50UmVjdChyLngoKSwgci55KCksIGR4LCByLmhlaWdodCgpKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBmaWxsUGFydCA9IFBQX01PVkVPVkVSTEFZOworICAgICAgICBpbnQg
ZHggPSByLndpZHRoKCkgKiByZW5kZXJQcm9ncmVzcy0+YW5pbWF0aW9uUHJvZ3Jlc3MoKSAqIDIg
LSByLndpZHRoKCk7CisgICAgICAgIGZpbGxSZWN0ID0gSW50UmVjdChyLngoKSArIGR4LCByLnko
KSwgci53aWR0aCgpLCByLmhlaWdodCgpKTsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpUaGVtZVBh
aW50ZXIgcGFpbnRlcihpLmNvbnRleHQsIHIpOworICAgIENocm9taXVtQnJpZGdlOjpwYWludFBy
b2dyZXNzQmFyKHBhaW50ZXIuY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBQX0JBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxQYXJ0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmlsbFJlY3QpOworICAgIHJldHVybiB0cnVlOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bVdpbi5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCmlu
ZGV4IGJiYzU0YTcuLjEzMTMxNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1XaW4uaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmgKQEAgLTg2LDYgKzg2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgLy8gU2VlIGNvbW1lbnQgaW4gUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnNldERlZmF1bHRG
b250U2l6ZSgpIHJlZ2FyZGluZyB1Z2xpbmVzcyBvZiB0aGlzIGhhY2suCiAgICAgICAgIHN0YXRp
YyB2b2lkIHNldERlZmF1bHRGb250U2l6ZShpbnQpOwogCisKKyNpZiBFTkFCTEUoUFJPR1JFU1Nf
VEFHKQorICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclBy
b2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgZG91Ymxl
IGFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxl
Y3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA4NTAyMWY1Li5iYjM2ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wNC0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21p
dW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVtZW50IG9uIFdpbmRvd3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzMwOAorCisgICAgICAg
IEV4dGVuZGVkIENocm9taXVtQnJpZGdlIGFuZCBXZWJUaGVtZUVuZ2luZSBpbnRlcmZhY2UgdG8g
aGFuZGxlCisgICAgICAgIHByb2dyZXNzIGJhciBwYWludGluZy4KKyAgICAgICAgCisgICAgICAg
ICogcHVibGljL3dpbi9XZWJUaGVtZUVuZ2luZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJUaGVt
ZUVuZ2luZTo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogc3JjL0Nocm9taXVtQnJpZGdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwYWludFByb2dyZXNzQmFy
KToKKwogMjAxMC0wNC0wNiAgTmljb2xhcyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgKaW5kZXggYjU2MzYwOC4uNWJhYTIwMSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJUaGVtZUVuZ2luZS5oCkBAIC03Myw2ICs3Mywx
MCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VHJhY2tiYXIoCiAgICAgICAgIFdl
YkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsCiAgICAgICAg
IGNvbnN0IFdlYlJlY3QmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRQcm9ncmVzc0Jh
cigKKyAgICAgICAgV2ViQ2FudmFzKiwgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3Qg
V2ViUmVjdCYgYmFyUmVjdCwgCisgICAgICAgIGludCBmaWxsUGFydCwgaW50IGZpbGxTdGF0ZSwg
Y29uc3QgV2ViUmVjdCYgZmlsbFJlY3QpIHt9IC8vIEZJWE1FOiBtYWtlIHB1cmUgdmlydHVhbCBh
ZnRlciBpbXBsZW1lbnRhdGlvbiBsYW5kZWQuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5kZXggY2ZmZDE2Ni4uYmM3Nzk0
ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKQEAgLTYxNiw2ICs2MTYs
MTMgQEAgdm9pZCBDaHJvbWl1bUJyaWRnZTo6cGFpbnRUcmFja2JhcigKICAgICAgICAgZ2MtPnBs
YXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwgcmVj
dCk7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OnBhaW50UHJvZ3Jlc3NCYXIoCisgICAgR3Jh
cGhpY3NDb250ZXh0KiBnYywgaW50IGJhclBhcnQsIGludCBiYXJTdGF0ZSwgY29uc3QgSW50UmVj
dCYgYmFyUmVjdCwgaW50IGZpbGxQYXJ0LCBpbnQgZmlsbFN0YXRlLCBjb25zdCBJbnRSZWN0JiBm
aWxsUmVjdCkKK3sKKyAgICB3ZWJLaXRDbGllbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRQcm9n
cmVzc0JhcigKKyAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgYmFyUGFy
dCwgYmFyU3RhdGUsIGJhclJlY3QsIGZpbGxQYXJ0LCBmaWxsU3RhdGUsIGZpbGxSZWN0KTsKK30K
KwogI2VuZGlmCiAKIC8vIFRyYWNlIEV2ZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54011</attachid>
            <date>2010-04-21 18:23:12 -0700</date>
            <delta_ts>2010-05-12 01:59:34 -0700</delta_ts>
            <desc>v4; took the feedback, rebased</desc>
            <filename>bug-37308-20100422102310.patch</filename>
            <type>text/plain</type>
            <size>9034</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWQxOGRkZS4uZjg5YzJhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNC0yMSAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgSFRNTDUgPHByb2dyZXNzPiBlbGVt
ZW50IG9uIFdpbmRvd3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzMwOAorCisgICAgICAgIEV4dGVuZGVkIENocm9taXVtQnJpZGdlIHRvIGhhbmRs
ZSBwcm9ncmVzcyBiYXIgcGFpbnRpbmcsCisgICAgICAgIGFuZCBhZGRlZCBkZWxlZ2F0aW9ucyB0
byBpdC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjYXNlcyBzaG91bGQg
YmUgc2hhcmVkIHdpdGggZXhpc3Rpbmcgb25lcyBmb3IKKyAgICAgICAgcHJvZ3Jlc3MgZWxlbWVu
dC4gIEV4cGVjdGFpb25zIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgUFJPR1JFU1NfVEFHIGlzCisgICAg
ICAgIGVuYWJsZWQgb24gQ2hyb21pdW0gdHJlZS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjphbmltYXRpb25Qcm9ncmVz
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6aXNEZXRlcm1pbmF0ZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJQcm9ncmVzczo6cG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVz
c0Jhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjphZGp1c3RQ
cm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OnBhaW50UHJvZ3Jlc3NCYXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmg6CisKIDIwMTAtMDQtMjEgIGFudG9uIG11aGluICA8YW50b25tQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBlNTgyMjQxLi4wOWUyOWE2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCkBAIC0yMTUsNiArMjE1LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50
IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVjdCYsIGNvbnN0
IENvbG9yJiwgYm9vbCBmaWxsQ29udGVudEFyZWEsIGJvb2wgZHJhd0VkZ2VzKTsKICAgICAgICAg
c3RhdGljIHZvaWQgcGFpbnRUcmFja2JhcigKICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCos
IGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsK
KyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRQcm9ncmVzc0JhcigKKyAgICAgICAgICAgIEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIGJhclJlY3QsIGludCB2YWx1ZVBhcnQsIGNvbnN0
IEludFJlY3QmIHZhbHVlUmVjdCk7CiAjZW5kaWYKIAogICAgICAgICAvLyBUcmFjZSBFdmVudCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCmluZGV4IGE5ZGJmZTguLjhmYzgzMWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKQEAgLTc0LDExICs3NCwxNiBAQCB2b2lk
IFJlbmRlclByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgcmVwYWludCgpOwogfQog
Ci1kb3VibGUgUmVuZGVyUHJvZ3Jlc3M6OmFuaW1hdGlvblByb2dyZXNzKCkKK2RvdWJsZSBSZW5k
ZXJQcm9ncmVzczo6YW5pbWF0aW9uUHJvZ3Jlc3MoKSBjb25zdAogewogICAgIHJldHVybiBtX2Fu
aW1hdGluZyA/IChmbW9kKChjdXJyZW50VGltZSgpIC0gbV9hbmltYXRpb25TdGFydFRpbWUpLCBt
X2FuaW1hdGlvbkR1cmF0aW9uKSAvIG1fYW5pbWF0aW9uRHVyYXRpb24pIDogMDsKIH0KIAorYm9v
bCBSZW5kZXJQcm9ncmVzczo6aXNEZXRlcm1pbmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDAg
PD0gcG9zaXRpb24oKTsKK30KKwogdm9pZCBSZW5kZXJQcm9ncmVzczo6YW5pbWF0aW9uVGltZXJG
aXJlZChUaW1lcjxSZW5kZXJQcm9ncmVzcz4qKQogewogICAgIHJlcGFpbnQoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQcm9ncmVzcy5oCmluZGV4IGQ2ZjUwNzguLjhjYTJkMjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaApAQCAtMzEsMTEgKzMxLDEyIEBAIGNsYXNzIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ7CiBjbGFzcyBSZW5kZXJQcm9ncmVzcyA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJs
aWM6CiAgICAgUmVuZGVyUHJvZ3Jlc3MoSFRNTFByb2dyZXNzRWxlbWVudCopOwotICAgIGRvdWJs
ZSBwb3NpdGlvbigpIHsgcmV0dXJuIG1fcG9zaXRpb247IH0KLSAgICBkb3VibGUgYW5pbWF0aW9u
UHJvZ3Jlc3MoKTsKICAgICAKICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBwcm9ncmVzc0VsZW1l
bnQoKSBjb25zdDsKKyAgICBkb3VibGUgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uOyB9CisgICAgZG91YmxlIGFuaW1hdGlvblByb2dyZXNzKCkgY29uc3Q7CiAKKyAgICBib29s
IGlzRGV0ZXJtaW5hdGUoKSBjb25zdDsKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclByb2dyZXNzIjsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBkYjMxODI1Li40N2Y3
MWEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2lu
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlh
Q29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVu
ZGVyUHJvZ3Jlc3MuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlRyYW5zcGFyZW5jeVdpbi5oIgpAQCAtNjUzLDQgKzY1
NCw1OCBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGV4dEZpZWxkSW50ZXJu
YWwoUmVuZGVyT2JqZWN0KiBvLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShQ
Uk9HUkVTU19UQUcpCisKKy8vIE1TRE4gc2F5cyB0aGF0IHVwZGF0ZSBpbnRlcnZhbHMgZm9yIHRo
ZSBiYXIgaXMgMzBtcy4KKy8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFy
eS9iYjc2MDg0Mih2PVZTLjg1KS5hc3B4CitzdGF0aWMgY29uc3QgZG91YmxlIHByb2dyZXNzQW5p
bWF0aW9uRnJhbWVSYXRlID0gMC4wMzM7CisvLyBUaGVyZSBpcyBubyBkb2N1bWVudGF0aW9uIGFi
b3V0IHRoZSBhbmltYXRpb24gc3BlZWQgb2YgCisvLyB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVz
cyBiYXIuIFNvIHdlIGp1c3QgZ3Vlc3MgaXQuCitzdGF0aWMgY29uc3QgZG91YmxlIHByb2dyZXNz
QW5pbWF0aW9uTnVtRnJhbWVzID0gNjA7CisKK2RvdWJsZSBSZW5kZXJUaGVtZUNocm9taXVtV2lu
OjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikg
Y29uc3QKK3sKKyAgICByZXR1cm4gcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGU7Cit9CisKK2Rv
dWJsZSBSZW5kZXJUaGVtZUNocm9taXVtV2luOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNz
QmFyKFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9ncmVzcykgY29uc3QKK3sKKyAgICBpZiAocmVu
ZGVyUHJvZ3Jlc3MtPmlzRGV0ZXJtaW5hdGUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIHByb2dyZXNzQW5pbWF0aW9uTnVtRnJhbWVzICogcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJh
dGU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0UHJvZ3Jlc3NCYXJT
dHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QKK3sK
K30KKworYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludFByb2dyZXNzQmFyKFJlbmRl
ck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGNvbnN0IEludFJl
Y3QmIHIpCit7CisgICAgUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlclByb2dyZXNzID0gdG9SZW5kZXJQ
cm9ncmVzcyhvKTsKKworICAgIGludCB2YWx1ZVBhcnQ7CisgICAgSW50UmVjdCB2YWx1ZVJlY3Q7
CisgICAgaWYgKHJlbmRlclByb2dyZXNzLT5pc0RldGVybWluYXRlKCkpIHsKKyAgICAgICAgdmFs
dWVQYXJ0ID0gUFBfRklMTDsKKyAgICAgICAgaW50IGR4ID0gci53aWR0aCgpICogcmVuZGVyUHJv
Z3Jlc3MtPnBvc2l0aW9uKCk7CisgICAgICAgIGlmIChyZW5kZXJQcm9ncmVzcy0+c3R5bGUoKS0+
ZGlyZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgdmFsdWVSZWN0ID0gSW50UmVjdChyLngo
KSArIHIud2lkdGgoKSAtIGR4LCByLnkoKSwgZHgsIHIuaGVpZ2h0KCkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB2YWx1ZVJlY3QgPSBJbnRSZWN0KHIueCgpLCByLnkoKSwgZHgsIHIuaGVp
Z2h0KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlUGFydCA9IFBQX01PVkVPVkVSTEFZ
OworICAgICAgICBpbnQgZHggPSByLndpZHRoKCkgKiByZW5kZXJQcm9ncmVzcy0+YW5pbWF0aW9u
UHJvZ3Jlc3MoKSAqIDIgLSByLndpZHRoKCk7CisgICAgICAgIHZhbHVlUmVjdCA9IEludFJlY3Qo
ci54KCkgKyBkeCwgci55KCksIHIud2lkdGgoKSwgci5oZWlnaHQoKSk7CisgICAgfQorCisgICAg
VGhlbWVQYWludGVyIHBhaW50ZXIoaS5jb250ZXh0LCByKTsKKyAgICBDaHJvbWl1bUJyaWRnZTo6
cGFpbnRQcm9ncmVzc0JhcihwYWludGVyLmNvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZVBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVS
ZWN0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1X
aW4uaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAppbmRleCBi
YmM1NGE3Li4xMzEzMTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtV2luLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVdpbi5oCkBAIC04Niw2ICs4NiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IFNlZSBjb21tZW50IGluIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpzZXREZWZhdWx0Rm9udFNp
emUoKSByZWdhcmRpbmcgdWdsaW5lc3Mgb2YgdGhpcyBoYWNrLgogICAgICAgICBzdGF0aWMgdm9p
ZCBzZXREZWZhdWx0Rm9udFNpemUoaW50KTsKIAorCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykK
KyAgICAgICAgdmlydHVhbCBkb3VibGUgYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVz
c0JhcihSZW5kZXJQcm9ncmVzcyopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbmlt
YXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
LCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIHBh
aW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CisjZW5kaWYKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAg
dmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsSW50ZXJuYWwoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYmJiYTIwOC4uYTQ2OGM1OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTAtMDQtMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBT
dXBwb3J0IEhUTUw1IDxwcm9ncmVzcz4gZWxlbWVudCBvbiBXaW5kb3dzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzczMDgKKworICAgICAgICBFeHRl
bmRlZCBDaHJvbWl1bUJyaWRnZSBhbmQgV2ViVGhlbWVFbmdpbmUgaW50ZXJmYWNlIHRvIGhhbmRs
ZQorICAgICAgICBwcm9ncmVzcyBiYXIgcGFpbnRpbmcuCisgICAgICAgIAorICAgICAgICAqIHB1
YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVGhlbWVFbmdp
bmU6OnBhaW50UHJvZ3Jlc3NCYXIpOgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6cGFpbnRQcm9ncmVzc0Jhcik6CisK
IDIwMTAtMDQtMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvd2luL1dlYlRoZW1lRW5naW5lLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL3dpbi9XZWJU
aGVtZUVuZ2luZS5oCmluZGV4IGI1NjM2MDguLjQzYWFhYzYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaApAQCAtNzMsNiArNzMsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBwYWludFRyYWNrYmFyKAogICAgICAgICBXZWJDYW52YXMqLCBpbnQg
cGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAogICAgICAgICBjb25zdCBXZWJSZWN0
JikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHBhaW50UHJvZ3Jlc3NCYXIoCisgICAgICAgIFdl
YkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGJhclJlY3QsIAorICAgICAgICBpbnQgdmFsdWVQYXJ0
LCBjb25zdCBXZWJSZWN0JiB2YWx1ZVJlY3QpIHt9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5kZXggY2ZmZDE2Ni4uZGVm
MmEyMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKQEAgLTYxNiw2ICs2
MTYsMTMgQEAgdm9pZCBDaHJvbWl1bUJyaWRnZTo6cGFpbnRUcmFja2JhcigKICAgICAgICAgZ2Mt
PnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwg
cmVjdCk7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OnBhaW50UHJvZ3Jlc3NCYXIoCisgICAg
R3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgSW50UmVjdCYgYmFyUmVjdCwgaW50IHZhbHVlUGFy
dCwgY29uc3QgSW50UmVjdCYgdmFsdWVSZWN0KQoreworICAgIHdlYktpdENsaWVudCgpLT50aGVt
ZUVuZ2luZSgpLT5wYWludFByb2dyZXNzQmFyKAorICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0
KCktPmNhbnZhcygpLCBiYXJSZWN0LCB2YWx1ZVBhcnQsIHZhbHVlUmVjdCk7Cit9CisKICNlbmRp
ZgogCiAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>