<?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>33368</bug_id>
          
          <creation_ts>2010-01-08 01:19:19 -0800</creation_ts>
          <short_desc>Show patch status in bugs.webkit.org</short_desc>
          <delta_ts>2010-12-03 15:43:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50496</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178556</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 01:19:19 -0800</bug_when>
    <thetext>Add StatusBubbleExtension</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178557</commentid>
    <comment_count>1</comment_count>
      <attachid>46118</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 01:20:44 -0800</bug_when>
    <thetext>Created attachment 46118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178558</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-08 01:25:55 -0800</bug_when>
    <thetext>I don’t think it makes sense to add a Chrome-specific extension to the WebKit SVN repository in this fashion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178559</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-08 01:28:09 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46118 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178562</commentid>
    <comment_count>4</comment_count>
      <attachid>46118</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-08 01:33:53 -0800</bug_when>
    <thetext>Comment on attachment 46118
Patch

bugs.webkit.org is a website that we control.  We should whatever functionality we need to it.  Marking as r- based on this, and the fact that WebKit SVN is not a repository of Chrome extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178563</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 01:34:59 -0800</bug_when>
    <thetext>Ok.  I&apos;ll work on a patch for BugsSite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178564</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-08 01:44:27 -0800</bug_when>
    <thetext>I disagree that webkit.org will never host plugins/tools specific to WebKit which are used by other applications.  We certainly host scripts to integrate with other build systems and shells, which could be seen in a similar vein.

But I definitely agree that a better patch would be one for BugsSite instead of the extension.  The extension is awesome for testing, but BugsSite would help everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178566</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-01-08 01:52:52 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I disagree that webkit.org will never host plugins/tools specific to WebKit
&gt; which are used by other applications.

I’m not sure who you’re disagreeing with, since no-one said that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178571</commentid>
    <comment_count>8</comment_count>
      <attachid>46121</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 02:04:43 -0800</bug_when>
    <thetext>Created attachment 46121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178574</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-08 02:12:15 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46121 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178674</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 07:56:25 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=46121) [details]
&gt; Patch

Is the iframe displayed on hover, or is it always present?  Where is the statusBubble class used in CSS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178697</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 09:39:11 -0800</bug_when>
    <thetext>&gt; Is the iframe displayed on hover, or is it always present?

It&apos;s always present.  I sent some screenshots to webkit-dev, or you can try installing the extension, which does the same thing:

https://chrome.google.com/extensions/detail/ahinhccldaefdhieflgmecppompikcnn

&gt; Where is the statusBubble class used in CSS?

Nothing currently, but having class names is good semantics and can be quite useful down the road.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178706</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 10:12:29 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Is the iframe displayed on hover, or is it always present?
&gt; 
&gt; It&apos;s always present.  I sent some screenshots to webkit-dev, or you can try
&gt; installing the extension, which does the same thing:
&gt; 
&gt; https://chrome.google.com/extensions/detail/ahinhccldaefdhieflgmecppompikcnn

When did you send screenshots to webkit-dev?  I don&apos;t recall seeing them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178708</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 10:15:31 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; &gt; Is the iframe displayed on hover, or is it always present?
&gt; &gt; 
&gt; &gt; It&apos;s always present.  I sent some screenshots to webkit-dev, or you can try
&gt; &gt; installing the extension, which does the same thing:
&gt; &gt; 
&gt; &gt; https://chrome.google.com/extensions/detail/ahinhccldaefdhieflgmecppompikcnn
&gt; 
&gt; When did you send screenshots to webkit-dev?  I don&apos;t recall seeing them.

Nevermind, I found them:

&lt;https://lists.webkit.org/pipermail/webkit-dev/2009-December/011097.html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178736</commentid>
    <comment_count>14</comment_count>
      <attachid>46121</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 12:04:47 -0800</bug_when>
    <thetext>Comment on attachment 46121
Patch

