<?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>88999</bug_id>
          
          <creation_ts>2012-06-13 07:58:48 -0700</creation_ts>
          <short_desc>After Editor::setComposition is called, input should scroll to the end of the composition.</short_desc>
          <delta_ts>2012-06-26 02:05:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>
          
          <blocked>66687</blocked>
    
    <blocked>89833</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oli Lan">olilan</reporter>
          <assigned_to name="Oli Lan">olilan</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>jonlee</cc>
    
    <cc>peter</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>648013</commentid>
    <comment_count>0</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-06-13 07:58:48 -0700</bug_when>
    <thetext>After Editor::setComposition is called, input should scroll to the end of the composition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648022</commentid>
    <comment_count>1</comment_count>
      <attachid>147317</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-06-13 08:04:40 -0700</bug_when>
    <thetext>Created attachment 147317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648113</commentid>
    <comment_count>2</comment_count>
      <attachid>147317</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-13 09:15:46 -0700</bug_when>
    <thetext>Comment on attachment 147317
Patch

Thanks olilan!  Let&apos;s give rniwa a chance to comment before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648182</commentid>
    <comment_count>3</comment_count>
      <attachid>147317</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-13 10:05:49 -0700</bug_when>
    <thetext>Comment on attachment 147317
Patch

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

I don&apos;t think that this is much of an improvement. The changed part of a composition is not necessarily at the end.

This bug never says what end user scenario it attempts to fix. From what I can reconstruct by looking at the regression test, this already works fine in Safari. so, the right fix would be to find out what&apos;s the difference with your port.

&gt; Source/WebCore/editing/Editor.cpp:2310
&gt; +        revealSelectionAfterEditingOperation(ScrollAlignment::alignToEdgeIfNeeded, true);

Please don&apos;t add new boolean arguments - they make call sites like this nearly unreadable.

Preferred WebKit style is to either add a new function with an appropriate name, or to add a enum with named value for such arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648251</commentid>
    <comment_count>4</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-06-13 10:57:26 -0700</bug_when>
    <thetext>The scenario is that when using a composition-based IME, if the composition being typed is longer than the input field, the field will not scroll to show the end of the composition. So when typing a long word, the user is left looking at just the beginning of the word.

I have been able to reproduce this in Safari, using a very small input field and a composition-based IME such as Cangjie. Once the typed characters become longer than the field, further characters added are not visible.

You&apos;re right that the start of the composition can change also, but as the editing point is effectively at the end of the composition I think it makes sense to reveal that rather than the start or middle. Where setComposition is being called by a composition-based IME during typing (the most common use of the function, I&apos;d have thought), characters will be being added to the end of the composition.

The reason I added the bool parameter is that Editor::revealSelectionAfterEditingOperation just calls FrameSelection::revealSelection, which already has parameters of (const ScrollAlignment&amp; alignment, bool revealExtent). I felt it more consistent to use the same parameters in the Editor function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648272</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-13 11:16:56 -0700</bug_when>
    <thetext>&gt; I have been able to reproduce this in Safari, using a very small input field and a composition-based IME such as Cangjie

I cannot reproduce with Cangjie (and neither Kotoeri Hiragana) on Lion with Safari 5.1.7.

&gt; I felt it more consistent to use the same parameters in the Editor function.

We&apos;re not updating old code in one large swipe, but new code should use new better idioms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648978</commentid>
    <comment_count>6</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-06-14 02:23:16 -0700</bug_when>
    <thetext>I can reproduce this on Safari 5.1.7 on Lion with Cangjie. The input has to be very small though, as Cangjie compositions can be only 5 characters long and the issue only manifests when the composition is longer than the input field.

Using &lt;input size=1&gt; and typing a 5-character Cangjie composition, I find that only the first two characters are visible, and I can&apos;t see the last three characters that I type. Does that repro for you?

Regarding the method signature change, happy to resolve. Instead of changing revealSelectionAfterEditingOperation, could just call FrameSelection::revealSelection directly from setIgnoreCompositionSelectionChange with the required parameters. Alternatively, happy to add a new method revealSelectionExtentAfterEditingOperation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649202</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-14 08:45:12 -0700</bug_when>
    <thetext>That looks like some kind of a bug indeed. The input tries to scroll to end, but doesn&apos;t do that very successfully. If you use a wider input and type some other characters first (so that you start typing near the end), the behavior will be different. Also, this does not happen with Kotoeri.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656185</commentid>
    <comment_count>8</comment_count>
      <attachid>149188</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 01:51:56 -0700</bug_when>
    <thetext>Created attachment 149188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656186</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 01:52:44 -0700</bug_when>
    <thetext>&gt; That looks like some kind of a bug indeed.

Is there anything else that should be improved about the patch (other than the Boolean parameter issue, which I&apos;ve corrected in the updated patch)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656225</commentid>
    <comment_count>10</comment_count>
      <attachid>149188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-24 11:34:15 -0700</bug_when>
    <thetext>Comment on attachment 149188
Patch

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

r=me provided you fix all nits below.

