<?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>78908</bug_id>
          
          <creation_ts>2012-02-17 09:12:24 -0800</creation_ts>
          <short_desc>`\u200c` and `\u200d` should be allowed in IdentifierPart, as per ES5</short_desc>
          <delta_ts>2012-02-24 00:23:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mathias Bynens">mathias</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joethomas</cc>
    
    <cc>mathias</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559245</commentid>
    <comment_count>0</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-17 09:12:24 -0800</bug_when>
    <thetext>According to http://es5.github.com/x7.html#x7.6 (spec), http://mathiasbynens.be/notes/javascript-identifiers (summary), and http://mothereff.in/js-variables#a%5Cu200d (validator), `a\u200d` is a valid JavaScript identifier. 

However, JavaScriptCore doesn’t seem to support it:

    var a\u200d; // throws SyntaxError: Unexpected token ILLEGAL

This is a spec violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559246</commentid>
    <comment_count>1</comment_count>
      <attachid>127603</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-17 09:12:57 -0800</bug_when>
    <thetext>Created attachment 127603
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559248</commentid>
    <comment_count>2</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-17 09:15:42 -0800</bug_when>
    <thetext>Actually, it throws an Error, not a SyntaxError:

&gt; Error: Unrecognized token &apos;a\u200d&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559618</commentid>
    <comment_count>3</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-17 15:58:08 -0800</bug_when>
    <thetext>This one should be allowed too:

    var Ꙭൽↈⴱ;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559655</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-17 16:55:19 -0800</bug_when>
    <thetext>FWIW, we have a regression test checking that this character is not allowed, following discussion in bug 4931 and related.

Note that the error message in console is better in nightlies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559738</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-17 23:39:39 -0800</bug_when>
    <thetext>Looks like the spec has changed, we should probably update our position to match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559896</commentid>
    <comment_count>6</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-19 06:19:13 -0800</bug_when>
    <thetext>This one should be allowed too as of Unicode 6.1.0: http://mothereff.in/js-variables#%5Cu0cf1

    var \u0cf1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560922</commentid>
    <comment_count>7</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-21 08:50:49 -0800</bug_when>
    <thetext>In case another example is needed: http://mothereff.in/js-variables#%5Cua7aa

    var \ua7aa;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562363</commentid>
    <comment_count>8</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-22 14:01:54 -0800</bug_when>
    <thetext>Let’s make this bug about the ZWJ and ZWNJ characters missing from IdentifierPart only.

I’ll file a separate bug for Unicode 6.1.0 support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562383</commentid>
    <comment_count>9</comment_count>
      <attachid>128289</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-22 14:18:02 -0800</bug_when>
    <thetext>Created attachment 128289
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562391</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 14:27:57 -0800</bug_when>
    <thetext>This is not marked for review, but this almost certainly breaks existing layout tests (which will need to be updated accordingly to new expected behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562394</commentid>
    <comment_count>11</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-22 14:30:20 -0800</bug_when>
    <thetext>Hi Mathias,

The patch looks great - thanks for fixing this!

However we do ask for bug fixes to be accompanied by regression tests.  Do you think it would be possible to add one?

You should be able to test this with something like:

shouldBe(&quot;var x\u200c = 42; x\u200c&quot;, &quot;42&quot;);
shouldBe(&quot;var x\u200d = 43; x\u200d&quot;, &quot;43&quot;);

You&apos;ll find the tests in LayoutTests/fast/js, just pick an existing test to add the tests to, or if none look appropriate create a new .html / .js based on an existing one.  Let me know if you have an questions.

Many thanks,
G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562412</commentid>
    <comment_count>12</comment_count>
      <attachid>128289</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-22 14:51:01 -0800</bug_when>
    <thetext>Comment on attachment 128289
Proposed patch

Attachment 128289 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11561643</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562423</commentid>
    <comment_count>13</comment_count>
      <attachid>128296</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-22 14:57:06 -0800</bug_when>
    <thetext>Created attachment 128296
Proposed patch including new layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562446</commentid>
    <comment_count>14</comment_count>
      <attachid>128301</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-22 15:21:23 -0800</bug_when>
    <thetext>Created attachment 128301
Proposed patch including new layout tests that updates old ZWJ test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562462</commentid>
    <comment_count>15</comment_count>
      <attachid>128301</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-22 15:34:34 -0800</bug_when>
    <thetext>Comment on attachment 128301
Proposed patch including new layout tests that updates old ZWJ test

Attachment 128301 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11574009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562492</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 16:01:55 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; This is not marked for review, but this almost certainly breaks existing layout tests (which will need to be updated accordingly to new expected behavior).

Could you please comment on this? Specifically, fast/js/removing-Cf-characters.html looks like it should break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562495</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 16:03:00 -0800</bug_when>
    <thetext>Sorry, I missed the latest patch between bot spew. Please disregard comment 16.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562569</commentid>
    <comment_count>18</comment_count>
      <attachid>128301</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 16:54:39 -0800</bug_when>
    <thetext>Comment on attachment 128301
Proposed patch including new layout tests that updates old ZWJ test

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

New failing tests:
fast/js/var-declarations-zero-width.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563011</commentid>
    <comment_count>19</comment_count>
      <attachid>128451</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 03:52:51 -0800</bug_when>
    <thetext>Created attachment 128451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563037</commentid>
    <comment_count>20</comment_count>
      <attachid>128451</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 04:38:11 -0800</bug_when>
    <thetext>Comment on attachment 128451
Patch

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

New failing tests:
fast/js/var-declarations-zero-width.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563047</commentid>
    <comment_count>21</comment_count>
      <attachid>128463</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 05:42:09 -0800</bug_when>
    <thetext>Created attachment 128463
Patch

Disable the new test in Chromium for now. It can be enabled as soon as V8 r10800 (http://code.google.com/p/v8/source/detail?r=10800) has rolled into WebKit.

Thanks to Peter Beverloo in #webkit for the helpful pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563049</commentid>
    <comment_count>22</comment_count>
      <attachid>128464</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 05:45:32 -0800</bug_when>
    <thetext>Created attachment 128464
Patch

Fixed a typo in both changelog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563060</commentid>
    <comment_count>23</comment_count>
      <attachid>128464</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-02-23 06:00:30 -0800</bug_when>
    <thetext>Comment on attachment 128464
Patch

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

Cool, thanks for fixing this in JSC and V8 :-).

&gt; Source/JavaScriptCore/runtime/LiteralParser.cpp:3
&gt; + * Copyright (C) Mathias Bynens (mathias@qiwi.be)

nit: Include the copyright year (as you do in Lexer.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563063</commentid>
    <comment_count>24</comment_count>
      <attachid>128467</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 06:04:39 -0800</bug_when>
    <thetext>Created attachment 128467
Patch

Updated as per Peter’s feedback in comment #23.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563160</commentid>
    <comment_count>25</comment_count>
      <attachid>128467</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-23 09:22:51 -0800</bug_when>
    <thetext>Comment on attachment 128467
Patch

Attachment 128467 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11608295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563188</commentid>
    <comment_count>26</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 10:00:45 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 128467 [details])
&gt; Attachment 128467 [details] did not pass qt-ews (qt):
&gt; Output: http://queues.webkit.org/results/11608295

The Qt bot shows that the equation between *m_ptr and 0x200C on line 285 (LiteralParser&lt;LChar&gt;::Lexer::lexIdentifier) is out of range. Alexey, could you maybe give me some pointers about how to handle the comparison in this case, or can we rely on the UChar code-path to be taken when 0x200C/0x200D has been found in the code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563198</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-23 10:15:51 -0800</bug_when>
    <thetext>&gt; can we rely on the UChar code-path to be taken when 0x200C/0x200D has been found in the code?

Yes, my understanding is that this function is called with char template parameter when the string is known ASCII (not UTF-8).

It is surprising that this check has cases for Unicode spaces, but not for regular 0x20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563202</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-23 10:18:35 -0800</bug_when>
    <thetext>Correction: LChar is L is Latin-1, not just ASCII.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563240</commentid>
    <comment_count>29</comment_count>
      <attachid>128467</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-02-23 10:41:21 -0800</bug_when>
    <thetext>Comment on attachment 128467
Patch

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

&gt; Source/JavaScriptCore/parser/Lexer.cpp:384
&gt; +        | Mark_NonSpacing | Mark_SpacingCombining | Number_DecimalDigit | Punctuation_Connector));

Move the checks for 0x200C and 0x200D to the end as these are not the typical case.

&gt; Source/JavaScriptCore/runtime/LiteralParser.cpp:285
&gt; +    while (m_ptr &lt; m_end &amp;&amp; (isASCIIAlphanumeric(*m_ptr) || *m_ptr == &apos;_&apos; || *m_ptr == &apos;$&apos; || *m_ptr == 0x200C || *m_ptr == 0x200D))

Remove the checks for 0x200C and 0x200D here as this explicit template instantiation is only for 8 bit (LChar) characters.

&gt; LayoutTests/fast/js/var-declarations-zero-width.html:29
&gt; +&lt;p&gt;This page tests if U+200C and U+200D are allowed as part of an identifier.
&gt; +&lt;pre id=console&gt;&lt;/pre&gt;
&gt; +
&gt; +&lt;script&gt;
&gt; +if (window.layoutTestController)
&gt; +    layoutTestController.dumpAsText();
&gt; +    
&gt; +function log(s) {
&gt; +    document.getElementById(&quot;console&quot;).appendChild(document.createTextNode(s + &quot;\n&quot;));
&gt; +}
&gt; +
&gt; +function shouldBe(a, b) {
&gt; +    var evalA;
&gt; +    try {
&gt; +        evalA = eval(a);
&gt; +    } catch (e) {
&gt; +        evalA = e;
&gt; +    }
&gt; +    
&gt; +    if (evalA === b) {
&gt; +        log(&quot;PASS: &quot; + a + &quot; should be &quot; + b + &quot; and is.&quot;);
&gt; +    } else {
&gt; +        log(&quot;FAIL: &quot; + a + &quot; should be &quot; + b + &quot; but instead is &quot; + evalA + &quot;.&quot;);
&gt; +    }
&gt; +}
&gt; +
&gt; +shouldBe(&quot;var x\u200c = 42; x\u200c&quot;, 42);
&gt; +shouldBe(&quot;var x\u200d = 43; x\u200d&quot;, 43);
&gt; +&lt;/script&gt;

Please move the script part to LayoutTests/fast/js/script-tests/var-declarations-zero-width.js and reference the .js file in the .html.  Also use the provided &quot;js-test-pre.js&quot; and &quot;js-test-post.js&quot; scripts.

The .html should end up something like:
&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;script src=&quot;resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script src=&quot;script-tests/var-declarations-zero-width.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&lt;/body&gt;

And the script-tests/var-declarations-zero-width.js would be something like:
description(&quot;This page tests if U+200C and U+200D are allowed as part of an identifier.&quot;);

shouldBe(&quot;var x\u200c = 42; x\u200c&quot;, 42);
shouldBe(&quot;var x\u200d = 43; x\u200d&quot;, 43);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563270</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-23 11:07:12 -0800</bug_when>
    <thetext>&gt; Please move the script part to LayoutTests/fast/js/script-tests/var-declarations-zero-width.js and reference the .js file in the .html.

