<?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>53474</bug_id>
          
          <creation_ts>2011-01-31 22:08:17 -0800</creation_ts>
          <short_desc>PluginDocuments don&apos;t create widgets for plugins on back/forward</short_desc>
          <delta_ts>2011-02-04 18:32:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>53549</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343031</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-31 22:08:17 -0800</bug_when>
    <thetext>Don&apos;t cause a relayout when resetting the page scale factor is restored</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343036</commentid>
    <comment_count>1</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-31 22:31:35 -0800</bug_when>
    <thetext>This fixes http://code.google.com/p/chromium/issues/detail?id=70046, which was caused by http://trac.webkit.org/changeset/75758.  That caused FrameView::layout to create the plugin objects later.  For full page plugins, PluginDocumentParser::appendBytes is then called before the plugin is created and so redirectDataToPlugin doesn&apos;t get to send the data to the plugin.  This may only impact Chromium because it doesn&apos;t have a back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343037</commentid>
    <comment_count>2</comment_count>
      <attachid>80718</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-31 22:32:01 -0800</bug_when>
    <thetext>Created attachment 80718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343039</commentid>
    <comment_count>3</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-31 22:33:50 -0800</bug_when>
    <thetext>here&apos;s a proposed patch.  There might be better ways of fixing this, I&apos;m not that familiar with the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343093</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 02:14:26 -0800</bug_when>
    <thetext>Attachment 80718 did not build on mac:
Build output: http://queues.webkit.org/results/7681695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343245</commentid>
    <comment_count>5</comment_count>
      <attachid>80718</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-01 09:03:46 -0800</bug_when>
    <thetext>Comment on attachment 80718
Patch

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

And this broke the mac build.

I&apos;m not r- so that hopefully someone more familiar with this area will look and determine if this is a good approach or not (but there are several things that should to be fixed if this is the right approach).

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

This shouldn&apos;t be here. Either there should be a test or the ChangeLog should explain why a test isn&apos;t possible or necessary.

&gt; Source/WebCore/ChangeLog:11
&gt; +        (WebCore::HistoryController::restoreScrollPositionAndViewState):

Ideally there are some short/small comments per function which explain the change being done.

&gt; Source/WebCore/page/Frame.cpp:999
&gt; +        if (needsLayout &amp;&amp; document-&gt;renderer())

&quot;needsLayout &amp;&amp;&quot; isn&apos;t needed here. It is checked for in the previous line.

&gt; Source/WebCore/page/Frame.h:161
&gt; +        void scalePage(float scale, const IntPoint&amp; origin, bool needsLayout = true);

bool needsLayout should be an enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343289</commentid>
    <comment_count>6</comment_count>
      <attachid>80718</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-01 10:02:24 -0800</bug_when>
    <thetext>Comment on attachment 80718
Patch

Why is it OK to not call setNeedsLayout in restoreScrollPositionAndViewState? What’s the guarantee that layout is OK? You’ll at least need a comment explaining why that’s true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343339</commentid>
    <comment_count>7</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-01 10:44:59 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 80718 [details])
&gt; Why is it OK to not call setNeedsLayout in restoreScrollPositionAndViewState? What’s the guarantee that layout is OK? You’ll at least need a comment explaining why that’s true.

Thanks for taking a look.  I was posting this patch to get feedback if it&apos;s the correct approach (I&apos;m not that familiar with this code).

The problem with calling setNeedsLayout is that it ended up causing a full-page plugin later than normal.  This happens because in the nested FrameView::layout() call that now occurs, this statement:

  if (!m_hasPendingPostLayoutTasks &amp;&amp; (needsLayout() || m_inSynchronousPostLayout)) {

now is true (because needsLayout() is true) and so m_hasPendingPostLayoutTasks is set to true.  When the stack unwinds to the original layout() call, the

  if (!m_hasPendingPostLayoutTasks) {

block now doesn&apos;t run, which includes the call to performPostLayoutTasks(), which is what creates the plugin through SubframeLoader::loadPlugin().

We then unwind the stack a little more and end up back in PluginDocumentParser::appendBytes.  It checks if m_embedElement-&gt;renderPart()-&gt;widget() is set, and if so, tells the frame loader client to redirectDataToPlugin() the data to it.  Now that the plugin isn&apos;t created, the data isn&apos;t set.

This problem doesn&apos;t repro with Safari, my guess is that because of the back/forth cache which Chromium doesn&apos;t use.  As such, full-page plugins in Chrome now don&apos;t get data when a user navigates back and forth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343394</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 11:51:25 -0800</bug_when>
    <thetext>jam asked me to look at this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343599</commentid>
    <comment_count>9</comment_count>
      <attachid>80839</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 15:38:49 -0800</bug_when>
    <thetext>Created attachment 80839
Works but might be wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343609</commentid>
    <comment_count>10</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-01 15:47:31 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=80839) [details]
&gt; Works but might be wrong

agreed this looks much nicer.

if this approach is used, then the other code to update widget on layout should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343617</commentid>
    <comment_count>11</comment_count>
      <attachid>80843</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 15:53:14 -0800</bug_when>
    <thetext>Created attachment 80843
Also works, might be better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343628</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 16:02:55 -0800</bug_when>
    <thetext>That boolean parameter was added in http://trac.webkit.org/changeset/25128 to delay instantiating plugins until after first layout so that they&apos;ll have some reasonable dimensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343643</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 16:17:18 -0800</bug_when>
    <thetext>Yep.  That patch also makes the test added in that patch fail:

--- /tmp/layout-test-results/plugins/netscape-plugin-setwindow-size-expected.txt	2011-02-01 16:16:32.000000000 -0800
+++ /tmp/layout-test-results/plugins/netscape-plugin-setwindow-size-actual.txt	2011-02-01 16:16:32.000000000 -0800
@@ -1,3 +1,3 @@
-CONSOLE MESSAGE: line 0: PLUGIN: NPP_SetWindow: 800 200
+CONSOLE MESSAGE: line 0: PLUGIN: NPP_SetWindow: 0 0
 
 This tests that a plug-in with a percentage width gets a correct NPP_SetWindow the first time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343701</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-01 17:17:52 -0800</bug_when>
    <thetext>I think there is may be another real issue here. When restoring the page we should not call the scale function if the scale is already correct. At some point someone changed the scale function to do work even if there is nothing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343705</commentid>
    <comment_count>15</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-01 17:26:26 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I think there is may be another real issue here. When restoring the page we should not call the scale function if the scale is already correct. At some point someone changed the scale function to do work even if there is nothing to do.

That&apos;s right, but note that this won&apos;t fix the issue if a user navigates from a page to a plugin where the page has a different page scale, since this code path will get hit.  So we still need to solve this bug.  Not doing the unnecessary work is a nice optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343727</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 17:56:33 -0800</bug_when>
    <thetext>This is an interesting bug.  The issue is that this change to the HistoryController causes use to call layout() from inside performPostLayoutTasks().  The code has logic to prevent overly nutty recursion by delaying the post-LayoutTasks using a timer.  Unfortunately, PluginDocument needs HTMLEmbedElement::updateWidget to be called synchronously so that the widget exists to redirect the bytes coming from the network.

It&apos;s slightly unclear to me how to fix this issue.  The approach in  attachment 80839 works, but that will trigger the same issue that http://trac.webkit.org/changeset/25128 fixed, namely that we&apos;ll create the widget before we know how big it is...

Maybe the cleanest solution is to provide a mechanism to ask FrameView to flush its pending post-LayoutTasks.  That way we can avoid the recursion trap and still have those events take place before PluginDocument returns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343732</commentid>
    <comment_count>17</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-01 18:01:14 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; This is an interesting bug.  The issue is that this change to the HistoryController causes use to call layout() from inside performPostLayoutTasks().  The code has logic to prevent overly nutty recursion by delaying the post-LayoutTasks using a timer.  Unfortunately, PluginDocument needs HTMLEmbedElement::updateWidget to be called synchronously so that the widget exists to redirect the bytes coming from the network.
&gt; 
&gt; It&apos;s slightly unclear to me how to fix this issue.  The approach in  attachment 80839 [details] works, but that will trigger the same issue that http://trac.webkit.org/changeset/25128 fixed, namely that we&apos;ll create the widget before we know how big it is...
&gt; 
&gt; Maybe the cleanest solution is to provide a mechanism to ask FrameView to flush its pending post-LayoutTasks.  That way we can avoid the recursion trap and still have those events take place before PluginDocument returns.

I wondered about the same things too, but wasn&apos;t sure what (if any) other post layout tasks do.  This can be done now by calling FrameView::postLayoutTimerFired() but that might not be the cleanest way :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343733</commentid>
    <comment_count>18</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-01 18:02:17 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; This is an interesting bug.  The issue is that this change to the HistoryController causes use to call layout() from inside performPostLayoutTasks().  The code has logic to prevent overly nutty recursion by delaying the post-LayoutTasks using a timer.  Unfortunately, PluginDocument needs HTMLEmbedElement::updateWidget to be called synchronously so that the widget exists to redirect the bytes coming from the network.
&gt; &gt; 
&gt; &gt; It&apos;s slightly unclear to me how to fix this issue.  The approach in  attachment 80839 [details] [details] works, but that will trigger the same issue that http://trac.webkit.org/changeset/25128 fixed, namely that we&apos;ll create the widget before we know how big it is...
&gt; &gt; 
&gt; &gt; Maybe the cleanest solution is to provide a mechanism to ask FrameView to flush its pending post-LayoutTasks.  That way we can avoid the recursion trap and still have those events take place before PluginDocument returns.
&gt; 
&gt; I wondered about the same things too, but wasn&apos;t sure what (if any) other post layout tasks do.  This can be done now by calling FrameView::postLayoutTimerFired() but that might not be the cleanest way :)

