<?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>66032</bug_id>
          
          <creation_ts>2011-08-10 23:07:57 -0700</creation_ts>
          <short_desc>Allow site authors to override autofilled fields&apos; colors.</short_desc>
          <delta_ts>2022-08-27 08:32:42 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>83418</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Sherman">isherman</reporter>
          <assigned_to name="Ilya Sherman">isherman</assigned_to>
          <cc>agafvv</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>eoconnor</cc>
    
    <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>isherman</cc>
    
    <cc>jonlee</cc>
    
    <cc>kdecker</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sullivan</cc>
    
    <cc>tabatkins</cc>
    
    <cc>tkent</cc>
    
    <cc>vmarty89</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>449604</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-08-10 23:07:57 -0700</bug_when>
    <thetext>Allow site authors to override autofilled fields&apos; colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449605</commentid>
    <comment_count>1</comment_count>
      <attachid>103578</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-08-10 23:09:17 -0700</bug_when>
    <thetext>Created attachment 103578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449606</commentid>
    <comment_count>2</comment_count>
      <attachid>103579</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-08-10 23:10:25 -0700</bug_when>
    <thetext>Created attachment 103579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449610</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-08-10 23:16:38 -0700</bug_when>
    <thetext>This is motivated by http://crbug.com/46543.  There is a lot of discussion there, but here is a brief summary of the reasoning:
  (1) Malicious websites can circumvent the element styling anyway, so the &quot;!important&quot; declaration adds no security benefits.
  (2) Other browsers do not impose a similar restriction on site authors.  For example, Firefox does not even distinguish autofilled fields (at all).
  (3) The yellow+black style conflicts with some site layouts, e.g. ones where yellow is used to indicate warnings.

For Chromium, we have decided to allow site authors to override the style.  If Safari devs are on board, we should go ahead and change &quot;html.css&quot;, as done in the current patch.  Otherwise, we can just change the Chromium-specific style sheets.

I&apos;m not sure whom to cc to get weigh-in from the Safari team.  If someone could point the right people to this bug, I would be much obliged :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449903</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-11 11:40:01 -0700</bug_when>
    <thetext>CC&apos;ed some folks whose input would be essential to proceed with cross-platform changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449907</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-11 11:43:08 -0700</bug_when>
    <thetext>Maciej said:

- If we want changing the autofill color to be a supported feature, we should think through the design of the -webkit-autofill pseudo-class and propose it to standards groups. Opening this point of control to authors without a clear standards-track story may not be a great idea.

- From the security perspective, this adds a new way to make the contents of an autofilled form field invisible, since foreground and background color would both become settable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450028</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-08-11 14:11:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Maciej said:
&gt; 
&gt; - If we want changing the autofill color to be a supported feature, we should think through the design of the -webkit-autofill pseudo-class and propose it to standards groups. Opening this point of control to authors without a clear standards-track story may not be a great idea.

Sure, I have no objection to standardizing this pseudo-class (or something like it); though I also don&apos;t understand why it would be unwise to leave this as a rendering engine-specific selector.  If we want to pursue standardization, who would be the right people to loop in?

&gt; - From the security perspective, this adds a new way to make the contents of an autofilled form field invisible, since foreground and background color would both become settable.

As long as users have JavaScript enabled, the foreground and background colors are already settable -- just in a hacky way.  For example, the site author could add and remove a character from the value each time onChange() is fired; or just rip out the existing &lt;input&gt; elements and replace them with new ones (again, copying the text values).

Since JavaScript is enabled by default, I&apos;m not sure that this change affects the security story much.  CC&apos;ing inferno@chromium in case he has any additional insights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454932</commentid>
    <comment_count>7</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-08-22 14:34:20 -0700</bug_when>
    <thetext>I worked on the initial audit of autofill. I was discussing this with IIya. One of my major concerns here was that the autofill dropdown colors should not be controlled by website. So, it will be still on top and cannot be hided. I think that should mitigate most of the security concerns, because user knows he is navigating b/w various autofill choices before making a selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473425</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-09-26 15:11:24 -0700</bug_when>
    <thetext>Dear Apple folks, please add your thoughts in response to comment #6.  Or should I just move forward on this issue by making this a Chromium-only change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474422</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-27 18:21:25 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Dear Apple folks, please add your thoughts in response to comment #6. Or should I just move forward on this issue by making this a Chromium-only change?

Since Maciej is the one who said those things, I think he should probably be the one to reply.

I don’t think the security issue is really all that strong, but Maciej is far more savvy than I about such things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474443</commentid>
    <comment_count>10</comment_count>
      <attachid>103579</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-09-27 19:46:35 -0700</bug_when>
    <thetext>Comment on attachment 103579
Patch

(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Dear Apple folks, please add your thoughts in response to comment #6. Or should I just move forward on this issue by making this a Chromium-only change?
&gt; 
&gt; Since Maciej is the one who said those things, I think he should probably be the one to reply.
&gt; 
&gt; I don’t think the security issue is really all that strong, but Maciej is far more savvy than I about such things.

I don&apos;t think the security issue is that serious either. I just gave my opinion when asked.

I *do* think the issue of making sure we have a supportable standards-track API for this, if we are going to expose the capability to Web content authors, instead of exposing a random piece of engine internals. I don&apos;t think that concern has been addressed. The right working group to contact would be the CSS Working Group. It would be easy to get at least informal input on www-style on whether an autofill pseudoclass is the right way to go).

I don&apos;t think making this a Chromium-only change would remove our responsibility to make a supportable, standards-track design. Since people apparently want me to turn my offhanded remarks into a decision of some sort, I guess I have to mark this patch r- based on what I said above. I would also r- a version of the patch that did the same thing with Chromium ifdefs if the above concern was not addressed (in fact, even more so since it would be gratuitously forking Web platform behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474452</commentid>
    <comment_count>11</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-09-27 20:21:07 -0700</bug_when>
    <thetext>&gt; I *do* think the issue of making sure we have a supportable standards-track API for this, if we are going to expose the capability to Web content authors, instead of exposing a random piece of engine internals. I don&apos;t think that concern has been addressed. The right working group to contact would be the CSS Working Group. It would be easy to get at least informal input on www-style on whether an autofill pseudoclass is the right way to go).

Just to clarify here:  My expectation would be that very few site authors would try to style autofilled fields differently from non-autofilled fields.  Rather -- and this is based on the comments on http://crbug.com/46543 -- most site authors want to have all fields be styled the same, whether they&apos;re autofilled or not.  Is your concern simply that authors *could* use the WebKit autofill pseudoclass after this change, whereas they could not previously?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475013</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-28 14:24:17 -0700</bug_when>
    <thetext>Ilya: please work with Tab to propose something on www-style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475886</commentid>
    <comment_count>13</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-09-29 21:58:25 -0700</bug_when>
    <thetext>Tab, how should we move forward on this?  Should I draft a brief message and run it by you?

Note to self: The pseudoattribute is already being used in the wild, e.g. for http://code.google.com/p/chromium/issues/detail?id=46543#c22 :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476318</commentid>
    <comment_count>14</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2011-09-30 14:27:54 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Tab, how should we move forward on this?  Should I draft a brief message and run it by you?

Yup, that sounds great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485667</commentid>
    <comment_count>15</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-10-17 17:36:44 -0700</bug_when>
    <thetext>I posted a proposal [1] to www-style, but it has pretty much been ignored.  Where to from here?

[1] http://lists.w3.org/Archives/Public/www-style/2011Oct/0409.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592771</commentid>
    <comment_count>16</comment_count>
      <attachid>134935</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-03-30 20:33:07 -0700</bug_when>
    <thetext>Created attachment 134935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592776</commentid>
    <comment_count>17</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-03-30 20:40:51 -0700</bug_when>
    <thetext>Caught Tantek on IRC today, and he expressed general support for exposing :-webkit-autofill (and eventually just the unprefixed :autofill) as a pseudo-class selector.  It&apos;s currently listed as a proposed selector for the CSS4-UI feature list [1], though Tantek said it might be appropriate to move it over to the CSS4 Selectors working draft [2].  There&apos;s also now a tracking page on the Mozilla Wiki [3].
[1] http://wiki.csswg.org/spec/css4-ui#more-selectors
[2] http://www.w3.org/TR/selectors4/
[3] https://wiki.mozilla.org/CSS/:autofill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597756</commentid>
    <comment_count>18</comment_count>
      <attachid>134935</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-06 15:49:03 -0700</bug_when>
    <thetext>Comment on attachment 134935
Patch

Clearing flags on attachment: 134935

Committed r113511: &lt;http://trac.webkit.org/changeset/113511&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597757</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-06 15:49:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612382</commentid>
    <comment_count>20</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-04-28 21:10:33 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 134935 [details])
&gt; Clearing flags on attachment: 134935
&gt; 
&gt; Committed r113511: &lt;http://trac.webkit.org/changeset/113511&gt;

