<?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>57463</bug_id>
          
          <creation_ts>2011-03-30 09:08:45 -0700</creation_ts>
          <short_desc>[GTK] ARIA tables not exposing cells as HTML tables do</short_desc>
          <delta_ts>2011-06-14 10:17:28 -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>30796</blocked>
    
    <blocked>57826</blocked>
    
    <blocked>57854</blocked>
    
    <blocked>62335</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>376376</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 09:08:45 -0700</bug_when>
    <thetext>WebKitGTK seems not to be properly exposing rows and columns for ARIA tables (grid role) in the same way they do for normal HTML tables, which is preventing the following layout test from being skipped:

platform/gtk/accessibility/aria-table-hierarchy.html

For reference, see comment https://bugs.webkit.org/show_bug.cgi?id=47564#c9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377190</commentid>
    <comment_count>1</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-31 08:58:41 -0700</bug_when>
    <thetext>Changing the title because the current one because it was misleading:

When I filed the bug I did not meant that rows/columns should be exposed for ARIA tables (as FF do), but that contents in those rows/columns (aka, the cells) should be exposed in a consistent way bearing in mind how HTML are exposed, that is, having all the a11y objects for the table&apos;s cells as direct children for the a11y object for the table.

Furthermores, I had no idea whether exposing those rows/columns explicitly would be right or not when I filed the bug, but now that Joanmarie confirmed that they shouldn&apos;t be exposed I felt like mandatory to come here and change this bug&apos;s title.

Sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377710</commentid>
    <comment_count>2</comment_count>
      <attachid>87839</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-01 04:25:02 -0700</bug_when>
    <thetext>Created attachment 87839
Patch proposal + Layout test

Attaching patch proposal + skipping test that is now passing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377851</commentid>
    <comment_count>3</comment_count>
      <attachid>87839</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-04-01 09:21:05 -0700</bug_when>
    <thetext>Comment on attachment 87839
Patch proposal + Layout test

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

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:113
&gt; +

!child check is not needed

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:115
&gt; +            if (appendedRows.contains(row))

this check could be in the previous check. there&apos;s no need to cast to a AccessibilityTableRow at this point

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:119
&gt; +            unsigned rowCellCount = row-&gt;children().size();

Store instead of &quot;store&quot;

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:123
&gt; +            row-&gt;setRowIndex((int)columnCount);

static_cast
also i don&apos;t think the rowIndex is the same as the columnCount. The row index should be m_rows.size()

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:125
&gt; +            m_children.append(row-&gt;children());

why is all this logic duplicated from addChild. Is there any difference with what you added?

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:450
&gt; +    case GridRole:

i believe you removed this in another patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377916</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-01 10:55:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 87839 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87839&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:113
&gt; &gt; +
&gt; 
&gt; !child check is not needed

Ok

&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:115
&gt; &gt; +            if (appendedRows.contains(row))
&gt; 
&gt; this check could be in the previous check. there&apos;s no need to cast to a AccessibilityTableRow at this point

Ok

&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:119
&gt; &gt; +            unsigned rowCellCount = row-&gt;children().size();
&gt; 
&gt; Store instead of &quot;store&quot;

Ok, oops.

&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:123
&gt; &gt; +            row-&gt;setRowIndex((int)columnCount);
&gt; 
&gt; static_cast
&gt; also i don&apos;t think the rowIndex is the same as the columnCount. The row index should be m_rows.size()

That was a mistake. Thanks for the catch.

&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:125
&gt; &gt; +            m_children.append(row-&gt;children());
&gt; 
&gt; why is all this logic duplicated from addChild. Is there any difference with what you added?

The main difference is that in addChild() your adding always rows (as it&apos;s claimed by the assertion in the first line), but here in this patch we&apos;re adding the row&apos;s children instead, since we don&apos;t want (for the time being at least) those row objects to be exposed to ATK, but just their children (the cells).

That is, we want the a11y objects for the cells to be exposed as direct children of the a11y objects for the tables. No a11y objects for the rows in the middle, for consistency with GTK (and with what it&apos;s done for HTML tables).

What is true is that perhaps I could refactor code in a better way, maybe through an extra parameter in addChild() so we avoid this code replication.


&gt; &gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:450
&gt; &gt; +    case GridRole:
&gt; 
&gt; i believe you removed this in another patch

True, sorry.

Now I&apos;m running out of time but will try to work on fixing this patch asap, if possible before Monday.

Thanks for the feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378150</commentid>
    <comment_count>5</comment_count>
      <attachid>87933</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-01 15:48:05 -0700</bug_when>
    <thetext>Created attachment 87933
Patch proposal + Layout test

Attaching a new patch, now avoiding to duplicate so much code as in the previous version.

Behaviour for other platform should keep being the same than before the patch, hence only GTK should be affected.

Have a nice weekend!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378832</commentid>
    <comment_count>6</comment_count>
      <attachid>88068</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-04 09:34:53 -0700</bug_when>
    <thetext>Created attachment 88068
Patch proposal + Layout test

Attaching a new patch adding some extra changes in AccessibilityARIAGridCell.cpp I realized would be needed while working in other stuff (trying to unskip some other tests by adding extra support in DRT).

Summing up, this patch is like the previous one, but it adds some needed code for ARIA Grid cells to be aware, in GTK, about the fact that rows will be plainly ignored for this platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378884</commentid>
    <comment_count>7</comment_count>
      <attachid>88068</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-04 10:56:13 -0700</bug_when>
    <thetext>Comment on attachment 88068
Patch proposal + Layout test

... and now I realized (while trying to unskip aria-tables.html) that this patch has still some problems so it shouldn&apos;t be reviewed yet.

So sorry for the noise. Hope to come back soon with a good enough patch, but in the meantime lets remove the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379433</commentid>
    <comment_count>8</comment_count>
      <attachid>88199</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-05 04:04:43 -0700</bug_when>
    <thetext>Created attachment 88199
Patch proposal + Layout test

Back on business... I think this one is the good one, for a variety of reasons:

  * It doesn&apos;t assume that GTK ignores accessibility for table rows (which is something happening right now, but could/should change in the future). Instead, it adds extra code for the GTK platform so it works as expected _in case_ it&apos;s ignoring accessibility for rows. This means that if in the future we decide not to ignore rows anymore, current code in AccessibilityGrid and AccessibilityGridCell should still work fine.

  * It works fine for different test cases I tried, inspired both in the aria-tables-hierarchy.html and aria-tables.html test cases.

  * I checked with Accerciser and there&apos;s currently no difference, from AT&apos;s point of view, between HTML and ARIA tables (which is what this bug is about).

  * It should keep the same behavior than before for other platforms (I carefully checked this by visually inspecting the diff).

Of course, no sw/patch is free of bugs, but I think this patch is worth considering for review anyway... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380055</commentid>
    <comment_count>9</comment_count>
      <attachid>88199</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-04-05 19:35:32 -0700</bug_when>
    <thetext>Comment on attachment 88199
Patch proposal + Layout test

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

Is it possible to override what GTK returns for parent and children, and check if there&apos;s an AX table row in that equation, and if so, either pass on to the parent of the table row, or the children of the table row? I ask because I fear that there&apos;s a lot of edge cases that rely on a table row for calculating or retrieving data.  A good example is rowIndexRange(). It seems the rowIndex() method is really good for that, but GTK code now has to do a lot of work to get that same information. 

In the Mac wrapper we do something similar when handling attachments. For children and parents, we check if there&apos;s an attachmentView and if there, we do something different. 

I also think that change may be a lot less code

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:85
&gt; +

I don&apos;t think this change needs to be platform dependent. I think the accessibilityIsIgnored() check covers the platform dependentness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380257</commentid>
    <comment_count>10</comment_count>
      <attachid>88393</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-06 04:20:10 -0700</bug_when>
    <thetext>Created attachment 88393
Patch proposal + Layout test

