<?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>69401</bug_id>
          
          <creation_ts>2011-10-04 23:40:45 -0700</creation_ts>
          <short_desc>Web Inspector: add support for %c (style) in console API</short_desc>
          <delta_ts>2012-10-10 12:28:50 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98945</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dave</cc>
    
    <cc>desandrocodes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mkwst</cc>
    
    <cc>paulirish</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>478179</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-04 23:40:45 -0700</bug_when>
    <thetext>console.log(&quot;%cHello World&quot;, &quot;color:red&quot;) should result in &quot;Hello world&quot; colored in red.
Downstream bug: http://code.google.com/p/chromium/issues/detail?id=91346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734680</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-04 07:48:54 -0700</bug_when>
    <thetext>*** Bug 98407 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734695</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-04 08:03:39 -0700</bug_when>
    <thetext>Mind if I take a look at this, Pavel?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734697</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-04 08:05:49 -0700</bug_when>
    <thetext>Not at all, go ahead. I was starting it once, but then something stopped me. I don&apos;t quite remember what exactly - maybe I wanted to sandbox this style so that it does not lead to the total layout destruction. Not sure if that is necessary though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734707</commentid>
    <comment_count>4</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-04 08:23:12 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Not at all, go ahead. I was starting it once, but then something stopped me. I don&apos;t quite remember what exactly - maybe I wanted to sandbox this style so that it does not lead to the total layout destruction. Not sure if that is necessary though.

Cool, thanks.

I think restricting the allowed styles would be a good idea, but I&apos;ll worry about that once I have a first pass for you to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734814</commentid>
    <comment_count>5</comment_count>
      <attachid>167125</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-04 10:40:33 -0700</bug_when>
    <thetext>Created attachment 167125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734816</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 10:42:34 -0700</bug_when>
    <thetext>Attachment 167125 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1
LayoutTests/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 4 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734827</commentid>
    <comment_count>7</comment_count>
      <attachid>167128</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-04 10:52:24 -0700</bug_when>
    <thetext>Created attachment 167128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734856</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-04 11:20:30 -0700</bug_when>
    <thetext>Now with fewer tabs.

I have the feeling that we should do some sort of whitelisting for the style attributes, but it doesn&apos;t look like Firebug does. *shrug* https://github.com/firebug/firebug/blob/master/extension/content/firebug/console/consolePanel.js#L576 WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735515</commentid>
    <comment_count>9</comment_count>
      <attachid>167128</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-10-05 02:11:31 -0700</bug_when>
    <thetext>Comment on attachment 167128
Patch

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

Technically, the change looks good, but I&apos;m slightly concerned by a small inconsistency in the formatter behavior (which also holds for Firebug). http://getfirebug.com/wiki/index.php/Console_API does not specify the correct behavior in the case when %c and corresponding substitute arguments encounter more than once in a console.log() invocation. Currently, the style will be set to that found in the last respective argument, which is counter-intuitive (I would expect each %c to affect the entire following text up to the next %c). Does anyone have thoughts about this or am I being a paranoid?

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:477
&gt; +                a.setAttribute(&apos;style&apos;, b.cssText);

We use double quotes rather than apostrophes in the Web Inspector code

&gt; LayoutTests/http/tests/inspector/console-test.js:33
&gt; +}

Please add a separating blank line after this one

&gt; LayoutTests/inspector/console/console-format-style.html:7
&gt; +// Global Values

What do you need these for? I can&apos;t see &quot;globals&quot; used anywhere in the code

&gt; LayoutTests/inspector/console/console-format-style.html:26
&gt; +&lt;p id=&quot;p&quot;&gt;Tests that console logging dumps properly styled messages.&lt;/p&gt;

The &quot;id&quot; attribute is not used either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735521</commentid>
    <comment_count>10</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-05 02:25:20 -0700</bug_when>
    <thetext>Thanks!