This caused bug 85150.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612388</commentid>
    <comment_count>21</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-04-28 22:10:17 -0700</bug_when>
    <thetext>This may need to be reverted. Given how the CSS cascade works, there&apos;s no way to avoid bug 85150, short of changing the hook for customizing autofill style to something other than a psuedoclass. A non-!important pseudo-class rule in the UA stylesheet will always be superseded by a non-pseudo-class rule in the author stylesheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613133</commentid>
    <comment_count>22</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-04-30 18:17:33 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613134</commentid>
    <comment_count>23</comment_count>
      <attachid>139562</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-04-30 18:17:41 -0700</bug_when>
    <thetext>Created attachment 139562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613146</commentid>
    <comment_count>24</comment_count>
      <attachid>139562</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-30 18:27:45 -0700</bug_when>
    <thetext>Comment on attachment 139562
Patch

rollouts don&apos;t require review. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613147</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-30 18:28:33 -0700</bug_when>
    <thetext>Make sure you re-open the original bug (unless it&apos;s this one?) and notify the original author (unless that&apos;s you?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613151</commentid>
    <comment_count>26</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-04-30 18:34:01 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Make sure you re-open the original bug (unless it&apos;s this one?) and notify the original author (unless that&apos;s you?)

Aye, this is the original bug, and I&apos;m the original author.  I tried &quot;webkit-patch rollout ...&quot;, but it got hung somewhere in a Python script, so I fell back to the tried and true path of &quot;webkit-patch upload&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613200</commentid>
    <comment_count>27</comment_count>
      <attachid>139562</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-30 20:21:11 -0700</bug_when>
    <thetext>Comment on attachment 139562
Patch

Clearing flags on attachment: 139562

Committed r115706: &lt;http://trac.webkit.org/changeset/115706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613201</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-30 20:21:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614725</commentid>
    <comment_count>29</comment_count>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2012-05-02 15:28:48 -0700</bug_when>
    <thetext>The first attempt at a fix introduced regressions, so re-opening.

Copying in two relevant comments from [ https://bugs.webkit.org/show_bug.cgi?id=85150 ]:

&gt; Ilya Sherman

Hmm, based on my reading of [ http://www.w3.org/TR/CSS21/cascade.html#cascading-order ], the user agent style should have the lowest precedence, so this is behaving &quot;correctly&quot;.  Do you have a recommendation on how to implement the more desired behavior, which is the the user agent style overrides the author-specified style *unless the author overrides input:-webkit-autofill* without violating the CSS spec?

&gt; Tab Atkins Jr.

There *is* a way to get this to work, as long as the state is exclusive with other similar states.  I think it is here.

Placeholder has a basically identical problem.  The way that was discussed to fix that was to add some additional pseudo-elements.

&lt;input&gt; gets a ::value that wraps its normal text contents, and only accepts a handful of properties.  (This part isn&apos;t strictly necessary.)

While an &lt;input&gt; is showing a placeholder, it generates a ::placeholder pseudo which wraps the placeholder text.  Since this only happens when the input doesn&apos;t have any normal text, this acts &quot;normally&quot;.

Similarly, an auto-filled input would generate an ::autofill pseudo-element that wraps its autofilled text.  Once the user starts interacting with it, the text would move from ::autofill to ::value.

This handles the specificity problem by ignoring it, because rules on &quot;input&quot; would only affect the ::autofill pseudo by inheritance, and inheritance is the weakest possible form of rule.

Possibly, to enforce that these states are exclusive, we should do these three as a single pseudo with an argument:  ::value(normal), ::value(placeholder), and ::value(autofill).  The input would generate one and only one of these at a time.

(Theoretically, we could do this with pseudo-classes on the pseudo-element, but that&apos;s not allowed by current Selector syntax, and it would still potentially suffer problems with authors just styling &quot;::value&quot; and overriding all the states.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103578</attachid>
            <date>2011-08-10 23:09:17 -0700</date>
            <delta_ts>2011-08-10 23:10:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66032-20110810230916.patch</filename>
            <type>text/plain</type>
            <size>7711</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNWM0YjBjNmYyMjU2MTZkNDU3NjIw
MWJmMDU2YjMxYjkxY2QwNGNmLi5iNmYxZDc4NGYyZjVjN2NkMDVjNWM0YWQxOTE0NTUxMTNhZDgx
ZTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMTAgIElseWEgU2hlcm1hbiAgPGlz
aGVybWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBzaXRlIGF1dGhvcnMgdG8gb3Zl
cnJpZGUgYXV0b2ZpbGxlZCBmaWVsZHMnIGNvbG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC5odG1sOgor
CiAyMDExLTA4LTEwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBhdXRvLWNvbXBsZXRpb24gZm9yIHN0cmluZyBsaXRlcmFscyBk
b2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0
b2ZpbGxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1dG9m
aWxsZWQtZXhwZWN0ZWQudHh0CmluZGV4IDMyYzI1MGYzYWU5MjVmN2M4NjBlMGY2ZmU5ZWYxYzI3
ODg3YTIwNWQuLjFmM2E1ODE3N2MzMTBhYTViYjcyOTQxM2MwZWM0NWQ3ZGZmOTBjODcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDExIEBACiBUaGlzIHRlc3RzIHRoYXQgZm9yZWdyb3VuZCBhbmQgYmFj
a2dyb3VuZCBjb2xvcnMgcHJvcGVybHkgY2hhbmdlIGZvciBhdXRvZmlsbGVkIGlucHV0cy4gSXQg
Y2FuIG9ubHkgYmUgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlLgotCi1QQVNTIAorICAKK1BBU1Mg
Y29tcHV0ZWRTdHlsZVVuc3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFVuc3R5bGVk
IGlzIHRydWUKK1BBU1MgY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmJhY2tncm91bmRDb2xvciA9PSBv
cmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCBpcyBmYWxzZQorUEFTUyBjb21wdXRlZFN0eWxlU3R5
bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1
dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFN0eWxl
ZCBpcyB0cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZv
cmVncm91bmRVbnN0eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5iYWNr
Z3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQgaXMgdHJ1ZQorUEFTUyBj
b21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCBpcyB0
cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFs
QmFja2dyb3VuZFN0eWxlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1hdXRvZmlsbGVkLmh0bWwKaW5kZXggNjFhZTM2MDIwYWEwOGU3MGRkNGRlNTBiNjgxNTNhYWZj
YjRiYzE0Yi4uOTEwMzQyODRhOTU3YjEwZjg5N2U1MDU0YWM4YjYxNzZmNTM4NzhiNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0bWwKQEAgLTcsNDkgKzcs
NDcgQEAKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZhciB0ZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0Zicp
OwotICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUodGYpOwotICAgICAgICB2YXIgb3JpZ2luYWxGb3JlZ3JvdW5kID0gY29tcHV0
ZWRTdHlsZS5jb2xvcjsKLSAgICAgICAgdmFyIG9yaWdpbmFsQmFja2dyb3VuZCA9IGNvbXB1dGVk
U3R5bGUuYmFja2dyb3VuZENvbG9yOworICAgICAgICB2YXIgdW5zdHlsZWQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndW5zdHlsZWQnKTsKKyAgICAgICAgdmFyIHN0eWxlZCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdHlsZWQnKTsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVVuc3R5bGVk
ID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh1bnN0eWxlZCk7CisgICAg
ICAgIG9yaWdpbmFsRm9yZWdyb3VuZFVuc3R5bGVkID0gY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmNv
bG9yOworICAgICAgICBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCA9IGNvbXB1dGVkU3R5bGVV
bnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgIGNvbXB1dGVkU3R5bGVTdHlsZWQgPSBk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHN0eWxlZCk7CisgICAgICAgIG9y
aWdpbmFsRm9yZWdyb3VuZFN0eWxlZCA9IGNvbXB1dGVkU3R5bGVTdHlsZWQuY29sb3I7CisgICAg
ICAgIG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCA9IGNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dy
b3VuZENvbG9yOwogCiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxsZWQodGYsIHRydWUp
OworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh1bnN0eWxl
ZCwgdHJ1ZSk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRvZmlsbGVk
KHN0eWxlZCwgdHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBCb3RoIHRoZSBmb3JlZ3Jv
dW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycyBzaG91bGQgY2hhbmdlLgotICAgICAgICBjb21wdXRl
ZFN0eWxlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0Zik7Ci0gICAg
ICAgIHZhciBhdXRvZmlsbGVkRm9yZWdyb3VuZCA9IGNvbXB1dGVkU3R5bGUuY29sb3I7Ci0gICAg
ICAgIHZhciBhdXRvZmlsbGVkQmFja2dyb3VuZCA9IGNvbXB1dGVkU3R5bGUuYmFja2dyb3VuZENv
bG9yOwotICAgICAgICBpZiAoYXV0b2ZpbGxlZEZvcmVncm91bmQgPT0gb3JpZ2luYWxGb3JlZ3Jv
dW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdGb3JlZ3JvdW5kIGNvbG9yIGRpZCBub3Qg
Y2hhbmdlIHdoZW4gYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBpZiAoYXV0b2ZpbGxlZEJhY2tncm91bmQgPT0gb3JpZ2luYWxCYWNrZ3JvdW5k
KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdCYWNrZ3JvdW5kIGNvbG9yIGRpZCBub3QgY2hh
bmdlIHdoZW4gYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQor
ICAgICAgICAvLyBGb3IgdGhlIHVuc3R5bGVkIGVsZW1lbnQsIHRoZSBiYWNrZ3JvdW5kIGNvbG9y
IHNob3VsZCBjaGFuZ2UuICBUaGUgZm9yZWdyb3VuZCBjb2xvciBzaG91bGQgbm90IGNoYW5nZSwK
KyAgICAgICAgLy8gYXMgdGhlIGRlZmF1bHQgZm9yZWdyb3VuZCBjb2xvciBmb3IgYW4gYXV0b2Zp
bGxlZCBpbnB1dCBpcyB0aGUgc2FtZSBhcyBmb3IgYSBub24tYXV0b2ZpbGxlZCBpbnB1dC4KKyAg
ICAgICAgLy8gRm9yIHRoZSBzdHlsZWQgZWxlbWVudCwgdGhlIGF1dGhvci1zcGVjaWZpZWQgc3R5
bGUgc2hvdWxkIHRha2UgcHJlY2VkZW5jZSwgc28gbmVpdGhlciBjb2xvciBzaG91bGQgY2hhbmdl
LgorICAgICAgICBjb21wdXRlZFN0eWxlVW5zdHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHVuc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVN0eWxlZCA9
IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkKTsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlVW5zdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3Jl
Z3JvdW5kVW5zdHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY29tcHV0ZWRTdHlsZVVu
c3R5bGVkLmJhY2tncm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCIpOwor
ICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVTdHlsZWQuY29sb3IgPT0gb3JpZ2lu
YWxGb3JlZ3JvdW5kU3R5bGVkIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHls
ZVN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kU3R5bGVkIik7CiAK
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh0ZiwgZmFsc2UpOworICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh1bnN0eWxlZCwgZmFsc2UpOwor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZChzdHlsZWQsIGZh
bHNlKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENvbG9ycyBzaG91bGQgYmUgcmVzdG9yZWQu
Ci0gICAgICAgIGNvbXB1dGVkU3R5bGUgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlKHRmKTsKLSAgICAgICAgaWYgKGNvbXB1dGVkU3R5bGUuY29sb3IgIT0gb3JpZ2luYWxG
b3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdGb3JlZ3JvdW5kIGNvbG9yIGRp
ZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZS5iYWNrZ3JvdW5kQ29sb3IgIT0g
b3JpZ2luYWxCYWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdCYWNrZ3JvdW5k
IGNvbG9yIGRpZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3RQYXNzZWQoJycpOworICAgICAgICBj
b21wdXRlZFN0eWxlVW5zdHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHVuc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVN0eWxlZCA9IGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkKTsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCJjb21wdXRlZFN0eWxlVW5zdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kVW5zdHls
ZWQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlVW5zdHlsZWQuYmFja2dy
b3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFVuc3R5bGVkIik7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiY29tcHV0ZWRTdHlsZVN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRT
dHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlU3R5bGVkLmJhY2tn
cm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWQiKTsKICAgICB9CiAgICAgPC9z
Y3JpcHQ+CiAKICAgICA8c3R5bGU+Ci0gICAgI3RmIHsKKyAgICAjc3R5bGVkIHsKICAgICAgIGNv
bG9yOiAjRkZGRkZGOwogICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsKICAgICB9CkBA
IC01OCw3ICs1Niw4IEBACiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CiAgICAgVGhpcyB0ZXN0cyB0
aGF0IGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIHByb3Blcmx5IGNoYW5nZSBmb3Ig
YXV0b2ZpbGxlZCBpbnB1dHMuICBJdCBjYW4gb25seSBiZSBydW4gdXNpbmcgRHVtcFJlbmRlclRy
ZWUuPGJyPgogICAgIDxmb3JtIG5hbWU9ImZtIj4KLSAgICAgICAgPGlucHV0IHR5cGU9InRleHQi
IGlkPSJ0ZiIgdmFsdWU9IkZpZWxkIHZhbHVlIiAvPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9InVuc3R5bGVkIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CisgICAgICAgIDxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0ic3R5bGVkIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CiAgICAgPC9mb3Jt
PgogICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFl
NzRjZDYzZDJlYzQyMmNhMjkxMTY5NDIwYmZlZjdkYjBhMjMxYmQuLjE5MWJmZDA3OTRlY2I4ZTcw
YTUzMjk0MzdkOThkOWRkNDEzZGU2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
MS0wOC0xMCAgSWx5YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFsbG93IHNpdGUgYXV0aG9ycyB0byBvdmVycmlkZSBhdXRvZmlsbGVkIGZpZWxkcycgY29sb3Jz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9o
dG1sLmNzczoKKyAgICAgICAgKGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwpOiBSZW1vdmUgIWltcG9y
dGFudCBkZWNsYXJhdGlvbnMuCisKIDIwMTEtMDgtMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGF1dG8tY29tcGxldGlvbiBm
b3Igc3RyaW5nIGxpdGVyYWxzIGRvZXNuJ3Qgd29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4IGM1MDAx
NGZlMTI2ZWZiNzQ2MTg2NDg5NzUyNTQ0YzE2OTc2Mjk4NWMuLjc0YThkZGVhODgzNzg0N2Y4M2Fk
YmY4MGFlMzViZGM0NDFkNTBmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1s
LmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTUzMyw5ICs1MzMsOSBA
QCBpbnB1dFt0eXBlPSJmaWxlIl0gewogfQogCiBpbnB1dDotd2Via2l0LWF1dG9maWxsIHsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGRkJEICFpbXBvcnRhbnQ7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTpub25lICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGRkJEOworICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsK
KyAgICBjb2xvcjogIzAwMDAwMDsKIH0KIAogaW5wdXRbdHlwZT0icmFkaW8iXSwgaW5wdXRbdHlw
ZT0iY2hlY2tib3giXSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103579</attachid>
            <date>2011-08-10 23:10:25 -0700</date>
            <delta_ts>2012-03-30 20:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66032-20110810231024.patch</filename>
            <type>text/plain</type>
            <size>7843</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNWM0YjBjNmYyMjU2MTZkNDU3NjIw
MWJmMDU2YjMxYjkxY2QwNGNmLi4zOGY2MTgxYzEzODZlOTg1MTM4OGUxMGM1NjBlYjE4YWQ4Y2Mz
MmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMTAgIElseWEgU2hlcm1hbiAgPGlz
aGVybWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBzaXRlIGF1dGhvcnMgdG8gb3Zl
cnJpZGUgYXV0b2ZpbGxlZCBmaWVsZHMnIGNvbG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMyCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ2NTQzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWF1dG9m
aWxsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxl
ZC5odG1sOgorCiAyMDExLTA4LTEwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhdXRvLWNvbXBsZXRpb24gZm9yIHN0cmluZyBs
aXRlcmFscyBkb2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtYXV0b2ZpbGxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LWF1dG9maWxsZWQtZXhwZWN0ZWQudHh0CmluZGV4IDMyYzI1MGYzYWU5MjVmN2M4NjBlMGY2
ZmU5ZWYxYzI3ODg3YTIwNWQuLjFmM2E1ODE3N2MzMTBhYTViYjcyOTQxM2MwZWM0NWQ3ZGZmOTBj
ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVk
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDExIEBACiBUaGlzIHRlc3RzIHRoYXQgZm9yZWdyb3Vu
ZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgcHJvcGVybHkgY2hhbmdlIGZvciBhdXRvZmlsbGVkIGlu
cHV0cy4gSXQgY2FuIG9ubHkgYmUgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlLgotCi1QQVNTIAor
ICAKK1BBU1MgY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3Vu
ZFVuc3R5bGVkIGlzIHRydWUKK1BBU1MgY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmJhY2tncm91bmRD
b2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCBpcyBmYWxzZQorUEFTUyBjb21wdXRl
ZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCBpcyB0cnVlCitQ
QVNTIGNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dy
b3VuZFN0eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5jb2xvciA9PSBv
cmlnaW5hbEZvcmVncm91bmRVbnN0eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVVbnN0
eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQgaXMgdHJ1
ZQorUEFTUyBjb21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0
eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09
IG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0bWwKaW5kZXggNjFhZTM2MDIwYWEwOGU3MGRkNGRlNTBi
NjgxNTNhYWZjYjRiYzE0Yi4uOTEwMzQyODRhOTU3YjEwZjg5N2U1MDU0YWM4YjYxNzZmNTM4Nzhi
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0bWwKQEAg
LTcsNDkgKzcsNDcgQEAKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciB0ZiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZicpOwotICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUodGYpOwotICAgICAgICB2YXIgb3JpZ2luYWxGb3JlZ3JvdW5k
ID0gY29tcHV0ZWRTdHlsZS5jb2xvcjsKLSAgICAgICAgdmFyIG9yaWdpbmFsQmFja2dyb3VuZCA9
IGNvbXB1dGVkU3R5bGUuYmFja2dyb3VuZENvbG9yOworICAgICAgICB2YXIgdW5zdHlsZWQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5zdHlsZWQnKTsKKyAgICAgICAgdmFyIHN0eWxlZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdHlsZWQnKTsKKyAgICAgICAgY29tcHV0ZWRTdHls
ZVVuc3R5bGVkID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh1bnN0eWxl
ZCk7CisgICAgICAgIG9yaWdpbmFsRm9yZWdyb3VuZFVuc3R5bGVkID0gY29tcHV0ZWRTdHlsZVVu
c3R5bGVkLmNvbG9yOworICAgICAgICBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCA9IGNvbXB1
dGVkU3R5bGVVbnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgIGNvbXB1dGVkU3R5bGVT
dHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHN0eWxlZCk7Cisg
ICAgICAgIG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCA9IGNvbXB1dGVkU3R5bGVTdHlsZWQuY29s
b3I7CisgICAgICAgIG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCA9IGNvbXB1dGVkU3R5bGVTdHls
ZWQuYmFja2dyb3VuZENvbG9yOwogCiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxsZWQo
dGYsIHRydWUpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxl
ZCh1bnN0eWxlZCwgdHJ1ZSk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRB
dXRvZmlsbGVkKHN0eWxlZCwgdHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBCb3RoIHRo
ZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycyBzaG91bGQgY2hhbmdlLgotICAgICAg
ICBjb21wdXRlZFN0eWxlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0
Zik7Ci0gICAgICAgIHZhciBhdXRvZmlsbGVkRm9yZWdyb3VuZCA9IGNvbXB1dGVkU3R5bGUuY29s
b3I7Ci0gICAgICAgIHZhciBhdXRvZmlsbGVkQmFja2dyb3VuZCA9IGNvbXB1dGVkU3R5bGUuYmFj
a2dyb3VuZENvbG9yOwotICAgICAgICBpZiAoYXV0b2ZpbGxlZEZvcmVncm91bmQgPT0gb3JpZ2lu
YWxGb3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdGb3JlZ3JvdW5kIGNvbG9y
IGRpZCBub3QgY2hhbmdlIHdoZW4gYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAoYXV0b2ZpbGxlZEJhY2tncm91bmQgPT0gb3JpZ2luYWxC
YWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdCYWNrZ3JvdW5kIGNvbG9yIGRp
ZCBub3QgY2hhbmdlIHdoZW4gYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQorICAgICAgICAvLyBGb3IgdGhlIHVuc3R5bGVkIGVsZW1lbnQsIHRoZSBiYWNrZ3Jv
dW5kIGNvbG9yIHNob3VsZCBjaGFuZ2UuICBUaGUgZm9yZWdyb3VuZCBjb2xvciBzaG91bGQgbm90
IGNoYW5nZSwKKyAgICAgICAgLy8gYXMgdGhlIGRlZmF1bHQgZm9yZWdyb3VuZCBjb2xvciBmb3Ig
YW4gYXV0b2ZpbGxlZCBpbnB1dCBpcyB0aGUgc2FtZSBhcyBmb3IgYSBub24tYXV0b2ZpbGxlZCBp
bnB1dC4KKyAgICAgICAgLy8gRm9yIHRoZSBzdHlsZWQgZWxlbWVudCwgdGhlIGF1dGhvci1zcGVj
aWZpZWQgc3R5bGUgc2hvdWxkIHRha2UgcHJlY2VkZW5jZSwgc28gbmVpdGhlciBjb2xvciBzaG91
bGQgY2hhbmdlLgorICAgICAgICBjb21wdXRlZFN0eWxlVW5zdHlsZWQgPSBkb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHVuc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHls
ZVN0eWxlZCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkKTsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlVW5zdHlsZWQuY29sb3IgPT0gb3Jp
Z2luYWxGb3JlZ3JvdW5kVW5zdHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY29tcHV0
ZWRTdHlsZVVuc3R5bGVkLmJhY2tncm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRVbnN0
eWxlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVTdHlsZWQuY29sb3Ig
PT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVkIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiY29t
cHV0ZWRTdHlsZVN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kU3R5
bGVkIik7CiAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh0ZiwgZmFsc2UpOwor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh1bnN0eWxlZCwg
ZmFsc2UpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZChz
dHlsZWQsIGZhbHNlKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENvbG9ycyBzaG91bGQgYmUg
cmVzdG9yZWQuCi0gICAgICAgIGNvbXB1dGVkU3R5bGUgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHRmKTsKLSAgICAgICAgaWYgKGNvbXB1dGVkU3R5bGUuY29sb3IgIT0g
b3JpZ2luYWxGb3JlZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdGb3JlZ3JvdW5k
IGNvbG9yIGRpZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2ZpbGxlZC4nKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZS5iYWNrZ3JvdW5k
Q29sb3IgIT0gb3JpZ2luYWxCYWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdC
YWNrZ3JvdW5kIGNvbG9yIGRpZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2ZpbGxlZC4nKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRlc3RQYXNzZWQoJycpOwor
ICAgICAgICBjb21wdXRlZFN0eWxlVW5zdHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRD
b21wdXRlZFN0eWxlKHVuc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVN0eWxlZCA9IGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkKTsKKyAgICAgICAgc2hv
dWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlVW5zdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3Jv
dW5kVW5zdHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlVW5zdHls
ZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFVuc3R5bGVkIik7CisgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHlsZVN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZv
cmVncm91bmRTdHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlU3R5
bGVkLmJhY2tncm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWQiKTsKICAgICB9
CiAgICAgPC9zY3JpcHQ+CiAKICAgICA8c3R5bGU+Ci0gICAgI3RmIHsKKyAgICAjc3R5bGVkIHsK
ICAgICAgIGNvbG9yOiAjRkZGRkZGOwogICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsK
ICAgICB9CkBAIC01OCw3ICs1Niw4IEBACiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CiAgICAgVGhp
cyB0ZXN0cyB0aGF0IGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIHByb3Blcmx5IGNo
YW5nZSBmb3IgYXV0b2ZpbGxlZCBpbnB1dHMuICBJdCBjYW4gb25seSBiZSBydW4gdXNpbmcgRHVt
cFJlbmRlclRyZWUuPGJyPgogICAgIDxmb3JtIG5hbWU9ImZtIj4KLSAgICAgICAgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJ0ZiIgdmFsdWU9IkZpZWxkIHZhbHVlIiAvPgorICAgICAgICA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InVuc3R5bGVkIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CisgICAgICAg
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3R5bGVkIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CiAg
ICAgPC9mb3JtPgogICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGFlNzRjZDYzZDJlYzQyMmNhMjkxMTY5NDIwYmZlZjdkYjBhMjMxYmQuLjEwYzM4MTE2
OGMwYmE0MDEwMWIzYmU5MTlhNWNkMzRlZmU1NjE2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wOC0xMCAgSWx5YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEFsbG93IHNpdGUgYXV0aG9ycyB0byBvdmVycmlkZSBhdXRvZmlsbGVkIGZpZWxk
cycgY29sb3JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjYwMzIKKyAgICAgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vl
cy9kZXRhaWw/aWQ9NDY1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGNzcy9odG1sLmNzczoKKyAgICAgICAgKGlucHV0Oi13ZWJraXQtYXV0b2Zp
bGwpOiBSZW1vdmUgIWltcG9ydGFudCBkZWNsYXJhdGlvbnMuCisKIDIwMTEtMDgtMTAgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGF1dG8tY29tcGxldGlvbiBmb3Igc3RyaW5nIGxpdGVyYWxzIGRvZXNuJ3Qgd29yawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0
bWwuY3NzCmluZGV4IGM1MDAxNGZlMTI2ZWZiNzQ2MTg2NDg5NzUyNTQ0YzE2OTc2Mjk4NWMuLjc0
YThkZGVhODgzNzg0N2Y4M2FkYmY4MGFlMzViZGM0NDFkNTBmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MK
QEAgLTUzMyw5ICs1MzMsOSBAQCBpbnB1dFt0eXBlPSJmaWxlIl0gewogfQogCiBpbnB1dDotd2Vi
a2l0LWF1dG9maWxsIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGRkJEICFpbXBvcnRhbnQ7
Ci0gICAgYmFja2dyb3VuZC1pbWFnZTpub25lICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6ICMwMDAw
MDAgIWltcG9ydGFudDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGRkJEOworICAgIGJhY2tn
cm91bmQtaW1hZ2U6bm9uZTsKKyAgICBjb2xvcjogIzAwMDAwMDsKIH0KIAogaW5wdXRbdHlwZT0i
cmFkaW8iXSwgaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134935</attachid>
            <date>2012-03-30 20:33:07 -0700</date>
            <delta_ts>2012-04-30 18:17:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66032-20120330203305.patch</filename>
            <type>text/plain</type>
            <size>9731</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzEyMWM2MTljZGMwOTdj
ZmNlNmI3ZDBhNDEwNGQ4MDU2YTIxMDU1Yi4uOWEzYjQ3YjZiYWY4NTlkOWQ2Zjc0MjZlOGY1Yjkz
NmNlMzkwNDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTMwICBJbHlh
IFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWxsb3cgc2l0ZSBh
dXRob3JzIHRvIG92ZXJyaWRlIGF1dG9maWxsZWQgZmllbGRzJyBjb2xvcnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAzMgorICAgICAgICBodHRw
Oi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NjU0MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL2h0bWwu
Y3NzOgorICAgICAgICAoaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCk6IFJlbW92ZSAhaW1wb3J0YW50
IGRlY2xhcmF0aW9ucy4KKwogMjAxMi0wMy0zMCAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmFjZSBjb25kaXRpb24gY2F1c2VzIHZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uIHRvIGNvbW1pdCBhZnRlciBvbmJsb2NrZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1s
LmNzcwppbmRleCBjMTA3YmQ4MDRjYTlkMTFjOWVmY2IzM2VjOGQyOTk0NWVjYWE1MTExLi44OWE0
YmNlNjMxMjE4M2NkZjdlZjFjYjNkY2RlOGRmYTUzZjI3MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBA
IC01MzMsOSArNTMzLDkgQEAgaW5wdXRbdHlwZT0iZmlsZSJdIHsKIH0KIAogaW5wdXQ6LXdlYmtp
dC1hdXRvZmlsbCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkZCRCAhaW1wb3J0YW50Owot
ICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZSAhaW1wb3J0YW50OwotICAgIGNvbG9yOiAjMDAwMDAw
ICFpbXBvcnRhbnQ7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkZCRDsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiBub25lOworICAgIGNvbG9yOiAjMDAwMDAwOwogfQogCiBpbnB1dFt0eXBlPSJy
YWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YWUyYTI4OWExY2Q1YmJk
YzJkMDNjOWRkMjM1MjYwNDg1ODA5ZWJmLi4wMGY1Y2UwNDNkZjM4YjM0YmQwYmQ2NzRkOWZiZTBi
Y2I3OGRmNDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMzAgIElseWEgU2hlcm1h
biAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBzaXRlIGF1dGhvcnMg
dG8gb3ZlcnJpZGUgYXV0b2ZpbGxlZCBmaWVsZHMnIGNvbG9ycy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMyCisgICAgICAgIGh0dHA6Ly9jb2Rl
Lmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ2NTQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LWF1dG9maWxsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtYXV0
b2ZpbGxlZC5odG1sOgorCiAyMDEyLTAzLTMwICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSYWNlIGNvbmRpdGlvbiBjYXVzZXMgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb24gdG8gY29tbWl0IGFmdGVyIG9uYmxvY2tlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC1leHBlY3RlZC50eHQKaW5k
ZXggMzJjMjUwZjNhZTkyNWY3Yzg2MGUwZjZmZTllZjFjMjc4ODdhMjA1ZC4uNjEzY2U4YWYxZDdh
OTU1NzAzOTZjNmQ3ZDBlOWEwODA3NzdmNTIyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTUgQEAK
IFRoaXMgdGVzdHMgdGhhdCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycyBwcm9wZXJs
eSBjaGFuZ2UgZm9yIGF1dG9maWxsZWQgaW5wdXRzLiBJdCBjYW4gb25seSBiZSBydW4gdXNpbmcg
RHVtcFJlbmRlclRyZWUuCi0KLVBBU1MgCisgICAgCitQQVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxl
ZC5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRVbnN0eWxlZCBpcyB0cnVlCitQQVNTIGNvbXB1
dGVkU3R5bGVVbnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5z
dHlsZWQgaXMgZmFsc2UKK1BBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZC5jb2xvciA9PSBvcmlnaW5h
bEZvcmVncm91bmRTdHlsZWQgaXMgdHJ1ZQorUEFTUyBjb21wdXRlZFN0eWxlU3R5bGVkLmJhY2tn
cm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWQgaXMgdHJ1ZQorUEFTUyBjb21w
dXRlZFN0eWxlU3R5bGVkV2l0aFNlbGVjdG9yLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0
eWxlZFdpdGhTZWxlY3RvciBpcyBmYWxzZQorUEFTUyBjb21wdXRlZFN0eWxlU3R5bGVkV2l0aFNl
bGVjdG9yLmJhY2tncm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWRXaXRoU2Vs
ZWN0b3IgaXMgZmFsc2UKK1BBU1MgY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmNvbG9yID09IG9yaWdp
bmFsRm9yZWdyb3VuZFVuc3R5bGVkIGlzIHRydWUKK1BBU1MgY29tcHV0ZWRTdHlsZVVuc3R5bGVk
LmJhY2tncm91bmRDb2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCBpcyB0cnVlCitQ
QVNTIGNvbXB1dGVkU3R5bGVTdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVk
IGlzIHRydWUKK1BBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3Jp
Z2luYWxCYWNrZ3JvdW5kU3R5bGVkIGlzIHRydWUKK1BBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZFdp
dGhTZWxlY3Rvci5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRTdHlsZWRXaXRoU2VsZWN0b3Ig
aXMgdHJ1ZQorUEFTUyBjb21wdXRlZFN0eWxlU3R5bGVkV2l0aFNlbGVjdG9yLmJhY2tncm91bmRD
b2xvciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWRXaXRoU2VsZWN0b3IgaXMgdHJ1ZQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC5odG1sCmluZGV4IDYxYWUz
NjAyMGFhMDhlNzBkZDRkZTUwYjY4MTUzYWFmY2I0YmMxNGIuLmQ0ZGQ1ZWI2MTI2OGExNTY4OTVm
OTE3NGM4NWQzNzc0MzUzZjBhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtYXV0b2ZpbGxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
YXV0b2ZpbGxlZC5odG1sCkBAIC03LDU4ICs3LDc2IEBACiAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgdGYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGYnKTsKLSAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUg
PSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRmKTsKLSAgICAgICAgdmFy
IG9yaWdpbmFsRm9yZWdyb3VuZCA9IGNvbXB1dGVkU3R5bGUuY29sb3I7Ci0gICAgICAgIHZhciBv
cmlnaW5hbEJhY2tncm91bmQgPSBjb21wdXRlZFN0eWxlLmJhY2tncm91bmRDb2xvcjsKKyAgICAg
ICAgdmFyIHVuc3R5bGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vuc3R5bGVkJyk7Cisg
ICAgICAgIHZhciBzdHlsZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3R5bGVkJyk7Cisg
ICAgICAgIHZhciBzdHlsZWRXaXRoU2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3R5bGVkV2l0aFNlbGVjdG9yJyk7CisgICAgICAgIGNvbXB1dGVkU3R5bGVVbnN0eWxlZCA9IGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodW5zdHlsZWQpOworICAgICAgICBv
cmlnaW5hbEZvcmVncm91bmRVbnN0eWxlZCA9IGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5jb2xvcjsK
KyAgICAgICAgb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQgPSBjb21wdXRlZFN0eWxlVW5zdHls
ZWQuYmFja2dyb3VuZENvbG9yOworICAgICAgICBjb21wdXRlZFN0eWxlU3R5bGVkID0gZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdHlsZWQpOworICAgICAgICBvcmlnaW5h
bEZvcmVncm91bmRTdHlsZWQgPSBjb21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yOworICAgICAgICBv
cmlnaW5hbEJhY2tncm91bmRTdHlsZWQgPSBjb21wdXRlZFN0eWxlU3R5bGVkLmJhY2tncm91bmRD
b2xvcjsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3RvciA9IGRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkV2l0aFNlbGVjdG9yKTsKKyAgICAg
ICAgb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVkV2l0aFNlbGVjdG9yID0gY29tcHV0ZWRTdHlsZVN0
eWxlZFdpdGhTZWxlY3Rvci5jb2xvcjsKKyAgICAgICAgb3JpZ2luYWxCYWNrZ3JvdW5kU3R5bGVk
V2l0aFNlbGVjdG9yID0gY29tcHV0ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5k
Q29sb3I7CiAKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZCh0ZiwgdHJ1ZSk7Cisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRvZmlsbGVkKHVuc3R5bGVkLCB0
cnVlKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxsZWQoc3R5
bGVkLCB0cnVlKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxs
ZWQoc3R5bGVkV2l0aFNlbGVjdG9yLCB0cnVlKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEJv
dGggdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIHNob3VsZCBjaGFuZ2UuCi0g
ICAgICAgIGNvbXB1dGVkU3R5bGUgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHRmKTsKLSAgICAgICAgdmFyIGF1dG9maWxsZWRGb3JlZ3JvdW5kID0gY29tcHV0ZWRTdHls
ZS5jb2xvcjsKLSAgICAgICAgdmFyIGF1dG9maWxsZWRCYWNrZ3JvdW5kID0gY29tcHV0ZWRTdHls
ZS5iYWNrZ3JvdW5kQ29sb3I7Ci0gICAgICAgIGlmIChhdXRvZmlsbGVkRm9yZWdyb3VuZCA9PSBv
cmlnaW5hbEZvcmVncm91bmQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0ZvcmVncm91bmQg
Y29sb3IgZGlkIG5vdCBjaGFuZ2Ugd2hlbiBhdXRvZmlsbGVkLicpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChhdXRvZmlsbGVkQmFja2dyb3VuZCA9PSBvcmln
aW5hbEJhY2tncm91bmQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0JhY2tncm91bmQgY29s
b3IgZGlkIG5vdCBjaGFuZ2Ugd2hlbiBhdXRvZmlsbGVkLicpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9CisgICAgICAgIC8vIEZvciB0aGUgdW5zdHlsZWQgZWxlbWVudCwgdGhlIGJh
Y2tncm91bmQgY29sb3Igc2hvdWxkIGNoYW5nZS4gIFRoZSBmb3JlZ3JvdW5kIGNvbG9yIHNob3Vs
ZCBub3QgY2hhbmdlLAorICAgICAgICAvLyBhcyB0aGUgZGVmYXVsdCBmb3JlZ3JvdW5kIGNvbG9y
IGZvciBhbiBhdXRvZmlsbGVkIGlucHV0IGlzIHRoZSBzYW1lIGFzIGZvciBhIG5vbi1hdXRvZmls
bGVkIGlucHV0LgorICAgICAgICAvLyBGb3IgdGhlIHN0eWxlZCBlbGVtZW50LCB0aGUgYXV0aG9y
LXNwZWNpZmllZCBzdHlsZSBzaG91bGQgdGFrZSBwcmVjZWRlbmNlLCBzbyBuZWl0aGVyIGNvbG9y
IHNob3VsZCBjaGFuZ2UuCisgICAgICAgIC8vIEZvciB0aGUgZWxlbWVudCBzdHlsZWQgd2l0aCB0
aGUgOi13ZWJraXQtYXV0b2ZpbGwgc2VsZWN0b3IsIGJvdGggdGhlIGZvcmVncm91bmQgYW5kIHRo
ZSBiYWNrZ3JvdW5kIGNvbG9ycworICAgICAgICAvLyBzaG91bGQgY2hhbmdlLgorICAgICAgICBj
b21wdXRlZFN0eWxlVW5zdHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHVuc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHlsZVN0eWxlZCA9IGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3R5bGVkKTsKKyAgICAgICAgY29tcHV0ZWRTdHls
ZVN0eWxlZFdpdGhTZWxlY3RvciA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoc3R5bGVkV2l0aFNlbGVjdG9yKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0
eWxlVW5zdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kVW5zdHlsZWQiKTsKKyAgICAg
ICAgc2hvdWxkQmVGYWxzZSgiY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmJhY2tncm91bmRDb2xvciA9
PSBvcmlnaW5hbEJhY2tncm91bmRVbnN0eWxlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoImNv
bXB1dGVkU3R5bGVTdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVkIik7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHlsZVN0eWxlZC5iYWNrZ3JvdW5kQ29sb3Ig
PT0gb3JpZ2luYWxCYWNrZ3JvdW5kU3R5bGVkIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoImNv
bXB1dGVkU3R5bGVTdHlsZWRXaXRoU2VsZWN0b3IuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5k
U3R5bGVkV2l0aFNlbGVjdG9yIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoImNvbXB1dGVkU3R5
bGVTdHlsZWRXaXRoU2VsZWN0b3IuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3Vu
ZFN0eWxlZFdpdGhTZWxlY3RvciIpOwogCiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxs
ZWQodGYsIGZhbHNlKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9m
aWxsZWQodW5zdHlsZWQsIGZhbHNlKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEF1dG9maWxsZWQoc3R5bGVkLCBmYWxzZSk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRBdXRvZmlsbGVkKHN0eWxlZFdpdGhTZWxlY3RvciwgZmFsc2UpOwogICAgICAg
ICB9CiAKICAgICAgICAgLy8gQ29sb3JzIHNob3VsZCBiZSByZXN0b3JlZC4KLSAgICAgICAgY29t
cHV0ZWRTdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGYpOwot
ICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZS5jb2xvciAhPSBvcmlnaW5hbEZvcmVncm91bmQpIHsK
LSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0ZvcmVncm91bmQgY29sb3IgZGlkIG5vdCByZXZlcnQg
d2hlbiB1bi1hdXRvZmlsbGVkLicpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmJhY2tncm91bmRDb2xvciAhPSBvcmlnaW5hbEJhY2tn
cm91bmQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0JhY2tncm91bmQgY29sb3IgZGlkIG5v
dCByZXZlcnQgd2hlbiB1bi1hdXRvZmlsbGVkLicpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGVzdFBhc3NlZCgnJyk7CisgICAgICAgIGNvbXB1dGVkU3R5bGVV
bnN0eWxlZCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodW5zdHlsZWQp
OworICAgICAgICBjb21wdXRlZFN0eWxlU3R5bGVkID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShzdHlsZWQpOworICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5
bGVVbnN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRVbnN0eWxlZCIpOworICAgICAg
ICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVVbnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0g
b3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJjb21w
dXRlZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCIpOworICAg
ICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09
IG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCIpOworICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1
dGVkU3R5bGVTdHlsZWRXaXRoU2VsZWN0b3IuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5
bGVkV2l0aFNlbGVjdG9yIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHlsZVN0
eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kU3R5
bGVkV2l0aFNlbGVjdG9yIik7CiAgICAgfQogICAgIDwvc2NyaXB0PgogCiAgICAgPHN0eWxlPgot
ICAgICN0ZiB7Ci0gICAgICBjb2xvcjogI0ZGRkZGRjsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6
ICNGRkZGRkY7CisgICAgI3N0eWxlZCB7CisgICAgICBjb2xvcjogIzAwRkYwMDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6ICMwMEZGMDA7CisgICAgfQorICAgIAorICAgICNzdHlsZWRXaXRoU2Vs
ZWN0b3I6LXdlYmtpdC1hdXRvZmlsbCB7CisgICAgICBjb2xvcjogIzAwRkYwMDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6ICMwMEZGMDA7CiAgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+CiA8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CiAgICAgVGhpcyB0ZXN0cyB0aGF0IGZvcmVncm91bmQgYW5k
IGJhY2tncm91bmQgY29sb3JzIHByb3Blcmx5IGNoYW5nZSBmb3IgYXV0b2ZpbGxlZCBpbnB1dHMu
ICBJdCBjYW4gb25seSBiZSBydW4gdXNpbmcgRHVtcFJlbmRlclRyZWUuPGJyPgogICAgIDxmb3Jt
IG5hbWU9ImZtIj4KLSAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZiIgdmFsdWU9IkZp
ZWxkIHZhbHVlIiAvPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InVuc3R5bGVkIiB2
YWx1ZT0iRmllbGQgdmFsdWUiIC8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3R5
bGVkIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0ic3R5bGVkV2l0aFNlbGVjdG9yIiB2YWx1ZT0iRmllbGQgdmFsdWUiIC8+CiAgICAgPC9mb3Jt
PgogICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139562</attachid>
            <date>2012-04-30 18:17:41 -0700</date>
            <delta_ts>2012-04-30 20:21:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66032-20120430181740.patch</filename>
            <type>text/plain</type>
            <size>9894</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4MmNlMjdiODgyYjIw
ZWYzYTE4NWViMDYxNDgzMTAzN2M4YzNjZi4uMDQwM2ZmMDAyYTRhMDM0Yjk4MDRjNzU3OTdkMGU0
ZWI5ZjliOTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTMwICBJbHlh
IFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjExMzUxMS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTEzNTExCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjAzMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUxNTAKKworICAgICAgICBSZWdyZXNzaW9uOiBNYW55IGF1dG9maWxsZWQgZm9ybSBmaWVs
ZHMgbGFjayB0aGUgZGVmYXVsdAorICAgICAgICBhdXRvZmlsbCBiYWNrZ3JvdW5kIGV2ZW4gd2hl
biBhdXRob3JzIGRvbuKAmXQgb3ZlcnJpZGUgdGhlCisgICAgICAgIGF1dG9maWxsIGNvbG9ycwor
CisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAoaW5wdXQ6LXdlYmtpdC1hdXRvZmls
bCk6IFJlc3RvcmUgIWltcG9ydGFudCBtb2RpZmllcnMKKwogMjAxMi0wNC0zMCAgT2xpdmVyIEh1
bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhcmRlbiBhcml0aG1ldGljIGluIElt
YWdlQnVmZmVyRGF0YUNHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3Mg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5kZXggYzdkNTMxNzIyMjU3OTU1NjdiM2Q4
MjE3MjhkOGY0MDBmMWMzNjU3YS4uNTljNDdiMGExN2Q2YzVhYmU0Mzk5OWY3MGQ1YTkyMDU3M2Q3
Y2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtNTMyLDkgKzUzMiw5IEBAIGlucHV0W3R5cGU9ImZp
bGUiXSB7CiB9CiAKIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwgewotICAgIGJhY2tncm91bmQtY29s
b3I6ICNGQUZGQkQ7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKLSAgICBjb2xvcjogIzAw
MDAwMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGRkJEICFpbXBvcnRhbnQ7CisgICAgYmFj
a2dyb3VuZC1pbWFnZTpub25lICFpbXBvcnRhbnQ7CisgICAgY29sb3I6ICMwMDAwMDAgIWltcG9y
dGFudDsKIH0KIAogaW5wdXRbdHlwZT0icmFkaW8iXSwgaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZjg1OTlhOWY1OGUyY2ZkODdlODAxZjYwNmVmMTZkMjNiOGEzYzUxOS4uZTBjNjRl
NTI0Y2YzZDcxNmUxMGUwOGU5ZDZlNzk4N2M5ZWU2OWVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTA0LTMwICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMzUxMS4KKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTEzNTExCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAzMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxNTAKKworICAgICAgICBSZWdyZXNzaW9uOiBNYW55IGF1
dG9maWxsZWQgZm9ybSBmaWVsZHMgbGFjayB0aGUgZGVmYXVsdAorICAgICAgICBhdXRvZmlsbCBi
YWNrZ3JvdW5kIGV2ZW4gd2hlbiBhdXRob3JzIGRvbuKAmXQgb3ZlcnJpZGUgdGhlCisgICAgICAg
IGF1dG9maWxsIGNvbG9ycworCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVk
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQuaHRt
bDoKKwogMjAxMi0wNC0zMCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXV0b2ZpbGxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQtZXhwZWN0ZWQudHh0CmluZGV4IDYxM2Nl
OGFmMWQ3YTk1NTcwMzk2YzZkN2QwZTlhMDgwNzc3ZjUyMjAuLjMyYzI1MGYzYWU5MjVmN2M4NjBl
MGY2ZmU5ZWYxYzI3ODg3YTIwNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtYXV0b2ZpbGxlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1hdXRvZmlsbGVkLWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSw0IEBACiBUaGlzIHRl
c3RzIHRoYXQgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgcHJvcGVybHkgY2hhbmdl
IGZvciBhdXRvZmlsbGVkIGlucHV0cy4gSXQgY2FuIG9ubHkgYmUgcnVuIHVzaW5nIER1bXBSZW5k
ZXJUcmVlLgotICAgIAotUEFTUyBjb21wdXRlZFN0eWxlVW5zdHlsZWQuY29sb3IgPT0gb3JpZ2lu
YWxGb3JlZ3JvdW5kVW5zdHlsZWQgaXMgdHJ1ZQotUEFTUyBjb21wdXRlZFN0eWxlVW5zdHlsZWQu
YmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFVuc3R5bGVkIGlzIGZhbHNlCi1Q
QVNTIGNvbXB1dGVkU3R5bGVTdHlsZWQuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVk
IGlzIHRydWUKLVBBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3Jp
Z2luYWxCYWNrZ3JvdW5kU3R5bGVkIGlzIHRydWUKLVBBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZFdp
dGhTZWxlY3Rvci5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRTdHlsZWRXaXRoU2VsZWN0b3Ig
aXMgZmFsc2UKLVBBU1MgY29tcHV0ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5k
Q29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kU3R5bGVkV2l0aFNlbGVjdG9yIGlzIGZhbHNlCi1Q
QVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRVbnN0
eWxlZCBpcyB0cnVlCi1QQVNTIGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3Ig
PT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQgaXMgdHJ1ZQotUEFTUyBjb21wdXRlZFN0eWxl
U3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCBpcyB0cnVlCi1QQVNTIGNv
bXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFN0
eWxlZCBpcyB0cnVlCi1QQVNTIGNvbXB1dGVkU3R5bGVTdHlsZWRXaXRoU2VsZWN0b3IuY29sb3Ig
PT0gb3JpZ2luYWxGb3JlZ3JvdW5kU3R5bGVkV2l0aFNlbGVjdG9yIGlzIHRydWUKLVBBU1MgY29t
cHV0ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxC
YWNrZ3JvdW5kU3R5bGVkV2l0aFNlbGVjdG9yIGlzIHRydWUKKworUEFTUyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hdXRvZmlsbGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxsZWQuaHRtbAppbmRleCBkNGRkNWViNjEyNjhh
MTU2ODk1ZjkxNzRjODVkMzc3NDM1M2YwYTg2Li42MWFlMzYwMjBhYTA4ZTcwZGQ0ZGU1MGI2ODE1
M2FhZmNiNGJjMTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1
dG9maWxsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWF1dG9maWxs
ZWQuaHRtbApAQCAtNyw3NiArNyw1OCBAQAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHVuc3R5bGVkID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vuc3R5bGVkJyk7Ci0gICAgICAgIHZhciBzdHlsZWQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3R5bGVkJyk7Ci0gICAgICAgIHZhciBzdHlsZWRXaXRo
U2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3R5bGVkV2l0aFNlbGVjdG9yJyk7
Ci0gICAgICAgIGNvbXB1dGVkU3R5bGVVbnN0eWxlZCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUodW5zdHlsZWQpOwotICAgICAgICBvcmlnaW5hbEZvcmVncm91bmRVbnN0
eWxlZCA9IGNvbXB1dGVkU3R5bGVVbnN0eWxlZC5jb2xvcjsKLSAgICAgICAgb3JpZ2luYWxCYWNr
Z3JvdW5kVW5zdHlsZWQgPSBjb21wdXRlZFN0eWxlVW5zdHlsZWQuYmFja2dyb3VuZENvbG9yOwot
ICAgICAgICBjb21wdXRlZFN0eWxlU3R5bGVkID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29t
cHV0ZWRTdHlsZShzdHlsZWQpOwotICAgICAgICBvcmlnaW5hbEZvcmVncm91bmRTdHlsZWQgPSBj
b21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yOwotICAgICAgICBvcmlnaW5hbEJhY2tncm91bmRTdHls
ZWQgPSBjb21wdXRlZFN0eWxlU3R5bGVkLmJhY2tncm91bmRDb2xvcjsKLSAgICAgICAgY29tcHV0
ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3RvciA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUoc3R5bGVkV2l0aFNlbGVjdG9yKTsKLSAgICAgICAgb3JpZ2luYWxGb3JlZ3JvdW5k
U3R5bGVkV2l0aFNlbGVjdG9yID0gY29tcHV0ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3Rvci5jb2xv
cjsKLSAgICAgICAgb3JpZ2luYWxCYWNrZ3JvdW5kU3R5bGVkV2l0aFNlbGVjdG9yID0gY29tcHV0
ZWRTdHlsZVN0eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgIHZhciB0
ZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZicpOworICAgICAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGYpOworICAgICAg
ICB2YXIgb3JpZ2luYWxGb3JlZ3JvdW5kID0gY29tcHV0ZWRTdHlsZS5jb2xvcjsKKyAgICAgICAg
dmFyIG9yaWdpbmFsQmFja2dyb3VuZCA9IGNvbXB1dGVkU3R5bGUuYmFja2dyb3VuZENvbG9yOwog
CiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxsZWQodW5zdHlsZWQsIHRydWUpOwotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZChzdHlsZWQsIHRydWUp
OwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b2ZpbGxlZChzdHlsZWRX
aXRoU2VsZWN0b3IsIHRydWUpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
QXV0b2ZpbGxlZCh0ZiwgdHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBGb3IgdGhlIHVu
c3R5bGVkIGVsZW1lbnQsIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBjaGFuZ2UuICBUaGUg
Zm9yZWdyb3VuZCBjb2xvciBzaG91bGQgbm90IGNoYW5nZSwKLSAgICAgICAgLy8gYXMgdGhlIGRl
ZmF1bHQgZm9yZWdyb3VuZCBjb2xvciBmb3IgYW4gYXV0b2ZpbGxlZCBpbnB1dCBpcyB0aGUgc2Ft
ZSBhcyBmb3IgYSBub24tYXV0b2ZpbGxlZCBpbnB1dC4KLSAgICAgICAgLy8gRm9yIHRoZSBzdHls
ZWQgZWxlbWVudCwgdGhlIGF1dGhvci1zcGVjaWZpZWQgc3R5bGUgc2hvdWxkIHRha2UgcHJlY2Vk
ZW5jZSwgc28gbmVpdGhlciBjb2xvciBzaG91bGQgY2hhbmdlLgotICAgICAgICAvLyBGb3IgdGhl
IGVsZW1lbnQgc3R5bGVkIHdpdGggdGhlIDotd2Via2l0LWF1dG9maWxsIHNlbGVjdG9yLCBib3Ro
IHRoZSBmb3JlZ3JvdW5kIGFuZCB0aGUgYmFja2dyb3VuZCBjb2xvcnMKLSAgICAgICAgLy8gc2hv
dWxkIGNoYW5nZS4KLSAgICAgICAgY29tcHV0ZWRTdHlsZVVuc3R5bGVkID0gZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh1bnN0eWxlZCk7Ci0gICAgICAgIGNvbXB1dGVkU3R5
bGVTdHlsZWQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHN0eWxlZCk7
Ci0gICAgICAgIGNvbXB1dGVkU3R5bGVTdHlsZWRXaXRoU2VsZWN0b3IgPSBkb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHN0eWxlZFdpdGhTZWxlY3Rvcik7Ci0gICAgICAgIHNo
b3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHlsZVVuc3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdy
b3VuZFVuc3R5bGVkIik7Ci0gICAgICAgIHNob3VsZEJlRmFsc2UoImNvbXB1dGVkU3R5bGVVbnN0
eWxlZC5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQiKTsKLSAg
ICAgICAgc2hvdWxkQmVUcnVlKCJjb21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFs
Rm9yZWdyb3VuZFN0eWxlZCIpOwotICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVT
dHlsZWQuYmFja2dyb3VuZENvbG9yID09IG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCIpOwotICAg
ICAgICBzaG91bGRCZUZhbHNlKCJjb21wdXRlZFN0eWxlU3R5bGVkV2l0aFNlbGVjdG9yLmNvbG9y
ID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZFdpdGhTZWxlY3RvciIpOwotICAgICAgICBzaG91
bGRCZUZhbHNlKCJjb21wdXRlZFN0eWxlU3R5bGVkV2l0aFNlbGVjdG9yLmJhY2tncm91bmRDb2xv
ciA9PSBvcmlnaW5hbEJhY2tncm91bmRTdHlsZWRXaXRoU2VsZWN0b3IiKTsKKyAgICAgICAgLy8g
Qm90aCB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgc2hvdWxkIGNoYW5nZS4K
KyAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVk
U3R5bGUodGYpOworICAgICAgICB2YXIgYXV0b2ZpbGxlZEZvcmVncm91bmQgPSBjb21wdXRlZFN0
eWxlLmNvbG9yOworICAgICAgICB2YXIgYXV0b2ZpbGxlZEJhY2tncm91bmQgPSBjb21wdXRlZFN0
eWxlLmJhY2tncm91bmRDb2xvcjsKKyAgICAgICAgaWYgKGF1dG9maWxsZWRGb3JlZ3JvdW5kID09
IG9yaWdpbmFsRm9yZWdyb3VuZCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgnRm9yZWdyb3Vu
ZCBjb2xvciBkaWQgbm90IGNoYW5nZSB3aGVuIGF1dG9maWxsZWQuJyk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG9maWxsZWRCYWNrZ3JvdW5kID09IG9y
aWdpbmFsQmFja2dyb3VuZCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgnQmFja2dyb3VuZCBj
b2xvciBkaWQgbm90IGNoYW5nZSB3aGVuIGF1dG9maWxsZWQuJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KIAogICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRvZmlsbGVkKHVuc3R5
bGVkLCBmYWxzZSk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRvZmls
bGVkKHN0eWxlZCwgZmFsc2UpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
QXV0b2ZpbGxlZChzdHlsZWRXaXRoU2VsZWN0b3IsIGZhbHNlKTsKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEF1dG9maWxsZWQodGYsIGZhbHNlKTsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIENvbG9ycyBzaG91bGQgYmUgcmVzdG9yZWQuCi0gICAgICAgIGNvbXB1dGVkU3R5
bGVVbnN0eWxlZCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodW5zdHls
ZWQpOwotICAgICAgICBjb21wdXRlZFN0eWxlU3R5bGVkID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcu
Z2V0Q29tcHV0ZWRTdHlsZShzdHlsZWQpOwotICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVk
U3R5bGVVbnN0eWxlZC5jb2xvciA9PSBvcmlnaW5hbEZvcmVncm91bmRVbnN0eWxlZCIpOwotICAg
ICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVVbnN0eWxlZC5iYWNrZ3JvdW5kQ29sb3Ig
PT0gb3JpZ2luYWxCYWNrZ3JvdW5kVW5zdHlsZWQiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJj
b21wdXRlZFN0eWxlU3R5bGVkLmNvbG9yID09IG9yaWdpbmFsRm9yZWdyb3VuZFN0eWxlZCIpOwot
ICAgICAgICBzaG91bGRCZVRydWUoImNvbXB1dGVkU3R5bGVTdHlsZWQuYmFja2dyb3VuZENvbG9y
ID09IG9yaWdpbmFsQmFja2dyb3VuZFN0eWxlZCIpOwotICAgICAgICBzaG91bGRCZVRydWUoImNv
bXB1dGVkU3R5bGVTdHlsZWRXaXRoU2VsZWN0b3IuY29sb3IgPT0gb3JpZ2luYWxGb3JlZ3JvdW5k
U3R5bGVkV2l0aFNlbGVjdG9yIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiY29tcHV0ZWRTdHls
ZVN0eWxlZFdpdGhTZWxlY3Rvci5iYWNrZ3JvdW5kQ29sb3IgPT0gb3JpZ2luYWxCYWNrZ3JvdW5k
U3R5bGVkV2l0aFNlbGVjdG9yIik7CisgICAgICAgIGNvbXB1dGVkU3R5bGUgPSBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRmKTsKKyAgICAgICAgaWYgKGNvbXB1dGVkU3R5
bGUuY29sb3IgIT0gb3JpZ2luYWxGb3JlZ3JvdW5kKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdGb3JlZ3JvdW5kIGNvbG9yIGRpZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2ZpbGxlZC4nKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcHV0ZWRTdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgIT0gb3JpZ2luYWxCYWNrZ3JvdW5kKSB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdCYWNrZ3JvdW5kIGNvbG9yIGRpZCBub3QgcmV2ZXJ0IHdoZW4gdW4tYXV0b2Zp
bGxlZC4nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RQ
YXNzZWQoJycpOwogICAgIH0KICAgICA8L3NjcmlwdD4KIAogICAgIDxzdHlsZT4KLSAgICAjc3R5
bGVkIHsKLSAgICAgIGNvbG9yOiAjMDBGRjAwOwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAw
RkYwMDsKLSAgICB9Ci0gICAgCi0gICAgI3N0eWxlZFdpdGhTZWxlY3Rvcjotd2Via2l0LWF1dG9m
aWxsIHsKLSAgICAgIGNvbG9yOiAjMDBGRjAwOwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAw
RkYwMDsKKyAgICAjdGYgeworICAgICAgY29sb3I6ICNGRkZGRkY7CisgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiAjRkZGRkZGOwogICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgogICAgIFRoaXMgdGVzdHMgdGhhdCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3Jv
dW5kIGNvbG9ycyBwcm9wZXJseSBjaGFuZ2UgZm9yIGF1dG9maWxsZWQgaW5wdXRzLiAgSXQgY2Fu
IG9ubHkgYmUgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlLjxicj4KICAgICA8Zm9ybSBuYW1lPSJm
bSI+Ci0gICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idW5zdHlsZWQiIHZhbHVlPSJGaWVs
ZCB2YWx1ZSIgLz4KLSAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJzdHlsZWQiIHZhbHVl
PSJGaWVsZCB2YWx1ZSIgLz4KLSAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJzdHlsZWRX
aXRoU2VsZWN0b3IiIHZhbHVlPSJGaWVsZCB2YWx1ZSIgLz4KKyAgICAgICAgPGlucHV0IHR5cGU9
InRleHQiIGlkPSJ0ZiIgdmFsdWU9IkZpZWxkIHZhbHVlIiAvPgogICAgIDwvZm9ybT4KICAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>