&gt; Source/WebCore/ChangeLog:13
&gt; +        Reviewed by NOBODY (OOPS!).

Nit: This line should appear before the long description but after the bug URL.

&gt; Source/WebCore/editing/Editor.cpp:2304
&gt; -    m_frame-&gt;selection()-&gt;revealSelection(alignment);
&gt; +    m_frame-&gt;selection()-&gt;revealSelection(alignment, revealExtentOption == RevealExtent);

We should also change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption.

&gt; LayoutTests/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

Ditto.

&gt; LayoutTests/fast/forms/input-set-composition-scroll.html:1
&gt; +&lt;p&gt;This tests whether an input field scrolls to the end of the new composition when setComposition is called.&lt;/p&gt;

Nit: No DOCTYPE?

&gt; LayoutTests/fast/forms/input-set-composition-scroll.html:7
&gt; +    document.getElementById(&apos;log&apos;).appendChild(document.createTextNode(s+&quot;\n&quot;));

Nit: Spaces are missing around +.

&gt; LayoutTests/fast/forms/input-set-composition-scroll.html:13
&gt; +var inp = document.getElementById(&apos;inp&apos;);

Nit: Please don&apos;t use abbreviations like inp. Spell out input. You can also use document.querySelector(&apos;input&apos;); here.

&gt; LayoutTests/fast/forms/input-set-composition-scroll.html:17
&gt; +var TOLERANCE = 5;

Nit: I don&apos;t see a point in declaring this magic as a variable here. It would have read much better if it were in the condition itself.

&gt; LayoutTests/fast/forms/input-set-composition-scroll.html:22
&gt; +if (maxScrollLeft - inp.scrollLeft &lt; TOLERANCE) {
&gt; +    log(&quot;SUCCESS: input has scrolled to the end of the composition&quot;);
&gt; +} else {
&gt; +    log(&quot;FAILED: input has not scrolled to the end of the composition. scrollLeft=&quot; + inp.scrollLeft);
&gt; +}

Nit: No curly brackets around single statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656231</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 12:07:47 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 149188 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149188&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:2304
&gt; &gt; -    m_frame-&gt;selection()-&gt;revealSelection(alignment);
&gt; &gt; +    m_frame-&gt;selection()-&gt;revealSelection(alignment, revealExtentOption == RevealExtent);
&gt; 
&gt; We should also change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption.

If you don&apos;t mind, I&apos;d like to do that in a followup patch because it will cause the patch to spider a bit (and modify WebCore.exp.in and friends).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656232</commentid>
    <comment_count>12</comment_count>
      <attachid>149198</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 12:08:19 -0700</bug_when>
    <thetext>Created attachment 149198
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656235</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 12:10:22 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 149188 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149188&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/Editor.cpp:2304
&gt; &gt; &gt; -    m_frame-&gt;selection()-&gt;revealSelection(alignment);
&gt; &gt; &gt; +    m_frame-&gt;selection()-&gt;revealSelection(alignment, revealExtentOption == RevealExtent);
&gt; &gt; 
&gt; &gt; We should also change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption.
&gt; 
&gt; If you don&apos;t mind, I&apos;d like to do that in a followup patch because it will cause the patch to spider a bit (and modify WebCore.exp.in and friends).

The follow up patch will be in Bug 89833.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656239</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-24 12:23:49 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 149188 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149188&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/Editor.cpp:2304
&gt; &gt; &gt; -    m_frame-&gt;selection()-&gt;revealSelection(alignment);
&gt; &gt; &gt; +    m_frame-&gt;selection()-&gt;revealSelection(alignment, revealExtentOption == RevealExtent);
&gt; &gt; 
&gt; &gt; We should also change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption.
&gt; 
&gt; If you don&apos;t mind, I&apos;d like to do that in a followup patch because it will cause the patch to spider a bit (and modify WebCore.exp.in and friends).

Yeah, that&apos;s totally fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656248</commentid>
    <comment_count>15</comment_count>
      <attachid>149198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-24 14:45:02 -0700</bug_when>
    <thetext>Comment on attachment 149198
Patch for landing

Clearing flags on attachment: 149198

Committed r121121: &lt;http://trac.webkit.org/changeset/121121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656249</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-24 14:45:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656727</commentid>
    <comment_count>17</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-06-25 11:10:58 -0700</bug_when>
    <thetext>The test included fails on mac bots. Changelist http://trac.webkit.org/changeset/121171 skips the test, and b89845 tracks the failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657418</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-26 02:05:05 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; That looks like some kind of a bug indeed.
&gt; 
&gt; Is there anything else that should be improved about the patch (other than the Boolean parameter issue, which I&apos;ve corrected in the updated patch)?

Unsure, it doesn&apos;t look like this issue has been fully investigated. Why does this sometimes, but not always? The fix doesn&apos;t reflect any such subtleties.

Sorry for a late response, I&apos;m on vacation now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147317</attachid>
            <date>2012-06-13 08:04:40 -0700</date>
            <delta_ts>2012-06-24 01:51:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88999-20120613160439.patch</filename>
            <type>text/plain</type>
            <size>6159</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBlMjdjOTk3N2VmZWU2