also, what about the first patch that I added, i.e. when scalePage is called, tell it not to do layout?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343748</commentid>
    <comment_count>19</comment_count>
      <attachid>80870</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 18:18:05 -0800</bug_when>
    <thetext>Created attachment 80870
Might actually be a reasonable approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343790</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 19:47:34 -0800</bug_when>
    <thetext>&gt; also, what about the first patch that I added, i.e. when scalePage is called, tell it not to do layout?

That doesn&apos;t seem right to me, but I&apos;m not an expert on layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343808</commentid>
    <comment_count>21</comment_count>
      <attachid>80881</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-01 20:44:56 -0800</bug_when>
    <thetext>Created attachment 80881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345184</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-03 17:09:02 -0800</bug_when>
    <thetext>So this patch makes it perform the post layout tests before they&apos;re scheduled to go.  Which seems error-prone.

The whole idea of having possibly async post layout tasks seems error prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345186</commentid>
    <comment_count>23</comment_count>
      <attachid>80881</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-03 17:10:20 -0800</bug_when>
    <thetext>Comment on attachment 80881
Patch

We talked about a possible way to make a test in person.  I think a test for this is more important than the code change if we can make one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345521</commentid>
    <comment_count>24</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-04 09:06:46 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 80881 [details])
&gt; We talked about a possible way to make a test in person.  I think a test for this is more important than the code change if we can make one.

guys, I&apos;m all for a test for this, and a proper solution of course.  I&apos;d just like to point out that this blocks Chrome&apos;s M10 release scheduled for 2/10 (the release, not when we make the build).  Perhaps we should put a temporary fix on the 648 branch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345563</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 09:55:57 -0800</bug_when>
    <thetext>&gt; guys, I&apos;m all for a test for this, and a proper solution of course.  I&apos;d just like to point out that this blocks Chrome&apos;s M10 release scheduled for 2/10 (the release, not when we make the build).  Perhaps we should put a temporary fix on the 648 branch?

I&apos;ll try another iteration today.  If we don&apos;t have this fixed by the end of the day, the above patch might be a reasonable candidate to land on the branch.  Generally speak, we prefer to land things on trunk first, and we also prefer writing better code than bending to schedule pressure.  Hopefully with some effort, we can satisfy all these desires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345635</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 11:27:28 -0800</bug_when>
    <thetext>Looking at the clients of updateLayout, it seems that very few of them care about whether updateWidget has been called.  We can discuss it more, but I think the general approach of optionally asking for the postLayoutTasks to be called synchronously makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345655</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-04 11:49:59 -0800</bug_when>
    <thetext>Beth recently worked on the post-layout-tasks timer:
https://bugs.webkit.org/show_bug.cgi?id=44828</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345675</commentid>
    <comment_count>28</comment_count>
      <attachid>80881</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-04 12:03:49 -0800</bug_when>
    <thetext>Comment on attachment 80881
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1824
&gt; +void FrameView::flushAnyPendingPostLayoutTasks()

Probably this method should ASSERT that we&apos;re not in a synchronous post layout tasks call, or performPostLayoutTasks should.  Currently I believe neither do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345680</commentid>
    <comment_count>29</comment_count>
      <attachid>80881</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 12:20:41 -0800</bug_when>
    <thetext>Comment on attachment 80881
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:1824
&gt;&gt; +void FrameView::flushAnyPendingPostLayoutTasks()
&gt; 
&gt; Probably this method should ASSERT that we&apos;re not in a synchronous post layout tasks call, or performPostLayoutTasks should.  Currently I believe neither do.

We could add the ASSERT here, but adding it to performPostLayoutTasks wouldn&apos;t work because performPostLayoutTasks is called immediately after setting that flag in layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345733</commentid>
    <comment_count>30</comment_count>
      <attachid>80881</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-04 13:20:32 -0800</bug_when>
    <thetext>Comment on attachment 80881
Patch

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

OK.  I think this is good as-is (with the extra comments), but we need a test to land.  I&apos;m happy to help write said test.

&gt; Source/WebCore/ChangeLog:17
&gt; +

