<?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>36128</bug_id>
          
          <creation_ts>2010-03-15 12:41:31 -0700</creation_ts>
          <short_desc>[Gtk] nameFromChildren is obsolete</short_desc>
          <delta_ts>2010-06-23 20:18:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25531</blocked>
    
    <blocked>30896</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mario</cc>
    
    <cc>walker.willie</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>199750</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-15 12:41:31 -0700</bug_when>
    <thetext>Given an HTML element which contained text, such as:

  &lt;label for=&quot;foo&quot;&gt;My &lt;u&gt;Very&lt;/u&gt; Nifty&lt;br /&gt;Label&lt;/label&gt;
  
WebKitGtk *used* to expose the following accessible hierarchy to ATs:

  -&gt; ATK_ROLE_LABEL (no name, no text)
     -&gt; ATK_ROLE_TEXT (name, text == My)
     -&gt; ATK_ROLE_TEXT (name, text == Very)
     -&gt; ATK_ROLE_TEXT (name, text == Nifty)
     -&gt; ATK_ROLE_TEXT (name, text == Label)

As a result, it was necessary to piece together an accessible name for certain objects. nameFromChildren did this.

We have since flattened/collapsed the accessible hierarchy w.r.t. text objects. In addition, objects do not automatically derive their names from their accessible text. So the above is now exposed to ATs as:

  -&gt; ATK_ROLE_LABEL (no name, text = My Very Nifty Label)
  
These changes make WebKitGtk+ much more consistent with how other Gtk+ apps behave. They also render nameFromChildren obsolete. It should be removed; callers should instead look to the AtkText interface implemented by the objects in question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199758</commentid>
    <comment_count>1</comment_count>
      <attachid>50725</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-15 12:52:26 -0700</bug_when>
    <thetext>Created attachment 50725
proposed fix - no test (yet)

This patch fixes the problem and causes labels (and cell headers) to once again correctly report their name/description.

I will attach the test separately. The reason being that something* is preventing accessible text from being exposed with layout tests (or something that I&apos;m doing in my layout test).

*I&apos;m still digging, but the difference seems to be in TextIterator.cpp: plainTextToMallocAllocatedBuffer works as expected during actual use (i.e. by a user of AT accessing content). With my layout test, it returns NULL. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199764</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-15 12:58:37 -0700</bug_when>
    <thetext>Attachment 50725 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:146:  webkit_accessible_text_get_text is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199768</commentid>
    <comment_count>3</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-15 13:00:36 -0700</bug_when>
    <thetext>The reported style failure is not the result of my creating a new method with underscores; I merely added a declaration of an existing method so that other methods could call it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199771</commentid>
    <comment_count>4</comment_count>
      <attachid>50727</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-15 13:02:15 -0700</bug_when>
    <thetext>Created attachment 50727
new layout test which should work, but doesn&apos;t

This new layout test should work, but doesn&apos;t. Instead of &apos;Full Name:&apos;, the name of the entry is &apos;&apos;. This seems to be because plainTextToMallocAllocatedBuffer returns NULL, but only during the running of the layout test. If I examine the same content using Accerciser and GtkLauncher, the entry has the expected name.

I&apos;ll keep looking, but if anyone has suggestions/ideas, I&apos;d love to hear them. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199937</commentid>
    <comment_count>5</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-15 17:50:23 -0700</bug_when>
    <thetext>Here&apos;s what appears to be going on with my layout test:

webkit_accessible_text_get_text tries to get the text for the label via AccessibilityRenderObject::textUnderElement().

AccessibilityRenderObject::textUnderElement() returns plainText(rangeOfContents(node).get()).  When using GtkLauncher, the String returned contains &apos;Full Name:&apos; as expected; but when the very same content is run in my layout test, the returned String is empty.

plainText() is returning an empty String because its call to plainTextToMallocAllocatedBuffer() returns NULL because bufferLength == 0.

bufferLength is based on the length of the TextIterator. This length seems to incremented in emitText(). emitText() is not getting called in the layout test because TextIterator::handleTextNode() is returning at this point:

    if (!renderer-&gt;firstTextBox() &amp;&amp; str.length() &gt; 0) {
        m_lastTextNodeEndedWithCollapsedSpace = true; // entire block is collapsed space
        return true;
    }

So.... Given the same, simple HTML content, why would a RenderText object fail to have a firstTextBox when run as a layout test, but behave as expected otherwise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203916</commentid>
    <comment_count>6</comment_count>
      <attachid>50725</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-25 01:45:20 -0700</bug_when>
    <thetext>Comment on attachment 50725
proposed fix - no test (yet)

Please re-attach with the functioning test and the change in one patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204021</commentid>
    <comment_count>7</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-25 06:50:27 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 50725 [details])
&gt; Please re-attach with the functioning test and the change in one patch.

Understood. However:

1. The fix (patch 1) is needed and actually works in terms of fixing the bug so that assistive technologies can provide better access to WebKitGtk content.

2. I think there is some other change (i.e. a not-yet-figured-out patch 3) that is preventing the test (patch 2) from working. I have no idea what that change is. I could use some help in figuring that out and have asked both in this bug and in IRC.

So, what this boils down to seems to be this: My failure to understand some issue in DRT means that my fix (which I&apos;ve verified to work and which users who are blind need) cannot be accepted. It would be awesome if someone could help with the DRT issue -- or if the fix could be accepted and a different bug opened for the test and DRT issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223868</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-05-11 05:00:47 -0700</bug_when>
    <thetext>After some investigation I found that this patch would solve the issue, although I&apos;m not sure that&apos;s the right way to go:

diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp
index 071bf5d..15e52ee 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -1007,7 +1007,16 @@ String AccessibilityRenderObject::textUnderElement() const
             // catch stale WebCoreAXObject (see &lt;rdar://problem/3960196&gt;)
             if (frame-&gt;document() != node-&gt;document())
                 return String();
-            return plainText(rangeOfContents(node).get());
+            String ret = plainText(rangeOfContents(node).get());
+
+            // try the first (text) descendant as a last resort
+            if (!ret.length()) {
+                Node *descendant = node-&gt;firstDescendant();
+                if (descendant-&gt;isTextNode())
+                    ret = descendant-&gt;textContent(false);
+            }
+
+            return ret;
         }
     }

The rationale behind this is that I&apos;ve observed that, when running the test through the DRT, the return value of plainText() is always an empty String, while directly accessing to the text content of its first descendant (in case it&apos;s a text node) returns the right value.

I know this is unlikely to be the right solution, but sharing it anyway just in case someone else, which more knowledge than me at this moment, could comment something about it... or even in case it rang any bell that could lead to the right solution (in case it&apos;s not this one).

Btw, Accerciser keeps working fine with this bug applied, and I wasn&apos;t able to find any test failing because of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236849</commentid>
    <comment_count>9</comment_count>
      <attachid>58479</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-11 08:46:25 -0700</bug_when>
    <thetext>Created attachment 58479
