<?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>52236</bug_id>
          
          <creation_ts>2011-01-11 12:21:16 -0800</creation_ts>
          <short_desc>Strip NUL character when copying text on Windows</short_desc>
          <delta_ts>2011-01-14 18:06:31 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>332541</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-11 12:21:16 -0800</bug_when>
    <thetext>Windows does not allow NUL characters on the clipboard since they are used to terminate the clipboard data.

We should strip NUL characters from the text before sending the text to the windows clipboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332557</commentid>
    <comment_count>1</comment_count>
      <attachid>78579</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-11 12:32:43 -0800</bug_when>
    <thetext>Created attachment 78579
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332627</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-11 14:00:18 -0800</bug_when>
    <thetext>Some testing:

On Chromium Linux, Chromium Win, Safari Win, we copy up to the NUL character (i.e., the copied text is truncated).

On Safari Mac and Chromium Mac, we ignore the NUL (when you paste, you get text without the NUL character).

On IE9, Firefox Win and Firefox Linux, the DOM has the unicode replacement character.

On Firefox Mac, the NUL is converted into a unicode replacement character (U+FFFD) in the pasted text.  Actually, it may already be replaced in the DOM but perhaps there&apos;s no glyph for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332631</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-11 14:02:29 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; On IE9, Firefox Win and Firefox Linux, the DOM has the unicode replacement character.

We should most certainly replace with the unicode replace character.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332653</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-11 14:18:38 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; On IE9, Firefox Win and Firefox Linux, the DOM has the unicode replacement character.
&gt; 
&gt; We should most certainly replace with the unicode replace character.

Yup, that&apos;s what the HTML5 spec says:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#plaintext-state</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332655</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-11 14:25:18 -0800</bug_when>
    <thetext>Actually, arv says that if he changes the test case to use innerHTML, the NUL character is stripped (he&apos;ll upload a test case).

Seems like we need to have setting textContent go through the HTML parser and the HTML parser needs to insert the replacement character.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332664</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-11 14:35:18 -0800</bug_when>
    <thetext>&gt; Seems like we need to have setting textContent go through the HTML parser and the HTML parser needs to insert the replacement character.

That would be surprising.  textContent is a DOM-level concept.  It should ignore anything HTML specific.  That said, stranger things have happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332668</commentid>
    <comment_count>7</comment_count>
      <attachid>78601</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-11 14:37:35 -0800</bug_when>
    <thetext>Created attachment 78601
Shows that NUL is stripped through the parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332672</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-11 14:43:02 -0800</bug_when>
    <thetext>HTML5 goes to great lengths trying to avoid having null characters in Unicode strings, but I don&apos;t think that it generally makes sense. Replacing null with U+FFFD during parsing is particularly weird, because one can always use DOM manipulation to insert a null (as it&apos;s done in attached test case), so there is no guarantee of &quot;no null in DOM&quot; anyway.

When copying, we should just make sure that the user gets expected results. As WebKit doesn&apos;t display nulls in content, they should be removed in copied text, not replaced with U+FFFD.

&gt; Seems like we need to have setting textContent go through the HTML parser and the HTML parser needs to insert the replacement character.

I don&apos;t think that it&apos;s the right direction. There are many ways to insert a null via DOM manipulation, and even HTML5 doesn&apos;t prohibit those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332699</commentid>
    <comment_count>9</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-01-11 15:03:23 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; When copying, we should just make sure that the user gets expected results. As WebKit doesn&apos;t display nulls in content, they should be removed in copied text, not replaced with U+FFFD.

Agreed. That was how this started before it got side tracked...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332704</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-11 15:05:53 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; When copying, we should just make sure that the user gets expected results. As WebKit doesn&apos;t display nulls in content, they should be removed in copied text, not replaced with U+FFFD.
&gt; 
&gt; Agreed. That was how this started before it got side tracked...

OK, patch coming for Chromium.  I don&apos;t have a windows box handy, so Safari Win will come later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332712</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-11 15:09:47 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; OK, patch coming for Chromium.  I don&apos;t have a windows box handy, so Safari Win will come later.

Why don&apos;t we do this when we&apos;re serializing DOM instead of doing it in each platform?  It&apos;s a simple modification to MarkupAccumulator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333935</commentid>
    <comment_count>12</comment_count>
      <attachid>78856</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-13 14:30:34 -0800</bug_when>
    <thetext>Created attachment 78856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333936</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-13 14:32:14 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=78856) [details]
&gt; Patch