I think you should mention here the other approaches you tried and why they didn&apos;t work.

&gt; Source/WebCore/ChangeLog:23
&gt; +        I struggled for a while to write a test for this patch.  I figure out

I think we have an idea as to how and should do it before landing this.

&gt; Source/WebCore/html/PluginDocument.cpp:124
&gt; +    frame-&gt;view()-&gt;flushAnyPendingPostLayoutTasks();

I think this is the right approach.  However, we should add a FIXME that this will go away when we fix plugins to load via the DOM (instead of our current renderning nonsense).

&gt; Source/WebCore/page/FrameView.h:257
&gt; +    void flushAnyPendingPostLayoutTasks();

You should consider adding a note that this is only to be used by PluginDocument and that it can be removed once we support loading display:none plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345832</commentid>
    <comment_count>31</comment_count>
      <attachid>81297</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 15:06:02 -0800</bug_when>
    <thetext>Created attachment 81297
test in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345855</commentid>
    <comment_count>32</comment_count>
      <attachid>81306</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 15:34:03 -0800</bug_when>
    <thetext>Created attachment 81306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345859</commentid>
    <comment_count>33</comment_count>
      <attachid>81306</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-04 15:34:48 -0800</bug_when>
    <thetext>Comment on attachment 81306
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345863</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-04 15:36:30 -0800</bug_when>
    <thetext>Attachment 81306 did not pass style-queue:

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

Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:203:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:203:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Tools/DumpRenderTree/TestNetscapePlugIn/main.cpp:204:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3 in 9 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>345887</commentid>
    <comment_count>35</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-02-04 16:19:49 -0800</bug_when>
    <thetext>thanks Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345903</commentid>
    <comment_count>36</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 16:29:53 -0800</bug_when>
    <thetext>Sorry it took so long.  This area of WebKit is very complex.  Over time its been modified by folks who didn&apos;t have complete understanding of how it works, which has lead to a lot of complexity.  In some regards, we&apos;ll also changing it without fully understanding the system, which is why we&apos;re trying to be cautious not to add more complexity than necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345922</commentid>
    <comment_count>37</comment_count>
      <attachid>81306</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-04 16:50:17 -0800</bug_when>
    <thetext>Comment on attachment 81306
Patch

Clearing flags on attachment: 81306

Committed r77706: &lt;http://trac.webkit.org/changeset/77706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345923</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-04 16:50:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345987</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-04 18:32:45 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/77706 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80718</attachid>
            <date>2011-01-31 22:32:01 -0800</date>
            <delta_ts>2011-02-01 15:38:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53474-20110131222906.patch</filename>
            <type>text/plain</type>
            <size>3062</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MjIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMzEgIEpvaG4gQWJk
LUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCBjYXVzZSBhIHJlbGF5b3V0IHdoZW4gcmVzZXR0
aW5nIHRoZSBwYWdlIHNjYWxlIGZhY3RvciBpcyByZXN0b3JlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0NzQKKworICAgICAgICBObyBuZXcgdGVz
dHMuIChPT1BTISkKKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9u
QW5kVmlld1N0YXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjpzY2FsZVBhZ2UpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKwogMjAxMS0w
MS0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzcxODMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNyAr
MTE5LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvcwogICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgaWYgKCF2aWV3
LT53YXNTY3JvbGxlZEJ5VXNlcigpKSB7CiAgICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3Np
dGlvbihtX2N1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKLSAgICAgICAgICAgIG1fZnJhbWUt
PnNjYWxlUGFnZShtX2N1cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRl
bS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAgICAgICBtX2ZyYW1lLT5zY2FsZVBhZ2UobV9jdXJy
ZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCksIG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCks
IGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShy
ZXZpc2lvbiA3NzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05ODcsNyArOTg3LDcgQEAgdm9pZCBGcmFtZTo6dXBkYXRlQ29udGVudHNTY2Fs
ZShmbG9hdCBzYwogfQogI2VuZGlmCiAKLXZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2Fs
ZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKK3ZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBz
Y2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbiwgYm9vbCBuZWVkc0xheW91dCkKIHsKICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQp
CkBAIC05OTUsMTAgKzk5NSwxMiBAQCB2b2lkIEZyYW1lOjpzY2FsZVBhZ2UoZmxvYXQgc2NhbGUs
IGNvbnN0CiAKICAgICBtX3BhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOwogCi0gICAgaWYgKGRvY3Vt
ZW50LT5yZW5kZXJlcigpKQotICAgICAgICBkb2N1bWVudC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNM
YXlvdXQodHJ1ZSk7CisgICAgaWYgKG5lZWRzTGF5b3V0KSB7CisgICAgICAgIGlmIChuZWVkc0xh
eW91dCAmJiBkb2N1bWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5yZW5k
ZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKIAotICAgIGRvY3VtZW50LT5yZWNhbGNTdHls
ZShOb2RlOjpGb3JjZSk7CisgICAgICAgIGRvY3VtZW50LT5yZWNhbGNTdHlsZShOb2RlOjpGb3Jj
ZSk7CisgICAgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHVwZGF0
ZUNvbnRlbnRzU2NhbGUoc2NhbGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNpb24gNzcx
ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1
OCw3ICsxNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IHRleHRab29t
RmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Wm9vbUZhY3RvcjsgfQogICAgICAgICB2b2lk
IHNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoZmxvYXQgcGFnZVpvb21GYWN0b3IsIGZsb2F0IHRl
eHRab29tRmFjdG9yKTsKIAotICAgICAgICB2b2lkIHNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29u
c3QgSW50UG9pbnQmIG9yaWdpbik7CisgICAgICAgIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxl
LCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIG5lZWRzTGF5b3V0ID0gdHJ1ZSk7CiAgICAg
ICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlRmFj
dG9yOyB9CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80839</attachid>
            <date>2011-02-01 15:38:49 -0800</date>
            <delta_ts>2011-02-01 15:53:11 -0800</delta_ts>
            <desc>Works but might be wrong</desc>
            <filename>bug-53474-20110201153847.patch</filename>
            <type>text/plain</type>
            <size>627</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA3NzI2
NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05NSw3ICs5NSw4IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURv
Y3VtZW4KIAogICAgIHN0YXRpY19jYXN0PFBsdWdpbkRvY3VtZW50Kj4oZG9jdW1lbnQoKSktPnNl
dFBsdWdpbk5vZGUobV9lbWJlZEVsZW1lbnQpOwogCi0gICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1i
ZWRFbGVtZW50LCBlYyk7ICAgIAorICAgIGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCwg
ZWMpOworICAgIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihtX2VtYmVkRWxl
bWVudCktPnVwZGF0ZVdpZGdldChmYWxzZSk7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJz
ZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyKiwgY29uc3QgY2hhciosIGludCwgYm9vbCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80843</attachid>
            <date>2011-02-01 15:53:14 -0800</date>
            <delta_ts>2011-02-01 16:17:39 -0800</delta_ts>
            <desc>Also works, might be better</desc>
            <filename>bug-53474-20110201155313.patch</filename>
            <type>text/plain</type>
            <size>544</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAkocmV2aXNpb24gNzcyNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBUcnVlIGluZGljYXRlcyB0aGF0IHRoaXMgY29kZSBwYXRoIHNob3VsZCBvbmx5IGNyZWF0ZSBu