new layout test which should work fine

(In reply to comment #5)
&gt; [...]
&gt; bufferLength is based on the length of the TextIterator. This length seems to incremented in emitText(). emitText() is not getting called in the layout test because TextIterator::handleTextNode() is returning at this point:
&gt; 
&gt;     if (!renderer-&gt;firstTextBox() &amp;&amp; str.length() &gt; 0) {
&gt;         m_lastTextNodeEndedWithCollapsedSpace = true; // entire block is collapsed space
&gt;         return true;
&gt;     }
&gt; 
&gt; So.... Given the same, simple HTML content, why would a RenderText object fail to have a firstTextBox when run as a layout test, but behave as expected otherwise?

After digging on this issue for some time (as well as trying to figure out how DRT and the whole a11y stack works in WebKit :-)), I think I finally found the reason while this test was failing with DRT but no with Accerciser: it&apos;s just that the layout() process has not been completed when you ask for the label&apos;s title in the test, so the text box for that piece of text is still not created, resulting in what we already know that is an empty string being returned :-/.

In other words, the failing flow would be:

  1. In the test you just ask for &apos;child.title&apos; while the layout() still didn&apos;t happen
  2. webkit_accessible_text_get_name for the entry boils down to webkit_accessible_text_get_text for the corresponding label, which actually falls back to AccessibilityRenderObject::textUnderElement().
  3. AccessibilityRenderObject::textUnderElement() needs to call to plainText(), which internally ends up creating a new TextIterator for the range passed to plainText().
  4. However, the text iterator created when running DRT is an empty one, as the call to renderer-&gt;firstTexBox() returns NULL (since the layout() still didn&apos;t happen) and no valid text is finally returned by webkit_accessible_text_get_name().

So, what I did to fix this is to follow what I see in many other tests in LayoutTests (which also depend on the page being properly loaded and layed-out first) and change your proposed test not to do anything until the page has completely been loaded (&lt;body onload=&quot;startTest();&quot;&gt;...&lt;/body&gt;) and, on top of that, to add a timeout to ensure that there&apos;s enough time after that to make sure the test has been renderized. 

Moreover, I&apos;ve added another timeout to ensure the js-test-post.js file has been loaded at the end of the test before calling to notifyDone, so the expected result and the actual one match perfectly.

Perhaps there&apos;s a better way to do this (not so many timeouts) but at this point this is the best way I found to fix this (which in the other hand seems to be a common practice in many tests) and I couldn&apos;t resist to share this findings now :-), hopefully to get some feedback as well in how to improve it (for instance, if it were possible to get notified somehow in the test when the layou() process has been done, and then to call to startTest(), it would be great as we&apos;d avoid the timeout).

Looking forward to hearing some opinions, for the time being here you have the patch replacing your second one (just a new test).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237821</commentid>
    <comment_count>10</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-06-14 08:00:24 -0700</bug_when>
    <thetext>Mario, as we discussed Friday in IRC, if you could combine the working test and the fix into a single patch and flag the result for review, perhaps we could get Xan or Eric to take a look.

We need this fix a) in general to make content accessible to users who are blind and b) for bug 30896. (After all, if we get the column header, but cannot get the contents from that cell, the column header is useless -- not to mention inaccessible).

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237911</commentid>
    <comment_count>11</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-14 10:57:33 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Mario, as we discussed Friday in IRC, if you could combine the working test and the fix into a single patch and flag the result for review, perhaps we could get Xan or Eric to take a look.

That&apos;s the plan, thanks for all the support and help :-)
 
&gt; We need this fix a) in general to make content accessible to users who are blind and b) for bug 30896. (After all, if we get the column header, but cannot get the contents from that cell, the column header is useless -- not to mention inaccessible).

My first priority for tomorrow morning is to work on this bug and try a suggestion coming from Martin Robinson that could help a lot to get a more general solution, let&apos;s see if it works (hope so!)

Once I&apos;m done with this, next step would be bug 30869. Let&apos;see if we can get rid of these two once and for all in a row! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238000</commentid>
    <comment_count>12</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-14 13:03:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; [...]
&gt; Once I&apos;m done with this, next step would be bug 30869. Let&apos;see if we can get rid of these two once and for all in a row! :-)

I meant bug 30896, of course!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238332</commentid>
    <comment_count>13</comment_count>
      <attachid>58770</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-15 04:57:54 -0700</bug_when>
    <thetext>Created attachment 58770
combined patch (code+test) to fix this bug

(In reply to comment #11)
&gt; [...]
&gt; My first priority for tomorrow morning is to work on this bug and try a 
&gt; suggestion coming from Martin Robinson that could help a lot to get a more 
&gt; general solution, let&apos;s see if it works (hope so!)

I&apos;ve tried mrobinson&apos;s suggestion[*] but couldn&apos;t get it working with changes in DRT only: I always needed anyway some timeouts to ensure layout() has been called when asking for the title of the &lt;label&gt; element.

Hence, I&apos;m now attaching a combined patch with Joanmarie&apos;s patch + the new test, where I tried to reduce those timeouts to a minimum (while reasonable) value.

Let&apos;s see if we can get some review on this then and perhaps some advice to get, if possible, a more general solution (perhaps I was doing something wrong wrt mrobinson&apos;s suggestion).

&gt; Once I&apos;m done with this, next step would be bug 30869. Let&apos;see if we can get 
&gt; rid of these two once and for all in a row! :-)

I&apos;ll step into this one now, while waiting for review on this combined patch.

[*]  Try to call to webkit_web_frame_layout() before dumping the tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238333</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-15 05:01:02 -0700</bug_when>
    <thetext>Attachment 58770 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:146:  webkit_accessible_text_get_text is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 5 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>238807</commentid>
    <comment_count>15</comment_count>
      <attachid>58885</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-16 04:58:17 -0700</bug_when>
    <thetext>Created attachment 58885
combined patch (code+test) to fix this bug

Attached a new version of the combined patch with a better test case, where I got rid of the second (and really weird) timeout, to ensure that notifyDone() was called after the post JS file being successfully loaded.

I found that just setting window.jsTestIsAsync to true is far more convenient for this, and also avoids all the mess about dynamically loading the post JS file to avoid calling to finishJSTest() to early, while keeping the same functionality, so I did it that way (and also reduced a bit the code in the test).

What I did not find yet is a way to get rid of the other timeout, which must be there (even when is set to 0ms) to kind of simulate a g_idle_add() in JS, and therefore ensure the layout has been properly done before checking the results. I know this is weird but (1) after deeply checking DRT I still haven&apos;t found a way to fix it there (if possible), and on top of that (2) I&apos;ve seen more tests needing to do the same thing so I guess the current patch proposal could be good enough for now.