MzliNTUxMjAyMjYxNDRkZTc1NmVhOGNkOC4uYWM1ZmM1MjkyOGVkNGM3MmY5MDg3YjkwNzA1NmYw
YTI2MDRjZWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTEzICBPbGkg
TGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZnRlciBFZGl0b3I6OnNldENv
bXBvc2l0aW9uIGlzIGNhbGxlZCwgaW5wdXQgc2hvdWxkIHNjcm9sbCB0byB0aGUgZW5kIG9mIHRo
ZSBjb21wb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg4OTk5CisKKyAgICAgICAgVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aGVyZSBhZnRlciBh
IGNhbGwgdG8gc2V0Q29tcG9zaXRpb24sIHRoZSBzdGFydCBvZiB0aGUgY29tcG9zaXRpb24gaXMg
cmV2ZWFsZWQKKyAgICAgICAgKHNjcm9sbGVkIHRvKSBpbnN0ZWFkIG9mIHRoZSBlbmQgKHdoZXJl
IHRoZSBjYXJldC9lZGl0aW5nIHBvaW50IHNob3VsZCBiZSkuCisKKyAgICAgICAgVGhlIGNoYW5n
ZSBpcyB0byBhbGxvdyByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24gdG8gdGFr
ZSBhIHJldmVhbEV4dGVudCBwYXJhbWV0ZXIsCisgICAgICAgIGFuZCB0byBwYXNzIHRoYXQgcGFy
YW1ldGVyIGFzIHRydWUgd2hlbiBjYWxsaW5nIGZyb20gc2V0SWdub3JlQ29tcG9zaXRpb25TZWxl
Y3Rpb25DaGFuZ2UsIHdoaWNoIGlzCisgICAgICAgIGNhbGxlZCBhdCB0aGUgZW5kIG9mIHNldENv
bXBvc2l0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNldElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoRWRpdG9yKToKKwogMjAxMi0wNi0xMyAgTGkg
WWluICA8bGkueWluQGludGVsLmNvbT4KIAogICAgICAgICBGaWxlQVBJOiB0eXBlIHNob3VsZCBi
ZSBjb252ZXJ0ZWQgdG8gYmUgbG93ZXIgY2FzZSBpbiBCbG9iIGNvbnN0cnVjdG9yLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGI0NjBlZDE5MmFhMjNhMWY1M2ExMzhkMzU1OWFmODI3
NDY2YzFkMWQuLjlhYmU1M2EzNGZkZjA3YTFjOTI5MjRhNGU1ZTc0MDJhOTAxOTUwODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIyOTIsMTIgKzIyOTIsMTIgQEAgUGFzc1JlZlB0
cjxSYW5nZT4gRWRpdG9yOjpyYW5nZUZvclBvaW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2lu
dCkKICAgICByZXR1cm4gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9kZShzZWxlY3Rpb24udG9Ob3Jt
YWxpemVkUmFuZ2UoKS5nZXQoKSwgbV9kZWxldGVCdXR0b25Db250cm9sbGVyLT5jb250YWluZXJF
bGVtZW50KCkpOwogfQogCi12b2lkIEVkaXRvcjo6cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5n
T3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25tZW50KQordm9pZCBFZGl0b3I6
OnJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihjb25zdCBTY3JvbGxBbGlnbm1l
bnQmIGFsaWdubWVudCwgYm9vbCByZXZlYWxFeHRlbnQpCiB7CiAgICAgaWYgKG1faWdub3JlQ29t
cG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZnJhbWUt
PnNlbGVjdGlvbigpLT5yZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50KTsKKyAgICBtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+cmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgcmV2ZWFsRXh0ZW50KTsKIH0K
IAogdm9pZCBFZGl0b3I6OnNldElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKGJvb2wg
aWdub3JlKQpAQCAtMjMwNyw3ICsyMzA3LDcgQEAgdm9pZCBFZGl0b3I6OnNldElnbm9yZUNvbXBv
c2l0aW9uU2VsZWN0aW9uQ2hhbmdlKGJvb2wgaWdub3JlKQogCiAgICAgbV9pZ25vcmVDb21wb3Np
dGlvblNlbGVjdGlvbkNoYW5nZSA9IGlnbm9yZTsKICAgICBpZiAoIWlnbm9yZSkKLSAgICAgICAg
cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisgICAgICAgIHJldmVhbFNl
bGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdl
SWZOZWVkZWQsIHRydWUpOwogfQogCiBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OmNvbXBvc2l0
aW9uUmFuZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggZjBlNWMyNGU2NWI5
MWY2MzU3MDFjNTM1OWUwOWRjMWRjN2FiN2VkYy4uODVmOWMxOTYyMDA4ZDk3MmZhZTRiZGVmNjhh
ZDRlMTZhN2YzNGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC00MjEsNyArNDIxLDcg
QEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJhbENsaXBib2Fy
ZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIEZyYW1lKik7CiAgICAgdm9pZCBwYXN0ZUFzUGxhaW5U
ZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCopOwogICAgIHZvaWQgcGFzdGVXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiwgYm9vbCBhbGxvd1BsYWluVGV4dCk7Ci0gICAgdm9pZCByZXZlYWxT
ZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNj
cm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7CisgICAgdm9pZCByZXZlYWxTZWxl
Y3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9s
bEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgYm9vbCByZXZlYWxFeHRlbnQgPSBmYWxz
ZSk7CiAgICAgdm9pZCBtYXJrTWlzc3BlbGxpbmdzT3JCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mLCBib29sIGNoZWNrU3BlbGxpbmcsIFJlZlB0cjxSYW5nZT4mIGZpcnN0TWlzc3Bl
bGxpbmdSYW5nZSk7CiAgICAgVGV4dENoZWNraW5nVHlwZU1hc2sgcmVzb2x2ZVRleHRDaGVja2lu
Z1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVNYXNrKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDljM2Y2MDYzODQ3YTlk
Y2U0MWNjMTBiOWY1ZDBiOTExNDdkZmI5ZTIuLmM5ZjhiZjZhZjQ3MTM3YTQ0ZWM0ZWJhNGNkYzdk
ZTBmZWQwNGFiZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNi0xMyAgT2xpIExhbiAg
PG9saWxhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWZ0ZXIgRWRpdG9yOjpzZXRDb21wb3Np
dGlvbiBpcyBjYWxsZWQsIGlucHV0IHNob3VsZCBzY3JvbGwgdG8gdGhlIGVuZCBvZiB0aGUgY29t
cG9zaXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODk5OQorCisgICAgICAgIFRoaXMgdGVzdHMgdGhhdCBhZnRlciBzZXRDb21wb3NpdGlvbiBp
cyBjYWxsZWQsIHRoZSBpbnB1dCBzY3JvbGxzIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9u
CisgICAgICAgIChpLmUuIHRoYXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uL2NvbXBvc2l0aW9u
IGlzIHJldmVhbGVkKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9u
LXNjcm9sbC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xMyAgUWkgWmhhbmcgIDxxaS4yLnpoYW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEFkZCBjb25maWd1cmUgdGVzdCBmb3IgemxpYiBh
bmQgc2V0IFdURl9VU0VfWkxJQiBpZiBmb3VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjM5MDJjY2FkMWE2ZjJmNDBhMWY0Mzk2MzI3MGRkMzE5ZDc4NzljZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBv
c2l0aW9uLXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdo
ZXRoZXIgYW4gaW5wdXQgZmllbGQgc2Nyb2xscyB0byB0aGUgZW5kIG9mIHRoZSBuZXcgY29tcG9z
aXRpb24gd2hlbiBzZXRDb21wb3NpdGlvbiBpcyBjYWxsZWQuCisKKworU1VDQ0VTUzogaW5wdXQg
aGFzIHNjcm9sbGVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjUyZjdhODk5MzEzNGFmMmZlYmNkMWQxYTJiYWE3NTI0NmQ1MGRiMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBv
c2l0aW9uLXNjcm9sbC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxwPlRoaXMgdGVzdHMgd2hldGhl
ciBhbiBpbnB1dCBmaWVsZCBzY3JvbGxzIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBjb21wb3NpdGlv
biB3aGVuIHNldENvbXBvc2l0aW9uIGlzIGNhbGxlZC48L3A+Cis8aW5wdXQgaWQ9ImlucCIgc2l6
ZT0iMTAiLz4KKzxwcmUgaWQ9ImxvZyI+Cis8L3ByZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2co
cykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShzKyJcbiIpKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCit2YXIgaW5wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucCcpOworaW5wLmZvY3Vz
KCk7Cit0ZXh0SW5wdXRDb250cm9sbGVyLnNldENvbXBvc2l0aW9uKCdsb25nc2luZ2xld29yZHN0
cmluZ2NvbXBvc2l0aW9uJyk7Cit2YXIgbWF4U2Nyb2xsTGVmdCA9IGlucC5zY3JvbGxXaWR0aCAt
IGlucC5jbGllbnRXaWR0aDsKK3ZhciBUT0xFUkFOQ0UgPSA1OworaWYgKG1heFNjcm9sbExlZnQg
LSBpbnAuc2Nyb2xsTGVmdCA8IFRPTEVSQU5DRSkgeworICAgIGxvZygiU1VDQ0VTUzogaW5wdXQg
aGFzIHNjcm9sbGVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uIik7Cit9IGVsc2Ugewor
ICAgIGxvZygiRkFJTEVEOiBpbnB1dCBoYXMgbm90IHNjcm9sbGVkIHRvIHRoZSBlbmQgb2YgdGhl
IGNvbXBvc2l0aW9uLiBzY3JvbGxMZWZ0PSIgKyBpbnAuc2Nyb2xsTGVmdCk7Cit9Cis8L3Njcmlw
dD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149188</attachid>
            <date>2012-06-24 01:51:56 -0700</date>
            <delta_ts>2012-06-24 12:08:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88999-20120624015156.patch</filename>
            <type>text/plain</type>
            <size>6317</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQwZWZlMGYzMmVjNTEz
YWE1NTljM2M0ZjkxMDMyZGVhOTQ5NDMwNy4uN2U4ZWYyZmRkN2Q4ZjhiYTFiMmM2ZjE2NTU3Mjkw
ZGJmYjlhMDZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTI0ICBPbGkg
TGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZnRlciBFZGl0b3I6OnNldENv
bXBvc2l0aW9uIGlzIGNhbGxlZCwgaW5wdXQgc2hvdWxkIHNjcm9sbCB0byB0aGUgZW5kIG9mIHRo
ZSBjb21wb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg4OTk5CisKKyAgICAgICAgVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aGVyZSBhZnRlciBh
IGNhbGwgdG8gc2V0Q29tcG9zaXRpb24sIHRoZSBzdGFydCBvZiB0aGUgY29tcG9zaXRpb24gaXMg
cmV2ZWFsZWQKKyAgICAgICAgKHNjcm9sbGVkIHRvKSBpbnN0ZWFkIG9mIHRoZSBlbmQgKHdoZXJl
IHRoZSBjYXJldC9lZGl0aW5nIHBvaW50IHNob3VsZCBiZSkuCisKKyAgICAgICAgVGhlIGNoYW5n
ZSBpcyB0byBhbGxvdyByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24gdG8gdGFr
ZSBhIHJldmVhbEV4dGVudCBwYXJhbWV0ZXIsCisgICAgICAgIGFuZCB0byBwYXNzIHRoYXQgcGFy
YW1ldGVyIGFzIHRydWUgd2hlbiBjYWxsaW5nIGZyb20gc2V0SWdub3JlQ29tcG9zaXRpb25TZWxl
Y3Rpb25DaGFuZ2UsIHdoaWNoIGlzCisgICAgICAgIGNhbGxlZCBhdCB0aGUgZW5kIG9mIHNldENv
bXBvc2l0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNldElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoRWRpdG9yKToKKwogMjAxMi0wNi0yNCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzcGVlZCB1cCBUaW1lbGluZSBhbmQgRWxlbWVudHMgcGFuZWwgcmVuZGVyaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYjhhYTU3MmIzODdmN2U5MzljM2MzOTY0ZjUyNzFj
ZmIyYzRiZGM5Ny4uYjkyYzc1NDMzNWYwYWI0NzcwNGFiODc5YTg3Njk0YWMxYzI0ZTgyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjI5NiwxMiArMjI5NiwxMiBAQCBQYXNzUmVm
UHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdlRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1Bv
aW50KQogICAgIHJldHVybiBhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKHNlbGVjdGlvbi50b05v
cm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBtX2RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXItPmNvbnRhaW5l
ckVsZW1lbnQoKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRp
bmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnbm1lbnQpCit2b2lkIEVkaXRv
cjo6cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdu
bWVudCYgYWxpZ25tZW50LCBSZXZlYWxFeHRlbnRPcHRpb24gcmV2ZWFsRXh0ZW50T3B0aW9uKQog
ewogICAgIGlmIChtX2lnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+cmV2ZWFsU2VsZWN0aW9uKGFsaWdu
bWVudCk7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnJldmVhbFNlbGVjdGlvbihhbGlnbm1l
bnQsIHJldmVhbEV4dGVudE9wdGlvbiA9PSBSZXZlYWxFeHRlbnQpOwogfQogCiB2b2lkIEVkaXRv
cjo6c2V0SWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UoYm9vbCBpZ25vcmUpCkBAIC0y
MzExLDcgKzIzMTEsNyBAQCB2b2lkIEVkaXRvcjo6c2V0SWdub3JlQ29tcG9zaXRpb25TZWxlY3Rp
b25DaGFuZ2UoYm9vbCBpZ25vcmUpCiAKICAgICBtX2lnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9u
Q2hhbmdlID0gaWdub3JlOwogICAgIGlmICghaWdub3JlKQotICAgICAgICByZXZlYWxTZWxlY3Rp
b25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsKKyAgICAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJF
ZGl0aW5nT3BlcmF0aW9uKFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgUmV2
ZWFsRXh0ZW50KTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpjb21wb3NpdGlvblJh
bmdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDJjM2YwNGZjODExMmEwOWI2
ZDYzNzU2M2FhYTc1OWVmNTliMzFjYTAuLjg3MDNkMmUzZGZhZTQyOTdmODcxZWRjZmIyZGM1Y2Jh
MzAxZTQyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDIyLDcgKzQyMiwxMyBAQCBw
cml2YXRlOgogICAgIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBuZXdHZW5lcmFsQ2xpcGJvYXJkKENs
aXBib2FyZEFjY2Vzc1BvbGljeSwgRnJhbWUqKTsKICAgICB2b2lkIHBhc3RlQXNQbGFpblRleHRX
aXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKik7CiAgICAgdm9pZCBwYXN0ZVdpdGhQYXN0ZWJvYXJk
KFBhc3RlYm9hcmQqLCBib29sIGFsbG93UGxhaW5UZXh0KTsKLSAgICB2b2lkIHJldmVhbFNlbGVj
dGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihjb25zdCBTY3JvbGxBbGlnbm1lbnQmID0gU2Nyb2xs
QWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkKTsKKworICAgIGVudW0gUmV2ZWFsRXh0ZW50
T3B0aW9uIHsKKyAgICAgICAgUmV2ZWFsRXh0ZW50LAorICAgICAgICBEb05vdFJldmVhbEV4dGVu
dAorICAgIH07CisKKyAgICB2b2lkIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlv
bihjb25zdCBTY3JvbGxBbGlnbm1lbnQmID0gU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklm
TmVlZGVkLCBSZXZlYWxFeHRlbnRPcHRpb24gPSBEb05vdFJldmVhbEV4dGVudCk7CiAgICAgdm9p
ZCBtYXJrTWlzc3BlbGxpbmdzT3JCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBi
b29sIGNoZWNrU3BlbGxpbmcsIFJlZlB0cjxSYW5nZT4mIGZpcnN0TWlzc3BlbGxpbmdSYW5nZSk7
CiAgICAgVGV4dENoZWNraW5nVHlwZU1hc2sgcmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRl
eHRDaGVja2luZ1R5cGVNYXNrKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4OTM1OTQ3ZjY1ZTExMDFlNTBiYzM2Njlh
MmUwNDE3ODJjYmFhMmMuLjc0Mzc1OWJhMzJlZDdlNTAxMjllYzkzNmE0YzdhMDZjNWFhOWUwY2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNi0yNCAgT2xpIExhbiAgPG9saWxhbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQWZ0ZXIgRWRpdG9yOjpzZXRDb21wb3NpdGlvbiBpcyBjYWxs
ZWQsIGlucHV0IHNob3VsZCBzY3JvbGwgdG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk5OQorCisg
ICAgICAgIFRoaXMgdGVzdHMgdGhhdCBhZnRlciBzZXRDb21wb3NpdGlvbiBpcyBjYWxsZWQsIHRo
ZSBpbnB1dCBzY3JvbGxzIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uCisgICAgICAgIChp
LmUuIHRoYXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uL2NvbXBvc2l0aW9uIGlzIHJldmVhbGVk
KS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC5odG1s
OiBBZGRlZC4KKwogMjAxMi0wNi0yMyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZywgc2tpcCB0aGUgYXV0by1o
eXBoZW5hdGlvbiB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXNldC1jb21wb3NpdGlvbi1zY3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMzkwMmNjYWQxYTZmMmY0MGExZjQzOTYzMjcwZGQzMTlkNzg3OWNkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdHMgd2hldGhlciBhbiBpbnB1
dCBmaWVsZCBzY3JvbGxzIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBjb21wb3NpdGlvbiB3aGVuIHNl
dENvbXBvc2l0aW9uIGlzIGNhbGxlZC4KKworCitTVUNDRVNTOiBpbnB1dCBoYXMgc2Nyb2xsZWQg
dG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXNldC1jb21wb3NpdGlvbi1zY3JvbGwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNTJmN2E4OTkzMTM0YWYyZmViY2QxZDFhMmJhYTc1MjQ2ZDUwZGIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xs
Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHA+VGhpcyB0ZXN0cyB3aGV0aGVyIGFuIGlucHV0IGZp
ZWxkIHNjcm9sbHMgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGNvbXBvc2l0aW9uIHdoZW4gc2V0Q29t
cG9zaXRpb24gaXMgY2FsbGVkLjwvcD4KKzxpbnB1dCBpZD0iaW5wIiBzaXplPSIxMCIvPgorPHBy
ZSBpZD0ibG9nIj4KKzwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhzKSB7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHMrIlxuIikpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBpbnAg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wJyk7CitpbnAuZm9jdXMoKTsKK3RleHRJbnB1
dENvbnRyb2xsZXIuc2V0Q29tcG9zaXRpb24oJ2xvbmdzaW5nbGV3b3Jkc3RyaW5nY29tcG9zaXRp
b24nKTsKK3ZhciBtYXhTY3JvbGxMZWZ0ID0gaW5wLnNjcm9sbFdpZHRoIC0gaW5wLmNsaWVudFdp
ZHRoOwordmFyIFRPTEVSQU5DRSA9IDU7CitpZiAobWF4U2Nyb2xsTGVmdCAtIGlucC5zY3JvbGxM
ZWZ0IDwgVE9MRVJBTkNFKSB7CisgICAgbG9nKCJTVUNDRVNTOiBpbnB1dCBoYXMgc2Nyb2xsZWQg
dG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24iKTsKK30gZWxzZSB7CisgICAgbG9nKCJGQUlM
RUQ6IGlucHV0IGhhcyBub3Qgc2Nyb2xsZWQgdG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24u
IHNjcm9sbExlZnQ9IiArIGlucC5zY3JvbGxMZWZ0KTsKK30KKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149198</attachid>
            <date>2012-06-24 12:08:19 -0700</date>
            <delta_ts>2012-06-24 14:45:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88999-20120624120820.patch</filename>
            <type>text/plain</type>
            <size>6310</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBkOWY2MTMwM2VjNTg4