b24tbmV0c2NhcGUgcGx1Z2lucyAobm8gY2x1ZSB3aHkpLgotICAgIHVwZGF0ZVdpZGdldCh0cnVl
KTsKKyAgICB1cGRhdGVXaWRnZXQoZmFsc2UpOwogfQogCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80870</attachid>
            <date>2011-02-01 18:18:05 -0800</date>
            <delta_ts>2011-02-01 20:44:53 -0800</delta_ts>
            <desc>Might actually be a reasonable approach</desc>
            <filename>bug-53474-20110201181804.patch</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA3NzI2
NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTE0LDYgKzExNSw3
IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKEQKICAgICAgICAgcmV0
dXJuOwogCiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisgICAgZnJhbWUtPnZpZXco
KS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CiAKICAgICBpZiAoUmVuZGVyUGFy
dCogcmVuZGVyZXIgPSBtX2VtYmVkRWxlbWVudC0+cmVuZGVyUGFydCgpKSB7CiAgICAgICAgIGlm
IChXaWRnZXQqIHdpZGdldCA9IHJlbmRlcmVyLT53aWRnZXQoKSkgewpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gNzcyNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MjAsNyArMTgyMCwxNSBAQCBib29s
IEZyYW1lVmlldzo6dXBkYXRlV2lkZ2V0cygpCiAgICAgCiAgICAgcmV0dXJuIG1fd2lkZ2V0VXBk
YXRlU2V0LT5pc0VtcHR5KCk7CiB9Ci0gICAgCisKK3ZvaWQgRnJhbWVWaWV3OjpmbHVzaEFueVBl
bmRpbmdQb3N0TGF5b3V0VGFza3MoKQoreworICAgIGlmIChtX2hhc1BlbmRpbmdQb3N0TGF5b3V0
VGFza3MpIHsKKyAgICAgICAgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7CisgICAgICAg
IHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKKyAgICB9Cit9CisKIHZvaWQgRnJhbWVWaWV3Ojpw
ZXJmb3JtUG9zdExheW91dFRhc2tzKCkKIHsKICAgICBtX2hhc1BlbmRpbmdQb3N0TGF5b3V0VGFz
a3MgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gNzcyNjYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTQsNiArMjU0LDggQEAgcHVibGljOgogICAgIC8vIE9uIGVhY2ggcmVwYWludCB0aGUgZGVsYXkg
aW5jcmVzZXMgYnkgdGhpcyBhbW91bnQKICAgICBzdGF0aWMgdm9pZCBzZXRSZXBhaW50VGhyb3R0
bGluZ0RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZyhkb3VibGUgcCk7
CiAKKyAgICB2b2lkIGZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOworCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6
ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVj
dCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNv
bnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80881</attachid>
            <date>2011-02-01 20:44:56 -0800</date>
            <delta_ts>2011-02-04 15:05:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53474-20110201204455.patch</filename>
            <type>text/plain</type>
            <size>4689</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MzU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDItMDEgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQbHVnaW5Eb2N1bWVudHMgZG9uJ3QgY3JlYXRlIHdpZGdldHMgZm9y