(In reply to comment #9)
&gt; (From update of attachment 88199 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88199&amp;action=review
&gt; 
&gt; Is it possible to override what GTK returns for parent and children, and
&gt; check if there&apos;s an AX table row in that equation, and if so, either pass
&gt; on to the parent of the table row, or the children of the table row?

Problem is that at the moment in GTK accessibility objects for rows should ignore accessibility, thus they should not be part of the accessibility hierarchy, so I&apos;m not sure how to do this by just overriding those functions. Perhaps I&apos;m missing something, or not understanding your suggestion properly, though.

&gt; I ask because I fear that there&apos;s a lot of edge cases that rely on a table row
&gt; for calculating or retrieving data.  A good example is rowIndexRange().
&gt; It seems the rowIndex() method is really good for that, but GTK code 
&gt; now has to do a lot of work to get that same information. 

Yeah, we need to do that extra calculations in GTK since accessible rows are not added to he hierarchy, so we can&apos;t use the API from AccessibilityTableRow.

&gt; In the Mac wrapper we do something similar when handling attachments.
&gt; For children and parents, we check if there&apos;s an attachmentView and
&gt; if there, we do something different. 

I&apos;ve checked the code in the mac wrapper, but still not sure if it would be a similar case to what happens here: we just want to leave (and handle everything else accordingly) accessibility rows out from the a11y hierarchy, as it&apos;s done with regular HTML tables.

But as I commented above, perhaps I&apos;m not understanding properly your point, in which case I&apos;d appreciate some further comments from your side, if possible. Thanks in advance.

&gt; I also think that change may be a lot less code

I&apos;m currently attaching a new patch which, even though it&apos;s not perhaps perfect either, it&apos;s a lot less code than the previous one, mainly because I removed all the &quot;#if PLATFORM(GTK).. #endif&quot; regions by writing all the changes as if having rows ignoring accessibility was not a matter of the GTK platform only, but something more general, and leaving the accessibilityIsIgnored() check to do the work of making the right decision.

To tell the truth, I didn&apos;t like very much adding so much platform specific code in the previous patch, but I did it so in order not to touch at all the behavior of other platforms (that is, Mac), as I thought it could be a good trade off.

But after reading the last line of your comment, I realized you wouldn&apos;t be as much opposed to a more general patch as I initially thought (my fault, I&apos;m the king when it comes to making wrong assumptions) so I&apos;m coming now with just the opposite thing: a patch with no &quot;#if PLATFORM(GTK).. #endif&quot; regions at all.

Also, I&apos;ve run the tests of the Mac port in a MacMini I have at hand, and it seems it doesn&apos;t break anything either, so I guess it couldn&apos;t be that bad option at the end :-)

And I have proof of that...

** BUILD SUCCEEDED **

Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/mario/Source/WebKit/LayoutTests
Testing 194 test cases.
accessibility ......................................................................................
platform/mac/accessibility ............................................................................................................
52.30s total testing time

all 194 test cases succeeded

 
&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:85
&gt; &gt; +
&gt; 
&gt; I don&apos;t think this change needs to be platform dependent. I think the accessibilityIsIgnored() check covers the platform dependentness.

   ^---&gt; This is the &quot;last line of your comment&quot; I was referring to above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382258</commentid>
    <comment_count>11</comment_count>
      <attachid>88393</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-04-08 08:47:37 -0700</bug_when>
    <thetext>Comment on attachment 88393
Patch proposal + Layout test

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

r=me after you address comments.

&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:110
&gt; +            addChild(child.get(), appendedRows, columnCount);

if the ariaRoleAttribute == RowRole, is it not always isTableRow() = true?

&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:64
&gt; +        return 0;

seems like this check is not necessary since when we ask for the parent unignored, we&apos;ll check again for accessibilityTable() a few lines below. 
I would however add a comment why we need to check parentObjectUnignored(), and the parentObjectUnignored() again

&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:90
&gt; +        for (unsigned k = 0; k &lt; siblings.size(); ++k) {

don&apos;t call .size() in the for loop (that means you&apos;ll call a method for every iteration

&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:93
&gt; +                break;

i should note that if ARIA grid cells do have span columns, this code will be invalid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382316</commentid>
    <comment_count>12</comment_count>
      <attachid>88393</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-08 09:58:44 -0700</bug_when>
    <thetext>Comment on attachment 88393
Patch proposal + Layout test

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

I&apos;ll wait for you to answer my question above (about the double check) before actually committing anything.

Thanks!

&gt;&gt; Source/WebCore/accessibility/AccessibilityARIAGrid.cpp:110
&gt;&gt; +            addChild(child.get(), appendedRows, columnCount);
&gt; 
&gt; if the ariaRoleAttribute == RowRole, is it not always isTableRow() = true?

Well, the definition of isTableRow() is as follows:

  bool AccessibilityTableRow::isTableRow() const
  {
      AccessibilityObject* table = parentTable();
      if (!table || !table-&gt;isAccessibilityTable())
          return false;
    
      return true;
 }

So my quick answer is &quot;yes, it should be the same&quot;, but still I think I&apos;d rather leave the double check to make sure we&apos;re actually doing the right thing, since ariaRoleAttribute() just checks an attribute, while isTableRow() checks that the parent object is a table, and I wonder whether those two methods could end up &quot;disagreeing&quot; under certain circunstances on whether something is a row or not.

Besides, I took the idea of the first check in AccessibilityARIAGrid::addChild(), so that&apos;s where my doubts come from... 

So what do you think? Shall we change it or leave it as it is now (double check)?

&gt;&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:64
&gt;&gt; +        return 0;
&gt; 
&gt; seems like this check is not necessary since when we ask for the parent unignored, we&apos;ll check again for accessibilityTable() a few lines below. 
&gt; I would however add a comment why we need to check parentObjectUnignored(), and the parentObjectUnignored() again

Yes, you&apos;re right. I just tried to keep the same logic than before my patch as much as possible, but I agree that it&apos;s not needed to make this check now having the second isAccessibilityTable() check right after getting the unignored parent for the second time.

Agreed on adding the comment as well.

&gt;&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:90
&gt;&gt; +        for (unsigned k = 0; k &lt; siblings.size(); ++k) {
&gt; 
&gt; don&apos;t call .size() in the for loop (that means you&apos;ll call a method for every iteration

Opps. Yes, sorry about that.

&gt;&gt; Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp:93
&gt;&gt; +                break;
&gt; 
&gt; i should note that if ARIA grid cells do have span columns, this code will be invalid

Yes, you&apos;re right. But in theory ARIA grids do not have span columns, right? Or at least that&apos;s what I thought... I&apos;ll double check that, just in case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383222</commentid>
    <comment_count>13</comment_count>
      <attachid>89018</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-11 09:44:32 -0700</bug_when>
    <thetext>Created attachment 89018
Patch proposal + Layout test

Chris,

According to the answers to your questions I wrote in my previous patch, this would be the patch I&apos;d be committing now, if you agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383227</commentid>
    <comment_count>14</comment_count>
      <attachid>89018</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-04-11 09:50:52 -0700</bug_when>
    <thetext>Comment on attachment 89018
Patch proposal + Layout test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383259</commentid>
    <comment_count>15</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-04-11 10:39:28 -0700</bug_when>
    <thetext>Committed r83450: &lt;http://trac.webkit.org/changeset/83450&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87839</attachid>
            <date>2011-04-01 04:25:02 -0700</date>
            <delta_ts>2011-04-01 15:48:05 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-01-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8742</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA3YWE0YTg1ZTYzYWFhYWNiMTc0MjYxYTM0Y2NiZWNiYTkyOGNhOGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDEgQXByIDIwMTEgMTI6MzQ6NTYgKzAyMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTA0LTAxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBFeHBvc2Ug
Y2VsbHMgZm9yIEFSSUEgZ3JpZHMgY29uc2lzdGVudGx5IHdpdGggSFRNTCB0YWJsZXMuCgogICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogUm93cyBhcmUgbm90
IGdvaW5nCiAgICAgICAgdG8gYmUgZXhwb3NlZCB0byBBVEsgc28gbWFrZSBzdXJlIHRoYXQgdGhl
aXIgY2hpbGRyZW4gKHRoZSBjZWxscykKICAgICAgICBhcmUgZXhwb3NlZCBhbnl3YXkgYXMgY2hp
bGRyZW4gb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGFibGUuCgogICAgICAgICogYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtSb2xl
KTogTWFwIENvbHVtbkhlYWRlciBhbmQgUm93SGVhZGVyIHRvIEFUS19ST0xFX1RBQkxFX0NFTEwu
CgoyMDExLTA0LTAxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBVbnNraXBw
ZWQgcGFzc2luZyB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgZXhwZWN0YXRpb25zLgoKICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJpbGl0eSB0ZXN0Lgog
ICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzIC0KIC4uLi9hcmlhLXRhYmxlLWhpZXJh
cmNoeS1leHBlY3RlZC50eHQgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAg
ICAgICAgfCAgIDIzICsrKysrKystCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcCAgICAgICAgICB8ICAgIDQgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlv
bnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQ3MzgwODEuLmQ1YzI3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0w
NC0wMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQVJJQSB0YWJs
ZXMgbm90IGV4cG9zaW5nIGNlbGxzIGFzIEhUTUwgdGFibGVzIGRvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MworCisgICAgICAgIFVuc2tpcHBl
ZCBwYXNzaW5nIHRlc3QgYW5kIGFkZGVkIEdUSy1zcGVjaWZpYyBleHBlY3RhdGlvbnMuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwIGFjY2Vzc2liaWxpdHkgdGVzdC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDExLTAzLTMxICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHR3byBtb3JlIHByZWxvYWRlciB0ZXN0cyB0byB0
aGUgV2ViS2l0MiBTa2lwcGVkIGxpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDRj
ZjE0NDQuLmEwNDYyNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMjM4LDkgKzEy
MzgsNiBAQCBwbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1sb2FkLXByZXZlbnRlZC11c2Vyc2NyaXB0
Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2OTQyCiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMu
aHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzU2NAot
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHkuaHRtbAotCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg3MgogaHR0cC90ZXN0
cy9taXNjL2Rucy1wcmVmZXRjaC1jb250cm9sLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJs
ZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdhOTFlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2MSBAQAorZm9vCitiYXIKK09kZAorRXZlbgorMQorMgorMworNAoraGVsbG8KK3dvcmxkCitP
ZGQKK0V2ZW4KKzEKKworMgorCiszCisKKzQKKworVGhpcyB0ZXN0cyB0aGUgQXRrIHRhYmxlIGhp
ZXJhcmh5IGZvciBhbiBBUklBIHRhYmxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0YWJsZTEucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGUxLnJvd0Nv
dW50IGlzIDEKK1BBU1MgdGFibGUxLmNvbHVtbkNvdW50IGlzIDIKK1BBU1MgdGFibGUyLnJvbGUg
aXMgJ0FYUm9sZTogdGFibGUnCitQQVNTIHRhYmxlMi5yb3dDb3VudCBpcyAzCitQQVNTIHRhYmxl
Mi5jb2x1bW5Db3VudCBpcyAyCitQQVNTIHRhYmxlMy5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJwor
UEFTUyB0YWJsZTMucm93Q291bnQgaXMgMQorUEFTUyB0YWJsZTMuY29sdW1uQ291bnQgaXMgMgor
UEFTUyB0YWJsZTQucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGU0LnJvd0NvdW50
IGlzIDMKK1BBU1MgdGFibGU0LmNvbHVtbkNvdW50IGlzIDIKK1BBU1MgY2hpbGRyZW4gaXMgMgor
UEFTUyB0YWJsZTEuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcK
K1BBU1MgdGFibGUxLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwn
CitQQVNTIGNoaWxkcmVuIGlzIDYKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlz
ICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBp
cyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUg
aXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xl
IGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9s
ZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJv
bGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgY2hpbGRyZW4gaXMgMgorUEFTUyB0YWJs
ZTMuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFi
bGUzLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIGNo
aWxkcmVuIGlzIDYKK1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6
IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xl
OiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9s
ZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJv
bGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhS
b2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FY
Um9sZTogdGFibGUgY2VsbCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM3M2VkZS4uY2I5NzU0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDExLTA0LTAxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNo
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbR1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJs
ZXMgZG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3
NDYzCisKKyAgICAgICAgRXhwb3NlIGNlbGxzIGZvciBBUklBIGdyaWRzIGNvbnNpc3RlbnRseSB3
aXRoIEhUTUwgdGFibGVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
QVJJQUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjph
ZGRDaGlsZHJlbik6IFJvd3MgYXJlIG5vdCBnb2luZworICAgICAgICB0byBiZSBleHBvc2VkIHRv
IEFUSyBzbyBtYWtlIHN1cmUgdGhhdCB0aGVpciBjaGlsZHJlbiAodGhlIGNlbGxzKQorICAgICAg
ICBhcmUgZXhwb3NlZCBhbnl3YXkgYXMgY2hpbGRyZW4gb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGFi
bGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckF0ay5jcHA6CisgICAgICAgIChhdGtSb2xlKTogTWFwIENvbHVtbkhlYWRlciBhbmQgUm93
SGVhZGVyIHRvIEFUS19ST0xFX1RBQkxFX0NFTEwuCisKIDIwMTEtMDMtMzEgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI4MjY1Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAppbmRleCBkNTE3NTBhLi5lYjgxNTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwCkBAIC0xMDMsMTEgKzEwMywzMiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZDo6YWRkQ2hpbGRyZW4oKQogICAgICAgICBpZiAoY2hpbGQtPmFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSkgewogICAgICAgICAgICAgaWYgKCFjaGlsZC0+aGFzQ2hpbGRyZW4oKSkKICAgICAgICAg
ICAgICAgICBjaGlsZC0+YWRkQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIAorCisjaWYgUExBVEZP
Uk0oR1RLKQorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRoZSB0YWJsZSBy
b3dzIGV4cGxpY2l0bHkgZXhwb3NlZAorICAgICAgICAgICAgLy8gZm9yIHRoZSBHVEsgcG9ydCwg
YnV0IGp1c3QgdGhlIGNlbGxzIGluc2lkZSBvZiB0aGVtCisgICAgICAgICAgICAvLyBpbnN0ZWFk
LCBpbiB0aGUgc2FtZSB3YXkgaXQncyBkb25lIGZvciBIVE1MIHRhYmxlcy4KKyAgICAgICAgICAg
IGlmICghY2hpbGQgfHwgIWNoaWxkLT5pc1RhYmxlUm93KCkgfHwgY2hpbGQtPmFyaWFSb2xlQXR0
cmlidXRlKCkgIT0gUm93Um9sZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgQWNjZXNzaWJpbGl0eVRhYmxlUm93KiByb3cgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmls
aXR5VGFibGVSb3cqPihjaGlsZC5nZXQoKSk7CisgICAgICAgICAgICBpZiAoYXBwZW5kZWRSb3dz
LmNvbnRhaW5zKHJvdykpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IC8vIHN0b3JlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjb2x1bW5zLgorICAgICAgICAgICAgdW5z
aWduZWQgcm93Q2VsbENvdW50ID0gcm93LT5jaGlsZHJlbigpLnNpemUoKTsKKyAgICAgICAgICAg
IGlmIChyb3dDZWxsQ291bnQgPiBjb2x1bW5Db3VudCkKKyAgICAgICAgICAgICAgICBjb2x1bW5D
b3VudCA9IHJvd0NlbGxDb3VudDsKKworICAgICAgICAgICAgcm93LT5zZXRSb3dJbmRleCgoaW50
KWNvbHVtbkNvdW50KTsKKyAgICAgICAgICAgIG1fcm93cy5hcHBlbmQocm93KTsKKyAgICAgICAg
ICAgIG1fY2hpbGRyZW4uYXBwZW5kKHJvdy0+Y2hpbGRyZW4oKSk7CisjZWxzZQogICAgICAgICAg
ICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNoaWxkcmVuID0gY2hpbGQtPmNoaWxkcmVu
KCk7CiAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBjaGlsZHJlbi5zaXplKCk7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgICAg
ICAgICAgYWRkQ2hpbGQoY2hpbGRyZW5baV0uZ2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291
bnQpOworI2VuZGlmCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYWRkQ2hpbGQoY2hpbGQu
Z2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOyAgICAgICAgICAgIAogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCBhNTU4ZTIyLi40ZTBjMWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAg
c3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICBy
ZXR1cm4gQVRLX1JPTEVfU0NST0xMX0JBUjsKICAgICBjYXNlIFNjcm9sbEFyZWFSb2xlOgogICAg
ICAgICByZXR1cm4gQVRLX1JPTEVfU0NST0xMX1BBTkU7Ci0gICAgY2FzZSBHcmlkUm9sZTogLy8g
SXMgdGhpcyByaWdodD8KKyAgICBjYXNlIEdyaWRSb2xlOgogICAgIGNhc2UgVGFibGVSb2xlOgog
ICAgICAgICByZXR1cm4gQVRLX1JPTEVfVEFCTEU7CiAgICAgY2FzZSBBcHBsaWNhdGlvblJvbGU6
CkBAIC00NTUsNiArNDU1LDggQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlKQogICAgIGNhc2UgR3JvdXBSb2xlOgogICAgIGNhc2UgUmFkaW9Hcm91cFJvbGU6
CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQU5FTDsKKyAgICBjYXNlIFJvd0hlYWRlclJvbGU6
IC8vIFJvdyBoZWFkZXJzIGFyZSBjZWxscyBhZnRlciBhbGwuCisgICAgY2FzZSBDb2x1bW5IZWFk
ZXJSb2xlOiAvLyBDb2x1bW4gaGVhZGVycyBhcmUgY2VsbHMgYWZ0ZXIgYWxsLgogICAgIGNhc2Ug
Q2VsbFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9UQUJMRV9DRUxMOwogICAgIGNhc2Ug
TGlua1JvbGU6Ci0tIAoxLjcuNAoK
</data>
<flag name="review"
          id="80293"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87933</attachid>
            <date>2011-04-01 15:48:05 -0700</date>
            <delta_ts>2011-04-04 09:34:53 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-02-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8786</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAzMTFkYTJkNmIyZjZjM2I1NTVjOTIwYTBjMjBkMGEyYjk3OTdhZGQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDEgQXByIDIwMTEgMTg6Mjg6MjkgKzAyMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTA0LTAyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBFeHBvc2Ug
Y2VsbHMgZm9yIEFSSUEgZ3JpZHMgY29uc2lzdGVudGx5IHdpdGggSFRNTCB0YWJsZXMgaW4gR1RL
LAogICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3RoZXIgcGxhdGZv
cm1zLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoK
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZCk6IFJvd3Mg
YXJlIG5vdCBnb2luZwogICAgICAgIHRvIGJlIGV4cG9zZWQgdG8gQVRLIHNvIG1ha2Ugc3VyZSB0
aGF0IHRoZWlyIGNoaWxkcmVuICh0aGUgY2VsbHMpCiAgICAgICAgYXJlIGV4cG9zZWQgYW55d2F5
IGFzIGNoaWxkcmVuIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IHRhYmxlLgogICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogRW5zdXJlIGFkZENoaWxkKCkK
ICAgICAgICBpcyBhbHdheXMgY2FsbGVkIGZvciB0aGUgR1RLIHBsYXRmb3JtLgoKICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAg
ICAgICAoYXRrUm9sZSk6IE1hcCBDb2x1bW5IZWFkZXIgYW5kIFJvd0hlYWRlciB0byBBVEtfUk9M
RV9UQUJMRV9DRUxMLgoKMjAxMS0wNC0wMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6
QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICBbR1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8K
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0NjMKCiAg
ICAgICAgVW5za2lwcGVkIHBhc3NpbmcgdGVzdCBhbmQgYWRkZWQgR1RLLXNwZWNpZmljIGV4cGVj
dGF0aW9ucy4KCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwIGFjY2Vzc2li
aWxpdHkgdGVzdC4KICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFi
bGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyAtCiAuLi4vYXJp
YS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgNjEgKysrKysr
KysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyMCArKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
QVJJQUdyaWQuY3BwICAgICAgICB8ICAgMTcgKysrKystCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgIDIgKwogNiBmaWxlcyBjaGFuZ2VkLCAx
MTAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS1l
eHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTAwNzE2Yi4uMTJjNzBmYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDExLTA0LTAyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NDYzCisKKyAgICAg
ICAgVW5za2lwcGVkIHBhc3NpbmcgdGVzdCBhbmQgYWRkZWQgR1RLLXNwZWNpZmljIGV4cGVjdGF0
aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJp
bGl0eSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFi
bGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMDQtMDEgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA0YTJkOGY1Li42ZGNkMDJl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTIzOCw5ICsxMjM4LDYgQEAgcGx1Z2lu
cy9wbHVnaW4tZG9jdW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIAotIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc1NjQKLXBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5Lmh0bWwKLQogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA4NzIKIGh0dHAvdGVzdHMvbWlzYy9kbnMtcHJl
ZmV0Y2gtY29udHJvbC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTkxZWZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjEgQEAKK2Zvbwor
YmFyCitPZGQKK0V2ZW4KKzEKKzIKKzMKKzQKK2hlbGxvCit3b3JsZAorT2RkCitFdmVuCisxCisK
KzIKKworMworCis0CisKK1RoaXMgdGVzdHMgdGhlIEF0ayB0YWJsZSBoaWVyYXJoeSBmb3IgYW4g
QVJJQSB0YWJsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGFibGUx
LnJvbGUgaXMgJ0FYUm9sZTogdGFibGUnCitQQVNTIHRhYmxlMS5yb3dDb3VudCBpcyAxCitQQVNT
IHRhYmxlMS5jb2x1bW5Db3VudCBpcyAyCitQQVNTIHRhYmxlMi5yb2xlIGlzICdBWFJvbGU6IHRh
YmxlJworUEFTUyB0YWJsZTIucm93Q291bnQgaXMgMworUEFTUyB0YWJsZTIuY29sdW1uQ291bnQg
aXMgMgorUEFTUyB0YWJsZTMucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGUzLnJv
d0NvdW50IGlzIDEKK1BBU1MgdGFibGUzLmNvbHVtbkNvdW50IGlzIDIKK1BBU1MgdGFibGU0LnJv
bGUgaXMgJ0FYUm9sZTogdGFibGUnCitQQVNTIHRhYmxlNC5yb3dDb3VudCBpcyAzCitQQVNTIHRh
YmxlNC5jb2x1bW5Db3VudCBpcyAyCitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUxLmNo
aWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMS5j
aGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJl
biBpcyA2CitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJs
ZSBjZWxsJworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFi
bGUgY2VsbCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRh
YmxlIGNlbGwnCitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0
YWJsZSBjZWxsJworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTog
dGFibGUgY2VsbCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6
IHRhYmxlIGNlbGwnCitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUzLmNoaWxkQXRJbmRl
eChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMy5jaGlsZEF0SW5k
ZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyA2CitQ
QVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJwor
UEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcK
K1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwn
CitQQVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxs
JworUEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2Vs
bCcKK1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNl
bGwnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDEzZmNhZDUuLjU2OTVkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxMS0wNC0wMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10g
QVJJQSB0YWJsZXMgbm90IGV4cG9zaW5nIGNlbGxzIGFzIEhUTUwgdGFibGVzIGRvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MworCisgICAgICAg
IEV4cG9zZSBjZWxscyBmb3IgQVJJQSBncmlkcyBjb25zaXN0ZW50bHkgd2l0aCBIVE1MIHRhYmxl
cyBpbiBHVEssCisgICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3Ro
ZXIgcGxhdGZvcm1zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRD
aGlsZCk6IFJvd3MgYXJlIG5vdCBnb2luZworICAgICAgICB0byBiZSBleHBvc2VkIHRvIEFUSyBz
byBtYWtlIHN1cmUgdGhhdCB0aGVpciBjaGlsZHJlbiAodGhlIGNlbGxzKQorICAgICAgICBhcmUg
ZXhwb3NlZCBhbnl3YXkgYXMgY2hpbGRyZW4gb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGFibGUuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogRW5z
dXJlIGFkZENoaWxkKCkKKyAgICAgICAgaXMgYWx3YXlzIGNhbGxlZCBmb3IgdGhlIEdUSyBwbGF0
Zm9ybS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGF0a1JvbGUpOiBNYXAgQ29sdW1uSGVhZGVyIGFuZCBS
b3dIZWFkZXIgdG8gQVRLX1JPTEVfVEFCTEVfQ0VMTC4KKwogMjAxMS0wNC0wMSAgTU9SSVRBIEhh
amltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlBUklBR3JpZC5jcHAKaW5kZXggZDUxNzUwYS4uOGJiZTQ4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNw
cApAQCAtNzUsNyArNzUsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxk
KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNoaWxkLCBIYXNoU2V0PEFjY2Vzc2kKICAgICAKICAgICBy
b3ctPnNldFJvd0luZGV4KChpbnQpbV9yb3dzLnNpemUoKSk7ICAgICAgICAKICAgICBtX3Jvd3Mu
YXBwZW5kKHJvdyk7CisKKyNpZiBQTEFURk9STShHVEspCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBoYXZlIHRoZSB0YWJsZSByb3dzIGV4cGxpY2l0bHkgZXhwb3NlZAorICAgIC8vIGZvciB0aGUg
R1RLIHBvcnQsIGJ1dCBqdXN0IHRoZSBjZWxscyBpbnNpZGUgb2YgdGhlbQorICAgIC8vIGluc3Rl
YWQsIGluIHRoZSBzYW1lIHdheSBpdCdzIGRvbmUgZm9yIEhUTUwgdGFibGVzLgorICAgIG1fY2hp
bGRyZW4uYXBwZW5kKHJvdy0+Y2hpbGRyZW4oKSk7CisjZWxzZQogICAgIG1fY2hpbGRyZW4uYXBw
ZW5kKHJvdyk7CisjZW5kaWYKKwogICAgIGFwcGVuZGVkUm93cy5hZGQocm93KTsKIH0KICAgICAK
QEAgLTk5LDYgKzEwOCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJl
bigpCiAgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSAwOwogICAgIGZvciAoUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgewogCisjaWYgIVBMQVRGT1JNKEdUSykKICAgICAgICAgLy8gaW4g
Y2FzZSB0aGUgcmVuZGVyIHRyZWUgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgQVJJQSBoaWVy
YXJjaHksIGxvb2sgYXQgdGhlIGNoaWxkcmVuCiAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpKSB7CiAgICAgICAgICAgICBpZiAoIWNoaWxkLT5oYXNDaGlsZHJlbigp
KQpAQCAtMTA4LDggKzExOCwxMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRkQ2hp
bGRyZW4oKQogICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gY2hpbGRyZW4uc2l6ZSgpOwog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgICAgIGFkZENoaWxkKGNoaWxkcmVuW2ldLmdldCgpLCBhcHBlbmRlZFJvd3MsIGNvbHVt
bkNvdW50KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhZGRDaGlsZChjaGlsZC5nZXQo
KSwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7ICAgICAgICAgICAgCisKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgYWRkQ2hpbGQoY2hpbGQuZ2V0
KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOwogICAgIH0KICAgICAKICAgICAvLyBtYWtl
IHRoZSBjb2x1bW5zIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZmlyc3Qg
Ym9keQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGE1NThlMjIuLjIx
ZGI3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTQ1NSw2ICs0
NTUsOCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAg
ICAgY2FzZSBHcm91cFJvbGU6CiAgICAgY2FzZSBSYWRpb0dyb3VwUm9sZToKICAgICAgICAgcmV0
dXJuIEFUS19ST0xFX1BBTkVMOworICAgIGNhc2UgUm93SGVhZGVyUm9sZTogLy8gUm93IGhlYWRl
cnMgYXJlIGNlbGxzIGFmdGVyIGFsbC4KKyAgICBjYXNlIENvbHVtbkhlYWRlclJvbGU6IC8vIENv
bHVtbiBoZWFkZXJzIGFyZSBjZWxscyBhZnRlciBhbGwuCiAgICAgY2FzZSBDZWxsUm9sZToKICAg
ICAgICAgcmV0dXJuIEFUS19ST0xFX1RBQkxFX0NFTEw7CiAgICAgY2FzZSBMaW5rUm9sZToKLS0g
CjEuNy40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88068</attachid>
            <date>2011-04-04 09:34:53 -0700</date>
            <delta_ts>2011-04-05 04:04:43 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-02-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12729</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBkNWE1MjEzYmMyMTg2ZTk1ZmViYTgwNDg4NmY2MmIzMjZhNTFmOTk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDEgQXByIDIwMTEgMTg6Mjg6MjkgKzAyMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTA0LTAyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBFeHBvc2Ug
Y2VsbHMgZm9yIEFSSUEgZ3JpZHMgY29uc2lzdGVudGx5IHdpdGggSFRNTCB0YWJsZXMgaW4gR1RL
LAogICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3RoZXIgcGxhdGZv
cm1zLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoK
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZCk6IFJvd3Mg
YXJlIG5vdCBnb2luZwogICAgICAgIHRvIGJlIGV4cG9zZWQgdG8gQVRLIHNvIG1ha2Ugc3VyZSB0
aGF0IHRoZWlyIGNoaWxkcmVuICh0aGUgY2VsbHMpCiAgICAgICAgYXJlIGV4cG9zZWQgYW55d2F5
IGFzIGNoaWxkcmVuIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IHRhYmxlLgogICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogRW5zdXJlIGFkZENoaWxkKCkK
ICAgICAgICBpcyBhbHdheXMgY2FsbGVkIGZvciB0aGUgR1RLIHBsYXRmb3JtLgoKICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHA6CiAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVudFRhYmxlKTogSWdub3JlIHJv
d3MsCiAgICAgICAgd2hpY2ggYXJlIGlnbm9yZWQgZm9yIEdUSywgd2hlbiB0cnlpbmcgdG8gZmlu
ZCB0aGUgcGFyZW50IHRhYmxlLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjpyb3dJbmRleFJhbmdlKTogVGFrZSBpbnRvCiAgICAgICAgYWNjb3VudCB0aGF0IHJv
d3MgYXJlIGlnbm9yZWQgZm9yIGFjY2Vzc2liaWxpdHkgaW4gR1RLLiBBbHNvLAogICAgICAgIGRv
bid0IHVzZSBtZXRob2RzIGZyb20gQWNjZXNzaWJpbGl0eVRhYmxlUm93IGluIHRoZSBHVEsgcGxh
dGZvcm0uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNvbHVt
bkluZGV4UmFuZ2UpOiBUYWtlIGludG8KICAgICAgICBhY2NvdW50IHRoYXQgcm93cyBhcmUgaWdu
b3JlZCBmb3IgYWNjZXNzaWJpbGl0eSBpbiBHVEsuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtSb2xlKTog
TWFwIENvbHVtbkhlYWRlciBhbmQgUm93SGVhZGVyIHRvIEFUS19ST0xFX1RBQkxFX0NFTEwuCgoy
MDExLTA0LTAyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEgdGFi
bGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBVbnNraXBwZWQg
cGFzc2luZyB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgZXhwZWN0YXRpb25zLgoKICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJpbGl0eSB0ZXN0LgogICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzIC0KIC4uLi9hcmlhLXRhYmxlLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysrKysrKysrKysrKwog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI5
ICsrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAg
ICAgICAgfCAgIDE3ICsrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5jcHAgICAgfCAgIDQ0ICsrKysrKysrKysrKystCiAuLi4vZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgIDIgKwogNyBmaWxlcyBjaGFuZ2Vk
LCAxNTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzU0MGI4OC4uNWRhNTNhYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTA0LTAyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NDYzCisKKyAg
ICAgICAgVW5za2lwcGVkIHBhc3NpbmcgdGVzdCBhbmQgYWRkZWQgR1RLLXNwZWNpZmljIGV4cGVj
dGF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNz
aWJpbGl0eSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMDQtMDQgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVuc2tpcHBlZCB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgbmV3IGJhc2VsaW5lLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBkYjU3ZGU0Li5hMDc0OWZiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTIzMyw5ICsxMjMzLDYgQEAgcGx1Z2lucy9wbHVnaW4tZG9j
dW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
YmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc1NjQKLXBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtdGFibGUtaGllcmFyY2h5Lmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTA4NzIKIGh0dHAvdGVzdHMvbWlzYy9kbnMtcHJlZmV0Y2gtY29udHJv
bC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTkxZWZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1o
aWVyYXJjaHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjEgQEAKK2ZvbworYmFyCitPZGQKK0V2
ZW4KKzEKKzIKKzMKKzQKK2hlbGxvCit3b3JsZAorT2RkCitFdmVuCisxCisKKzIKKworMworCis0
CisKK1RoaXMgdGVzdHMgdGhlIEF0ayB0YWJsZSBoaWVyYXJoeSBmb3IgYW4gQVJJQSB0YWJsZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGFibGUxLnJvbGUgaXMgJ0FY
Um9sZTogdGFibGUnCitQQVNTIHRhYmxlMS5yb3dDb3VudCBpcyAxCitQQVNTIHRhYmxlMS5jb2x1
bW5Db3VudCBpcyAyCitQQVNTIHRhYmxlMi5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFTUyB0
YWJsZTIucm93Q291bnQgaXMgMworUEFTUyB0YWJsZTIuY29sdW1uQ291bnQgaXMgMgorUEFTUyB0
YWJsZTMucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGUzLnJvd0NvdW50IGlzIDEK
K1BBU1MgdGFibGUzLmNvbHVtbkNvdW50IGlzIDIKK1BBU1MgdGFibGU0LnJvbGUgaXMgJ0FYUm9s
ZTogdGFibGUnCitQQVNTIHRhYmxlNC5yb3dDb3VudCBpcyAzCitQQVNTIHRhYmxlNC5jb2x1bW5D
b3VudCBpcyAyCitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUxLmNoaWxkQXRJbmRleChp
KS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMS5jaGlsZEF0SW5kZXgo
aSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyA2CitQQVNT
IHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFT
UyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BB
U1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQ
QVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJwor
UEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcK
K1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwn
CitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUzLmNoaWxkQXRJbmRleChpKS5yb2xlIGlz
ICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMy5jaGlsZEF0SW5kZXgoaSkucm9sZSBp
cyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyA2CitQQVNTIHRhYmxlNC5j
aGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTQu
Y2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGU0
LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxl
NC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJs
ZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFi
bGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDUzMjgyNTguLmZmYmI4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMS0wNC0w
MiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQVJJQSB0YWJsZXMg
bm90IGV4cG9zaW5nIGNlbGxzIGFzIEhUTUwgdGFibGVzIGRvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MworCisgICAgICAgIEV4cG9zZSBjZWxs
cyBmb3IgQVJJQSBncmlkcyBjb25zaXN0ZW50bHkgd2l0aCBIVE1MIHRhYmxlcyBpbiBHVEssCisg
ICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3RoZXIgcGxhdGZvcm1z
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZCk6IFJvd3Mg
YXJlIG5vdCBnb2luZworICAgICAgICB0byBiZSBleHBvc2VkIHRvIEFUSyBzbyBtYWtlIHN1cmUg
dGhhdCB0aGVpciBjaGlsZHJlbiAodGhlIGNlbGxzKQorICAgICAgICBhcmUgZXhwb3NlZCBhbnl3
YXkgYXMgY2hpbGRyZW4gb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGFibGUuCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogRW5zdXJlIGFkZENoaWxk
KCkKKyAgICAgICAgaXMgYWx3YXlzIGNhbGxlZCBmb3IgdGhlIEdUSyBwbGF0Zm9ybS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpwYXJlbnRUYWJsZSk6IEln
bm9yZSByb3dzLAorICAgICAgICB3aGljaCBhcmUgaWdub3JlZCBmb3IgR1RLLCB3aGVuIHRyeWlu
ZyB0byBmaW5kIHRoZSBwYXJlbnQgdGFibGUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsOjpyb3dJbmRleFJhbmdlKTogVGFrZSBpbnRvCisgICAgICAgIGFjY291
bnQgdGhhdCByb3dzIGFyZSBpZ25vcmVkIGZvciBhY2Nlc3NpYmlsaXR5IGluIEdUSy4gQWxzbywK
KyAgICAgICAgZG9uJ3QgdXNlIG1ldGhvZHMgZnJvbSBBY2Nlc3NpYmlsaXR5VGFibGVSb3cgaW4g
dGhlIEdUSyBwbGF0Zm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGw6OmNvbHVtbkluZGV4UmFuZ2UpOiBUYWtlIGludG8KKyAgICAgICAgYWNjb3VudCB0aGF0
IHJvd3MgYXJlIGlnbm9yZWQgZm9yIGFjY2Vzc2liaWxpdHkgaW4gR1RLLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAg
ICAgICAoYXRrUm9sZSk6IE1hcCBDb2x1bW5IZWFkZXIgYW5kIFJvd0hlYWRlciB0byBBVEtfUk9M
RV9UQUJMRV9DRUxMLgorCiAyMDExLTA0LTAxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkLmNwcAppbmRleCBkNTE3NTBhLi44YmJlNDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCkBAIC03NSw3ICs3
NSwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRkQ2hpbGQoQWNjZXNzaWJpbGl0
eU9iamVjdCogY2hpbGQsIEhhc2hTZXQ8QWNjZXNzaQogICAgIAogICAgIHJvdy0+c2V0Um93SW5k
ZXgoKGludCltX3Jvd3Muc2l6ZSgpKTsgICAgICAgIAogICAgIG1fcm93cy5hcHBlbmQocm93KTsK
KworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAvLyBXZSBkb24ndCB3YW50IHRvIGhhdmUgdGhlIHRh
YmxlIHJvd3MgZXhwbGljaXRseSBleHBvc2VkCisgICAgLy8gZm9yIHRoZSBHVEsgcG9ydCwgYnV0
IGp1c3QgdGhlIGNlbGxzIGluc2lkZSBvZiB0aGVtCisgICAgLy8gaW5zdGVhZCwgaW4gdGhlIHNh
bWUgd2F5IGl0J3MgZG9uZSBmb3IgSFRNTCB0YWJsZXMuCisgICAgbV9jaGlsZHJlbi5hcHBlbmQo
cm93LT5jaGlsZHJlbigpKTsKKyNlbHNlCiAgICAgbV9jaGlsZHJlbi5hcHBlbmQocm93KTsKKyNl
bmRpZgorCiAgICAgYXBwZW5kZWRSb3dzLmFkZChyb3cpOwogfQogICAgIApAQCAtOTksNiArMTA4
LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKCkKICAgICB1bnNp
Z25lZCBjb2x1bW5Db3VudCA9IDA7CiAgICAgZm9yIChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4gY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7CiAKKyNpZiAhUExBVEZPUk0oR1RLKQogICAgICAgICAvLyBpbiBjYXNlIHRoZSByZW5k
ZXIgdHJlZSBkb2Vzbid0IG1hdGNoIHRoZSBleHBlY3RlZCBBUklBIGhpZXJhcmNoeSwgbG9vayBh
dCB0aGUgY2hpbGRyZW4KICAgICAgICAgaWYgKGNoaWxkLT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
KCkpIHsKICAgICAgICAgICAgIGlmICghY2hpbGQtPmhhc0NoaWxkcmVuKCkpCkBAIC0xMDgsOCAr
MTE4LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbigpCiAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgICAgICAgICAgYWRk
Q2hpbGQoY2hpbGRyZW5baV0uZ2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkZENoaWxkKGNoaWxkLmdldCgpLCBhcHBlbmRlZFJv
d3MsIGNvbHVtbkNvdW50KTsgICAgICAgICAgICAKKworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyNlbmRpZgorICAgICAgICBhZGRDaGlsZChjaGlsZC5nZXQoKSwgYXBwZW5kZWRS
b3dzLCBjb2x1bW5Db3VudCk7CiAgICAgfQogICAgIAogICAgIC8vIG1ha2UgdGhlIGNvbHVtbnMg
YmFzZWQgb24gdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBmaXJzdCBib2R5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsLmNwcAppbmRleCBjODE1N2Y1Li5mMGQ0MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmgi
CiAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVRhYmxlLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CkBAIC01MywzMyArNTQsNjggQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsPiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUoUmVuZGVy
T2IKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVu
dFRhYmxlKCkgY29uc3QKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBwYXJl
bnRPYmplY3RVbmlnbm9yZWQoKTsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAvLyBBY2Nlc3Np
YmlsaXR5IG9iamVjdHMgZm9yIHJvd3MgYXJlIHBsYWlubHkgaWdub3JlZCBpbiBHVEsuCisgICAg
aWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisjZWxzZQogICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzVGFibGVSb3co
KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCiAgICAgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRP
YmplY3RVbmlnbm9yZWQoKTsKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5pc0FjY2Vzc2li
aWxpdHlUYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICAKKyNlbmRpZgorCiAgICAgcmV0
dXJuIHBhcmVudDsKIH0KICAgICAKIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cm93
SW5kZXhSYW5nZShwYWlyPGludCwgaW50PiYgcm93UmFuZ2UpCiB7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7CisKKyNpZiBQTEFURk9S
TShHVEspCisgICAgLy8gQWNjZXNzaWJpbGl0eSBvYmplY3RzIGZvciByb3dzIGFyZSBwbGFpbmx5
IGlnbm9yZWQgaW4gR1RLLgorICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzQWNjZXNzaWJp
bGl0eVRhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciBzaWJsaW5ncyA9IHBhcmVudC0+Y2hpbGRyZW4oKTsKKyAgICB1bnNpZ25lZCBjaGls
ZHJlblNpemUgPSBzaWJsaW5ncy5zaXplKCk7CisgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSBz
dGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGUqPihwYXJlbnQpLT5jb2x1bW5Db3VudCgpOwor
ICAgIGlmICghY29sdW1uQ291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAodW5zaWdu
ZWQgayA9IDA7IGsgPCBjaGlsZHJlblNpemU7ICsraykgeworICAgICAgICBpZiAoc2libGluZ3Nb
a10uZ2V0KCkgPT0gdGhpcykgeworICAgICAgICAgICAgcm93UmFuZ2UuZmlyc3QgPSBrIC8gY29s
dW1uQ291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyNlbHNlCiAg
ICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aXNUYWJsZVJvdygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICAvLyBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZ3JpZCBjZWxscyBjYW5ub3Qgc3BhbiBy
b3dzCiAgICAgcm93UmFuZ2UuZmlyc3QgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGVS
b3cqPihwYXJlbnQpLT5yb3dJbmRleCgpOwotICAgIHJvd1JhbmdlLnNlY29uZCA9IDE7ICAgIAor
I2VuZGlmCisKKyAgICAvLyBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZ3JpZCBjZWxscyBjYW5ub3Qg
c3BhbiByb3dzCisgICAgcm93UmFuZ2Uuc2Vjb25kID0gMTsKIH0KIAogdm9pZCBBY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsOjpjb2x1bW5JbmRleFJhbmdlKHBhaXI8aW50LCBpbnQ+JiBjb2x1bW5S
YW5nZSkKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBwYXJlbnRPYmplY3RV
bmlnbm9yZWQoKTsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAvLyBBY2Nlc3NpYmlsaXR5IG9i
amVjdHMgZm9yIHJvd3MgYXJlIHBsYWlubHkgaWdub3JlZCBpbiBHVEsuCisgICAgaWYgKCFwYXJl
bnQgfHwgIXBhcmVudC0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAgcmV0dXJuOwor
I2Vsc2UKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5pc1RhYmxlUm93KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAKKyNlbmRpZgorCiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
IHNpYmxpbmdzID0gcGFyZW50LT5jaGlsZHJlbigpOwogICAgIHVuc2lnbmVkIGNoaWxkcmVuU2l6
ZSA9IHNpYmxpbmdzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgY2hpbGRy
ZW5TaXplOyArK2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCBh
NTU4ZTIyLi4yMWRiNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBA
IC00NTUsNiArNDU1LDggQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlKQogICAgIGNhc2UgR3JvdXBSb2xlOgogICAgIGNhc2UgUmFkaW9Hcm91cFJvbGU6CiAg
ICAgICAgIHJldHVybiBBVEtfUk9MRV9QQU5FTDsKKyAgICBjYXNlIFJvd0hlYWRlclJvbGU6IC8v
IFJvdyBoZWFkZXJzIGFyZSBjZWxscyBhZnRlciBhbGwuCisgICAgY2FzZSBDb2x1bW5IZWFkZXJS
b2xlOiAvLyBDb2x1bW4gaGVhZGVycyBhcmUgY2VsbHMgYWZ0ZXIgYWxsLgogICAgIGNhc2UgQ2Vs
bFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9UQUJMRV9DRUxMOwogICAgIGNhc2UgTGlu
a1JvbGU6Ci0tIAoxLjcuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88199</attachid>
            <date>2011-04-05 04:04:43 -0700</date>
            <delta_ts>2011-04-06 04:20:10 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-05-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>13713</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAzODIyNWFjNjgxZTYzYTgyN2Y4ODIyMGRjMDE4YjBlMGIxMjUxYTNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDEgQXByIDIwMTEgMTg6Mjg6MjkgKzAyMDAKU3ViamVjdDogW1BBVENI
IDEvMl0gMjAxMS0wNC0wNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBB
UklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8KICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0NjMKCiAgICAgICAgRXhw
b3NlIGNlbGxzIGZvciBBUklBIGdyaWRzIGNvbnNpc3RlbnRseSB3aXRoIEhUTUwgdGFibGVzIGlu
IEdUSywKICAgICAgICBrZWVwaW5nIHRoZSBzYW1lIGJlaGF2aW91ciBmb3IgdGhlIG90aGVyIHBs
YXRmb3Jtcy4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5j
cHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRkQ2hpbGQpOiBS
b3dzIGFyZSBub3QgZ29pbmcKICAgICAgICB0byBiZSBleHBvc2VkIHRvIEFUSyBzbyBtYWtlIHN1
cmUgdGhhdCB0aGVpciBjaGlsZHJlbiAodGhlIGNlbGxzKQogICAgICAgIGFyZSBleHBvc2VkIGFu
eXdheSBhcyBjaGlsZHJlbiBvZiB0aGUgYWNjZXNzaWJpbGl0eSB0YWJsZS4KICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbik6IE1ha2UgbmVlZGVkIGNo
YW5nZXMKICAgICAgICB0byBjb25zaWRlciB0aGUgc3BlY2lhbCBzaXR1YXRpb24gZm9yIEdUSyAo
cm93cyBpZ25vcmVkKSB3aGlsZQogICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3IgZm9y
IG90aGVyIHBsYXRmb3Jtcy4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZENlbGwuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRD
ZWxsOjpwYXJlbnRUYWJsZSk6IENvbnNpZGVyIHRoYXQKICAgICAgICByb3dzIGNvdWxkIGJlIGln
bm9yaW5nIGFjY2Vzc2liaWxpdHksIGhlbmNlIHRoZSBwYXJlbnQgY291bGQgYmUKICAgICAgICBy
ZXRyaWV2ZWQgaW4gdGhlIGZpcnN0IGNhbGwgdG8gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCkuLgog
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpyb3dJbmRleFJhbmdl
KTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNv
bHVtbkluZGV4UmFuZ2UpOiBEaXR0by4uCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtSb2xlKTogTWFwIENv
bHVtbkhlYWRlciBhbmQgUm93SGVhZGVyIHRvIEFUS19ST0xFX1RBQkxFX0NFTEwuCgoyMDExLTA0
LTA1ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEgdGFibGVzIG5v
dCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBVbnNraXBwZWQgcGFzc2lu
ZyB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgZXhwZWN0YXRpb25zLgoKICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJpbGl0eSB0ZXN0LgogICAgICAgICog
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTIgKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQg
ICAgICAgICAgICAgICAgICAgfCAgICAzIC0KIC4uLi9hcmlhLXRhYmxlLWhpZXJhcmNoeS1leHBl
Y3RlZC50eHQgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysrKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI4ICsrKysr
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAgICAgICAg
fCAgIDMyICsrKysrKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsLmNwcCAgICB8ICAgNTUgKysrKysrKysrKysrKysrKy0tCiAuLi4vZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgIDIgKwogNyBmaWxlcyBjaGFu
Z2VkLCAxODQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJh
cmNoeS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzU0MGI4OC4uN2M0MzcxZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTA0LTA1ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NDYzCisK
KyAgICAgICAgVW5za2lwcGVkIHBhc3NpbmcgdGVzdCBhbmQgYWRkZWQgR1RLLXNwZWNpZmljIGV4
cGVjdGF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNj
ZXNzaWJpbGl0eSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMDQtMDQgIE1h
cmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIFVuc2tpcHBlZCB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgbmV3IGJhc2VsaW5l
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBkYjU3ZGU0Li5hMDc0OWZiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTIzMyw5ICsxMjMzLDYgQEAgcGx1Z2lucy9wbHVnaW4t
ZG9jdW1lbnQtbG9hZC1wcmV2ZW50ZWQtdXNlcnNjcmlwdC5odG1sCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0MgogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwKIAotIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc1NjQKLXBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtdGFibGUtaGllcmFyY2h5Lmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTA4NzIKIGh0dHAvdGVzdHMvbWlzYy9kbnMtcHJlZmV0Y2gtY29u
dHJvbC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTkxZWZiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJs
ZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjEgQEAKK2ZvbworYmFyCitPZGQK
K0V2ZW4KKzEKKzIKKzMKKzQKK2hlbGxvCit3b3JsZAorT2RkCitFdmVuCisxCisKKzIKKworMwor
Cis0CisKK1RoaXMgdGVzdHMgdGhlIEF0ayB0YWJsZSBoaWVyYXJoeSBmb3IgYW4gQVJJQSB0YWJs
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGFibGUxLnJvbGUgaXMg
J0FYUm9sZTogdGFibGUnCitQQVNTIHRhYmxlMS5yb3dDb3VudCBpcyAxCitQQVNTIHRhYmxlMS5j
b2x1bW5Db3VudCBpcyAyCitQQVNTIHRhYmxlMi5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFT
UyB0YWJsZTIucm93Q291bnQgaXMgMworUEFTUyB0YWJsZTIuY29sdW1uQ291bnQgaXMgMgorUEFT
UyB0YWJsZTMucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGUzLnJvd0NvdW50IGlz
IDEKK1BBU1MgdGFibGUzLmNvbHVtbkNvdW50IGlzIDIKK1BBU1MgdGFibGU0LnJvbGUgaXMgJ0FY
Um9sZTogdGFibGUnCitQQVNTIHRhYmxlNC5yb3dDb3VudCBpcyAzCitQQVNTIHRhYmxlNC5jb2x1
bW5Db3VudCBpcyAyCitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUxLmNoaWxkQXRJbmRl
eChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMS5jaGlsZEF0SW5k
ZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyA2CitQ
QVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJwor
UEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcK
K1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwn
CitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxs
JworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2Vs
bCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNl
bGwnCitQQVNTIGNoaWxkcmVuIGlzIDIKK1BBU1MgdGFibGUzLmNoaWxkQXRJbmRleChpKS5yb2xl
IGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMy5jaGlsZEF0SW5kZXgoaSkucm9s
ZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyA2CitQQVNTIHRhYmxl
NC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJs
ZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFi
bGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRh
YmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0
YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1Mg
dGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDUzMjgyNTguLjE4OTgwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0w
NC0wNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQVJJQSB0YWJs
ZXMgbm90IGV4cG9zaW5nIGNlbGxzIGFzIEhUTUwgdGFibGVzIGRvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MworCisgICAgICAgIEV4cG9zZSBj
ZWxscyBmb3IgQVJJQSBncmlkcyBjb25zaXN0ZW50bHkgd2l0aCBIVE1MIHRhYmxlcyBpbiBHVEss
CisgICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3RoZXIgcGxhdGZv
cm1zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZCk6IFJv
d3MgYXJlIG5vdCBnb2luZworICAgICAgICB0byBiZSBleHBvc2VkIHRvIEFUSyBzbyBtYWtlIHN1
cmUgdGhhdCB0aGVpciBjaGlsZHJlbiAodGhlIGNlbGxzKQorICAgICAgICBhcmUgZXhwb3NlZCBh
bnl3YXkgYXMgY2hpbGRyZW4gb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGFibGUuCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogTWFrZSBuZWVkZWQg
Y2hhbmdlcworICAgICAgICB0byBjb25zaWRlciB0aGUgc3BlY2lhbCBzaXR1YXRpb24gZm9yIEdU
SyAocm93cyBpZ25vcmVkKSB3aGlsZQorICAgICAgICBrZWVwaW5nIHRoZSBzYW1lIGJlaGF2aW9y
IGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlBUklBR3JpZENlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFS
SUFHcmlkQ2VsbDo6cGFyZW50VGFibGUpOiBDb25zaWRlciB0aGF0CisgICAgICAgIHJvd3MgY291
bGQgYmUgaWdub3JpbmcgYWNjZXNzaWJpbGl0eSwgaGVuY2UgdGhlIHBhcmVudCBjb3VsZCBiZQor
ICAgICAgICByZXRyaWV2ZWQgaW4gdGhlIGZpcnN0IGNhbGwgdG8gcGFyZW50T2JqZWN0VW5pZ25v
cmVkKCkuLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cm93
SW5kZXhSYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbDo6Y29sdW1uSW5kZXhSYW5nZSk6IERpdHRvLi4KKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGF0
a1JvbGUpOiBNYXAgQ29sdW1uSGVhZGVyIGFuZCBSb3dIZWFkZXIgdG8gQVRLX1JPTEVfVEFCTEVf
Q0VMTC4KKwogMjAxMS0wNC0wMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAK
aW5kZXggZDUxNzUwYS4uMjFjYzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApAQCAtNzUsNyArNzUsMTQgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGNoaWxkLCBIYXNoU2V0PEFjY2Vzc2kKICAgICAKICAgICByb3ctPnNldFJvd0luZGV4KChpbnQp
bV9yb3dzLnNpemUoKSk7ICAgICAgICAKICAgICBtX3Jvd3MuYXBwZW5kKHJvdyk7Ci0gICAgbV9j
aGlsZHJlbi5hcHBlbmQocm93KTsKKworICAgIGlmICghcm93LT5hY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkKCkpCisgICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKHJvdyk7CisjaWYgUExBVEZPUk0oR1RL
KQorICAgIGVsc2UKKyAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQocm93LT5jaGlsZHJlbigpKTsK
KyNlbmRpZgorCiAgICAgYXBwZW5kZWRSb3dzLmFkZChyb3cpOwogfQogICAgIApAQCAtMTA0LDEw
ICsxMTEsMzMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKCkKICAg
ICAgICAgICAgIGlmICghY2hpbGQtPmhhc0NoaWxkcmVuKCkpCiAgICAgICAgICAgICAgICAgY2hp
bGQtPmFkZENoaWxkcmVuKCk7CiAgICAgICAgICAgICAKKyNpZiBQTEFURk9STShHVEspCisgICAg
ICAgICAgICAvLyBSb3dzIGFyZSBub3QgZXhwb3NlZCBhcyBhY2Nlc3NpYmlsaXR5IG9iamVjdHMg
aW4gR1RLIHNvCisgICAgICAgICAgICAvLyB0aGV5J2xsIGFuc3dlciAndHJ1ZScgdG8gYWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpLiBXZSdsbAorICAgICAgICAgICAgLy8gY2FsbCBhbnl3YXkgYWRk
Q2hpbGQoKSBpbiB0aGVzZSBjYXNlcyBhbmQgbGV0IHRoYXQgZnVuY3Rpb24KKyAgICAgICAgICAg
IC8vIGRlY2lkZSB3aGV0aGVyIHRvIGFkZCB0aGUgY2hpbGRyZW4gKEdUSykgb3IgdGhlIHJvdyBp
dHNlbGYKKyAgICAgICAgICAgIC8vIChvdGhlciBwbGF0Zm9ybXMpIHRvIHRoZSBhY2Nlc3NpYmls
aXR5IGhpZXJhcmNoeS4KKyAgICAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpCisgICAgICAgICAgICAgICAgJiYgKGNoaWxkLT5pc1RhYmxlUm93KCkgfHwgY2hpbGQt
PmFyaWFSb2xlQXR0cmlidXRlKCkgPT0gUm93Um9sZSkpIHsKKyAgICAgICAgICAgICAgICBhZGRD
aGlsZChjaGlsZC5nZXQoKSwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7CisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEluIGNhc2Ug
dGhlIHJlbmRlciB0cmVlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4cGVjdGVkIEFSSUEKKyAgICAgICAg
ICAgIC8vIGhpZXJhcmNoeSwgbG9vayBhdCB0aGUgY2hpbGRyZW4uIE5PVEU6IERvIG5vdCBuYXZp
Z2F0ZQorICAgICAgICAgICAgLy8gY2hpbGRyZW4gdGhyb3VnaCB0aGUgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIHNpbmNlIHdlCisgICAgICAgICAgICAvLyB3YW50IHRvIGxlYXZlIHRoZSBh
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY2hlY2sgZm9yIHRoZQorICAgICAgICAgICAgLy8gYWRk
Q2hpbGQoKSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGdldHRpbmcgbm93IGEgbGlzdCBvZgorICAgICAg
ICAgICAgLy8gY2hpbGRyZW4gbm90IGlnbm9yaW5nIGFjY2Vzc2liaWxpdHkuCisgICAgICAgICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBncmFuZENoaWxkID0gMDsKKyAgICAgICAgICAgIGZvciAo
Z3JhbmRDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyYW5kQ2hpbGQ7IGdyYW5kQ2hpbGQg
PSBncmFuZENoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAgIGFkZENoaWxkKGdy
YW5kQ2hpbGQsIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOworI2Vsc2UKICAgICAgICAgICAg
IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjaGlsZHJlbiA9IGNoaWxkLT5jaGlsZHJlbigp
OwogICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICAgICAg
ICAgIGFkZENoaWxkKGNoaWxkcmVuW2ldLmdldCgpLCBhcHBlbmRlZFJvd3MsIGNvbHVtbkNvdW50
KTsKKyNlbmRpZgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGFkZENoaWxkKGNoaWxkLmdl
dCgpLCBhcHBlbmRlZFJvd3MsIGNvbHVtbkNvdW50KTsgICAgICAgICAgICAKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRDZWxsLmNwcAppbmRleCBjODE1N2Y1Li43ZGZiMTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxs
LmgiCiAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eVRhYmxlLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC01Myw5ICs1NCwxNyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlBUklBR3JpZENlbGw+IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShSZW5k
ZXJPYgogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cGFy
ZW50VGFibGUoKSBjb25zdAogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9IHBh
cmVudE9iamVjdFVuaWdub3JlZCgpOwotICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzVGFi
bGVSb3coKSkKKyAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCisjaWYg
UExBVEZPUk0oR1RLKQorICAgIGlmIChwYXJlbnQtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpCisg
ICAgICAgIHJldHVybiBwYXJlbnQ7CisjZW5kaWYKKworICAgIGlmICghcGFyZW50LT5pc1RhYmxl
Um93KCkpCisgICAgICAgIHJldHVybiAwOworCiAgICAgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRP
YmplY3RVbmlnbm9yZWQoKTsKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5pc0FjY2Vzc2li
aWxpdHlUYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTY2LDIwICs3NSw1NiBAQCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpwYXJlbnRUYWJsZSgp
IGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnJvd0luZGV4UmFuZ2UocGFp
cjxpbnQsIGludD4mIHJvd1JhbmdlKQogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVu
dCA9IHBhcmVudE9iamVjdFVuaWdub3JlZCgpOwotICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQt
PmlzVGFibGVSb3coKSkKKyAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHBhcmVudC0+aXNUYWJsZVJvdygpKQorICAgICAgICByb3dSYW5nZS5maXJzdCA9IHN0YXRp
Y19jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZVJvdyo+KHBhcmVudCktPnJvd0luZGV4KCk7CisgICAg
ZWxzZSB7CisjaWYgUExBVEZPUk0oR1RLKQorICAgICAgICAvLyBJbiB0aGUgR1RLIHBsYXRmb3Jt
LCByb3dzIGFyZSBjdXJyZW50bHkgaWdub3JpbmcKKyAgICAgICAgLy8gYWNjZXNzaWJpbGl0eSwg
c28gY2hlY2sgaWYgd2UgZ290IHRoZSB0YWJsZSBpbnN0ZWFkLgorICAgICAgICBpZiAoIXBhcmVu
dC0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2libGluZ3MgPSBwYXJlbnQtPmNoaWxkcmVu
KCk7CisgICAgICAgIHVuc2lnbmVkIGNoaWxkcmVuU2l6ZSA9IHNpYmxpbmdzLnNpemUoKTsKKyAg
ICAgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5VGFi
bGUqPihwYXJlbnQpLT5jb2x1bW5Db3VudCgpOworICAgICAgICBpZiAoIWNvbHVtbkNvdW50KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBj
aGlsZHJlblNpemU7ICsraykgeworICAgICAgICAgICAgaWYgKHNpYmxpbmdzW2tdLmdldCgpID09
IHRoaXMpIHsKKyAgICAgICAgICAgICAgICByb3dSYW5nZS5maXJzdCA9IGsgLyBjb2x1bW5Db3Vu
dDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2Vs
c2UKICAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgfQogCiAgICAgLy8gYXMgZmFyIGFzIEkg
Y2FuIHRlbGwsIGdyaWQgY2VsbHMgY2Fubm90IHNwYW4gcm93cwotICAgIHJvd1JhbmdlLmZpcnN0
ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlUm93Kj4ocGFyZW50KS0+cm93SW5kZXgo
KTsKICAgICByb3dSYW5nZS5zZWNvbmQgPSAxOyAgICAKIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWRDZWxsOjpjb2x1bW5JbmRleFJhbmdlKHBhaXI8aW50LCBpbnQ+JiBjb2x1bW5SYW5n
ZSkKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBwYXJlbnRPYmplY3RVbmln
bm9yZWQoKTsKLSAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5pc1RhYmxlUm93KCkpCisgICAg
aWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKLSAgICAKKworICAgIGlmICghcGFyZW50LT5p
c1RhYmxlUm93KCkpIHsKKyNpZiBQTEFURk9STShHVEspCisgICAgICAgIC8vIEluIHRoZSBHVEsg
cGxhdGZvcm0sIHJvd3MgYXJlIGN1cnJlbnRseSBpZ25vcmluZworICAgICAgICAvLyBhY2Nlc3Np
YmlsaXR5LCBzbyBjaGVjayBpZiB3ZSBnb3QgdGhlIHRhYmxlIGluc3RlYWQuCisgICAgICAgIGlm
ICghcGFyZW50LT5pc0FjY2Vzc2liaWxpdHlUYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
I2Vsc2UKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgfQorCiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIHNpYmxpbmdzID0gcGFyZW50LT5jaGlsZHJlbigpOwogICAgIHVuc2ln
bmVkIGNoaWxkcmVuU2l6ZSA9IHNpYmxpbmdzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGsg
PSAwOyBrIDwgY2hpbGRyZW5TaXplOyArK2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAppbmRleCBhNTU4ZTIyLi4yMWRiNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwCkBAIC00NTUsNiArNDU1LDggQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgIGNhc2UgR3JvdXBSb2xlOgogICAgIGNhc2UgUmFk
aW9Hcm91cFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQU5FTDsKKyAgICBjYXNlIFJv
d0hlYWRlclJvbGU6IC8vIFJvdyBoZWFkZXJzIGFyZSBjZWxscyBhZnRlciBhbGwuCisgICAgY2Fz
ZSBDb2x1bW5IZWFkZXJSb2xlOiAvLyBDb2x1bW4gaGVhZGVycyBhcmUgY2VsbHMgYWZ0ZXIgYWxs
LgogICAgIGNhc2UgQ2VsbFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9UQUJMRV9DRUxM
OwogICAgIGNhc2UgTGlua1JvbGU6Ci0tIAoxLjcuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88393</attachid>
            <date>2011-04-06 04:20:10 -0700</date>
            <delta_ts>2011-04-11 09:44:32 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-06-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>13358</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBkYTYyMDRlZGJlOGZiNDQxNzJhZGQ1NzkxMDFmNWRlYjQxMDU1OTk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDEgQXByIDIwMTEgMTg6Mjg6MjkgKzAyMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTA0LTA2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBFeHBvc2Ug
Y2VsbHMgZm9yIEFSSUEgZ3JpZHMgY29uc2lzdGVudGx5IHdpdGggSFRNTCB0YWJsZXMgaW4gR1RL
LAogICAgICAgIGtlZXBpbmcgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgb3RoZXIgcGxhdGZv
cm1zLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoK
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZCk6IEFkZCB0
aGUgcm93J3MgY2hpbGRyZW4KICAgICAgICB0byB0aGUgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHkg
d2hlbiBhY2Nlc3NpYmlsaXR5IG9iamVjdHMgZm9yIHJvd3MKICAgICAgICBhcmUgaWdub3Jpbmcg
YWNjZXNzaWJpbGl0eSwgb3RoZXJ3aXNlIGFkZCB0aGUgcm93LgogICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKTogRG8gbm90IGNoZWNrIGF0CiAgICAg
ICAgdGhpcyBwb2ludCB3aGV0aGVyIGV2ZXJ5IGNoaWxkIG9mIHRoZSB0YWJsZSBpZ25vcmVzIG9y
IG5vdAogICAgICAgIGFjY2Vzc2liaWxpdHksIGxldHRpbmcgYWRkQ2hpbGQoKSBtYWtlIHRoZSBw
cm9wZXIgZGVjaXNpb24gbGF0ZXIuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbDo6cGFyZW50VGFibGUpOiBDb25zaWRlciB0aGF0CiAgICAgICAgcm93cyBjb3VsZCBi
ZSBpZ25vcmluZyBhY2Nlc3NpYmlsaXR5LCBoZW5jZSB0aGUgcGFyZW50IGNvdWxkIGJlCiAgICAg
ICAgcmV0cmlldmVkIGluIHRoZSBmaXJzdCBjYWxsIHRvIHBhcmVudE9iamVjdFVuaWdub3JlZCgp
LgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpyb3dJbmRleFJh
bmdlKTogRGl0dG8uCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6
OmNvbHVtbkluZGV4UmFuZ2UpOiBEaXR0by4uCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtSb2xlKTogTWFw
IENvbHVtbkhlYWRlciBhbmQgUm93SGVhZGVyIHRvIEFUS19ST0xFX1RBQkxFX0NFTEwuCgoyMDEx
LTA0LTA2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEgdGFibGVz
IG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBVbnNraXBwZWQgcGFz
c2luZyB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgZXhwZWN0YXRpb25zLgoKICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJpbGl0eSB0ZXN0LgogICAgICAg
ICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTIgKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgICAgICAgICAgICAgICAgICAgfCAgICAzIC0KIC4uLi9hcmlhLXRhYmxlLWhpZXJhcmNoeS1l
eHBlY3RlZC50eHQgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysrKysrKysrKysrKwogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI4ICsr
KysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAgICAg
ICAgfCAgIDMxICsrKysrKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklB
R3JpZENlbGwuY3BwICAgIHwgICA0MCArKysrKysrKysrKy0tCiAuLi4vZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgIDIgKwogNyBmaWxlcyBjaGFuZ2Vk
LCAxNTggaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJj
aHktZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGViNjk4NzQuLmQ5NzkyOWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMS0wNC0wNiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W0dUS10gQVJJQSB0YWJsZXMgbm90IGV4cG9zaW5nIGNlbGxzIGFzIEhUTUwgdGFibGVzIGRvCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MworCisg
ICAgICAgIFVuc2tpcHBlZCBwYXNzaW5nIHRlc3QgYW5kIGFkZGVkIEdUSy1zcGVjaWZpYyBleHBl
Y3RhdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwIGFjY2Vz
c2liaWxpdHkgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlh
LXRhYmxlLWhpZXJhcmNoeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMjIzMTRi
Ni4uNWUwMjQ5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyMzAsOSArMTIzMCw2
IEBAIHBsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWxvYWQtcHJldmVudGVkLXVzZXJzY3JpcHQuaHRt
bAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5NDIKIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2JhZC1zdWItcHJvdG9jb2wtY29udHJvbC1jaGFycy5odG1s
CiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NTY0Ci1wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS5odG1sCi0KICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODcyCiBodHRwL3Rlc3RzL21p
c2MvZG5zLXByZWZldGNoLWNvbnRyb2wuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhp
ZXJhcmNoeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
N2E5MWVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L2FyaWEtdGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYx
IEBACitmb28KK2JhcgorT2RkCitFdmVuCisxCisyCiszCis0CitoZWxsbword29ybGQKK09kZAor
RXZlbgorMQorCisyCisKKzMKKworNAorCitUaGlzIHRlc3RzIHRoZSBBdGsgdGFibGUgaGllcmFy
aHkgZm9yIGFuIEFSSUEgdGFibGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRhYmxlMS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFTUyB0YWJsZTEucm93Q291bnQg
aXMgMQorUEFTUyB0YWJsZTEuY29sdW1uQ291bnQgaXMgMgorUEFTUyB0YWJsZTIucm9sZSBpcyAn
QVhSb2xlOiB0YWJsZScKK1BBU1MgdGFibGUyLnJvd0NvdW50IGlzIDMKK1BBU1MgdGFibGUyLmNv
bHVtbkNvdW50IGlzIDIKK1BBU1MgdGFibGUzLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUnCitQQVNT
IHRhYmxlMy5yb3dDb3VudCBpcyAxCitQQVNTIHRhYmxlMy5jb2x1bW5Db3VudCBpcyAyCitQQVNT
IHRhYmxlNC5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFTUyB0YWJsZTQucm93Q291bnQgaXMg
MworUEFTUyB0YWJsZTQuY29sdW1uQ291bnQgaXMgMgorUEFTUyBjaGlsZHJlbiBpcyAyCitQQVNT
IHRhYmxlMS5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFT
UyB0YWJsZTEuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BB
U1MgY2hpbGRyZW4gaXMgNgorUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FY
Um9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdB
WFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAn
QVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMg
J0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlz
ICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBp
cyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyBjaGlsZHJlbiBpcyAyCitQQVNTIHRhYmxlMy5j
aGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTMu
Y2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgY2hpbGRy
ZW4gaXMgNgorUEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFi
bGUgY2VsbCcKK1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRh
YmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0
YWJsZSBjZWxsJworUEFTUyB0YWJsZTQuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTog
dGFibGUgY2VsbCcKK1BBU1MgdGFibGU0LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6
IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xl
OiB0YWJsZSBjZWxsJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MzI4MjU4Li44MDlkZjMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTEtMDQtMDYgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIEFSSUEgdGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBk
bworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0NjMK
KworICAgICAgICBFeHBvc2UgY2VsbHMgZm9yIEFSSUEgZ3JpZHMgY29uc2lzdGVudGx5IHdpdGgg
SFRNTCB0YWJsZXMgaW4gR1RLLAorICAgICAgICBrZWVwaW5nIHRoZSBzYW1lIGJlaGF2aW91ciBm
b3IgdGhlIG90aGVyIHBsYXRmb3Jtcy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklB
R3JpZDo6YWRkQ2hpbGQpOiBBZGQgdGhlIHJvdydzIGNoaWxkcmVuCisgICAgICAgIHRvIHRoZSBh
Y2Nlc3NpYmlsaXR5IGhpZXJhcmNoeSB3aGVuIGFjY2Vzc2liaWxpdHkgb2JqZWN0cyBmb3Igcm93
cworICAgICAgICBhcmUgaWdub3JpbmcgYWNjZXNzaWJpbGl0eSwgb3RoZXJ3aXNlIGFkZCB0aGUg
cm93LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJl
bik6IERvIG5vdCBjaGVjayBhdAorICAgICAgICB0aGlzIHBvaW50IHdoZXRoZXIgZXZlcnkgY2hp
bGQgb2YgdGhlIHRhYmxlIGlnbm9yZXMgb3Igbm90CisgICAgICAgIGFjY2Vzc2liaWxpdHksIGxl
dHRpbmcgYWRkQ2hpbGQoKSBtYWtlIHRoZSBwcm9wZXIgZGVjaXNpb24gbGF0ZXIuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cGFyZW50VGFibGUpOiBDb25z
aWRlciB0aGF0CisgICAgICAgIHJvd3MgY291bGQgYmUgaWdub3JpbmcgYWNjZXNzaWJpbGl0eSwg
aGVuY2UgdGhlIHBhcmVudCBjb3VsZCBiZQorICAgICAgICByZXRyaWV2ZWQgaW4gdGhlIGZpcnN0
IGNhbGwgdG8gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpyb3dJbmRleFJhbmdlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjb2x1bW5JbmRleFJhbmdlKTogRGl0
dG8uLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IE1hcCBDb2x1bW5IZWFkZXIgYW5kIFJv
d0hlYWRlciB0byBBVEtfUk9MRV9UQUJMRV9DRUxMLgorCiAyMDExLTA0LTAxICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVy
eSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAppbmRleCBkNTE3NTBhLi41Zjk0NDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWQuY3BwCkBAIC03NSw3ICs3NSwxNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRk
Q2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCogY2hpbGQsIEhhc2hTZXQ8QWNjZXNzaQogICAgIAog
ICAgIHJvdy0+c2V0Um93SW5kZXgoKGludCltX3Jvd3Muc2l6ZSgpKTsgICAgICAgIAogICAgIG1f
cm93cy5hcHBlbmQocm93KTsKLSAgICBtX2NoaWxkcmVuLmFwcGVuZChyb3cpOworCisgICAgLy8g
VHJ5IGFkZGluZyB0aGUgcm93IGlmIGl0J3Mgbm90IGlnbm9yaW5nIGFjY2Vzc2liaWxpdHksCisg
ICAgLy8gb3RoZXJ3aXNlIGFkZCBpdHMgY2hpbGRyZW4gKHRoZSBjZWxscykgYXMgdGhlIGdyaWQn
cyBjaGlsZHJlbi4KKyAgICBpZiAoIXJvdy0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKQorICAg
ICAgICBtX2NoaWxkcmVuLmFwcGVuZChyb3cpOworICAgIGVsc2UKKyAgICAgICAgbV9jaGlsZHJl
bi5hcHBlbmQocm93LT5jaGlsZHJlbigpKTsKKwogICAgIGFwcGVuZGVkUm93cy5hZGQocm93KTsK
IH0KICAgICAKQEAgLTk5LDE3ICsxMDYsMjEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6
OmFkZENoaWxkcmVuKCkKICAgICB1bnNpZ25lZCBjb2x1bW5Db3VudCA9IDA7CiAgICAgZm9yIChS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAKLSAgICAgICAgLy8gaW4gY2FzZSB0aGUg
cmVuZGVyIHRyZWUgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgQVJJQSBoaWVyYXJjaHksIGxv
b2sgYXQgdGhlIGNoaWxkcmVuCi0gICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNUYWJsZVJvdygpIHx8IGNoaWxkLT5hcmlh
Um9sZUF0dHJpYnV0ZSgpID09IFJvd1JvbGUpCisgICAgICAgICAgICBhZGRDaGlsZChjaGlsZC5n
ZXQoKSwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgLy8gaW4gY2FzZSB0aGUgcmVuZGVyIHRyZWUgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0
ZWQgQVJJQSBoaWVyYXJjaHksIGxvb2sgYXQgdGhlIGNoaWxkcmVuCiAgICAgICAgICAgICBpZiAo
IWNoaWxkLT5oYXNDaGlsZHJlbigpKQogICAgICAgICAgICAgICAgIGNoaWxkLT5hZGRDaGlsZHJl
bigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3IgY2hpbGRyZW4gPSBjaGlsZC0+Y2hpbGRyZW4oKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxl
bmd0aCA9IGNoaWxkcmVuLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBhZGRDaGlsZChjaGlsZHJlbltpXS5n
ZXQoKSwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgYWRkQ2hpbGQoY2hpbGQuZ2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOyAg
ICAgICAgICAgIAorCisgICAgICAgICAgICAvLyBEbyBub3QgbmF2aWdhdGUgY2hpbGRyZW4gdGhy
b3VnaCB0aGUgQWNjZXNzaWJpbGl0eQorICAgICAgICAgICAgLy8gY2hpbGRyZW4gdmVjdG9yIHRv
IGxldCBhZGRDaGlsZCgpIGNoZWNrIHRoZSByZXN1bHQKKyAgICAgICAgICAgIC8vIG9mIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBhbmQgbWFrZSB0aGUgcHJvcGVyCisgICAgICAgICAgICAvLyBk
ZWNpc2lvbiAoYWRkIHRoZSBvYmplY3RzIG9yIHRoZWlyIGNoaWxkcmVuKS4KKyAgICAgICAgICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGdyYW5kQ2hpbGQgPSAwOworICAgICAgICAgICAgZm9yIChn
cmFuZENoaWxkID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgZ3JhbmRDaGlsZDsgZ3JhbmRDaGlsZCA9
IGdyYW5kQ2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAgYWRkQ2hpbGQoZ3Jh
bmRDaGlsZCwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7CisgICAgICAgIH0KICAgICB9CiAg
ICAgCiAgICAgLy8gbWFrZSB0aGUgY29sdW1ucyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIGNvbHVt
bnMgaW4gdGhlIGZpcnN0IGJvZHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCmluZGV4IGM4MTU3ZjUuLmU2
MzI3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCIKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGUuaCIKICNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5VGFibGVSb3cuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTUzLDkgKzU0
LDE1IEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbD4gQWNjZXNzaWJpbGl0
eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKFJlbmRlck9iCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpwYXJlbnRUYWJsZSgpIGNvbnN0CiB7CiAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7Ci0gICAgaWYg
KCFwYXJlbnQgfHwgIXBhcmVudC0+aXNUYWJsZVJvdygpKQorICAgIGlmICghcGFyZW50KQogICAg
ICAgICByZXR1cm4gMDsKICAgICAKKyAgICBpZiAocGFyZW50LT5pc0FjY2Vzc2liaWxpdHlUYWJs
ZSgpKQorICAgICAgICByZXR1cm4gcGFyZW50OworCisgICAgaWYgKCFwYXJlbnQtPmlzVGFibGVS
b3coKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9i
amVjdFVuaWdub3JlZCgpOwogICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzQWNjZXNzaWJp
bGl0eVRhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjYsMjAgKzczLDQxIEBAIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVudFRhYmxlKCkg
Y29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cm93SW5kZXhSYW5nZShwYWly
PGludCwgaW50PiYgcm93UmFuZ2UpCiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50
ID0gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7Ci0gICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+
aXNUYWJsZVJvdygpKQorICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBp
ZiAocGFyZW50LT5pc1RhYmxlUm93KCkpIHsKKyAgICAgICAgLy8gV2UgYWxyZWFkeSBnb3QgYSB0
YWJsZSByb3csIHVzZSBpdHMgQVBJLgorICAgICAgICByb3dSYW5nZS5maXJzdCA9IHN0YXRpY19j
YXN0PEFjY2Vzc2liaWxpdHlUYWJsZVJvdyo+KHBhcmVudCktPnJvd0luZGV4KCk7CisgICAgfSBl
bHNlIGlmIChwYXJlbnQtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpIHsKKyAgICAgICAgLy8gV2Ug
cmVhY2hlZCB0aGUgcGFyZW50IHRhYmxlLCBzbyB3ZSBuZWVkIHRvIGluc3BlY3QgaXRzCisgICAg
ICAgIC8vIGNoaWxkcmVuIHRvIGRldGVybWluZSB0aGUgcm93IGluZGV4IGZvciB0aGUgY2VsbCBp
biBpdC4KKyAgICAgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSBzdGF0aWNfY2FzdDxBY2Nlc3Np
YmlsaXR5VGFibGUqPihwYXJlbnQpLT5jb2x1bW5Db3VudCgpOworICAgICAgICBpZiAoIWNvbHVt
bkNvdW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBzaWJsaW5ncyA9IHBhcmVudC0+Y2hpbGRyZW4oKTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBrID0gMDsgayA8IHNpYmxpbmdzLnNpemUoKTsgKytrKSB7CisgICAgICAgICAgICBp
ZiAoc2libGluZ3Nba10uZ2V0KCkgPT0gdGhpcykgeworICAgICAgICAgICAgICAgIHJvd1Jhbmdl
LmZpcnN0ID0gayAvIGNvbHVtbkNvdW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgLy8gYXMgZmFyIGFzIEkgY2FuIHRlbGws
IGdyaWQgY2VsbHMgY2Fubm90IHNwYW4gcm93cwotICAgIHJvd1JhbmdlLmZpcnN0ID0gc3RhdGlj
X2Nhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlUm93Kj4ocGFyZW50KS0+cm93SW5kZXgoKTsKLSAgICBy
b3dSYW5nZS5zZWNvbmQgPSAxOyAgICAKKyAgICByb3dSYW5nZS5zZWNvbmQgPSAxOwogfQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNvbHVtbkluZGV4UmFuZ2UocGFpcjxpbnQs
IGludD4mIGNvbHVtblJhbmdlKQogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9
IHBhcmVudE9iamVjdFVuaWdub3JlZCgpOwotICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlz
VGFibGVSb3coKSkKKyAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuOwotICAgIAorCisg
ICAgaWYgKCFwYXJlbnQtPmlzVGFibGVSb3coKSAmJiAhcGFyZW50LT5pc0FjY2Vzc2liaWxpdHlU
YWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3Igc2libGluZ3MgPSBwYXJlbnQtPmNoaWxkcmVuKCk7CiAgICAgdW5zaWduZWQgY2hpbGRyZW5T
aXplID0gc2libGluZ3Muc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBjaGls
ZHJlblNpemU7ICsraykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4
IGE1NThlMjIuLjIxZGI3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAK
QEAgLTQ1NSw2ICs0NTUsOCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGUpCiAgICAgY2FzZSBHcm91cFJvbGU6CiAgICAgY2FzZSBSYWRpb0dyb3VwUm9sZToK
ICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BBTkVMOworICAgIGNhc2UgUm93SGVhZGVyUm9sZTog
Ly8gUm93IGhlYWRlcnMgYXJlIGNlbGxzIGFmdGVyIGFsbC4KKyAgICBjYXNlIENvbHVtbkhlYWRl
clJvbGU6IC8vIENvbHVtbiBoZWFkZXJzIGFyZSBjZWxscyBhZnRlciBhbGwuCiAgICAgY2FzZSBD
ZWxsUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1RBQkxFX0NFTEw7CiAgICAgY2FzZSBM
aW5rUm9sZToKLS0gCjEuNy40Cgo=
</data>
<flag name="review"
          id="80887"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89018</attachid>
            <date>2011-04-11 09:44:32 -0700</date>
            <delta_ts>2011-04-11 09:50:52 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-04-11-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>13584</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAzZjJmNjAyMTBiNTRiNTRlMGM0ZjRiNDg4ZDU0MzkzOGU4YTY0NmMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDggQXByIDIwMTEgMTg6NDQ6NTQgKzAyMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTA0LTExICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIEFSSUEg
dGFibGVzIG5vdCBleHBvc2luZyBjZWxscyBhcyBIVE1MIHRhYmxlcyBkbwogICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzQ2MwoKICAgICAgICBVbnNraXBw
ZWQgcGFzc2luZyB0ZXN0IGFuZCBhZGRlZCBHVEstc3BlY2lmaWMgZXhwZWN0YXRpb25zLgoKICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNzaWJpbGl0eSB0ZXN0Lgog
ICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KMjAxMS0wNC0xMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1z
YW5jaGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoK
ICAgICAgICBbR1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJs
ZXMgZG8KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0
NjMKCiAgICAgICAgRXhwb3NlIGNlbGxzIGZvciBBUklBIGdyaWRzIGNvbnNpc3RlbnRseSB3aXRo
IEhUTUwgdGFibGVzIGluIEdUSywKICAgICAgICBrZWVwaW5nIHRoZSBzYW1lIGJlaGF2aW91ciBm
b3IgdGhlIG90aGVyIHBsYXRmb3Jtcy4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlBUklBR3JpZC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklBR3Jp
ZDo6YWRkQ2hpbGQpOiBBZGQgdGhlIHJvdydzIGNoaWxkcmVuCiAgICAgICAgdG8gdGhlIGFjY2Vz
c2liaWxpdHkgaGllcmFyY2h5IHdoZW4gYWNjZXNzaWJpbGl0eSBvYmplY3RzIGZvciByb3dzCiAg
ICAgICAgYXJlIGlnbm9yaW5nIGFjY2Vzc2liaWxpdHksIG90aGVyd2lzZSBhZGQgdGhlIHJvdy4K
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbik6IERv
IG5vdCBjaGVjayBhdAogICAgICAgIHRoaXMgcG9pbnQgd2hldGhlciBldmVyeSBjaGlsZCBvZiB0
aGUgdGFibGUgaWdub3JlcyBvciBub3QKICAgICAgICBhY2Nlc3NpYmlsaXR5LCBsZXR0aW5nIGFk
ZENoaWxkKCkgbWFrZSB0aGUgcHJvcGVyIGRlY2lzaW9uIGxhdGVyLgoKICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHA6CiAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVudFRhYmxlKTogQ29uc2lkZXIgdGhhdAog
ICAgICAgIHJvd3MgY291bGQgYmUgaWdub3JpbmcgYWNjZXNzaWJpbGl0eSwgaGVuY2UgdGhlIHBh
cmVudCBjb3VsZCBiZQogICAgICAgIHJldHJpZXZlZCBpbiB0aGUgZmlyc3QgY2FsbCB0byBwYXJl
bnRPYmplY3RVbmlnbm9yZWQoKS4KICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbDo6cm93SW5kZXhSYW5nZSk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsOjpjb2x1bW5JbmRleFJhbmdlKTogRGl0dG8uLgoKICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAg
ICAgICAoYXRrUm9sZSk6IE1hcCBDb2x1bW5IZWFkZXIgYW5kIFJvd0hlYWRlciB0byBBVEtfUk9M
RV9UQUJMRV9DRUxMLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMiArKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgLQogLi4uL2FyaWEtdGFibGUtaGllcmFyY2h5LWV4
cGVjdGVkLnR4dCAgICAgICAgICAgICAgfCAgIDYxICsrKysrKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjggKysr
KysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwICAgICAg
ICB8ICAgMzEgKysrKysrKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5jcHAgICAgfCAgIDQxICsrKysrKysrKysrLS0KIC4uLi9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgMiArCiA3IGZpbGVzIGNoYW5nZWQs
IDE1OSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2YwZmU1Ny4uZGI4Mjk3MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTA0LTExICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBBUklBIHRhYmxlcyBub3QgZXhwb3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NDYzCisKKyAg
ICAgICAgVW5za2lwcGVkIHBhc3NpbmcgdGVzdCBhbmQgYWRkZWQgR1RLLXNwZWNpZmljIGV4cGVj
dGF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBVbnNraXAgYWNjZXNz
aWJpbGl0eSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dGFibGUtaGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMDQtMTEgIEFsZWph
bmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgU2tpcHBlZCBhbm90
aGVyIHRlc3QgdGhhdCByZXF1aXJlcyBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzcxYjExNi4uNTQyMTQwMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTEyMzUsOSArMTIzNSw2IEBAIGZhc3QvZG9tL25vZGVzRnJvbVJl
Y3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKICMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJT
Y3JpcHQgbm90IGltcGxlbWVudGVkIGZvciBndGsKIHBsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWxv
YWQtcHJldmVudGVkLXVzZXJzY3JpcHQuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NzU2NAotcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10
YWJsZS1oaWVyYXJjaHkuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MDg3MgogaHR0cC90ZXN0cy9taXNjL2Rucy1wcmVmZXRjaC1jb250cm9sLmh0bWwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhOTFlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MSBAQAorZm9vCitiYXIKK09kZAorRXZlbgorMQor
MgorMworNAoraGVsbG8KK3dvcmxkCitPZGQKK0V2ZW4KKzEKKworMgorCiszCisKKzQKKworVGhp
cyB0ZXN0cyB0aGUgQXRrIHRhYmxlIGhpZXJhcmh5IGZvciBhbiBBUklBIHRhYmxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0YWJsZTEucm9sZSBpcyAnQVhSb2xlOiB0
YWJsZScKK1BBU1MgdGFibGUxLnJvd0NvdW50IGlzIDEKK1BBU1MgdGFibGUxLmNvbHVtbkNvdW50
IGlzIDIKK1BBU1MgdGFibGUyLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUnCitQQVNTIHRhYmxlMi5y
b3dDb3VudCBpcyAzCitQQVNTIHRhYmxlMi5jb2x1bW5Db3VudCBpcyAyCitQQVNTIHRhYmxlMy5y
b2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFTUyB0YWJsZTMucm93Q291bnQgaXMgMQorUEFTUyB0
YWJsZTMuY29sdW1uQ291bnQgaXMgMgorUEFTUyB0YWJsZTQucm9sZSBpcyAnQVhSb2xlOiB0YWJs
ZScKK1BBU1MgdGFibGU0LnJvd0NvdW50IGlzIDMKK1BBU1MgdGFibGU0LmNvbHVtbkNvdW50IGlz
IDIKK1BBU1MgY2hpbGRyZW4gaXMgMgorUEFTUyB0YWJsZTEuY2hpbGRBdEluZGV4KGkpLnJvbGUg
aXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGUxLmNoaWxkQXRJbmRleChpKS5yb2xl
IGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIGNoaWxkcmVuIGlzIDYKK1BBU1MgdGFibGUy
LmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxl
Mi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJs
ZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFi
bGUyLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRh
YmxlMi5jaGlsZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0
YWJsZTIuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1Mg
Y2hpbGRyZW4gaXMgMgorUEFTUyB0YWJsZTMuY2hpbGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9s
ZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGUzLmNoaWxkQXRJbmRleChpKS5yb2xlIGlzICdBWFJv
bGU6IHRhYmxlIGNlbGwnCitQQVNTIGNoaWxkcmVuIGlzIDYKK1BBU1MgdGFibGU0LmNoaWxkQXRJ
bmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGlsZEF0
SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTQuY2hpbGRB
dEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1MgdGFibGU0LmNoaWxk
QXRJbmRleChpKS5yb2xlIGlzICdBWFJvbGU6IHRhYmxlIGNlbGwnCitQQVNTIHRhYmxlNC5jaGls
ZEF0SW5kZXgoaSkucm9sZSBpcyAnQVhSb2xlOiB0YWJsZSBjZWxsJworUEFTUyB0YWJsZTQuY2hp
bGRBdEluZGV4KGkpLnJvbGUgaXMgJ0FYUm9sZTogdGFibGUgY2VsbCcKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJmY2E1
Yy4uZTQxZGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTA0LTExICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBBUklBIHRhYmxlcyBub3QgZXhw
b3NpbmcgY2VsbHMgYXMgSFRNTCB0YWJsZXMgZG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NDYzCisKKyAgICAgICAgRXhwb3NlIGNlbGxzIGZvciBB
UklBIGdyaWRzIGNvbnNpc3RlbnRseSB3aXRoIEhUTUwgdGFibGVzIGluIEdUSywKKyAgICAgICAg
a2VlcGluZyB0aGUgc2FtZSBiZWhhdmlvdXIgZm9yIHRoZSBvdGhlciBwbGF0Zm9ybXMuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkKTogQWRkIHRoZSByb3cn
cyBjaGlsZHJlbgorICAgICAgICB0byB0aGUgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHkgd2hlbiBh
Y2Nlc3NpYmlsaXR5IG9iamVjdHMgZm9yIHJvd3MKKyAgICAgICAgYXJlIGlnbm9yaW5nIGFjY2Vz
c2liaWxpdHksIG90aGVyd2lzZSBhZGQgdGhlIHJvdy4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlBUklBR3JpZDo6YWRkQ2hpbGRyZW4pOiBEbyBub3QgY2hlY2sgYXQKKyAgICAgICAg
dGhpcyBwb2ludCB3aGV0aGVyIGV2ZXJ5IGNoaWxkIG9mIHRoZSB0YWJsZSBpZ25vcmVzIG9yIG5v
dAorICAgICAgICBhY2Nlc3NpYmlsaXR5LCBsZXR0aW5nIGFkZENoaWxkKCkgbWFrZSB0aGUgcHJv
cGVyIGRlY2lzaW9uIGxhdGVyLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWRDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklB
R3JpZENlbGw6OnBhcmVudFRhYmxlKTogQ29uc2lkZXIgdGhhdAorICAgICAgICByb3dzIGNvdWxk
IGJlIGlnbm9yaW5nIGFjY2Vzc2liaWxpdHksIGhlbmNlIHRoZSBwYXJlbnQgY291bGQgYmUKKyAg
ICAgICAgcmV0cmlldmVkIGluIHRoZSBmaXJzdCBjYWxsIHRvIHBhcmVudE9iamVjdFVuaWdub3Jl
ZCgpLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cm93SW5k
ZXhSYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUFSSUFHcmlk
Q2VsbDo6Y29sdW1uSW5kZXhSYW5nZSk6IERpdHRvLi4KKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGF0a1Jv
bGUpOiBNYXAgQ29sdW1uSGVhZGVyIGFuZCBSb3dIZWFkZXIgdG8gQVRLX1JPTEVfVEFCTEVfQ0VM
TC4KKwogMjAxMS0wNC0xMCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAKaW5kZXggZDUxNzUw
YS4uNWY5NDQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApAQCAtNzUsNyArNzUsMTQgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNoaWxkLCBIYXNo
U2V0PEFjY2Vzc2kKICAgICAKICAgICByb3ctPnNldFJvd0luZGV4KChpbnQpbV9yb3dzLnNpemUo
KSk7ICAgICAgICAKICAgICBtX3Jvd3MuYXBwZW5kKHJvdyk7Ci0gICAgbV9jaGlsZHJlbi5hcHBl
bmQocm93KTsKKworICAgIC8vIFRyeSBhZGRpbmcgdGhlIHJvdyBpZiBpdCdzIG5vdCBpZ25vcmlu
ZyBhY2Nlc3NpYmlsaXR5LAorICAgIC8vIG90aGVyd2lzZSBhZGQgaXRzIGNoaWxkcmVuICh0aGUg
Y2VsbHMpIGFzIHRoZSBncmlkJ3MgY2hpbGRyZW4uCisgICAgaWYgKCFyb3ctPmFjY2Vzc2liaWxp
dHlJc0lnbm9yZWQoKSkKKyAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQocm93KTsKKyAgICBlbHNl
CisgICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKHJvdy0+Y2hpbGRyZW4oKSk7CisKICAgICBhcHBl
bmRlZFJvd3MuYWRkKHJvdyk7CiB9CiAgICAgCkBAIC05OSwxNyArMTA2LDIxIEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkOjphZGRDaGlsZHJlbigpCiAgICAgdW5zaWduZWQgY29sdW1uQ291
bnQgPSAwOwogICAgIGZvciAoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNoaWxkID0gZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogCi0gICAg
ICAgIC8vIGluIGNhc2UgdGhlIHJlbmRlciB0cmVlIGRvZXNuJ3QgbWF0Y2ggdGhlIGV4cGVjdGVk
IEFSSUEgaGllcmFyY2h5LCBsb29rIGF0IHRoZSBjaGlsZHJlbgotICAgICAgICBpZiAoY2hpbGQt
PmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlzVGFibGVS
b3coKSB8fCBjaGlsZC0+YXJpYVJvbGVBdHRyaWJ1dGUoKSA9PSBSb3dSb2xlKQorICAgICAgICAg
ICAgYWRkQ2hpbGQoY2hpbGQuZ2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlIHJlbmRlciB0cmVlIGRvZXNu
J3QgbWF0Y2ggdGhlIGV4cGVjdGVkIEFSSUEgaGllcmFyY2h5LCBsb29rIGF0IHRoZSBjaGlsZHJl
bgogICAgICAgICAgICAgaWYgKCFjaGlsZC0+aGFzQ2hpbGRyZW4oKSkKICAgICAgICAgICAgICAg
ICBjaGlsZC0+YWRkQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgQWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNoaWxkcmVuID0gY2hpbGQtPmNoaWxkcmVuKCk7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBjaGlsZHJlbi5zaXplKCk7Ci0gICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgYWRk
Q2hpbGQoY2hpbGRyZW5baV0uZ2V0KCksIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkZENoaWxkKGNoaWxkLmdldCgpLCBhcHBlbmRlZFJv
d3MsIGNvbHVtbkNvdW50KTsgICAgICAgICAgICAKKworICAgICAgICAgICAgLy8gRG8gbm90IG5h
dmlnYXRlIGNoaWxkcmVuIHRocm91Z2ggdGhlIEFjY2Vzc2liaWxpdHkKKyAgICAgICAgICAgIC8v
IGNoaWxkcmVuIHZlY3RvciB0byBsZXQgYWRkQ2hpbGQoKSBjaGVjayB0aGUgcmVzdWx0CisgICAg
ICAgICAgICAvLyBvZiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgYW5kIG1ha2UgdGhlIHByb3Bl
cgorICAgICAgICAgICAgLy8gZGVjaXNpb24gKGFkZCB0aGUgb2JqZWN0cyBvciB0aGVpciBjaGls
ZHJlbikuCisgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBncmFuZENoaWxkID0gMDsK
KyAgICAgICAgICAgIGZvciAoZ3JhbmRDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyYW5k
Q2hpbGQ7IGdyYW5kQ2hpbGQgPSBncmFuZENoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAg
ICAgICAgIGFkZENoaWxkKGdyYW5kQ2hpbGQsIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOwor
ICAgICAgICB9CiAgICAgfQogICAgIAogICAgIC8vIG1ha2UgdGhlIGNvbHVtbnMgYmFzZWQgb24g
dGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBmaXJzdCBib2R5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNw
cAppbmRleCBjODE1N2Y1Li41NWQwOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmgiCiAKICNpbmNs
dWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxl
LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CkBAIC01Myw5ICs1NCwxNSBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlBUklBR3Jp
ZENlbGw+IEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShSZW5kZXJPYgogQWNjZXNz
aWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cGFyZW50VGFibGUoKSBj
b25zdAogewogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9IHBhcmVudE9iamVjdFVu
aWdub3JlZCgpOwotICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzVGFibGVSb3coKSkKKyAg
ICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCisgICAgaWYgKHBhcmVudC0+
aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHBhcmVudDsKKworICAgIC8v
IEl0IGNvdWxkIGhhcHBlbiB0aGF0IHdlIGhhZG4ndCByZWFjaGVkIHRoZSBwYXJlbnQgdGFibGUg
eWV0IChpbgorICAgIC8vIGNhc2Ugb2JqZWN0cyBmb3Igcm93cyB3ZXJlIG5vdCBpZ25vcmluZyBh
Y2Nlc3NpYmlsaXR5KSBzbyBmb3IKKyAgICAvLyB0aGF0IHJlYXNvbiB3ZSBuZWVkIHRvIHJ1biBw
YXJlbnRPYmplY3RVbmlnbm9yZWQgb25jZSBhZ2Fpbi4KICAgICBwYXJlbnQgPSBwYXJlbnQtPnBh
cmVudE9iamVjdFVuaWdub3JlZCgpOwogICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmlzQWNj
ZXNzaWJpbGl0eVRhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjYsMjAgKzczLDQyIEBA
IEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OnBhcmVudFRh
YmxlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6cm93SW5kZXhSYW5n
ZShwYWlyPGludCwgaW50PiYgcm93UmFuZ2UpCiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
cGFyZW50ID0gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7Ci0gICAgaWYgKCFwYXJlbnQgfHwgIXBh
cmVudC0+aXNUYWJsZVJvdygpKQorICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47CiAK
KyAgICBpZiAocGFyZW50LT5pc1RhYmxlUm93KCkpIHsKKyAgICAgICAgLy8gV2UgYWxyZWFkeSBn
b3QgYSB0YWJsZSByb3csIHVzZSBpdHMgQVBJLgorICAgICAgICByb3dSYW5nZS5maXJzdCA9IHN0
YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZVJvdyo+KHBhcmVudCktPnJvd0luZGV4KCk7Cisg
ICAgfSBlbHNlIGlmIChwYXJlbnQtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpIHsKKyAgICAgICAg
Ly8gV2UgcmVhY2hlZCB0aGUgcGFyZW50IHRhYmxlLCBzbyB3ZSBuZWVkIHRvIGluc3BlY3QgaXRz
CisgICAgICAgIC8vIGNoaWxkcmVuIHRvIGRldGVybWluZSB0aGUgcm93IGluZGV4IGZvciB0aGUg
Y2VsbCBpbiBpdC4KKyAgICAgICAgdW5zaWduZWQgY29sdW1uQ291bnQgPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NpYmlsaXR5VGFibGUqPihwYXJlbnQpLT5jb2x1bW5Db3VudCgpOworICAgICAgICBpZiAo
IWNvbHVtbkNvdW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBzaWJsaW5ncyA9IHBhcmVudC0+Y2hpbGRyZW4oKTsKKyAgICAgICAg
dW5zaWduZWQgY2hpbGRyZW5TaXplID0gc2libGluZ3Muc2l6ZSgpOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGsgPSAwOyBrIDwgY2hpbGRyZW5TaXplOyArK2spIHsKKyAgICAgICAgICAgIGlmIChz
aWJsaW5nc1trXS5nZXQoKSA9PSB0aGlzKSB7CisgICAgICAgICAgICAgICAgcm93UmFuZ2UuZmly
c3QgPSBrIC8gY29sdW1uQ291bnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZ3Jp
ZCBjZWxscyBjYW5ub3Qgc3BhbiByb3dzCi0gICAgcm93UmFuZ2UuZmlyc3QgPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5VGFibGVSb3cqPihwYXJlbnQpLT5yb3dJbmRleCgpOwotICAgIHJvd1Jh
bmdlLnNlY29uZCA9IDE7ICAgIAorICAgIHJvd1JhbmdlLnNlY29uZCA9IDE7CiB9CiAKIHZvaWQg
QWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y29sdW1uSW5kZXhSYW5nZShwYWlyPGludCwgaW50
PiYgY29sdW1uUmFuZ2UpCiB7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFy
ZW50T2JqZWN0VW5pZ25vcmVkKCk7Ci0gICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aXNUYWJs
ZVJvdygpKQorICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47Ci0gICAgCisKKyAgICBp
ZiAoIXBhcmVudC0+aXNUYWJsZVJvdygpICYmICFwYXJlbnQtPmlzQWNjZXNzaWJpbGl0eVRhYmxl
KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBz
aWJsaW5ncyA9IHBhcmVudC0+Y2hpbGRyZW4oKTsKICAgICB1bnNpZ25lZCBjaGlsZHJlblNpemUg
PSBzaWJsaW5ncy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGNoaWxkcmVu
U2l6ZTsgKytrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggNmQ2
NjJlNC4uNTAyZGEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAt
NDUyLDYgKzQ1Miw4IEBAIHN0YXRpYyBBdGtSb2xlIGF0a1JvbGUoQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkKICAgICBjYXNlIEdyb3VwUm9sZToKICAgICBjYXNlIFJhZGlvR3JvdXBSb2xlOgogICAg
ICAgICByZXR1cm4gQVRLX1JPTEVfUEFORUw7CisgICAgY2FzZSBSb3dIZWFkZXJSb2xlOiAvLyBS
b3cgaGVhZGVycyBhcmUgY2VsbHMgYWZ0ZXIgYWxsLgorICAgIGNhc2UgQ29sdW1uSGVhZGVyUm9s
ZTogLy8gQ29sdW1uIGhlYWRlcnMgYXJlIGNlbGxzIGFmdGVyIGFsbC4KICAgICBjYXNlIENlbGxS
b2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfVEFCTEVfQ0VMTDsKICAgICBjYXNlIExpbmtS
b2xlOgotLSAKMS43LjQuMgoK
</data>
<flag name="review"
          id="81644"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>