Y2FmNTcyZDU2MThiMTI1MWFkNjhkNDFmNC4uYTdiNDMzZDhlODIzMmM4ZmYzZTVjMGVjMTkxOGQy
NzNjODRmZjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTI0ICBPbGkg
TGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZnRlciBFZGl0b3I6OnNldENv
bXBvc2l0aW9uIGlzIGNhbGxlZCwgaW5wdXQgc2hvdWxkIHNjcm9sbCB0byB0aGUgZW5kIG9mIHRo
ZSBjb21wb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg4OTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAg
ICAgIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgYWZ0ZXIgYSBjYWxsIHRvIHNldENvbXBvc2l0
aW9uLCB0aGUgc3RhcnQgb2YgdGhlIGNvbXBvc2l0aW9uIGlzIHJldmVhbGVkCisgICAgICAgIChz
Y3JvbGxlZCB0bykgaW5zdGVhZCBvZiB0aGUgZW5kICh3aGVyZSB0aGUgY2FyZXQvZWRpdGluZyBw
b2ludCBzaG91bGQgYmUpLgorCisgICAgICAgIFRoZSBjaGFuZ2UgaXMgdG8gYWxsb3cgcmV2ZWFs
U2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uIHRvIHRha2UgYSByZXZlYWxFeHRlbnQgcGFy
YW1ldGVyLAorICAgICAgICBhbmQgdG8gcGFzcyB0aGF0IHBhcmFtZXRlciBhcyB0cnVlIHdoZW4g
Y2FsbGluZyBmcm9tIHNldElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlLCB3aGljaCBp
cworICAgICAgICBjYWxsZWQgYXQgdGhlIGVuZCBvZiBzZXRDb21wb3NpdGlvbi4KKworICAgICAg
ICBUZXN0OiBmYXN0L2Zvcm1zL2lucHV0LXNldC1jb21wb3NpdGlvbi1zY3JvbGwuaHRtbAorCisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpy
ZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpzZXRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKEVkaXRvcik6CisKIDIwMTItMDYtMjQgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
aW1wbGlmeSBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCB0byB1c2UgSURCIG1ldGFkYXRhIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGI4YWE1NzJiMzg3ZjdlOTM5YzNjMzk2NGY1
MjcxY2ZiMmM0YmRjOTcuLmI5MmM3NTQzMzVmMGFiNDc3MDRhYjg3OWE4NzY5NGFjMWMyNGU4Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIyOTYsMTIgKzIyOTYsMTIgQEAgUGFz
c1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpyYW5nZUZvclBvaW50KGNvbnN0IEludFBvaW50JiB3aW5k
b3dQb2ludCkKICAgICByZXR1cm4gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9kZShzZWxlY3Rpb24u
dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgbV9kZWxldGVCdXR0b25Db250cm9sbGVyLT5jb250
YWluZXJFbGVtZW50KCkpOwogfQogCi12b2lkIEVkaXRvcjo6cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJF
ZGl0aW5nT3BlcmF0aW9uKGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25tZW50KQordm9pZCBF
ZGl0b3I6OnJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihjb25zdCBTY3JvbGxB
bGlnbm1lbnQmIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9uIHJldmVhbEV4dGVudE9wdGlv
bikKIHsKICAgICBpZiAobV9pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnJldmVhbFNlbGVjdGlvbihh
bGlnbm1lbnQpOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yZXZlYWxTZWxlY3Rpb24oYWxp
Z25tZW50LCByZXZlYWxFeHRlbnRPcHRpb24gPT0gUmV2ZWFsRXh0ZW50KTsKIH0KIAogdm9pZCBF
ZGl0b3I6OnNldElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKGJvb2wgaWdub3JlKQpA
QCAtMjMxMSw3ICsyMzExLDcgQEAgdm9pZCBFZGl0b3I6OnNldElnbm9yZUNvbXBvc2l0aW9uU2Vs
ZWN0aW9uQ2hhbmdlKGJvb2wgaWdub3JlKQogCiAgICAgbV9pZ25vcmVDb21wb3NpdGlvblNlbGVj
dGlvbkNoYW5nZSA9IGlnbm9yZTsKICAgICBpZiAoIWlnbm9yZSkKLSAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisgICAgICAgIHJldmVhbFNlbGVjdGlvbkFm
dGVyRWRpdGluZ09wZXJhdGlvbihTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQs
IFJldmVhbEV4dGVudCk7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6Y29tcG9zaXRp
b25SYW5nZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAyYzNmMDRmYzgxMTJh
MDliNmQ2Mzc1NjNhYWE3NTllZjU5YjMxY2EwLi44NzAzZDJlM2RmYWU0Mjk3Zjg3MWVkY2ZiMmRj
NWNiYTMwMWU0MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQyMiw3ICs0MjIsMTMg
QEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJhbENsaXBib2Fy
ZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIEZyYW1lKik7CiAgICAgdm9pZCBwYXN0ZUFzUGxhaW5U
ZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCopOwogICAgIHZvaWQgcGFzdGVXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiwgYm9vbCBhbGxvd1BsYWluVGV4dCk7Ci0gICAgdm9pZCByZXZlYWxT
ZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNj
cm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7CisKKyAgICBlbnVtIFJldmVhbEV4
dGVudE9wdGlvbiB7CisgICAgICAgIFJldmVhbEV4dGVudCwKKyAgICAgICAgRG9Ob3RSZXZlYWxF
eHRlbnQKKyAgICB9OworCisgICAgdm9pZCByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVy
YXRpb24oY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZlYWxFeHRlbnQpOwogICAg
IHZvaWQgbWFya01pc3NwZWxsaW5nc09yQmFkR3JhbW1hcihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgYm9vbCBjaGVja1NwZWxsaW5nLCBSZWZQdHI8UmFuZ2U+JiBmaXJzdE1pc3NwZWxsaW5nUmFu
Z2UpOwogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFz
ayhUZXh0Q2hlY2tpbmdUeXBlTWFzayk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZjRhOTIzMTg1ZmNkODY2MjM1Yzlm
N2JlNTdhYzMwZjliZjQyMTE3Li5lYmViMjczMDUyNGQxMjVmYjQ5OTgwYzExMDk4NTFmNjFmMjhl
YmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDYtMjQgIE9saSBMYW4gIDxvbGlsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEFmdGVyIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24gaXMg
Y2FsbGVkLCBpbnB1dCBzaG91bGQgc2Nyb2xsIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5OTkK
KworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVGhpcyB0ZXN0
cyB0aGF0IGFmdGVyIHNldENvbXBvc2l0aW9uIGlzIGNhbGxlZCwgdGhlIGlucHV0IHNjcm9sbHMg
dG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24KKyAgICAgICAgKGkuZS4gdGhhdCB0aGUgZW5k
IG9mIHRoZSBzZWxlY3Rpb24vY29tcG9zaXRpb24gaXMgcmV2ZWFsZWQpLgorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA2LTI0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gU2tpcCBmYXN0L3RleHQvaHlwaGVuLW1p
bi1wcmVmZXJyZWQtd2lkdGguaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjM5MDJjY2FkMWE2ZjJmNDBhMWY0Mzk2MzI3MGRkMzE5ZDc4NzljZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9u
LXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdoZXRoZXIg
YW4gaW5wdXQgZmllbGQgc2Nyb2xscyB0byB0aGUgZW5kIG9mIHRoZSBuZXcgY29tcG9zaXRpb24g
d2hlbiBzZXRDb21wb3NpdGlvbiBpcyBjYWxsZWQuCisKKworU1VDQ0VTUzogaW5wdXQgaGFzIHNj
cm9sbGVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNjcm9sbC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTZhNjBiOWNiMTk5ZTg0NzAwYmE3YmZhYWIxYzY1ODA4NWRjNDVkOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9u
LXNjcm9sbC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHA+VGhpcyB0
ZXN0cyB3aGV0aGVyIGFuIGlucHV0IGZpZWxkIHNjcm9sbHMgdG8gdGhlIGVuZCBvZiB0aGUgbmV3
IGNvbXBvc2l0aW9uIHdoZW4gc2V0Q29tcG9zaXRpb24gaXMgY2FsbGVkLjwvcD4KKzxpbnB1dCBz
aXplPSIxMCIvPgorPHByZSBpZD0ibG9nIj4KKzwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxv
ZyhzKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHMgKyAiXG4iKSk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKK2lu
cHV0LmZvY3VzKCk7Cit0ZXh0SW5wdXRDb250cm9sbGVyLnNldENvbXBvc2l0aW9uKCdsb25nc2lu
Z2xld29yZHN0cmluZ2NvbXBvc2l0aW9uJyk7Cit2YXIgbWF4U2Nyb2xsTGVmdCA9IGlucHV0LnNj
cm9sbFdpZHRoIC0gaW5wdXQuY2xpZW50V2lkdGg7CitpZiAobWF4U2Nyb2xsTGVmdCAtIGlucHV0
LnNjcm9sbExlZnQgPCA1KQorICAgIGxvZygiU1VDQ0VTUzogaW5wdXQgaGFzIHNjcm9sbGVkIHRv
IHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0aW9uIik7CitlbHNlCisgICAgbG9nKCJGQUlMRUQ6IGlu
cHV0IGhhcyBub3Qgc2Nyb2xsZWQgdG8gdGhlIGVuZCBvZiB0aGUgY29tcG9zaXRpb24uIHNjcm9s
bExlZnQ9IiArIGlucHV0LnNjcm9sbExlZnQpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>