IHBsdWdpbnMgb24gYmFjay9mb3J3YXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzQ3NAorCisgICAgICAgIExvbmcgYWdvLCBQbHVnaW5Eb2N1bWVu
dCBhbHdheXMgY2F1c2VkIHRoZSBIVE1MRW1iZWRFbGVtZW50IHRvIGNyZWF0ZQorICAgICAgICBp
dHMgd2lkZ2V0IHN5bmNocm9ub3VzbHkgZHVyaW5nIGEgcG9zdC1sYXlvdXQgdGFzay4gIFJlY2Vu
dGx5LCBob3dldmVyLAorICAgICAgICBzb21lIGNoYW5nZXMgdG8gdGhlIEhpc3Ryb3lDb250cm9s
bGVyIGNhdXNlZCBsYXlvdXQgb24gYmFjay9mb3J3YXJkIHRvCisgICAgICAgIGJlY29tZSBzbGln
aHRseSBtb3JlIGNvbXBsaWNhdGVkIChhbmQgYWRkZWQgYW4gZXh0cmEgbGV2ZWwgb2YgcmVjdXJz
aW9uCisgICAgICAgIHRvIGxheW91dCkuICBUaGlzIGV4dHJhIGxldmVsIG9mIHJlY3Vyc2lvbiB0
cmlnZ2VyZWQgdGhlICJJJ3ZlIHJlY3Vyc2VkCisgICAgICAgIHRvbyBtYW55IHRpbWVzIiBjb25k
aXRpb24gaW4gdGhlIHBvc3QtbGF5b3V0IHRhc2sgcXVldWUsIGNhdXNpbmcgdGhlCisgICAgICAg
IEZyYW1lVmlldyB0byBydW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgdGFza3MgYXN5bmNocm9ub3Vz
bHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgYnJva2UgUGx1Z2luRG9jdW1lbnQgYmVj
YXVzZSBpdCBuZWVkcyBpdHMgdGhlCisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQncyB1cGRhdGVX
aWRnZXQgdGFzayB0byBydW4gc3luY2hyb25vdXNseS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgYSBtZWNoYW5pc20gZm9yICJraWNraW5nIG9mZiIgdGhlIHBlbmRpbmcgcG9zdC1sYXlvdXQK
KyAgICAgICAgdGFza3Mgc3luY2hyb25vdXNseSAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUg
dGltZXIgdG8gZmlyZSkuCisgICAgICAgIFBsdWdpbkRvY3VtZW50IHRoZW4gdXNlcyB0aGF0IGZh
Y2lsaXR5IHRvIGVuc3VyZSB0aGF0IHRoZQorICAgICAgICBIVE1MRW1iZWRFbGVtZW50J3MgdXBk
YXRlV2lkZ2V0IHRhc2sgaGFwcGVucy4KKworICAgICAgICBJIHN0cnVnZ2xlZCBmb3IgYSB3aGls
ZSB0byB3cml0ZSBhIHRlc3QgZm9yIHRoaXMgcGF0Y2guICBJIGZpZ3VyZSBvdXQKKyAgICAgICAg
aG93IHRvIGNyZWF0ZSBhIFBsdWdpbkRvY3VtZW50IHdpdGggdGhlIHRlc3QudGVzdG5ldHNjYXBl
IGZpbGUsIGJ1dCBJCisgICAgICAgIGNvdWxkbid0IGZpZ3VyZSBvdXQgaG93IHRvIHRlbGwgd2hl
dGhlciB0aGUgcGx1Z2luIGFjdHVhbGx5IGxvYWRlZCBvbgorICAgICAgICBiYWNrL2ZvcndhcmQh
ICBNb3N0IG9mIHRoZSBvdGhlciB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIHRlc3QgcGx1Z2luCisg
ICAgICAgIHBhc3MgYSBwYXJhbWV0ZXIgdG8gdGhlIHBsdWdpbiBpbnN0cnVjdGluZyBpdCB0byBk
byBzb21ldGhpbmcKKyAgICAgICAgb2JzZXJ2YWJsZSAoZS5nLiwgbG9nKS4gIEhvd2V2ZXIsIHRo
ZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHdheSB0bworICAgICAgICBwYXNzIGEgcGFyYW1ldGVy
IHRvIGEgcGx1Z2luIGluc2lkZSBhIFBsdWdpbkRvY3VtZW50LiAgVGhlIGV4aXN0aW5nCisgICAg
ICAgIFBsdWdpbkRvY3VtZW50IHRlc3RzIG9ubHkgY2hlY2sgZm9yIGNyYXNoZXMuCisKKyAgICAg
ICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRv
Y3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0
VGFza3MpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKIDIwMTEtMDItMDEgIEphbWVz
IFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFRvbnkgR2VudGlsY29yZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiA3NzI2NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgpAQCAtMTE1LDYgKzExNiwxMyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjphcHBlbmRC
eXRlcyhECiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKIAorICAgIC8vIEJlbG93
IHdlIGFzc3VtZSB0aGF0IHJlbmRlcmVyLT53aWRnZXQoKSB0byBoYXZlIGJlZW4gY3JlYXRlZCBi
eQorICAgIC8vIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpLiBIb3dldmVyLCBpbiBzb21lIGNh
c2VzLCB1cGRhdGVMYXlvdXQoKSB3aWxsIAorICAgIC8vIHJlY3Vyc2UgdG9vIG1hbnkgdGltZXMg
YW5kIGRlbGF5IGl0cyBwb3N0LWxheW91dCB0YXNrcyAoc3VjaCBhcyBjcmVhdGluZworICAgIC8v
IHRoZSB3aWRnZXQpLiBIZXJlIHdlIGtpY2sgb2ZmIHRoZSBwZW5kaW5nIHBvc3QtbGF5b3V0IHRh
c2tzIHNvIHRoYXQgd2UKKyAgICAvLyBjYW4gc3luY2hyb25vdXNseSByZWRpcmVjdCBkYXRhIHRv
IHRoZSBwbHVnaW4uCisgICAgZnJhbWUtPnZpZXcoKS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91
dFRhc2tzKCk7CisKICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBtX2VtYmVkRWxlbWVu
dC0+cmVuZGVyUGFydCgpKSB7CiAgICAgICAgIGlmIChXaWRnZXQqIHdpZGdldCA9IHJlbmRlcmVy
LT53aWRnZXQoKSkgewogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+cmVk
aXJlY3REYXRhVG9QbHVnaW4od2lkZ2V0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDc3MjY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODIwLDcgKzE4MjAsMTYgQEAgYm9vbCBGcmFtZVZpZXc6OnVw
ZGF0ZVdpZGdldHMoKQogICAgIAogICAgIHJldHVybiBtX3dpZGdldFVwZGF0ZVNldC0+aXNFbXB0
eSgpOwogfQotICAgIAorCit2b2lkIEZyYW1lVmlldzo6Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91
dFRhc2tzKCkKK3sKKyAgICBpZiAoIW1faGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7CisgICAgcGVy
Zm9ybVBvc3RMYXlvdXRUYXNrcygpOworfQorCiB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RM
YXlvdXRUYXNrcygpCiB7CiAgICAgbV9oYXNQZW5kaW5nUG9zdExheW91dFRhc2tzID0gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDc3MjY2KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDYgKzI1NCw4
IEBAIHB1YmxpYzoKICAgICAvLyBPbiBlYWNoIHJlcGFpbnQgdGhlIGRlbGF5IGluY3Jlc2VzIGJ5
IHRoaXMgYW1vdW50CiAgICAgc3RhdGljIHZvaWQgc2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJl
ZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcoZG91YmxlIHApOwogCisgICAgdm9p
ZCBmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKKwogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81297</attachid>
            <date>2011-02-04 15:06:02 -0800</date>
            <delta_ts>2011-02-04 15:33:59 -0800</delta_ts>
            <desc>test in progress</desc>
            <filename>bug-53474-20110204150601.patch</filename>
            <type>text/plain</type>
            <size>6792</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NjM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDItMDQgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQbHVnaW5Eb2N1bWVudHMgZG9uJ3QgY3JlYXRlIHdpZGdldHMgZm9y