(fast/js is an exception - everywhere else, it&apos;s correct to have one file)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563305</commentid>
    <comment_count>31</comment_count>
      <attachid>128467</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 11:39:46 -0800</bug_when>
    <thetext>Comment on attachment 128467
Patch

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

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:384
&gt;&gt; +        | Mark_NonSpacing | Mark_SpacingCombining | Number_DecimalDigit | Punctuation_Connector));
&gt; 
&gt; Move the checks for 0x200C and 0x200D to the end as these are not the typical case.

Will do. In case you were wondering, I figured I’d place them at the start as the category lookups are probably less efficient than a simple equality check.

&gt;&gt; LayoutTests/fast/js/var-declarations-zero-width.html:29
&gt;&gt; +&lt;/script&gt;
&gt; 
&gt; Please move the script part to LayoutTests/fast/js/script-tests/var-declarations-zero-width.js and reference the .js file in the .html.  Also use the provided &quot;js-test-pre.js&quot; and &quot;js-test-post.js&quot; scripts.
&gt; 
&gt; The .html should end up something like:
&gt; &lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; &lt;html&gt;
&gt; &lt;head&gt;
&gt; &lt;script src=&quot;resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; &lt;/head&gt;
&gt; &lt;body&gt;
&gt; &lt;script src=&quot;script-tests/var-declarations-zero-width.js&quot;&gt;&lt;/script&gt;
&gt; &lt;script src=&quot;resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; &lt;/body&gt;
&gt; 
&gt; And the script-tests/var-declarations-zero-width.js would be something like:
&gt; description(&quot;This page tests if U+200C and U+200D are allowed as part of an identifier.&quot;);
&gt; 
&gt; shouldBe(&quot;var x\u200c = 42; x\u200c&quot;, 42);
&gt; shouldBe(&quot;var x\u200d = 43; x\u200d&quot;, 43);

Thanks; will do. I did not know about this convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563331</commentid>
    <comment_count>32</comment_count>
      <attachid>128524</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 11:56:58 -0800</bug_when>
    <thetext>Created attachment 128524
Patch

