<?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>104950</bug_id>
          
          <creation_ts>2012-12-13 14:05:21 -0800</creation_ts>
          <short_desc>Add a setting to enable composited scrolling for frames</short_desc>
          <delta_ts>2013-01-07 17:52:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          <dependson>105546</dependson>
          <blocked>106262</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>andersca</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>klobag</cc>
    
    <cc>luiz</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyostil</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vangelis</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>790907</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-12-13 14:05:21 -0800</bug_when>
    <thetext>When enableAcceleratedCompositingForScrollableFrames, we also need to setScrollable(true) to enable composited scrolling for iframes. Otherwise Chromium compositor will still use the scroll layer of the main page and fall back to slow scrolling path because of the nonFastScrollableRegion (which eventually should not include iframes and overflow:scroll areas) of the main scroll layer. The patch to this bug will only address setScrollable, not nonFastScrollableRegion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790913</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-12-13 14:11:20 -0800</bug_when>
    <thetext>I don&apos;t think our current code supports composited scrolling for iframes or anything other than the root, so the current behavior seems correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791023</commentid>
    <comment_count>2</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-12-13 15:38:59 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I don&apos;t think our current code supports composited scrolling for iframes or anything other than the root, so the current behavior seems correct.

The purpose of this bug is to enable composited scrolling for iframes for better performance. To achieve that we need to fix any blocking issues. Is the solution proposed in Description the right way to go?

Just saw that the patch of bug 97357 just let RenderLayer::usesCompositedScrolling() return true to enable composited scrolling for -webkit-overflow-scrolling:touch. I&apos;m wondering how it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791170</commentid>
    <comment_count>3</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-12-13 17:50:23 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Just saw that the patch of bug 97357 just let RenderLayer::usesCompositedScrolling() return true to enable composited scrolling for -webkit-overflow-scrolling:touch. I&apos;m wondering how it works.

Never mind. Found updateScrollingLayers in RenderLayerBacking::updateGraphicsLayerConfigurations().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795801</commentid>
    <comment_count>4</comment_count>
      <attachid>180410</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-12-20 14:26:10 -0800</bug_when>
    <thetext>Created attachment 180410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795866</commentid>
    <comment_count>5</comment_count>
      <attachid>180410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 15:31:27 -0800</bug_when>
    <thetext>Comment on attachment 180410
Patch

Attachment 180410 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15451191

New failing tests:
platform/chromium/virtual/softwarecompositing/iframes/iframe-composited-scrolling.html
compositing/iframes/iframe-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795873</commentid>
    <comment_count>6</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-12-20 15:41:53 -0800</bug_when>
    <thetext>I plan to enable compositing for inner frames ports that do not use non-force-compositing as well. I do not think it overlaps with this work though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796151</commentid>
    <comment_count>7</comment_count>
      <attachid>180410</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-20 22:47:08 -0800</bug_when>
    <thetext>Comment on attachment 180410
Patch

Attachment 180410 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15458253

New failing tests:
compositing/iframes/iframe-composited-scrolling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798932</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-02 14:48:14 -0800</bug_when>
    <thetext>I think there&apos;s a bit more work to do before we can turn usesCompositedScrolling on for subframes.  For instance from ScrollingCoordinator.cpp:

bool ScrollingCoordinator::coordinatesScrollingForFrameView(FrameView* frameView) const
{
    ASSERT(isMainThread());
    ASSERT(m_page);

    // We currently only handle the main frame.
    if (frameView-&gt;frame() != m_page-&gt;mainFrame())
        return false;



One consequence is that scrollbar layers don&apos;t update properly for subframes.  There are probably other cases as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800638</commentid>
    <comment_count>9</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-04 14:56:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think there&apos;s a bit more work to do before we can turn usesCompositedScrolling on for subframes.  For instance from ScrollingCoordinator.cpp:
&gt; 
&gt; bool ScrollingCoordinator::coordinatesScrollingForFrameView(FrameView* frameView) const
&gt; {
&gt;     ASSERT(isMainThread());
&gt;     ASSERT(m_page);
&gt; 
&gt;     // We currently only handle the main frame.
&gt;     if (frameView-&gt;frame() != m_page-&gt;mainFrame())
&gt;         return false;
&gt; 
&gt; 
&gt; 
&gt; One consequence is that scrollbar layers don&apos;t update properly for subframes.  There are probably other cases as well.

I noticed this, while I thought most parts of ScrollingCoordinator were for main frame only and sub-frame scrolling could be handled by the compositor directly given that ScrollingCoordinatorChromium sets the scrollable flag and scrollableArea for the layer. Ran a test (will attach) on chromium-android and it worked well (including the scrollbars and fixed position element in the sub-frame) with the patch. I think this is just like how composited scrolling for overflow:scroll works because the layer tree for a sub-frame is similar to that of an overflow-scroll element. Am I missing anything?

Did a smoke test of enabling ScrollingCoordinator::coordinatesScrollingForFrameView() for sub-frames and it didn&apos;t work: no scrolling, no scroll bar and sometimes crashed IN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800649</commentid>
    <comment_count>10</comment_count>
      <attachid>181383</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-04 15:01:58 -0800</bug_when>
    <thetext>Created attachment 181383
Manual test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800656</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-04 15:05:45 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I think there&apos;s a bit more work to do before we can turn usesCompositedScrolling on for subframes.  For instance from ScrollingCoordinator.cpp:
&gt; &gt; 
&gt; &gt; bool ScrollingCoordinator::coordinatesScrollingForFrameView(FrameView* frameView) const
&gt; &gt; {
&gt; &gt;     ASSERT(isMainThread());
&gt; &gt;     ASSERT(m_page);
&gt; &gt; 
&gt; &gt;     // We currently only handle the main frame.
&gt; &gt;     if (frameView-&gt;frame() != m_page-&gt;mainFrame())
&gt; &gt;         return false;
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; One consequence is that scrollbar layers don&apos;t update properly for subframes.  There are probably other cases as well.
&gt; 
&gt; I noticed this, while I thought most parts of ScrollingCoordinator were for main frame only and sub-frame scrolling could be handled by the compositor directly given that ScrollingCoordinatorChromium sets the scrollable flag and scrollableArea for the layer. Ran a test (will attach) on chromium-android and it worked well (including the scrollbars and fixed position element in the sub-frame) with the patch. I think this is just like how composited scrolling for overflow:scroll works because the layer tree for a sub-frame is similar to that of an overflow-scroll element. Am I missing anything?
&gt;

As far as I understand, composited scrolling (in the usesCompositedScrolling() sense) for overflow:scroll doesn&apos;t work right now either.

With this patch, running on desktop linux with &quot;--enable-threaded-compositing --force-compositing-mode --enable-accelerated-scrollable-frames&quot; on this page http://webstuff.nfshost.com/scrolling/iframe_scrolls.html the iframe&apos;s contents scroll on the thread but the scrollbars do not, which looks pretty bad.
 
&gt; Did a smoke test of enabling ScrollingCoordinator::coordinatesScrollingForFrameView() for sub-frames and it didn&apos;t work: no scrolling, no scroll bar and sometimes crashed IN

Right.  I imagine there&apos;s some amount of work needed to get this working for either the iframe or overflow:scroll case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800658</commentid>
    <comment_count>12</comment_count>
      <attachid>180410</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-04 15:06:12 -0800</bug_when>
    <thetext>Comment on attachment 180410
Patch

Doesn&apos;t work yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800709</commentid>
    <comment_count>13</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-04 15:53:09 -0800</bug_when>
    <thetext>Is overflow:scroll in the same status (composited scrolling, main-thread scrollbar update)? Actually we have enabled composited scrolling for overflow:scroll in chromium-android dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800729</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-04 16:32:34 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Is overflow:scroll in the same status (composited scrolling, main-thread scrollbar update)? Actually we have enabled composited scrolling for overflow:scroll in chromium-android dev.

I don&apos;t know what the status of scrollbars for overflow:scroll elements on android is, but if they had scrollbars I do not think they would work as expected.  There just isn&apos;t any code that would implement that logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801241</commentid>
    <comment_count>15</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2013-01-07 05:14:40 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I don&apos;t know what the status of scrollbars for overflow:scroll elements on android is, but if they had scrollbars I do not think they would work as expected.  There just isn&apos;t any code that would implement that logic.

Composited overflow:scroll on Android and elsewhere currently uses main-thread scrollbars which have a number of problems (not scrolling on the compositor thread, not fading out, changing size depending on the page scale). I&apos;ve opened bug 106215.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801333</commentid>
    <comment_count>16</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 09:24:45 -0800</bug_when>
    <thetext>@jamesr, are there issues other than the main-thread scrollbar of enabling composited scrolling for frames? If no, would you agree to enable it just like what we did for overflo:scroll? It is controlled by the switch and might be only enabled on android at first.

In addition, some of the main-thread scrollbar issues seem to also exist without enabling composited scrolling for frames and overflow:scroll, so enabling it seems not to make things worse, while it will make scrolling faster :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801347</commentid>
    <comment_count>17</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 09:49:25 -0800</bug_when>
    <thetext>The cross-platform support isn&apos;t in place, so the cross-platform changes in this patch (like FrameView) are definitely wrong and cannot land.  If you want to consider enabling this feature just for chromium-android despite its current bugs, the way to do that would be to add a setting that can be toggled by different ports and platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801360</commentid>
    <comment_count>18</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 09:59:43 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; The cross-platform support isn&apos;t in place, so the cross-platform changes in this patch (like FrameView) are definitely wrong and cannot land.  If you want to consider enabling this feature just for chromium-android despite its current bugs, the way to do that would be to add a setting that can be toggled by different ports and platforms.

I was thinking acceleratedCompositingForScrollableFrames is the setting. For now it seems to be disabled for all platforms. ForceCompositingMode of a sub-frame will be set to true if and only if the setting is enabled and the frame is scrollable. Do we need another setting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801365</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 10:07:26 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; The cross-platform support isn&apos;t in place, so the cross-platform changes in this patch (like FrameView) are definitely wrong and cannot land.  If you want to consider enabling this feature just for chromium-android despite its current bugs, the way to do that would be to add a setting that can be toggled by different ports and platforms.
&gt; 
&gt; I was thinking acceleratedCompositingForScrollableFrames is the setting. For now it seems to be disabled for all platforms. ForceCompositingMode of a sub-frame will be set to true if and only if the setting is enabled and the frame is scrollable. Do we need another setting?

That flag controls compositing, not scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801414</commentid>
    <comment_count>20</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 10:39:02 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; I was thinking acceleratedCompositingForScrollableFrames is the setting. For now it seems to be disabled for all platforms. ForceCompositingMode of a sub-frame will be set to true if and only if the setting is enabled and the frame is scrollable. Do we need another setting?
&gt; 
&gt; That flag controls compositing, not scrolling.

I thought the reason to composite a scrollable frame was for scrolling only, just like that acceleratedCompositingForOverflowScrollEnabled is for composited scrolling of overflow:scroll.

I&apos;d add another setting but am still wondering what the other reasons to composite scrollable (but not non-scrollable) frames are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801476</commentid>
    <comment_count>21</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 11:26:48 -0800</bug_when>
    <thetext>Performance - so you don&apos;t have to repaint the full frame every time it scrolls.

If composited scrolling was feature complete then it might make sense to combine the two into one setting, but so long as composited scrolling for frames doesn&apos;t fully work it cannot be combined with a feature that does work correctly (compositing iframes that can scroll).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801704</commentid>
    <comment_count>22</comment_count>
      <attachid>181575</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 15:12:11 -0800</bug_when>
    <thetext>Created attachment 181575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801794</commentid>
    <comment_count>23</comment_count>
      <attachid>181575</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 16:22:58 -0800</bug_when>
    <thetext>Comment on attachment 181575
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Chromium] Enable composited scrolling for frames

This touches cross-platform code, so it shouldn&apos;t have the [Chromium] tag, and it doesn&apos;t enable anything by itself - it adds a setting.

&gt; LayoutTests/platform/chromium/compositing/force-compositing-mode/iframe-composited-scrolling.html:1
&gt; +&lt;html&gt;

add &lt;!DOCTYPE html&gt; before this line so the test doesn&apos;t run in quirks mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801817</commentid>
    <comment_count>24</comment_count>
      <attachid>181598</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 16:46:25 -0800</bug_when>
    <thetext>Created attachment 181598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801821</commentid>
    <comment_count>25</comment_count>
      <attachid>181598</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 16:47:56 -0800</bug_when>
    <thetext>Comment on attachment 181598
Patch

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

Move the test to a cross-platform location (if it is indeed cross platform) then r=me.  If it isn&apos;t, what&apos;s the issue?

&gt; LayoutTests/ChangeLog:11
&gt; +        * platform/chromium/compositing/force-compositing-mode/iframe-composited-scrolling-expected.txt: Added.
&gt; +        * platform/chromium/compositing/force-compositing-mode/iframe-composited-scrolling.html: Added.

this test isn&apos;t chromium-specific in any way, is it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801822</commentid>
    <comment_count>26</comment_count>
      <attachid>181575</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 16:48:09 -0800</bug_when>
    <thetext>Comment on attachment 181575
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        [Chromium] Enable composited scrolling for frames
&gt; 
&gt; This touches cross-platform code, so it shouldn&apos;t have the [Chromium] tag, and it doesn&apos;t enable anything by itself - it adds a setting.

Done.

I still put the layout test under platform/chromium because all other force-compositing-mode tests are at here. If necessary, I think we can move them all together out of platform/chromium in a separate bug.

&gt;&gt; LayoutTests/platform/chromium/compositing/force-compositing-mode/iframe-composited-scrolling.html:1
&gt;&gt; +&lt;html&gt;
&gt; 
&gt; add &lt;!DOCTYPE html&gt; before this line so the test doesn&apos;t run in quirks mode

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801852</commentid>
    <comment_count>27</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 17:05:37 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 181575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181575&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:3
&gt; &gt;&gt; +        [Chromium] Enable composited scrolling for frames
&gt; &gt; 
&gt; &gt; This touches cross-platform code, so it shouldn&apos;t have the [Chromium] tag, and it doesn&apos;t enable anything by itself - it adds a setting.
&gt; 
&gt; Done.
&gt; 
&gt; I still put the layout test under platform/chromium because all other force-compositing-mode tests are at here. If necessary, I think we can move them all together out of platform/chromium in a separate bug.

Those seem wrong as well, then.  No reason to continue the badness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801860</commentid>
    <comment_count>28</comment_count>
      <attachid>181609</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 17:13:07 -0800</bug_when>
    <thetext>Created attachment 181609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801862</commentid>
    <comment_count>29</comment_count>
      <attachid>181609</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-07 17:14:10 -0800</bug_when>
    <thetext>Comment on attachment 181609
Patch

Still looks good. Want a CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801863</commentid>
    <comment_count>30</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 17:17:02 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 181609 [details])
&gt; Still looks good. Want a CQ?

There are some tiny issues in ChangeLog (extra chromium/ in the path). Updating. Will CQ by myself when it&apos;s uploaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801864</commentid>
    <comment_count>31</comment_count>
      <attachid>181610</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-07 17:17:37 -0800</bug_when>
    <thetext>Created attachment 181610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801894</commentid>
    <comment_count>32</comment_count>
      <attachid>181610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 17:52:35 -0800</bug_when>
    <thetext>Comment on attachment 181610
Patch

Clearing flags on attachment: 181610

Committed r139024: &lt;http://trac.webkit.org/changeset/139024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801895</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 17:52:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180410</attachid>
            <date>2012-12-20 14:26:10 -0800</date>
            <delta_ts>2013-01-07 15:12:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104950-20121220222325.patch</filename>
            <type>text/plain</type>
            <size>7775</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRkNDUzNGEzYmNkYmFl
OWQxZDBkNDNmM2JhM2I3MjIxYWIyN2YwNi4uZmUyM2Q5Njc1ZmEwZThmMzQ5YTgyOWVhZmRiZTBh
YTdiNjA3YTg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTIwICBYaWFu
emh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBFbmFibGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvaWZyYW1l
cy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZyk6IFJldHVybnMgdHJ1ZSBpZiB0aGUgZnJhbWUgaXMgaW4gZm9yY2VkIGNvbXBvc2l0
aW5nIG1vZGUgKHdoaWNoIGlzIHNldCB3aGVuIGZvcmNlZCBjb21wb3NpdGluZyBtb2RlIGFuZCBj
b21wb3NpdGluZyBmb3Igc2Nyb2xsYWJsZSBmcmFtZXMgYXJlIGVuYWJsZWQpLCBzbyB0aGF0IFNj
cm9sbGluZ0Nvb3JkaW5hdG9yIHdvbid0IGluY2x1ZGUgdGhlIHJlZ2lvbiBvZiB0aGUgZnJhbWUg
aW4gdGhlIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtOjpmcmFtZVZp
ZXdMYXlvdXRVcGRhdGVkKTogQ2hhbmdlZCB0aGUgY29tbWVudCBhYm91dCB3aGljaCBTY3JvbGxh
YmxlQXJlYXMgYXJlIG5vbi1mYXN0LXNjcm9sbGFibGUuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6IExldCBTY3JvbGxvbmdDb29yZGluYXRvciBr
bm93IHdoZW4gdGhlIHNjcm9sbGluZyBjaGFuZ2VzIGZvciBhIGZyYW1lIHdpdGggY29tcG9zaXRl
ZCBzY3JvbGxpbmcgZW5hYmxlZC4KKwogMjAxMi0xMi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1F0XVJFR1JFU1NJT04ocjEzODIyMik6
IEl0IG1hZGUgZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLXNwaW5idXR0b24tY2xpY2staW4taWZy
YW1lLmh0bWwgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAyZGQyMWM0YmVi
ZDA4MjIwNTY3MzRjYjVjOTBkZTI4YWZlOGRkMDY2Li5jOGRlNDA4NzhjYzU4OGFkMGU1MWU1MWQ5
NjVmYjVlNDVhMjliYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC03NjcsNiAr
NzY3LDEyIEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlQmFja2luZ1N0b3JlcygpCiAgICAgY29t
cG9zaXRvci0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxh
eW91dCk7CiB9CiAKK2Jvb2wgRnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0Cit7CisgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKKyAgICBy
ZXR1cm4gcm9vdCAmJiByb290LT5jb21wb3NpdG9yKCktPmluRm9yY2VkQ29tcG9zaXRpbmdNb2Rl
KCk7Cit9CisKIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6bGF5ZXJGb3JIb3Jpem9udGFsU2Ny
b2xsYmFyKCkgY29uc3QKIHsKICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggYWUxMzNhOTgyZmI3OThhZmJlZDhkM2Mx
NjRkZjViOGY1MTQ2MmIyOS4uY2FmY2RiYmEyOTllNzg2YWMxZGUwNzk3ZWJhODk3YjI3ZWYzNzgy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC00MzgsNiArNDM4LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdCBP
VkVSUklERTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCBi
b29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBHcmFwaGljc0xheWVyKiBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxi
YXIoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
U2Nyb2xsQ29ybmVyKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yQ2hyb21pdW0uY3BwCmluZGV4IDgzMGE1MzNlNmRkYWFiYzJmM2VhY2QxN2MyMDk0ZTNk
M2MyYmUzOWIuLmI0M2E5MDY4YTg1MDVkNzhkZjBmMjU3NWZjNTk1ZmFkMjA3NmMxODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCkBAIC0xMTEsOCArMTEx
LDkgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtOjpmcmFtZVZpZXdMYXlvdXRV
cGRhdGVkKEZyYW1lVmlldyopCiAgICAgQVNTRVJUKG1fcGFnZSk7CiAKICAgICAvLyBDb21wdXRl
IHRoZSByZWdpb24gb2YgdGhlIHBhZ2UgdGhhdCB3ZSBjYW4ndCBkbyBmYXN0IHNjcm9sbGluZyBm
b3IuIFRoaXMgY3VycmVudGx5IGluY2x1ZGVzCi0gICAgLy8gYWxsIHNjcm9sbGFibGUgYXJlYXMs
IHN1Y2ggYXMgc3ViZnJhbWVzLCBvdmVyZmxvdyBkaXZzIGFuZCBsaXN0IGJveGVzLiBXZSBuZWVk
IHRvIGRvIHRoaXMgZXZlbiBpZiB0aGUKLSAgICAvLyBmcmFtZSB2aWV3IHdob3NlIGxheW91dCB3
YXMgdXBkYXRlZCBpcyBub3QgdGhlIG1haW4gZnJhbWUuCisgICAgLy8gYWxsIHNjcm9sbGFibGUg
YXJlYXMsIHN1Y2ggYXMgc3ViZnJhbWVzLCBvdmVyZmxvdyBkaXZzIGFuZCBsaXN0IGJveGVzLCB3
aG9zZSBjb21wb3NpdGVkCisgICAgLy8gc2Nyb2xsaW5nIGFyZSBub3QgZW5hYmxlZC4gV2UgbmVl
ZCB0byBkbyB0aGlzIGV2ZW4gaWYgdGhlIGZyYW1lIHZpZXcgd2hvc2UgbGF5b3V0IHdhcyB1cGRh
dGVkCisgICAgLy8gaXMgbm90IHRoZSBtYWluIGZyYW1lLgogICAgIFJlZ2lvbiBub25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbiA9IGNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihtX3BhZ2UtPm1h
aW5GcmFtZSgpLCBJbnRQb2ludCgpKTsKICAgICBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihu
b25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UX1RSQUNLSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAppbmRleCBmMGQ1M2UyZTk1ZTM4YzYwNjk3NWYzMjk4ZWU2MGI2MDU1N2Y4NWQwLi43MWEw
ZTZmZTVmNTI3OTlmZTE0MjhhNGI0NTc0NGQ1MDlmMDI3YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTE2OSw2ICsx
MTY5LDggQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCgp
CiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRo
aXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhmcmFtZVZpZXcpKQogICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAobV9mb3JjZUNvbXBvc2l0aW5nTW9kZSkKKyAg
ICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxhYmxlQXJlYVNjcm9sbExheWVy
RGlkQ2hhbmdlKGZyYW1lVmlldywgbV9zY3JvbGxMYXllci5nZXQoKSk7CiAgICAgfQogCiAgICAg
bV9zY3JvbGxMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgtc2Nyb2xsUG9zaXRpb24ueCgp
LCAtc2Nyb2xsUG9zaXRpb24ueSgpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGZkMGE2YjUwNDAyODU2MjkyYTY3ODQw
OTdhN2M4ZGY5Y2Q3NGY1ZC4uMjJiM2IzMzIzYTZmMjc5NGFmNDQwYjJhYjQ4ZGU4MWJmODgzYTQ5
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTIwICBYaWFuemh1IFdhbmcgIDx3YW5n
eGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgY29tcG9z
aXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlIHRvIGVuc3VyZSBpZnJhbWVzIGFyZSBub3QgYWRk
ZWQgaW50byBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiB3aGVuIGVuYWJsZUFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzLgorCisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1F0XVJFR1JFU1NJT04ocjEzODIyMik6IEl0IG1hZGUg
ZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLXNwaW5idXR0b24tY2xpY2staW4taWZyYW1lLmh0bWwg
Y3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1l
LWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2lmcmFtZXMvaWZyYW1lLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ODI0OTEzZjZlMmE3NTRhNWFmNWJhMmNmNTQ3YmUxMTc0NzVlODJhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorIAorUEFTUyBvciBO
L0EKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNGI0ZTBkZTAy
MmU2MWZhOTgwYmZmOWIyYzJkYzNjMjA2NmE2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1s
CkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICBpZnJhbWUg
eworICAgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAgIHdpZHRoOiAxNTBweDsKKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMo
dHJ1ZSk7CisgICAgfQorICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgeworICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7
CisgICAgICAgIHZhciBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9ICIiOworICAgICAgICBpZiAo
d2luZG93LmludGVybmFscyAmJiB3aW5kb3cuaW50ZXJuYWxzLm5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uQXNUZXh0KQorICAgICAgICAgIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gd2luZG93Lmlu
dGVybmFscy5ub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkFzVGV4dChkb2N1bWVudCk7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBub25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbiA9PSAiQm91bmRzOiAoMCwgMCwgMCwgMClcbiIKKyAgICAgICAgICAgID8g
IlBBU1Mgb3IgTi9BIiA6ICJGQUlMOiAiICsgbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CisgICAg
ICB9CisgICAgfQorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZG9UZXN0LCBm
YWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxpZnJhbWUgaWQ9InNjcm9s
bGFibGUtaWZyYW1lIiBzcmM9InJlc291cmNlcy9zdWJmcmFtZS5odG1sIiBzdHlsZT0id2lkdGg6
IDIwMHB4OyBoZWlnaHQ6IDIwMHB4Ij48L2lmcmFtZT4KKyAgPGlmcmFtZSBpZD0ibm9uLXNjcm9s
bGFibGUtaWZyYW1lIiBzcmM9InJlc291cmNlcy9zdWJmcmFtZS5odG1sIiBzdHlsZT0id2lkdGg6
IDIwMDBweDsgaGVpZ2h0OiAyMDAwcHgiPjwvaWZyYW1lPgorICA8cHJlIGlkPSJyZXN1bHQiPjwv
cHJlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>181383</attachid>
            <date>2013-01-04 15:01:58 -0800</date>
            <delta_ts>2013-01-04 15:01:58 -0800</delta_ts>
            <desc>Manual test case</desc>
            <filename>testframe1.html</filename>
            <type>text/html</type>
            <size>1864</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">PGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sO2Jhc2U2NCxQR1JwZGlCemRIbHNaVDBpY0c5emFY
UnBiMjQ2SUdacGVHVmtPeUIzYVdSMGFEb2dNVEF3Y0hnN0lHaGxhV2RvZERvZ01UQXdjSGc3SUdK
aFkydG5jbTkxYm1RdFkyOXNiM0k2SUdKc2RXVWlQZ3BHU1ZoRlJBbzhMMlJwZGo0S1BHUnBkaUJ6
ZEhsc1pUMGlkMmxrZEdnNklEazVPWEI0T3lCb1pXbG5hSFE2SURrNU9YQjRPeUJpWVdOclozSnZk
VzVrTFdOdmJHOXlPaUI1Wld4c2IzY2lQZ3BCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCQ2tGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVFS1FVRkJR
VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFRcEJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJDa0ZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR
VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUVLUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVFwQlFVRkJRVUZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR
VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQkNrRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRUtRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR
UXBCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCQ2tGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVFS1FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR
VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFRcEJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJDa0ZC
UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR
VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUVLUVVGQlFVRkJRVUZCUVVGQlFV
RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG
QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVFvOEwyUnBkajRLQ2c9PSIgc3R5bGU9IndpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAzMDBweCI+CjwvaWZyYW1lPgo8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBo
ZWlnaHQ6IDIwMDBweCI+CkRJVgpESVYKRElWCkRJVgo8L2Rpdj4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181575</attachid>
            <date>2013-01-07 15:12:11 -0800</date>
            <delta_ts>2013-01-07 16:48:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104950-20130107230915.patch</filename>
            <type>text/plain</type>
            <size>8889</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVhMTI1YjQ2M2QzZTFh
NzViYjliMGM5MDAzYWEwNTdhMjFiMjMxMy4uMThmNTM0M2Q4NTg2OTdlMmRjNmUzYjRjMDJkNTI0
ZjlmNDdhYzkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTA3ICBYaWFu
emh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBFbmFibGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRlZC1zY3Jv
bGxpbmcuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyk6IFJldHVybnMgdHJ1ZSBp
ZiBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZCBhbmQgdGhlIGZyYW1lIGlzIGlu
IGZvcmNlZCBjb21wb3NpdGluZyBtb2RlICh3aGljaCBpcyBzZXQgd2hlbiBmb3JjZWQgY29tcG9z
aXRpbmcgbW9kZSBhbmQgY29tcG9zaXRpbmcgZm9yIHNjcm9sbGFibGUgZnJhbWVzIGFyZSBlbmFi
bGVkKSwgc28gdGhhdCBTY3JvbGxpbmdDb29yZGluYXRvciB3b24ndCBpbmNsdWRlIHRoZSByZWdp
b24gb2YgdGhlIGZyYW1lIGluIHRoZSBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZp
ZXcpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBjb21wb3NpdGVkU2Nyb2xsaW5n
Rm9yRnJhbWVzRW5hYmxlZCBzZXR0aW5nLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nocm9t
aXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCk6IENo
YW5nZWQgdGhlIGNvbW1lbnQgYWJvdXQgd2hpY2ggU2Nyb2xsYWJsZUFyZWFzIGFyZSBub24tZmFz
dC1zY3JvbGxhYmxlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdE
aWRTY3JvbGwpOiBMZXQgU2Nyb2xsb25nQ29vcmRpbmF0b3Iga25vdyB3aGVuIHRoZSBzY3JvbGxp
bmcgY2hhbmdlcyBmb3IgYSBmcmFtZSB3aXRoIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGVuYWJsZWQu
CisKIDIwMTMtMDEtMDcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBGaXhpbmcgbWVtb3J5IHJlYWQgYWZ0ZXIgZnJlZSBpbiBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmFjY2Vzc0ZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBhODQ4ZGVi
OTFkNDdmODFiNjg1YzJhMWVkNDI4YmNlNjJiYjA1ZmNmLi5hMjcyODMzNTI2YTU2YjViYWZiYzM5
NzhiMTUyNzk4NDUwMjM4ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC03Njcs
NiArNzY3LDE1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlQmFja2luZ1N0b3JlcygpCiAgICAg
Y29tcG9zaXRvci0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRl
ckxheW91dCk7CiB9CiAKK2Jvb2wgRnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygp
IGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGlu
Z3MoKS0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQoKSkgeworICAgICAgICBS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgICAgICByZXR1cm4gcm9v
dCAmJiByb290LT5jb21wb3NpdG9yKCktPmluRm9yY2VkQ29tcG9zaXRpbmdNb2RlKCk7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKwogR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAogewogICAgIFJlbmRlclZpZXcqIHJvb3Qg
PSByb290UmVuZGVyZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBhZTEzM2E5
ODJmYjc5OGFmYmVkOGQzYzE2NGRmNWI4ZjUxNDYyYjI5Li5jYWZjZGJiYTI5OWU3ODZhYzFkZTA3
OTdlYmE4OTdiMjdlZjM3ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQzOCw2ICs0
MzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5k
aW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1hdG9y
RW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9ySG9yaXpvbnRhbFNjcm9s
bGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJG
b3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgR3JhcGhp
Y3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCmluZGV4IDEyNjYzMGMzM2FjMTk1MTNhYzllOTAwOGRhMGE2ODA2ZWViYjk3
MTMuLmZlM2M4ZGE1NTgzYzFjY2E3YTk3ZjQ5MTFiMDFlM2U2MzQxYTEwNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5pbgpAQCAtOTIsNiArOTIsNyBAQCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
T3ZlcmZsb3dTY3JvbGxFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogIyBXb3JrcyBvbmx5IGluIGNv
bmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUuCiBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY29tcG9zaXRlZFNj
cm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBleHBlcmltZW50YWxOb3Rp
ZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNlCiB3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Ny
b2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAppbmRleCA4MzBh
NTMzZTZkZGFhYmMyZjNlYWNkMTdjMjA5NGUzZDNjMmJlMzliLi5iNDNhOTA2OGE4NTA1ZDc4ZGYw
ZjI1NzVmYzU5NWZhZDIwNzZjMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRv
ckNocm9taXVtLmNwcApAQCAtMTExLDggKzExMSw5IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcqKQogICAgIEFTU0VS
VChtX3BhZ2UpOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgcmVnaW9uIG9mIHRoZSBwYWdlIHRoYXQg
d2UgY2FuJ3QgZG8gZmFzdCBzY3JvbGxpbmcgZm9yLiBUaGlzIGN1cnJlbnRseSBpbmNsdWRlcwot
ICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1lcywgb3ZlcmZsb3cg
ZGl2cyBhbmQgbGlzdCBib3hlcy4gV2UgbmVlZCB0byBkbyB0aGlzIGV2ZW4gaWYgdGhlCi0gICAg
Ly8gZnJhbWUgdmlldyB3aG9zZSBsYXlvdXQgd2FzIHVwZGF0ZWQgaXMgbm90IHRoZSBtYWluIGZy
YW1lLgorICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1lcywgb3Zl
cmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcywgd2hvc2UgY29tcG9zaXRlZAorICAgIC8vIHNjcm9s
bGluZyBhcmUgbm90IGVuYWJsZWQuIFdlIG5lZWQgdG8gZG8gdGhpcyBldmVuIGlmIHRoZSBmcmFt
ZSB2aWV3IHdob3NlIGxheW91dCB3YXMgdXBkYXRlZAorICAgIC8vIGlzIG5vdCB0aGUgbWFpbiBm
cmFtZS4KICAgICBSZWdpb24gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSBjb21wdXRlTm9uRmFz
dFNjcm9sbGFibGVSZWdpb24obV9wYWdlLT5tYWluRnJhbWUoKSwgSW50UG9pbnQoKSk7CiAgICAg
c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24obm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVF9UUkFDS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNmYwMWYxYThhOGZkZTdmY2Iy
MWE1ZmViYTI4ZDYxZDRiYTExYWFkMC4uMTNkY2NlMDA3MDFmYWEzOTNjOGRkYmIxZDZjYjVhNTE0
Zjk3YWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKQEAgLTExNzAsNiArMTE3MCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwoKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7
CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYg
KFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3Mo
KSkKKyAgICAgICAgICAgIGlmIChzZXR0aW5ncy0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1l
c0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xs
YWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShmcmFtZVZpZXcsIG1fc2Nyb2xsTGF5ZXIuZ2V0
KCkpOwogICAgIH0KIAogICAgIG1fc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQo
LXNjcm9sbFBvc2l0aW9uLngoKSwgLXNjcm9sbFBvc2l0aW9uLnkoKSkpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlNDNi
ZjNiNzA1ZThmNTM3MmM4Y2MwODA4MTk1Yzc5Y2NlODY5ODcuLjdjMjc4MTEwZTljYzZkNmE3Yzcw
NTEwYjcwOWU4NTdiNTJmYjQ2ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAg
WGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJv
bWl1bV0gRW5hYmxlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGZvciBmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDk1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgY2FzZSB0byBlbnN1cmUg
aWZyYW1lcyBhcmUgbm90IGFkZGVkIGludG8gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gd2hlbiBh
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgYW5kIGNvbXBv
c2l0ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRl
ZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2lmcmFtZS1jb21wb3NpdGVk
LXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0wNyAgSnVzdGluIE5vdm9zYWQgIDxq
dW5vdkBnb29nbGUuY29tPgogCiAgICAgICAgIEZpeGluZyBtZW1vcnkgcmVhZCBhZnRlciBmcmVl
IGluIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWNjZXNzRm9udApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmct
bW9kZS9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9p
ZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MTdi
NTc1ODc2NjljM2JiNmQyMGVhZDU1Y2ZjZDQyODZhMGEyN2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACisgIAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRlZC1z
Y3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvaWZyYW1lLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTA3M2Q0OTQ5ZjNhMDljOWUzNDIyNjRmNjA5MjgzYmQ2ZjY0NWM5MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvaWZyYW1lLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwK
QEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIGlmcmFtZSB7
CisgICAgICBoZWlnaHQ6IDE1MHB4OworICAgICAgd2lkdGg6IDE1MHB4OworICAgIH0KKyAgPC9z
dHlsZT4KKyAgPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzRW5hYmxlZCh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDb21wb3NpdGVk
U2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KGZhbHNlKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICB2YXIgbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSAKKyAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gd2luZG93LmludGVy
bmFscy5ub25GYXN0U2Nyb2xsYWJsZVJlY3RzKGRvY3VtZW50KS5sZW5ndGggPyAiRkFJTCIgOiAi
UEFTUyI7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgPGlmcmFtZSBpZD0ic2Nyb2xsYWJsZS1pZnJhbWUiIHNyYz0icmVzb3VyY2VzL3N1YmZy
YW1lLWJpZy5odG1sIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4Ij48L2lmcmFt
ZT4KKyAgPGlmcmFtZSBpZD0ibm9uLXNjcm9sbGFibGUtaWZyYW1lIiBzcmM9InJlc291cmNlcy9z
dWJmcmFtZS1zbWFsbC5odG1sIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4Ij48
L2lmcmFtZT4KKyAgPHByZSBpZD0icmVzdWx0Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181598</attachid>
            <date>2013-01-07 16:46:25 -0800</date>
            <delta_ts>2013-01-07 17:13:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104950-20130108004330.patch</filename>
            <type>text/plain</type>
            <size>8918</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVhMTI1YjQ2M2QzZTFh
NzViYjliMGM5MDAzYWEwNTdhMjFiMjMxMy4uZjY1NGI3MmY5ODA0NjU2YjE2MjFjNWQwMzBmM2Iw
MWEzZDVmZDIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTA3ICBYaWFu
emh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2V0
dGluZyB0byBlbmFibGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRl
ZC1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZyk6IFJldHVybnMg
dHJ1ZSBpZiBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZCBhbmQgdGhlIGZyYW1l
IGlzIGluIGZvcmNlZCBjb21wb3NpdGluZyBtb2RlICh3aGljaCBpcyBzZXQgd2hlbiBmb3JjZWQg
Y29tcG9zaXRpbmcgbW9kZSBhbmQgY29tcG9zaXRpbmcgZm9yIHNjcm9sbGFibGUgZnJhbWVzIGFy
ZSBlbmFibGVkKSwgc28gdGhhdCBTY3JvbGxpbmdDb29yZGluYXRvciB3b24ndCBpbmNsdWRlIHRo
ZSByZWdpb24gb2YgdGhlIGZyYW1lIGluIHRoZSBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChG
cmFtZVZpZXcpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBjb21wb3NpdGVkU2Ny
b2xsaW5nRm9yRnJhbWVzRW5hYmxlZCBzZXR0aW5nLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRl
ZCk6IENoYW5nZWQgdGhlIGNvbW1lbnQgYWJvdXQgd2hpY2ggU2Nyb2xsYWJsZUFyZWFzIGFyZSBu
b24tZmFzdC1zY3JvbGxhYmxlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFt
ZVZpZXdEaWRTY3JvbGwpOiBMZXQgU2Nyb2xsb25nQ29vcmRpbmF0b3Iga25vdyB3aGVuIHRoZSBz
Y3JvbGxpbmcgY2hhbmdlcyBmb3IgYSBmcmFtZSB3aXRoIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGVu
YWJsZWQuCisKIDIwMTMtMDEtMDcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBGaXhpbmcgbWVtb3J5IHJlYWQgYWZ0ZXIgZnJlZSBpbiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmFjY2Vzc0ZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBh
ODQ4ZGViOTFkNDdmODFiNjg1YzJhMWVkNDI4YmNlNjJiYjA1ZmNmLi5hMjcyODMzNTI2YTU2YjVi
YWZiYzM5NzhiMTUyNzk4NDUwMjM4ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC03NjcsNiArNzY3LDE1IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlQmFja2luZ1N0b3Jlcygp
CiAgICAgY29tcG9zaXRvci0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRh
dGVBZnRlckxheW91dCk7CiB9CiAKK2Jvb2wgRnJhbWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9s
bGluZygpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+
c2V0dGluZ3MoKS0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQoKSkgeworICAg
ICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgICAgICByZXR1
cm4gcm9vdCAmJiByb290LT5jb21wb3NpdG9yKCktPmluRm9yY2VkQ29tcG9zaXRpbmdNb2RlKCk7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogR3JhcGhpY3NMYXllciogRnJhbWVWaWV3
OjpsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAogewogICAgIFJlbmRlclZpZXcq
IHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBh
ZTEzM2E5ODJmYjc5OGFmYmVkOGQzYzE2NGRmNWI4ZjUxNDYyYjI5Li5jYWZjZGJiYTI5OWU3ODZh
YzFkZTA3OTdlYmE4OTdiMjdlZjM3ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQz
OCw2ICs0MzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJl
YUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9ySG9yaXpvbnRh
bFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciog
bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
R3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDEyNjYzMGMzM2FjMTk1MTNhYzllOTAwOGRhMGE2ODA2
ZWViYjk3MTMuLmZlM2M4ZGE1NTgzYzFjY2E3YTk3ZjQ5MTFiMDFlM2U2MzQxYTEwNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtOTIsNiArOTIsNyBAQCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogIyBXb3JrcyBvbmx5
IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3NpdGluZ01vZGUuCiBhY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQorY29tcG9z
aXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBleHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNlCiB3ZWJHTEVuYWJsZWQgaW5pdGlh
bD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21p
dW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAppbmRl
eCA4MzBhNTMzZTZkZGFhYmMyZjNlYWNkMTdjMjA5NGUzZDNjMmJlMzliLi5iNDNhOTA2OGE4NTA1
ZDc4ZGYwZjI1NzVmYzU5NWZhZDIwNzZjMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29y
ZGluYXRvckNocm9taXVtLmNwcApAQCAtMTExLDggKzExMSw5IEBAIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcqKQogICAg
IEFTU0VSVChtX3BhZ2UpOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgcmVnaW9uIG9mIHRoZSBwYWdl
IHRoYXQgd2UgY2FuJ3QgZG8gZmFzdCBzY3JvbGxpbmcgZm9yLiBUaGlzIGN1cnJlbnRseSBpbmNs
dWRlcwotICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1lcywgb3Zl
cmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcy4gV2UgbmVlZCB0byBkbyB0aGlzIGV2ZW4gaWYgdGhl
Ci0gICAgLy8gZnJhbWUgdmlldyB3aG9zZSBsYXlvdXQgd2FzIHVwZGF0ZWQgaXMgbm90IHRoZSBt
YWluIGZyYW1lLgorICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1l
cywgb3ZlcmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcywgd2hvc2UgY29tcG9zaXRlZAorICAgIC8v
IHNjcm9sbGluZyBhcmUgbm90IGVuYWJsZWQuIFdlIG5lZWQgdG8gZG8gdGhpcyBldmVuIGlmIHRo
ZSBmcmFtZSB2aWV3IHdob3NlIGxheW91dCB3YXMgdXBkYXRlZAorICAgIC8vIGlzIG5vdCB0aGUg
bWFpbiBmcmFtZS4KICAgICBSZWdpb24gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSBjb21wdXRl
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24obV9wYWdlLT5tYWluRnJhbWUoKSwgSW50UG9pbnQoKSk7
CiAgICAgc2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24obm9uRmFzdFNjcm9sbGFibGVSZWdpb24p
OwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVF9UUkFDS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNmYwMWYxYThhOGZk
ZTdmY2IyMWE1ZmViYTI4ZDYxZDRiYTExYWFkMC4uMTNkY2NlMDA3MDFmYWEzOTNjOGRkYmIxZDZj
YjVhNTE0Zjk3YWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTExNzAsNiArMTE3MCw5IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwoKQogICAgIGlmIChTY3JvbGxpbmdDb29y
ZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRv
cigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3Jv
bGxpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0
dGluZ3MoKSkKKyAgICAgICAgICAgIGlmIChzZXR0aW5ncy0+Y29tcG9zaXRlZFNjcm9sbGluZ0Zv
ckZyYW1lc0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+
c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShmcmFtZVZpZXcsIG1fc2Nyb2xsTGF5
ZXIuZ2V0KCkpOwogICAgIH0KIAogICAgIG1fc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0
UG9pbnQoLXNjcm9sbFBvc2l0aW9uLngoKSwgLXNjcm9sbFBvc2l0aW9uLnkoKSkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDJlNDNiZjNiNzA1ZThmNTM3MmM4Y2MwODA4MTk1Yzc5Y2NlODY5ODcuLjkyZDdkNTNjZjFiMDI3
N2UyODI5OTFiNmFhMzFiN2IyZjliNDBmZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0w
MS0wNyAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZCBhIHNldHRpbmcgdG8gZW5hYmxlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGZvciBmcmFtZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDk1MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgY2Fz
ZSB0byBlbnN1cmUgaWZyYW1lcyBhcmUgbm90IGFkZGVkIGludG8gbm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24gd2hlbiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJs
ZWQgYW5kIGNvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJh
bWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2lmcmFt
ZS1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0wNyAgSnVzdGlu
IE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgogCiAgICAgICAgIEZpeGluZyBtZW1vcnkgcmVh
ZCBhZnRlciBmcmVlIGluIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWNjZXNzRm9udApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9z
aXRpbmctbW9kZS9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3MTdiNTc1ODc2NjljM2JiNmQyMGVhZDU1Y2ZjZDQyODZhMGEyN2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3Jj
ZS1jb21wb3NpdGluZy1tb2RlL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyIEBACisgIAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9pZnJhbWUt
Y29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvaWZyYW1lLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U4NThlMjA0OTZlMzA4NDc5ZGQwMzM2NTI0M2VkZGQ1
ODc1YzVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvaWZyYW1lLWNvbXBvc2l0ZWQtc2Ny
b2xsaW5nLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICA8c3R5bGU+CisgICAgaWZyYW1lIHsKKyAgICAgIGhlaWdodDogMTUwcHg7CisgICAg
ICB3aWR0aDogMTUwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKHRydWUpOworICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldENvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkKHRy
dWUpOworICAgIH0KKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoZmFsc2UpOwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgIHZhciBub25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbiA9IAorICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLm5vbkZhc3RTY3JvbGxhYmxlUmVjdHMo
ZG9jdW1lbnQpLmxlbmd0aCA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgICAgfQorICAgICAgfQor
ICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRvVGVzdCwgZmFsc2Up
OworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIGlkPSJzY3JvbGxhYmxl
LWlmcmFtZSIgc3JjPSJyZXNvdXJjZXMvc3ViZnJhbWUtYmlnLmh0bWwiIHN0eWxlPSJ3aWR0aDog
MjAwcHg7IGhlaWdodDogMjAwcHgiPjwvaWZyYW1lPgorICA8aWZyYW1lIGlkPSJub24tc2Nyb2xs
YWJsZS1pZnJhbWUiIHNyYz0icmVzb3VyY2VzL3N1YmZyYW1lLXNtYWxsLmh0bWwiIHN0eWxlPSJ3
aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHgiPjwvaWZyYW1lPgorICA8cHJlIGlkPSJyZXN1bHQi
PjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181609</attachid>
            <date>2013-01-07 17:13:07 -0800</date>
            <delta_ts>2013-01-07 17:17:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104950-20130108011011.patch</filename>
            <type>text/plain</type>
            <size>8647</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVhMTI1YjQ2M2QzZTFh
NzViYjliMGM5MDAzYWEwNTdhMjFiMjMxMy4uZmQyYzM1MWEyMmExZDFjZjQ5YzliNGJjZDkwNTZj
ZTVkYzAyYTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTA3ICBYaWFu
emh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2V0
dGluZyB0byBlbmFibGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyk6IFJldHVybnMgdHJ1ZSBpZiBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJh
bWVzRW5hYmxlZCBhbmQgdGhlIGZyYW1lIGlzIGluIGZvcmNlZCBjb21wb3NpdGluZyBtb2RlICh3
aGljaCBpcyBzZXQgd2hlbiBmb3JjZWQgY29tcG9zaXRpbmcgbW9kZSBhbmQgY29tcG9zaXRpbmcg
Zm9yIHNjcm9sbGFibGUgZnJhbWVzIGFyZSBlbmFibGVkKSwgc28gdGhhdCBTY3JvbGxpbmdDb29y
ZGluYXRvciB3b24ndCBpbmNsdWRlIHRoZSByZWdpb24gb2YgdGhlIGZyYW1lIGluIHRoZSBub25G
YXN0U2Nyb2xsYWJsZVJlZ2lvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcpOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuaW46IEFkZCBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZCBzZXR0aW5nLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1
bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCk6IENoYW5nZWQgdGhlIGNvbW1lbnQgYWJvdXQgd2hp
Y2ggU2Nyb2xsYWJsZUFyZWFzIGFyZSBub24tZmFzdC1zY3JvbGxhYmxlLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwpOiBMZXQgU2Nyb2xsb25nQ29v
cmRpbmF0b3Iga25vdyB3aGVuIHRoZSBzY3JvbGxpbmcgY2hhbmdlcyBmb3IgYSBmcmFtZSB3aXRo
IGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGVuYWJsZWQuCisKIDIwMTMtMDEtMDcgIEp1c3RpbiBOb3Zv
c2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBGaXhpbmcgbWVtb3J5IHJlYWQgYWZ0
ZXIgZnJlZSBpbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFjY2Vzc0ZvbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCBhODQ4ZGViOTFkNDdmODFiNjg1YzJhMWVkNDI4YmNlNjJi
YjA1ZmNmLi5hMjcyODMzNTI2YTU2YjViYWZiYzM5NzhiMTUyNzk4NDUwMjM4ZmYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC03NjcsNiArNzY3LDE1IEBAIHZvaWQgRnJhbWVWaWV3
OjpyZXN0b3JlQmFja2luZ1N0b3JlcygpCiAgICAgY29tcG9zaXRvci0+dXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxheW91dCk7CiB9CiAKK2Jvb2wgRnJhbWVW
aWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUt
PnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+Y29tcG9zaXRlZFNjcm9sbGluZ0Zv
ckZyYW1lc0VuYWJsZWQoKSkgeworICAgICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRl
cmVyKHRoaXMpOworICAgICAgICByZXR1cm4gcm9vdCAmJiByb290LT5jb21wb3NpdG9yKCktPmlu
Rm9yY2VkQ29tcG9zaXRpbmdNb2RlKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
R3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBj
b25zdAogewogICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAppbmRleCBhZTEzM2E5ODJmYjc5OGFmYmVkOGQzYzE2NGRmNWI4ZjUx
NDYyYjI5Li5jYWZjZGJiYTI5OWU3ODZhYzFkZTA3OTdlYmE4OTdiMjdlZjM3ODJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQzOCw2ICs0MzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNz
TGF5ZXIqIGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3Ju
ZXIoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDEyNjYzMGMz
M2FjMTk1MTNhYzllOTAwOGRhMGE2ODA2ZWViYjk3MTMuLmZlM2M4ZGE1NTgzYzFjY2E3YTk3ZjQ5
MTFiMDFlM2U2MzQxYTEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtOTIsNiArOTIs
NyBAQCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIGluaXRp
YWw9ZmFsc2UKIAogIyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3Np
dGluZ01vZGUuCiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorY29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQogCiBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPWZh
bHNlCiB3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29y
ZGluYXRvckNocm9taXVtLmNwcAppbmRleCA4MzBhNTMzZTZkZGFhYmMyZjNlYWNkMTdjMjA5NGUz
ZDNjMmJlMzliLi5iNDNhOTA2OGE4NTA1ZDc4ZGYwZjI1NzVmYzU5NWZhZDIwNzZjMTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdD
b29yZGluYXRvckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcApAQCAtMTExLDggKzEx
MSw5IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0
VXBkYXRlZChGcmFtZVZpZXcqKQogICAgIEFTU0VSVChtX3BhZ2UpOwogCiAgICAgLy8gQ29tcHV0
ZSB0aGUgcmVnaW9uIG9mIHRoZSBwYWdlIHRoYXQgd2UgY2FuJ3QgZG8gZmFzdCBzY3JvbGxpbmcg
Zm9yLiBUaGlzIGN1cnJlbnRseSBpbmNsdWRlcwotICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFz
LCBzdWNoIGFzIHN1YmZyYW1lcywgb3ZlcmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcy4gV2UgbmVl
ZCB0byBkbyB0aGlzIGV2ZW4gaWYgdGhlCi0gICAgLy8gZnJhbWUgdmlldyB3aG9zZSBsYXlvdXQg
d2FzIHVwZGF0ZWQgaXMgbm90IHRoZSBtYWluIGZyYW1lLgorICAgIC8vIGFsbCBzY3JvbGxhYmxl
IGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1lcywgb3ZlcmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcywg
d2hvc2UgY29tcG9zaXRlZAorICAgIC8vIHNjcm9sbGluZyBhcmUgbm90IGVuYWJsZWQuIFdlIG5l
ZWQgdG8gZG8gdGhpcyBldmVuIGlmIHRoZSBmcmFtZSB2aWV3IHdob3NlIGxheW91dCB3YXMgdXBk
YXRlZAorICAgIC8vIGlzIG5vdCB0aGUgbWFpbiBmcmFtZS4KICAgICBSZWdpb24gbm9uRmFzdFNj
cm9sbGFibGVSZWdpb24gPSBjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24obV9wYWdlLT5t
YWluRnJhbWUoKSwgSW50UG9pbnQoKSk7CiAgICAgc2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24o
bm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVF9UUkFDS0lO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKaW5kZXggNmYwMWYxYThhOGZkZTdmY2IyMWE1ZmViYTI4ZDYxZDRiYTExYWFkMC4uMTNk
Y2NlMDA3MDFmYWEzOTNjOGRkYmIxZDZjYjVhNTE0Zjk3YWU1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTExNzAsNiAr
MTE3MCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwo
KQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0
aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29y
ZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkKICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVu
ZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkKKyAgICAgICAgICAgIGlmIChzZXR0aW5n
cy0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5n
ZShmcmFtZVZpZXcsIG1fc2Nyb2xsTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAogICAgIG1fc2Nyb2xs
TGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoLXNjcm9sbFBvc2l0aW9uLngoKSwgLXNjcm9s
bFBvc2l0aW9uLnkoKSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlNDNiZjNiNzA1ZThmNTM3MmM4Y2MwODA4MTk1Yzc5
Y2NlODY5ODcuLmM2NTJkZjBkZTIzNTc3ZjU0YjcwZThhYmJmNjE0Y2M5YmIyYjFhYWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgdG8gZW5hYmxlIGNvbXBvc2l0
ZWQgc2Nyb2xsaW5nIGZvciBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDk1MAorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgorCisgICAgICAgIFRlc3QgY2FzZSB0byBlbnN1cmUgaWZyYW1lcyBhcmUgbm90IGFkZGVk
IGludG8gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gd2hlbiBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgYW5kIGNvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFt
ZXNFbmFibGVkLgorCisgICAgICAgICogY2hyb21pdW0vY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJh
bWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
aHJvbWl1bS9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy5o
dG1sOiBBZGRlZC4KKwogMjAxMy0wMS0wNyAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUu
Y29tPgogCiAgICAgICAgIEZpeGluZyBtZW1vcnkgcmVhZCBhZnRlciBmcmVlIGluIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6YWNjZXNzRm9udApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3Jv
bGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4MjQ5MTNmNmUyYTc1NGE1YWY1YmEyY2Y1
NDdiZTExNzQ3NWU4MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACisgCitQQVNTIG9yIE4vQQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNvbXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmJjNTdiMTE5NzUxY2I1NzQ2YThmZmIwN2RiNTAwMmNkZWFkNTkwNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvaWZyYW1lLWNv
bXBvc2l0ZWQtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgaWZyYW1lIHsKKyAgICAgIGhlaWdodDog
MTUwcHg7CisgICAgICB3aWR0aDogMTUwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0
PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKHRydWUp
OworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFt
ZXNFbmFibGVkKHRydWUpOworICAgIH0KKyAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoZmFsc2UpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSAod2luZG93LmludGVy
bmFscy5ub25GYXN0U2Nyb2xsYWJsZVJlY3RzICYmIHdpbmRvdy5pbnRlcm5hbHMubm9uRmFzdFNj
cm9sbGFibGVSZWN0cyhkb2N1bWVudCkubGVuZ3RoKSA/ICJGQUlMIiA6ICJQQVNTIG9yIE4vQSI7
CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
PGlmcmFtZSBpZD0ic2Nyb2xsYWJsZS1pZnJhbWUiIHNyYz0icmVzb3VyY2VzL3N1YmZyYW1lLmh0
bWwiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHgiPjwvaWZyYW1lPgorICA8aWZy
YW1lIGlkPSJub24tc2Nyb2xsYWJsZS1pZnJhbWUiIHNyYz0icmVzb3VyY2VzL3N1YmZyYW1lLmh0
bWwiIHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6IDIwMDBweCI+PC9pZnJhbWU+CisgIDxw
cmUgaWQ9InJlc3VsdCI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181610</attachid>
            <date>2013-01-07 17:17:37 -0800</date>
            <delta_ts>2013-01-07 17:52:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104950-20130108011441.patch</filename>
            <type>text/plain</type>
            <size>8557</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVhMTI1YjQ2M2QzZTFh
NzViYjliMGM5MDAzYWEwNTdhMjFiMjMxMy4uZmQyYzM1MWEyMmExZDFjZjQ5YzliNGJjZDkwNTZj
ZTVkYzAyYTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTA3ICBYaWFu
emh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2V0
dGluZyB0byBlbmFibGUgY29tcG9zaXRlZCBzY3JvbGxpbmcgZm9yIGZyYW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcv
aWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZyk6IFJldHVybnMgdHJ1ZSBpZiBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJh
bWVzRW5hYmxlZCBhbmQgdGhlIGZyYW1lIGlzIGluIGZvcmNlZCBjb21wb3NpdGluZyBtb2RlICh3
aGljaCBpcyBzZXQgd2hlbiBmb3JjZWQgY29tcG9zaXRpbmcgbW9kZSBhbmQgY29tcG9zaXRpbmcg
Zm9yIHNjcm9sbGFibGUgZnJhbWVzIGFyZSBlbmFibGVkKSwgc28gdGhhdCBTY3JvbGxpbmdDb29y
ZGluYXRvciB3b24ndCBpbmNsdWRlIHRoZSByZWdpb24gb2YgdGhlIGZyYW1lIGluIHRoZSBub25G
YXN0U2Nyb2xsYWJsZVJlZ2lvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcpOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuaW46IEFkZCBjb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZCBzZXR0aW5nLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1
bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCk6IENoYW5nZWQgdGhlIGNvbW1lbnQgYWJvdXQgd2hp
Y2ggU2Nyb2xsYWJsZUFyZWFzIGFyZSBub24tZmFzdC1zY3JvbGxhYmxlLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwpOiBMZXQgU2Nyb2xsb25nQ29v
cmRpbmF0b3Iga25vdyB3aGVuIHRoZSBzY3JvbGxpbmcgY2hhbmdlcyBmb3IgYSBmcmFtZSB3aXRo
IGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGVuYWJsZWQuCisKIDIwMTMtMDEtMDcgIEp1c3RpbiBOb3Zv
c2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBGaXhpbmcgbWVtb3J5IHJlYWQgYWZ0
ZXIgZnJlZSBpbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmFjY2Vzc0ZvbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCBhODQ4ZGViOTFkNDdmODFiNjg1YzJhMWVkNDI4YmNlNjJi
YjA1ZmNmLi5hMjcyODMzNTI2YTU2YjViYWZiYzM5NzhiMTUyNzk4NDUwMjM4ZmYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC03NjcsNiArNzY3LDE1IEBAIHZvaWQgRnJhbWVWaWV3
OjpyZXN0b3JlQmFja2luZ1N0b3JlcygpCiAgICAgY29tcG9zaXRvci0+dXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxheW91dCk7CiB9CiAKK2Jvb2wgRnJhbWVW
aWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUt
PnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+Y29tcG9zaXRlZFNjcm9sbGluZ0Zv
ckZyYW1lc0VuYWJsZWQoKSkgeworICAgICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRl
cmVyKHRoaXMpOworICAgICAgICByZXR1cm4gcm9vdCAmJiByb290LT5jb21wb3NpdG9yKCktPmlu
Rm9yY2VkQ29tcG9zaXRpbmdNb2RlKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
R3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBj
b25zdAogewogICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAppbmRleCBhZTEzM2E5ODJmYjc5OGFmYmVkOGQzYzE2NGRmNWI4ZjUx
NDYyYjI5Li5jYWZjZGJiYTI5OWU3ODZhYzFkZTA3OTdlYmE4OTdiMjdlZjM3ODJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQzOCw2ICs0MzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEdyYXBoaWNz
TGF5ZXIqIGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3Ju
ZXIoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDEyNjYzMGMz
M2FjMTk1MTNhYzllOTAwOGRhMGE2ODA2ZWViYjk3MTMuLmZlM2M4ZGE1NTgzYzFjY2E3YTk3ZjQ5
MTFiMDFlM2U2MzQxYTEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtOTIsNiArOTIs
NyBAQCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIGluaXRp
YWw9ZmFsc2UKIAogIyBXb3JrcyBvbmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZm9yY2VDb21wb3Np
dGluZ01vZGUuCiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorY29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQogCiBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPWZh
bHNlCiB3ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29y
ZGluYXRvckNocm9taXVtLmNwcAppbmRleCA4MzBhNTMzZTZkZGFhYmMyZjNlYWNkMTdjMjA5NGUz
ZDNjMmJlMzliLi5iNDNhOTA2OGE4NTA1ZDc4ZGYwZjI1NzVmYzU5NWZhZDIwNzZjMTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdD
b29yZGluYXRvckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcApAQCAtMTExLDggKzEx
MSw5IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0
VXBkYXRlZChGcmFtZVZpZXcqKQogICAgIEFTU0VSVChtX3BhZ2UpOwogCiAgICAgLy8gQ29tcHV0
ZSB0aGUgcmVnaW9uIG9mIHRoZSBwYWdlIHRoYXQgd2UgY2FuJ3QgZG8gZmFzdCBzY3JvbGxpbmcg
Zm9yLiBUaGlzIGN1cnJlbnRseSBpbmNsdWRlcwotICAgIC8vIGFsbCBzY3JvbGxhYmxlIGFyZWFz
LCBzdWNoIGFzIHN1YmZyYW1lcywgb3ZlcmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcy4gV2UgbmVl
ZCB0byBkbyB0aGlzIGV2ZW4gaWYgdGhlCi0gICAgLy8gZnJhbWUgdmlldyB3aG9zZSBsYXlvdXQg
d2FzIHVwZGF0ZWQgaXMgbm90IHRoZSBtYWluIGZyYW1lLgorICAgIC8vIGFsbCBzY3JvbGxhYmxl
IGFyZWFzLCBzdWNoIGFzIHN1YmZyYW1lcywgb3ZlcmZsb3cgZGl2cyBhbmQgbGlzdCBib3hlcywg
d2hvc2UgY29tcG9zaXRlZAorICAgIC8vIHNjcm9sbGluZyBhcmUgbm90IGVuYWJsZWQuIFdlIG5l
ZWQgdG8gZG8gdGhpcyBldmVuIGlmIHRoZSBmcmFtZSB2aWV3IHdob3NlIGxheW91dCB3YXMgdXBk
YXRlZAorICAgIC8vIGlzIG5vdCB0aGUgbWFpbiBmcmFtZS4KICAgICBSZWdpb24gbm9uRmFzdFNj
cm9sbGFibGVSZWdpb24gPSBjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24obV9wYWdlLT5t
YWluRnJhbWUoKSwgSW50UG9pbnQoKSk7CiAgICAgc2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24o
bm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVF9UUkFDS0lO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKaW5kZXggNmYwMWYxYThhOGZkZTdmY2IyMWE1ZmViYTI4ZDYxZDRiYTExYWFkMC4uMTNk
Y2NlMDA3MDFmYWEzOTNjOGRkYmIxZDZjYjVhNTE0Zjk3YWU1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTExNzAsNiAr
MTE3MCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwo
KQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0
aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29y
ZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkKICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVu
ZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkKKyAgICAgICAgICAgIGlmIChzZXR0aW5n
cy0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5n
ZShmcmFtZVZpZXcsIG1fc2Nyb2xsTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAogICAgIG1fc2Nyb2xs
TGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoLXNjcm9sbFBvc2l0aW9uLngoKSwgLXNjcm9s
bFBvc2l0aW9uLnkoKSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlNDNiZjNiNzA1ZThmNTM3MmM4Y2MwODA4MTk1Yzc5
Y2NlODY5ODcuLjJhMTQxODExMDc3OWZlMzg1OGNhNjU3MmZiY2MzNjM5MDg5YzU5MmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgdG8gZW5hYmxlIGNvbXBvc2l0
ZWQgc2Nyb2xsaW5nIGZvciBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDk1MAorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgorCisgICAgICAgIFRlc3QgY2FzZSB0byBlbnN1cmUgaWZyYW1lcyBhcmUgbm90IGFkZGVk
IGludG8gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gd2hlbiBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQgYW5kIGNvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFt
ZXNFbmFibGVkLgorCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9z
aXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pZnJhbWVzL2lmcmFtZS1jb21wb3NpdGVkLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAx
My0wMS0wNyAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgogCiAgICAgICAgIEZp
eGluZyBtZW1vcnkgcmVhZCBhZnRlciBmcmVlIGluIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
YWNjZXNzRm9udApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9p
ZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNiZTVkZWNmZGIxMzJkMDcxZTc4YmY3MTc4NjkzZDdiYTkyYTU5NWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1j
b21wb3NpdGVkLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACisgCitQQVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2lmcmFtZS1jb21w
b3NpdGVkLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9p
ZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWM3ZDgwMTkzNzdh
ZjQzM2U1Y2E1YTFmNDlkNzhmMDBlNjJhN2IwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvaWZyYW1lcy9pZnJhbWUtY29tcG9zaXRlZC1zY3JvbGxpbmcuaHRtbApA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHls
ZT4KKyAgICBpZnJhbWUgeworICAgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAgIHdpZHRoOiAxNTBw
eDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0
cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0Q29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQodHJ1ZSk7CisgICAgfQor
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7CisgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLm5vbkZhc3RTY3JvbGxhYmxlUmVjdHMo
ZG9jdW1lbnQpLmxlbmd0aCA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICAgIH0KKyAgICB9CisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGlmcmFtZSBpZD0ic2Nyb2xsYWJsZS1pZnJhbWUiIHNy
Yz0icmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
MTAwcHgiPjwvaWZyYW1lPgorICA8aWZyYW1lIGlkPSJub24tc2Nyb2xsYWJsZS1pZnJhbWUiIHNy
Yz0icmVzb3VyY2VzL3N1YmZyYW1lLmh0bWwiIHN0eWxlPSJ3aWR0aDogMjAwMHB4OyBoZWlnaHQ6
IDIwMDBweCI+PC9pZnJhbWU+CisgIDxwcmUgaWQ9InJlc3VsdCI+PC9wcmU+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>