IHBsdWdpbnMgb24gYmFjay9mb3J3YXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzQ3NAorCisgICAgICAgIExvbmcgYWdvLCBQbHVnaW5Eb2N1bWVu
dCBhbHdheXMgY2F1c2VkIHRoZSBIVE1MRW1iZWRFbGVtZW50IHRvIGNyZWF0ZQorICAgICAgICBp
dHMgd2lkZ2V0IHN5bmNocm9ub3VzbHkgZHVyaW5nIGEgcG9zdC1sYXlvdXQgdGFzay4gIFJlY2Vu
dGx5LCBob3dldmVyLAorICAgICAgICBzb21lIGNoYW5nZXMgdG8gdGhlIEhpc3Ryb3lDb250cm9s
bGVyIGNhdXNlZCBsYXlvdXQgb24gYmFjay9mb3J3YXJkIHRvCisgICAgICAgIGJlY29tZSBzbGln
aHRseSBtb3JlIGNvbXBsaWNhdGVkIChhbmQgYWRkZWQgYW4gZXh0cmEgbGV2ZWwgb2YgcmVjdXJz
aW9uCisgICAgICAgIHRvIGxheW91dCkuICBUaGlzIGV4dHJhIGxldmVsIG9mIHJlY3Vyc2lvbiB0
cmlnZ2VyZWQgdGhlICJJJ3ZlIHJlY3Vyc2VkCisgICAgICAgIHRvbyBtYW55IHRpbWVzIiBjb25k
aXRpb24gaW4gdGhlIHBvc3QtbGF5b3V0IHRhc2sgcXVldWUsIGNhdXNpbmcgdGhlCisgICAgICAg
IEZyYW1lVmlldyB0byBydW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgdGFza3MgYXN5bmNocm9ub3Vz
bHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgYnJva2UgUGx1Z2luRG9jdW1lbnQgYmVj
YXVzZSBpdCBuZWVkcyBpdHMgdGhlCisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQncyB1cGRhdGVX
aWRnZXQgdGFzayB0byBydW4gc3luY2hyb25vdXNseS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgYSBtZWNoYW5pc20gZm9yICJraWNraW5nIG9mZiIgdGhlIHBlbmRpbmcgcG9zdC1sYXlvdXQK
KyAgICAgICAgdGFza3Mgc3luY2hyb25vdXNseSAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUg
dGltZXIgdG8gZmlyZSkuCisgICAgICAgIFBsdWdpbkRvY3VtZW50IHRoZW4gdXNlcyB0aGF0IGZh
Y2lsaXR5IHRvIGVuc3VyZSB0aGF0IHRoZQorICAgICAgICBIVE1MRW1iZWRFbGVtZW50J3MgdXBk
YXRlV2lkZ2V0IHRhc2sgaGFwcGVucy4KKworICAgICAgICBJIHN0cnVnZ2xlZCBmb3IgYSB3aGls
ZSB0byB3cml0ZSBhIHRlc3QgZm9yIHRoaXMgcGF0Y2guICBJIGZpZ3VyZSBvdXQKKyAgICAgICAg
aG93IHRvIGNyZWF0ZSBhIFBsdWdpbkRvY3VtZW50IHdpdGggdGhlIHRlc3QudGVzdG5ldHNjYXBl
IGZpbGUsIGJ1dCBJCisgICAgICAgIGNvdWxkbid0IGZpZ3VyZSBvdXQgaG93IHRvIHRlbGwgd2hl
dGhlciB0aGUgcGx1Z2luIGFjdHVhbGx5IGxvYWRlZCBvbgorICAgICAgICBiYWNrL2ZvcndhcmQh
ICBNb3N0IG9mIHRoZSBvdGhlciB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIHRlc3QgcGx1Z2luCisg
ICAgICAgIHBhc3MgYSBwYXJhbWV0ZXIgdG8gdGhlIHBsdWdpbiBpbnN0cnVjdGluZyBpdCB0byBk
byBzb21ldGhpbmcKKyAgICAgICAgb2JzZXJ2YWJsZSAoZS5nLiwgbG9nKS4gIEhvd2V2ZXIsIHRo
ZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHdheSB0bworICAgICAgICBwYXNzIGEgcGFyYW1ldGVy
IHRvIGEgcGx1Z2luIGluc2lkZSBhIFBsdWdpbkRvY3VtZW50LiAgVGhlIGV4aXN0aW5nCisgICAg
ICAgIFBsdWdpbkRvY3VtZW50IHRlc3RzIG9ubHkgY2hlY2sgZm9yIGNyYXNoZXMuCisKKyAgICAg
ICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRv
Y3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0
VGFza3MpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKIDIwMTEtMDItMDQgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiA3NzYzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgpAQCAtMTE1LDYgKzExNiwxMyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjphcHBlbmRC
eXRlcyhECiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKIAorICAgIC8vIEJlbG93
IHdlIGFzc3VtZSB0aGF0IHJlbmRlcmVyLT53aWRnZXQoKSB0byBoYXZlIGJlZW4gY3JlYXRlZCBi
eQorICAgIC8vIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpLiBIb3dldmVyLCBpbiBzb21lIGNh
c2VzLCB1cGRhdGVMYXlvdXQoKSB3aWxsIAorICAgIC8vIHJlY3Vyc2UgdG9vIG1hbnkgdGltZXMg
YW5kIGRlbGF5IGl0cyBwb3N0LWxheW91dCB0YXNrcyAoc3VjaCBhcyBjcmVhdGluZworICAgIC8v
IHRoZSB3aWRnZXQpLiBIZXJlIHdlIGtpY2sgb2ZmIHRoZSBwZW5kaW5nIHBvc3QtbGF5b3V0IHRh
c2tzIHNvIHRoYXQgd2UKKyAgICAvLyBjYW4gc3luY2hyb25vdXNseSByZWRpcmVjdCBkYXRhIHRv
IHRoZSBwbHVnaW4uCisgICAgZnJhbWUtPnZpZXcoKS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91
dFRhc2tzKCk7CisKICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBtX2VtYmVkRWxlbWVu
dC0+cmVuZGVyUGFydCgpKSB7CiAgICAgICAgIGlmIChXaWRnZXQqIHdpZGdldCA9IHJlbmRlcmVy
LT53aWRnZXQoKSkgewogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+cmVk
aXJlY3REYXRhVG9QbHVnaW4od2lkZ2V0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDc3NjM1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODM1LDcgKzE4MzUsMTYgQEAgYm9vbCBGcmFtZVZpZXc6OnVw
ZGF0ZVdpZGdldHMoKQogICAgIAogICAgIHJldHVybiBtX3dpZGdldFVwZGF0ZVNldC0+aXNFbXB0
eSgpOwogfQotICAgIAorCit2b2lkIEZyYW1lVmlldzo6Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91
dFRhc2tzKCkKK3sKKyAgICBpZiAoIW1faGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7CisgICAgcGVy
Zm9ybVBvc3RMYXlvdXRUYXNrcygpOworfQorCiB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RM
YXlvdXRUYXNrcygpCiB7CiAgICAgbV9oYXNQZW5kaW5nUG9zdExheW91dFRhc2tzID0gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDc3NjM1KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjU4LDYgKzI1OCw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSW50UG9pbnQgY3VycmVudE1vdXNlUG9zaXRpb24o
KSBjb25zdDsKIAorICAgIHZvaWQgZmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CisK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xv
d1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCShyZXZpc2lvbiA3NzYzNSkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw5IEBAIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBl
IHBsdWdpblR5cGUsIE4KICAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAic3Jj
IikgPT0gMCAmJgogICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGFyZ3ZbaV0sICJkYXRhOmFw
cGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUscmV0dXJuZXJyb3Jmcm9tbmV3c3RyZWFt
IikgPT0gMCkKICAgICAgICAgICAgIG9iai0+cmV0dXJuRXJyb3JGcm9tTmV3U3RyZWFtID0gVFJV
RTsKKyAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAic3JjIikgPT0gMCAmJgor
ICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGFyZ3ZbaV0sICJkYXRhOmFwcGxpY2F0aW9uL3gt
d2Via2l0LXRlc3QtbmV0c2NhcGUsYWxlcnQ0MiIpID09IDApCisgICAgICAgICAgICBleGVjdXRl
U2NyaXB0KG9iaiwgImFsZXJ0KDQyKSIpOwogICAgICAgICBlbHNlIGlmIChzdHJjYXNlY21wKGFy
Z25baV0sICJvblNldFdpbmRvdyIpID09IDAgJiYgIW9iai0+b25TZXRXaW5kb3cpCiAgICAgICAg
ICAgICBvYmotPm9uU2V0V2luZG93ID0gc3RyZHVwKGFyZ3ZbaV0pOwogICAgICAgICBlbHNlIGlm
IChzdHJjYXNlY21wKGFyZ25baV0sICJvbk5ldyIpID09IDAgJiYgIW9uTmV3U2NyaXB0KQpJbmRl
eDogTGF5b3V0VGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtYmFjay1mb3J3YXJkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtYmFjay1m
b3J3YXJkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1k
b2N1bWVudC1iYWNrLWZvcndhcmQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAor
PGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9CisKK3N0YXRlID0gImluaXRpYWwiOworCitmdW5jdGlv
biBsb2FkZWQoKSB7CisgICAgYWxlcnQoc3RhdGUpOworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAg
ICBjYXNlICJpbml0aWFsIjoKKyAgICAgICAgc3RhdGUgPSAibG9hZGluZy1wbHVnaW4iOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0uc3JjID0gImRh
dGE6YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxhbGVydDQyIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSAibG9hZGluZy1wbHVnaW4iOgorICAgICAgICBzdGF0ZSA9ICJtb3Zp
bmctYmFja3dhcmQiOworICAgICAgICBoaXN0b3J5LmJhY2soKTsKKyAgICAgICAgc2V0VGltZW91
dChsb2FkZWQsIDApOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJtb3ZpbmctYmFja3dhcmQi
OgorICAgICAgICBzdGF0ZSA9ICJtb3ZpbmctZm9yd2FyZCI7CisgICAgICAgIGhpc3RvcnkuZm9y
d2FyZCgpOworICAgICAgICBzZXRUaW1lb3V0KGxvYWRlZCwgMCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgIm1vdmluZy1mb3J3YXJkIjoKKyAgICAgICAgc3RhdGUgPSAiZG9uZSI7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYWxlcnQoJ0ZBSUwnKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCisvLyBzZXRUaW1lb3V0KGxvYWRlZCwgMCk7Cis8L3NjcmlwdD4KKzxpZnJhbWUgb25s
b2FkPSJsb2FkZWQoKSIgc3JjPSJkYXRhOnRleHQvaHRtbCxXYWl0aW5nLi4uIj48L2lmcmFtZT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81306</attachid>
            <date>2011-02-04 15:34:03 -0800</date>
            <delta_ts>2011-02-04 16:50:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53474-20110204153401.patch</filename>
            <type>text/plain</type>
            <size>8304</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3Njg0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDItMDQgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQbHVnaW5Eb2N1bWVudHMgZG9uJ3QgY3JlYXRlIHdpZGdldHMgZm9y