(In reply to comment #9)
&gt; (From update of attachment 167128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167128&amp;action=review
&gt; 
&gt; Technically, the change looks good, but I&apos;m slightly concerned by a small inconsistency in the formatter behavior (which also holds for Firebug). http://getfirebug.com/wiki/index.php/Console_API does not specify the correct behavior in the case when %c and corresponding substitute arguments encounter more than once in a console.log() invocation. Currently, the style will be set to that found in the last respective argument, which is counter-intuitive (I would expect each %c to affect the entire following text up to the next %c). Does anyone have thoughts about this or am I being a paranoid?

I think matching Firebug&apos;s behavior is probably enough. While I think it might be nice to be able to rainbow-style a console message, I&apos;m not sure it&apos;s worth the extra complexity. I&apos;m open to argument, though. :)

I&apos;ll address the remaining comments in a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735526</commentid>
    <comment_count>11</comment_count>
      <attachid>167290</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-05 02:40:10 -0700</bug_when>
    <thetext>Created attachment 167290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735637</commentid>
    <comment_count>12</comment_count>
      <attachid>167290</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-05 08:04:42 -0700</bug_when>
    <thetext>Comment on attachment 167290
Patch

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

Wow, that is impressive! Overall looks good, but I think we should explicitly style the entire message (as FB). See my version of the code inline.

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:450
&gt; +        function ConsoleMessageStyle(value)

my version had 

        function styleFormatter(obj)
        {
            formattedResult.setAttribute(&quot;style&quot;, obj.description);
        }

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:-463
&gt; -            if (!(b instanceof Node))

and
        function append(a, b)
        {
            if (b instanceof Node)
                a.appendChild(b);
            else if (b)
                a.appendChild(WebInspector.linkifyStringAsFragment(b.toString()));
            return a;
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736390</commentid>
    <comment_count>13</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-07 11:58:41 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 167290 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167290&amp;action=review
&gt; 
&gt; Wow, that is impressive! Overall looks good, but I think we should explicitly style the entire message (as FB). See my version of the code inline.

I&apos;m not sure I see a difference between your code and mine. Can you clarify?

From my perspective, it seemed like a good idea to keep side-effects out of the formatters, which is why I did the hop through the extra class. That let me keep the styling in append() along with the rest of the changes. *shrug* I&apos;m happy to do it your way if you like it better, of course. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738796</commentid>
    <comment_count>14</comment_count>
      <attachid>167290</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-10 03:40:47 -0700</bug_when>
    <thetext>Comment on attachment 167290
Patch

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

Your code is fine, just a bunch of nits from my perfectionist&apos;s side. See comments on why I thought it was not perfect. All you need to do is to apply the style in the %c&apos;s parameter to the top level element. Your code seemed to introduce too much complexity.

&gt;&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:450
&gt;&gt; +        function ConsoleMessageStyle(value)
&gt; 
&gt; my version had 
&gt; 
&gt;         function styleFormatter(obj)
&gt;         {
&gt;             formattedResult.setAttribute(&quot;style&quot;, obj.description);
&gt;         }

You should annotate this function as @constructor.

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:476
&gt; +            if (b instanceof ConsoleMessageStyle)

Annotating with classes and using instanceof looks like a hack to me, especially since you don&apos;t really need it.

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:477
&gt; +                a.setAttribute(&quot;style&quot;, b.cssText);

I don&apos;t think this API gives you a good control over the element you set style to. In my case it was always the root element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738805</commentid>
    <comment_count>15</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 03:45:55 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 167290 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167290&amp;action=review
&gt; 
&gt; Your code is fine, just a bunch of nits from my perfectionist&apos;s side. See comments on why I thought it was not perfect. All you need to do is to apply the style in the %c&apos;s parameter to the top level element. Your code seemed to introduce too much complexity.

The explanation makes sense. Thanks, Pavel!

I&apos;ll spin up a new patch for you this afternoon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739115</commentid>
    <comment_count>16</comment_count>
      <attachid>168033</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 10:54:10 -0700</bug_when>
    <thetext>Created attachment 168033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739119</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 10:55:16 -0700</bug_when>
    <thetext>Alright, the latest patch should look pretty much exactly like your patch did, Pavel. WDYT? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739134</commentid>
    <comment_count>18</comment_count>
      <attachid>168033</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-10 11:04:03 -0700</bug_when>
    <thetext>Comment on attachment 168033
Patch

Thank s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739201</commentid>
    <comment_count>19</comment_count>
      <attachid>168033</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-10 12:15:14 -0700</bug_when>
    <thetext>Comment on attachment 168033
Patch

Talked with Pavel about whitelisting: short story is that we want it, but we&apos;ll do it in a separate patch. Throwing this into the queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739211</commentid>
    <comment_count>20</comment_count>
      <attachid>168033</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:23:11 -0700</bug_when>
    <thetext>Comment on attachment 168033
Patch

Clearing flags on attachment: 168033

Committed r130941: &lt;http://trac.webkit.org/changeset/130941&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739212</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 12:23:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167125</attachid>
            <date>2012-10-04 10:40:33 -0700</date>
            <delta_ts>2012-10-04 10:52:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69401-20121004193942.patch</filename>
            <type>text/plain</type>
            <size>6280</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNjc2NWVlYTE2ZWZk
ZDk1MDljOTJhMWYwNTEwZDJiOTk2YmVmMi4uMDIyNWU2MzBlMzg3ODcyMTZhZDlmN2ZhMmI3ZTFk
Y2YzM2I0ZTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKwkJCQlUaGlzIHBhdGNoIG1pbWljcyBGaXJlYnVnJ3MgJyVj
JyBvcHRpb24gd2hlbiBjYWxsaW5nICdjb25zb2xlLmxvZycKKwkJCQltZXNzYWdlcy4gJ2NvbnNv
bGUubG9nKCIlY0JsdWUhIiwgImNvbG9yOiBibHVlOyIpOycgd2lsbCB3cml0ZSBibHVlCisJCQkJ
dGV4dCB0byB0aGUgY29uc29sZSwgYW5kIHNvIG9uLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5D
b25zb2xlTWVzc2FnZVN0eWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZUltcGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nLnN0eWxlRm9ybWF0
dGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBl
Ll9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nLmFwcGVuZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlv
blN0cmluZyk6CisKIDIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3Ig
Y29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggMjYyNmFkMGUz
MzU2YjgwM2QwYWI3ZmI4NDEyMzA3NGM2YjU5MjBjYy4uMzJiNzM2YjYxYzhiZTI5ZjUxMGQxMjQ3
MDYzMDQ4M2FmYzZlYzk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NDcsNiArNDQ3LDE2IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJu
IG9iai5kZXNjcmlwdGlvbjsKICAgICAgICAgfQogCisgICAgICAgIGZ1bmN0aW9uIENvbnNvbGVN
ZXNzYWdlU3R5bGUodmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuY3NzVGV4dCA9
IHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3R5bGVGb3JtYXR0ZXIob2Jq
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmV3IENvbnNvbGVNZXNzYWdlU3R5bGUo
b2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIEZpcmVidWcgdXNlcyAl
byBmb3IgZm9ybWF0dGluZyBvYmplY3RzLgogICAgICAgICBmb3JtYXR0ZXJzLm8gPSBwYXJhbWV0
ZXJGb3JtYXR0ZXIuYmluZCh0aGlzLCBmYWxzZSk7CiAgICAgICAgIGZvcm1hdHRlcnMucyA9IHZh
bHVlRm9ybWF0dGVyOwpAQCAtNDU1LDEyICs0NjUsMTcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcm1hdHRlcnMuaSA9IHZhbHVlRm9y
bWF0dGVyOwogICAgICAgICBmb3JtYXR0ZXJzLmQgPSB2YWx1ZUZvcm1hdHRlcjsKIAorICAgICAg
ICAvLyBGaXJlYnVnIHVzZXMgJWMgZm9yIHN0eWxpbmcgdGhlIG1lc3NhZ2UuCisgICAgICAgIGZv
cm1hdHRlcnMuYyA9IHN0eWxlRm9ybWF0dGVyOworCiAgICAgICAgIC8vIFN1cHBvcnQgJU8gdG8g
Zm9yY2Ugb2JqZWN0IGZvcm1hdHRpbmcsIGluc3RlYWQgb2YgdGhlIHR5cGUtYmFzZWQgJW8gZm9y
bWF0dGluZy4KICAgICAgICAgZm9ybWF0dGVycy5PID0gcGFyYW1ldGVyRm9ybWF0dGVyLmJpbmQo
dGhpcywgdHJ1ZSk7CiAKICAgICAgICAgZnVuY3Rpb24gYXBwZW5kKGEsIGIpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGlmICghKGIgaW5zdGFuY2VvZiBOb2RlKSkKKyAgICAgICAgICAgIGlmIChi
IGluc3RhbmNlb2YgQ29uc29sZU1lc3NhZ2VTdHlsZSkKKyAgICAgICAgICAgICAgICBhLnNldEF0
dHJpYnV0ZSgnc3R5bGUnLCBiLmNzc1RleHQpOworICAgICAgICAgICAgZWxzZSBpZiAoIShiIGlu
c3RhbmNlb2YgTm9kZSkpCiAgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChXZWJJbnNwZWN0
b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQoYi50b1N0cmluZygpKSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YjVhYzkzN2Fi
YTg4Mjc3YTI2MmQ2OTVlNTc0MWE3ZjU5MjI1OGEzLi5jYjMwYjVjMGUyMTNiNmI3ZDFhN2Q0YmMw
ZDA3NDE5ZWE3NmEzNGU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMDQgIE1pa2Ug
V2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
c3VwcG9ydCBmb3IgJWMgKHN0eWxlKSBpbiBjb25zb2xlIEFQSQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfQ29uc29sZVRlc3QuSW5zcGVjdG9yVGVz
dC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0eWxlcyk6CisJCQkJCUhlbHBlciB0byBkdW1wIHRo
ZSBzdHlsZSBhc3NvY2lhdGVkIHdpdGggYSBjb25zb2xlIG1lc3NhZ2UuCisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sOiBB
ZGRlZC4KKwogMjAxMi0xMC0wNCAgUGV0ZXIgUnliaW4gIDxwZXRlci5yeWJpbkBnbWFpbC5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIG9iamVjdCBpbnRlcm5hbCBwcm9wZXJ0
aWVzIHN1Y2ggYXMgUHJpbWl0aXZlVmFsdWUgb3IgQm91bmRUaGlzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKaW5kZXggYzg3MDAzOWIxZGMz
ODNjYTJmNjBlNTRhZDZjYTg0OWUyM2M3ZDQ4OC4uYmI3YTY4ZWM4YzIxNWJkZTUyMzU2M2Y0Yzhm
YTdiZDE3ZWUxNDNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtdGVzdC5qcwpAQCAtMjEsNiArMjEsMTYgQEAgSW5zcGVjdG9yVGVzdC5kdW1wQ29u
c29sZU1lc3NhZ2VzID0gZnVuY3Rpb24ocHJpbnRPcmlnaW5hdGluZ0NvbW1hbmQpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAorSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0
eWxlcyA9IGZ1bmN0aW9uKHNvcnRNZXNzYWdlcykKK3sKKyAgICB2YXIgcmVzdWx0ID0gW107Cisg
ICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBtZXNzYWdlc1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KGVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2cs
ICIiKSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZTogIiArIGVsZW1l
bnQucXVlcnlTZWxlY3RvcignLmNvbnNvbGUtbWVzc2FnZS10ZXh0IHNwYW4nKS5nZXRBdHRyaWJ1
dGUoJ3N0eWxlJykpOworICAgIH0KK30KIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdl
c1dpdGhDbGFzc2VzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKSB7CiAgICAgdmFyIHJlc3VsdCA9
IFtdOwogICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdl
czsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTFlNTEyNjcxMGEx
NzZkY2MyOTI4ZmRjZmIwYjQzMDQzMDhmMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiAlY1N0eWxlZC4KK1Rlc3Rz
IHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcy4KKwor
U3R5bGVkLiBjb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sOjEyCitTdHlsZTogY29sb3I6IGJsdWU7
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC1zdHlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZDVjNTAwMmQ3ZDc1OTBhY2VjNTQ0MjFmZTM0
YzBiOWIxYWM1MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisvLyBHbG9iYWwgVmFs
dWVzCit2YXIgZ2xvYmFscyA9IFtdOworCitmdW5jdGlvbiBvbmxvYWQoKQoreworICAgIGNvbnNv
bGUubG9nKCclY1N0eWxlZC4nLCAnY29sb3I6IGJsdWU7Jyk7CisgICAgcnVuVGVzdCgpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNz
YWdlcygpOworICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMo
KTsKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHAgaWQ9InAiPlRlc3RzIHRoYXQgY29u
c29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcy48L3A+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167128</attachid>
            <date>2012-10-04 10:52:24 -0700</date>
            <delta_ts>2012-10-05 02:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69401-20121004195132.patch</filename>
            <type>text/plain</type>
            <size>6299</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNjc2NWVlYTE2ZWZk
ZDk1MDljOTJhMWYwNTEwZDJiOTk2YmVmMi4uZDRmOTk1Y2VjN2NlZGZkN2M3MDZhMDIyZGU5NTQy
YWE4ZmQ0MTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaW1pY3MgRmlyZWJ1Zydz
ICclYycgb3B0aW9uIHdoZW4gY2FsbGluZyAnY29uc29sZS5sb2cnCisgICAgICAgIG1lc3NhZ2Vz
LiAnY29uc29sZS5sb2coIiVjQmx1ZSEiLCAiY29sb3I6IGJsdWU7Iik7JyB3aWxsIHdyaXRlIGJs
dWUKKyAgICAgICAgdGV4dCB0byB0aGUgY29uc29sZSwgYW5kIHNvIG9uLgorCisgICAgICAgIFRl
c3Q6IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwKKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1
dGlvblN0cmluZy5Db25zb2xlTWVzc2FnZVN0eWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5n
LnN0eWxlRm9ybWF0dGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nLmFwcGVuZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0
aFN1YnN0aXR1dGlvblN0cmluZyk6CisKIDIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0ZXJt
aW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5k
ZXggMjYyNmFkMGUzMzU2YjgwM2QwYWI3ZmI4NDEyMzA3NGM2YjU5MjBjYy4uMzJiNzM2YjYxYzhi
ZTI5ZjUxMGQxMjQ3MDYzMDQ4M2FmYzZlYzk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC00NDcsNiArNDQ3LDE2
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgcmV0dXJuIG9iai5kZXNjcmlwdGlvbjsKICAgICAgICAgfQogCisgICAgICAgIGZ1bmN0
aW9uIENvbnNvbGVNZXNzYWdlU3R5bGUodmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRo
aXMuY3NzVGV4dCA9IHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3R5bGVG
b3JtYXR0ZXIob2JqKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmV3IENvbnNvbGVN
ZXNzYWdlU3R5bGUob2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIEZp
cmVidWcgdXNlcyAlbyBmb3IgZm9ybWF0dGluZyBvYmplY3RzLgogICAgICAgICBmb3JtYXR0ZXJz
Lm8gPSBwYXJhbWV0ZXJGb3JtYXR0ZXIuYmluZCh0aGlzLCBmYWxzZSk7CiAgICAgICAgIGZvcm1h
dHRlcnMucyA9IHZhbHVlRm9ybWF0dGVyOwpAQCAtNDU1LDEyICs0NjUsMTcgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcm1hdHRlcnMu
aSA9IHZhbHVlRm9ybWF0dGVyOwogICAgICAgICBmb3JtYXR0ZXJzLmQgPSB2YWx1ZUZvcm1hdHRl
cjsKIAorICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJWMgZm9yIHN0eWxpbmcgdGhlIG1lc3NhZ2Uu
CisgICAgICAgIGZvcm1hdHRlcnMuYyA9IHN0eWxlRm9ybWF0dGVyOworCiAgICAgICAgIC8vIFN1
cHBvcnQgJU8gdG8gZm9yY2Ugb2JqZWN0IGZvcm1hdHRpbmcsIGluc3RlYWQgb2YgdGhlIHR5cGUt
YmFzZWQgJW8gZm9ybWF0dGluZy4KICAgICAgICAgZm9ybWF0dGVycy5PID0gcGFyYW1ldGVyRm9y
bWF0dGVyLmJpbmQodGhpcywgdHJ1ZSk7CiAKICAgICAgICAgZnVuY3Rpb24gYXBwZW5kKGEsIGIp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghKGIgaW5zdGFuY2VvZiBOb2RlKSkKKyAgICAg
ICAgICAgIGlmIChiIGluc3RhbmNlb2YgQ29uc29sZU1lc3NhZ2VTdHlsZSkKKyAgICAgICAgICAg
ICAgICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBiLmNzc1RleHQpOworICAgICAgICAgICAgZWxz
ZSBpZiAoIShiIGluc3RhbmNlb2YgTm9kZSkpCiAgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGls
ZChXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQoYi50b1N0cmluZygpKSk7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA5YjVhYzkzN2FiYTg4Mjc3YTI2MmQ2OTVlNTc0MWE3ZjU5MjI1OGEzLi43OGZmNjUxY2EzZDJj
NzAxMDljMDZjYjJkODI1NWYxZjJlZTMwMjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTIt
MTAtMDQgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBhZGQgc3VwcG9ydCBmb3IgJWMgKHN0eWxlKSBpbiBjb25zb2xlIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0MDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfQ29uc29sZVRlc3Qu
SW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0eWxlcyk6CisgICAgICAgICAg
ICBIZWxwZXIgdG8gZHVtcCB0aGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIGEgY29uc29sZSBtZXNz
YWdlLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1m
b3JtYXQtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDQgIFBldGVyIFJ5YmluICA8cGV0
ZXIucnliaW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4cG9zZSBvYmpl
Y3QgaW50ZXJuYWwgcHJvcGVydGllcyBzdWNoIGFzIFByaW1pdGl2ZVZhbHVlIG9yIEJvdW5kVGhp
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10
ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0Lmpz
CmluZGV4IGM4NzAwMzliMWRjMzgzY2EyZjYwZTU0YWQ2Y2E4NDllMjNjN2Q0ODguLmJiN2E2OGVj
OGMyMTViZGU1MjM1NjNmNGM4ZmE3YmQxN2VlMTQzYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKQEAgLTIxLDYgKzIxLDE2IEBAIElu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcyA9IGZ1bmN0aW9uKHByaW50T3JpZ2luYXRp
bmdDb21tYW5kKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0luc3BlY3RvclRlc3QuZHVtcENv
bnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMgPSBmdW5jdGlvbihzb3J0TWVzc2FnZXMpCit7CisgICAg
dmFyIHJlc3VsdCA9IFtdOworICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xl
Vmlldy5tZXNzYWdlczsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsg
KytpKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVu
dCgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50
LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU3R5bGU6ICIgKyBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb25zb2xlLW1lc3NhZ2UtdGV4
dCBzcGFuJykuZ2V0QXR0cmlidXRlKCdzdHlsZScpKTsKKyAgICB9Cit9CiBJbnNwZWN0b3JUZXN0
LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRoQ2xhc3NlcyA9IGZ1bmN0aW9uKHNvcnRNZXNzYWdlcykg
ewogICAgIHZhciByZXN1bHQgPSBbXTsKICAgICB2YXIgbWVzc2FnZXMgPSBXZWJJbnNwZWN0b3Iu
Y29uc29sZVZpZXcubWVzc2FnZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODkxZTUxMjY3MTBhMTc2ZGNjMjkyOGZkY2ZiMGI0MzA0MzA4ZjBlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0
eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
MjogJWNTdHlsZWQuCitUZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXJseSBz
dHlsZWQgbWVzc2FnZXMuCisKK1N0eWxlZC4gY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbDoxMgor
U3R5bGU6IGNvbG9yOiBibHVlOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWQ1YzUwMDJk
N2Q3NTkwYWNlYzU0NDIxZmUzNGMwYjliMWFjNTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbApAQCAtMCww
ICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworLy8gR2xvYmFsIFZhbHVlcwordmFyIGdsb2JhbHMgPSBbXTsKKworZnVuY3Rpb24gb25s
b2FkKCkKK3sKKyAgICBjb25zb2xlLmxvZygnJWNTdHlsZWQuJywgJ2NvbG9yOiBibHVlOycpOwor
ICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xl
TWVzc2FnZXNXaXRoU3R5bGVzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxwIGlk
PSJwIj5UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXJseSBzdHlsZWQgbWVz
c2FnZXMuPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167290</attachid>
            <date>2012-10-05 02:40:10 -0700</date>
            <delta_ts>2012-10-10 10:54:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69401-20121005113918.patch</filename>
            <type>text/plain</type>
            <size>6580</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiNzQ1Y2JmOTMyZTA4
ODg3MTY1MmIwODY1YTZhMjYwOTFhOWU2Yy4uNzc4ZDljNDMxYjYxOTczYzUzMzk0M2VkM2U1MzU1
OGNiNTk1YjQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTA1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaW1pY3MgRmlyZWJ1Zydz
ICclYycgb3B0aW9uIHdoZW4gY2FsbGluZyAnY29uc29sZS5sb2cnCisgICAgICAgIG1lc3NhZ2Vz
LiAnY29uc29sZS5sb2coIiVjQmx1ZSEiLCAiY29sb3I6IGJsdWU7Iik7JyB3aWxsIHdyaXRlIGJs
dWUKKyAgICAgICAgdGV4dCB0byB0aGUgY29uc29sZSwgYW5kIHNvIG9uLgorCisgICAgICAgIFRl
c3Q6IGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwKKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1
dGlvblN0cmluZy5Db25zb2xlTWVzc2FnZVN0eWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5n
LnN0eWxlRm9ybWF0dGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nLmFwcGVuZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0
aFN1YnN0aXR1dGlvblN0cmluZyk6CisKIDIwMTItMTAtMDUgIEFuZHJlaSBCdWN1ciAgPGFidWN1
ckBhZG9iZS5jb20+CiAKICAgICAgICAgSW5jb21wbGV0ZSByZXBhaW50IG9mIGJveGVzIHdpdGgg
aW5zZXQgYm94LXNoYWRvdyBhbmQgcGFkZGluZyB3aGVuIHJlc2l6ZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IDI2
MjZhZDBlMzM1NmI4MDNkMGFiN2ZiODQxMjMwNzRjNmI1OTIwY2MuLmU0NzBiNzQ4NjdlNWU4MGMy
NzVhNjA1OGI5OTgzODYxOWZiOTFiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtNDQ3LDYgKzQ0NywxNiBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHJldHVybiBvYmouZGVzY3JpcHRpb247CiAgICAgICAgIH0KIAorICAgICAgICBmdW5jdGlvbiBD
b25zb2xlTWVzc2FnZVN0eWxlKHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmNz
c1RleHQgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHN0eWxlRm9ybWF0
dGVyKG9iaikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25zb2xlTWVzc2Fn
ZVN0eWxlKG9iai5kZXNjcmlwdGlvbik7CisgICAgICAgIH0KKwogICAgICAgICAvLyBGaXJlYnVn
IHVzZXMgJW8gZm9yIGZvcm1hdHRpbmcgb2JqZWN0cy4KICAgICAgICAgZm9ybWF0dGVycy5vID0g
cGFyYW1ldGVyRm9ybWF0dGVyLmJpbmQodGhpcywgZmFsc2UpOwogICAgICAgICBmb3JtYXR0ZXJz
LnMgPSB2YWx1ZUZvcm1hdHRlcjsKQEAgLTQ1NSwxMiArNDY1LDE3IEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICBmb3JtYXR0ZXJzLmkgPSB2
YWx1ZUZvcm1hdHRlcjsKICAgICAgICAgZm9ybWF0dGVycy5kID0gdmFsdWVGb3JtYXR0ZXI7CiAK
KyAgICAgICAgLy8gRmlyZWJ1ZyB1c2VzICVjIGZvciBzdHlsaW5nIHRoZSBtZXNzYWdlLgorICAg
ICAgICBmb3JtYXR0ZXJzLmMgPSBzdHlsZUZvcm1hdHRlcjsKKwogICAgICAgICAvLyBTdXBwb3J0
ICVPIHRvIGZvcmNlIG9iamVjdCBmb3JtYXR0aW5nLCBpbnN0ZWFkIG9mIHRoZSB0eXBlLWJhc2Vk
ICVvIGZvcm1hdHRpbmcuCiAgICAgICAgIGZvcm1hdHRlcnMuTyA9IHBhcmFtZXRlckZvcm1hdHRl
ci5iaW5kKHRoaXMsIHRydWUpOwogCiAgICAgICAgIGZ1bmN0aW9uIGFwcGVuZChhLCBiKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIShiIGluc3RhbmNlb2YgTm9kZSkpCisgICAgICAgICAg
ICBpZiAoYiBpbnN0YW5jZW9mIENvbnNvbGVNZXNzYWdlU3R5bGUpCisgICAgICAgICAgICAgICAg
YS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgYi5jc3NUZXh0KTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KCEoYiBpbnN0YW5jZW9mIE5vZGUpKQogICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQoV2Vi
SW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50KGIudG9TdHJpbmcoKSkpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQoYik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDgw
NWZkMTkzNTQ5NmNmYzE2MmVjMmI4ZTQ2YjViMjgwMmM2MjYyYy4uMTg4MzExNmEzMTY3NzdhYzMx
NmU4MDZjMGY1NDdlYmM4YzdmZWViNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA1
ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWRkIHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDAxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0NvbnNvbGVUZXN0Lkluc3Bl
Y3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMpOgorICAgICAgICAgICAgSGVs
cGVyIHRvIGR1bXAgdGhlIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCBhIGNvbnNvbGUgbWVzc2FnZS4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0
LXN0eWxlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTA1ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJA
YWRvYmUuY29tPgogCiAgICAgICAgIEluY29tcGxldGUgcmVwYWludCBvZiBib3hlcyB3aXRoIGlu
c2V0IGJveC1zaGFkb3cgYW5kIHBhZGRpbmcgd2hlbiByZXNpemVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMKaW5kZXggYzg3MDAzOWIxZGMz
ODNjYTJmNjBlNTRhZDZjYTg0OWUyM2M3ZDQ4OC4uYmI3YTY4ZWM4YzIxNWJkZTUyMzU2M2Y0Yzhm
YTdiZDE3ZWUxNDNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtdGVzdC5qcwpAQCAtMjEsNiArMjEsMTYgQEAgSW5zcGVjdG9yVGVzdC5kdW1wQ29u
c29sZU1lc3NhZ2VzID0gZnVuY3Rpb24ocHJpbnRPcmlnaW5hdGluZ0NvbW1hbmQpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAorSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzV2l0aFN0
eWxlcyA9IGZ1bmN0aW9uKHNvcnRNZXNzYWdlcykKK3sKKyAgICB2YXIgcmVzdWx0ID0gW107Cisg
ICAgdmFyIG1lc3NhZ2VzID0gV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBtZXNzYWdlc1tpXS50b01lc3NhZ2VFbGVtZW50KCk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KGVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBiL2cs
ICIiKSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZTogIiArIGVsZW1l
bnQucXVlcnlTZWxlY3RvcignLmNvbnNvbGUtbWVzc2FnZS10ZXh0IHNwYW4nKS5nZXRBdHRyaWJ1
dGUoJ3N0eWxlJykpOworICAgIH0KK30KIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdl
c1dpdGhDbGFzc2VzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKSB7CiAgICAgdmFyIHJlc3VsdCA9
IFtdOwogICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdl
czsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWJmMDU1ZTM4NWY3
ODM2YzY0M2M0Yzk5ZWM3Yzk4NjIxYWQyOWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6ICVjQmx1ZSEuCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTogJWNSZWQhJWMuCitUZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBk
dW1wcyBwcm9wZXJseSBzdHlsZWQgbWVzc2FnZXMuCisKK0JsdWUhLiBjb25zb2xlLWZvcm1hdC1z
dHlsZS5odG1sOjgKK1N0eWxlOiBjb2xvcjogYmx1ZTsKK1JlZCEuIGNvbnNvbGUtZm9ybWF0LXN0
eWxlLmh0bWw6OQorU3R5bGU6IGNvbG9yOiByZWQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1Mzc0ZDM2MWY3Njc2YzQzMjdmYzgyMjhiMDExY2ViM2M5NDUyZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5o
dG1sCkBAIC0wLDAgKzEsMjUgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1
bmN0aW9uIG9ubG9hZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZS5s
b2coJyVjQmx1ZSEuJywgJ2NvbG9yOiBibHVlOycpOworICAgICAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCclY1JlZCElYy4nLCAnY29sb3I6IGJsdWU7JywgJ2NvbG9yOiByZWQ7Jyk7CisgICAgICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biB0ZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGFuZENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKyAgICAgICAgPHA+VGVz
dHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgcHJvcGVybHkgc3R5bGVkIG1lc3NhZ2VzLjwv
cD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168033</attachid>
            <date>2012-10-10 10:54:10 -0700</date>
            <delta_ts>2012-10-10 12:23:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69401-20121010195308.patch</filename>
            <type>text/plain</type>
            <size>6757</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRlNjc2NWVlYTE2ZWZk
ZDk1MDljOTJhMWYwNTEwZDJiOTk2YmVmMi4uOWQ4MmRiNzRkODg5ZjA0MWVhOTIyYjExOTJkNTIz
MDM3NzMzNTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTEwICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
IHN1cHBvcnQgZm9yICVjIChzdHlsZSkgaW4gY29uc29sZSBBUEkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaW1pY3MgRmlyZWJ1Zydz
ICclYycgb3B0aW9uIHdoZW4gY2FsbGluZyAnY29uc29sZS5sb2cnCisgICAgICAgIG1lc3NhZ2Vz
LiAnY29uc29sZS5sb2coIiVjQmx1ZSEiLCAiY29sb3I6IGJsdWU7Iik7JyB3aWxsIHdyaXRlIGJs
dWUKKyAgICAgICAgdGV4dCB0byB0aGUgY29uc29sZSwgYW5kIHNvIG9uLgorCisgICAgICAgIFRv
IG1hdGNoIEZpcmVidWcncyBiZWhhdmlvciwgbXVsdGlwbGUgJyVjJyBlbnRyaWVzIHdpbGwgb3Zl
cndyaXRlIGVhY2gKKyAgICAgICAgb3RoZXI6IG9ubHkgb25lIHN0eWxlIHdpbGwgYmUgYXBwbGll
ZC4gU29ycnksIGZvbGtzLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZm9ybWF0LXN0eWxlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBs
LnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5zdHlsZUZvcm1hdHRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9y
bWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZy5hcHBlbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJp
bmcpOgorCiAyMDEyLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFN0YW5kYXJkaXplIG9uICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBv
c2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IDI2MjZhZDBlMzM1NmI4
MDNkMGFiN2ZiODQxMjMwNzRjNmI1OTIwY2MuLmFkOTdlMmM5Yzc4YmE3ZmFhOGU3MDA0MDg2MjA5
ZmZkYmJlYjA1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtNDQ3LDYgKzQ0NywxMSBAQCBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiBvYmou
ZGVzY3JpcHRpb247CiAgICAgICAgIH0KIAorICAgICAgICBmdW5jdGlvbiBzdHlsZUZvcm1hdHRl
cihvYmopCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5zZXRBdHRyaWJ1
dGUoInN0eWxlIiwgb2JqLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIEZp
cmVidWcgdXNlcyAlbyBmb3IgZm9ybWF0dGluZyBvYmplY3RzLgogICAgICAgICBmb3JtYXR0ZXJz
Lm8gPSBwYXJhbWV0ZXJGb3JtYXR0ZXIuYmluZCh0aGlzLCBmYWxzZSk7CiAgICAgICAgIGZvcm1h
dHRlcnMucyA9IHZhbHVlRm9ybWF0dGVyOwpAQCAtNDU1LDE1ICs0NjAsMTggQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvcm1hdHRlcnMu
aSA9IHZhbHVlRm9ybWF0dGVyOwogICAgICAgICBmb3JtYXR0ZXJzLmQgPSB2YWx1ZUZvcm1hdHRl
cjsKIAorICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJWMgZm9yIHN0eWxpbmcgdGhlIG1lc3NhZ2Uu
CisgICAgICAgIGZvcm1hdHRlcnMuYyA9IHN0eWxlRm9ybWF0dGVyOworCiAgICAgICAgIC8vIFN1
cHBvcnQgJU8gdG8gZm9yY2Ugb2JqZWN0IGZvcm1hdHRpbmcsIGluc3RlYWQgb2YgdGhlIHR5cGUt
YmFzZWQgJW8gZm9ybWF0dGluZy4KICAgICAgICAgZm9ybWF0dGVycy5PID0gcGFyYW1ldGVyRm9y
bWF0dGVyLmJpbmQodGhpcywgdHJ1ZSk7CiAKICAgICAgICAgZnVuY3Rpb24gYXBwZW5kKGEsIGIp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghKGIgaW5zdGFuY2VvZiBOb2RlKSkKLSAgICAg
ICAgICAgICAgICBhLmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFn
bWVudChiLnRvU3RyaW5nKCkpKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIChi
IGluc3RhbmNlb2YgTm9kZSkKICAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKGIpOworICAg
ICAgICAgICAgZWxzZSBpZiAoYikKKyAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKFdlYklu
c3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudChiLnRvU3RyaW5nKCkpKTsKICAgICAgICAg
ICAgIHJldHVybiBhOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YjVhYzkzN2FiYTg4Mjc3YTI2MmQ2
OTVlNTc0MWE3ZjU5MjI1OGEzLi44ZTdkOTA3Yjc0YmU0ODVkMjkxY2M0ZjMwNGU0MGRmYjc3OWJl
MjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMTAgIE1pa2UgV2VzdCAgPG1rd3N0
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgc3VwcG9ydCBmb3Ig
JWMgKHN0eWxlKSBpbiBjb25zb2xlIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njk0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qczoK
KyAgICAgICAgKGluaXRpYWxpemVfQ29uc29sZVRlc3QuSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29s
ZU1lc3NhZ2VzV2l0aFN0eWxlcyk6CisgICAgICAgICAgICBIZWxwZXIgdG8gZHVtcCB0aGUgc3R5
bGUgYXNzb2NpYXRlZCB3aXRoIGEgY29uc29sZSBtZXNzYWdlLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbDogQWRkZWQu
CisKIDIwMTItMTAtMDQgIFBldGVyIFJ5YmluICA8cGV0ZXIucnliaW5AZ21haWwuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4cG9zZSBvYmplY3QgaW50ZXJuYWwgcHJvcGVydGllcyBz
dWNoIGFzIFByaW1pdGl2ZVZhbHVlIG9yIEJvdW5kVGhpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzCmluZGV4IGM4NzAwMzliMWRjMzgzY2Ey
ZjYwZTU0YWQ2Y2E4NDllMjNjN2Q0ODguLmZhMWQ5ZWMyNmRjY2ZlYTIwNzVmMzI4ZWNiMGJjM2Ew
NjVjMjMwZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXRlc3QuanMKQEAgLTIxLDYgKzIxLDE3IEBAIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVN
ZXNzYWdlcyA9IGZ1bmN0aW9uKHByaW50T3JpZ2luYXRpbmdDb21tYW5kKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK0luc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMg
PSBmdW5jdGlvbihzb3J0TWVzc2FnZXMpCit7CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIHZh
ciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdlczsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBlbGVt
ZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChlbGVtZW50LnRleHRDb250ZW50LnJlcGxhY2UoL1x1MjAwYi9nLCAiIikp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGU6ICIgKyBlbGVtZW50LnF1
ZXJ5U2VsZWN0b3IoIi5jb25zb2xlLW1lc3NhZ2UtdGV4dCBzcGFuIikuZ2V0QXR0cmlidXRlKCJz
dHlsZSIpKTsKKyAgICB9Cit9CisKIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dp
dGhDbGFzc2VzID0gZnVuY3Rpb24oc29ydE1lc3NhZ2VzKSB7CiAgICAgdmFyIHJlc3VsdCA9IFtd
OwogICAgIHZhciBtZXNzYWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdlczsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0
LXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDljOTc2NzYyMDFlZDNl
MmE4NWE5YjRkNDgyOGQ4OTZhZTQxODY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6ICVjQmx1ZSEuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgOTogJWNSZWQhJWMuCitUZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1w
cyBwcm9wZXJseSBzdHlsZWQgbWVzc2FnZXMsIGFuZCB0aGF0IHRoZSB3aG9sZSBtZXNzYWdlIGdl
dHMgdGhlIHNhbWUgc3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMgc2V0dGluZ3MuCisK
K0JsdWUhLiBjb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sOjgKK1N0eWxlOiBjb2xvcjogYmx1ZTsK
K1JlZCEuIGNvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWw6OQorU3R5bGU6IGNvbG9yOiByZWQ7CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0
LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1h
dC1zdHlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0Njc2MGQzYmI5NmRmMmI4NDA0M2MzMzgzOTk2MTY3
M2QzZDQ0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjQmx1ZSEuJywgJ2NvbG9yOiBibHVlOycpOwor
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY1JlZCElYy4nLCAnY29sb3I6IGJsdWU7Jywg
J2NvbG9yOiByZWQ7Jyk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
fQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9Im9u
bG9hZCgpIj4KKyAgICAgIDxwPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Bl
cmx5IHN0eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQKKyAgICAgIHRoZSB3aG9sZSBtZXNzYWdlIGdl
dHMgdGhlIHNhbWUgc3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMKKyAgICAgIHNldHRp
bmdzLjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>