<?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>50564</bug_id>
          
          <creation_ts>2010-12-06 05:48:48 -0800</creation_ts>
          <short_desc>End/Home keys do not work in a contentEditable element</short_desc>
          <delta_ts>2011-04-22 16:18:38 -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>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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>55565</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>kalman</cc>
    
    <cc>leviw</cc>
    
    <cc>leviw</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>317575</commentid>
    <comment_count>0</comment_count>
      <attachid>75683</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-12-06 05:48:48 -0800</bug_when>
    <thetext>Created attachment 75683
Reduced test case

Open the attached test case, click inside the editable field (TTTeeesssttt) for the text cursor to appear, and hit &quot;End&quot;. The cursor will NOT move towards the end of the element text. Ctrl-End works for me. &quot;Home&quot; works fine for bringing the cursor to the beginning of the line.

It seems there are some problems with the target range calculation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319431</commentid>
    <comment_count>1</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-12-09 06:18:58 -0800</bug_when>
    <thetext>This bug manifests itself when editing CSS properties in Web Inspector with the bug 50565 patch applied (to be landed shortly), so it would be nice to have no UX issues there...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341482</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-01-28 09:16:19 -0800</bug_when>
    <thetext>If the &quot;Value&quot; SPAN (from the test case) is given the &quot;editing&quot; class, neither &quot;Home&quot;, nor &quot;End&quot; work inside the &quot;Value&quot; text. Ctrl+Home and Ctrl+End work as expected.

This dramatically breaks the Web Inspector CSS editing experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358664</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-02-27 03:21:20 -0800</bug_when>
    <thetext>Downstream Chromium issue: http://code.google.com/p/chromium/issues/detail?id=74304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361574</commentid>
    <comment_count>4</comment_count>
      <attachid>84553</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-03-03 06:38:08 -0800</bug_when>
    <thetext>Created attachment 84553
[HTML] A more specific reduced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390337</commentid>
    <comment_count>5</comment_count>
      <attachid>90601</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 14:27:12 -0700</bug_when>
    <thetext>Created attachment 90601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390343</commentid>
    <comment_count>6</comment_count>
      <attachid>90601</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-21 14:35:04 -0700</bug_when>
    <thetext>Comment on attachment 90601
Patch

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

&gt; Source/WebCore/editing/visible_units.cpp:1160
&gt; +        if (editableRoot &amp;&amp; visPos.deepEquivalent().containerNode() != editableRoot &amp;&amp; !visPos.deepEquivalent().containerNode()-&gt;isDescendantOf(editableRoot))

You can do: editableRoot  &amp;&amp; !editableRoot-&gt;contains(visPos.deepEquivalent().containerNode()).

But shouldn&apos;t we do this inside honorEditableBoundaryAtOrBefore/honorEditableBoundaryAtOrAfter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390349</commentid>
    <comment_count>7</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 14:42:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; But shouldn&apos;t we do this inside honorEditableBoundaryAtOrBefore/honorEditableBoundaryAtOrAfter?

honorEditableBoundary___ is used in various places throughout the code and the contract now is that it&apos;ll return an empty VisiblePosition if the position it&apos;s supposed to change to honor the boundary isn&apos;t actually inside the highest root: &quot;Return empty position if pos is not somewhere inside the editable region containing this position&quot;

Changing this breaks other call sites. The other option is to add a paramater to those functions to support this different expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390350</commentid>
    <comment_count>8</comment_count>
      <attachid>90601</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-21 14:43:18 -0700</bug_when>
    <thetext>Comment on attachment 90601
Patch

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

&gt; LayoutTests/editing/selection/modify-by-lineboundary-in-inline-editable-contexts.html:14
&gt; +&lt;/html&gt;

In general, I like to see tests, specially for editing, that can be run manually, with instructions on how to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390353</commentid>
    <comment_count>9</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-21 14:45:41 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; But shouldn&apos;t we do this inside honorEditableBoundaryAtOrBefore/honorEditableBoundaryAtOrAfter?
&gt; 
&gt; honorEditableBoundary___ is used in various places throughout the code and the contract now is that it&apos;ll return an empty VisiblePosition if the position it&apos;s supposed to change to honor the boundary isn&apos;t actually inside the highest root: &quot;Return empty position if pos is not somewhere inside the editable region containing this position&quot;
&gt; 
&gt; Changing this breaks other call sites. The other option is to add a paramater to those functions to support this different expectation.

I think this makes the code more confusing. I&apos;d rather have it in your initial version, with the use of the contains method the Ryosuke suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390356</commentid>
    <comment_count>10</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 14:46:59 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I think this makes the code more confusing. I&apos;d rather have it in your initial version, with the use of the contains method the Ryosuke suggested.

I agree. I&apos;ll make that change and add more description to the test, as it can, in its current state, be ran manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390379</commentid>
    <comment_count>11</comment_count>
      <attachid>90613</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 15:08:52 -0700</bug_when>
    <thetext>Created attachment 90613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390419</commentid>
    <comment_count>12</comment_count>
      <attachid>90622</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 16:01:28 -0700</bug_when>
    <thetext>Created attachment 90622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390420</commentid>
    <comment_count>13</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 16:02:37 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=90613) [details]
&gt; Patch

Added additional cases for regression testing purposes (thanks Ryosuke).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390446</commentid>
    <comment_count>14</comment_count>
      <attachid>90622</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-21 16:31:11 -0700</bug_when>
    <thetext>Comment on attachment 90622
Patch

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

r- because you probably want to address at least one of the things I listed below

&gt; Source/WebCore/editing/visible_units.cpp:1160
&gt; +        if (editableRoot &amp;&amp; !editableRoot-&gt;contains(visPos.deepEquivalent().containerNode()))

You don&apos;t have to check editableRoot for the second time here.  Can we extract all of this as an inline function (maybe highestEditableRootContains)?

&gt; LayoutTests/editing/selection/modify-by-lineboundary-in-inline-editable-contexts-expected.txt:7
&gt; +PASS Modify moving forward in adjactent, editable spans
&gt; +PASS Modify moving backward in adjactent, editable spans

Typo: adjactent

&gt; LayoutTests/editing/selection/modify-by-lineboundary-in-inline-editable-contexts-expected.txt:14
&gt; +adjacent editablespans
&gt; +This is a non-editable paragraph with an editable span inside it.

It&apos;ll be nice to get rid of these before the test ends.

&gt; LayoutTests/editing/selection/modify-by-lineboundary-in-inline-editable-contexts.html:2
&gt; +&lt;!DOCTYPE html&gt;
&gt; +

Did you use the script to generate this file?  If not, you should.

&gt; LayoutTests/editing/selection/script-tests/modify-by-lineboundary-in-inline-editable-contexts.js:26
&gt; +var name = &quot;adjactent, editable spans&quot;;

Did you mean adjacent?  I would have called them consecutive spans but it&apos;s up to your decision.

&gt; LayoutTests/editing/selection/script-tests/modify-by-lineboundary-in-inline-editable-contexts.js:29
&gt; +var root = document.getElementById(&apos;root1&apos;);
&gt; +testModifyByLine(root, &quot;forward&quot;, 17, name);
&gt; +testModifyByLine(root, &quot;backward&quot;, 0, name);

I would have done:
testModifyByLine(container.firstChild, &quot;forward&quot;, 17, name);
testModifyByLine(container.firstChild, &quot;backward&quot;, 0, name);

&gt; LayoutTests/editing/selection/script-tests/modify-by-lineboundary-in-inline-editable-contexts.js:40
&gt; +
&gt; +    