Updated as per Michael’s and Alexey’s feedback. (Thanks!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563341</commentid>
    <comment_count>33</comment_count>
      <attachid>128527</attachid>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-23 12:03:41 -0800</bug_when>
    <thetext>Created attachment 128527
Patch

Corrected a typo in the LayoutTests/ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564029</commentid>
    <comment_count>34</comment_count>
      <attachid>128527</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 00:20:32 -0800</bug_when>
    <thetext>Comment on attachment 128527
Patch

Clearing flags on attachment: 128527

Committed r108742: &lt;http://trac.webkit.org/changeset/108742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564030</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 00:20:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564033</commentid>
    <comment_count>36</comment_count>
    <who name="Mathias Bynens">mathias</who>
    <bug_when>2012-02-24 00:23:46 -0800</bug_when>
    <thetext>Thanks for the help with this patch, everyone!

Bug 79353 tracks Unicode 6.1.0 support for identifiers, and I filed bug 79361 to enable the new layout test for Chromium as soon as V8 r10800 has rolled into WebKit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>127603</attachid>
            <date>2012-02-17 09:12:57 -0800</date>
            <delta_ts>2012-02-17 09:12:57 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>js-identifier-bug.html</filename>
            <type>text/html</type>
            <size>187</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cjx0aXRsZT5KYXZhU2NyaXB0IGlkZW50aWZpZXIgYnVnPC90aXRsZT4K
PHA+RkFJTAo8c2NyaXB0PgoJdmFyIGFcdTIwMGQgPSA0MjsKCWlmIChhXHUyMDBkID09IDQyKSB7
CgkJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3AnKVswXS5pbm5lckhUTUwgPSAnUEFT
Uyc7Cgl9Cjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128289</attachid>
            <date>2012-02-22 14:18:02 -0800</date>
            <delta_ts>2012-02-22 14:57:06 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>3594</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBBbGxvdyBVKzIwMEMgYW5kIFUrMjAwRCBpbiBJZGVudGlmaWVyUGFydCBhcyBwZXIgRVM1Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisg
ICAgICAgIEFkZCBhZGRpdGlvbmFsIGNoZWNrcyBmb3IgemVyby13aWR0aCBub24tam9pbmVyICgw
eDIwMEMpIGFuZAorICAgICAgICB6ZXJvLXdpZHRoIGpvaW5lciAoMHgyMDBEKSBjaGFyYWN0ZXJz
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFy
c2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6aXNOb25BU0NJSUlkZW50UGFydCkKKyAgICAg
ICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjo6OkxleGVyOjps
ZXhJZGVudGlmaWVyKQorCiAyMDEyLTAyLTIyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA4NDU2
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHJldmlzaW9uIDEw
ODUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDA3IENhbWVyb24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5
cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkK
ICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNzksOCArMzgwLDggQEAgc3RhdGljIGlubGluZSBi
b29sIGlzSWRlbnRTdGFydChpbnQgYykKIAogc3RhdGljIE5FVkVSX0lOTElORSBib29sIGlzTm9u
QVNDSUlJZGVudFBhcnQoaW50IGMpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICYgKExldHRl
cl9VcHBlcmNhc2UgfCBMZXR0ZXJfTG93ZXJjYXNlIHwgTGV0dGVyX1RpdGxlY2FzZSB8IExldHRl
cl9Nb2RpZmllciB8IExldHRlcl9PdGhlcgotICAgICAgICB8IE1hcmtfTm9uU3BhY2luZyB8IE1h
cmtfU3BhY2luZ0NvbWJpbmluZyB8IE51bWJlcl9EZWNpbWFsRGlnaXQgfCBQdW5jdHVhdGlvbl9D
b25uZWN0b3IpOworICAgIHJldHVybiBjID09IDB4MjAwQyB8fCBjID09IDB4MjAwRCB8fCAoY2F0
ZWdvcnkoYykgJiAoTGV0dGVyX1VwcGVyY2FzZSB8IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJf
VGl0bGVjYXNlIHwgTGV0dGVyX01vZGlmaWVyIHwgTGV0dGVyX090aGVyCisgICAgICAgIHwgTWFy
a19Ob25TcGFjaW5nIHwgTWFya19TcGFjaW5nQ29tYmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdp
dCB8IFB1bmN0dWF0aW9uX0Nvbm5lY3RvcikpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBi
b29sIGlzSWRlbnRQYXJ0KGludCBjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTGl0ZXJhbFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIE1hdGhpYXMgQnluZW5zIChtYXRoaWFz
QHFpd2kuYmUpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MSw3ICsyODIs
NyBAQCB0ZW1wbGF0ZSA8UGFyc2VyTW9kZSBtb2RlPiBUb2tlblR5cGUgTGl0CiB0ZW1wbGF0ZSA8
PgogQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQ2hhcj46OkxleGVyOjps
ZXhJZGVudGlmaWVyKExpdGVyYWxQYXJzZXJUb2tlbjxMQ2hhcj4mIHRva2VuKQogewotICAgIHdo
aWxlIChtX3B0ciA8IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0cikgfHwgKm1f
cHRyID09ICdfJyB8fCAqbV9wdHIgPT0gJyQnKSkKKyAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAm
JiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRy
ID09ICckJyB8fCAqbV9wdHIgPT0gMHgyMDBDIHx8ICptX3B0ciA9PSAweDIwMEQpKQogICAgICAg
ICBtX3B0cisrOwogICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7CiAgICAgdG9rZW4uc3RyaW5n
VG9rZW44ID0gdG9rZW4uc3RhcnQ7CkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBU
b2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgVG9r
ZW5UeXBlIExpdGVyYWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmllcihMaXRlcmFs
UGFyc2VyVG9rZW48VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAm
JiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRy
ID09ICckJykpCisgICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVy
aWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwgKm1fcHRyID09
IDB4MjAwQyB8fCAqbV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsKICAgICB0b2tl
bi5zdHJpbmdJczhCaXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0b2tlbi5zdGFy
dDsK
</data>
<flag name="review"
          id="130629"
          type_id="1"
          status="-"
          setter="mathias"
    />
    <flag name="commit-queue"
          id="130628"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128296</attachid>
            <date>2012-02-22 14:57:06 -0800</date>
            <delta_ts>2012-02-22 15:21:23 -0800</delta_ts>
            <desc>Proposed patch including new layout tests</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>5816</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclN0
YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODkwOAorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIGNoZWNrcyBmb3IgemVyby13
aWR0aCBub24tam9pbmVyICgweDIwMEMpIGFuZAorICAgICAgICB6ZXJvLXdpZHRoIGpvaW5lciAo
MHgyMDBEKSBjaGFyYWN0ZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6aXNOb25BU0NJ
SUlkZW50UGFydCkKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjo6OkxleGVyOjpsZXhJZGVudGlmaWVyKQorCiAyMDEyLTAyLTIyICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb2NhdGlvbnMgZnJv
bSBDb3BpZWRCbG9ja3Mgc2hvdWxkIGFsd2F5cyBiZSA4LWJ5dGUgYWxpZ25lZApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVy
b24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIw
MTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkKKyAqICBDb3B5cmln
aHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKICAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0zNzksOCArMzgwLDggQEAgc3RhdGljIGlubGluZSBib29sIGlzSWRlbnRT
dGFydChpbnQgYykKIAogc3RhdGljIE5FVkVSX0lOTElORSBib29sIGlzTm9uQVNDSUlJZGVudFBh
cnQoaW50IGMpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICYgKExldHRlcl9VcHBlcmNhc2Ug
fCBMZXR0ZXJfTG93ZXJjYXNlIHwgTGV0dGVyX1RpdGxlY2FzZSB8IExldHRlcl9Nb2RpZmllciB8
IExldHRlcl9PdGhlcgotICAgICAgICB8IE1hcmtfTm9uU3BhY2luZyB8IE1hcmtfU3BhY2luZ0Nv
bWJpbmluZyB8IE51bWJlcl9EZWNpbWFsRGlnaXQgfCBQdW5jdHVhdGlvbl9Db25uZWN0b3IpOwor
ICAgIHJldHVybiBjID09IDB4MjAwQyB8fCBjID09IDB4MjAwRCB8fCAoY2F0ZWdvcnkoYykgJiAo
TGV0dGVyX1VwcGVyY2FzZSB8IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwg
TGV0dGVyX01vZGlmaWVyIHwgTGV0dGVyX090aGVyCisgICAgICAgIHwgTWFya19Ob25TcGFjaW5n
IHwgTWFya19TcGFjaW5nQ29tYmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0
aW9uX0Nvbm5lY3RvcikpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQ
YXJ0KGludCBjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MSw3ICsyODIsNyBAQCB0ZW1wbGF0
ZSA8UGFyc2VyTW9kZSBtb2RlPiBUb2tlblR5cGUgTGl0CiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lO
TElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQ2hhcj46OkxleGVyOjpsZXhJZGVudGlmaWVy
KExpdGVyYWxQYXJzZXJUb2tlbjxMQ2hhcj4mIHRva2VuKQogewotICAgIHdoaWxlIChtX3B0ciA8
IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8
fCAqbV9wdHIgPT0gJyQnKSkKKyAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJyB8fCAq
bV9wdHIgPT0gMHgyMDBDIHx8ICptX3B0ciA9PSAweDIwMEQpKQogICAgICAgICBtX3B0cisrOwog
ICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7CiAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gdG9r
ZW4uc3RhcnQ7CkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0
ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgVG9rZW5UeXBlIExpdGVy
YWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmllcihMaXRlcmFsUGFyc2VyVG9rZW48
VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJykpCisg
ICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8
fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwgKm1fcHRyID09IDB4MjAwQyB8fCAq
bV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsKICAgICB0b2tlbi5zdHJpbmdJczhC
aXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0b2tlbi5zdGFydDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwODU1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNA
cWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93
ZWQgaW4gSWRlbnRpZmllclN0YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Zhci1kZWNsYXJh
dGlvbnMtemVyby13aWR0aC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yMiAgVG9tIFNlcGV6ICA8
dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yIGJ5cGFzcyB3aXRoIDxz
dmc+IHRhZ3MgYW5kIGh0bWwtZW50aXRpZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zh
ci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXpl
cm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMg
cGFnZSB0ZXN0cyBpZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFu
IGlkZW50aWZpZXIuCisKK1BBU1M6IHZhciB44oCMID0gNDI7IHjigIwgc2hvdWxkIGJlIDQyIGFu
ZCBpcy4KK1BBU1M6IHZhciB44oCNID0gNDM7IHjigI0gc2hvdWxkIGJlIDQzIGFuZCBpcy4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGguaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xh
cmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzxw
PlRoaXMgcGFnZSB0ZXN0cyBpZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0
IG9mIGFuIGlkZW50aWZpZXIuCis8cHJlIGlkPWNvbnNvbGU+PC9wcmU+CisKKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUocyArICJcbiIpKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikKK3sKKyAgICB2YXIg
ZXZhbEE7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbEEgPSBldmFsKGEpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXZhbEEgPSBlOworICAgIH0KKyAgICAKKyAgICBpZiAoZXZhbEEgPT09
IGIpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgYSArICIgc2hvdWxkIGJlICIgKyBiICsgIiBh
bmQgaXMuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nKCJGQUlMOiAiICsgYSArICIgc2hv
dWxkIGJlICIgKyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgZXZhbEEgKyAiLiIpOworICAgIH0K
K30KKworc2hvdWxkQmUoInZhciB4XHUyMDBjID0gNDI7IHhcdTIwMGMiLCA0Mik7CitzaG91bGRC
ZSgidmFyIHhcdTIwMGQgPSA0MzsgeFx1MjAwZCIsIDQzKTsKKworbG9nKCIiKTsKKzwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128301</attachid>
            <date>2012-02-22 15:21:23 -0800</date>
            <delta_ts>2012-02-23 03:52:51 -0800</delta_ts>
            <desc>Proposed patch including new layout tests that updates old ZWJ test</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7058</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclN0
YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODkwOAorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIGNoZWNrcyBmb3IgemVyby13
aWR0aCBub24tam9pbmVyICgweDIwMEMpIGFuZAorICAgICAgICB6ZXJvLXdpZHRoIGpvaW5lciAo
MHgyMDBEKSBjaGFyYWN0ZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6aXNOb25BU0NJ
SUlkZW50UGFydCkKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjo6OkxleGVyOjpsZXhJZGVudGlmaWVyKQorCiAyMDEyLTAyLTIyICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb2NhdGlvbnMgZnJv
bSBDb3BpZWRCbG9ja3Mgc2hvdWxkIGFsd2F5cyBiZSA4LWJ5dGUgYWxpZ25lZApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVy
b24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIw
MTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkKKyAqICBDb3B5cmln
aHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKICAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0zNzksOCArMzgwLDggQEAgc3RhdGljIGlubGluZSBib29sIGlzSWRlbnRT
dGFydChpbnQgYykKIAogc3RhdGljIE5FVkVSX0lOTElORSBib29sIGlzTm9uQVNDSUlJZGVudFBh
cnQoaW50IGMpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICYgKExldHRlcl9VcHBlcmNhc2Ug
fCBMZXR0ZXJfTG93ZXJjYXNlIHwgTGV0dGVyX1RpdGxlY2FzZSB8IExldHRlcl9Nb2RpZmllciB8
IExldHRlcl9PdGhlcgotICAgICAgICB8IE1hcmtfTm9uU3BhY2luZyB8IE1hcmtfU3BhY2luZ0Nv
bWJpbmluZyB8IE51bWJlcl9EZWNpbWFsRGlnaXQgfCBQdW5jdHVhdGlvbl9Db25uZWN0b3IpOwor
ICAgIHJldHVybiBjID09IDB4MjAwQyB8fCBjID09IDB4MjAwRCB8fCAoY2F0ZWdvcnkoYykgJiAo
TGV0dGVyX1VwcGVyY2FzZSB8IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwg
TGV0dGVyX01vZGlmaWVyIHwgTGV0dGVyX090aGVyCisgICAgICAgIHwgTWFya19Ob25TcGFjaW5n
IHwgTWFya19TcGFjaW5nQ29tYmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0
aW9uX0Nvbm5lY3RvcikpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQ
YXJ0KGludCBjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MSw3ICsyODIsNyBAQCB0ZW1wbGF0
ZSA8UGFyc2VyTW9kZSBtb2RlPiBUb2tlblR5cGUgTGl0CiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lO
TElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQ2hhcj46OkxleGVyOjpsZXhJZGVudGlmaWVy
KExpdGVyYWxQYXJzZXJUb2tlbjxMQ2hhcj4mIHRva2VuKQogewotICAgIHdoaWxlIChtX3B0ciA8
IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8
fCAqbV9wdHIgPT0gJyQnKSkKKyAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJyB8fCAq
bV9wdHIgPT0gMHgyMDBDIHx8ICptX3B0ciA9PSAweDIwMEQpKQogICAgICAgICBtX3B0cisrOwog
ICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7CiAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gdG9r
ZW4uc3RhcnQ7CkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0
ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgVG9rZW5UeXBlIExpdGVy
YWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmllcihMaXRlcmFsUGFyc2VyVG9rZW48
VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJykpCisg
ICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8
fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwgKm1fcHRyID09IDB4MjAwQyB8fCAq
bV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsKICAgICB0b2tlbi5zdHJpbmdJczhC
aXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0b2tlbi5zdGFydDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwODU1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNA
cWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93
ZWQgaW4gSWRlbnRpZmllclN0YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Zhci1kZWNsYXJh
dGlvbnMtemVyby13aWR0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3JlbW92aW5n
LUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkIHRoZSBaV0ogdGVzdC4KKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzOiBSZW1v
dmVkIHRoZSBaV0ogdGVzdC4KKwogMjAxMi0wMi0yMiAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yIGJ5cGFzcyB3aXRoIDxzdmc+IHRhZ3MgYW5k
IGh0bWwtZW50aXRpZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlbW92aW5nLUNmLWNo
YXJhY3RlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
cmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwODUzMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw2IEBAIFBBU1MgMSBpcyAxCiBQQVNTIGV2YWwoJyLv
u78iJykubGVuZ3RoIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyInKS5jaGFyQ29kZUF0KDApIGlzIDB4
RkVGRgogUEFTUyAr77u/KzEgLyogQk9NIGJldHdlZW4gdGhlICsncyAqLyBpcyAxCi1QQVNTIHZh
ciBaV0pfSeKAjW5zaWRlOyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgY2hh
cmFjdGVyICdcdTgyMDUnLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVy
by13aWR0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy92
YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgcGFnZSB0ZXN0cyBpZiBVKzIw
MEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZpZXIuCisKK1BB
U1M6IHZhciB44oCMID0gNDI7IHjigIwgc2hvdWxkIGJlIDQyIGFuZCBpcy4KK1BBU1M6IHZhciB4
4oCNID0gNDM7IHjigI0gc2hvdWxkIGJlIDQzIGFuZCBpcy4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRo
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzxwPlRoaXMgcGFnZSB0ZXN0cyBp
ZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZpZXIu
Cis8cHJlIGlkPWNvbnNvbGU+PC9wcmU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocyArICJcbiIpKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikKK3sKKyAgICB2YXIgZXZhbEE7CisgICAgdHJ5IHsK
KyAgICAgICAgZXZhbEEgPSBldmFsKGEpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXZh
bEEgPSBlOworICAgIH0KKyAgICAKKyAgICBpZiAoZXZhbEEgPT09IGIpIHsKKyAgICAgICAgbG9n
KCJQQVNTOiAiICsgYSArICIgc2hvdWxkIGJlICIgKyBiICsgIiBhbmQgaXMuIik7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbG9nKCJGQUlMOiAiICsgYSArICIgc2hvdWxkIGJlICIgKyBiICsgIiBi
dXQgaW5zdGVhZCBpcyAiICsgZXZhbEEgKyAiLiIpOworICAgIH0KK30KKworc2hvdWxkQmUoInZh
ciB4XHUyMDBjID0gNDI7IHhcdTIwMGMiLCA0Mik7CitzaG91bGRCZSgidmFyIHhcdTIwMGQgPSA0
MzsgeFx1MjAwZCIsIDQzKTsKKworbG9nKCIiKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFy
YWN0ZXJzLmpzCShyZXZpc2lvbiAxMDg1MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw0
ICsyNSwzIEBAIHNob3VsZEJlKCdldmFsKFwnIlx1RkVGRiJcJykubGVuZ3RoJywgJzEKIHNob3Vs
ZEJlKCdldmFsKFwnIlx1RkVGRiJcJykuY2hhckNvZGVBdCgwKScsICcweEZFRkYnKTsKIHNob3Vs
ZEJlKCcrJytldmFsKCJcIlx1RkVGRlwiIikrJysxIC8qIEJPTSBiZXR3ZWVuIHRoZSArXCdzICov
JywgJzEnKTsKIAotc2hvdWxkVGhyb3coJ3ZhciBaV0pfSeKAjW5zaWRlOycpOwo=
</data>
<flag name="commit-queue"
          id="130645"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128451</attachid>
            <date>2012-02-23 03:52:51 -0800</date>
            <delta_ts>2012-02-23 05:42:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7050</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclN0
YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODkwOAorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIGNoZWNrcyBmb3IgemVyby13
aWR0aCBub24tam9pbmVyICgweDIwMEMpIGFuZAorICAgICAgICB6ZXJvLXdpZHRoIGpvaW5lciAo
MHgyMDBEKSBjaGFyYWN0ZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6aXNOb25BU0NJ
SUlkZW50UGFydCkKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjo6OkxleGVyOjpsZXhJZGVudGlmaWVyKQorCiAyMDEyLTAyLTIyICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb2NhdGlvbnMgZnJv
bSBDb3BpZWRCbG9ja3Mgc2hvdWxkIGFsd2F5cyBiZSA4LWJ5dGUgYWxpZ25lZApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVy
b24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIw
MTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkKKyAqICBDb3B5cmln
aHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKICAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0zNzksOCArMzgwLDggQEAgc3RhdGljIGlubGluZSBib29sIGlzSWRlbnRT
dGFydChpbnQgYykKIAogc3RhdGljIE5FVkVSX0lOTElORSBib29sIGlzTm9uQVNDSUlJZGVudFBh
cnQoaW50IGMpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICYgKExldHRlcl9VcHBlcmNhc2Ug
fCBMZXR0ZXJfTG93ZXJjYXNlIHwgTGV0dGVyX1RpdGxlY2FzZSB8IExldHRlcl9Nb2RpZmllciB8
IExldHRlcl9PdGhlcgotICAgICAgICB8IE1hcmtfTm9uU3BhY2luZyB8IE1hcmtfU3BhY2luZ0Nv
bWJpbmluZyB8IE51bWJlcl9EZWNpbWFsRGlnaXQgfCBQdW5jdHVhdGlvbl9Db25uZWN0b3IpOwor
ICAgIHJldHVybiBjID09IDB4MjAwQyB8fCBjID09IDB4MjAwRCB8fCAoY2F0ZWdvcnkoYykgJiAo
TGV0dGVyX1VwcGVyY2FzZSB8IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwg
TGV0dGVyX01vZGlmaWVyIHwgTGV0dGVyX090aGVyCisgICAgICAgIHwgTWFya19Ob25TcGFjaW5n
IHwgTWFya19TcGFjaW5nQ29tYmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0
aW9uX0Nvbm5lY3RvcikpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQ
YXJ0KGludCBjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MSw3ICsyODIsNyBAQCB0ZW1wbGF0
ZSA8UGFyc2VyTW9kZSBtb2RlPiBUb2tlblR5cGUgTGl0CiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lO
TElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQ2hhcj46OkxleGVyOjpsZXhJZGVudGlmaWVy
KExpdGVyYWxQYXJzZXJUb2tlbjxMQ2hhcj4mIHRva2VuKQogewotICAgIHdoaWxlIChtX3B0ciA8
IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8
fCAqbV9wdHIgPT0gJyQnKSkKKyAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJyB8fCAq
bV9wdHIgPT0gMHgyMDBDIHx8ICptX3B0ciA9PSAweDIwMEQpKQogICAgICAgICBtX3B0cisrOwog
ICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7CiAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gdG9r
ZW4uc3RhcnQ7CkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0
ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgVG9rZW5UeXBlIExpdGVy
YWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmllcihMaXRlcmFsUGFyc2VyVG9rZW48
VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJykpCisg
ICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8
fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwgKm1fcHRyID09IDB4MjAwQyB8fCAq
bV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsKICAgICB0b2tlbi5zdHJpbmdJczhC
aXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0b2tlbi5zdGFydDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwODU1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIyICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNA
cWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93
ZWQgaW4gSWRlbnRpZmllclN0YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Zhci1kZWNsYXJh
dGlvbnMtemVyby13aWR0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3JlbW92aW5n
LUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkIHRoZSBaV0ogdGVzdC4KKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzOiBSZW1v
dmVkIHRoZSBaV0ogdGVzdC4KKwogMjAxMi0wMi0yMiAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yIGJ5cGFzcyB3aXRoIDxzdmc+IHRhZ3MgYW5k
IGh0bWwtZW50aXRpZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlbW92aW5nLUNmLWNo
YXJhY3RlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
cmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwODUzMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw2IEBAIFBBU1MgMSBpcyAxCiBQQVNTIGV2YWwoJyLv
u78iJykubGVuZ3RoIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyInKS5jaGFyQ29kZUF0KDApIGlzIDB4
RkVGRgogUEFTUyAr77u/KzEgLyogQk9NIGJldHdlZW4gdGhlICsncyAqLyBpcyAxCi1QQVNTIHZh
ciBaV0pfSeKAjW5zaWRlOyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgY2hh
cmFjdGVyICdcdTgyMDUnLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVy
by13aWR0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy92
YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1RoaXMgcGFnZSB0ZXN0cyBpZiBVKzIw
MEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZpZXIuCisKK1BB
U1M6IHZhciB44oCMID0gNDI7IHjigIwgc2hvdWxkIGJlIDQyIGFuZCBpcy4KK1BBU1M6IHZhciB4
4oCNID0gNDM7IHjigI0gc2hvdWxkIGJlIDQzIGFuZCBpcy4KKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lk
dGguaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorPHA+VGhpcyBwYWdlIHRlc3Rz
IGlmIFUrMjAwQyBhbmQgVSsyMDBEIGFyZSBhbGxvd2VkIGFzIHBhcnQgb2YgYW4gaWRlbnRpZmll
ci4KKzxwcmUgaWQ9Y29uc29sZT48L3ByZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIAorZnVuY3Rpb24gbG9nKHMpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOwor
fQorCitmdW5jdGlvbiBzaG91bGRCZShhLCBiKQoreworICAgIHZhciBldmFsQTsKKyAgICB0cnkg
eworICAgICAgICBldmFsQSA9IGV2YWwoYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBl
dmFsQSA9IGU7CisgICAgfQorICAgIAorICAgIGlmIChldmFsQSA9PT0gYikgeworICAgICAgICBs
b2coIlBBU1M6ICIgKyBhICsgIiBzaG91bGQgYmUgIiArIGIgKyAiIGFuZCBpcy4iKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBsb2coIkZBSUw6ICIgKyBhICsgIiBzaG91bGQgYmUgIiArIGIgKyAi
IGJ1dCBpbnN0ZWFkIGlzICIgKyBldmFsQSArICIuIik7CisgICAgfQorfQorCitzaG91bGRCZSgi
dmFyIHhcdTIwMGMgPSA0MjsgeFx1MjAwYyIsIDQyKTsKK3Nob3VsZEJlKCJ2YXIgeFx1MjAwZCA9
IDQzOyB4XHUyMDBkIiwgNDMpOworCis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5q
cwkocmV2aXNpb24gMTA4NTMwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
cmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjUsNCArMjUsMyBA
QCBzaG91bGRCZSgnZXZhbChcJyJcdUZFRkYiXCcpLmxlbmd0aCcsICcxCiBzaG91bGRCZSgnZXZh
bChcJyJcdUZFRkYiXCcpLmNoYXJDb2RlQXQoMCknLCAnMHhGRUZGJyk7CiBzaG91bGRCZSgnKycr
ZXZhbCgiXCJcdUZFRkZcIiIpKycrMSAvKiBCT00gYmV0d2VlbiB0aGUgK1wncyAqLycsICcxJyk7
CiAKLXNob3VsZFRocm93KCd2YXIgWldKX0nigI1uc2lkZTsnKTsK
</data>
<flag name="commit-queue"
          id="130851"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128463</attachid>
            <date>2012-02-23 05:42:09 -0800</date>
            <delta_ts>2012-02-23 05:47:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7845</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclN0
YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODkwOAorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIGNoZWNrcyBmb3IgemVyby13
aWR0aCBub24tam9pbmVyICgweDIwMEMpIGFuZAorICAgICAgICB6ZXJvLXdpZHRoIGpvaW5lciAo
MHgyMDBEKSBjaGFyYWN0ZXJzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6aXNOb25BU0NJ
SUlkZW50UGFydCkKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjo6OkxleGVyOjpsZXhJZGVudGlmaWVyKQorCiAyMDEyLTAyLTIyICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb2NhdGlvbnMgZnJv
bSBDb3BpZWRCbG9ja3Mgc2hvdWxkIGFsd2F5cyBiZSA4LWJ5dGUgYWxpZ25lZApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
LDYgKzMsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVy
b24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIw
MTAgWm9sdGFuIEhlcmN6ZWcgKHpoZXJjemVnQGluZi51LXN6ZWdlZC5odSkKKyAqICBDb3B5cmln
aHQgKEMpIDIwMTIgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKICAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0zNzksOCArMzgwLDggQEAgc3RhdGljIGlubGluZSBib29sIGlzSWRlbnRT
dGFydChpbnQgYykKIAogc3RhdGljIE5FVkVSX0lOTElORSBib29sIGlzTm9uQVNDSUlJZGVudFBh
cnQoaW50IGMpCiB7Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICYgKExldHRlcl9VcHBlcmNhc2Ug
fCBMZXR0ZXJfTG93ZXJjYXNlIHwgTGV0dGVyX1RpdGxlY2FzZSB8IExldHRlcl9Nb2RpZmllciB8
IExldHRlcl9PdGhlcgotICAgICAgICB8IE1hcmtfTm9uU3BhY2luZyB8IE1hcmtfU3BhY2luZ0Nv
bWJpbmluZyB8IE51bWJlcl9EZWNpbWFsRGlnaXQgfCBQdW5jdHVhdGlvbl9Db25uZWN0b3IpOwor
ICAgIHJldHVybiBjID09IDB4MjAwQyB8fCBjID09IDB4MjAwRCB8fCAoY2F0ZWdvcnkoYykgJiAo
TGV0dGVyX1VwcGVyY2FzZSB8IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwg
TGV0dGVyX01vZGlmaWVyIHwgTGV0dGVyX090aGVyCisgICAgICAgIHwgTWFya19Ob25TcGFjaW5n
IHwgTWFya19TcGFjaW5nQ29tYmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0
aW9uX0Nvbm5lY3RvcikpOwogfQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQ
YXJ0KGludCBjKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAJKHJldmlzaW9uIDEwODUzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIE1hdGhpYXMgQnluZW5zIChtYXRoaWFzQHFpd2kuYmUpCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MSw3ICsyODIsNyBAQCB0ZW1wbGF0
ZSA8UGFyc2VyTW9kZSBtb2RlPiBUb2tlblR5cGUgTGl0CiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lO
TElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQ2hhcj46OkxleGVyOjpsZXhJZGVudGlmaWVy
KExpdGVyYWxQYXJzZXJUb2tlbjxMQ2hhcj4mIHRva2VuKQogewotICAgIHdoaWxlIChtX3B0ciA8
IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8
fCAqbV9wdHIgPT0gJyQnKSkKKyAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJyB8fCAq
bV9wdHIgPT0gMHgyMDBDIHx8ICptX3B0ciA9PSAweDIwMEQpKQogICAgICAgICBtX3B0cisrOwog
ICAgIHRva2VuLnN0cmluZ0lzOEJpdCA9IDE7CiAgICAgdG9rZW4uc3RyaW5nVG9rZW44ID0gdG9r
ZW4uc3RhcnQ7CkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0
ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19JTkxJTkUgVG9rZW5UeXBlIExpdGVy
YWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmllcihMaXRlcmFsUGFyc2VyVG9rZW48
VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFs
cGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJykpCisg
ICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8
fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwgKm1fcHRyID09IDB4MjAwQyB8fCAq
bV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsKICAgICB0b2tlbi5zdHJpbmdJczhC
aXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0b2tlbi5zdGFydDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwODU1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNA
cWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93
ZWQgaW4gSWRlbnRpZmllclN0YXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Zhci1kZWNsYXJh
dGlvbnMtemVyby13aWR0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3JlbW92aW5n
LUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkIHRoZSBaV0ogdGVzdC4KKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzOiBSZW1v
dmVkIHRoZSBaV0ogdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6IERpc2FibGUgdGhlIG5ldyB0ZXN0IGluIENocm9taXVtLCBmb3Igbm93Lgor
CiAyMDEyLTAyLTIyICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFhTU0F1ZGl0b3IgYnlwYXNzIHdpdGggPHN2Zz4gdGFncyBhbmQgaHRtbC1lbnRpdGllcy4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZW1vdmluZy1DZi1jaGFyYWN0
ZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTA4NTMwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
OSw3ICs5LDYgQEAgUEFTUyAxIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyInKS5sZW5ndGggaXMgMQog
UEFTUyBldmFsKCci77u/IicpLmNoYXJDb2RlQXQoMCkgaXMgMHhGRUZGCiBQQVNTICvvu78rMSAv
KiBCT00gYmV0d2VlbiB0aGUgKydzICovIGlzIDEKLVBBU1MgdmFyIFpXSl9J4oCNbnNpZGU7IHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCBjaGFyYWN0ZXIgJ1x1ODIwNScuCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVy
by13aWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNSBAQAorVGhpcyBwYWdlIHRlc3RzIGlmIFUrMjAwQyBhbmQgVSsyMDBEIGFyZSBh
bGxvd2VkIGFzIHBhcnQgb2YgYW4gaWRlbnRpZmllci4KKworUEFTUzogdmFyIHjigIwgPSA0Mjsg
eOKAjCBzaG91bGQgYmUgNDIgYW5kIGlzLgorUEFTUzogdmFyIHjigI0gPSA0MzsgeOKAjSBzaG91
bGQgYmUgNDMgYW5kIGlzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJh
dGlvbnMtemVyby13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
dmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI5IEBACis8cD5UaGlzIHBhZ2UgdGVzdHMgaWYgVSsyMDBDIGFuZCBVKzIw
MEQgYXJlIGFsbG93ZWQgYXMgcGFydCBvZiBhbiBpZGVudGlmaWVyLgorPHByZSBpZD1jb25zb2xl
PjwvcHJlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgCitmdW5jdGlvbiBsb2co
cykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocyArICJcbiIpKTsKK30KKworZnVuY3Rpb24gc2hvdWxk
QmUoYSwgYikgeworICAgIHZhciBldmFsQTsKKyAgICB0cnkgeworICAgICAgICBldmFsQSA9IGV2
YWwoYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBldmFsQSA9IGU7CisgICAgfQorICAg
IAorICAgIGlmIChldmFsQSA9PT0gYikgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBhICsgIiBz
aG91bGQgYmUgIiArIGIgKyAiIGFuZCBpcy4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsb2co
IkZBSUw6ICIgKyBhICsgIiBzaG91bGQgYmUgIiArIGIgKyAiIGJ1dCBpbnN0ZWFkIGlzICIgKyBl
dmFsQSArICIuIik7CisgICAgfQorfQorCitzaG91bGRCZSgidmFyIHhcdTIwMGMgPSA0MjsgeFx1
MjAwYyIsIDQyKTsKK3Nob3VsZEJlKCJ2YXIgeFx1MjAwZCA9IDQzOyB4XHUyMDBkIiwgNDMpOwor
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmlu
Zy1DZi1jaGFyYWN0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2Ny
aXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMuanMJKHJldmlzaW9uIDEwODUzMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDQgKzI1LDMgQEAgc2hvdWxkQmUoJ2V2YWwoXCciXHVG
RUZGIlwnKS5sZW5ndGgnLCAnMQogc2hvdWxkQmUoJ2V2YWwoXCciXHVGRUZGIlwnKS5jaGFyQ29k
ZUF0KDApJywgJzB4RkVGRicpOwogc2hvdWxkQmUoJysnK2V2YWwoIlwiXHVGRUZGXCIiKSsnKzEg
LyogQk9NIGJldHdlZW4gdGhlICtcJ3MgKi8nLCAnMScpOwogCi1zaG91bGRUaHJvdygndmFyIFpX
Sl9J4oCNbnNpZGU7Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDg1MzApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTkxMyw2ICs5MTMsOSBAQCBCVUdDUjEwMjc4IExJTlVYIDogZmFzdC9jc3MvZm9udC1m
YWNlLXVuCiAvLyB3aGF0IHRoZSByZXNvbHV0aW9uIHdhcy4KIEJVR0NSMTAyNzkgOiBmYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtc2hhZG93aW5nLmh0bWwgPSBGQUlMCiAKKy8vIEZJWE1FOiBFbmFi
bGUgdGhpcyB0ZXN0IHdoZW4gVjggcjEwODAwIGhhcyByb2xsZWQgaW50byBXZWJLaXQuCitCVUdX
Szc5MzYxIDogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbCA9IEZBSUwK
KwogLy8gSW1wbGVtZW50IGZ1bGwgSlNPTiBzdXBwb3J0IGluIFY4CiBCVUdDUjE0ODg1IFNMT1cg
OiBmYXN0L2pzL0pTT04tcGFyc2UuaHRtbCA9IEZBSUwKIEJVR0NSMTQ4ODUgU0xPVyA6IGZhc3Qv
anMvSlNPTi1zdHJpbmdpZnkuaHRtbCA9IENSQVNIIEZBSUwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128464</attachid>
            <date>2012-02-23 05:45:32 -0800</date>
            <delta_ts>2012-02-23 06:04:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7843</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBh
cnQsIGFzIHBlciBFUzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4OTA4CisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwgY2hlY2tzIGZvciB6ZXJvLXdp
ZHRoIG5vbi1qb2luZXIgKDB4MjAwQykgYW5kCisgICAgICAgIHplcm8td2lkdGggam9pbmVyICgw
eDIwMEQpIGNoYXJhY3RlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjppc05vbkFTQ0lJ
SWRlbnRQYXJ0KQorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAg
IChKU0M6Ojo6TGV4ZXI6OmxleElkZW50aWZpZXIpCisKIDIwMTItMDItMjIgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvY2F0aW9ucyBmcm9t
IENvcGllZEJsb2NrcyBzaG91bGQgYWx3YXlzIGJlIDgtYnl0ZSBhbGlnbmVkCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAkocmV2aXNpb24gMTA4NTMwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMs
NiArMyw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJv
biBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAx
MCBab2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQorICogIENvcHlyaWdo
dCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTM3OSw4ICszODAsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJZGVudFN0
YXJ0KGludCBjKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIGJvb2wgaXNOb25BU0NJSUlkZW50UGFy
dChpbnQgYykKIHsKLSAgICByZXR1cm4gY2F0ZWdvcnkoYykgJiAoTGV0dGVyX1VwcGVyY2FzZSB8
IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwgTGV0dGVyX01vZGlmaWVyIHwg
TGV0dGVyX090aGVyCi0gICAgICAgIHwgTWFya19Ob25TcGFjaW5nIHwgTWFya19TcGFjaW5nQ29t
YmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0aW9uX0Nvbm5lY3Rvcik7Cisg
ICAgcmV0dXJuIGMgPT0gMHgyMDBDIHx8IGMgPT0gMHgyMDBEIHx8IChjYXRlZ29yeShjKSAmIChM
ZXR0ZXJfVXBwZXJjYXNlIHwgTGV0dGVyX0xvd2VyY2FzZSB8IExldHRlcl9UaXRsZWNhc2UgfCBM
ZXR0ZXJfTW9kaWZpZXIgfCBMZXR0ZXJfT3RoZXIKKyAgICAgICAgfCBNYXJrX05vblNwYWNpbmcg
fCBNYXJrX1NwYWNpbmdDb21iaW5pbmcgfCBOdW1iZXJfRGVjaW1hbERpZ2l0IHwgUHVuY3R1YXRp
b25fQ29ubmVjdG9yKSk7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBh
cnQoaW50IGMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcAkocmV2aXNpb24gMTA4NTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgTWF0aGlhcyBCeW5lbnMgKG1hdGhpYXNAcWl3aS5iZSkKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgxLDcgKzI4Miw3IEBAIHRlbXBsYXRl
IDxQYXJzZXJNb2RlIG1vZGU+IFRva2VuVHlwZSBMaXQKIHRlbXBsYXRlIDw+CiBBTFdBWVNfSU5M
SU5FIFRva2VuVHlwZSBMaXRlcmFsUGFyc2VyPExDaGFyPjo6TGV4ZXI6OmxleElkZW50aWZpZXIo
TGl0ZXJhbFBhcnNlclRva2VuPExDaGFyPiYgdG9rZW4pCiB7Ci0gICAgd2hpbGUgKG1fcHRyIDwg
bV9lbmQgJiYgKGlzQVNDSUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8
ICptX3B0ciA9PSAnJCcpKQorICAgIHdoaWxlIChtX3B0ciA8IG1fZW5kICYmIChpc0FTQ0lJQWxw
aGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8fCAqbV9wdHIgPT0gJyQnIHx8ICpt
X3B0ciA9PSAweDIwMEMgfHwgKm1fcHRyID09IDB4MjAwRCkpCiAgICAgICAgIG1fcHRyKys7CiAg
ICAgdG9rZW4uc3RyaW5nSXM4Qml0ID0gMTsKICAgICB0b2tlbi5zdHJpbmdUb2tlbjggPSB0b2tl
bi5zdGFydDsKQEAgLTI5NCw3ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5FIFRva2VuVHlwZSBMaXRl
cmFsUGFyc2VyPExDCiB0ZW1wbGF0ZSA8PgogQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0ZXJh
bFBhcnNlcjxVQ2hhcj46OkxleGVyOjpsZXhJZGVudGlmaWVyKExpdGVyYWxQYXJzZXJUb2tlbjxV
Q2hhcj4mIHRva2VuKQogewotICAgIHdoaWxlIChtX3B0ciA8IG1fZW5kICYmIChpc0FTQ0lJQWxw
aGFudW1lcmljKCptX3B0cikgfHwgKm1fcHRyID09ICdfJyB8fCAqbV9wdHIgPT0gJyQnKSkKKyAg
ICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8
ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJyB8fCAqbV9wdHIgPT0gMHgyMDBDIHx8ICpt
X3B0ciA9PSAweDIwMEQpKQogICAgICAgICBtX3B0cisrOwogICAgIHRva2VuLnN0cmluZ0lzOEJp
dCA9IDA7CiAgICAgdG9rZW4uc3RyaW5nVG9rZW4xNiA9IHRva2VuLnN0YXJ0OwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTA4NTUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDItMjMgIE1hdGhpYXMgQnluZW5zICA8bWF0aGlhc0Bx
aXdpLmJlPgorCisgICAgICAgIGBcdTIwMGNgIGFuZCBgXHUyMDBkYCBzaG91bGQgYmUgYWxsb3dl
ZCBpbiBJZGVudGlmaWVyUGFydCwgYXMgcGVyIEVTNQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdp
ZHRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRp
b25zLXplcm8td2lkdGguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZW1vdmluZy1D
Zi1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZCB0aGUgWldKIHRlc3QuCisgICAgICAg
ICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qczogUmVtb3Zl
ZCB0aGUgWldKIHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0OiBEaXNhYmxlIHRoZSBuZXcgdGVzdCBpbiBDaHJvbWl1bSwgZm9yIG5vdy4KKwog
MjAxMi0wMi0yMiAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBY
U1NBdWRpdG9yIGJ5cGFzcyB3aXRoIDxzdmc+IHRhZ3MgYW5kIGh0bWwtZW50aXRpZXMuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVy
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwODUzMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMv
cmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTks
NyArOSw2IEBAIFBBU1MgMSBpcyAxCiBQQVNTIGV2YWwoJyLvu78iJykubGVuZ3RoIGlzIDEKIFBB
U1MgZXZhbCgnIu+7vyInKS5jaGFyQ29kZUF0KDApIGlzIDB4RkVGRgogUEFTUyAr77u/KzEgLyog
Qk9NIGJldHdlZW4gdGhlICsncyAqLyBpcyAxCi1QQVNTIHZhciBaV0pfSeKAjW5zaWRlOyB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcdTgyMDUnLgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8t
d2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy92
YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUgQEAKK1RoaXMgcGFnZSB0ZXN0cyBpZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxs
b3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZpZXIuCisKK1BBU1M6IHZhciB44oCMID0gNDI7IHji
gIwgc2hvdWxkIGJlIDQyIGFuZCBpcy4KK1BBU1M6IHZhciB44oCNID0gNDM7IHjigI0gc2hvdWxk
IGJlIDQzIGFuZCBpcy4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRp
b25zLXplcm8td2lkdGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zh
ci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyOSBAQAorPHA+VGhpcyBwYWdlIHRlc3RzIGlmIFUrMjAwQyBhbmQgVSsyMDBE
IGFyZSBhbGxvd2VkIGFzIHBhcnQgb2YgYW4gaWRlbnRpZmllci4KKzxwcmUgaWQ9Y29uc29sZT48
L3ByZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIAorZnVuY3Rpb24gbG9nKHMp
IHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHMgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJl
KGEsIGIpIHsKKyAgICB2YXIgZXZhbEE7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbEEgPSBldmFs
KGEpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXZhbEEgPSBlOworICAgIH0KKyAgICAK
KyAgICBpZiAoZXZhbEEgPT09IGIpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgYSArICIgc2hv
dWxkIGJlICIgKyBiICsgIiBhbmQgaXMuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nKCJG
QUlMOiAiICsgYSArICIgc2hvdWxkIGJlICIgKyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgZXZh
bEEgKyAiLiIpOworICAgIH0KK30KKworc2hvdWxkQmUoInZhciB4XHUyMDBjID0gNDI7IHhcdTIw
MGMiLCA0Mik7CitzaG91bGRCZSgidmFyIHhcdTIwMGQgPSA0MzsgeFx1MjAwZCIsIDQzKTsKKzwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3Zpbmct
Q2YtY2hhcmFjdGVycy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzCShyZXZpc2lvbiAxMDg1MzApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw0ICsyNSwzIEBAIHNob3VsZEJlKCdldmFsKFwnIlx1RkVG
RiJcJykubGVuZ3RoJywgJzEKIHNob3VsZEJlKCdldmFsKFwnIlx1RkVGRiJcJykuY2hhckNvZGVB
dCgwKScsICcweEZFRkYnKTsKIHNob3VsZEJlKCcrJytldmFsKCJcIlx1RkVGRlwiIikrJysxIC8q
IEJPTSBiZXR3ZWVuIHRoZSArXCdzICovJywgJzEnKTsKIAotc2hvdWxkVGhyb3coJ3ZhciBaV0pf
SeKAjW5zaWRlOycpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gMTA4NTMwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC05MTMsNiArOTEzLDkgQEAgQlVHQ1IxMDI3OCBMSU5VWCA6IGZhc3QvY3NzL2ZvbnQtZmFj
ZS11bgogLy8gd2hhdCB0aGUgcmVzb2x1dGlvbiB3YXMuCiBCVUdDUjEwMjc5IDogZmFzdC9qcy92
YXItZGVjbGFyYXRpb25zLXNoYWRvd2luZy5odG1sID0gRkFJTAogCisvLyBGSVhNRTogRW5hYmxl
IHRoaXMgdGVzdCB3aGVuIFY4IHIxMDgwMCBoYXMgcm9sbGVkIGludG8gV2ViS2l0LgorQlVHV0s3
OTM2MSA6IGZhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwgPSBGQUlMCisK
IC8vIEltcGxlbWVudCBmdWxsIEpTT04gc3VwcG9ydCBpbiBWOAogQlVHQ1IxNDg4NSBTTE9XIDog
ZmFzdC9qcy9KU09OLXBhcnNlLmh0bWwgPSBGQUlMCiBCVUdDUjE0ODg1IFNMT1cgOiBmYXN0L2pz
L0pTT04tc3RyaW5naWZ5Lmh0bWwgPSBDUkFTSCBGQUlMCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128467</attachid>
            <date>2012-02-23 06:04:39 -0800</date>
            <delta_ts>2012-02-23 11:56:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7848</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBh
cnQsIGFzIHBlciBFUzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4OTA4CisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwgY2hlY2tzIGZvciB6ZXJvLXdp
ZHRoIG5vbi1qb2luZXIgKDB4MjAwQykgYW5kCisgICAgICAgIHplcm8td2lkdGggam9pbmVyICgw
eDIwMEQpIGNoYXJhY3RlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjppc05vbkFTQ0lJ
SWRlbnRQYXJ0KQorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAg
IChKU0M6Ojo6TGV4ZXI6OmxleElkZW50aWZpZXIpCisKIDIwMTItMDItMjIgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvY2F0aW9ucyBmcm9t
IENvcGllZEJsb2NrcyBzaG91bGQgYWx3YXlzIGJlIDgtYnl0ZSBhbGlnbmVkCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAkocmV2aXNpb24gMTA4NTMwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMs
NiArMyw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJv
biBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAx
MCBab2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQorICogIENvcHlyaWdo
dCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTM3OSw4ICszODAsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJZGVudFN0
YXJ0KGludCBjKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIGJvb2wgaXNOb25BU0NJSUlkZW50UGFy
dChpbnQgYykKIHsKLSAgICByZXR1cm4gY2F0ZWdvcnkoYykgJiAoTGV0dGVyX1VwcGVyY2FzZSB8
IExldHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwgTGV0dGVyX01vZGlmaWVyIHwg
TGV0dGVyX090aGVyCi0gICAgICAgIHwgTWFya19Ob25TcGFjaW5nIHwgTWFya19TcGFjaW5nQ29t
YmluaW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0aW9uX0Nvbm5lY3Rvcik7Cisg
ICAgcmV0dXJuIGMgPT0gMHgyMDBDIHx8IGMgPT0gMHgyMDBEIHx8IChjYXRlZ29yeShjKSAmIChM
ZXR0ZXJfVXBwZXJjYXNlIHwgTGV0dGVyX0xvd2VyY2FzZSB8IExldHRlcl9UaXRsZWNhc2UgfCBM
ZXR0ZXJfTW9kaWZpZXIgfCBMZXR0ZXJfT3RoZXIKKyAgICAgICAgfCBNYXJrX05vblNwYWNpbmcg
fCBNYXJrX1NwYWNpbmdDb21iaW5pbmcgfCBOdW1iZXJfRGVjaW1hbERpZ2l0IHwgUHVuY3R1YXRp
b25fQ29ubmVjdG9yKSk7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBh
cnQoaW50IGMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRl
cmFsUGFyc2VyLmNwcAkocmV2aXNpb24gMTA4NTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJl
KQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODEsNyArMjgyLDcgQEAgdGVt
cGxhdGUgPFBhcnNlck1vZGUgbW9kZT4gVG9rZW5UeXBlIExpdAogdGVtcGxhdGUgPD4KIEFMV0FZ
U19JTkxJTkUgVG9rZW5UeXBlIExpdGVyYWxQYXJzZXI8TENoYXI+OjpMZXhlcjo6bGV4SWRlbnRp
ZmllcihMaXRlcmFsUGFyc2VyVG9rZW48TENoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9w
dHIgPCBtX2VuZCAmJiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAn
XycgfHwgKm1fcHRyID09ICckJykpCisgICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVND
SUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcg
fHwgKm1fcHRyID09IDB4MjAwQyB8fCAqbV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIr
KzsKICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAxOwogICAgIHRva2VuLnN0cmluZ1Rva2VuOCA9
IHRva2VuLnN0YXJ0OwpAQCAtMjk0LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgVG9rZW5UeXBl
IExpdGVyYWxQYXJzZXI8TEMKIHRlbXBsYXRlIDw+CiBBTFdBWVNfSU5MSU5FIFRva2VuVHlwZSBM
aXRlcmFsUGFyc2VyPFVDaGFyPjo6TGV4ZXI6OmxleElkZW50aWZpZXIoTGl0ZXJhbFBhcnNlclRv
a2VuPFVDaGFyPiYgdG9rZW4pCiB7Ci0gICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVND
SUlBbHBoYW51bWVyaWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcp
KQorICAgIHdoaWxlIChtX3B0ciA8IG1fZW5kICYmIChpc0FTQ0lJQWxwaGFudW1lcmljKCptX3B0
cikgfHwgKm1fcHRyID09ICdfJyB8fCAqbV9wdHIgPT0gJyQnIHx8ICptX3B0ciA9PSAweDIwMEMg
fHwgKm1fcHRyID09IDB4MjAwRCkpCiAgICAgICAgIG1fcHRyKys7CiAgICAgdG9rZW4uc3RyaW5n
SXM4Qml0ID0gMDsKICAgICB0b2tlbi5zdHJpbmdUb2tlbjE2ID0gdG9rZW4uc3RhcnQ7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDg1NTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMi0yMyAgTWF0aGlhcyBCeW5lbnMgIDxtYXRo
aWFzQHFpd2kuYmU+CisKKyAgICAgICAgYFx1MjAwY2AgYW5kIGBcdTIwMGRgIHNob3VsZCBiZSBh
bGxvd2VkIGluIElkZW50aWZpZXJQYXJ0LCBhcyBwZXIgRVM1CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkwOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXpl
cm8td2lkdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Zhci1kZWNs
YXJhdGlvbnMtemVyby13aWR0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3JlbW92
aW5nLUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkIHRoZSBaV0ogdGVzdC4KKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLmpzOiBS
ZW1vdmVkIHRoZSBaV0ogdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6IERpc2FibGUgdGhlIG5ldyB0ZXN0IGluIENocm9taXVtLCBmb3Igbm93
LgorCiAyMDEyLTAyLTIyICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFhTU0F1ZGl0b3IgYnlwYXNzIHdpdGggPHN2Zz4gdGFncyBhbmQgaHRtbC1lbnRpdGllcy4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZW1vdmluZy1DZi1jaGFy
YWN0ZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTA4NTMwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9qcy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtOSw3ICs5LDYgQEAgUEFTUyAxIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyInKS5sZW5ndGggaXMg
MQogUEFTUyBldmFsKCci77u/IicpLmNoYXJDb2RlQXQoMCkgaXMgMHhGRUZGCiBQQVNTICvvu78r
MSAvKiBCT00gYmV0d2VlbiB0aGUgKydzICovIGlzIDEKLVBBU1MgdmFyIFpXSl9J4oCNbnNpZGU7
IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCBjaGFyYWN0ZXIgJ1x1ODIwNScu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMt
emVyby13aWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyBwYWdlIHRlc3RzIGlmIFUrMjAwQyBhbmQgVSsyMDBEIGFy
ZSBhbGxvd2VkIGFzIHBhcnQgb2YgYW4gaWRlbnRpZmllci4KKworUEFTUzogdmFyIHjigIwgPSA0
MjsgeOKAjCBzaG91bGQgYmUgNDIgYW5kIGlzLgorUEFTUzogdmFyIHjigI0gPSA0MzsgeOKAjSBz
aG91bGQgYmUgNDMgYW5kIGlzLgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNs
YXJhdGlvbnMtemVyby13aWR0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2pzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI5IEBACis8cD5UaGlzIHBhZ2UgdGVzdHMgaWYgVSsyMDBDIGFuZCBV
KzIwMEQgYXJlIGFsbG93ZWQgYXMgcGFydCBvZiBhbiBpZGVudGlmaWVyLgorPHByZSBpZD1jb25z
b2xlPjwvcHJlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgCitmdW5jdGlvbiBs
b2cocykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocyArICJcbiIpKTsKK30KKworZnVuY3Rpb24gc2hv
dWxkQmUoYSwgYikgeworICAgIHZhciBldmFsQTsKKyAgICB0cnkgeworICAgICAgICBldmFsQSA9
IGV2YWwoYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBldmFsQSA9IGU7CisgICAgfQor
ICAgIAorICAgIGlmIChldmFsQSA9PT0gYikgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBhICsg
IiBzaG91bGQgYmUgIiArIGIgKyAiIGFuZCBpcy4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBs
b2coIkZBSUw6ICIgKyBhICsgIiBzaG91bGQgYmUgIiArIGIgKyAiIGJ1dCBpbnN0ZWFkIGlzICIg
KyBldmFsQSArICIuIik7CisgICAgfQorfQorCitzaG91bGRCZSgidmFyIHhcdTIwMGMgPSA0Mjsg
eFx1MjAwYyIsIDQyKTsKK3Nob3VsZEJlKCJ2YXIgeFx1MjAwZCA9IDQzOyB4XHUyMDBkIiwgNDMp
OworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZW1v
dmluZy1DZi1jaGFyYWN0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMuanMJKHJldmlzaW9uIDEwODUzMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3Rl
cnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDQgKzI1LDMgQEAgc2hvdWxkQmUoJ2V2YWwoXCci
XHVGRUZGIlwnKS5sZW5ndGgnLCAnMQogc2hvdWxkQmUoJ2V2YWwoXCciXHVGRUZGIlwnKS5jaGFy
Q29kZUF0KDApJywgJzB4RkVGRicpOwogc2hvdWxkQmUoJysnK2V2YWwoIlwiXHVGRUZGXCIiKSsn
KzEgLyogQk9NIGJldHdlZW4gdGhlICtcJ3MgKi8nLCAnMScpOwogCi1zaG91bGRUaHJvdygndmFy
IFpXSl9J4oCNbnNpZGU7Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDg1MzApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTkxMyw2ICs5MTMsOSBAQCBCVUdDUjEwMjc4IExJTlVYIDogZmFzdC9jc3MvZm9u
dC1mYWNlLXVuCiAvLyB3aGF0IHRoZSByZXNvbHV0aW9uIHdhcy4KIEJVR0NSMTAyNzkgOiBmYXN0
L2pzL3Zhci1kZWNsYXJhdGlvbnMtc2hhZG93aW5nLmh0bWwgPSBGQUlMCiAKKy8vIEZJWE1FOiBF
bmFibGUgdGhpcyB0ZXN0IHdoZW4gVjggcjEwODAwIGhhcyByb2xsZWQgaW50byBXZWJLaXQuCitC
VUdXSzc5MzYxIDogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbCA9IEZB
SUwKKwogLy8gSW1wbGVtZW50IGZ1bGwgSlNPTiBzdXBwb3J0IGluIFY4CiBCVUdDUjE0ODg1IFNM
T1cgOiBmYXN0L2pzL0pTT04tcGFyc2UuaHRtbCA9IEZBSUwKIEJVR0NSMTQ4ODUgU0xPVyA6IGZh
c3QvanMvSlNPTi1zdHJpbmdpZnkuaHRtbCA9IENSQVNIIEZBSUwK
</data>
<flag name="review"
          id="130860"
          type_id="1"
          status="-"
          setter="mathias"
    />
    <flag name="commit-queue"
          id="130889"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128524</attachid>
            <date>2012-02-23 11:56:58 -0800</date>
            <delta_ts>2012-02-23 12:03:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7617</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBh
cnQsIGFzIHBlciBFUzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4OTA4CisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwgY2hlY2tzIGZvciB6ZXJvLXdp
ZHRoIG5vbi1qb2luZXIgKDB4MjAwQykgYW5kCisgICAgICAgIHplcm8td2lkdGggam9pbmVyICgw
eDIwMEQpIGNoYXJhY3RlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjppc05vbkFTQ0lJ
SWRlbnRQYXJ0KQorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAg
IChKU0M6Ojo6TGV4ZXI6OmxleElkZW50aWZpZXIpCisKIDIwMTItMDItMjIgIEdhdmluIEJhcnJh
Y2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBbW0Rl
ZmluZU93blByb3BlcnR5XV0gZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNiAr
Myw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJvbiBa
d2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAxMCBa
b2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQorICogIENvcHlyaWdodCAo
QykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQogICoKICAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTM3OSw4ICszODAsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJZGVudFN0YXJ0
KGludCBjKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIGJvb2wgaXNOb25BU0NJSUlkZW50UGFydChp
bnQgYykKIHsKLSAgICByZXR1cm4gY2F0ZWdvcnkoYykgJiAoTGV0dGVyX1VwcGVyY2FzZSB8IExl
dHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwgTGV0dGVyX01vZGlmaWVyIHwgTGV0
dGVyX090aGVyCi0gICAgICAgIHwgTWFya19Ob25TcGFjaW5nIHwgTWFya19TcGFjaW5nQ29tYmlu
aW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0aW9uX0Nvbm5lY3Rvcik7CisgICAg
cmV0dXJuIChjYXRlZ29yeShjKSAmIChMZXR0ZXJfVXBwZXJjYXNlIHwgTGV0dGVyX0xvd2VyY2Fz
ZSB8IExldHRlcl9UaXRsZWNhc2UgfCBMZXR0ZXJfTW9kaWZpZXIgfCBMZXR0ZXJfT3RoZXIKKyAg
ICAgICAgfCBNYXJrX05vblNwYWNpbmcgfCBNYXJrX1NwYWNpbmdDb21iaW5pbmcgfCBOdW1iZXJf
RGVjaW1hbERpZ2l0IHwgUHVuY3R1YXRpb25fQ29ubmVjdG9yKSkgfHwgYyA9PSAweDIwMEMgfHwg
YyA9PSAweDIwMEQ7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBhcnQo
aW50IGMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFs
UGFyc2VyLmNwcAkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlT
X0lOTElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19J
TkxJTkUgVG9rZW5UeXBlIExpdGVyYWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmll
cihMaXRlcmFsUGFyc2VyVG9rZW48VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIg
PCBtX2VuZCAmJiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycg
fHwgKm1fcHRyID09ICckJykpCisgICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlB
bHBoYW51bWVyaWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwg
Km1fcHRyID09IDB4MjAwQyB8fCAqbV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsK
ICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0
b2tlbi5zdGFydDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODYzNikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIzICBNYXRo
aWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1
MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBhcnQsIGFzIHBlciBFUzUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTA4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL3Nj
cmlwdC10ZXN0cy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZCB0aGUgWldKIHRlc3QuCisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVz
dHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qczogUmVtb3ZlZCB0aGUgWldKIHRlc3QuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OiBEaXNhYmxlIHRo
ZSBuZXcgdGVzdCBpbiBDaHJvbWl1bSwgZm9yIG5vdy4KKwogMjAxMi0wMi0yMyAgQ2hhbmdTZW9r
IE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qg
c3VwcG9ydCBzY2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24uCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEwODYzNikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hh
cmFjdGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw2IEBAIFBBU1Mg
MSBpcyAxCiBQQVNTIGV2YWwoJyLvu78iJykubGVuZ3RoIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyIn
KS5jaGFyQ29kZUF0KDApIGlzIDB4RkVGRgogUEFTUyAr77u/KzEgLyogQk9NIGJldHdlZW4gdGhl
ICsncyAqLyBpcyAxCi1QQVNTIHZhciBaV0pfSeKAjW5zaWRlOyB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcdTgyMDUnLgogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25z
LXplcm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitU
aGlzIHBhZ2UgdGVzdHMgaWYgVSsyMDBDIGFuZCBVKzIwMEQgYXJlIGFsbG93ZWQgYXMgcGFydCBv
ZiBhbiBpZGVudGlmaWVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2
YXIgeOKAjCA9IDQyOyB44oCMIGlzIDQyCitQQVNTIHZhciB44oCNID0gNDM7IHjigI0gaXMgNDMK
K1BBU1MgdmFyIHjigIzigI0gPSA0NDsgeOKAjOKAjSBpcyA0NAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3Zpbmct
Q2YtY2hhcmFjdGVycy5qcwkocmV2aXNpb24gMTA4NjM2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMjUsNCArMjUsMyBAQCBzaG91bGRCZSgnZXZhbChcJyJcdUZFRkYiXCcpLmxlbmd0aCcsICcx
CiBzaG91bGRCZSgnZXZhbChcJyJcdUZFRkYiXCcpLmNoYXJDb2RlQXQoMCknLCAnMHhGRUZGJyk7
CiBzaG91bGRCZSgnKycrZXZhbCgiXCJcdUZFRkZcIiIpKycrMSAvKiBCT00gYmV0d2VlbiB0aGUg
K1wncyAqLycsICcxJyk7CiAKLXNob3VsZFRocm93KCd2YXIgWldKX0nigI1uc2lkZTsnKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Zhci1kZWNsYXJhdGlvbnMtemVy
by13aWR0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorZGVzY3JpcHRpb24oIlRoaXMgcGFnZSB0ZXN0
cyBpZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZp
ZXIuIik7CisKK3Nob3VsZEJlKCJ2YXIgeFx1MjAwYyA9IDQyOyB4XHUyMDBjIiwgIjQyIik7Citz
aG91bGRCZSgidmFyIHhcdTIwMGQgPSA0MzsgeFx1MjAwZCIsICI0MyIpOworc2hvdWxkQmUoInZh
ciB4XHUyMDBjXHUyMDBkID0gNDQ7IHhcdTIwMGNcdTIwMGQiLCAiNDQiKTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDg2MzYpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTkxMiw2ICs5MTIsOSBAQCBCVUdDUjEwMjc4IExJTlVYIDogZmFzdC9jc3MvZm9udC1m
YWNlLXVuCiAvLyB3aGF0IHRoZSByZXNvbHV0aW9uIHdhcy4KIEJVR0NSMTAyNzkgOiBmYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtc2hhZG93aW5nLmh0bWwgPSBGQUlMCiAKKy8vIEZJWE1FOiBFbmFi
bGUgdGhpcyB0ZXN0IHdoZW4gVjggcjEwODAwIGhhcyByb2xsZWQgaW50byBXZWJLaXQuCitCVUdX
Szc5MzYxIDogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbCA9IEZBSUwK
KwogLy8gSW1wbGVtZW50IGZ1bGwgSlNPTiBzdXBwb3J0IGluIFY4CiBCVUdDUjE0ODg1IFNMT1cg
OiBmYXN0L2pzL0pTT04tcGFyc2UuaHRtbCA9IEZBSUwKIEJVR0NSMTQ4ODUgU0xPVyA6IGZhc3Qv
anMvSlNPTi1zdHJpbmdpZnkuaHRtbCA9IENSQVNIIEZBSUwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128527</attachid>
            <date>2012-02-23 12:03:41 -0800</date>
            <delta_ts>2012-02-24 00:20:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78908.patch</filename>
            <type>text/plain</type>
            <size>7617</size>
            <attacher name="Mathias Bynens">mathias</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTIzICBNYXRoaWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAg
ICBgXHUyMDBjYCBhbmQgYFx1MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBh
cnQsIGFzIHBlciBFUzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4OTA4CisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwgY2hlY2tzIGZvciB6ZXJvLXdp
ZHRoIG5vbi1qb2luZXIgKDB4MjAwQykgYW5kCisgICAgICAgIHplcm8td2lkdGggam9pbmVyICgw
eDIwMEQpIGNoYXJhY3RlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjppc05vbkFTQ0lJ
SWRlbnRQYXJ0KQorICAgICAgICAqIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHA6CisgICAgICAg
IChKU0M6Ojo6TGV4ZXI6OmxleElkZW50aWZpZXIpCisKIDIwMTItMDItMjIgIEdhdmluIEJhcnJh
Y2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBbW0Rl
ZmluZU93blByb3BlcnR5XV0gZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNiAr
Myw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJvbiBa
d2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAxMCBa
b2x0YW4gSGVyY3plZyAoemhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1KQorICogIENvcHlyaWdodCAo
QykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQogICoKICAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTM3OSw4ICszODAsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJZGVudFN0YXJ0
KGludCBjKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIGJvb2wgaXNOb25BU0NJSUlkZW50UGFydChp
bnQgYykKIHsKLSAgICByZXR1cm4gY2F0ZWdvcnkoYykgJiAoTGV0dGVyX1VwcGVyY2FzZSB8IExl
dHRlcl9Mb3dlcmNhc2UgfCBMZXR0ZXJfVGl0bGVjYXNlIHwgTGV0dGVyX01vZGlmaWVyIHwgTGV0
dGVyX090aGVyCi0gICAgICAgIHwgTWFya19Ob25TcGFjaW5nIHwgTWFya19TcGFjaW5nQ29tYmlu
aW5nIHwgTnVtYmVyX0RlY2ltYWxEaWdpdCB8IFB1bmN0dWF0aW9uX0Nvbm5lY3Rvcik7CisgICAg
cmV0dXJuIChjYXRlZ29yeShjKSAmIChMZXR0ZXJfVXBwZXJjYXNlIHwgTGV0dGVyX0xvd2VyY2Fz
ZSB8IExldHRlcl9UaXRsZWNhc2UgfCBMZXR0ZXJfTW9kaWZpZXIgfCBMZXR0ZXJfT3RoZXIKKyAg
ICAgICAgfCBNYXJrX05vblNwYWNpbmcgfCBNYXJrX1NwYWNpbmdDb21iaW5pbmcgfCBOdW1iZXJf
RGVjaW1hbERpZ2l0IHwgUHVuY3R1YXRpb25fQ29ubmVjdG9yKSkgfHwgYyA9PSAweDIwMEMgfHwg
YyA9PSAweDIwMEQ7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBhcnQo
aW50IGMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFs
UGFyc2VyLmNwcAkocmV2aXNpb24gMTA4NjM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyAobWF0aGlhc0BxaXdpLmJlKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOTQsNyArMjk1LDcgQEAgQUxXQVlT
X0lOTElORSBUb2tlblR5cGUgTGl0ZXJhbFBhcnNlcjxMQwogdGVtcGxhdGUgPD4KIEFMV0FZU19J
TkxJTkUgVG9rZW5UeXBlIExpdGVyYWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRpZmll
cihMaXRlcmFsUGFyc2VyVG9rZW48VUNoYXI+JiB0b2tlbikKIHsKLSAgICB3aGlsZSAobV9wdHIg
PCBtX2VuZCAmJiAoaXNBU0NJSUFscGhhbnVtZXJpYygqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycg
fHwgKm1fcHRyID09ICckJykpCisgICAgd2hpbGUgKG1fcHRyIDwgbV9lbmQgJiYgKGlzQVNDSUlB
bHBoYW51bWVyaWMoKm1fcHRyKSB8fCAqbV9wdHIgPT0gJ18nIHx8ICptX3B0ciA9PSAnJCcgfHwg
Km1fcHRyID09IDB4MjAwQyB8fCAqbV9wdHIgPT0gMHgyMDBEKSkKICAgICAgICAgbV9wdHIrKzsK
ICAgICB0b2tlbi5zdHJpbmdJczhCaXQgPSAwOwogICAgIHRva2VuLnN0cmluZ1Rva2VuMTYgPSB0
b2tlbi5zdGFydDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODYzNikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIzICBNYXRo
aWFzIEJ5bmVucyAgPG1hdGhpYXNAcWl3aS5iZT4KKworICAgICAgICBgXHUyMDBjYCBhbmQgYFx1
MjAwZGAgc2hvdWxkIGJlIGFsbG93ZWQgaW4gSWRlbnRpZmllclBhcnQsIGFzIHBlciBFUzUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTA4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL3Zh
ci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQg
dGhlIFpXSiB0ZXN0LgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNm
LWNoYXJhY3RlcnMuanM6IFJlbW92ZWQgdGhlIFpXSiB0ZXN0LgorICAgICAgICAqIGZhc3QvanMv
c2NyaXB0LXRlc3RzL3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC5qczogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OiBEaXNhYmxlIHRo
ZSBuZXcgdGVzdCBpbiBDaHJvbWl1bSwgZm9yIG5vdy4KKwogMjAxMi0wMi0yMyAgQ2hhbmdTZW9r
IE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qg
c3VwcG9ydCBzY2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24uCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEwODYzNikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVtb3ZpbmctQ2YtY2hh
cmFjdGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw2IEBAIFBBU1Mg
MSBpcyAxCiBQQVNTIGV2YWwoJyLvu78iJykubGVuZ3RoIGlzIDEKIFBBU1MgZXZhbCgnIu+7vyIn
KS5jaGFyQ29kZUF0KDApIGlzIDB4RkVGRgogUEFTUyAr77u/KzEgLyogQk9NIGJldHdlZW4gdGhl
ICsncyAqLyBpcyAxCi1QQVNTIHZhciBaV0pfSeKAjW5zaWRlOyB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IEludmFsaWQgY2hhcmFjdGVyICdcdTgyMDUnLgogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtemVyby13aWR0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGgtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25z
LXplcm8td2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitU
aGlzIHBhZ2UgdGVzdHMgaWYgVSsyMDBDIGFuZCBVKzIwMEQgYXJlIGFsbG93ZWQgYXMgcGFydCBv
ZiBhbiBpZGVudGlmaWVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2
YXIgeOKAjCA9IDQyOyB44oCMIGlzIDQyCitQQVNTIHZhciB44oCNID0gNDM7IHjigI0gaXMgNDMK
K1BBU1MgdmFyIHjigIzigI0gPSA0NDsgeOKAjOKAjSBpcyA0NAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
anMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvdmFyLWRlY2xhcmF0aW9ucy16ZXJvLXdpZHRoLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlbW92aW5nLUNmLWNoYXJhY3RlcnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVtb3Zpbmct
Q2YtY2hhcmFjdGVycy5qcwkocmV2aXNpb24gMTA4NjM2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9zY3JpcHQtdGVzdHMvcmVtb3ZpbmctQ2YtY2hhcmFjdGVycy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMjUsNCArMjUsMyBAQCBzaG91bGRCZSgnZXZhbChcJyJcdUZFRkYiXCcpLmxlbmd0aCcsICcx
CiBzaG91bGRCZSgnZXZhbChcJyJcdUZFRkYiXCcpLmNoYXJDb2RlQXQoMCknLCAnMHhGRUZGJyk7
CiBzaG91bGRCZSgnKycrZXZhbCgiXCJcdUZFRkZcIiIpKycrMSAvKiBCT00gYmV0d2VlbiB0aGUg
K1wncyAqLycsICcxJyk7CiAKLXNob3VsZFRocm93KCd2YXIgWldKX0nigI1uc2lkZTsnKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Zhci1kZWNsYXJhdGlvbnMtemVy
by13aWR0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorZGVzY3JpcHRpb24oIlRoaXMgcGFnZSB0ZXN0
cyBpZiBVKzIwMEMgYW5kIFUrMjAwRCBhcmUgYWxsb3dlZCBhcyBwYXJ0IG9mIGFuIGlkZW50aWZp
ZXIuIik7CisKK3Nob3VsZEJlKCJ2YXIgeFx1MjAwYyA9IDQyOyB4XHUyMDBjIiwgIjQyIik7Citz
aG91bGRCZSgidmFyIHhcdTIwMGQgPSA0MzsgeFx1MjAwZCIsICI0MyIpOworc2hvdWxkQmUoInZh
ciB4XHUyMDBjXHUyMDBkID0gNDQ7IHhcdTIwMGNcdTIwMGQiLCAiNDQiKTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDg2MzYpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTkxMiw2ICs5MTIsOSBAQCBCVUdDUjEwMjc4IExJTlVYIDogZmFzdC9jc3MvZm9udC1m
YWNlLXVuCiAvLyB3aGF0IHRoZSByZXNvbHV0aW9uIHdhcy4KIEJVR0NSMTAyNzkgOiBmYXN0L2pz
L3Zhci1kZWNsYXJhdGlvbnMtc2hhZG93aW5nLmh0bWwgPSBGQUlMCiAKKy8vIEZJWE1FOiBFbmFi
bGUgdGhpcyB0ZXN0IHdoZW4gVjggcjEwODAwIGhhcyByb2xsZWQgaW50byBXZWJLaXQuCitCVUdX
Szc5MzYxIDogZmFzdC9qcy92YXItZGVjbGFyYXRpb25zLXplcm8td2lkdGguaHRtbCA9IEZBSUwK
KwogLy8gSW1wbGVtZW50IGZ1bGwgSlNPTiBzdXBwb3J0IGluIFY4CiBCVUdDUjE0ODg1IFNMT1cg
OiBmYXN0L2pzL0pTT04tcGFyc2UuaHRtbCA9IEZBSUwKIEJVR0NSMTQ4ODUgU0xPVyA6IGZhc3Qv
anMvSlNPTi1zdHJpbmdpZnkuaHRtbCA9IENSQVNIIEZBSUwK
</data>

          </attachment>
      

    </bug>

</bugzilla>