I talked to Ryosuke offline and the code for putting plain text on the clipboard doesn&apos;t go through MarkupAccumulator, it goes thorough Editor::selectedText().  Adding the code there fixes Chromium Linux, but I need to do some more testing on a Windows machine to see if we need to make a similar fix in MarkupAccumulator (for the rich text case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333967</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-13 15:07:55 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Created an attachment (id=78856) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; I talked to Ryosuke offline and the code for putting plain text on the clipboard doesn&apos;t go through MarkupAccumulator, it goes thorough Editor::selectedText().  Adding the code there fixes Chromium Linux, but I need to do some more testing on a Windows machine to see if we need to make a similar fix in MarkupAccumulator (for the rich text case).

Per discussion in person, Tony doesn&apos;t have access to a Windows machine, so I&apos;ll build &amp; test his patch on my Windows machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334086</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-13 19:27:51 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Per discussion in person, Tony doesn&apos;t have access to a Windows machine, so I&apos;ll build &amp; test his patch on my Windows machine.

I confirmed that the bug does not produce on Windows with Tony&apos;s patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334089</commentid>
    <comment_count>16</comment_count>
      <attachid>78856</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-13 19:39:03 -0800</bug_when>
    <thetext>Comment on attachment 78856
Patch

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

r=me provided the answers to the following two questions are both yes.

&gt; LayoutTests/editing/pasteboard/copy-null-characters.html:27
&gt; +    var source = document.getElementById(&quot;source&quot;);
&gt; +    var textWithNull = &quot;Copy\0 paste me&quot;;
&gt; +    source.textContent = textWithNull;
&gt; +    sel.setPosition(source, 0);
&gt; +    document.execCommand(&quot;SelectAll&quot;);
&gt; +    document.execCommand(&quot;Copy&quot;);
&gt; +    // Remove the source text so we don&apos;t end up with a null character in the
&gt; +    // expected output file.
&gt; +    source.parentNode.removeChild(source);
&gt; +
&gt; +    var destinationRichText = document.getElementById(&quot;destination-rich-text&quot;);
&gt; +    sel.setPosition(destinationRichText, 0);
&gt; +    document.execCommand(&quot;Paste&quot;);
&gt; +
&gt; +    var destinationPlainText = document.getElementById(&quot;destination-plain-text&quot;);
&gt; +    destinationPlainText.focus();
&gt; +    document.execCommand(&quot;Paste&quot;);

Could you also add a test case where the copied contents are richly formatted?

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:194
&gt; -        String text = selectedRange-&gt;text();
&gt; +        String text = frame-&gt;editor()-&gt;selectedText();

If I&apos;m understanding this right, you&apos;d expect expect Range::text() to include null char because it&apos;s a DOM API. Am I right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334617</commentid>
    <comment_count>17</comment_count>
      <attachid>79001</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 14:35:09 -0800</bug_when>
    <thetext>Created attachment 79001
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334618</commentid>
    <comment_count>18</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 14:36:36 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Could you also add a test case where the copied contents are richly formatted?

Done.

&gt; &gt; Source/WebCore/platform/mac/PasteboardMac.mm:194
&gt; &gt; -        String text = selectedRange-&gt;text();
&gt; &gt; +        String text = frame-&gt;editor()-&gt;selectedText();
&gt; 
&gt; If I&apos;m understanding this right, you&apos;d expect expect Range::text() to include null char because it&apos;s a DOM API. Am I right?

Yes, that&apos;s right.  This has the side benefit that now all platforms use the same code path to get the plain text that is placed on the clipboard/pasteboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334641</commentid>
    <comment_count>19</comment_count>
      <attachid>79001</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 14:56:20 -0800</bug_when>
    <thetext>Comment on attachment 79001
Patch for landing

+static String removeNULLCharacters(const String&amp; str)
+{
+    String copy = str;
+    return copy.removeCharacters(&amp;isNULLCharacter);
+}

Wow, that&apos;s a pretty slow way to remove nulls. Are we sure that we want to land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334645</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 15:02:56 -0800</bug_when>
    <thetext>User-initiated copying may not be the hottest code, but one function call per character is still a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334649</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-14 15:06:09 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 79001:

http/tests/appcache/update-cache.html bug 52483 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334655</commentid>
    <comment_count>22</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 15:11:26 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; User-initiated copying may not be the hottest code, but one function call per character is still a lot.

I suspect the compiler would inline the function, but if you prefer, I can update the patch to use StringImpl::replace(UChar, StringImpl*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334656</commentid>
    <comment_count>23</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 15:13:54 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #20)
&gt; &gt; User-initiated copying may not be the hottest code, but one function call per character is still a lot.
&gt; 
&gt; I suspect the compiler would inline the function, but if you prefer, I can update the patch to use StringImpl::replace(UChar, StringImpl*).

I could also use StringImpl::createStrippingNullCharactersSlowCase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334676</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 15:35:20 -0800</bug_when>
    <thetext>&gt; I suspect the compiler would inline the function, but if you prefer, I can update the patch to use StringImpl::replace(UChar, StringImpl*).

The compiler cannot inline the function, because String::removeCharacters() is not inline itself. The function&apos;s definition is not visible in StringImpl.cpp (which is in JavaScriptCore, so even cross-unit inlining wouldn&apos;t work).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334686</commentid>
    <comment_count>25</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-14 15:48:30 -0800</bug_when>
    <thetext>Better way to do it (untested):

static String removeNULLCharacters(const String&amp; str)
{
    return str.replace(0, &quot;&quot;);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334689</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 15:51:47 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 79001 [details])
&gt; +static String removeNULLCharacters(const String&amp; str)
&gt; +{
&gt; +    String copy = str;
&gt; +    return copy.removeCharacters(&amp;isNULLCharacter);
&gt; +}
&gt; 
&gt; Wow, that&apos;s a pretty slow way to remove nulls. Are we sure that we want to land it?

Oops, I missed that.  Let&apos;s fix this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334705</commentid>
    <comment_count>27</comment_count>
      <attachid>79021</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 16:11:14 -0800</bug_when>
    <thetext>Created attachment 79021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334720</commentid>
    <comment_count>28</comment_count>
      <attachid>79021</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 16:34:31 -0800</bug_when>
    <thetext>Comment on attachment 79021
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:133
&gt; +static void removeNULLCharacters(String&amp; str)
&gt; +{
&gt; +    str.replace(0, &quot;&quot;);
&gt; +}

I didn&apos;t comment about the function name, because I assumed that you&apos;d just inline str.replace(0, &quot;&quot;) at call site. But NULL isn&apos;t great, s it usually refers to C null pointer macro, which is not a single byte, and which we don&apos;t use anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334772</commentid>
    <comment_count>29</comment_count>
      <attachid>79039</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-01-14 17:26:06 -0800</bug_when>
    <thetext>Created attachment 79039
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334797</commentid>
    <comment_count>30</comment_count>
      <attachid>79039</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-14 18:06:23 -0800</bug_when>
    <thetext>Comment on attachment 79039
Patch for landing

Clearing flags on attachment: 79039

Committed r75861: &lt;http://trac.webkit.org/changeset/75861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334798</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-14 18:06:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>78579</attachid>
            <date>2011-01-11 12:32:43 -0800</date>
            <delta_ts>2011-01-11 12:32:43 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>copy-nul.html</filename>
            <type>text/html</type>
            <size>97</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cjxib2R5Pgo8c2NyaXB0Pgpkb2N1bWVudC5ib2R5LnRleHRDb250ZW50
ID0gJ0NvcHlcMCBwYXN0ZSBtZSc7Cjwvc2NyaXB0Pgo8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>78601</attachid>
            <date>2011-01-11 14:37:35 -0800</date>
            <delta_ts>2011-01-11 14:37:35 -0800</delta_ts>
            <desc>Shows that NUL is stripped through the parser</desc>
            <filename>copy-nul.html</filename>
            <type>text/html</type>
            <size>682</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8c2NyaXB0Pgpkb2N1bWVudC53cml0ZSgnPHA+ZG9jLndyaXRlOiA8
c3BhbiBpZD10MT5cMDwvc3Bhbj4sIDxzcGFuIGlkPWwxPjwvc3Bhbj4nKTsKPC9zY3JpcHQ+Cgo8
cD5pbm5lckhUTUw6IDxzcGFuIGlkPXQyPjwvc3Bhbj4sIDxzcGFuIGlkPWwyPjwvc3Bhbj4KPHA+
dGV4dENvbnRlbnQ6IDxzcGFuIGlkPXQzPjwvc3Bhbj4sIDxzcGFuIGlkPWwzPjwvc3Bhbj4KCjxz
Y3JpcHQ+CnZhciB0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0MScpOwp2YXIgbDEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbDEnKTsKCmwxLnRleHRDb250ZW50ID0gSlNPTi5zdHJp
bmdpZnkodDEudGV4dENvbnRlbnQpOwoKdmFyIHQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3QyJyk7CnZhciBsMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsMicpOwoKdDIuaW5uZXJI
VE1MID0gJ1wwJzsKbDIudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0Mi50ZXh0Q29udGVu
dCk7Cgp2YXIgdDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndDMnKTsKdmFyIGwzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2wzJyk7Cgp0My50ZXh0Q29udGVudCA9ICdcMCc7CmwzLnRl
eHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkodDMudGV4dENvbnRlbnQpOwoKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78856</attachid>
            <date>2011-01-13 14:30:34 -0800</date>
            <delta_ts>2011-01-14 14:35:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52236-20110113143033.patch</filename>
            <type>text/plain</type>
            <size>6625</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDI4YzEyYzk5NzhiMmNiNjNhMmUzZjY4YjhhYjFlZDgwZmZiMzg4Li43N2Q5NWEz
NTdmYzczMzc1NWFlMTIzYmIxYzI0MjhlNTc5Mzg0NDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMTMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpcCBOVUwgY2hhcmFjdGVy
IHdoZW4gY29weWluZyBwbGFpbiB0ZXh0IHRvIHRoZSBjbGlwYm9hcmQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjM2CisKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMuaHRtbDog
QWRkZWQuCisKIDIwMTEtMDEtMTMgIEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0
ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51
bGwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk3NDg3OGI1MjkxMGI5NDUw
ZjdkMDdmOWJmZjg2MTcwMDMyMWNlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMiBAQAorSWYgdGhlcmUgYXJlIE5VTEwgY2hhcmFjdGVycyBpbiB0ZXh0IG5vZGVzLCB0
aGV5IHNob3VsZCBub3QgYmUgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuICBUaGlzIHRlc3QgcmVx
dWlyZXMgRHVtcFJlbmRlclRyZWUuCit8ICIKKyIKK3wgIgorIgorfCA8ZGl2PgorfCAgIGNvbnRl
bnRlZGl0YWJsZT0idHJ1ZSIKK3wgICBpZD0iZGVzdGluYXRpb24tcmljaC10ZXh0IgorfCAgICJD
b3B5IHBhc3RlIG1lIgorfCAiCisiCit8IDx0ZXh0YXJlYT4KK3wgICBpZD0iZGVzdGluYXRpb24t
cGxhaW4tdGV4dCIKK3wgICB0aGlzLnZhbHVlPSJDb3B5IHBhc3RlIG1lIgorfCAiCisiCit8IDxk
aXY+Cit8ICAgaWQ9InJlc3VsdHMiCit8ICAgIlBBU1NFRCIKK3wgIgorCisiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMuaHRt
bCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYzZGI0OWQwYTI1M2NkYjBkYjE2ZDljYWIyMGNmNDQ5ZTE2NjY5ODkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1u
dWxsLWNoYXJhY3RlcnMuaHRtbApAQCAtMCwwICsxLDUxIEBACis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K01hcmt1cC5kZXNjcmlwdGlvbignSWYgdGhlcmUgYXJlIE5VTEwgY2hhcmFjdGVycyBpbiB0ZXh0
IG5vZGVzLCB0aGV5IHNob3VsZCBub3QgYmUgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuICBUaGlz
IHRlc3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUuJyk7CitNYXJrdXAubm9BdXRvRHVtcCgpOwor
CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlv
bigpOworCisgICAgdmFyIHNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2Ui
KTsKKyAgICB2YXIgdGV4dFdpdGhOdWxsID0gIkNvcHlcMCBwYXN0ZSBtZSI7CisgICAgc291cmNl
LnRleHRDb250ZW50ID0gdGV4dFdpdGhOdWxsOworICAgIHNlbC5zZXRQb3NpdGlvbihzb3VyY2Us
IDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiQ29weSIpOworICAgIC8vIFJlbW92ZSB0aGUgc291cmNlIHRleHQgc28g
d2UgZG9uJ3QgZW5kIHVwIHdpdGggYSBudWxsIGNoYXJhY3RlciBpbiB0aGUKKyAgICAvLyBleHBl
Y3RlZCBvdXRwdXQgZmlsZS4KKyAgICBzb3VyY2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzb3Vy
Y2UpOworCisgICAgdmFyIGRlc3RpbmF0aW9uUmljaFRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGVzdGluYXRpb24tcmljaC10ZXh0Iik7CisgICAgc2VsLnNldFBvc2l0aW9uKGRlc3Rp
bmF0aW9uUmljaFRleHQsIDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOwor
CisgICAgdmFyIGRlc3RpbmF0aW9uUGxhaW5UZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRlc3RpbmF0aW9uLXBsYWluLXRleHQiKTsKKyAgICBkZXN0aW5hdGlvblBsYWluVGV4dC5mb2N1
cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgdmFyIHJlc3Vs
dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpOworICAgIHZhciBleHBlY3Rl
ZFBsYWluVGV4dFZhbHVlID0gIkNvcHkgcGFzdGUgbWUiOworICAgIGlmIChleHBlY3RlZFBsYWlu
VGV4dFZhbHVlICE9IGRlc3RpbmF0aW9uUGxhaW5UZXh0LnZhbHVlKSB7CisgICAgICAgIHJlc3Vs
dHMuaW5uZXJUZXh0ID0gIlBsYWluIHRleHQgZmllbGQgaGFzIHRoZSB3cm9uZyB2YWx1ZSAoZXhw
ZWN0ZWQgIiArCisgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShleHBlY3RlZFBsYWluVGV4dFZh
bHVlKSArICIgYnV0IGZvdW5kICIgKworICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGVzdGlu
YXRpb25QbGFpblRleHQudmFsdWUpICsgIikuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHJlc3VsdHMuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisKKyAgICBNYXJrdXAuZHVtcChkb2N1
bWVudC5ib2R5KTsKKyAgICBNYXJrdXAubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9InNvdXJjZSIgY29udGVu
dEVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KKzxkaXYgaWQ9ImRlc3RpbmF0aW9uLXJpY2gtdGV4dCIg
Y29udGVudEVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KKzx0ZXh0YXJlYSBpZD0iZGVzdGluYXRpb24t
cGxhaW4tdGV4dCI+PC90ZXh0YXJlYT4KKzxkaXYgaWQ9InJlc3VsdHMiPkZBSUxFRDwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNTYyNmYzODc5OTc4ZTI2NzYxMjQ1MDkzNWI4NThiY2Jk
YWYyNmUuLmZmYjVlY2FhNzM5MjU5YTc1YTZhMmNjMTY3N2NmYjk2M2ZjNDM0OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMS0xMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN0cmlwIE5VTCBjaGFyYWN0ZXIgd2hlbiBjb3B5aW5nIHBsYWluIHRleHQgdG8gdGhlIGNsaXBi
b2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIy
MzYKKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3Rl
cnMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNOVUxMQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZU5VTExDaGFyYWN0
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0ZWRUZXh0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OndyaXRlU2VsZWN0aW9uKTogVXNlIGVkaXRvcigpLT5zZWxlY3RlZFRleHQoKQorICAg
ICAgICAgICAgd2hpY2ggbWF0Y2hlcyB0aGUgb3RoZXIgcGxhdGZvcm1zLgorCiAyMDExLTAxLTEz
ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc1NzI1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IGEyNGU3YzYwYjUyNWU2MTVhYTFlZTEzNjNmNTgwMDFkNmUxMTBhNDIuLjcwOWU2MmQ1OGNi
YzBjZjI3YjQ4YzZhYjNmNzk2NzJlMDNmYmY1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTEyNyw2ICsxMjcsMTcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtl
cjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKQogICAgIHJldHVybiBt
YXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50OwogfQogCitzdGF0aWMgYm9vbCBpc05VTExDaGFyYWN0
ZXIoVUNoYXIgY2hhcmFjdGVyKQoreworICAgIHJldHVybiAhY2hhcmFjdGVyOworfQorCitzdGF0
aWMgU3RyaW5nIHJlbW92ZU5VTExDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgc3RyKQoreworICAg
IFN0cmluZyBjb3B5ID0gc3RyOworICAgIHJldHVybiBjb3B5LnJlbW92ZUNoYXJhY3RlcnMoJmlz
TlVMTENoYXJhY3Rlcik7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFuZGxlciBoYXMgbW92ZWQg
dGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAvLyB3ZSBzaG91bGQgdXNl
IHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBlZGl0aW5nIG9wZXJhdGlv
bi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50KiBl
dmVudCkKQEAgLTMwMzEsNyArMzA0Miw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBiCiAKIFN0
cmluZyBFZGl0b3I6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBsYWluVGV4
dChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSk7CisgICAg
cmV0dXJuIHJlbW92ZU5VTExDaGFyYWN0ZXJzKHBsYWluVGV4dChtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSkpOwogfQogCiBJbnRSZWN0IEVkaXRvcjo6Zmly
c3RSZWN0Rm9yUmFuZ2UoUmFuZ2UqIHJhbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBiMWYyMzI3Y2FlMzE2NWNhOWFmMDkzNGJl
NjYwY2U3NDMwZDJjZjE5Li43MWU0MDQ2OWUyODZlYzdmMzI5OGI0Yzc1MTlkYTBjZjVkZTcyNTgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAt
MTkxLDcgKzE5MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oTlNQYXN0ZWJv
YXJkKiBwYXN0ZWJvYXJkLCBSYW5nZSogc2VsZWN0ZWRSYW5nZSwKICAgICBpZiAoW3R5cGVzIGNv
bnRhaW5zT2JqZWN0Ok5TU3RyaW5nUGJvYXJkVHlwZV0pIHsKICAgICAgICAgLy8gTWFwICZuYnNw
OyB0byBhIHBsYWluIG9sZCBzcGFjZSBiZWNhdXNlIHRoaXMgaXMgYmV0dGVyIGZvciBzb3VyY2Ug
Y29kZSwgb3RoZXIgYnJvd3NlcnMgZG8gaXQsCiAgICAgICAgIC8vIGFuZCBiZWNhdXNlIEhUTUwg
Zm9yY2VzIHlvdSB0byBkbyB0aGlzIGFueSB0aW1lIHlvdSB3YW50IHR3byBzcGFjZXMgaW4gYSBy
b3cuCi0gICAgICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRSYW5nZS0+dGV4dCgpOworICAgICAg
ICBTdHJpbmcgdGV4dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7CiAgICAgICAg
IE5TTXV0YWJsZVN0cmluZyAqcyA9IFtbWyhOU1N0cmluZyopdGV4dCBjb3B5XSBhdXRvcmVsZWFz
ZV0gbXV0YWJsZUNvcHldOwogICAgICAgICAKICAgICAgICAgTlNTdHJpbmcgKk5vbkJyZWFraW5n
U3BhY2VTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6Jm5vQnJlYWtTcGFj
ZSBsZW5ndGg6MV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79001</attachid>
            <date>2011-01-14 14:35:09 -0800</date>
            <delta_ts>2011-01-14 16:11:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-52236-20110114143508.patch</filename>
            <type>text/plain</type>
            <size>7888</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDI4YzEyYzk5NzhiMmNiNjNhMmUzZjY4YjhhYjFlZDgwZmZiMzg4Li41NjZlNGI3
NTQzZjY1NTYyZWNiYTU2ODgxMmNhNmQwZjQyMTA5N2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMTMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgU3RyaXAgTlVMIGNoYXJhY3RlciB3
aGVuIGNvcHlpbmcgcGxhaW4gdGV4dCB0byB0aGUgY2xpcGJvYXJkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIzNgorCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLmh0bWw6IEFk
ZGVkLgorCiAyMDExLTAxLTEzICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVy
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxs
LWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNDUxNDRjODk4MWFhZjAzNzlm
NGE0MDlmYjI3YTdhN2QzOGRiMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNTAgQEAKK0lmIHRoZXJlIGFyZSBOVUxMIGNoYXJhY3RlcnMgaW4gdGV4dCBub2RlcywgdGhl
eSBzaG91bGQgbm90IGJlIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkLiAgVGhpcyB0ZXN0IHJlcXVp
cmVzIER1bXBSZW5kZXJUcmVlLgorfCAiCisiCit8IDxkaXY+Cit8ICAgaWQ9Im91dGVyU291cmNl
IgorfCAgIDxwPgorfCAgICAgPGI+Cit8ICAgICAgICJib2xkIgorfCAgICIKKyAgIgorfCAgICIK
KyAgIgorfCAgIDxwPgorfCAgICAgc3R5bGU9ImNvbG9yOiBncmVlbiIKK3wgICAgICJncmVlbiIK
K3wgICAiCisiCit8ICIKKyIKK3wgPGRpdj4KK3wgICBjb250ZW50ZWRpdGFibGU9InRydWUiCit8
ICAgaWQ9ImRlc3RpbmF0aW9uLXJpY2gtdGV4dCIKK3wgICA8cD4KK3wgICAgIDxiPgorfCAgICAg
ICAiYm9sZCIKK3wgICA8ZGl2PgorfCAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgorfCAgICAg
aWQ9InNvdXJjZSIKK3wgICAgICJDb3B5IHBhc3RlIG1lIgorfCAgIDxzcGFuPgorfCAgICAgY2xh
c3M9IkFwcGxlLXN0eWxlLXNwYW4iCit8ICAgICBzdHlsZT0iY29sb3I6IHJnYigwLCAxMjgsIDAp
OyAiCit8ICAgICAiZ3JlZW4iCit8ICAgIkNvcHkgcGFzdGUgbWUiCit8ICIKKyIKK3wgPHRleHRh
cmVhPgorfCAgIGlkPSJkZXN0aW5hdGlvbi1wbGFpbi10ZXh0IgorfCAgIHRoaXMudmFsdWU9IkNv
cHkgcGFzdGUgbWVib2xkCisKK0NvcHkgcGFzdGUgbWUKK2dyZWVuIgorfCAiCisiCit8IDxkaXY+
Cit8ICAgaWQ9InJlc3VsdHMiCit8ICAgIlBBU1NFRCIKK3wgIgorCisiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM5MmFiOGI0NmNmMTA1MGQzOThmYTk5YzViOTAzODY0NTFlY2E1OGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxs
LWNoYXJhY3RlcnMuaHRtbApAQCAtMCwwICsxLDc0IEBACis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK01h
cmt1cC5kZXNjcmlwdGlvbignSWYgdGhlcmUgYXJlIE5VTEwgY2hhcmFjdGVycyBpbiB0ZXh0IG5v
ZGVzLCB0aGV5IHNob3VsZCBub3QgYmUgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuICBUaGlzIHRl
c3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUuJyk7CitNYXJrdXAubm9BdXRvRHVtcCgpOworCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigp
OworCisgICAgdmFyIHNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsK
KyAgICB2YXIgdGV4dFdpdGhOdWxsID0gIkNvcHlcMCBwYXN0ZSBtZSI7CisgICAgc291cmNlLnRl
eHRDb250ZW50ID0gdGV4dFdpdGhOdWxsOworICAgIHNlbC5zZXRQb3NpdGlvbihzb3VyY2UsIDAp
OworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiQ29weSIpOworCisgICAgdmFyIGRlc3RpbmF0aW9uUmljaFRleHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzdGluYXRpb24tcmljaC10ZXh0Iik7CisgICAgc2VsLnNl
dFBvc2l0aW9uKGRlc3RpbmF0aW9uUmljaFRleHQsIDApOworICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJQYXN0ZSIpOworCisgICAgdmFyIGRlc3RpbmF0aW9uUGxhaW5UZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uLXBsYWluLXRleHQiKTsKKyAgICBkZXN0aW5hdGlv
blBsYWluVGV4dC5mb2N1cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOwor
CisgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpOwor
ICAgIHZhciBleHBlY3RlZFBsYWluVGV4dFZhbHVlID0gIkNvcHkgcGFzdGUgbWUiOworICAgIGlm
IChleHBlY3RlZFBsYWluVGV4dFZhbHVlICE9IGRlc3RpbmF0aW9uUGxhaW5UZXh0LnZhbHVlKSB7
CisgICAgICAgIHJlc3VsdHMuaW5uZXJUZXh0ID0gIlBsYWluIHRleHQgZmllbGQgaGFzIHRoZSB3
cm9uZyB2YWx1ZSAoZXhwZWN0ZWQgIiArCisgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShleHBl
Y3RlZFBsYWluVGV4dFZhbHVlKSArICIgYnV0IGZvdW5kICIgKworICAgICAgICAgICAgSlNPTi5z
dHJpbmdpZnkoZGVzdGluYXRpb25QbGFpblRleHQudmFsdWUpICsgIikuIjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIC8vIFJ1biB0aGUgc2FtZSB0ZXN0IGJ1dCBpbmNsdWRlIHNvbWUg
cmljaGx5IGZvcm1hdHRlZCB0ZXh0LgorICAgIHZhciBvdXRlclNvdXJjZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRlclNvdXJjZSIpOworICAgIHNlbC5zZXRCYXNlQW5kRXh0ZW50KG91
dGVyU291cmNlLCAwLCBkZXN0aW5hdGlvblJpY2hUZXh0LCAwKTsKKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgiQ29weSIpOworCisgICAgLy8gUmVtb3ZlIHRoZSBzb3VyY2UgdGV4dCBzbyB3ZSBk
b24ndCBlbmQgdXAgd2l0aCBhIG51bGwgY2hhcmFjdGVyIGluIHRoZQorICAgIC8vIGV4cGVjdGVk
IG91dHB1dCBmaWxlLgorICAgIHNvdXJjZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNvdXJjZSk7
CisKKyAgICBzZWwuc2V0UG9zaXRpb24oZGVzdGluYXRpb25SaWNoVGV4dCwgMCk7CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICBkZXN0aW5hdGlvblBsYWluVGV4dC5m
b2N1cygpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgdmFyIGV4
cGVjdGVkUGxhaW5UZXh0VmFsdWUyID0gIkNvcHkgcGFzdGUgbWVib2xkXG5cbkNvcHkgcGFzdGUg
bWVcbmdyZWVuIjsKKyAgICBpZiAoZXhwZWN0ZWRQbGFpblRleHRWYWx1ZTIgIT0gZGVzdGluYXRp
b25QbGFpblRleHQudmFsdWUpIHsKKyAgICAgICAgcmVzdWx0cy5pbm5lclRleHQgPSAiUGxhaW4g
dGV4dCBmaWVsZCBoYXMgdGhlIHdyb25nIHZhbHVlIChleHBlY3RlZCAiICsKKyAgICAgICAgICAg
IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkUGxhaW5UZXh0VmFsdWUyKSArICIgYnV0IGZvdW5kICIg
KworICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGVzdGluYXRpb25QbGFpblRleHQudmFsdWUp
ICsgIikuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlc3VsdHMuaW5uZXJUZXh0
ID0gIlBBU1NFRCI7CisKKyAgICBNYXJrdXAuZHVtcChkb2N1bWVudC5ib2R5KTsKKyAgICBNYXJr
dXAubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxkaXYgaWQ9Im91dGVyU291cmNlIj48cD48Yj5ib2xkPC9iPjwvcD4KKyAg
PGRpdiBpZD0ic291cmNlIiBjb250ZW50RWRpdGFibGU9InRydWUiPjwvZGl2PgorICA8cCBzdHls
ZT0iY29sb3I6IGdyZWVuIj5ncmVlbjwvcD4KKzwvZGl2PgorPGRpdiBpZD0iZGVzdGluYXRpb24t
cmljaC10ZXh0IiBjb250ZW50RWRpdGFibGU9InRydWUiPjwvZGl2PgorPHRleHRhcmVhIGlkPSJk
ZXN0aW5hdGlvbi1wbGFpbi10ZXh0Ij48L3RleHRhcmVhPgorPGRpdiBpZD0icmVzdWx0cyI+RkFJ
TEVEPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA1NjI2ZjM4Nzk5NzhlMjY3NjEyNDUw
OTM1Yjg1OGJjYmRhZjI2ZS4uNGYzNjA3MjE2NmRiZjE0MDUyYjEwNGQ2MTEzZTEzNzE4M2Y0NjZm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTAxLTEzICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIFN0cmlwIE5VTCBjaGFyYWN0ZXIgd2hlbiBjb3B5aW5nIHBsYWluIHRleHQgdG8g
dGhlIGNsaXBib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTIyMzYKKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxs
LWNoYXJhY3RlcnMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNOVUxMQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZU5V
TExDaGFyYWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0ZWRUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKTogVXNlIGVkaXRvcigpLT5zZWxlY3RlZFRl
eHQoKQorICAgICAgICAgICAgd2hpY2ggbWF0Y2hlcyB0aGUgb3RoZXIgcGxhdGZvcm1zLgorCiAy
MDExLTAxLTEzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc1NzI1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCmluZGV4IGEyNGU3YzYwYjUyNWU2MTVhYTFlZTEzNjNmNTgwMDFkNmUxMTBhNDIuLjcw
OWU2MmQ1OGNiYzBjZjI3YjQ4YzZhYjNmNzk2NzJlMDNmYmY1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKQEAgLTEyNyw2ICsxMjcsMTcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKQogICAg
IHJldHVybiBtYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50OwogfQogCitzdGF0aWMgYm9vbCBpc05V
TExDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQoreworICAgIHJldHVybiAhY2hhcmFjdGVyOwor
fQorCitzdGF0aWMgU3RyaW5nIHJlbW92ZU5VTExDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgc3Ry
KQoreworICAgIFN0cmluZyBjb3B5ID0gc3RyOworICAgIHJldHVybiBjb3B5LnJlbW92ZUNoYXJh
Y3RlcnMoJmlzTlVMTENoYXJhY3Rlcik7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFuZGxlciBo
YXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAvLyB3ZSBz
aG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBlZGl0aW5n
IG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JDb21tYW5k
KEV2ZW50KiBldmVudCkKQEAgLTMwMzEsNyArMzA0Miw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCBiCiAKIFN0cmluZyBFZGl0b3I6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHBsYWluVGV4dChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQo
KSk7CisgICAgcmV0dXJuIHJlbW92ZU5VTExDaGFyYWN0ZXJzKHBsYWluVGV4dChtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSkpOwogfQogCiBJbnRSZWN0IEVk
aXRvcjo6Zmlyc3RSZWN0Rm9yUmFuZ2UoUmFuZ2UqIHJhbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBiMWYyMzI3Y2FlMzE2NWNh
OWFmMDkzNGJlNjYwY2U3NDMwZDJjZjE5Li43MWU0MDQ2OWUyODZlYzdmMzI5OGI0Yzc1MTlkYTBj
ZjVkZTcyNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
TlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBSYW5nZSogc2VsZWN0ZWRSYW5nZSwKICAgICBpZiAo
W3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5TU3RyaW5nUGJvYXJkVHlwZV0pIHsKICAgICAgICAgLy8g
TWFwICZuYnNwOyB0byBhIHBsYWluIG9sZCBzcGFjZSBiZWNhdXNlIHRoaXMgaXMgYmV0dGVyIGZv
ciBzb3VyY2UgY29kZSwgb3RoZXIgYnJvd3NlcnMgZG8gaXQsCiAgICAgICAgIC8vIGFuZCBiZWNh
dXNlIEhUTUwgZm9yY2VzIHlvdSB0byBkbyB0aGlzIGFueSB0aW1lIHlvdSB3YW50IHR3byBzcGFj
ZXMgaW4gYSByb3cuCi0gICAgICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRSYW5nZS0+dGV4dCgp
OworICAgICAgICBTdHJpbmcgdGV4dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7
CiAgICAgICAgIE5TTXV0YWJsZVN0cmluZyAqcyA9IFtbWyhOU1N0cmluZyopdGV4dCBjb3B5XSBh
dXRvcmVsZWFzZV0gbXV0YWJsZUNvcHldOwogICAgICAgICAKICAgICAgICAgTlNTdHJpbmcgKk5v
bkJyZWFraW5nU3BhY2VTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6Jm5v
QnJlYWtTcGFjZSBsZW5ndGg6MV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79021</attachid>
            <date>2011-01-14 16:11:14 -0800</date>
            <delta_ts>2011-01-14 17:26:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52236-20110114161112.patch</filename>
            <type>text/plain</type>
            <size>7716</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDI4YzEyYzk5NzhiMmNiNjNhMmUzZjY4YjhhYjFlZDgwZmZiMzg4Li5lNzAxZjk5
MjM0ZWY3MWM5YWEyNDY0ZWJlMjYzMWRjOTQzMjJkY2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMTQgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpcCBOVUwgY2hhcmFjdGVy
IHdoZW4gY29weWluZyB0ZXh0IG9uIFdpbmRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjM2CisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvY29weS1udWxsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMuaHRtbDogQWRkZWQuCisKIDIw
MTEtMDEtMTMgIEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVy
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0NTE0NGM4OTgxYWFmMDM3OWY0YTQwOWZiMjdh
N2E3ZDM4ZGIyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MCBAQAor
SWYgdGhlcmUgYXJlIE5VTEwgY2hhcmFjdGVycyBpbiB0ZXh0IG5vZGVzLCB0aGV5IHNob3VsZCBu
b3QgYmUgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuICBUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJl
bmRlclRyZWUuCit8ICIKKyIKK3wgPGRpdj4KK3wgICBpZD0ib3V0ZXJTb3VyY2UiCit8ICAgPHA+
Cit8ICAgICA8Yj4KK3wgICAgICAgImJvbGQiCit8ICAgIgorICAiCit8ICAgIgorICAiCit8ICAg
PHA+Cit8ICAgICBzdHlsZT0iY29sb3I6IGdyZWVuIgorfCAgICAgImdyZWVuIgorfCAgICIKKyIK
K3wgIgorIgorfCA8ZGl2PgorfCAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKK3wgICBpZD0iZGVz
dGluYXRpb24tcmljaC10ZXh0IgorfCAgIDxwPgorfCAgICAgPGI+Cit8ICAgICAgICJib2xkIgor
fCAgIDxkaXY+Cit8ICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCit8ICAgICBpZD0ic291cmNl
IgorfCAgICAgIkNvcHkgcGFzdGUgbWUiCit8ICAgPHNwYW4+Cit8ICAgICBjbGFzcz0iQXBwbGUt
c3R5bGUtc3BhbiIKK3wgICAgIHN0eWxlPSJjb2xvcjogcmdiKDAsIDEyOCwgMCk7ICIKK3wgICAg
ICJncmVlbiIKK3wgICAiQ29weSBwYXN0ZSBtZSIKK3wgIgorIgorfCA8dGV4dGFyZWE+Cit8ICAg
aWQ9ImRlc3RpbmF0aW9uLXBsYWluLXRleHQiCit8ICAgdGhpcy52YWx1ZT0iQ29weSBwYXN0ZSBt
ZWJvbGQKKworQ29weSBwYXN0ZSBtZQorZ3JlZW4iCit8ICIKKyIKK3wgPGRpdj4KK3wgICBpZD0i
cmVzdWx0cyIKK3wgICAiUEFTU0VEIgorfCAiCisKKyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzkyYWI4YjQ2Y2YxMDUwZDM5OGZhOTljNWI5MDM4NjQ1MWVjYTU4YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVy
cy5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorTWFya3VwLmRlc2Ny
aXB0aW9uKCdJZiB0aGVyZSBhcmUgTlVMTCBjaGFyYWN0ZXJzIGluIHRleHQgbm9kZXMsIHRoZXkg
c2hvdWxkIG5vdCBiZSBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZC4gIFRoaXMgdGVzdCByZXF1aXJl
cyBEdW1wUmVuZGVyVHJlZS4nKTsKK01hcmt1cC5ub0F1dG9EdW1wKCk7CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKKyAgICB2
YXIgc291cmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJjZSIpOworICAgIHZhciB0
ZXh0V2l0aE51bGwgPSAiQ29weVwwIHBhc3RlIG1lIjsKKyAgICBzb3VyY2UudGV4dENvbnRlbnQg
PSB0ZXh0V2l0aE51bGw7CisgICAgc2VsLnNldFBvc2l0aW9uKHNvdXJjZSwgMCk7CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJDb3B5Iik7CisKKyAgICB2YXIgZGVzdGluYXRpb25SaWNoVGV4dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZXN0aW5hdGlvbi1yaWNoLXRleHQiKTsKKyAgICBzZWwuc2V0UG9zaXRpb24o
ZGVzdGluYXRpb25SaWNoVGV4dCwgMCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3Rl
Iik7CisKKyAgICB2YXIgZGVzdGluYXRpb25QbGFpblRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGVzdGluYXRpb24tcGxhaW4tdGV4dCIpOworICAgIGRlc3RpbmF0aW9uUGxhaW5UZXh0
LmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICB2YXIg
cmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRzIik7CisgICAgdmFyIGV4
cGVjdGVkUGxhaW5UZXh0VmFsdWUgPSAiQ29weSBwYXN0ZSBtZSI7CisgICAgaWYgKGV4cGVjdGVk
UGxhaW5UZXh0VmFsdWUgIT0gZGVzdGluYXRpb25QbGFpblRleHQudmFsdWUpIHsKKyAgICAgICAg
cmVzdWx0cy5pbm5lclRleHQgPSAiUGxhaW4gdGV4dCBmaWVsZCBoYXMgdGhlIHdyb25nIHZhbHVl
IChleHBlY3RlZCAiICsKKyAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkUGxhaW5U
ZXh0VmFsdWUpICsgIiBidXQgZm91bmQgIiArCisgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShk
ZXN0aW5hdGlvblBsYWluVGV4dC52YWx1ZSkgKyAiKS4iOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gUnVuIHRoZSBzYW1lIHRlc3QgYnV0IGluY2x1ZGUgc29tZSByaWNobHkgZm9y
bWF0dGVkIHRleHQuCisgICAgdmFyIG91dGVyU291cmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dGVyU291cmNlIik7CisgICAgc2VsLnNldEJhc2VBbmRFeHRlbnQob3V0ZXJTb3VyY2Us
IDAsIGRlc3RpbmF0aW9uUmljaFRleHQsIDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJD
b3B5Iik7CisKKyAgICAvLyBSZW1vdmUgdGhlIHNvdXJjZSB0ZXh0IHNvIHdlIGRvbid0IGVuZCB1
cCB3aXRoIGEgbnVsbCBjaGFyYWN0ZXIgaW4gdGhlCisgICAgLy8gZXhwZWN0ZWQgb3V0cHV0IGZp
bGUuCisgICAgc291cmNlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc291cmNlKTsKKworICAgIHNl
bC5zZXRQb3NpdGlvbihkZXN0aW5hdGlvblJpY2hUZXh0LCAwKTsKKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgiUGFzdGUiKTsKKworICAgIGRlc3RpbmF0aW9uUGxhaW5UZXh0LmZvY3VzKCk7Cisg
ICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICB2YXIgZXhwZWN0ZWRQbGFp
blRleHRWYWx1ZTIgPSAiQ29weSBwYXN0ZSBtZWJvbGRcblxuQ29weSBwYXN0ZSBtZVxuZ3JlZW4i
OworICAgIGlmIChleHBlY3RlZFBsYWluVGV4dFZhbHVlMiAhPSBkZXN0aW5hdGlvblBsYWluVGV4
dC52YWx1ZSkgeworICAgICAgICByZXN1bHRzLmlubmVyVGV4dCA9ICJQbGFpbiB0ZXh0IGZpZWxk
IGhhcyB0aGUgd3JvbmcgdmFsdWUgKGV4cGVjdGVkICIgKworICAgICAgICAgICAgSlNPTi5zdHJp
bmdpZnkoZXhwZWN0ZWRQbGFpblRleHRWYWx1ZTIpICsgIiBidXQgZm91bmQgIiArCisgICAgICAg
ICAgICBKU09OLnN0cmluZ2lmeShkZXN0aW5hdGlvblBsYWluVGV4dC52YWx1ZSkgKyAiKS4iOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVzdWx0cy5pbm5lclRleHQgPSAiUEFTU0VE
IjsKKworICAgIE1hcmt1cC5kdW1wKGRvY3VtZW50LmJvZHkpOworICAgIE1hcmt1cC5ub3RpZnlE
b25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPGRpdiBpZD0ib3V0ZXJTb3VyY2UiPjxwPjxiPmJvbGQ8L2I+PC9wPgorICA8ZGl2IGlkPSJz
b3VyY2UiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CisgIDxwIHN0eWxlPSJjb2xvcjog
Z3JlZW4iPmdyZWVuPC9wPgorPC9kaXY+Cis8ZGl2IGlkPSJkZXN0aW5hdGlvbi1yaWNoLXRleHQi
IGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PC9kaXY+Cis8dGV4dGFyZWEgaWQ9ImRlc3RpbmF0aW9u
LXBsYWluLXRleHQiPjwvdGV4dGFyZWE+Cis8ZGl2IGlkPSJyZXN1bHRzIj5GQUlMRUQ8L2Rpdj4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMDU2MjZmMzg3OTk3OGUyNjc2MTI0NTA5MzViODU4YmNi
ZGFmMjZlLi4xODQ0OWVlMDgwNTAxNzU3OTdjNTY5NGM2NzhiNmJlNjlkMDI3NjJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMTQgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdHJpcCBOVUwgY2hhcmFjdGVyIHdoZW4gY29weWluZyB0ZXh0IG9uIFdpbmRvd3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjM2CisKKyAgICAg
ICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLmh0bWwKKwor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZU5V
TExDaGFyYWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0ZWRUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKTogVXNlIGVkaXRvcigpLT5zZWxlY3RlZFRl
eHQoKSB3aGljaCBtYXRjaGVzIHRoZSBvdGhlciBwbGF0Zm9ybXMuCisKIDIwMTEtMDEtMTMgIERp
bWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNzU3MjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXgg
YTI0ZTdjNjBiNTI1ZTYxNWFhMWVlMTM2M2Y1ODAwMWQ2ZTExMGE0Mi4uZmRhZjAyZDVjOTEyMWEw
MDNlYjQwMTFjMmUzZjIzOWIxMWZkMDNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI3LDYgKzEyNywxMSBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlPiYgbWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCgpCiAgICAgcmV0dXJuIG1hcmtl
clR5cGVzRm9yUmVwbGFjZW1lbnQ7CiB9CiAKK3N0YXRpYyB2b2lkIHJlbW92ZU5VTExDaGFyYWN0
ZXJzKFN0cmluZyYgc3RyKQoreworICAgIHN0ci5yZXBsYWNlKDAsICIiKTsKK30KKwogLy8gV2hl
biBhbiBldmVudCBoYW5kbGVyIGhhcyBtb3ZlZCB0aGUgc2VsZWN0aW9uIG91dHNpZGUgb2YgYSB0
ZXh0IGNvbnRyb2wKIC8vIHdlIHNob3VsZCB1c2UgdGhlIHRhcmdldCBjb250cm9sJ3Mgc2VsZWN0
aW9uIGZvciB0aGlzIGVkaXRpbmcgb3BlcmF0aW9uLgogVmlzaWJsZVNlbGVjdGlvbiBFZGl0b3I6
OnNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqIGV2ZW50KQpAQCAtMzAzMSw3ICszMDM2LDkgQEAg
dm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sIGIKIAogU3RyaW5nIEVkaXRvcjo6c2VsZWN0ZWRUZXh0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gcGxhaW5UZXh0KG1fZnJhbWUtPnNlbGVjdGlvbigpLT50b05v
cm1hbGl6ZWRSYW5nZSgpLmdldCgpKTsKKyAgICBTdHJpbmcgdGV4dCA9IHBsYWluVGV4dChtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSk7CisgICAgcmVtb3Zl
TlVMTENoYXJhY3RlcnModGV4dCk7CisgICAgcmV0dXJuIHRleHQ7CiB9CiAKIEludFJlY3QgRWRp
dG9yOjpmaXJzdFJlY3RGb3JSYW5nZShSYW5nZSogcmFuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGIxZjIzMjdjYWUzMTY1Y2E5
YWYwOTM0YmU2NjBjZTc0MzBkMmNmMTkuLjcxZTQwNDY5ZTI4NmVjN2YzMjk4YjRjNzUxOWRhMGNm
NWRlNzI1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihO
U1Bhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIFJhbmdlKiBzZWxlY3RlZFJhbmdlLAogICAgIGlmIChb
dHlwZXMgY29udGFpbnNPYmplY3Q6TlNTdHJpbmdQYm9hcmRUeXBlXSkgewogICAgICAgICAvLyBN
YXAgJm5ic3A7IHRvIGEgcGxhaW4gb2xkIHNwYWNlIGJlY2F1c2UgdGhpcyBpcyBiZXR0ZXIgZm9y
IHNvdXJjZSBjb2RlLCBvdGhlciBicm93c2VycyBkbyBpdCwKICAgICAgICAgLy8gYW5kIGJlY2F1
c2UgSFRNTCBmb3JjZXMgeW91IHRvIGRvIHRoaXMgYW55IHRpbWUgeW91IHdhbnQgdHdvIHNwYWNl
cyBpbiBhIHJvdy4KLSAgICAgICAgU3RyaW5nIHRleHQgPSBzZWxlY3RlZFJhbmdlLT50ZXh0KCk7
CisgICAgICAgIFN0cmluZyB0ZXh0ID0gZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKTsK
ICAgICAgICAgTlNNdXRhYmxlU3RyaW5nICpzID0gW1tbKE5TU3RyaW5nKil0ZXh0IGNvcHldIGF1
dG9yZWxlYXNlXSBtdXRhYmxlQ29weV07CiAgICAgICAgIAogICAgICAgICBOU1N0cmluZyAqTm9u
QnJlYWtpbmdTcGFjZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczombm9C
cmVha1NwYWNlIGxlbmd0aDoxXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79039</attachid>
            <date>2011-01-14 17:26:06 -0800</date>
            <delta_ts>2011-01-14 18:06:23 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-52236-20110114172605.patch</filename>
            <type>text/plain</type>
            <size>7291</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDI4YzEyYzk5NzhiMmNiNjNhMmUzZjY4YjhhYjFlZDgwZmZiMzg4Li5hMjYyYmFh
YmVhNjllNzdlYmFhMTA5N2E5N2Y2Y2I5NjA2YjkxOGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMTQgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFN0cmlwIE5VTCBjaGFy
YWN0ZXIgd2hlbiBjb3B5aW5nIHRleHQgb24gV2luZG93cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMzYKKworICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVycy5odG1sOiBBZGRlZC4K
KwogMjAxMS0wMS0xMyAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkIGNocm9taXVtIGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFy
YWN0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjQ1MTQ0Yzg5ODFhYWYwMzc5ZjRhNDA5
ZmIyN2E3YTdkMzhkYjIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUw
IEBACitJZiB0aGVyZSBhcmUgTlVMTCBjaGFyYWN0ZXJzIGluIHRleHQgbm9kZXMsIHRoZXkgc2hv
dWxkIG5vdCBiZSBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZC4gIFRoaXMgdGVzdCByZXF1aXJlcyBE
dW1wUmVuZGVyVHJlZS4KK3wgIgorIgorfCA8ZGl2PgorfCAgIGlkPSJvdXRlclNvdXJjZSIKK3wg
ICA8cD4KK3wgICAgIDxiPgorfCAgICAgICAiYm9sZCIKK3wgICAiCisgICIKK3wgICAiCisgICIK
K3wgICA8cD4KK3wgICAgIHN0eWxlPSJjb2xvcjogZ3JlZW4iCit8ICAgICAiZ3JlZW4iCit8ICAg
IgorIgorfCAiCisiCit8IDxkaXY+Cit8ICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgorfCAgIGlk
PSJkZXN0aW5hdGlvbi1yaWNoLXRleHQiCit8ICAgPHA+Cit8ICAgICA8Yj4KK3wgICAgICAgImJv
bGQiCit8ICAgPGRpdj4KK3wgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKK3wgICAgIGlkPSJz
b3VyY2UiCit8ICAgICAiQ29weSBwYXN0ZSBtZSIKK3wgICA8c3Bhbj4KK3wgICAgIGNsYXNzPSJB
cHBsZS1zdHlsZS1zcGFuIgorfCAgICAgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTI4LCAwKTsgIgor
fCAgICAgImdyZWVuIgorfCAgICJDb3B5IHBhc3RlIG1lIgorfCAiCisiCit8IDx0ZXh0YXJlYT4K
K3wgICBpZD0iZGVzdGluYXRpb24tcGxhaW4tdGV4dCIKK3wgICB0aGlzLnZhbHVlPSJDb3B5IHBh
c3RlIG1lYm9sZAorCitDb3B5IHBhc3RlIG1lCitncmVlbiIKK3wgIgorIgorfCA8ZGl2PgorfCAg
IGlkPSJyZXN1bHRzIgorfCAgICJQQVNTRUQiCit8ICIKKworIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFyYWN0ZXJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1udWxsLWNoYXJhY3RlcnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOTJhYjhiNDZjZjEwNTBkMzk4ZmE5OWM1YjkwMzg2NDUxZWNhNThjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktbnVsbC1jaGFy
YWN0ZXJzLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitNYXJrdXAu
ZGVzY3JpcHRpb24oJ0lmIHRoZXJlIGFyZSBOVUxMIGNoYXJhY3RlcnMgaW4gdGV4dCBub2Rlcywg
dGhleSBzaG91bGQgbm90IGJlIGNvcGllZCB0byB0aGUgY2xpcGJvYXJkLiAgVGhpcyB0ZXN0IHJl
cXVpcmVzIER1bXBSZW5kZXJUcmVlLicpOworTWFya3VwLm5vQXV0b0R1bXAoKTsKKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKwor
ICAgIHZhciBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic291cmNlIik7CisgICAg
dmFyIHRleHRXaXRoTnVsbCA9ICJDb3B5XDAgcGFzdGUgbWUiOworICAgIHNvdXJjZS50ZXh0Q29u
dGVudCA9IHRleHRXaXRoTnVsbDsKKyAgICBzZWwuc2V0UG9zaXRpb24oc291cmNlLCAwKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoIkNvcHkiKTsKKworICAgIHZhciBkZXN0aW5hdGlvblJpY2hUZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uLXJpY2gtdGV4dCIpOworICAgIHNlbC5zZXRQb3Np
dGlvbihkZXN0aW5hdGlvblJpY2hUZXh0LCAwKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKKworICAgIHZhciBkZXN0aW5hdGlvblBsYWluVGV4dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZXN0aW5hdGlvbi1wbGFpbi10ZXh0Iik7CisgICAgZGVzdGluYXRpb25QbGFp
blRleHQuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAg
IHZhciByZXN1bHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdHMiKTsKKyAgICB2
YXIgZXhwZWN0ZWRQbGFpblRleHRWYWx1ZSA9ICJDb3B5IHBhc3RlIG1lIjsKKyAgICBpZiAoZXhw
ZWN0ZWRQbGFpblRleHRWYWx1ZSAhPSBkZXN0aW5hdGlvblBsYWluVGV4dC52YWx1ZSkgeworICAg
ICAgICByZXN1bHRzLmlubmVyVGV4dCA9ICJQbGFpbiB0ZXh0IGZpZWxkIGhhcyB0aGUgd3Jvbmcg
dmFsdWUgKGV4cGVjdGVkICIgKworICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRQ
bGFpblRleHRWYWx1ZSkgKyAiIGJ1dCBmb3VuZCAiICsKKyAgICAgICAgICAgIEpTT04uc3RyaW5n
aWZ5KGRlc3RpbmF0aW9uUGxhaW5UZXh0LnZhbHVlKSArICIpLiI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBSdW4gdGhlIHNhbWUgdGVzdCBidXQgaW5jbHVkZSBzb21lIHJpY2hs
eSBmb3JtYXR0ZWQgdGV4dC4KKyAgICB2YXIgb3V0ZXJTb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0ZXJTb3VyY2UiKTsKKyAgICBzZWwuc2V0QmFzZUFuZEV4dGVudChvdXRlclNv
dXJjZSwgMCwgZGVzdGluYXRpb25SaWNoVGV4dCwgMCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkNvcHkiKTsKKworICAgIC8vIFJlbW92ZSB0aGUgc291cmNlIHRleHQgc28gd2UgZG9uJ3Qg
ZW5kIHVwIHdpdGggYSBudWxsIGNoYXJhY3RlciBpbiB0aGUKKyAgICAvLyBleHBlY3RlZCBvdXRw
dXQgZmlsZS4KKyAgICBzb3VyY2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzb3VyY2UpOworCisg
ICAgc2VsLnNldFBvc2l0aW9uKGRlc3RpbmF0aW9uUmljaFRleHQsIDApOworICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgZGVzdGluYXRpb25QbGFpblRleHQuZm9jdXMo
KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBleHBlY3Rl
ZFBsYWluVGV4dFZhbHVlMiA9ICJDb3B5IHBhc3RlIG1lYm9sZFxuXG5Db3B5IHBhc3RlIG1lXG5n
cmVlbiI7CisgICAgaWYgKGV4cGVjdGVkUGxhaW5UZXh0VmFsdWUyICE9IGRlc3RpbmF0aW9uUGxh
aW5UZXh0LnZhbHVlKSB7CisgICAgICAgIHJlc3VsdHMuaW5uZXJUZXh0ID0gIlBsYWluIHRleHQg
ZmllbGQgaGFzIHRoZSB3cm9uZyB2YWx1ZSAoZXhwZWN0ZWQgIiArCisgICAgICAgICAgICBKU09O
LnN0cmluZ2lmeShleHBlY3RlZFBsYWluVGV4dFZhbHVlMikgKyAiIGJ1dCBmb3VuZCAiICsKKyAg
ICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRlc3RpbmF0aW9uUGxhaW5UZXh0LnZhbHVlKSArICIp
LiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZXN1bHRzLmlubmVyVGV4dCA9ICJQ
QVNTRUQiOworCisgICAgTWFya3VwLmR1bXAoZG9jdW1lbnQuYm9keSk7CisgICAgTWFya3VwLm5v
dGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8ZGl2IGlkPSJvdXRlclNvdXJjZSI+PHA+PGI+Ym9sZDwvYj48L3A+CisgIDxkaXYg
aWQ9InNvdXJjZSIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KKyAgPHAgc3R5bGU9ImNv
bG9yOiBncmVlbiI+Z3JlZW48L3A+Cis8L2Rpdj4KKzxkaXYgaWQ9ImRlc3RpbmF0aW9uLXJpY2gt
dGV4dCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KKzx0ZXh0YXJlYSBpZD0iZGVzdGlu
YXRpb24tcGxhaW4tdGV4dCI+PC90ZXh0YXJlYT4KKzxkaXYgaWQ9InJlc3VsdHMiPkZBSUxFRDwv
ZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNTYyNmYzODc5OTc4ZTI2NzYxMjQ1MDkzNWI4
NThiY2JkYWYyNmUuLjFjODU1ZGM5ZDk5MTY0NGNhOWI5N2I5NWEyMDQ1MTVjY2Q5MzhhNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMS0xNCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3Yu
CisKKyAgICAgICAgU3RyaXAgTlVMIGNoYXJhY3RlciB3aGVuIGNvcHlpbmcgdGV4dCBvbiBXaW5k
b3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIz
NgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LW51bGwtY2hhcmFjdGVy
cy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNlbGVjdGVkVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6
IFVzZSBlZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkgd2hpY2ggbWF0Y2hlcyB0aGUgb3RoZXIgcGxh
dGZvcm1zLgorCiAyMDExLTAxLTEzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc1NzI1LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEyNGU3YzYwYjUyNWU2MTVhYTFlZTEzNjNmNTgwMDFk
NmUxMTBhNDIuLjkwMjA2NDFjMWZlNWI0MDQ3MGY5OGMwMTkxYTIyNjc1NzNiZTlkZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTMwMzEsNyArMzAzMSw4IEBAIHZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCBiCiAKIFN0cmluZyBFZGl0b3I6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIHBsYWluVGV4dChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFu
Z2UoKS5nZXQoKSk7CisgICAgLy8gV2UgcmVtb3ZlICdcMCcgY2hhcmFjdGVycyBiZWNhdXNlIHRo
ZXkgYXJlIG5vdCB2aXNpYmx5IHJlbmRlcmVkIHRvIHRoZSB1c2VyLgorICAgIHJldHVybiBwbGFp
blRleHQobV9mcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCkpLnJl
cGxhY2UoMCwgIiIpOwogfQogCiBJbnRSZWN0IEVkaXRvcjo6Zmlyc3RSZWN0Rm9yUmFuZ2UoUmFu
Z2UqIHJhbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQppbmRleCBiMWYyMzI3Y2FlMzE2NWNhOWFmMDkzNGJlNjYwY2U3NDMwZDJjZjE5Li43
MWU0MDQ2OWUyODZlYzdmMzI5OGI0Yzc1MTlkYTBjZjVkZTcyNTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZv
aWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oTlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBS
YW5nZSogc2VsZWN0ZWRSYW5nZSwKICAgICBpZiAoW3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5TU3Ry
aW5nUGJvYXJkVHlwZV0pIHsKICAgICAgICAgLy8gTWFwICZuYnNwOyB0byBhIHBsYWluIG9sZCBz
cGFjZSBiZWNhdXNlIHRoaXMgaXMgYmV0dGVyIGZvciBzb3VyY2UgY29kZSwgb3RoZXIgYnJvd3Nl
cnMgZG8gaXQsCiAgICAgICAgIC8vIGFuZCBiZWNhdXNlIEhUTUwgZm9yY2VzIHlvdSB0byBkbyB0
aGlzIGFueSB0aW1lIHlvdSB3YW50IHR3byBzcGFjZXMgaW4gYSByb3cuCi0gICAgICAgIFN0cmlu
ZyB0ZXh0ID0gc2VsZWN0ZWRSYW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgdGV4dCA9IGZy
YW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7CiAgICAgICAgIE5TTXV0YWJsZVN0cmluZyAq
cyA9IFtbWyhOU1N0cmluZyopdGV4dCBjb3B5XSBhdXRvcmVsZWFzZV0gbXV0YWJsZUNvcHldOwog
ICAgICAgICAKICAgICAgICAgTlNTdHJpbmcgKk5vbkJyZWFraW5nU3BhY2VTdHJpbmcgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6Jm5vQnJlYWtTcGFjZSBsZW5ndGg6MV07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>