&gt; diff --git a/BugsSite/template/en/custom/attachment/edit.html.tmpl b/BugsSite/template/en/custom/attachment/edit.html.tmpl
&gt; index c6b5ab4..353c403 100644
&gt; --- a/BugsSite/template/en/custom/attachment/edit.html.tmpl
&gt; +++ b/BugsSite/template/en/custom/attachment/edit.html.tmpl
&gt; @@ -256,6 +256,17 @@
&gt;                                             attach_id = attachment.id %]&lt;br&gt;
&gt;          [% END %]
&gt;  
&gt; +[%# if WEBKIT_CHANGES %]
&gt; +        [% IF attachment.ispatch %]
&gt; +        &lt;div class=&quot;statusBubble&quot;&gt;

I think this should have a label with it to separate it from the &quot;Flags:&quot; items:

             &lt;b&gt;&lt;small&gt;Bot Status:&lt;/small&gt;&lt;/b&gt;

&gt; +          &lt;iframe src=&quot;https://webkit-commit-queue.appspot.com/status-bubble/[% attachment.id %]&quot;
&gt; +                  style=&quot;width: 300px; height: 18px; border: none;&quot; scrolling=&quot;no&quot;&gt;
&gt; +          &lt;/iframe&gt;
&gt; +        &lt;/div&gt;
&gt; +        &lt;br&gt;
&gt; +        [% END %]
&gt; +[%# endif // WEBKIT_CHANGES %]
&gt; +
&gt;          &lt;div id=&quot;smallCommentFrame&quot;&gt;
&gt;            &lt;b&gt;&lt;small&gt;&lt;label for=&quot;comment&quot;&gt;Comment&lt;/label&gt; (on the
&gt;            [%+ terms.bug %]):&lt;/small&gt;&lt;/b&gt;&lt;br&gt;
&gt; diff --git a/BugsSite/template/en/custom/attachment/list.html.tmpl b/BugsSite/template/en/custom/attachment/list.html.tmpl
&gt; index be98425..fd2202a 100644
&gt; --- a/BugsSite/template/en/custom/attachment/list.html.tmpl
&gt; +++ b/BugsSite/template/en/custom/attachment/list.html.tmpl
&gt; @@ -138,6 +138,15 @@
&gt;              | &lt;a href=&quot;attachment.cgi?id=[% attachment.id %]&amp;amp;action=diff&quot;&gt;Diff&lt;/a&gt;
&gt;            [% END %]
&gt;            [% Hook.process(&quot;action&quot;) %]
&gt; +[%# if WEBKIT_CHANGES %]
&gt; +          [% IF attachment.ispatch %]
&gt; +          &lt;div class=&quot;statusBubble&quot;&gt;
&gt; +            &lt;iframe src=&quot;https://webkit-commit-queue.appspot.com/status-bubble/[% attachment.id %]&quot;
&gt; +                    style=&quot;width: 300px; height: 18px; border: none;&quot; scrolling=&quot;no&quot;&gt;
&gt; +            &lt;/iframe&gt;
&gt; +          &lt;/div&gt;
&gt; +          [% END %]
&gt; +[%# endif // WEBKIT_CHANGES %]
&gt;          &lt;/td&gt;
&gt;        &lt;/tr&gt;
&gt;      [% END %]

We may eventually want a separate table column for bot status, but adding it to this cell is fine for now.

The BugsSite/template/en/custom/attachment/reviewform.html.tmpl template also needs to be updated with this status.

r- to update reviewform.html.tmpl and add a label to edit.html.tmpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178764</commentid>
    <comment_count>15</comment_count>
      <attachid>46154</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 13:31:04 -0800</bug_when>
    <thetext>Created attachment 46154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178769</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-08 13:33:29 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46154 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178774</commentid>
    <comment_count>17</comment_count>
      <attachid>46154</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-08 13:42:01 -0800</bug_when>
    <thetext>Comment on attachment 46154
Patch

Looks good. Lets give it a try!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178793</commentid>
    <comment_count>18</comment_count>
      <attachid>46154</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-08 14:05:14 -0800</bug_when>
    <thetext>Comment on attachment 46154
Patch

Clearing flags on attachment: 46154

Committed r53007: &lt;http://trac.webkit.org/changeset/53007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178794</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-08 14:05:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178836</commentid>
    <comment_count>20</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 15:28:05 -0800</bug_when>
    <thetext>Follow-up fix for the review form (to make the status actually appear):

$ svn commit BugsSite
Sending        BugsSite/ChangeLog
Sending        BugsSite/template/en/custom/attachment/reviewform.html.tmpl
Transmitting file data ..
Committed revision 53016.

&lt;http://trac.webkit.org/changeset/53016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178841</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-08 15:33:23 -0800</bug_when>
    <thetext>I copied the logic from the last table cell, which also doesn&apos;t seem to be showing up.  Is it supposed to show up?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178843</commentid>
    <comment_count>22</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 15:37:56 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; I copied the logic from the last table cell, which also doesn&apos;t seem to be
&gt; showing up.  Is it supposed to show up?

It is, but when I enabled it on the server, the functionality was broken.  I&apos;m taking a look at it now.  (The button lets you switch between pretty and non-pretty patches in the upper frame.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178913</commentid>
    <comment_count>23</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-08 18:15:18 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; I copied the logic from the last table cell, which also doesn&apos;t seem to be
&gt; &gt; showing up.  Is it supposed to show up?
&gt; 
&gt; It is, but when I enabled it on the server, the functionality was broken.  I&apos;m
&gt; taking a look at it now.  (The button lets you switch between pretty and
&gt; non-pretty patches in the upper frame.)

I filed Bug 33410 to address this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46118</attachid>
            <date>2010-01-08 01:20:44 -0800</date>
            <delta_ts>2010-01-08 02:04:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33368-20100108012042.patch</filename>
            <type>text/plain</type>
            <size>11660</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZDIyMTIxLi5iNTA0ZWE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDEt
MDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU3RhdHVzQnViYmxlRXh0ZW5zaW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM2OAorCisg
ICAgICAgIFRoZSBzdGF0dXMgYnViYmxlIGV4dGVuc2lvbiBpcyBhIENocm9tZSBleHRlbnNpb24g
dGhhdCBzaG93cyB0aGUgc3RhdHVzCisgICAgICAgIG9mIGVhY2ggcGF0Y2ggaW4gYnVncy53ZWJr
aXQub3JnLiAgRXZlbnR1YWxseSB3ZSBzaG91bGQgaW50ZWdyYXRlIHRoaXMKKyAgICAgICAgZnVu
Y3Rpb25hbGl0eSBpbnRvIGJ1Z3Mud2Via2l0Lm9yZCBkaXJlY3RseS4KKworICAgICAgICAqIFN0
YXR1c0J1YmJsZUV4dGVuc2lvbi9NYWtlZmlsZTogQWRkZWQuCisgICAgICAgICogU3RhdHVzQnVi
YmxlRXh0ZW5zaW9uL2JhY2tncm91bmQuaHRtbDogQWRkZWQuCisgICAgICAgICogU3RhdHVzQnVi
YmxlRXh0ZW5zaW9uL2VkaXQtYXR0YWNobWVudC5qczogQWRkZWQuCisgICAgICAgICogU3RhdHVz
QnViYmxlRXh0ZW5zaW9uL21hbmlmZXN0Lmpzb246IEFkZGVkLgorICAgICAgICAqIFN0YXR1c0J1
YmJsZUV4dGVuc2lvbi9zaG93LWJ1Zy5qczogQWRkZWQuCisKIDIwMTAtMDEtMDcgIEFuZHJhcyBC
ZWNzaSAgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TdGF0dXNCdWJibGVFeHRlbnNpb24v
TWFrZWZpbGUgYi9XZWJLaXRUb29scy9TdGF0dXNCdWJibGVFeHRlbnNpb24vTWFrZWZpbGUKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4OGU5YQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdFRvb2xzL1N0YXR1c0J1YmJsZUV4dGVuc2lvbi9NYWtlZmlsZQpAQCAtMCwwICsx
LDMxIEBACisjIENvcHlyaWdodCAoYykgMjAwOSBBZGFtIEJhcnRoLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyAKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIyAKKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgQWRhbSBCYXJ0aCBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCithbGw6CisJcm0gLWYgc3RhdHVzLWJ1YmJsZS56
aXAKKwl6aXAgc3RhdHVzLWJ1YmJsZS56aXAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU3Rh
dHVzQnViYmxlRXh0ZW5zaW9uL2JhY2tncm91bmQuaHRtbCBiL1dlYktpdFRvb2xzL1N0YXR1c0J1
YmJsZUV4dGVuc2lvbi9iYWNrZ3JvdW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMzM5OTNhNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1N0YXR1c0J1
YmJsZUV4dGVuc2lvbi9iYWNrZ3JvdW5kLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5jb21taXR0ZXJzID0ge307
Cit3aW5kb3cucmV2aWV3ZXJzID0ge307CisKK2Z1bmN0aW9uIHBhcnNlVHlwZShrZXksIHJlY29y
ZHMsIGNhbGxiYWNrKSB7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7ICsr
aSkgeworICAgIHJlY29yZCA9IHJlY29yZHNbaV07CisgICAgaWYgKHJlY29yZC5pbmRleE9mKGtl
eSkgPCAwKQorICAgICAgY29udGludWU7CisgICAgZW1haWxzID0gcmVjb3JkLm1hdGNoKC9bXiJd
K0BbXiJdKy8pCisgICAgaWYgKCFlbWFpbHMpCisgICAgICBjb250aW51ZTsKKyAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IGVtYWlscy5sZW5ndGg7ICsraikKKyAgICAgIGNhbGxiYWNrKGVtYWlsc1tq
XSkKKyAgfQorfQorCitmdW5jdGlvbiBwYXJzZUNvbW1pdHRlcnNQeSh0ZXh0KSB7CisgIHdpbmRv
dy5jb21taXR0ZXJzID0ge307CisgIHdpbmRvdy5yZXZpZXdlcnMgPSB7fTsKKworICB2YXIgcmVj
b3JkcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgIHBhcnNlVHlwZSgiQ29tbWl0dGVyIiwgcmVjb3Jk
cywgZnVuY3Rpb24gKGVtYWlsKSB7CisgICAgd2luZG93LmNvbW1pdHRlcnNbZW1haWxdID0gdHJ1
ZTsKKyAgfSk7CisgIHBhcnNlVHlwZSgiUmV2aWV3ZXIiLCByZWNvcmRzLCBmdW5jdGlvbiAoZW1h
aWwpIHsKKyAgICB3aW5kb3cucmV2aWV3ZXJzW2VtYWlsXSA9IHRydWU7CisgIH0pOworfQorCitm
dW5jdGlvbiBsb2FkQ29udHJpYnV0b3JzKCkgeworICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgIHhoci5vcGVuKCdHRVQnLCAnaHR0cDovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRv
cnkvd2Via2l0L3RydW5rL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWl0dGVycy5w
eScpOworICB4aHIuc2VuZCgpOworICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgIHBh
cnNlQ29tbWl0dGVyc1B5KHhoci5yZXNwb25zZVRleHQpOworICB9OworfQorCitsb2FkQ29udHJp
YnV0b3JzKCk7CisvLyBSZWZyZXNoIHRoZSBjb250cmlidXRvcnMgZXZlcnkgZml2ZSBob3Vycy4K
K3dpbmRvdy5zZXRJbnRlcnZhbChsb2FkQ29udHJpYnV0b3JzLCAxMDAwKjYwKjYwKjUpOworCitj
aHJvbWUuZXh0ZW5zaW9uLm9uUmVxdWVzdC5hZGRMaXN0ZW5lcigKKyAgZnVuY3Rpb24ocmVxdWVz
dCwgc2VuZGVyLCBzZW5kUmVzcG9uc2UpIHsKKyAgICB2YXIgZW1haWwgPSByZXF1ZXN0LmVtYWls
OworICAgIHNlbmRSZXNwb25zZSh7CisgICAgICBjb21taXR0ZXI6IHdpbmRvdy5jb21taXR0ZXJz
W2VtYWlsXSwKKyAgICAgIHJldmlld2VyOiB3aW5kb3cucmV2aWV3ZXJzW2VtYWlsXQorICAgIH0p
OworICB9KTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TdGF0dXNCdWJibGVFeHRlbnNpb24vZWRpdC1hdHRhY2htZW50LmpzIGIvV2ViS2l0
VG9vbHMvU3RhdHVzQnViYmxlRXh0ZW5zaW9uL2VkaXQtYXR0YWNobWVudC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDBhYThjCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0VG9vbHMvU3RhdHVzQnViYmxlRXh0ZW5zaW9uL2VkaXQtYXR0YWNobWVudC5qcwpAQCAtMCww
ICsxLDQ1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMDkgQWRhbSBCYXJ0aC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIAorLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6Cisv
LyAKKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisv
LyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFk
YW0gQmFydGggbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8gCisv
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisoZnVuY3Rpb24oKSB7CisgIHZhciBmbGFncyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm
bGFncycpOworICB2YXIgbWF0Y2ggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvYXR0YWNo
bWVudC5jZ2lcP2lkPShcZCspXCZhY3Rpb249Lyk7CisgIGlmICghbWF0Y2gpCisgICAgcmV0dXJu
CisgIHZhciBpZCA9IG1hdGNoWzFdOworICB2YXIgdXJsID0gJ2h0dHA6Ly93ZWJraXQtY29tbWl0
LXF1ZXVlLmFwcHNwb3QuY29tL3N0YXR1cy1idWJibGUvJyArIGlkOworICB2YXIgaWZyYW1lID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgIGlmcmFtZS5zcmMgPSB1cmw7Cisg
IGlmcmFtZS5zdHlsZS53aWR0aCA9ICcxNzBweCc7CisgIGlmcmFtZS5zdHlsZS5oZWlnaHQgPSAn
MThweCc7CisgIGlmcmFtZS5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7CisgIGlmcmFtZS5zY3JvbGxp
bmcgPSAnbm8nOworICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
IGRpdi5hcHBlbmRDaGlsZChpZnJhbWUpOworICBmbGFncy5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShkaXYsIGZsYWdzLm5leHRTaWJsaW5nKTsKK30pKCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TdGF0dXNCdWJibGVFeHRlbnNpb24vbWFuaWZlc3QuanNvbiBiL1dlYktpdFRvb2xzL1N0YXR1
c0J1YmJsZUV4dGVuc2lvbi9tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjgwNzk4M2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TdGF0dXNC
dWJibGVFeHRlbnNpb24vbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDIwIEBACit7CisgICJuYW1l
IjogIlBhdGNoIFN0YXR1cyBmb3IgV2ViS2l0IiwKKyAgInZlcnNpb24iOiAiMC42IiwKKyAgImRl
c2NyaXB0aW9uIjogIlNob3dzIHdoZXRoZXIgYSBwYXRjaCBpbiBXZWJLaXQncyBCdWd6aWxsYSBp
bnN0YW5jZSBoYXMgcGFzc2VkIHRoZSB2YXJpb3VzIGJvdHMuIiwKKyAgInBlcm1pc3Npb25zIjog
WworICAgICJodHRwOi8vc3ZuLndlYmtpdC5vcmcvIgorICBdLAorICAiYmFja2dyb3VuZF9wYWdl
IjogImJhY2tncm91bmQuaHRtbCIsCisgICJjb250ZW50X3NjcmlwdHMiOiBbeworICAgICJtYXRj
aGVzIjogWyJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9KiJdLAorICAg
ICJqcyI6IFsic2hvdy1idWcuanMiXQorICB9LCB7CisgICAgIm1hdGNoZXMiOiBbImh0dHBzOi8v
YnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPSomYWN0aW9uPWVkaXQiXSwKKyAgICAi
anMiOiBbImVkaXQtYXR0YWNobWVudC5qcyJdCisgIH0sIHsKKyAgICAibWF0Y2hlcyI6IFsiaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9KiZhY3Rpb249cmV2aWV3Zm9y
bSJdLAorICAgICJqcyI6IFsiZWRpdC1hdHRhY2htZW50LmpzIl0sCisgICAgImFsbF9mcmFtZXMi
OiB0cnVlCisgIH1dCit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TdGF0dXNCdWJibGVFeHRl
bnNpb24vc2hvdy1idWcuanMgYi9XZWJLaXRUb29scy9TdGF0dXNCdWJibGVFeHRlbnNpb24vc2hv
dy1idWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTExZjZhNQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1N0YXR1c0J1YmJsZUV4dGVuc2lvbi9zaG93LWJ1
Zy5qcwpAQCAtMCwwICsxLDk3IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMDkgQWRhbSBCYXJ0aC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIAorLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisvLyBtZXQ6CisvLyAKKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFkYW0gQmFydGggbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorLy8gCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisv
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisoZnVuY3Rpb24oKSB7CisgIGZ1bmN0aW9uIGNyZWF0ZUJhZGdlKGh0bWws
IHRpdGxlKSB7CisgICAgdmFyIGJhZGdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bhbicp
OworICAgIGJhZGdlLmlubmVySFRNTCA9IGh0bWw7CisgICAgYmFkZ2UudGl0bGUgPSB0aXRsZTsK
KyAgICByZXR1cm4gYmFkZ2U7CisgIH0KKworICBmdW5jdGlvbiBzdGFySFRNTChjb2xvcikgewor
ICAgIHJldHVybiAnPHNwYW4gc3R5bGU9ImNvbG9yOiAnICsgY29sb3IgKyAnOyBjdXJzb3I6IGRl
ZmF1bHQ7IGZvbnQtc2l6ZTogMTBweCI+JiN4MjYwNTs8L3NwYW4+JworICB9CisKKyAgZnVuY3Rp
b24gY3JlYXRlUmV2aWV3ZXJCYWRnZSgpIHsKKyAgICB2YXIgaHRtbCA9IHN0YXJIVE1MKCdncmVl
bicpOworICAgIHJldHVybiBjcmVhdGVCYWRnZShodG1sLCAnUmV2aWV3ZXInKTsKKyAgfQorCisg
IGZ1bmN0aW9uIGNyZWF0ZUNvbW1pdHRlckJhZGdlKCkgeworICAgIHZhciBodG1sID0gc3RhckhU
TUwoJ2JsdWUnKTsKKyAgICByZXR1cm4gY3JlYXRlQmFkZ2UoaHRtbCwgJ0NvbW1pdHRlcicpOwor
ICB9CisgIAorICBmdW5jdGlvbiBhZGRDb250cmlidXRvclN0YXR1cygpIHsKKyAgICB2YXIgbGlu
a3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAorICAgICAgICAnLmJ6X2F0dGFjaF9leHRy
YV9pbmZvIGFbaHJlZl49Im1haWx0bzoiXScpCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5r
cy5sZW5ndGg7ICsraSkgeworICAgICAgKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpbmsg
PSBsaW5rc1tpXTsKKyAgICAgICAgdmFyIGVtYWlsID0gbGluay5ocmVmLnN1YnN0cignbWFpbHRv
OicubGVuZ3RoKTsKKyAgICAgICAgY2hyb21lLmV4dGVuc2lvbi5zZW5kUmVxdWVzdCh7ZW1haWw6
IGVtYWlsfSwgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICB2YXIgYmFkZ2U7CisgICAg
ICAgICAgaWYgKHJlc3BvbnNlLnJldmlld2VyKQorICAgICAgICAgICAgYmFkZ2UgPSBjcmVhdGVS
ZXZpZXdlckJhZGdlKCk7CisgICAgICAgICAgZWxzZSBpZiAocmVzcG9uc2UuY29tbWl0dGVyKQor
ICAgICAgICAgICAgYmFkZ2UgPSBjcmVhdGVDb21taXR0ZXJCYWRnZSgpOworICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICBsaW5rLnBhcmVudE5vZGUuaW5zZXJ0
QmVmb3JlKGJhZGdlLCBsaW5rLm5leHRTaWJsaW5nKTsKKyAgICAgICAgfSk7CisgICAgICB9KSgp
OworICAgIH0KKyAgfQorCisgIGZ1bmN0aW9uIGFkZFBhdGNoU3RhdHVzKCkgeworICAgIHZhciBs
aW5rcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7CisKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgKytpKSB7CisgICAgICB2YXIgbGluayA9IGxpbmtz
W2ldOworICAgICAgdmFyIG1hdGNoID0gbGluay5ocmVmLm1hdGNoKC9hdHRhY2htZW50LmNnaVw/
aWQ9KFxkKylcJmFjdGlvbj1kaWZmLyk7CisgICAgICBpZiAoIW1hdGNoKQorICAgICAgICBjb250
aW51ZTsKKworICAgICAgdmFyIGlkID0gbWF0Y2hbMV07CisgICAgICB2YXIgdXJsID0gJ2h0dHBz
Oi8vd2Via2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90LmNvbS9zdGF0dXMtYnViYmxlLycgKyBpZDsK
KyAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAg
ICAgIGlmcmFtZS5zcmMgPSB1cmw7CisgICAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTcwcHgn
OworICAgICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxOHB4JzsKKyAgICAgIGlmcmFtZS5zdHls
ZS5ib3JkZXIgPSAnbm9uZSc7CisgICAgICBpZnJhbWUuc2Nyb2xsaW5nID0gJ25vJzsKKyAgICAg
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgIGRpdi5hcHBl
bmRDaGlsZChpZnJhbWUpOworICAgICAgbGluay5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkaXYs
IGxpbmsubmV4dFNpYmxpbmcpOworICAgIH0KKyAgfQorCisgIGFkZENvbnRyaWJ1dG9yU3RhdHVz
KCk7CisgIGFkZFBhdGNoU3RhdHVzKCk7Cit9KSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46121</attachid>
            <date>2010-01-08 02:04:43 -0800</date>
            <delta_ts>2010-01-08 13:30:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33368-20100108020441.patch</filename>
            <type>text/plain</type>
            <size>2504</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0J1Z3NTaXRlL0NoYW5nZUxvZyBiL0J1Z3NTaXRlL0NoYW5nZUxvZwppbmRl
eCBiYzU5ZmVlLi5lMGUwMjBlIDEwMDY0NAotLS0gYS9CdWdzU2l0ZS9DaGFuZ2VMb2cKKysrIGIv
QnVnc1NpdGUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEtMDggIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaG93IHBhdGNoIHN0YXR1cyBpbiBidWdzLndlYmtpdC5vcmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzY4CisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuIGlmcmFtZSB0byB0aGUgc2hvd19idWcgcGFnZSBhbmQg
dGhlIGVkaXQgYXR0YWNobWVudAorICAgICAgICBwYWdlIHRoYXQgZGlzcGxheXMgd2hldGhlciB0
aGUgYXR0YWNobWVudCBwYXNzZWQgdGhlIHZhcmlvdXMgYm90cy4KKworICAgICAgICAqIHRlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2VkaXQuaHRtbC50bXBsOgorICAgICAgICAqIHRlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2xpc3QuaHRtbC50bXBsOgorCiAyMDA5LTEyLTA3ICBT
aGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGF2aWQgS2lsemVyLgpkaWZmIC0tZ2l0IGEvQnVnc1NpdGUvdGVtcGxhdGUvZW4vY3Vz
dG9tL2F0dGFjaG1lbnQvZWRpdC5odG1sLnRtcGwgYi9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0
b20vYXR0YWNobWVudC9lZGl0Lmh0bWwudG1wbAppbmRleCBjNmI1YWI0Li4zNTNjNDAzIDEwMDY0
NAotLS0gYS9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9lZGl0Lmh0bWwu
dG1wbAorKysgYi9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9lZGl0Lmh0
bWwudG1wbApAQCAtMjU2LDYgKzI1NiwxNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF0dGFjaF9pZCA9IGF0dGFjaG1lbnQuaWQgJV08YnI+CiAgICAgICAg
IFslIEVORCAlXQogCitbJSMgaWYgV0VCS0lUX0NIQU5HRVMgJV0KKyAgICAgICAgWyUgSUYgYXR0
YWNobWVudC5pc3BhdGNoICVdCisgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c0J1YmJsZSI+Cisg
ICAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2Via2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90
LmNvbS9zdGF0dXMtYnViYmxlL1slIGF0dGFjaG1lbnQuaWQgJV0iCisgICAgICAgICAgICAgICAg
ICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlcjogbm9uZTsiIHNjcm9s
bGluZz0ibm8iPgorICAgICAgICAgIDwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPgorICAgICAgICBbJSBFTkQgJV0KK1slIyBlbmRpZiAvLyBXRUJLSVRfQ0hBTkdFUyAlXQor
CiAgICAgICAgIDxkaXYgaWQ9InNtYWxsQ29tbWVudEZyYW1lIj4KICAgICAgICAgICA8Yj48c21h
bGw+PGxhYmVsIGZvcj0iY29tbWVudCI+Q29tbWVudDwvbGFiZWw+IChvbiB0aGUKICAgICAgICAg
ICBbJSsgdGVybXMuYnVnICVdKTo8L3NtYWxsPjwvYj48YnI+CmRpZmYgLS1naXQgYS9CdWdzU2l0
ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9saXN0Lmh0bWwudG1wbCBiL0J1Z3NTaXRl
L3RlbXBsYXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2xpc3QuaHRtbC50bXBsCmluZGV4IGJlOTg0
MjUuLmZkMjIwMmEgMTAwNjQ0Ci0tLSBhL0J1Z3NTaXRlL3RlbXBsYXRlL2VuL2N1c3RvbS9hdHRh
Y2htZW50L2xpc3QuaHRtbC50bXBsCisrKyBiL0J1Z3NTaXRlL3RlbXBsYXRlL2VuL2N1c3RvbS9h
dHRhY2htZW50L2xpc3QuaHRtbC50bXBsCkBAIC0xMzgsNiArMTM4LDE1IEBACiAgICAgICAgICAg
ICB8IDxhIGhyZWY9ImF0dGFjaG1lbnQuY2dpP2lkPVslIGF0dGFjaG1lbnQuaWQgJV0mYW1wO2Fj
dGlvbj1kaWZmIj5EaWZmPC9hPgogICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgIFslIEhv
b2sucHJvY2VzcygiYWN0aW9uIikgJV0KK1slIyBpZiBXRUJLSVRfQ0hBTkdFUyAlXQorICAgICAg
ICAgIFslIElGIGF0dGFjaG1lbnQuaXNwYXRjaCAlXQorICAgICAgICAgIDxkaXYgY2xhc3M9InN0
YXR1c0J1YmJsZSI+CisgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93ZWJraXQtY29t
bWl0LXF1ZXVlLmFwcHNwb3QuY29tL3N0YXR1cy1idWJibGUvWyUgYXR0YWNobWVudC5pZCAlXSIK
KyAgICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAxOHB4OyBi
b3JkZXI6IG5vbmU7IiBzY3JvbGxpbmc9Im5vIj4KKyAgICAgICAgICAgIDwvaWZyYW1lPgorICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAgIFslIEVORCAlXQorWyUjIGVuZGlmIC8vIFdFQktJVF9D
SEFOR0VTICVdCiAgICAgICAgIDwvdGQ+CiAgICAgICA8L3RyPgogICAgIFslIEVORCAlXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46154</attachid>
            <date>2010-01-08 13:31:04 -0800</date>
            <delta_ts>2010-01-08 14:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33368-20100108133101.patch</filename>
            <type>text/plain</type>
            <size>3679</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0J1Z3NTaXRlL0NoYW5nZUxvZyBiL0J1Z3NTaXRlL0NoYW5nZUxvZwppbmRl
eCBiYzU5ZmVlLi5iOWRmNDFjIDEwMDY0NAotLS0gYS9CdWdzU2l0ZS9DaGFuZ2VMb2cKKysrIGIv
QnVnc1NpdGUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMDggIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaG93IHBhdGNoIHN0YXR1cyBpbiBidWdzLndlYmtpdC5vcmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzY4CisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuIGlmcmFtZSB0byB0aGUgc2hvd19idWcgcGFnZSBhbmQg
dGhlIGVkaXQgYXR0YWNobWVudAorICAgICAgICBwYWdlIHRoYXQgZGlzcGxheXMgd2hldGhlciB0
aGUgYXR0YWNobWVudCBwYXNzZWQgdGhlIHZhcmlvdXMgYm90cy4KKworICAgICAgICAqIHRlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2VkaXQuaHRtbC50bXBsOgorICAgICAgICAqIHRlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2xpc3QuaHRtbC50bXBsOgorICAgICAgICAqIHRlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L3Jldmlld2Zvcm0uaHRtbC50bXBsOgorCiAyMDA5LTEy
LTA3ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgpkaWZmIC0tZ2l0IGEvQnVnc1NpdGUvdGVtcGxhdGUv
ZW4vY3VzdG9tL2F0dGFjaG1lbnQvZWRpdC5odG1sLnRtcGwgYi9CdWdzU2l0ZS90ZW1wbGF0ZS9l
bi9jdXN0b20vYXR0YWNobWVudC9lZGl0Lmh0bWwudG1wbAppbmRleCBjNmI1YWI0Li44NWU3ODY5
IDEwMDY0NAotLS0gYS9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9lZGl0
Lmh0bWwudG1wbAorKysgYi9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9l
ZGl0Lmh0bWwudG1wbApAQCAtMjU2LDYgKzI1NiwxOSBAQAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaF9pZCA9IGF0dGFjaG1lbnQuaWQgJV08YnI+CiAg
ICAgICAgIFslIEVORCAlXQogCitbJSMgaWYgV0VCS0lUX0NIQU5HRVMgJV0KKyAgICAgICAgWyUg
SUYgYXR0YWNobWVudC5pc3BhdGNoICVdCisgICAgICAgIDxiPjxzbWFsbD5Cb3QgU3RhdHVzOjwv
c21hbGw+PC9iPgorCisgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c0J1YmJsZSI+CisgICAgICAg
ICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2Via2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90LmNvbS9z
dGF0dXMtYnViYmxlL1slIGF0dGFjaG1lbnQuaWQgJV0iCisgICAgICAgICAgICAgICAgICBzdHls
ZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlcjogbm9uZTsiIHNjcm9sbGluZz0i
bm8iPgorICAgICAgICAgIDwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPgor
ICAgICAgICBbJSBFTkQgJV0KK1slIyBlbmRpZiAvLyBXRUJLSVRfQ0hBTkdFUyAlXQorCiAgICAg
ICAgIDxkaXYgaWQ9InNtYWxsQ29tbWVudEZyYW1lIj4KICAgICAgICAgICA8Yj48c21hbGw+PGxh
YmVsIGZvcj0iY29tbWVudCI+Q29tbWVudDwvbGFiZWw+IChvbiB0aGUKICAgICAgICAgICBbJSsg
dGVybXMuYnVnICVdKTo8L3NtYWxsPjwvYj48YnI+CmRpZmYgLS1naXQgYS9CdWdzU2l0ZS90ZW1w
bGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9saXN0Lmh0bWwudG1wbCBiL0J1Z3NTaXRlL3RlbXBs
YXRlL2VuL2N1c3RvbS9hdHRhY2htZW50L2xpc3QuaHRtbC50bXBsCmluZGV4IGJlOTg0MjUuLmZk
MjIwMmEgMTAwNjQ0Ci0tLSBhL0J1Z3NTaXRlL3RlbXBsYXRlL2VuL2N1c3RvbS9hdHRhY2htZW50
L2xpc3QuaHRtbC50bXBsCisrKyBiL0J1Z3NTaXRlL3RlbXBsYXRlL2VuL2N1c3RvbS9hdHRhY2ht
ZW50L2xpc3QuaHRtbC50bXBsCkBAIC0xMzgsNiArMTM4LDE1IEBACiAgICAgICAgICAgICB8IDxh
IGhyZWY9ImF0dGFjaG1lbnQuY2dpP2lkPVslIGF0dGFjaG1lbnQuaWQgJV0mYW1wO2FjdGlvbj1k
aWZmIj5EaWZmPC9hPgogICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgIFslIEhvb2sucHJv
Y2VzcygiYWN0aW9uIikgJV0KK1slIyBpZiBXRUJLSVRfQ0hBTkdFUyAlXQorICAgICAgICAgIFsl
IElGIGF0dGFjaG1lbnQuaXNwYXRjaCAlXQorICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c0J1
YmJsZSI+CisgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93ZWJraXQtY29tbWl0LXF1
ZXVlLmFwcHNwb3QuY29tL3N0YXR1cy1idWJibGUvWyUgYXR0YWNobWVudC5pZCAlXSIKKyAgICAg
ICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAxOHB4OyBib3JkZXI6
IG5vbmU7IiBzY3JvbGxpbmc9Im5vIj4KKyAgICAgICAgICAgIDwvaWZyYW1lPgorICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgIFslIEVORCAlXQorWyUjIGVuZGlmIC8vIFdFQktJVF9DSEFOR0VT
ICVdCiAgICAgICAgIDwvdGQ+CiAgICAgICA8L3RyPgogICAgIFslIEVORCAlXQpkaWZmIC0tZ2l0
IGEvQnVnc1NpdGUvdGVtcGxhdGUvZW4vY3VzdG9tL2F0dGFjaG1lbnQvcmV2aWV3Zm9ybS5odG1s
LnRtcGwgYi9CdWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9yZXZpZXdmb3Jt
Lmh0bWwudG1wbAppbmRleCBjYmZkMWQ4Li44NjBmMTEyIDEwMDY0NAotLS0gYS9CdWdzU2l0ZS90
ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9yZXZpZXdmb3JtLmh0bWwudG1wbAorKysgYi9C
dWdzU2l0ZS90ZW1wbGF0ZS9lbi9jdXN0b20vYXR0YWNobWVudC9yZXZpZXdmb3JtLmh0bWwudG1w
bApAQCAtODQsNiArODQsMTcgQEAKICAgICBbJSBFTkQgJV0KIDwvdGQ+CiA8dGQ+CitbJSBJRiBp
c3BhdGNoICVdCisgIDxiPjxzbWFsbD5Cb3QgU3RhdHVzOjwvc21hbGw+PC9iPgorCisgIDxkaXYg
Y2xhc3M9InN0YXR1c0J1YmJsZSI+CisgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2Via2l0LWNv
bW1pdC1xdWV1ZS5hcHBzcG90LmNvbS9zdGF0dXMtYnViYmxlL1slIGF0dGFjaG1lbnQuaWQgJV0i
CisgICAgICAgICAgICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlcjog
bm9uZTsiIHNjcm9sbGluZz0ibm8iPgorICAgIDwvaWZyYW1lPgorICA8L2Rpdj4KK1slIEVORCAl
XQorPC90ZD4KKzx0ZD4KIEJhY2sgdG8gPGEgaHJlZj0ic2hvd19idWcuY2dpP2lkPVslIGF0dGFj
aG1lbnQuYnVnX2lkICVdIiB0YXJnZXQ9Il90b3AiPlslIHRlcm1zLkJ1ZyAlXSAjWyUgYXR0YWNo
bWVudC5idWdfaWQgJV08L2E+CiA8L3RkPgogPHRkPgpAQCAtOTksNyArMTEwLDcgQEAgQmFjayB0
byA8YSBocmVmPSJzaG93X2J1Zy5jZ2k/aWQ9WyUgYXR0YWNobWVudC5idWdfaWQgJV0iIHRhcmdl
dD0iX3RvcCI+WyUgdGVybXMKIDwvdGQ+CiA8L3RyPgogPHRyPgotPHRkIGNvbHNwYW49IjQiPgor
PHRkIGNvbHNwYW49IjUiPgogRW50ZXIgY29tbWVudHMgYmVsb3c6PGJyPgogPHRleHRhcmVhIGlk
PWNvbW1lbnQgbmFtZT0iY29tbWVudCIgd3JhcD0ic29mdCI+WyUgcXVvdGVkcGF0Y2ggRklMVEVS
IGh0bWwgJV08L3RleHRhcmVhPjxicj4KIDwvdHI+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>