You can do container.innerHTML = &apos;&apos;; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390475</commentid>
    <comment_count>15</comment_count>
      <attachid>90638</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-21 17:09:19 -0700</bug_when>
    <thetext>Created attachment 90638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390885</commentid>
    <comment_count>16</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-22 10:48:58 -0700</bug_when>
    <thetext>I believe I&apos;ve addressed your concerns. Could I get a review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391011</commentid>
    <comment_count>17</comment_count>
      <attachid>90749</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-22 13:38:28 -0700</bug_when>
    <thetext>Created attachment 90749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391014</commentid>
    <comment_count>18</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-22 13:39:30 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=90749) [details]
&gt; Patch

Ryosuke pointed out it&apos;s important to generate the script tests with the wrapper script to avoid unnecessary conflicts later. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391034</commentid>
    <comment_count>19</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-22 13:58:42 -0700</bug_when>
    <thetext>Thanks for the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391039</commentid>
    <comment_count>20</comment_count>
      <attachid>90749</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-04-22 14:05:19 -0700</bug_when>
    <thetext>Comment on attachment 90749
Patch

Clearing flags on attachment: 90749

Committed r84678: &lt;http://trac.webkit.org/changeset/84678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391205</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 16:18:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84678 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>75683</attachid>
            <date>2010-12-06 05:48:48 -0800</date>
            <delta_ts>2011-03-03 06:38:08 -0800</delta_ts>
            <desc>Reduced test case</desc>
            <filename>editing.html</filename>
            <type>text/html</type>
            <size>610</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT4NCi5lZGl0aW5nIHsNCiAgICAtd2Via2l0LXVzZXItc2Vs
ZWN0OiB0ZXh0Ow0KICAgIC13ZWJraXQtYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAuNSkgM3B4
IDNweCA0cHg7DQogICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYig2NiUsIDY2JSwgNjYlKSAhaW1w
b3J0YW50Ow0KICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICAgIC13ZWJraXQtdXNlci1t
b2RpZnk6IHJlYWQtd3JpdGUtcGxhaW50ZXh0LW9ubHk7DQogICAgdGV4dC1vdmVyZmxvdzogY2xp
cCAhaW1wb3J0YW50Ow0KICAgIHBhZGRpbmctbGVmdDogMnB4Ow0KICAgIG1hcmdpbi1sZWZ0OiAt
MnB4Ow0KICAgIHBhZGRpbmctcmlnaHQ6IDJweDsNCiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7DQog
ICAgbWFyZ2luLWJvdHRvbTogLTFweDsNCiAgICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICAgIG9w
YWNpdHk6IDEuMCAhaW1wb3J0YW50Ow0KfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KPHVs
Pg0KPGxpPjxzcGFuIGNsYXNzPSJlZGl0aW5nIj5UVFRlZWVzc3N0dHQ8L3NwYW4+OjxzcGFuPlZh
bHVlPC9zcGFuPjs8L2xpPg0KPC91bD4NCjwvYm9keT4NCjwvaHRtbA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>84553</attachid>
            <date>2011-03-03 06:38:08 -0800</date>
            <delta_ts>2011-03-03 06:38:08 -0800</delta_ts>
            <desc>[HTML] A more specific reduced test case</desc>
            <filename>editendhome.html</filename>
            <type>text/html</type>
            <size>101</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8Ym9keT4NCmEgPHNwYW4gY29udGVudEVkaXRhYmxlPSJ0cnVlIj5IT01FLUVORC1E