Hopefully in the future we will be able to find a more general solution in DRT code to avoid this problems (if possible), but so far whatever I&apos;ve tried didn&apos;t work in a consistent way, and current proposal is the only one I got that didn&apos;t break any other tests.

Eager to read some opinions/review on this last patch :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238808</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-16 05:00:06 -0700</bug_when>
    <thetext>Attachment 58885 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:146:  webkit_accessible_text_get_text is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 5 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>238810</commentid>
    <comment_count>17</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-06-16 05:01:43 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Attachment 58885 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
&gt; WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:146:  webkit_accessible_text_get_text is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
&gt; Total errors found: 1 in 5 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

As commented in a former attachment, this is something I couldn&apos;t avoid since the current style in that file is to name those kind of functions that way. Please let me know if there&apos;s a better way to work around this than just putting a comment in bugzilla as I&apos;m doing right now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241350</commentid>
    <comment_count>18</comment_count>
      <attachid>58885</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-06-22 11:16:57 -0700</bug_when>
    <thetext>Comment on attachment 58885
combined patch (code+test) to fix this bug


&gt; @@ -1501,8 +1493,8 @@ static AtkObject* webkit_accessible_table_get_caption(AtkTable* table)
&gt;  static const gchar* webkit_accessible_table_get_column_description(AtkTable* table, gint column)
&gt;  {
&gt;      AtkObject* columnHeader = atk_table_get_column_header(table, column);
&gt; -    if (columnHeader)
&gt; -        return returnString(nameFromChildren(core(columnHeader)));
&gt; +    if (columnHeader &amp;&amp; ATK_IS_TEXT(columnHeader))
&gt; +        return webkit_accessible_text_get_text(ATK_TEXT(columnHeader), 0, -1);
&gt;  

&gt; +    if (rowHeader &amp;&amp; ATK_IS_TEXT(rowHeader))
&gt; +        return webkit_accessible_text_get_text(ATK_TEXT(rowHeader), 0, -1);


Can ATK_IS_TEXT check for nil, so you don&apos;t need to check for nil and ATK_IS_TEXT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241352</commentid>
    <comment_count>19</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-06-22 11:17:18 -0700</bug_when>
    <thetext>r=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241417</commentid>
    <comment_count>20</comment_count>
      <attachid>58885</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-06-22 13:23:26 -0700</bug_when>
    <thetext>Comment on attachment 58885
combined patch (code+test) to fix this bug

Not checking for null-ness will give runtime errors, so I think we shouldn&apos;t do that. Setting cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242270</commentid>
    <comment_count>21</comment_count>
      <attachid>58885</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-23 20:18:28 -0700</bug_when>
    <thetext>Comment on attachment 58885
combined patch (code+test) to fix this bug

Clearing flags on attachment: 58885

Committed r61730: &lt;http://trac.webkit.org/changeset/61730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242271</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-23 20:18:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50725</attachid>
            <date>2010-03-15 12:52:26 -0700</date>
            <delta_ts>2010-06-11 16:05:01 -0700</delta_ts>
            <desc>proposed fix - no test (yet)</desc>
            <filename>36128-1.patch</filename>
            <type>text/plain</type>
            <size>4445</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA4ZmI1MGMyMTYwYWFiZjI3M2RiOTM3Nzk3M2Q4ZjJkNzBhNmQ5NGI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMTUgTWFyIDIwMTAgMTU6NDE6MzggLTA0MDAKU3ViamVjdDogW1BBVENIXSAy
MDEwLTAzLTE1ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgoK
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MTI4CiAgICAgICAgW0d0a10gbmFtZUZyb21D
aGlsZHJlbiBpcyBvYnNvbGV0ZQoKICAgICAgICBMb29rIHRvIHRoZSBBdGtUZXh0IGludGVyZmFj
ZSBpbXBsZW1lbnRlZCBieSB0aGUgb2JqZWN0cyBpbiBxdWVzdGlvbi4KCiAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAg
KG5hbWVGcm9tQ2hpbGRyZW4pOiBSZW1vdmVkCiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX2dl
dF9uYW1lKToKICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNj
cmlwdGlvbik6CiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9yb3dfZGVzY3Jp
cHRpb24pOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxNSArKysrKysrKysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmNwcCAgICAgICAgICB8ICAgMjggKysrKysrKy0tLS0tLS0tLS0tLQogMiBmaWxlcyBj
aGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDljYzg5YjQuLjUxOTQ4
NWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMTUgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJp
ZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MTI4
CisgICAgICAgIFtHdGtdIG5hbWVGcm9tQ2hpbGRyZW4gaXMgb2Jzb2xldGUKKworICAgICAgICBM
b29rIHRvIHRoZSBBdGtUZXh0IGludGVyZmFjZSBpbXBsZW1lbnRlZCBieSB0aGUgb2JqZWN0cyBp
biBxdWVzdGlvbi4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKG5hbWVGcm9tQ2hpbGRyZW4pOiBSZW1vdmVk
CisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfbmFtZSk6CisgICAgICAgICh3ZWJraXRf
YWNjZXNzaWJsZV90YWJsZV9nZXRfY29sdW1uX2Rlc2NyaXB0aW9uKToKKyAgICAgICAgKHdlYmtp
dF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9yb3dfZGVzY3JpcHRpb24pOgorCiAyMDEwLTAzLTE0ICBK
ZXNzaWUgQmVybGluICA8amJlcmxpbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGM1YmMwMWQuLmRiYjUxNzQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC0xNDMsMTggKzE0Myw3IEBAIHN0YXRpYyBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a0RvY3VtZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4g
Y29yZShBVEtfT0JKRUNUKGRvY3VtZW50KSk7CiB9CiAKLXN0YXRpYyBjb25zdCBnY2hhciogbmFt
ZUZyb21DaGlsZHJlbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCi17Ci0gICAgaWYgKCFv
YmplY3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNoaWxkcmVuID0gb2JqZWN0LT5jaGlsZHJl
bigpOwotICAgIC8vIEN1cnJlbnRseSwgb2JqZWN0LT5zdHJpbmdWYWx1ZSgpIHNob3VsZCBiZSBh
biBlbXB0eSBTdHJpbmcuIFRoaXMgbWlnaHQgbm90IGJlIHRoZSBjYXNlIGRvd24gdGhlIHJvYWQu
Ci0gICAgU3RyaW5nIG5hbWUgPSBvYmplY3QtPnN0cmluZ1ZhbHVlKCk7Ci0gICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGNoaWxkcmVuLnNpemUoKTsgKytpKQotICAgICAgICBuYW1lICs9IGNo
aWxkcmVuLmF0KGkpLmdldCgpLT5zdHJpbmdWYWx1ZSgpOwotICAgIHJldHVybiByZXR1cm5TdHJp
bmcobmFtZSk7Ci19CitzdGF0aWMgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X3Rl
eHQoQXRrVGV4dCogdGV4dCwgZ2ludCBzdGFydE9mZnNldCwgZ2ludCBlbmRPZmZzZXQpOwogCiBz
dGF0aWMgY29uc3QgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9uYW1lKEF0a09iamVjdCog
b2JqZWN0KQogewpAQCAtMTY1LDggKzE1NCwxMSBAQCBzdGF0aWMgY29uc3QgZ2NoYXIqIHdlYmtp
dF9hY2Nlc3NpYmxlX2dldF9uYW1lKEF0a09iamVjdCogb2JqZWN0KQogICAgIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QqPihjb3JlT2JqZWN0KTsKICAgICBpZiAoY29yZU9iamVjdC0+aXNDb250cm9s
KCkpIHsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGFiZWwgPSByZW5kZXJPYmplY3Qt
PmNvcnJlc3BvbmRpbmdMYWJlbEZvckNvbnRyb2xFbGVtZW50KCk7Ci0gICAgICAgIGlmIChsYWJl
bCkKLSAgICAgICAgICAgIHJldHVybiByZXR1cm5TdHJpbmcobmFtZUZyb21DaGlsZHJlbihsYWJl
bCkpOworICAgICAgICBpZiAobGFiZWwpIHsKKyAgICAgICAgICAgIEF0a09iamVjdCogYXRrT2Jq
ZWN0ID0gbGFiZWwtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIGlmIChBVEtfSVNfVEVYVChhdGtP
YmplY3QpKQorICAgICAgICAgICAgICAgIHJldHVybiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dl
dF90ZXh0KEFUS19URVhUKGF0a09iamVjdCksIDAsIC0xKTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIGlmIChyZW5kZXJPYmplY3QtPmlzSW1hZ2UoKSB8fCByZW5kZXJPYmplY3QtPmlzSW5wdXRJ
bWFnZSgpKSB7CkBAIC0xNDk0LDggKzE0ODYsOCBAQCBzdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRf
YWNjZXNzaWJsZV90YWJsZV9nZXRfY2FwdGlvbihBdGtUYWJsZSogdGFibGUpCiBzdGF0aWMgY29u
c3QgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9jb2x1bW5fZGVzY3JpcHRpb24o
QXRrVGFibGUqIHRhYmxlLCBnaW50IGNvbHVtbikKIHsKICAgICBBdGtPYmplY3QqIGNvbHVtbkhl
YWRlciA9IGF0a190YWJsZV9nZXRfY29sdW1uX2hlYWRlcih0YWJsZSwgY29sdW1uKTsKLSAgICBp
ZiAoY29sdW1uSGVhZGVyKQotICAgICAgICByZXR1cm4gcmV0dXJuU3RyaW5nKG5hbWVGcm9tQ2hp
bGRyZW4oY29yZShjb2x1bW5IZWFkZXIpKSk7CisgICAgaWYgKGNvbHVtbkhlYWRlciAmJiBBVEtf
SVNfVEVYVChjb2x1bW5IZWFkZXIpKQorICAgICAgICByZXR1cm4gd2Via2l0X2FjY2Vzc2libGVf
dGV4dF9nZXRfdGV4dChBVEtfVEVYVChjb2x1bW5IZWFkZXIpLCAwLCAtMSk7CiAKICAgICByZXR1
cm4gMDsKIH0KQEAgLTE1MDMsOCArMTQ5NSw4IEBAIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0
X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlwdGlvbihBdGtUYWJsZSogdGFiCiBz
dGF0aWMgY29uc3QgZ2NoYXIqIHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9yb3dfZGVzY3Jp
cHRpb24oQXRrVGFibGUqIHRhYmxlLCBnaW50IHJvdykKIHsKICAgICBBdGtPYmplY3QqIHJvd0hl
YWRlciA9IGF0a190YWJsZV9nZXRfcm93X2hlYWRlcih0YWJsZSwgcm93KTsKLSAgICBpZiAocm93
SGVhZGVyKQotICAgICAgICByZXR1cm4gcmV0dXJuU3RyaW5nKG5hbWVGcm9tQ2hpbGRyZW4oY29y
ZShyb3dIZWFkZXIpKSk7CisgICAgaWYgKHJvd0hlYWRlciAmJiBBVEtfSVNfVEVYVChyb3dIZWFk
ZXIpKQorICAgICAgICByZXR1cm4gd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfdGV4dChBVEtf
VEVYVChyb3dIZWFkZXIpLCAwLCAtMSk7CiAKICAgICByZXR1cm4gMDsKIH0KLS0gCjEuNy4wCgo=
</data>
<flag name="review"
          id="33893"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50727</attachid>
            <date>2010-03-15 13:02:15 -0700</date>
            <delta_ts>2010-03-15 13:02:15 -0700</delta_ts>
            <desc>new layout test which should work, but doesn&apos;t</desc>
            <filename>36128-2.patch</filename>
            <type>text/plain</type>
            <size>3405</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSA1OWViMjYxZmRkNDhlZDliNjM5NDczNWFmMGNhZDhkYTg4NWFiYWFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMTUgTWFyIDIwMTAgMTU6NTU6NDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDIv
Ml0gMjAxMC0wMy0xNSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjEyOAogICAgICAgIFtHdGtdIG5hbWVG
cm9tQ2hpbGRyZW4gaXMgb2Jzb2xldGUKCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbDogQWRkZWQuCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAg
KysrKysrCiAuLi4vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4
dCB8ICAgMTIgKysrKysrKwogLi4uL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC5o
dG1sICAgICAgICAgfCAgIDMxICsrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQs
IDUzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExMGMzOWMuLmEzOWMyYjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMy0xNSAgSm9hbm1hcmllIERpZ2dzICA8am9h
bm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzYxMjgKKyAgICAgICAgW0d0a10gbmFtZUZyb21DaGlsZHJlbiBpcyBvYnNvbGV0ZQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJl
bC1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTEyICBTaHUgQ2hhbmcgIDxjaGFuZy5z
aHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxh
YmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L25hbWUtZnJvbS1sYWJlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjc4YzUxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorRnVsbCBOYW1lOiAKK1RoaXMgdGVzdHMgdGhhdCBBdGtPYmplY3RzIGRlcml2ZSB0
aGVpciBuYW1lcyBmcm9tIGFzc29jaWF0ZWQgbGFiZWxzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBjaGlsZC5yb2xlIGlzICdlbnRyeScKK1BBU1MgY2hpbGQudGl0bGUg
aXMgJ0Z1bGwgTmFtZTonCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NzczOTBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwKQEAgLTAsMCArMSwzMSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4K
Kzxmb3JtPgorPGxhYmVsIGZvcj0iZm9vIj5GdWxsIE5hbWU6PC9sYWJlbD4KKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iZm9vIiAvPgorPC9mb3JtPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMg
dGVzdHMgdGhhdCBBdGtPYmplY3RzIGRlcml2ZSB0aGVpciBuYW1lcyBmcm9tIGFzc29jaWF0ZWQg
bGFiZWxzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisgICAgICAgIHZhciB3ZWJBcmVhID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHZhciBjaGls
ZCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDEpOworICAgICAgICBzaG91bGRCZSgiY2hpbGQucm9s
ZSIsICInZW50cnknIik7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC50aXRsZSIsICInRnVsbCBO
YW1lOiciKTsKKyAgICB9CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Ci0tIAoxLjcuMAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58479</attachid>
            <date>2010-06-11 08:46:25 -0700</date>
            <delta_ts>2010-06-15 04:57:54 -0700</delta_ts>
            <desc>new layout test which should work fine</desc>
            <filename>0002-2010-06-11-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>3441</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA4ZDFmMTMyODYwNmY1MzEyNWQ2M2Y3NjNiZDVlZTExZDIzMDZkOTBjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CkRhdGU6IE1vbiwgMTUgTWFyIDIwMTAgMTU6NTU6NDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDIv
Ml0gMjAxMC0wNi0xMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSBuYW1l
RnJvbUNoaWxkcmVuIGlzIG9ic29sZXRlCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM2MTI4CgogICAgICAgIEFkZGVkIG5ldyB0ZXN0cywgYmFzZWQgb24g
YSBwcmV2aW91cyBwYXRjaCBieSBKb2FubWFyaWUgRGlnZ3MuCgogICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWw6IEFkZGVkLgogICAgICAgICog
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCi0tLQogLi4uL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC1leHBlY3Rl
ZC50eHQgfCAgIDEyICsrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwu
aHRtbCAgICAgICAgIHwgICA2NSArKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk
LCA3NyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OGM1MTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0Z1bGwgTmFt
ZTogCitUaGlzIHRlc3RzIHRoYXQgQXRrT2JqZWN0cyBkZXJpdmUgdGhlaXIgbmFtZXMgZnJvbSBh
c3NvY2lhdGVkIGxhYmVscy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Y2hpbGQucm9sZSBpcyAnZW50cnknCitQQVNTIGNoaWxkLnRpdGxlIGlzICdGdWxsIE5hbWU6Jwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1s
YWJlbC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1m
cm9tLWxhYmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThkYTcy
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L25hbWUtZnJvbS1sYWJlbC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+CisgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgdmFyIHdlYkFyZWE7CisgIHZhciBjaGlsZDsKKworICBmdW5jdGlvbiBsb2FkanNm
aWxlKGZpbGVuYW1lKXsKKyAgICB2YXIgZmlsZXJlZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NjcmlwdCcpOworICAgIGZpbGVyZWYuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2Ny
aXB0Iik7CisgICAgZmlsZXJlZi5zZXRBdHRyaWJ1dGUoInNyYyIsIGZpbGVuYW1lKTsKKyAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpbGVyZWYpOworICB9CisKKyAgZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0K
KworICBmdW5jdGlvbiBjaGVja1Jlc3VsdHMoKSB7CisgICAgLy8gQWN0dWFsbHkgY2hlY2sgdGhl
IHJlc3VsdHMKKyAgICBzaG91bGRCZSgiY2hpbGQucm9sZSIsICInZW50cnknIik7CisgICAgc2hv
dWxkQmUoImNoaWxkLnRpdGxlIiwgIidGdWxsIE5hbWU6JyIpOworCisgICAgLy8gRGluYW1pY2Fs
bHkgbG9hZCB0aGUgcG9zdC10ZXN0IEpTIGZpbGUKKyAgICBsb2FkanNmaWxlKCIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiKTsKKyAgICBzZXRUaW1lb3V0KCJmaW5p
c2hUZXN0KCkiLCAyMDApOworICB9CisKKyAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQXRrT2JqZWN0cyBkZXJpdmUgdGhlaXIgbmFtZXMg
ZnJvbSBhc3NvY2lhdGVkIGxhYmVscy4iKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisgICAgd2ViQXJlYSA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgIGNoaWxkID0gd2ViQXJl
YS5jaGlsZEF0SW5kZXgoMSk7CisKKyAgICB3aW5kb3cuc2V0VGltZW91dCgiY2hlY2tSZXN1bHRz
KCkiLCAxMDApOworICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgaWQ9ImJvZHkiIG9u
bG9hZD0ic3RhcnRUZXN0KCk7Ij4KKworPGZvcm0+Cis8bGFiZWwgZm9yPSJmb28iPkZ1bGwgTmFt
ZTo8L2xhYmVsPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJmb28iIC8+Cis8L2Zvcm0+CisKKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3Jp
cHQ+CisgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58770</attachid>
            <date>2010-06-15 04:57:54 -0700</date>
            <delta_ts>2010-06-16 04:58:17 -0700</delta_ts>
            <desc>combined patch (code+test) to fix this bug</desc>
            <filename>0001-2010-06-15-Joanmarie-Diggs-joanmarie.diggs-gmail.com.patch</filename>
            <type>text/plain</type>
            <size>8442</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBlNTBiMDM4NTFjYzEyYWExMjRiMjRkYzYxY2NkYjFlMjJiNTI5NWYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDE1IEp1biAyMDEwIDEzOjM4OjUyICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMC0wNi0xNSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHdGtdIG5h
bWVGcm9tQ2hpbGRyZW4gaXMgb2Jzb2xldGUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzYxMjgKCiAgICAgICAgTG9vayB0byB0aGUgQXRrVGV4dCBpbnRl
cmZhY2UgaW1wbGVtZW50ZWQgYnkgdGhlIG9iamVjdHMgaW4KICAgICAgICBxdWVzdGlvbi4KCiAg
ICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0
bWwKCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHA6CiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9uYW1lKToKICAgICAgICAo
d2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlwdGlvbik6CiAgICAgICAg
KHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9yb3dfZGVzY3JpcHRpb24pOgoKMjAxMC0wNi0x
NSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSBuYW1lRnJvbUNoaWxkcmVu
IGlzIG9ic29sZXRlCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2MTI4CgogICAgICAgIEFkZGVkIG5ldyB0ZXN0cywgYmFzZWQgb24gYSBwcmV2aW91cyBw
YXRjaCBieSBKb2FubWFyaWUgRGlnZ3MuCgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbDogQWRkZWQuCi0tLQog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEy
ICsrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0
IHwgICAxMiArKysrCiAuLi4vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwg
ICAgICAgICB8ICAgNTcgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysKIC4uLi9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAyOCArKysrLS0tLS0t
CiA1IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9u
YW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggN2EzNGE4MS4uOTQ2NjkzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTE1ICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBuYW1lRnJvbUNoaWxkcmVu
IGlzIG9ic29sZXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjEyOAorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cywgYmFzZWQgb24gYSBwcmV2aW91
cyBwYXRjaCBieSBKb2FubWFyaWUgRGlnZ3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbDogQWRkZWQu
CisKIDIwMTAtMDYtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkIHRyaXZpYWwgZml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJlbC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc4YzUxMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L25hbWUtZnJvbS1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorRnVsbCBOYW1l
OiAKK1RoaXMgdGVzdHMgdGhhdCBBdGtPYmplY3RzIGRlcml2ZSB0aGVpciBuYW1lcyBmcm9tIGFz
c29jaWF0ZWQgbGFiZWxzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBj
aGlsZC5yb2xlIGlzICdlbnRyeScKK1BBU1MgY2hpbGQudGl0bGUgaXMgJ0Z1bGwgTmFtZTonCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxh
YmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZy
b20tbGFiZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWY2ZGJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj4KKyAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICB2YXIgd2ViQXJlYTsKKyAgdmFyIGNoaWxkOworCisgIGZ1bmN0aW9uIGxvYWRqc2Zp
bGUoZmlsZW5hbWUpeworICAgIHZhciBmaWxlcmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2NyaXB0Jyk7CisgICAgZmlsZXJlZi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3Jp
cHQiKTsKKyAgICBmaWxlcmVmLnNldEF0dHJpYnV0ZSgic3JjIiwgZmlsZW5hbWUpOworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmlsZXJlZik7CisgIH0KKworICBmdW5jdGlvbiBjaGVj
a1Jlc3VsdHMoKSB7CisgICAgLy8gQWN0dWFsbHkgY2hlY2sgdGhlIHJlc3VsdHMKKyAgICBzaG91
bGRCZSgiY2hpbGQucm9sZSIsICInZW50cnknIik7CisgICAgc2hvdWxkQmUoImNoaWxkLnRpdGxl
IiwgIidGdWxsIE5hbWU6JyIpOworCisgICAgLy8gRGluYW1pY2FsbHkgbG9hZCB0aGUgcG9zdC10
ZXN0IEpTIGZpbGUgYW5kIGZpbmlzaAorICAgIGxvYWRqc2ZpbGUoIi4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyIpOworICAgIHNldFRpbWVvdXQoImxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDEwMDApOworICB9CisKKyAgZnVuY3Rpb24gc3RhcnRU
ZXN0KCkgeworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQXRrT2JqZWN0cyBkZXJp
dmUgdGhlaXIgbmFtZXMgZnJvbSBhc3NvY2lhdGVkIGxhYmVscy4iKTsKKworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7Cisg
ICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAg
IGNoaWxkID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7CisKKyAgICAvLyBOZWVkIHRvIHdhaXQg
YSBiaXQgdG8gZW5zdXJlIGxheW91dCgpIGlzIGRvbmUKKyAgICB3aW5kb3cuc2V0VGltZW91dCgi
Y2hlY2tSZXN1bHRzKCkiLCAyMDApOworICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlk
PSJib2R5IiBvbmxvYWQ9InN0YXJ0VGVzdCgpOyI+Cis8Zm9ybT4KKzxsYWJlbCBmb3I9ImZvbyI+
RnVsbCBOYW1lOjwvbGFiZWw+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbyIgLz4KKzwvZm9y
bT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDIzOWNkYTYuLjEzMjZlMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYtMTUgIEpv
YW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gbmFtZUZyb21DaGlsZHJl
biBpcyBvYnNvbGV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzYxMjgKKworICAgICAgICBMb29rIHRvIHRoZSBBdGtUZXh0IGludGVyZmFjZSBpbXBs
ZW1lbnRlZCBieSB0aGUgb2JqZWN0cyBpbgorICAgICAgICBxdWVzdGlvbi4KKworICAgICAgICBU
ZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbAorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsu
Y3BwOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUpOgorICAgICAgICAod2Vi
a2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlwdGlvbik6CisgICAgICAgICh3
ZWJraXRfYWNjZXNzaWJsZV90YWJsZV9nZXRfcm93X2Rlc2NyaXB0aW9uKToKKwogMjAxMC0wNi0x
MyAgQW5kZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggNTE1ODc3NC4uNzYz
MWNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTE0MywxOCArMTQzLDcgQEAgc3RhdGlj
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmUoQXRrRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHJl
dHVybiBjb3JlKEFUS19PQkpFQ1QoZG9jdW1lbnQpKTsKIH0KIAotc3RhdGljIGNvbnN0IGdjaGFy
KiBuYW1lRnJvbUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKLXsKLSAgICBp
ZiAoIW9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY2hpbGRyZW4gPSBvYmplY3QtPmNo
aWxkcmVuKCk7Ci0gICAgLy8gQ3VycmVudGx5LCBvYmplY3QtPnN0cmluZ1ZhbHVlKCkgc2hvdWxk
IGJlIGFuIGVtcHR5IFN0cmluZy4gVGhpcyBtaWdodCBub3QgYmUgdGhlIGNhc2UgZG93biB0aGUg
cm9hZC4KLSAgICBTdHJpbmcgbmFtZSA9IG9iamVjdC0+c3RyaW5nVmFsdWUoKTsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIG5hbWUg
Kz0gY2hpbGRyZW4uYXQoaSkuZ2V0KCktPnN0cmluZ1ZhbHVlKCk7Ci0gICAgcmV0dXJuIHJldHVy
blN0cmluZyhuYW1lKTsKLX0KK3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfdGV4dChBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50IGVuZE9mZnNldCk7
CiAKIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUoQXRrT2Jq
ZWN0KiBvYmplY3QpCiB7CkBAIC0xNjUsOCArMTU0LDExIEBAIHN0YXRpYyBjb25zdCBnY2hhciog
d2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdCo+KGNvcmVPYmplY3QpOwogICAgIGlmIChjb3JlT2JqZWN0LT5pc0Nv
bnRyb2woKSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsYWJlbCA9IHJlbmRlck9i
amVjdC0+Y29ycmVzcG9uZGluZ0xhYmVsRm9yQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAgaWYg
KGxhYmVsKQotICAgICAgICAgICAgcmV0dXJuIHJldHVyblN0cmluZyhuYW1lRnJvbUNoaWxkcmVu
KGxhYmVsKSk7CisgICAgICAgIGlmIChsYWJlbCkgeworICAgICAgICAgICAgQXRrT2JqZWN0KiBh
dGtPYmplY3QgPSBsYWJlbC0+d3JhcHBlcigpOworICAgICAgICAgICAgaWYgKEFUS19JU19URVhU
KGF0a09iamVjdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHdlYmtpdF9hY2Nlc3NpYmxlX3Rl
eHRfZ2V0X3RleHQoQVRLX1RFWFQoYXRrT2JqZWN0KSwgMCwgLTEpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKHJlbmRlck9iamVjdC0+aXNJbWFnZSgpIHx8IHJlbmRlck9iamVjdC0+aXNJ
bnB1dEltYWdlKCkpIHsKQEAgLTE1MDEsOCArMTQ5Myw4IEBAIHN0YXRpYyBBdGtPYmplY3QqIHdl
YmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9jYXB0aW9uKEF0a1RhYmxlKiB0YWJsZSkKIHN0YXRp
YyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlw
dGlvbihBdGtUYWJsZSogdGFibGUsIGdpbnQgY29sdW1uKQogewogICAgIEF0a09iamVjdCogY29s
dW1uSGVhZGVyID0gYXRrX3RhYmxlX2dldF9jb2x1bW5faGVhZGVyKHRhYmxlLCBjb2x1bW4pOwot
ICAgIGlmIChjb2x1bW5IZWFkZXIpCi0gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmcobmFtZUZy
b21DaGlsZHJlbihjb3JlKGNvbHVtbkhlYWRlcikpKTsKKyAgICBpZiAoY29sdW1uSGVhZGVyICYm
IEFUS19JU19URVhUKGNvbHVtbkhlYWRlcikpCisgICAgICAgIHJldHVybiB3ZWJraXRfYWNjZXNz
aWJsZV90ZXh0X2dldF90ZXh0KEFUS19URVhUKGNvbHVtbkhlYWRlciksIDAsIC0xKTsKIAogICAg
IHJldHVybiAwOwogfQpAQCAtMTUxMCw4ICsxNTAyLDggQEAgc3RhdGljIGNvbnN0IGdjaGFyKiB3
ZWJraXRfYWNjZXNzaWJsZV90YWJsZV9nZXRfY29sdW1uX2Rlc2NyaXB0aW9uKEF0a1RhYmxlKiB0
YWIKIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X3Jvd19k
ZXNjcmlwdGlvbihBdGtUYWJsZSogdGFibGUsIGdpbnQgcm93KQogewogICAgIEF0a09iamVjdCog
cm93SGVhZGVyID0gYXRrX3RhYmxlX2dldF9yb3dfaGVhZGVyKHRhYmxlLCByb3cpOwotICAgIGlm
IChyb3dIZWFkZXIpCi0gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmcobmFtZUZyb21DaGlsZHJl
bihjb3JlKHJvd0hlYWRlcikpKTsKKyAgICBpZiAocm93SGVhZGVyICYmIEFUS19JU19URVhUKHJv
d0hlYWRlcikpCisgICAgICAgIHJldHVybiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90ZXh0
KEFUS19URVhUKHJvd0hlYWRlciksIDAsIC0xKTsKIAogICAgIHJldHVybiAwOwogfQotLSAKMS43
LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58885</attachid>
            <date>2010-06-16 04:58:17 -0700</date>
            <delta_ts>2010-06-23 20:18:28 -0700</delta_ts>
            <desc>combined patch (code+test) to fix this bug</desc>
            <filename>0001-2010-06-15-Joanmarie-Diggs-joanmarie.diggs-gmail.com.patch</filename>
            <type>text/plain</type>
            <size>8103</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA3OWMwMTRjMjc1ZWQ5NGU4MTEzYjBjNWJhNjFlOWM5NDIzMmIwZDBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDE1IEp1biAyMDEwIDEzOjM4OjUyICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMC0wNi0xNSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHdGtdIG5h
bWVGcm9tQ2hpbGRyZW4gaXMgb2Jzb2xldGUKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzYxMjgKCiAgICAgICAgTG9vayB0byB0aGUgQXRrVGV4dCBpbnRl
cmZhY2UgaW1wbGVtZW50ZWQgYnkgdGhlIG9iamVjdHMgaW4KICAgICAgICBxdWVzdGlvbi4KCiAg
ICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0
bWwKCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHA6CiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9uYW1lKToKICAgICAgICAo
d2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlwdGlvbik6CiAgICAgICAg
KHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9yb3dfZGVzY3JpcHRpb24pOgoKMjAxMC0wNi0x
NSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSBuYW1lRnJvbUNoaWxkcmVu
IGlzIG9ic29sZXRlCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2MTI4CgogICAgICAgIEFkZGVkIG5ldyB0ZXN0cywgYmFzZWQgb24gYSBwcmV2aW91cyBw
YXRjaCBieSBKb2FubWFyaWUgRGlnZ3MuCgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbDogQWRkZWQuCi0tLQog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEy
ICsrKysrCiAuLi4vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4
dCB8ICAgMTIgKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRt
bCAgICAgICAgIHwgICA0OCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysKIC4uLi9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAyOCArKysrLS0t
LS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggN2EzNGE4MS4uOTQ2NjkzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTE1
ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBuYW1lRnJvbUNoaWxk
cmVuIGlzIG9ic29sZXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNjEyOAorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cywgYmFzZWQgb24gYSBwcmV2
aW91cyBwYXRjaCBieSBKb2FubWFyaWUgRGlnZ3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDYtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIHRyaXZpYWwgZml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9tLWxhYmVsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L25hbWUtZnJvbS1sYWJl
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc4YzUx
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L25hbWUtZnJvbS1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorRnVsbCBO
YW1lOiAKK1RoaXMgdGVzdHMgdGhhdCBBdGtPYmplY3RzIGRlcml2ZSB0aGVpciBuYW1lcyBmcm9t
IGFzc29jaWF0ZWQgbGFiZWxzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBjaGlsZC5yb2xlIGlzICdlbnRyeScKK1BBU1MgY2hpbGQudGl0bGUgaXMgJ0Z1bGwgTmFtZTon
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvbmFtZS1mcm9t
LWxhYmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1l
LWZyb20tbGFiZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDBj
OGEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvbmFtZS1mcm9tLWxhYmVsLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNl
OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJzdGFydFRlc3Qo
KTsiPgorPGZvcm0+Cis8bGFiZWwgZm9yPSJmb28iPkZ1bGwgTmFtZTo8L2xhYmVsPgorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJmb28iIC8+Cis8L2Zvcm0+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgdmFyIHdlYkFyZWE7Cisg
IHZhciBjaGlsZDsKKworICBmdW5jdGlvbiBjaGVja1Jlc3VsdHMoKSB7CisgICAgLy8gQWN0dWFs
bHkgY2hlY2sgdGhlIHJlc3VsdHMKKyAgICBzaG91bGRCZSgiY2hpbGQucm9sZSIsICInZW50cnkn
Iik7CisgICAgc2hvdWxkQmUoImNoaWxkLnRpdGxlIiwgIidGdWxsIE5hbWU6JyIpOworICAgIGZp
bmlzaEpTVGVzdCgpOworICB9CisKKyAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQXRrT2JqZWN0cyBkZXJpdmUgdGhlaXIgbmFtZXMgZnJv
bSBhc3NvY2lhdGVkIGxhYmVscy4iKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisgICAgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgIGNoaWxk
ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7CisKKyAgICAvLyBDaGVjayByZXN1bHRzIG9uIGlk
bGUgdG8gZW5zdXJlIGxheW91dCgpIGlzIGRvbmUKKyAgICB3aW5kb3cuc2V0VGltZW91dCgiY2hl
Y2tSZXN1bHRzKCkiLCAwKTsKKyAgfQorCisgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KyAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDIzOWNkYTYuLjEzMjZlMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDYtMTUg
IEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gbmFtZUZyb21DaGls
ZHJlbiBpcyBvYnNvbGV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzYxMjgKKworICAgICAgICBMb29rIHRvIHRoZSBBdGtUZXh0IGludGVyZmFjZSBp
bXBsZW1lbnRlZCBieSB0aGUgb2JqZWN0cyBpbgorICAgICAgICBxdWVzdGlvbi4KKworICAgICAg
ICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9uYW1lLWZyb20tbGFiZWwuaHRtbAor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUpOgorICAgICAgICAo
d2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNjcmlwdGlvbik6CisgICAgICAg
ICh3ZWJraXRfYWNjZXNzaWJsZV90YWJsZV9nZXRfcm93X2Rlc2NyaXB0aW9uKToKKwogMjAxMC0w
Ni0xMyAgQW5kZXJzIEJha2tlbiAgPGFnYmFra2VuQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggNTE1ODc3NC4u
NzYzMWNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTE0MywxOCArMTQzLDcgQEAgc3Rh
dGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmUoQXRrRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IHJldHVybiBjb3JlKEFUS19PQkpFQ1QoZG9jdW1lbnQpKTsKIH0KIAotc3RhdGljIGNvbnN0IGdj
aGFyKiBuYW1lRnJvbUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKLXsKLSAg
ICBpZiAoIW9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY2hpbGRyZW4gPSBvYmplY3Qt
PmNoaWxkcmVuKCk7Ci0gICAgLy8gQ3VycmVudGx5LCBvYmplY3QtPnN0cmluZ1ZhbHVlKCkgc2hv
dWxkIGJlIGFuIGVtcHR5IFN0cmluZy4gVGhpcyBtaWdodCBub3QgYmUgdGhlIGNhc2UgZG93biB0
aGUgcm9hZC4KLSAgICBTdHJpbmcgbmFtZSA9IG9iamVjdC0+c3RyaW5nVmFsdWUoKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIG5h
bWUgKz0gY2hpbGRyZW4uYXQoaSkuZ2V0KCktPnN0cmluZ1ZhbHVlKCk7Ci0gICAgcmV0dXJuIHJl
dHVyblN0cmluZyhuYW1lKTsKLX0KK3N0YXRpYyBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGV4
dF9nZXRfdGV4dChBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50IGVuZE9mZnNl
dCk7CiAKIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUoQXRr
T2JqZWN0KiBvYmplY3QpCiB7CkBAIC0xNjUsOCArMTU0LDExIEBAIHN0YXRpYyBjb25zdCBnY2hh
ciogd2Via2l0X2FjY2Vzc2libGVfZ2V0X25hbWUoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCo+KGNvcmVPYmplY3QpOwogICAgIGlmIChjb3JlT2JqZWN0LT5p
c0NvbnRyb2woKSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsYWJlbCA9IHJlbmRl
ck9iamVjdC0+Y29ycmVzcG9uZGluZ0xhYmVsRm9yQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAg
aWYgKGxhYmVsKQotICAgICAgICAgICAgcmV0dXJuIHJldHVyblN0cmluZyhuYW1lRnJvbUNoaWxk
cmVuKGxhYmVsKSk7CisgICAgICAgIGlmIChsYWJlbCkgeworICAgICAgICAgICAgQXRrT2JqZWN0
KiBhdGtPYmplY3QgPSBsYWJlbC0+d3JhcHBlcigpOworICAgICAgICAgICAgaWYgKEFUS19JU19U
RVhUKGF0a09iamVjdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHdlYmtpdF9hY2Nlc3NpYmxl
X3RleHRfZ2V0X3RleHQoQVRLX1RFWFQoYXRrT2JqZWN0KSwgMCwgLTEpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKHJlbmRlck9iamVjdC0+aXNJbWFnZSgpIHx8IHJlbmRlck9iamVjdC0+
aXNJbnB1dEltYWdlKCkpIHsKQEAgLTE1MDEsOCArMTQ5Myw4IEBAIHN0YXRpYyBBdGtPYmplY3Qq
IHdlYmtpdF9hY2Nlc3NpYmxlX3RhYmxlX2dldF9jYXB0aW9uKEF0a1RhYmxlKiB0YWJsZSkKIHN0
YXRpYyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X2NvbHVtbl9kZXNj
cmlwdGlvbihBdGtUYWJsZSogdGFibGUsIGdpbnQgY29sdW1uKQogewogICAgIEF0a09iamVjdCog
Y29sdW1uSGVhZGVyID0gYXRrX3RhYmxlX2dldF9jb2x1bW5faGVhZGVyKHRhYmxlLCBjb2x1bW4p
OwotICAgIGlmIChjb2x1bW5IZWFkZXIpCi0gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmcobmFt
ZUZyb21DaGlsZHJlbihjb3JlKGNvbHVtbkhlYWRlcikpKTsKKyAgICBpZiAoY29sdW1uSGVhZGVy
ICYmIEFUS19JU19URVhUKGNvbHVtbkhlYWRlcikpCisgICAgICAgIHJldHVybiB3ZWJraXRfYWNj
ZXNzaWJsZV90ZXh0X2dldF90ZXh0KEFUS19URVhUKGNvbHVtbkhlYWRlciksIDAsIC0xKTsKIAog
ICAgIHJldHVybiAwOwogfQpAQCAtMTUxMCw4ICsxNTAyLDggQEAgc3RhdGljIGNvbnN0IGdjaGFy
KiB3ZWJraXRfYWNjZXNzaWJsZV90YWJsZV9nZXRfY29sdW1uX2Rlc2NyaXB0aW9uKEF0a1RhYmxl
KiB0YWIKIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0X2FjY2Vzc2libGVfdGFibGVfZ2V0X3Jv
d19kZXNjcmlwdGlvbihBdGtUYWJsZSogdGFibGUsIGdpbnQgcm93KQogewogICAgIEF0a09iamVj
dCogcm93SGVhZGVyID0gYXRrX3RhYmxlX2dldF9yb3dfaGVhZGVyKHRhYmxlLCByb3cpOwotICAg
IGlmIChyb3dIZWFkZXIpCi0gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmcobmFtZUZyb21DaGls
ZHJlbihjb3JlKHJvd0hlYWRlcikpKTsKKyAgICBpZiAocm93SGVhZGVyICYmIEFUS19JU19URVhU
KHJvd0hlYWRlcikpCisgICAgICAgIHJldHVybiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dldF90
ZXh0KEFUS19URVhUKHJvd0hlYWRlciksIDAsIC0xKTsKIAogICAgIHJldHVybiAwOwogfQotLSAK
MS43LjAuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>