IHBsdWdpbnMgb24gYmFjay9mb3J3YXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzQ3NAorCisgICAgICAgIExvbmcgYWdvLCBQbHVnaW5Eb2N1bWVu
dCBhbHdheXMgY2F1c2VkIHRoZSBIVE1MRW1iZWRFbGVtZW50IHRvIGNyZWF0ZQorICAgICAgICBp
dHMgd2lkZ2V0IHN5bmNocm9ub3VzbHkgZHVyaW5nIGEgcG9zdC1sYXlvdXQgdGFzay4gIFJlY2Vu
dGx5LCBob3dldmVyLAorICAgICAgICBzb21lIGNoYW5nZXMgdG8gdGhlIEhpc3Ryb3lDb250cm9s
bGVyIGNhdXNlZCBsYXlvdXQgb24gYmFjay9mb3J3YXJkIHRvCisgICAgICAgIGJlY29tZSBzbGln
aHRseSBtb3JlIGNvbXBsaWNhdGVkIChhbmQgYWRkZWQgYW4gZXh0cmEgbGV2ZWwgb2YgcmVjdXJz
aW9uCisgICAgICAgIHRvIGxheW91dCkuICBUaGlzIGV4dHJhIGxldmVsIG9mIHJlY3Vyc2lvbiB0
cmlnZ2VyZWQgdGhlICJJJ3ZlIHJlY3Vyc2VkCisgICAgICAgIHRvbyBtYW55IHRpbWVzIiBjb25k
aXRpb24gaW4gdGhlIHBvc3QtbGF5b3V0IHRhc2sgcXVldWUsIGNhdXNpbmcgdGhlCisgICAgICAg
IEZyYW1lVmlldyB0byBydW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgdGFza3MgYXN5bmNocm9ub3Vz
bHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgYnJva2UgUGx1Z2luRG9jdW1lbnQgYmVj
YXVzZSBpdCBuZWVkcyBpdHMgdGhlCisgICAgICAgIEhUTUxFbWJlZEVsZW1lbnQncyB1cGRhdGVX
aWRnZXQgdGFzayB0byBydW4gc3luY2hyb25vdXNseS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgYSBtZWNoYW5pc20gZm9yICJraWNraW5nIG9mZiIgdGhlIHBlbmRpbmcgcG9zdC1sYXlvdXQK
KyAgICAgICAgdGFza3Mgc3luY2hyb25vdXNseSAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUg
dGltZXIgdG8gZmlyZSkuCisgICAgICAgIFBsdWdpbkRvY3VtZW50IHRoZW4gdXNlcyB0aGF0IGZh
Y2lsaXR5IHRvIGVuc3VyZSB0aGF0IHRoZQorICAgICAgICBIVE1MRW1iZWRFbGVtZW50J3MgdXBk
YXRlV2lkZ2V0IHRhc2sgaGFwcGVucy4KKworICAgICAgICBUZXN0OiBwbHVnaW5zL3BsdWdpbi1k
b2N1bWVudC1iYWNrLWZvcndhcmQuaHRtbAorCisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0
ZXMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAyLTA0ICBNYXJ0aW4gR2FscGluICA8bWFydGluQDY2bGFw
cy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkocmV2aXNpb24gNzc2MzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgog
I2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTExNSw2ICsxMTYsMTMgQEAgdm9pZCBQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRAogCiAgICAgZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0KCk7CiAKKyAgICAvLyBCZWxvdyB3ZSBhc3N1bWUgdGhhdCByZW5kZXJlci0+d2lkZ2V0
KCkgdG8gaGF2ZSBiZWVuIGNyZWF0ZWQgYnkKKyAgICAvLyBkb2N1bWVudCgpLT51cGRhdGVMYXlv
dXQoKS4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgdXBkYXRlTGF5b3V0KCkgd2lsbCAKKyAgICAv
LyByZWN1cnNlIHRvbyBtYW55IHRpbWVzIGFuZCBkZWxheSBpdHMgcG9zdC1sYXlvdXQgdGFza3Mg
KHN1Y2ggYXMgY3JlYXRpbmcKKyAgICAvLyB0aGUgd2lkZ2V0KS4gSGVyZSB3ZSBraWNrIG9mZiB0
aGUgcGVuZGluZyBwb3N0LWxheW91dCB0YXNrcyBzbyB0aGF0IHdlCisgICAgLy8gY2FuIHN5bmNo
cm9ub3VzbHkgcmVkaXJlY3QgZGF0YSB0byB0aGUgcGx1Z2luLgorICAgIGZyYW1lLT52aWV3KCkt
PmZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOworCiAgICAgaWYgKFJlbmRlclBhcnQq
IHJlbmRlcmVyID0gbV9lbWJlZEVsZW1lbnQtPnJlbmRlclBhcnQoKSkgewogICAgICAgICBpZiAo
V2lkZ2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPnJlZGlyZWN0RGF0YVRvUGx1Z2luKHdpZGdldCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA3NzYzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgzNSw3ICsxODM1
LDE2IEBAIGJvb2wgRnJhbWVWaWV3Ojp1cGRhdGVXaWRnZXRzKCkKICAgICAKICAgICByZXR1cm4g
bV93aWRnZXRVcGRhdGVTZXQtPmlzRW1wdHkoKTsKIH0KLSAgICAKKwordm9pZCBGcmFtZVZpZXc6
OmZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpCit7CisgICAgaWYgKCFtX2hhc1BlbmRp
bmdQb3N0TGF5b3V0VGFza3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcG9zdExheW91dFRh
c2tzVGltZXIuc3RvcCgpOworICAgIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKK30KKwogdm9p
ZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogewogICAgIG1faGFzUGVuZGlu
Z1Bvc3RMYXlvdXRUYXNrcyA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShy
ZXZpc2lvbiA3NzYzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEludFBv
aW50IGN1cnJlbnRNb3VzZVBvc2l0aW9uKCkgY29uc3Q7CiAKKyAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgbWV0aG9kIG9uY2UgcGx1Z2luIGxvYWRpbmcgaXMgZGVjb3VwbGVkIGZyb20gbGF5b3V0
LgorICAgIHZvaWQgZmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29u
c3QgSW50UmVjdCYgdXBkYXRlUmVjdCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzY4NCkKKysrIFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAyLTA0ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUGx1Z2luRG9jdW1lbnRzIGRvbid0IGNyZWF0ZSB3aWRnZXRzIGZvciBw
bHVnaW5zIG9uIGJhY2svZm9yd2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTM0NzQKKworICAgICAgICBUZWFjaCB0aGUgdGVzdCBwbHVnaW4gaG93
IHRvIGNhbGwgYWxlcnQgb24gbG9hZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorCiAyMDExLTAyLTA0
ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB0ZXN0IGNh
c2UgZm9yIGVuY29kZS9kZWNvZGUgb2YgRm9ybURhdGEvRm9ybURhdGFFbGVtZW50CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCShy
ZXZpc2lvbiA3NzYzNSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw5IEBAIE5QRXJyb3IgTlBQ
X05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNt
cChhcmduW2ldLCAic3JjIikgPT0gMCAmJgogICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGFy
Z3ZbaV0sICJkYXRhOmFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUscmV0dXJuZXJy
b3Jmcm9tbmV3c3RyZWFtIikgPT0gMCkKICAgICAgICAgICAgIG9iai0+cmV0dXJuRXJyb3JGcm9t
TmV3U3RyZWFtID0gVFJVRTsKKyAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAi
c3JjIikgPT0gMCAmJgorICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGFyZ3ZbaV0sICJkYXRh
OmFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUsYWxlcnR3aGVubG9hZGVkIikgPT0g
MCkKKyAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCAiYWxlcnQoJ1BsdWdpbiBMb2FkZWQh
JykiKTsKICAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmduW2ldLCAib25TZXRXaW5kb3ci
KSA9PSAwICYmICFvYmotPm9uU2V0V2luZG93KQogICAgICAgICAgICAgb2JqLT5vblNldFdpbmRv
dyA9IHN0cmR1cChhcmd2W2ldKTsKICAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmduW2ld
LCAib25OZXciKSA9PSAwICYmICFvbk5ld1NjcmlwdCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3Njg0
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDItMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVnaW5Eb2N1bWVudHMg
ZG9uJ3QgY3JlYXRlIHdpZGdldHMgZm9yIHBsdWdpbnMgb24gYmFjay9mb3J3YXJkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzQ3NAorCisgICAgICAg
IFRlc3QgdGhhdCBwbHVnaW4gbG9hZHMgd2hlbiBpbiBhIHBsdWdpbiBkb2N1bWVudCBvbiBiYWNr
LWZvcndhcmQuCisKKyAgICAgICAgKiBwbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1iYWNrLWZvcndh
cmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3BsdWdpbi1kb2N1bWVu
dC1iYWNrLWZvcndhcmQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMDQgIERpbWl0cmkgR2xhemtv
diAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1hcmtlZCB0
ZXN0LCBhZGRlZCBpbiByNzc2ODAgYXMgZmFpbGluZyBkdWUgdG8gbGlnaHR0cGQuCkluZGV4OiBM
YXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1iYWNrLWZvcndhcmQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWJh
Y2stZm9yd2FyZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVn
aW5zL3BsdWdpbi1kb2N1bWVudC1iYWNrLWZvcndhcmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMgQEAKK0FMRVJUOiBQbHVnaW4gTG9hZGVkIQorQUxFUlQ6IFBsdWdpbiBM
b2FkZWQhCisKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWJhY2st
Zm9yd2FyZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2luLWRv
Y3VtZW50LWJhY2stZm9yd2FyZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1
Z2lucy9wbHVnaW4tZG9jdW1lbnQtYmFjay1mb3J3YXJkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDQgQEAKKzxodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworfQorCitzdGF0ZSA9ICJpbml0aWFsIjsKKwor
ZnVuY3Rpb24gbmV4dCgpIHsKKyAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgY2FzZSAiaW5pdGlh
bCI6CisgICAgICAgIHN0YXRlID0gImxvYWRpbmctcGx1Z2luIjsKKyAgICAgICAgdmFyIGZyYW1l
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdCisgICAgICAgIGZy
YW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBuZXh0LCBmYWxzZSk7CisgICAgICAgIGZyYW1l
LnNyYyA9ICJkYXRhOmFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUsYWxlcnR3aGVu
bG9hZGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAibG9hZGluZy1wbHVnaW4iOgorICAg
ICAgICBzdGF0ZSA9ICJtb3ZpbmctYmFja3dhcmQiOworICAgICAgICBoaXN0b3J5LmJhY2soKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAibW92aW5nLWJhY2t3YXJkIjoKKyAgICAgICAgc3Rh
dGUgPSAibW92aW5nLWZvcndhcmQiOworICAgICAgICBoaXN0b3J5LmZvcndhcmQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSAibW92aW5nLWZvcndhcmQiOgorICAgICAgICBzdGF0ZSA9ICJk
b25lIjsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBhbGVydCgnRkFJTCcpOworICAgICAgICBi
cmVhazsKKyAgICB9Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAvLyBX
ZSBuZWVkIHRvIHdhaXQgZm9yIGFmdGVyIHRoZSBsb2FkIGV2ZW50IHNvIHRoYXQgd2UgZ2V0IGEg
bmV3IGhpc3RvcnkKKyAgICAvLyBlbnRyeSB3aGVuIG5hdmlnYXRpbmcgdGhlIGZyYW1lLgorICAg
IHNldFRpbWVvdXQobmV4dCwgMCk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgc3JjPSJkYXRhOnRl
eHQvaHRtbCxXYWl0aW5nLi4uIj48L2lmcmFtZT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>