Ty1OT1QtV09SSy1IRVJFPC9zcGFuPiBiDQo8L2JvZHk+DQo8L2h0bWw+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90601</attachid>
            <date>2011-04-21 14:27:12 -0700</date>
            <delta_ts>2011-04-21 15:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50564-20110421142711.patch</filename>
            <type>text/plain</type>
            <size>6617</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250
ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBDaGFuZ2luZyBsb2dpY2FsW1N0YXJ0L0VuZF1P
ZkxpbmUgdG8gcmV0dXJuIGEgdmFsaWQgVmlzaWJsZVBvc2l0aW9uIGZvciBmb3IgZWRpdGFibGUg
Y29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBu
b24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9naWNhbFN0YXJ0T2ZMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRPZkxpbmUp
OgorCiAyMDExLTA0LTIxICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA4MTkxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTUsNyArMTE1NSwx
MSBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0CiAgICAgLy8gVE9E
TzogdGhpcyBpcyB0aGUgY3VycmVudCBiZWhhdmlvciB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZml4
ZWQuCiAgICAgLy8gUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTEwNyBmb3IgZGV0YWlsLgogICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3Mg
PSBsb2dpY2FsU3RhcnRQb3NpdGlvbkZvckxpbmUoYyk7Ci0gICAgCisKKyAgICBpZiAoTm9kZSog
ZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVpdmFsZW50KCkpKSB7
CisgICAgICAgIGlmIChlZGl0YWJsZVJvb3QgJiYgdmlzUG9zLmRlZXBFcXVpdmFsZW50KCkuY29u
dGFpbmVyTm9kZSgpICE9IGVkaXRhYmxlUm9vdCAmJiAhdmlzUG9zLmRlZXBFcXVpdmFsZW50KCku
Y29udGFpbmVyTm9kZSgpLT5pc0Rlc2NlbmRhbnRPZihlZGl0YWJsZVJvb3QpKQorICAgICAgICAg
ICAgcmV0dXJuIGZpcnN0UG9zaXRpb25Jbk5vZGUoZWRpdGFibGVSb290KTsKKyAgICB9CiAgICAg
cmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckJlZm9yZSh2aXNQb3MpOwogfQogCkBA
IC0xMjE0LDcgKzEyMTgsMTEgQEAgVmlzaWJsZVBvc2l0aW9uIGxvZ2ljYWxFbmRPZkxpbmUoY29u
c3QgVgogICAgIC8vIEluIHRoaXMgY2FzZSwgdXNlIHRoZSBwcmV2aW91cyBwb3NpdGlvbiBvZiB0
aGUgY29tcHV0ZWQgbG9naWNhbCBlbmQgcG9zaXRpb24uCiAgICAgaWYgKCFpblNhbWVMb2dpY2Fs
TGluZShjLCB2aXNQb3MpKQogICAgICAgICB2aXNQb3MgPSB2aXNQb3MucHJldmlvdXMoKTsKLSAg
ICAKKworICAgIGlmIChOb2RlKiBlZGl0YWJsZVJvb3QgPSBoaWdoZXN0RWRpdGFibGVSb290KGMu
ZGVlcEVxdWl2YWxlbnQoKSkpIHsKKyAgICAgICAgaWYgKGVkaXRhYmxlUm9vdCAmJiB2aXNQb3Mu
ZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCkgIT0gZWRpdGFibGVSb290ICYmICF2aXNQ
b3MuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCktPmlzRGVzY2VuZGFudE9mKGVkaXRh
YmxlUm9vdCkpCisgICAgICAgICAgICByZXR1cm4gbGFzdFBvc2l0aW9uSW5Ob2RlKGVkaXRhYmxl
Um9vdCk7CisgICAgfQogICAgIHJldHVybiBjLmhvbm9yRWRpdGFibGVCb3VuZGFyeUF0T3JBZnRl
cih2aXNQb3MpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDU0NSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTA0LTIxICBM
ZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmQvSG9tZSBrZXlzIGRvIG5vdCB3b3JrIGlu
IGEgY29udGVudEVkaXRhYmxlIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwNTY0CisKKyAgICAgICAgRml4aW5nIG1vZGlmeWluZyBzZWxl
Y3Rpb24gYnkgbGluZWJvdW5kYXJ5IChob21lL2VuZCkgZm9yIGVkaXRhYmxlIGNvbnRleHRzIHRo
YXQgYXJlCisgICAgICAgIGlubGluZSBhbmQgc2hhcmUgYSBsaW5lIHdpdGggbm9uLWVkaXRhYmxl
IGNvbnRlbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb2RpZnktYnktbGluZWJv
dW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5s
aW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0
YWJsZS1jb250ZXh0cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0TW9kaWZ5QnlMaW5lKToKKwog
MjAxMS0wNC0yMSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
ZXZpZXdlZCByZWJhc2VsaW5lIG9mIHdpbi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgbW9kaWZ5aW5nIHRoZSBzZWxlY3Rpb24gYnkgbGluZSBib3VuZGFyeSBncmFudWxhcml0eSAo
bGlrZSBob21lL2VuZCBkbykgZnVuY3Rpb25zIHByb3Blcmx5IGluIGFuIGlubGluZSBlZGl0YWJs
ZSBjb250ZXh0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgTW9kaWZ5IG1v
dmluZyBmb3J3YXJkCitQQVNTIE1vZGlmeSBtb3ZpbmcgYmFja3dhcmQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyBhIG5vbi1lZGl0YWJs
ZSBwYXJhZ3JhcGggd2l0aCBhbiBlZGl0YWJsZSBzcGFuIGluc2lkZSBpdC4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5l
LWVkaXRhYmxlLWNvbnRleHRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29u
dGV4dHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+IDwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5s
aW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL21vZGlmeS1ieS1s
aW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGlu
ZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGlu
ZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbW9kaWZ5
aW5nIHRoZSBzZWxlY3Rpb24gYnkgbGluZSBib3VuZGFyeSBncmFudWxhcml0eSAobGlrZSBob21l
L2VuZCBkbykgZnVuY3Rpb25zIHByb3Blcmx5IGluIGFuIGlubGluZSBlZGl0YWJsZSBjb250ZXh0
LiIpOworCitmdW5jdGlvbiB0ZXN0TW9kaWZ5QnlMaW5lKGRpcmVjdGlvbiwgZXhwZWN0ZWRPZmZz
ZXQpIHsKKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIHZhciBpbml0
aWFsT2Zmc2V0ID0gMjsKKyAgICBzZWwuc2V0QmFzZUFuZEV4dGVudChyb290LmZpcnN0Q2hpbGQs
IGluaXRpYWxPZmZzZXQsIHJvb3QuZmlyc3RDaGlsZCwgaW5pdGlhbE9mZnNldCk7CisgICAgc2Vs
Lm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgImxpbmVib3VuZGFyeSIpOworICAgIAorICAgIHZh
ciB0ZXN0TmFtZSA9ICJNb2RpZnkgbW92aW5nICIgKyBkaXJlY3Rpb247CisgICAgaWYgKHNlbC5i
YXNlT2Zmc2V0ID09IGV4cGVjdGVkT2Zmc2V0KQorICAgICAgICB0ZXN0UGFzc2VkKHRlc3ROYW1l
KTsKKyAgICBlbHNlIGlmIChzZWwuYmFzZU9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KQorICAgICAg
ICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIiBoYWQgbm8gZWZmZWN0LiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICIgcmVzdWx0ZWQgaW4gYW4gdW5leHBlY3RlZCBv
ZmZzZXQgb2YgIiArIHNlbC5iYXNlT2Zmc2V0KTsKK30KKwordmFyIGNvbnRhaW5lciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLmlubmVySFRNTCA9ICdUaGlzIGlz
IGEgbm9uLWVkaXRhYmxlIHBhcmFncmFwaCB3aXRoIDxzcGFuIGNvbnRlbnRFZGl0YWJsZT0idHJ1
ZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSIgaWQ9InJvb3QiPmFuIGVkaXRh
YmxlIHNwYW48L3NwYW4+IGluc2lkZSBpdC4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChj
b250YWluZXIpOworCit2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290Jyk7
Cit2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykKK3Jvb3Qu
Zm9jdXMoKTsKKwordGVzdE1vZGlmeUJ5TGluZSgiZm9yd2FyZCIsIDE2KTsKK3Rlc3RNb2RpZnlC
eUxpbmUoImJhY2t3YXJkIiwgMCk7CisKKyAgICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90613</attachid>
            <date>2011-04-21 15:08:52 -0700</date>
            <delta_ts>2011-04-21 16:01:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50564-20110421150851.patch</filename>
            <type>text/plain</type>
            <size>6905</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250
ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBDaGFuZ2luZyBsb2dpY2FsW1N0YXJ0L0VuZF1P
ZkxpbmUgdG8gcmV0dXJuIGEgdmFsaWQgVmlzaWJsZVBvc2l0aW9uIGZvciBmb3IgZWRpdGFibGUg
Y29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBu
b24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9naWNhbFN0YXJ0T2ZMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRPZkxpbmUp
OgorCiAyMDExLTA0LTIxICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA4MTkxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTUsNyArMTE1NSwx
MSBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0CiAgICAgLy8gVE9E
TzogdGhpcyBpcyB0aGUgY3VycmVudCBiZWhhdmlvciB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZml4
ZWQuCiAgICAgLy8gUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTEwNyBmb3IgZGV0YWlsLgogICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3Mg
PSBsb2dpY2FsU3RhcnRQb3NpdGlvbkZvckxpbmUoYyk7Ci0gICAgCisKKyAgICBpZiAoTm9kZSog
ZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVpdmFsZW50KCkpKSB7
CisgICAgICAgIGlmIChlZGl0YWJsZVJvb3QgJiYgIWVkaXRhYmxlUm9vdC0+Y29udGFpbnModmlz
UG9zLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpKSkKKyAgICAgICAgICAgIHJldHVy
biBmaXJzdFBvc2l0aW9uSW5Ob2RlKGVkaXRhYmxlUm9vdCk7CisgICAgfQogICAgIHJldHVybiBj
Lmhvbm9yRWRpdGFibGVCb3VuZGFyeUF0T3JCZWZvcmUodmlzUG9zKTsKIH0KIApAQCAtMTIxNCw3
ICsxMjE4LDExIEBAIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZMaW5lKGNvbnN0IFYKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHVzZSB0aGUgcHJldmlvdXMgcG9zaXRpb24gb2YgdGhlIGNvbXB1
dGVkIGxvZ2ljYWwgZW5kIHBvc2l0aW9uLgogICAgIGlmICghaW5TYW1lTG9naWNhbExpbmUoYywg
dmlzUG9zKSkKICAgICAgICAgdmlzUG9zID0gdmlzUG9zLnByZXZpb3VzKCk7Ci0gICAgCisKKyAg
ICBpZiAoTm9kZSogZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVp
dmFsZW50KCkpKSB7CisgICAgICAgIGlmIChlZGl0YWJsZVJvb3QgJiYgIWVkaXRhYmxlUm9vdC0+
Y29udGFpbnModmlzUG9zLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpKSkKKyAgICAg
ICAgICAgIHJldHVybiBsYXN0UG9zaXRpb25Jbk5vZGUoZWRpdGFibGVSb290KTsKKyAgICB9CiAg
ICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckFmdGVyKHZpc1Bvcyk7CiB9CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMjEgIExldmkgV2VpbnRyYXViICA8
bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250ZW50RWRpdGFi
bGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA1NjQKKworICAgICAgICBGaXhpbmcgbW9kaWZ5aW5nIHNlbGVjdGlvbiBieSBsaW5lYm91
bmRhcnkgKGhvbWUvZW5kKSBmb3IgZWRpdGFibGUgY29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAg
aW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBub24tZWRpdGFibGUgY29udGVudC4KKworICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5l
LWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29u
dGV4dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRl
c3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3RNb2RpZnlCeUxpbmUpOgorCiAyMDExLTA0LTIxICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5ldmlld2VkIHJlYmFzZWxp
bmUgb2Ygd2luLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5
LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5l
Ym91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91
bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBtb2RpZnlpbmcgdGhl
IHNlbGVjdGlvbiBieSBsaW5lIGJvdW5kYXJ5IGdyYW51bGFyaXR5IChsaWtlIGhvbWUvZW5kIGRv
KSBmdW5jdGlvbnMgcHJvcGVybHkgaW4gYW4gaW5saW5lIGVkaXRhYmxlIGNvbnRleHQuIFlvdSBj
YW4gcnVuIHRoaXMgdGVzdCBtYW51YWxseSBieSBwbGFjaW5nIHRoZSBjYXJldCBpbiB0aGUgbWlk
ZGxlIG9mIHRoZSBlZGl0YWJsZSBzcGFuIGJlbG93IGFuZCBlbnN1cmluZyBob21lL2VuZCAoY29t
bWFuZCBsZWZ0L3JpZ2h0IG9uIE1hYykgbW92ZXMgdGhlIGNhcmV0IHRvIHRoZSBib3VuZGFyaWVz
IG9mIHRoZSBlZGl0YWJsZSBzcGFuLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BB
U1MgTW9kaWZ5IG1vdmluZyBmb3J3YXJkCitQQVNTIE1vZGlmeSBtb3ZpbmcgYmFja3dhcmQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyBh
IG5vbi1lZGl0YWJsZSBwYXJhZ3JhcGggd2l0aCBhbiBlZGl0YWJsZSBzcGFuIGluc2lkZSBpdC4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRh
cnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUt
ZWRpdGFibGUtY29udGV4dHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNv
bnRleHRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+IDwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91
bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgbW9kaWZ5aW5nIHRoZSBzZWxlY3Rpb24gYnkgbGluZSBib3VuZGFyeSBncmFudWxhcml0
eSAobGlrZSBob21lL2VuZCBkbykgZnVuY3Rpb25zIHByb3Blcmx5IGluIGFuIGlubGluZSBlZGl0
YWJsZSBjb250ZXh0LiAiICsKKyAgICAiWW91IGNhbiBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5IGJ5
IHBsYWNpbmcgdGhlIGNhcmV0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVkaXRhYmxlIHNwYW4gYmVs
b3cgYW5kIGVuc3VyaW5nIGhvbWUvZW5kIChjb21tYW5kIGxlZnQvcmlnaHQgb24gTWFjKSBtb3Zl
cyB0aGUgIiArCisgICAgImNhcmV0IHRvIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBlZGl0YWJsZSBz
cGFuLiIpOworCitmdW5jdGlvbiB0ZXN0TW9kaWZ5QnlMaW5lKGRpcmVjdGlvbiwgZXhwZWN0ZWRP
ZmZzZXQpIHsKKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIHZhciBp
bml0aWFsT2Zmc2V0ID0gMjsKKyAgICBzZWwuc2V0QmFzZUFuZEV4dGVudChyb290LmZpcnN0Q2hp
bGQsIGluaXRpYWxPZmZzZXQsIHJvb3QuZmlyc3RDaGlsZCwgaW5pdGlhbE9mZnNldCk7CisgICAg
c2VsLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgImxpbmVib3VuZGFyeSIpOworICAgIAorICAg
IHZhciB0ZXN0TmFtZSA9ICJNb2RpZnkgbW92aW5nICIgKyBkaXJlY3Rpb247CisgICAgaWYgKHNl
bC5iYXNlT2Zmc2V0ID09IGV4cGVjdGVkT2Zmc2V0KQorICAgICAgICB0ZXN0UGFzc2VkKHRlc3RO
YW1lKTsKKyAgICBlbHNlIGlmIChzZWwuYmFzZU9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KQorICAg
ICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIiBoYWQgbm8gZWZmZWN0LiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICIgcmVzdWx0ZWQgaW4gYW4gdW5leHBlY3Rl
ZCBvZmZzZXQgb2YgIiArIHNlbC5iYXNlT2Zmc2V0KTsKK30KKwordmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLmlubmVySFRNTCA9ICdUaGlz
IGlzIGEgbm9uLWVkaXRhYmxlIHBhcmFncmFwaCB3aXRoIDxzcGFuIGNvbnRlbnRFZGl0YWJsZT0i
dHJ1ZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSIgaWQ9InJvb3QiPmFuIGVk
aXRhYmxlIHNwYW48L3NwYW4+IGluc2lkZSBpdC4nOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChjb250YWluZXIpOworCit2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290
Jyk7Cit2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykKK3Jv
b3QuZm9jdXMoKTsKKwordGVzdE1vZGlmeUJ5TGluZSgiZm9yd2FyZCIsIDE2KTsKK3Rlc3RNb2Rp
ZnlCeUxpbmUoImJhY2t3YXJkIiwgMCk7CisKKyAgICAKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90622</attachid>
            <date>2011-04-21 16:01:28 -0700</date>
            <delta_ts>2011-04-21 17:09:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50564-20110421160126.patch</filename>
            <type>text/plain</type>
            <size>7665</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250
ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBDaGFuZ2luZyBsb2dpY2FsW1N0YXJ0L0VuZF1P
ZkxpbmUgdG8gcmV0dXJuIGEgdmFsaWQgVmlzaWJsZVBvc2l0aW9uIGZvciBmb3IgZWRpdGFibGUg
Y29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBu
b24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9naWNhbFN0YXJ0T2ZMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRPZkxpbmUp
OgorCiAyMDExLTA0LTIxICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA4MTkxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTUsNyArMTE1NSwx
MSBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0CiAgICAgLy8gVE9E
TzogdGhpcyBpcyB0aGUgY3VycmVudCBiZWhhdmlvciB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZml4
ZWQuCiAgICAgLy8gUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTEwNyBmb3IgZGV0YWlsLgogICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3Mg
PSBsb2dpY2FsU3RhcnRQb3NpdGlvbkZvckxpbmUoYyk7Ci0gICAgCisKKyAgICBpZiAoTm9kZSog
ZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVpdmFsZW50KCkpKSB7
CisgICAgICAgIGlmIChlZGl0YWJsZVJvb3QgJiYgIWVkaXRhYmxlUm9vdC0+Y29udGFpbnModmlz
UG9zLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpKSkKKyAgICAgICAgICAgIHJldHVy
biBmaXJzdFBvc2l0aW9uSW5Ob2RlKGVkaXRhYmxlUm9vdCk7CisgICAgfQogICAgIHJldHVybiBj
Lmhvbm9yRWRpdGFibGVCb3VuZGFyeUF0T3JCZWZvcmUodmlzUG9zKTsKIH0KIApAQCAtMTIxNCw3
ICsxMjE4LDExIEBAIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZMaW5lKGNvbnN0IFYKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHVzZSB0aGUgcHJldmlvdXMgcG9zaXRpb24gb2YgdGhlIGNvbXB1
dGVkIGxvZ2ljYWwgZW5kIHBvc2l0aW9uLgogICAgIGlmICghaW5TYW1lTG9naWNhbExpbmUoYywg
dmlzUG9zKSkKICAgICAgICAgdmlzUG9zID0gdmlzUG9zLnByZXZpb3VzKCk7Ci0gICAgCisKKyAg
ICBpZiAoTm9kZSogZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVp
dmFsZW50KCkpKSB7CisgICAgICAgIGlmIChlZGl0YWJsZVJvb3QgJiYgIWVkaXRhYmxlUm9vdC0+
Y29udGFpbnModmlzUG9zLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpKSkKKyAgICAg
ICAgICAgIHJldHVybiBsYXN0UG9zaXRpb25Jbk5vZGUoZWRpdGFibGVSb290KTsKKyAgICB9CiAg
ICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckFmdGVyKHZpc1Bvcyk7CiB9CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMjEgIExldmkgV2VpbnRyYXViICA8
bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250ZW50RWRpdGFi
bGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA1NjQKKworICAgICAgICBGaXhpbmcgbW9kaWZ5aW5nIHNlbGVjdGlvbiBieSBsaW5lYm91
bmRhcnkgKGhvbWUvZW5kKSBmb3IgZWRpdGFibGUgY29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAg
aW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBub24tZWRpdGFibGUgY29udGVudC4KKworICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5l
LWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29u
dGV4dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRl
c3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3RNb2RpZnlCeUxpbmUpOgorCiAyMDExLTA0LTIxICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5ldmlld2VkIHJlYmFzZWxp
bmUgb2Ygd2luLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5
LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5l
Ym91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91
bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBtb2RpZnlpbmcgdGhl
IHNlbGVjdGlvbiBieSBsaW5lIGJvdW5kYXJ5IGdyYW51bGFyaXR5IChsaWtlIGhvbWUvZW5kIGRv
KSBmdW5jdGlvbnMgcHJvcGVybHkgaW4gYW4gaW5saW5lIGVkaXRhYmxlIGNvbnRleHQuCitZb3Ug
Y2FuIHJ1biB0aGlzIHRlc3QgbWFudWFsbHkgYnkgcGxhY2luZyB0aGUgY2FyZXQgaW4gdGhlIG1p
ZGRsZSBvZiB0aGUgYm90aCBvZiB0aGUgc2hhZGVkIGVkaXRhYmxlIHNwYW5zIGJlbG93IGFuZCBl
bnN1cmluZyBob21lL2VuZCAoY29tbWFuZCBsZWZ0L3JpZ2h0IG9uIE1hYykgbW92ZXMgdGhlIGNh
cmV0IHRvIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBzaGFkZWQgYXJlYS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCitQQVNTIE1vZGlmeSBtb3ZpbmcgZm9yd2FyZCBpbiBhZGphY3RlbnQs
IGVkaXRhYmxlIHNwYW5zCitQQVNTIE1vZGlmeSBtb3ZpbmcgYmFja3dhcmQgaW4gYWRqYWN0ZW50
LCBlZGl0YWJsZSBzcGFucworUEFTUyBNb2RpZnkgbW92aW5nIGZvcndhcmQgaW4gZWRpdGFibGUg
c3BhbiBpbiBub24tZWRpdGFibGUgY29udGVudAorUEFTUyBNb2RpZnkgbW92aW5nIGJhY2t3YXJk
IGluIGVkaXRhYmxlIHNwYW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorYWRqYWNlbnQgZWRpdGFibGVzcGFu
cworVGhpcyBpcyBhIG5vbi1lZGl0YWJsZSBwYXJhZ3JhcGggd2l0aCBhbiBlZGl0YWJsZSBzcGFu
IGluc2lkZSBpdC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1i
eS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFy
eS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5l
LWVkaXRhYmxlLWNvbnRleHRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+IDwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL21vZGlm
eS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNv
bnRleHRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nj
cmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250
ZXh0cy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nj
cmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250
ZXh0cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBlbnN1cmVzIHRoYXQgbW9kaWZ5aW5nIHRoZSBzZWxlY3Rpb24gYnkgbGluZSBib3VuZGFy
eSBncmFudWxhcml0eSAobGlrZSBob21lL2VuZCBkbykgZnVuY3Rpb25zIHByb3Blcmx5IGluIGFu
IGlubGluZSBlZGl0YWJsZSBjb250ZXh0Ljxicj4iICsKKyAgICAiWW91IGNhbiBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5IGJ5IHBsYWNpbmcgdGhlIGNhcmV0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGJv
dGggb2YgdGhlIHNoYWRlZCBlZGl0YWJsZSBzcGFucyBiZWxvdyBhbmQgZW5zdXJpbmcgaG9tZS9l
bmQgKGNvbW1hbmQgbGVmdC9yaWdodCIgKworICAgICIgb24gTWFjKSBtb3ZlcyB0aGUgY2FyZXQg
dG8gdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHNoYWRlZCBhcmVhLiIpOworCitmdW5jdGlvbiB0ZXN0
TW9kaWZ5QnlMaW5lKHJvb3QsIGRpcmVjdGlvbiwgZXhwZWN0ZWRPZmZzZXQsIGRlc2NyaXB0aW9u
KSB7CisgICAgcm9vdC5mb2N1cygpOworCisgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsKKyAgICB2YXIgaW5pdGlhbE9mZnNldCA9IDI7CisgICAgc2VsLnNldEJhc2VBbmRFeHRl
bnQocm9vdC5maXJzdENoaWxkLCBpbml0aWFsT2Zmc2V0LCByb290LmZpcnN0Q2hpbGQsIGluaXRp
YWxPZmZzZXQpOworICAgIHNlbC5tb2RpZnkoIm1vdmUiLCBkaXJlY3Rpb24sICJsaW5lYm91bmRh
cnkiKTsKKyAgICAKKyAgICB2YXIgdGVzdE5hbWUgPSAiTW9kaWZ5IG1vdmluZyAiICsgZGlyZWN0
aW9uICsgIiBpbiAiICsgZGVzY3JpcHRpb247CisgICAgaWYgKHNlbC5iYXNlT2Zmc2V0ID09IGV4
cGVjdGVkT2Zmc2V0KQorICAgICAgICB0ZXN0UGFzc2VkKHRlc3ROYW1lKTsKKyAgICBlbHNlIGlm
IChzZWwuYmFzZU9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KQorICAgICAgICB0ZXN0RmFpbGVkKHRl
c3ROYW1lICsgIiBoYWQgbm8gZWZmZWN0LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZCh0ZXN0TmFtZSArICIgcmVzdWx0ZWQgaW4gYW4gdW5leHBlY3RlZCBvZmZzZXQgb2YgIiArIHNl
bC5iYXNlT2Zmc2V0KTsKK30KKwordmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29udGFp
bmVyLmlubmVySFRNTCA9ICc8c3BhbiBjb250ZW50RWRpdGFibGU9InRydWUiIHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiBsaWdodGdyZXkiIGlkPSJyb290MSI+YWRqYWNlbnQgZWRpdGFibGU8L3Nw
YW4+PHNwYW4gY29udGVudEVkaXRhYmxlPSJ0cnVlIj5zcGFuczwvc3Bhbj4nOworCit2YXIgbmFt
ZSA9ICJhZGphY3RlbnQsIGVkaXRhYmxlIHNwYW5zIjsKK3ZhciByb290ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jvb3QxJyk7Cit0ZXN0TW9kaWZ5QnlMaW5lKHJvb3QsICJmb3J3YXJkIiwg
MTcsIG5hbWUpOwordGVzdE1vZGlmeUJ5TGluZShyb290LCAiYmFja3dhcmQiLCAwLCBuYW1lKTsK
KworY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKK2NvbnRhaW5lci5pbm5lckhUTUwgPSAnVGhpcyBp
cyBhIG5vbi1lZGl0YWJsZSBwYXJhZ3JhcGggd2l0aCA8c3BhbiBjb250ZW50RWRpdGFibGU9InRy
dWUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkiIGlkPSJyb290MiI+YW4gZWRp
dGFibGUgc3Bhbjwvc3Bhbj4gaW5zaWRlIGl0Lic7CisKK25hbWUgPSAiZWRpdGFibGUgc3BhbiBp
biBub24tZWRpdGFibGUgY29udGVudCIKK3Jvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cm9vdDInKTsKK3Rlc3RNb2RpZnlCeUxpbmUocm9vdCwgImZvcndhcmQiLCAxNiwgbmFtZSk7Cit0
ZXN0TW9kaWZ5QnlMaW5lKHJvb3QsICJiYWNrd2FyZCIsIDAsIG5hbWUpOworCisgICAgCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90638</attachid>
            <date>2011-04-21 17:09:19 -0700</date>
            <delta_ts>2011-04-22 13:38:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50564-20110421170918.patch</filename>
            <type>text/plain</type>
            <size>6482</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250
ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBDaGFuZ2luZyBsb2dpY2FsW1N0YXJ0L0VuZF1P
ZkxpbmUgdG8gcmV0dXJuIGEgdmFsaWQgVmlzaWJsZVBvc2l0aW9uIGZvciBmb3IgZWRpdGFibGUg
Y29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBu
b24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9naWNhbFN0YXJ0T2ZMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRPZkxpbmUp
OgorCiAyMDExLTA0LTIxICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA4MTkxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTUsNyArMTE1NSwx
MSBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0CiAgICAgLy8gVE9E
TzogdGhpcyBpcyB0aGUgY3VycmVudCBiZWhhdmlvciB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZml4
ZWQuCiAgICAgLy8gUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTEwNyBmb3IgZGV0YWlsLgogICAgIFZpc2libGVQb3NpdGlvbiB2aXNQb3Mg
PSBsb2dpY2FsU3RhcnRQb3NpdGlvbkZvckxpbmUoYyk7Ci0gICAgCisKKyAgICBpZiAoTm9kZSog
ZWRpdGFibGVSb290ID0gaGlnaGVzdEVkaXRhYmxlUm9vdChjLmRlZXBFcXVpdmFsZW50KCkpKSB7
CisgICAgICAgIGlmICghZWRpdGFibGVSb290LT5jb250YWlucyh2aXNQb3MuZGVlcEVxdWl2YWxl
bnQoKS5jb250YWluZXJOb2RlKCkpKQorICAgICAgICAgICAgcmV0dXJuIGZpcnN0UG9zaXRpb25J
bk5vZGUoZWRpdGFibGVSb290KTsKKyAgICB9CiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJv
dW5kYXJ5QXRPckJlZm9yZSh2aXNQb3MpOwogfQogCkBAIC0xMjE0LDcgKzEyMTgsMTEgQEAgVmlz
aWJsZVBvc2l0aW9uIGxvZ2ljYWxFbmRPZkxpbmUoY29uc3QgVgogICAgIC8vIEluIHRoaXMgY2Fz
ZSwgdXNlIHRoZSBwcmV2aW91cyBwb3NpdGlvbiBvZiB0aGUgY29tcHV0ZWQgbG9naWNhbCBlbmQg
cG9zaXRpb24uCiAgICAgaWYgKCFpblNhbWVMb2dpY2FsTGluZShjLCB2aXNQb3MpKQogICAgICAg
ICB2aXNQb3MgPSB2aXNQb3MucHJldmlvdXMoKTsKLSAgICAKKworICAgIGlmIChOb2RlKiBlZGl0
YWJsZVJvb3QgPSBoaWdoZXN0RWRpdGFibGVSb290KGMuZGVlcEVxdWl2YWxlbnQoKSkpIHsKKyAg
ICAgICAgaWYgKCFlZGl0YWJsZVJvb3QtPmNvbnRhaW5zKHZpc1Bvcy5kZWVwRXF1aXZhbGVudCgp
LmNvbnRhaW5lck5vZGUoKSkpCisgICAgICAgICAgICByZXR1cm4gbGFzdFBvc2l0aW9uSW5Ob2Rl
KGVkaXRhYmxlUm9vdCk7CisgICAgfQogICAgIHJldHVybiBjLmhvbm9yRWRpdGFibGVCb3VuZGFy
eUF0T3JBZnRlcih2aXNQb3MpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDU0NSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEx
LTA0LTIxICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmQvSG9tZSBrZXlzIGRvIG5v
dCB3b3JrIGluIGEgY29udGVudEVkaXRhYmxlIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNTY0CisKKyAgICAgICAgRml4aW5nIG1vZGlm
eWluZyBzZWxlY3Rpb24gYnkgbGluZWJvdW5kYXJ5IChob21lL2VuZCkgZm9yIGVkaXRhYmxlIGNv
bnRleHRzIHRoYXQgYXJlCisgICAgICAgIGlubGluZSBhbmQgc2hhcmUgYSBsaW5lIHdpdGggbm9u
LWVkaXRhYmxlIGNvbnRlbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9tb2RpZnkt
YnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRh
cnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlu
bGluZS1lZGl0YWJsZS1jb250ZXh0cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0TW9kaWZ5QnlM
aW5lKToKKwogMjAxMS0wNC0yMSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVuZXZpZXdlZCByZWJhc2VsaW5lIG9mIHdpbi4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxl
LWNvbnRleHRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1i
eS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+IDwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRh
YmxlLWNvbnRleHRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91bmRh
cnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5
LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9tb2RpZnktYnktbGluZWJvdW5kYXJ5
LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NSBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbW9kaWZ5aW5nIHRoZSBz
ZWxlY3Rpb24gYnkgbGluZSBib3VuZGFyeSBncmFudWxhcml0eSAobGlrZSBob21lL2VuZCBkbykg
ZnVuY3Rpb25zIHByb3Blcmx5IGluIGFuIGlubGluZSBlZGl0YWJsZSBjb250ZXh0Ljxicj4iICsK
KyAgICAiWW91IGNhbiBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5IGJ5IHBsYWNpbmcgdGhlIGNhcmV0
IGluIHRoZSBtaWRkbGUgb2YgdGhlIGJvdGggb2YgdGhlIHNoYWRlZCBlZGl0YWJsZSBzcGFucyBi
ZWxvdyBhbmQgZW5zdXJpbmcgaG9tZS9lbmQgKGNvbW1hbmQgbGVmdC9yaWdodCIgKworICAgICIg
b24gTWFjKSBtb3ZlcyB0aGUgY2FyZXQgdG8gdGhlIGJvdW5kYXJpZXMgb2YgdGhlIHNoYWRlZCBh
cmVhLiIpOworCitmdW5jdGlvbiB0ZXN0TW9kaWZ5QnlMaW5lKHJvb3QsIGRpcmVjdGlvbiwgZXhw
ZWN0ZWRPZmZzZXQsIGRlc2NyaXB0aW9uKSB7CisgICAgcm9vdC5mb2N1cygpOworCisgICAgdmFy
IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICB2YXIgaW5pdGlhbE9mZnNldCA9IDI7
CisgICAgc2VsLnNldEJhc2VBbmRFeHRlbnQocm9vdC5maXJzdENoaWxkLCBpbml0aWFsT2Zmc2V0
LCByb290LmZpcnN0Q2hpbGQsIGluaXRpYWxPZmZzZXQpOworICAgIHNlbC5tb2RpZnkoIm1vdmUi
LCBkaXJlY3Rpb24sICJsaW5lYm91bmRhcnkiKTsKKyAgICAKKyAgICB2YXIgdGVzdE5hbWUgPSAi
TW9kaWZ5IG1vdmluZyAiICsgZGlyZWN0aW9uICsgIiBpbiAiICsgZGVzY3JpcHRpb247CisgICAg
aWYgKHNlbC5iYXNlT2Zmc2V0ID09IGV4cGVjdGVkT2Zmc2V0KQorICAgICAgICB0ZXN0UGFzc2Vk
KHRlc3ROYW1lKTsKKyAgICBlbHNlIGlmIChzZWwuYmFzZU9mZnNldCA9PSBpbml0aWFsT2Zmc2V0
KQorICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIiBoYWQgbm8gZWZmZWN0LiIpOworICAg
IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICIgcmVzdWx0ZWQgaW4gYW4gdW5l
eHBlY3RlZCBvZmZzZXQgb2YgIiArIHNlbC5iYXNlT2Zmc2V0KTsKK30KKwordmFyIGNvbnRhaW5l
ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChjb250YWluZXIpOworY29udGFpbmVyLmlubmVySFRNTCA9ICc8c3BhbiBjb250ZW50RWRp
dGFibGU9InRydWUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZXkiPmFkamFjZW50
IGVkaXRhYmxlPC9zcGFuPjxzcGFuIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+c3BhbnM8L3NwYW4+
JzsKKwordmFyIG5hbWUgPSAiYWRqYWNlbnQsIGVkaXRhYmxlIHNwYW5zIjsKK3Rlc3RNb2RpZnlC
eUxpbmUoY29udGFpbmVyLmZpcnN0Q2hpbGQsICJmb3J3YXJkIiwgMTcsIG5hbWUpOwordGVzdE1v
ZGlmeUJ5TGluZShjb250YWluZXIuZmlyc3RDaGlsZCwgImJhY2t3YXJkIiwgMCwgbmFtZSk7CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgY29udGFpbmVyLmlubmVySFRN
TCA9ICcnOworCitjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKQorZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29udGFpbmVyLmlubmVySFRNTCA9
ICdUaGlzIGlzIGEgbm9uLWVkaXRhYmxlIHBhcmFncmFwaCB3aXRoIDxzcGFuIGNvbnRlbnRFZGl0
YWJsZT0idHJ1ZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSIgaWQ9InJvb3Qi
PmFuIGVkaXRhYmxlIHNwYW48L3NwYW4+IGluc2lkZSBpdC4nOworCituYW1lID0gImVkaXRhYmxl
IHNwYW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQiCit2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyb290Jyk7Cit0ZXN0TW9kaWZ5QnlMaW5lKHJvb3QsICJmb3J3YXJkIiwgMTYs
IG5hbWUpOwordGVzdE1vZGlmeUJ5TGluZShyb290LCAiYmFja3dhcmQiLCAwLCBuYW1lKTsKKwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBjb250YWluZXIuaW5uZXJIVE1M
ID0gJyc7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90749</attachid>
            <date>2011-04-22 13:38:28 -0700</date>
            <delta_ts>2011-04-22 14:05:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50564-20110422133827.patch</filename>
            <type>text/plain</type>
            <size>7759</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NjU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjIgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMgZG8gbm90IHdvcmsgaW4gYSBjb250
ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBDaGFuZ2luZyBsb2dpY2FsW1N0YXJ0L0VuZF1P
ZkxpbmUgdG8gcmV0dXJuIGEgdmFsaWQgVmlzaWJsZVBvc2l0aW9uIGZvciBmb3IgZWRpdGFibGUg
Y29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0aCBu
b24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9t
b2RpZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCisK
KyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9naWNhbFN0YXJ0T2ZMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRPZkxpbmUp
OgorCiAyMDExLTA0LTIyICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDg0NjU2KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3NCw3ICsx
MDc0LDExIEBAIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsU3RhcnRPZkxpbmUoY29uc3QKICAgICAv
LyBUT0RPOiB0aGlzIGlzIHRoZSBjdXJyZW50IGJlaGF2aW9yIHRoYXQgbWlnaHQgbmVlZCB0byBi
ZSBmaXhlZC4KICAgICAvLyBQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MTA3IGZvciBkZXRhaWwuCiAgICAgVmlzaWJsZVBvc2l0aW9uIHZp
c1BvcyA9IGxvZ2ljYWxTdGFydFBvc2l0aW9uRm9yTGluZShjKTsKLSAgICAKKworICAgIGlmIChO
b2RlKiBlZGl0YWJsZVJvb3QgPSBoaWdoZXN0RWRpdGFibGVSb290KGMuZGVlcEVxdWl2YWxlbnQo
KSkpIHsKKyAgICAgICAgaWYgKCFlZGl0YWJsZVJvb3QtPmNvbnRhaW5zKHZpc1Bvcy5kZWVwRXF1
aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKSkpCisgICAgICAgICAgICByZXR1cm4gZmlyc3RQb3Np
dGlvbkluTm9kZShlZGl0YWJsZVJvb3QpOworICAgIH0KICAgICByZXR1cm4gYy5ob25vckVkaXRh
YmxlQm91bmRhcnlBdE9yQmVmb3JlKHZpc1Bvcyk7CiB9CiAKQEAgLTExMzMsNyArMTEzNywxMSBA
QCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbEVuZE9mTGluZShjb25zdCBWCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB1c2UgdGhlIHByZXZpb3VzIHBvc2l0aW9uIG9mIHRoZSBjb21wdXRlZCBsb2dpY2Fs
IGVuZCBwb3NpdGlvbi4KICAgICBpZiAoIWluU2FtZUxvZ2ljYWxMaW5lKGMsIHZpc1BvcykpCiAg
ICAgICAgIHZpc1BvcyA9IHZpc1Bvcy5wcmV2aW91cygpOwotICAgIAorCisgICAgaWYgKE5vZGUq
IGVkaXRhYmxlUm9vdCA9IGhpZ2hlc3RFZGl0YWJsZVJvb3QoYy5kZWVwRXF1aXZhbGVudCgpKSkg
eworICAgICAgICBpZiAoIWVkaXRhYmxlUm9vdC0+Y29udGFpbnModmlzUG9zLmRlZXBFcXVpdmFs
ZW50KCkuY29udGFpbmVyTm9kZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBsYXN0UG9zaXRpb25J
bk5vZGUoZWRpdGFibGVSb290KTsKKyAgICB9CiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJv
dW5kYXJ5QXRPckFmdGVyKHZpc1Bvcyk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NjU2KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDQtMjIgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuZC9Ib21lIGtleXMg
ZG8gbm90IHdvcmsgaW4gYSBjb250ZW50RWRpdGFibGUgZWxlbWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA1NjQKKworICAgICAgICBGaXhpbmcg
bW9kaWZ5aW5nIHNlbGVjdGlvbiBieSBsaW5lYm91bmRhcnkgKGhvbWUvZW5kKSBmb3IgZWRpdGFi
bGUgY29udGV4dHMgdGhhdCBhcmUKKyAgICAgICAgaW5saW5lIGFuZCBzaGFyZSBhIGxpbmUgd2l0
aCBub24tZWRpdGFibGUgY29udGVudC4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21v
ZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVi
b3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL21vZGlmeS1ieS1saW5lYm91bmRhcnkt
aW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RNb2Rp
ZnlCeUxpbmUpOgorCiAyMDExLTA0LTIyICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZGVsZXRpbmcgcmVtYWluaW5nIC5jaGVja3N1bSBmaWxl
cy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vZGlmeS1ieS1saW5lYm91
bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb2RpZnktYnktbGluZWJvdW5kYXJ5
LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb2RpZnktYnktbGluZWJvdW5kYXJ5LWlu
LWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTQgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgbW9kaWZ5aW5nIHRoZSBzZWxlY3Rp
b24gYnkgbGluZSBib3VuZGFyeSBncmFudWxhcml0eSAobGlrZSBob21lL2VuZCBkbykgZnVuY3Rp
b25zIHByb3Blcmx5IGluIGFuIGlubGluZSBlZGl0YWJsZSBjb250ZXh0LgorWW91IGNhbiBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5IGJ5IHBsYWNpbmcgdGhlIGNhcmV0IGluIHRoZSBtaWRkbGUgb2Yg
dGhlIGJvdGggb2YgdGhlIHNoYWRlZCBlZGl0YWJsZSBzcGFucyBiZWxvdyBhbmQgZW5zdXJpbmcg
aG9tZS9lbmQgKGNvbW1hbmQgbGVmdC9yaWdodCBvbiBNYWMpIG1vdmVzIHRoZSBjYXJldCB0byB0
aGUgYm91bmRhcmllcyBvZiB0aGUgc2hhZGVkIGFyZWEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIE1vZGlmeSBtb3ZpbmcgZm9yd2FyZCBpbiBhZGphY2VudCwgZWRpdGFi
bGUgc3BhbnMKK1BBU1MgTW9kaWZ5IG1vdmluZyBiYWNrd2FyZCBpbiBhZGphY2VudCwgZWRpdGFi
bGUgc3BhbnMKK1BBU1MgTW9kaWZ5IG1vdmluZyBmb3J3YXJkIGluIGVkaXRhYmxlIHNwYW4gaW4g
bm9uLWVkaXRhYmxlIGNvbnRlbnQKK1BBU1MgTW9kaWZ5IG1vdmluZyBiYWNrd2FyZCBpbiBlZGl0
YWJsZSBzcGFuIGluIG5vbi1lZGl0YWJsZSBjb250ZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4
dHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb2Rp
ZnktYnktbGluZWJvdW5kYXJ5LWluLWlubGluZS1lZGl0YWJsZS1jb250ZXh0cy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW9kaWZ5LWJ5LWxpbmVi
b3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1p
bi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvbW9kaWZ5LWJ5LWxpbmVib3VuZGFyeS1pbi1pbmxpbmUtZWRpdGFibGUtY29udGV4dHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L21vZGlmeS1ieS1saW5lYm91bmRhcnktaW4taW5saW5lLWVkaXRhYmxlLWNvbnRleHRzLmpzCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3Vy
ZXMgdGhhdCBtb2RpZnlpbmcgdGhlIHNlbGVjdGlvbiBieSBsaW5lIGJvdW5kYXJ5IGdyYW51bGFy
aXR5IChsaWtlIGhvbWUvZW5kIGRvKSBmdW5jdGlvbnMgcHJvcGVybHkgaW4gYW4gaW5saW5lIGVk
aXRhYmxlIGNvbnRleHQuPGJyPiIgKworICAgICJZb3UgY2FuIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHkgYnkgcGxhY2luZyB0aGUgY2FyZXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYm90aCBvZiB0aGUg
c2hhZGVkIGVkaXRhYmxlIHNwYW5zIGJlbG93IGFuZCBlbnN1cmluZyBob21lL2VuZCAoY29tbWFu
ZCBsZWZ0L3JpZ2h0IiArCisgICAgIiBvbiBNYWMpIG1vdmVzIHRoZSBjYXJldCB0byB0aGUgYm91
bmRhcmllcyBvZiB0aGUgc2hhZGVkIGFyZWEuIik7CisKK2Z1bmN0aW9uIHRlc3RNb2RpZnlCeUxp
bmUocm9vdCwgZGlyZWN0aW9uLCBleHBlY3RlZE9mZnNldCwgZGVzY3JpcHRpb24pIHsKKyAgICBy
b290LmZvY3VzKCk7CisKKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAg
IHZhciBpbml0aWFsT2Zmc2V0ID0gMjsKKyAgICBzZWwuc2V0QmFzZUFuZEV4dGVudChyb290LmZp
cnN0Q2hpbGQsIGluaXRpYWxPZmZzZXQsIHJvb3QuZmlyc3RDaGlsZCwgaW5pdGlhbE9mZnNldCk7
CisgICAgc2VsLm1vZGlmeSgibW92ZSIsIGRpcmVjdGlvbiwgImxpbmVib3VuZGFyeSIpOworICAg
IAorICAgIHZhciB0ZXN0TmFtZSA9ICJNb2RpZnkgbW92aW5nICIgKyBkaXJlY3Rpb24gKyAiIGlu
ICIgKyBkZXNjcmlwdGlvbjsKKyAgICBpZiAoc2VsLmJhc2VPZmZzZXQgPT0gZXhwZWN0ZWRPZmZz
ZXQpCisgICAgICAgIHRlc3RQYXNzZWQodGVzdE5hbWUpOworICAgIGVsc2UgaWYgKHNlbC5iYXNl
T2Zmc2V0ID09IGluaXRpYWxPZmZzZXQpCisgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAi
IGhhZCBubyBlZmZlY3QuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1l
ICsgIiByZXN1bHRlZCBpbiBhbiB1bmV4cGVjdGVkIG9mZnNldCBvZiAiICsgc2VsLmJhc2VPZmZz
ZXQpOworfQorCit2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7Citjb250YWluZXIuaW5uZXJI
VE1MID0gJzxzcGFuIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IGxpZ2h0Z3JleSI+YWRqYWNlbnQgZWRpdGFibGU8L3NwYW4+PHNwYW4gY29udGVudEVkaXRh
YmxlPSJ0cnVlIj5zcGFuczwvc3Bhbj4nOworCit2YXIgbmFtZSA9ICJhZGphY2VudCwgZWRpdGFi
bGUgc3BhbnMiOwordGVzdE1vZGlmeUJ5TGluZShjb250YWluZXIuZmlyc3RDaGlsZCwgImZvcndh
cmQiLCAxNywgbmFtZSk7Cit0ZXN0TW9kaWZ5QnlMaW5lKGNvbnRhaW5lci5maXJzdENoaWxkLCAi
YmFja3dhcmQiLCAwLCBuYW1lKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7CisKK2NvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpCitkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7
Citjb250YWluZXIuaW5uZXJIVE1MID0gJ1RoaXMgaXMgYSBub24tZWRpdGFibGUgcGFyYWdyYXBo
IHdpdGggPHNwYW4gY29udGVudEVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogbGlnaHRncmV5IiBpZD0icm9vdCI+YW4gZWRpdGFibGUgc3Bhbjwvc3Bhbj4gaW5zaWRlIGl0
Lic7CisKK25hbWUgPSAiZWRpdGFibGUgc3BhbiBpbiBub24tZWRpdGFibGUgY29udGVudCIKK3Zh
ciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKK3Rlc3RNb2RpZnlCeUxp
bmUocm9vdCwgImZvcndhcmQiLCAxNiwgbmFtZSk7Cit0ZXN0TW9kaWZ5QnlMaW5lKHJvb3QsICJi
YWNrd2FyZCIsIDAsIG5hbWUpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>