<?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>33639</bug_id>
          
          <creation_ts>2010-01-13 16:38:52 -0800</creation_ts>
          <short_desc>check-webkit-style: WebKit needs a python style checker</short_desc>
          <delta_ts>2010-04-01 23:16:28 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          <dependson>35163</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>180463</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 16:38:52 -0800</bug_when>
    <thetext>WebKit needs a python style checker

We try to follow PEP8.  I&apos;m certain there must be a PEP8 checker out there we could use.  We can use webkitpy/autoinstall.py to autoinstall it if it&apos;s not available under a compatible license.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180464</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 16:39:46 -0800</bug_when>
    <thetext>We also need to update the WebKit style guide html page to say that we try to follow PEP8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180466</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 16:42:10 -0800</bug_when>
    <thetext>http://pypi.python.org/pypi/pep8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180467</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 16:44:23 -0800</bug_when>
    <thetext>pep8.py seems to be the cannon.  I&apos;m not sure what the &quot;expat&quot; license is or if it&apos;s compatible with WebKit&apos;s repository however.

http://pypi.python.org/pypi/pylint is a linter which does some style checking.  That&apos;s unfortunately GPL though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180469</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 16:44:56 -0800</bug_when>
    <thetext>http://www.python.org/dev/peps/pep-0008/ is the original PEP8 document by the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180516</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-13 19:27:15 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; WebKit needs a python style checker
&gt; 
&gt; We try to follow PEP8.  I&apos;m certain there must be a PEP8 checker out there we
&gt; could use.  We can use webkitpy/autoinstall.py to autoinstall it if it&apos;s not
&gt; available under a compatible license.

Let&apos;s also add PEP 257, which covers doc strings.  This URL says the Python style guide comprises both PEP 8 and PEP 257:

http://www.python.org/doc/essays/styleguide.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180519</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-13 19:35:26 -0800</bug_when>
    <thetext>Can we use this thread to come to agreement on double vs. single quotes?  This came up a day or two ago:

https://bugs.webkit.org/show_bug.cgi?id=33454

I propose that we always use double quotes, unless the use of single quotes results in less escaping.  To be precise, maybe we can say that single quotes should be used in place of double quotes if and only if the string contains a double quote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180551</commentid>
    <comment_count>7</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-01-13 22:45:04 -0800</bug_when>
    <thetext>I strongly agree to have a style guide for python. It should be PEP8 with a few modifications. The candidates of the modifications I remember are

- (as Chris proposed) use double-quotes for string literals. (We may be able to use single-quoted literals for strings which have double-quotes in the string? E.g., &apos;&lt;a href=&quot;webkit.org&quot;&gt;webkit&lt;/a&gt;&apos;)
- don&apos;t put (or put) parentheses for if, elif, and while statements.
- remove 80 characters per a line rule to be consistent with other code in WebKit?
- prefer &quot;%(file)s:%(line)d&quot; % {&quot;file&quot;: file, &quot;line&quot;: line} to &quot;%s:%d&quot; % (file, line) for long string interpolations.
- prefer r&quot;(?P&lt;file&gt;\w+):(?P&lt;line&gt;\d+)&quot; to r&quot;(\w+):(\d+)&quot; for long regexps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186305</commentid>
    <comment_count>8</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-01-31 22:43:35 -0800</bug_when>
    <thetext>&gt; - remove 80 characters per a line rule to be consistent with other code in
&gt; WebKit?

Chris informed me we&apos;ve recently started using this 80 characters rule in Bug 34379. So, we may want some guidelines for line-breaking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186309</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-31 22:59:16 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; - remove 80 characters per a line rule to be consistent with other code in
&gt; &gt; WebKit?
&gt; 
&gt; Chris informed me we&apos;ve recently started using this 80 characters rule in Bug
&gt; 34379. So, we may want some guidelines for line-breaking.

Eric and Adam started doing this before me in some other check-ins, for example--

http://trac.webkit.org/changeset/53776

I don&apos;t recall there being any objections to adopting PEP 8 in its entirety, when the idea was e-mailed to webkit-dev.  I guess we can consider it formally adopted once it&apos;s on the web site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187927</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-04 13:48:00 -0800</bug_when>
    <thetext>I&apos;ll take this on if no one else is.  Looks like it might be fun and not too time-consuming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191963</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-19 10:29:09 -0800</bug_when>
    <thetext>Added check-webkit-style: to the beginning of the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193509</commentid>
    <comment_count>12</comment_count>
      <attachid>49439</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 14:32:50 -0800</bug_when>
    <thetext>Created attachment 49439
Proposed patch

cq- since I would need to rebase the patch after committing the patch this report depends on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193510</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 14:34:41 -0800</bug_when>
    <thetext>Attachment 49439 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/Scripts/webkitpy/style/processors/python_unittest_input.py:2:  blank line at end of file  [pep8/W391] [5]
Total errors found: 1 in 8 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>193515</commentid>
    <comment_count>14</comment_count>
      <attachid>49442</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 14:38:17 -0800</bug_when>
    <thetext>Created attachment 49442
Proposed patch 2

Added code comments to python_unittest_input.py so it is clearer what the style error is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193517</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 14:41:32 -0800</bug_when>
    <thetext>Attachment 49442 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/Scripts/webkitpy/style/processors/python_unittest_input.py:2:  trailing whitespace  [pep8/W291] [5]
Total errors found: 1 in 8 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>193520</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-24 14:44:29 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Attachment 49439 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
&gt; WebKitTools/Scripts/webkitpy/style/processors/python_unittest_input.py:2: 
&gt; blank line at end of file  [pep8/W391] [5]
&gt; Total errors found: 1 in 8 files

Well, what do you know -- it works! :)

The required pep8.py (or pep8.pyc) file must be left over from the autoinstalling done by the other patch:

https://bugs.webkit.org/show_bug.cgi?id=35163

(This error is a deliberate one, by the way, since it is input to a unit test.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193830</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-25 12:23:11 -0800</bug_when>
    <thetext>I&apos;m super excited about this patch.  Thanks Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193854</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-25 12:57:39 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I&apos;m super excited about this patch.  Thanks Chris!

Thanks, guys.  And thanks a lot for the review, David.

Can one of you do me a favor and review the patch on which this depends?

https://bugs.webkit.org/show_bug.cgi?id=35163

pep8 needs to auto-install for this patch to work.  (It was sort of an accident that it was able to work on this patch, since I guess the copy of pep8 was left on disk from the other patch getting tried out.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194473</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-27 00:26:18 -0800</bug_when>
    <thetext>Manually committed (via &quot;git svn dcommit&quot;):

http://trac.webkit.org/changeset/55350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194648</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-01 01:21:00 -0800</bug_when>
    <thetext>Rolled out (via &quot;git svn dcommit&quot;):

http://trac.webkit.org/changeset/55361

Because of--

https://bugs.webkit.org/show_bug.cgi?id=35163#c21</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194651</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-01 01:47:34 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Rolled out (via &quot;git svn dcommit&quot;):
&gt; 
&gt; http://trac.webkit.org/changeset/55361
&gt; 
&gt; Because of--
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=35163#c21

Fixed up ChangeLog after rollout, after discussing proper protocol with Shinichiro:

http://trac.webkit.org/changeset/55362

(This is my first time rolling out.  Thanks again for your help, Shinichiro!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206044</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-30 09:36:44 -0700</bug_when>
    <thetext>The bug report on which this depends has been updated with a new patch:

https://bugs.webkit.org/show_bug.cgi?id=35163

Once that gets r+&apos;ed, I can re-land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206982</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-31 23:37:08 -0700</bug_when>
    <thetext>Committed:

http://trac.webkit.org/changeset/56899</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207032</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 00:53:20 -0700</bug_when>
    <thetext>Have I mentioned recently how much I hate 80-col wrap?  What a waste of time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207118</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 06:31:25 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Have I mentioned recently how much I hate 80-col wrap?  What a waste of time...

FYI, I tried--

&gt; check-webkit-style --filter -,+pep8/E501  WebKitTools/Scripts/webkitpy

and got--

...
WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py:63:  line too long (138 characters)  [pep8/E501] [5]
WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py:64:  line too long (146 characters)  [pep8/E501] [5]
WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer_unittest.py:53:  line too long (95 characters)  [pep8/E501] [5]
Total errors found: 1432 in 475 files
&gt;

(Note that I had to explicitly add &quot;pep8/e501&quot; to the list of categories to get this to work.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207270</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 11:27:10 -0700</bug_when>
    <thetext>Sorry.  My statement wasn&apos;t very helpful.

I don&apos;t understand your comment above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207297</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 12:02:15 -0700</bug_when>
    <thetext>I think we should turn off the 80c check for now, at least until we fix other more useful style violations in the code.  Right now we&apos;re just assaulting committers with walls of text. :(
https://bugs.webkit.org/show_bug.cgi?id=36394#c37</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207299</commentid>
    <comment_count>28</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 12:05:01 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Sorry.  My statement wasn&apos;t very helpful.
&gt; 
&gt; I don&apos;t understand your comment above?

Oh, I was just running check-webkit-style for fun to see how many line-too-long errors we have in webkitpy (i.e. longer than 79 characters) -- using the filter option to restrict to that pep8 error category.

The answer is 1432 lines of code which you can see from the last output line of that comment.  (Much higher than I thought it would be, incidentally.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207308</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-01 12:20:12 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; I think we should turn off the 80c check for now, at least until we fix other
&gt; more useful style violations in the code.  Right now we&apos;re just assaulting
&gt; committers with walls of text. :(
&gt; https://bugs.webkit.org/show_bug.cgi?id=36394#c37

Blah.  We should just go and fix these.  It&apos;s not very hard if you turn an 80c guide on in your editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207313</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 12:27:29 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #27)
&gt; &gt; I think we should turn off the 80c check for now, at least until we fix other
&gt; &gt; more useful style violations in the code.  Right now we&apos;re just assaulting
&gt; &gt; committers with walls of text. :(
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=36394#c37
&gt; 
&gt; Blah.  We should just go and fix these.  It&apos;s not very hard if you turn an 80c
&gt; guide on in your editor.

Personally I think we should strike this from our style guide.  It adds no value to our code.  Anyone who wants a fully-PEP8 webkit can run a re-wrapping script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207314</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-01 12:30:09 -0700</bug_when>
    <thetext>&gt; Personally I think we should strike this from our style guide.  It adds no
&gt; value to our code.  Anyone who wants a fully-PEP8 webkit can run a re-wrapping
&gt; script.

We had this discussion on webkit-dev.  The conclusion was that there&apos;s value in match PEP8 fully instead of picking and choosing what rules we care about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207326</commentid>
    <comment_count>32</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-04-01 12:49:35 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; &gt; Personally I think we should strike this from our style guide.  It adds no
&gt; &gt; value to our code.  Anyone who wants a fully-PEP8 webkit can run a re-wrapping
&gt; &gt; script.
&gt; 
&gt; We had this discussion on webkit-dev.  The conclusion was that there&apos;s value in
&gt; match PEP8 fully instead of picking and choosing what rules we care about.

fwiw, I agree with Eric (but I don&apos;t do much python coding in wk lately).

Seeing this in practice and how it tortures code (and devs who have to squeeze the code like this) pains me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207339</commentid>
    <comment_count>33</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 13:02:39 -0700</bug_when>
    <thetext>I&apos;m going to turn off the rule.  Our official WebKit style can be PEP8 - line wrapping.  I&apos;d also be OK with some higher limit that we&apos;d never hit, like 120 or 160 or whatever the longest line in the codebase is.

If someone wants to reformat all the code and then turn back on the rule,  we could argue about the formatting in that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207341</commentid>
    <comment_count>34</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 13:04:48 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; &gt; Personally I think we should strike this from our style guide.  It adds no
&gt; &gt; &gt; value to our code.  Anyone who wants a fully-PEP8 webkit can run a re-wrapping
&gt; &gt; &gt; script.
&gt; &gt; 
&gt; &gt; We had this discussion on webkit-dev.  The conclusion was that there&apos;s value in
&gt; &gt; match PEP8 fully instead of picking and choosing what rules we care about.
&gt; 
&gt; fwiw, I agree with Eric (but I don&apos;t do much python coding in wk lately).
&gt; 
&gt; Seeing this in practice and how it tortures code (and devs who have to squeeze
&gt; the code like this) pains me.

Personally, I dislike longer lines and am okay with the guideline.  Maybe there is some middle ground (like 90 or 100 chars).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207443</commentid>
    <comment_count>35</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 15:36:48 -0700</bug_when>
    <thetext>This reminds me.  There is a section of scm_unittests.py which currently needs the extra spaces at end of line, violating W291.  We may have to adjust scm_unittests.py or ignore W291 for that file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207445</commentid>
    <comment_count>36</comment_count>
      <attachid>52345</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 15:38:36 -0700</bug_when>
    <thetext>Created attachment 52345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207446</commentid>
    <comment_count>37</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 15:40:38 -0700</bug_when>
    <thetext>Committed r56942: &lt;http://trac.webkit.org/changeset/56942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207482</commentid>
    <comment_count>38</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 16:39:19 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; This reminds me.  There is a section of scm_unittests.py which currently needs
&gt; the extra spaces at end of line, violating W291.  We may have to adjust
&gt; scm_unittests.py or ignore W291 for that file.

That&apos;s not too unusual for unit tests testing patch-related code.  There are a few other Perl and Python files I can think of that have that same issue or a similar issue.

I think it&apos;s okay just to continue ignoring them.  Since check-webkit-style only reports errors in changed lines, we&apos;ll only be seeing those errors when the actual unit test cases change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207488</commentid>
    <comment_count>39</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 16:45:04 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Created an attachment (id=52345) [details]
&gt; Patch

@@ -47,6 +47,11 @@ class PythonProcessor(object):
             pep8_code = text[:4]
             pep8_message = text[5:]
 
+            # We ignore PEP8/E501 -- line limit of 79 characters. Most of our
+            # python code fails E501 and the rest of WebKit has no wrap limit.
+            if pep8_code == &quot;E501&quot;:
+                return
+
             category = &quot;pep8/&quot; + pep8_code

It probably would have been better to do this in the calling code rather than in the processor itself -- e.g. by adding an additional rule to the _BASE_FILTER_RULES exclusion list:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/checker.py#L72

Otherwise, someone can&apos;t check for long lines using the custom --filter-rules option even if they wanted to (e.g. as I did above in comment 25).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207493</commentid>
    <comment_count>40</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-01 16:48:09 -0700</bug_when>
    <thetext>rs=me to fix my hack to be more elegant. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207695</commentid>
    <comment_count>41</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-01 23:16:28 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; rs=me to fix my hack to be more elegant. :)

Rewrote the patch here:

http://trac.webkit.org/changeset/56973

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49439</attachid>
            <date>2010-02-24 14:32:50 -0800</date>
            <delta_ts>2010-02-24 14:38:17 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-33639-1.diff</filename>
            <type>text/plain</type>
            <size>13103</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzNDQ2MWUzLi4xOGU3MDc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDIt
MjQgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgUHl0aG9uIHN0eWxlIGNo
ZWNraW5nIHRvIGNoZWNrLXdlYmtpdC1zdHlsZSB1c2luZworICAgICAgICB0aGUgdGhpcmQtcGFy
dHkgcGVwOCBtb2R1bGUgKHZpYSBhdXRvaW5zdGFsbCkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNjM5CisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBBZGRlZCBQWVRIT04gdG8gRmls
ZVR5cGUuCisgICAgICAgICAgLSBVcGRhdGVkIFByb2Nlc3NvckRpc3BhdGNoZXIgdG8gcmV0dXJu
IGEgUHl0aG9uUHJvY2Vzc29yCisgICAgICAgICAgICBmb3IgKi5weSBmaWxlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAgICAg
ICAtIFVwZGF0ZWQgdGhlIFByb2Nlc3NvckRpc3BhdGNoZXIgdW5pdCB0ZXN0cyBmb3IgKi5weSBm
aWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRo
b24ucHk6IEFkZGVkLgorICAgICAgICAgIC0gQWRkZWQgUHl0aG9uUHJvY2Vzc29yIGNsYXNzLgor
ICAgICAgICAKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvcHl0
aG9uX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgICAtIEFkZGVkIFB5dGhvblByb2Nlc3Nv
ciB1bml0IHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNz
b3JzL3B5dGhvbl91bml0dGVzdF9pbnB1dC5weTogQWRkZWQuCisgICAgICAgICAgLSBBZGRlZCBh
IHNhbXBsZSBQeXRob24gZmlsZSB0byB0ZXN0IHRoZSBQeXRob25Qcm9jZXNzb3IucHJvY2Vzcygp
CisgICAgICAgICAgICBjb2RlIHBhdGggKHNpbmNlIHBlcDggYWNjZXB0cyBhIGZpbGUgcGF0aCku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weToKKyAgICAg
ICAgICAtIFVwZGF0ZWQgdGhlIHN0eWxlIHVuaXQgdGVzdCBmaWxlIHRvIGltcG9ydCBweXRob25f
dW5pdHRlc3QucHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlX3JlZmVyZW5j
ZXMucHk6CisgICAgICAgICAgLSBBZGp1c3RlZCBzdHlsZSByZWZlcmVuY2VzIHRvIGltcG9ydCBw
ZXA4LgorCiAyMDEwLTAyLTIxICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25la0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDVkMzYxODMuLjdkMzEzZTUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAg
LTQyLDYgKzQyLDcgQEAgZnJvbSBvcHRwYXJzZXIgaW1wb3J0IERlZmF1bHRDb21tYW5kT3B0aW9u
VmFsdWVzCiBmcm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBjaGVja19ub19jYXJyaWFnZV9y
ZXR1cm4KIGZyb20gcHJvY2Vzc29ycy5jb21tb24gaW1wb3J0IGNhdGVnb3JpZXMgYXMgQ29tbW9u
Q2F0ZWdvcmllcwogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCitmcm9t
IHByb2Nlc3NvcnMucHl0aG9uIGltcG9ydCBQeXRob25Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29y
cy50ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCiAKIApAQCAtMjAxLDcgKzIwMiw4IEBAIGNsYXNz
IEZpbGVUeXBlOgogICAgIE5PTkUgPSAxCiAgICAgIyBBbHBoYWJldGl6ZSByZW1haW5pbmcgdHlw
ZXMKICAgICBDUFAgPSAyCi0gICAgVEVYVCA9IDMKKyAgICBQWVRIT04gPSAzCisgICAgVEVYVCA9
IDQKIAogCiBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyKG9iamVjdCk6CkBAIC0yMjIsNyArMjI0
LDYgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICAnbW0nLAog
ICAgICAgICAncGhwJywKICAgICAgICAgJ3BtJywKLSAgICAgICAgJ3B5JywKICAgICAgICAgJ3R4
dCcsCiAgICAgICAgICkKIApAQCAtMjU2LDYgKzI1Nyw4IEBAIGNsYXNzIFByb2Nlc3NvckRpc3Bh
dGNoZXIob2JqZWN0KToKICAgICAgICAgICAgICMgcmVhZGluZyBmcm9tIHN0ZGluLCBjcHBfc3R5
bGUgdGVzdHMgc2hvdWxkIG5vdCByZWx5IG9uCiAgICAgICAgICAgICAjIHRoZSBleHRlbnNpb24u
CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuQ1BQCisgICAgICAgIGVsaWYgZmlsZV9leHRl
bnNpb24gPT0gInB5IjoKKyAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5QWVRIT04KICAgICAg
ICAgZWxpZiAoIkNoYW5nZUxvZyIgaW4gZmlsZV9wYXRoCiAgICAgICAgICAgICAgIG9yICJXZWJL
aXRUb29scy9TY3JpcHRzLyIgaW4gZmlsZV9wYXRoCiAgICAgICAgICAgICAgIG9yIGZpbGVfZXh0
ZW5zaW9uIGluIHNlbGYudGV4dF9maWxlX2V4dGVuc2lvbnMpOgpAQCAtMjcwLDYgKzI3Myw4IEBA
IGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBmaWxlX3R5
cGUgPT0gRmlsZVR5cGUuQ1BQOgogICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gPSBzZWxmLl9m
aWxlX2V4dGVuc2lvbihmaWxlX3BhdGgpCiAgICAgICAgICAgICBwcm9jZXNzb3IgPSBDcHBQcm9j
ZXNzb3IoZmlsZV9wYXRoLCBmaWxlX2V4dGVuc2lvbiwgaGFuZGxlX3N0eWxlX2Vycm9yLCB2ZXJi
b3NpdHkpCisgICAgICAgIGVsaWYgZmlsZV90eXBlID09IEZpbGVUeXBlLlBZVEhPTjoKKyAgICAg
ICAgICAgIHByb2Nlc3NvciA9IFB5dGhvblByb2Nlc3NvcihmaWxlX3BhdGgsIGhhbmRsZV9zdHls
ZV9lcnJvcikKICAgICAgICAgZWxpZiBmaWxlX3R5cGUgPT0gRmlsZVR5cGUuVEVYVDoKICAgICAg
ICAgICAgIHByb2Nlc3NvciA9IFRleHRQcm9jZXNzb3IoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVf
ZXJyb3IpCiAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKaW5kZXggZjhiM2EzYS4uMmY5NjI3MSAx
MDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cl91bml0dGVzdC5weQpAQCAtNTEsNiArNTEsNyBAQCBmcm9tIGZpbHRlciBpbXBvcnQgRmlsdGVy
Q29uZmlndXJhdGlvbgogZnJvbSBvcHRwYXJzZXIgaW1wb3J0IEFyZ3VtZW50UGFyc2VyCiBmcm9t
IG9wdHBhcnNlciBpbXBvcnQgQ29tbWFuZE9wdGlvblZhbHVlcwogZnJvbSBwcm9jZXNzb3JzLmNw
cCBpbXBvcnQgQ3BwUHJvY2Vzc29yCitmcm9tIHByb2Nlc3NvcnMucHl0aG9uIGltcG9ydCBQeXRo
b25Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29ycy50ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCiAK
IApAQCAtMjM3LDYgKzIzOCwxMCBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRpc3Bh
dGNoZWQgcHJvY2Vzc29yIGlzIGEgQ3BwUHJvY2Vzc29yLiIiIgogICAgICAgICBzZWxmLmFzc2Vy
dF9wcm9jZXNzb3IoZmlsZV9wYXRoLCBDcHBQcm9jZXNzb3IpCiAKKyAgICBkZWYgYXNzZXJ0X3By
b2Nlc3Nvcl9weXRob24oc2VsZiwgZmlsZV9wYXRoKToKKyAgICAgICAgIiIiQXNzZXJ0IHRoYXQg
dGhlIGRpc3BhdGNoZWQgcHJvY2Vzc29yIGlzIGEgUHl0aG9uUHJvY2Vzc29yLiIiIgorICAgICAg
ICBzZWxmLmFzc2VydF9wcm9jZXNzb3IoZmlsZV9wYXRoLCBQeXRob25Qcm9jZXNzb3IpCisKICAg
ICBkZWYgYXNzZXJ0X3Byb2Nlc3Nvcl90ZXh0KHNlbGYsIGZpbGVfcGF0aCk6CiAgICAgICAgICIi
IkFzc2VydCB0aGF0IHRoZSBkaXNwYXRjaGVkIHByb2Nlc3NvciBpcyBhIFRleHRQcm9jZXNzb3Iu
IiIiCiAgICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3NvcihmaWxlX3BhdGgsIFRleHRQcm9jZXNz
b3IpCkBAIC0yNzIsNiArMjc3LDI2IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJEaXNwYXRj
aFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwcm9j
ZXNzb3IuZmlsZV9leHRlbnNpb24sIGZpbGVfZXh0ZW5zaW9uKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhwcm9jZXNzb3IuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCiAKKyAgICBkZWYgdGVzdF9w
eXRob25fcGF0aHMoc2VsZik6CisgICAgICAgICIiIlRlc3QgcGF0aHMgdGhhdCBzaG91bGQgYmUg
Y2hlY2tlZCBhcyBQeXRob24uIiIiCisgICAgICAgIHBhdGhzID0gWworICAgICAgICAgICAiZm9v
LnB5IiwKKyAgICAgICAgICAgIldlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy90ZXh0X3N0eWxl
LnB5IiwKKyAgICAgICAgXQorCisgICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRfcHJvY2Vzc29yX3B5dGhvbihwYXRoKQorCisgICAgICAgICMgQ2hlY2sg
cHJvY2Vzc29yIGF0dHJpYnV0ZXMgb24gYSB0eXBpY2FsIGlucHV0LgorICAgICAgICBmaWxlX2Jh
c2UgPSAiZm9vIgorICAgICAgICBmaWxlX2V4dGVuc2lvbiA9ICJjc3MiCisgICAgICAgIGZpbGVf
cGF0aCA9IGZpbGVfYmFzZSArICIuIiArIGZpbGVfZXh0ZW5zaW9uCisgICAgICAgIHNlbGYuYXNz
ZXJ0X3Byb2Nlc3Nvcl90ZXh0KGZpbGVfcGF0aCkKKyAgICAgICAgcHJvY2Vzc29yID0gc2VsZi5k
aXNwYXRjaF9wcm9jZXNzb3IoZmlsZV9wYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
cm9jZXNzb3IuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHByb2Nlc3Nvci5oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisKICAgICBkZWYgdGVzdF90ZXh0X3BhdGhz
KHNlbGYpOgogICAgICAgICAiIiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQgYXMg
dGV4dC4iIiIKICAgICAgICAgcGF0aHMgPSBbCkBAIC0yODMsMTQgKzMwOCwxMiBAQCBjbGFzcyBQ
cm9jZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgImZvby5tbSIsCiAgICAgICAgICAgICJmb28ucGhwIiwKICAgICAgICAgICAgImZvby5w
bSIsCi0gICAgICAgICAgICJmb28ucHkiLAogICAgICAgICAgICAiZm9vLnR4dCIsCiAgICAgICAg
ICAgICJGb29DaGFuZ2VMb2cuYmFrIiwKICAgICAgICAgICAgIldlYkNvcmUvQ2hhbmdlTG9nIiwK
ICAgICAgICAgICAgIldlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMiLAot
ICAgICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQ9c3R5bGUiLAotICAg
ICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3RleHRfc3R5bGUucHkiLAotICAg
ICAgICAgICAgXQorICAgICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQt
c3R5bGUiLAorICAgICAgICBdCiAKICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CiAgICAgICAg
ICAgICBzZWxmLmFzc2VydF9wcm9jZXNzb3JfdGV4dChwYXRoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNzb3JzL3B5dGhvbi5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob24ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFiOTM2ZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob24ucHkK
QEAgLTAsMCArMSw1NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNq
ZXJkb25la0B3ZWJraXQub3JnKQorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisiIiJTdXBwb3J0cyBjaGVja2luZyBXZWJLaXQgc3R5bGUgaW4gUHl0aG9uIGZpbGVz
LiIiIgorCitmcm9tIC4uLnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0IHBlcDgKKworCitjbGFzcyBQ
eXRob25Qcm9jZXNzb3Iob2JqZWN0KToKKworICAgICIiIlByb2Nlc3NlcyB0ZXh0IGxpbmVzIGZv
ciBjaGVja2luZyBzdHlsZS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3BhdGgs
IGhhbmRsZV9zdHlsZV9lcnJvcik6CisgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCA9IGZpbGVfcGF0
aAorICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IgPSBoYW5kbGVfc3R5bGVfZXJyb3IK
KworICAgIGRlZiBwcm9jZXNzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgIyBJbml0aWFsaXplIHBl
cDgub3B0aW9ucywgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvcgorICAgICAgICAjIENoZWNrZXIuY2hl
Y2tfYWxsKCkgdG8gZXhlY3V0ZS4KKyAgICAgICAgcGVwOC5wcm9jZXNzX29wdGlvbnMoYXJnbGlz
dD1bc2VsZi5fZmlsZV9wYXRoXSkKKworICAgICAgICBjaGVja2VyID0gcGVwOC5DaGVja2VyKHNl
bGYuX2ZpbGVfcGF0aCkKKworICAgICAgICBkZWYgX3BlcDhfaGFuZGxlX2Vycm9yKGxpbmVfbnVt
YmVyLCBvZmZzZXQsIHRleHQsIGNoZWNrKToKKyAgICAgICAgICAgICMgRklYTUU6IEluY29ycG9y
YXRlIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIGVycm9yIG91dHB1dC4KKyAgICAgICAg
ICAgICMgICAgICAgIFRoaXMgd2lsbCByZXF1aXJlIHVwZGF0aW5nIHRoZSBlcnJvciBoYW5kbGVy
IF9fY2FsbF9fCisgICAgICAgICAgICAjICAgICAgICBzaWduYXR1cmUgdG8gaW5jbHVkZSBhbiBv
cHRpb25hbCAib2Zmc2V0IiBwYXJhbWV0ZXIuCisgICAgICAgICAgICBwZXA4X2NvZGUgPSB0ZXh0
Wzo0XQorICAgICAgICAgICAgcGVwOF9tZXNzYWdlID0gdGV4dFs1Ol0KKworICAgICAgICAgICAg
Y2F0ZWdvcnkgPSAicGVwOC8iICsgcGVwOF9jb2RlCisKKyAgICAgICAgICAgIHNlbGYuX2hhbmRs
ZV9zdHlsZV9lcnJvcihsaW5lX251bWJlciwgY2F0ZWdvcnksIDUsIHBlcDhfbWVzc2FnZSkKKwor
ICAgICAgICBjaGVja2VyLnJlcG9ydF9lcnJvciA9IF9wZXA4X2hhbmRsZV9lcnJvcgorCisgICAg
ICAgIGVycm9ycyA9IGNoZWNrZXIuY2hlY2tfYWxsKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRlc3QucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvcHl0aG9uX3VuaXR0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YjBkMWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3Nv
cnMvcHl0aG9uX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDEwIENocmlzIEplcmRvbmVrIChjamVyZG9uZWtAd2Via2l0Lm9yZykKKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiVW5pdCB0ZXN0cyBmb3IgcHl0aG9uLnB5
LiIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHB5dGhvbiBpbXBvcnQg
UHl0aG9uUHJvY2Vzc29yCisKKworY2xhc3MgUHl0aG9uUHJvY2Vzc29yVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisKKyAgICAiIiJUZXN0cyB0aGUgUHl0aG9uUHJvY2Vzc29yIGNsYXNzLiIiIgor
CisgICAgZGVmIHRlc3RfaW5pdChzZWxmKToKKyAgICAgICAgIiIiVGVzdCBfX2luaXRfXygpIG1l
dGhvZC4iIiIKKyAgICAgICAgZGVmIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihzZWxmKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICBwcm9jZXNzb3IgPSBQeXRob25Qcm9jZXNzb3IoImZv
by50eHQiLCBfbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHByb2Nlc3Nvci5fZmlsZV9wYXRoLCAiZm9vLnR4dCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHByb2Nlc3Nvci5faGFuZGxlX3N0eWxlX2Vycm9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBfbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisKKyAgICBkZWYgdGVzdF9wcm9jZXNz
KHNlbGYpOgorICAgICAgICAiIiJUZXN0IHByb2Nlc3MoKSBtZXRob2QuIiIiCisgICAgICAgIGVy
cm9ycyA9IFtdCisKKyAgICAgICAgZGVmIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihsaW5lX251
bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSk6CisgICAgICAgICAgICBlcnJvciA9IChsaW5lX251bWJlciwgY2F0
ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVy
cm9yKQorCisgICAgICAgIGN1cnJlbnRfZGlyID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQor
ICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oY3VycmVudF9kaXIsICJweXRob25fdW5p
dHRlc3RfaW5wdXQucHkiKQorCisgICAgICAgIHByb2Nlc3NvciA9IFB5dGhvblByb2Nlc3Nvcihm
aWxlX3BhdGgsIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAgcHJvY2Vzc29yLnBy
b2Nlc3MobGluZXM9W10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGVycm9yc1swXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKDIsICJwZXA4L1czOTEiLCA1LCAiYmxhbmsgbGluZSBhdCBlbmQgb2YgZmls
ZSIpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9j
ZXNzb3JzL3B5dGhvbl91bml0dGVzdF9pbnB1dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRlc3RfaW5wdXQucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVkYTZmYQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRl
c3RfaW5wdXQucHkKQEAgLTAsMCArMSwyIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBDaHJpcyBK
ZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5vcmcpCisKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdW5pdHRlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMucHkKaW5kZXggNjI2MTVhYi4uMWEyODk4NyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMucHkKQEAg
LTQxLDQgKzQxLDUgQEAgZnJvbSBmaWx0ZXJfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gb3B0cGFy
c2VyX3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9tIHByb2Nlc3NvcnMuY29tbW9uX3VuaXR0ZXN0IGlt
cG9ydCAqCiBmcm9tIHByb2Nlc3NvcnMuY3BwX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHByb2Nl
c3NvcnMucHl0aG9uX3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9tIHByb2Nlc3NvcnMudGV4dF91bml0
dGVzdCBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZV9yZWZlcmVuY2VzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZV9y
ZWZlcmVuY2VzLnB5CmluZGV4IDI1MjhjNGQuLmIzYjdmNzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGVfcmVmZXJlbmNlcy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlX3JlZmVyZW5jZXMucHkKQEAgLTQyLDcgKzQyLDcgQEAg
aW1wb3J0IG9zCiAKIGZyb20gZGlmZl9wYXJzZXIgaW1wb3J0IERpZmZQYXJzZXIKIGZyb20gc2Nt
IGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQotCitmcm9tIHRoaXJkcGFydHkuYXV0b2luc3RhbGxl
ZCBpbXBvcnQgcGVwOAogCiBkZWYgcGFyc2VfcGF0Y2gocGF0Y2hfc3RyaW5nKToKIAo=
</data>
<flag name="commit-queue"
          id="32303"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49442</attachid>
            <date>2010-02-24 14:38:17 -0800</date>
            <delta_ts>2010-04-01 15:38:31 -0700</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-33639-2.diff</filename>
            <type>text/plain</type>
            <size>13168</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzNDQ2MWUzLi4xOGU3MDc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDIt
MjQgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgUHl0aG9uIHN0eWxlIGNo
ZWNraW5nIHRvIGNoZWNrLXdlYmtpdC1zdHlsZSB1c2luZworICAgICAgICB0aGUgdGhpcmQtcGFy
dHkgcGVwOCBtb2R1bGUgKHZpYSBhdXRvaW5zdGFsbCkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNjM5CisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBBZGRlZCBQWVRIT04gdG8gRmls
ZVR5cGUuCisgICAgICAgICAgLSBVcGRhdGVkIFByb2Nlc3NvckRpc3BhdGNoZXIgdG8gcmV0dXJu
IGEgUHl0aG9uUHJvY2Vzc29yCisgICAgICAgICAgICBmb3IgKi5weSBmaWxlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAgICAg
ICAtIFVwZGF0ZWQgdGhlIFByb2Nlc3NvckRpc3BhdGNoZXIgdW5pdCB0ZXN0cyBmb3IgKi5weSBm
aWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRo
b24ucHk6IEFkZGVkLgorICAgICAgICAgIC0gQWRkZWQgUHl0aG9uUHJvY2Vzc29yIGNsYXNzLgor
ICAgICAgICAKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvcHl0
aG9uX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgICAtIEFkZGVkIFB5dGhvblByb2Nlc3Nv
ciB1bml0IHRlc3RzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNz
b3JzL3B5dGhvbl91bml0dGVzdF9pbnB1dC5weTogQWRkZWQuCisgICAgICAgICAgLSBBZGRlZCBh
IHNhbXBsZSBQeXRob24gZmlsZSB0byB0ZXN0IHRoZSBQeXRob25Qcm9jZXNzb3IucHJvY2Vzcygp
CisgICAgICAgICAgICBjb2RlIHBhdGggKHNpbmNlIHBlcDggYWNjZXB0cyBhIGZpbGUgcGF0aCku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weToKKyAgICAg
ICAgICAtIFVwZGF0ZWQgdGhlIHN0eWxlIHVuaXQgdGVzdCBmaWxlIHRvIGltcG9ydCBweXRob25f
dW5pdHRlc3QucHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlX3JlZmVyZW5j
ZXMucHk6CisgICAgICAgICAgLSBBZGp1c3RlZCBzdHlsZSByZWZlcmVuY2VzIHRvIGltcG9ydCBw
ZXA4LgorCiAyMDEwLTAyLTIxICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25la0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDVkMzYxODMuLjdkMzEzZTUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAg
LTQyLDYgKzQyLDcgQEAgZnJvbSBvcHRwYXJzZXIgaW1wb3J0IERlZmF1bHRDb21tYW5kT3B0aW9u
VmFsdWVzCiBmcm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBjaGVja19ub19jYXJyaWFnZV9y
ZXR1cm4KIGZyb20gcHJvY2Vzc29ycy5jb21tb24gaW1wb3J0IGNhdGVnb3JpZXMgYXMgQ29tbW9u
Q2F0ZWdvcmllcwogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCitmcm9t
IHByb2Nlc3NvcnMucHl0aG9uIGltcG9ydCBQeXRob25Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29y
cy50ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCiAKIApAQCAtMjAxLDcgKzIwMiw4IEBAIGNsYXNz
IEZpbGVUeXBlOgogICAgIE5PTkUgPSAxCiAgICAgIyBBbHBoYWJldGl6ZSByZW1haW5pbmcgdHlw
ZXMKICAgICBDUFAgPSAyCi0gICAgVEVYVCA9IDMKKyAgICBQWVRIT04gPSAzCisgICAgVEVYVCA9
IDQKIAogCiBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyKG9iamVjdCk6CkBAIC0yMjIsNyArMjI0
LDYgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICAnbW0nLAog
ICAgICAgICAncGhwJywKICAgICAgICAgJ3BtJywKLSAgICAgICAgJ3B5JywKICAgICAgICAgJ3R4
dCcsCiAgICAgICAgICkKIApAQCAtMjU2LDYgKzI1Nyw4IEBAIGNsYXNzIFByb2Nlc3NvckRpc3Bh
dGNoZXIob2JqZWN0KToKICAgICAgICAgICAgICMgcmVhZGluZyBmcm9tIHN0ZGluLCBjcHBfc3R5
bGUgdGVzdHMgc2hvdWxkIG5vdCByZWx5IG9uCiAgICAgICAgICAgICAjIHRoZSBleHRlbnNpb24u
CiAgICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuQ1BQCisgICAgICAgIGVsaWYgZmlsZV9leHRl
bnNpb24gPT0gInB5IjoKKyAgICAgICAgICAgIHJldHVybiBGaWxlVHlwZS5QWVRIT04KICAgICAg
ICAgZWxpZiAoIkNoYW5nZUxvZyIgaW4gZmlsZV9wYXRoCiAgICAgICAgICAgICAgIG9yICJXZWJL
aXRUb29scy9TY3JpcHRzLyIgaW4gZmlsZV9wYXRoCiAgICAgICAgICAgICAgIG9yIGZpbGVfZXh0
ZW5zaW9uIGluIHNlbGYudGV4dF9maWxlX2V4dGVuc2lvbnMpOgpAQCAtMjcwLDYgKzI3Myw4IEBA
IGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBmaWxlX3R5
cGUgPT0gRmlsZVR5cGUuQ1BQOgogICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gPSBzZWxmLl9m
aWxlX2V4dGVuc2lvbihmaWxlX3BhdGgpCiAgICAgICAgICAgICBwcm9jZXNzb3IgPSBDcHBQcm9j
ZXNzb3IoZmlsZV9wYXRoLCBmaWxlX2V4dGVuc2lvbiwgaGFuZGxlX3N0eWxlX2Vycm9yLCB2ZXJi
b3NpdHkpCisgICAgICAgIGVsaWYgZmlsZV90eXBlID09IEZpbGVUeXBlLlBZVEhPTjoKKyAgICAg
ICAgICAgIHByb2Nlc3NvciA9IFB5dGhvblByb2Nlc3NvcihmaWxlX3BhdGgsIGhhbmRsZV9zdHls
ZV9lcnJvcikKICAgICAgICAgZWxpZiBmaWxlX3R5cGUgPT0gRmlsZVR5cGUuVEVYVDoKICAgICAg
ICAgICAgIHByb2Nlc3NvciA9IFRleHRQcm9jZXNzb3IoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVf
ZXJyb3IpCiAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKaW5kZXggZjhiM2EzYS4uMmY5NjI3MSAx
MDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
cl91bml0dGVzdC5weQpAQCAtNTEsNiArNTEsNyBAQCBmcm9tIGZpbHRlciBpbXBvcnQgRmlsdGVy
Q29uZmlndXJhdGlvbgogZnJvbSBvcHRwYXJzZXIgaW1wb3J0IEFyZ3VtZW50UGFyc2VyCiBmcm9t
IG9wdHBhcnNlciBpbXBvcnQgQ29tbWFuZE9wdGlvblZhbHVlcwogZnJvbSBwcm9jZXNzb3JzLmNw
cCBpbXBvcnQgQ3BwUHJvY2Vzc29yCitmcm9tIHByb2Nlc3NvcnMucHl0aG9uIGltcG9ydCBQeXRo
b25Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29ycy50ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCiAK
IApAQCAtMjM3LDYgKzIzOCwxMCBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRpc3Bh
dGNoZWQgcHJvY2Vzc29yIGlzIGEgQ3BwUHJvY2Vzc29yLiIiIgogICAgICAgICBzZWxmLmFzc2Vy
dF9wcm9jZXNzb3IoZmlsZV9wYXRoLCBDcHBQcm9jZXNzb3IpCiAKKyAgICBkZWYgYXNzZXJ0X3By
b2Nlc3Nvcl9weXRob24oc2VsZiwgZmlsZV9wYXRoKToKKyAgICAgICAgIiIiQXNzZXJ0IHRoYXQg
dGhlIGRpc3BhdGNoZWQgcHJvY2Vzc29yIGlzIGEgUHl0aG9uUHJvY2Vzc29yLiIiIgorICAgICAg
ICBzZWxmLmFzc2VydF9wcm9jZXNzb3IoZmlsZV9wYXRoLCBQeXRob25Qcm9jZXNzb3IpCisKICAg
ICBkZWYgYXNzZXJ0X3Byb2Nlc3Nvcl90ZXh0KHNlbGYsIGZpbGVfcGF0aCk6CiAgICAgICAgICIi
IkFzc2VydCB0aGF0IHRoZSBkaXNwYXRjaGVkIHByb2Nlc3NvciBpcyBhIFRleHRQcm9jZXNzb3Iu
IiIiCiAgICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3NvcihmaWxlX3BhdGgsIFRleHRQcm9jZXNz
b3IpCkBAIC0yNzIsNiArMjc3LDI2IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJEaXNwYXRj
aFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwcm9j
ZXNzb3IuZmlsZV9leHRlbnNpb24sIGZpbGVfZXh0ZW5zaW9uKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhwcm9jZXNzb3IuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCiAKKyAgICBkZWYgdGVzdF9w
eXRob25fcGF0aHMoc2VsZik6CisgICAgICAgICIiIlRlc3QgcGF0aHMgdGhhdCBzaG91bGQgYmUg
Y2hlY2tlZCBhcyBQeXRob24uIiIiCisgICAgICAgIHBhdGhzID0gWworICAgICAgICAgICAiZm9v
LnB5IiwKKyAgICAgICAgICAgIldlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy90ZXh0X3N0eWxl
LnB5IiwKKyAgICAgICAgXQorCisgICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRfcHJvY2Vzc29yX3B5dGhvbihwYXRoKQorCisgICAgICAgICMgQ2hlY2sg
cHJvY2Vzc29yIGF0dHJpYnV0ZXMgb24gYSB0eXBpY2FsIGlucHV0LgorICAgICAgICBmaWxlX2Jh
c2UgPSAiZm9vIgorICAgICAgICBmaWxlX2V4dGVuc2lvbiA9ICJjc3MiCisgICAgICAgIGZpbGVf
cGF0aCA9IGZpbGVfYmFzZSArICIuIiArIGZpbGVfZXh0ZW5zaW9uCisgICAgICAgIHNlbGYuYXNz
ZXJ0X3Byb2Nlc3Nvcl90ZXh0KGZpbGVfcGF0aCkKKyAgICAgICAgcHJvY2Vzc29yID0gc2VsZi5k
aXNwYXRjaF9wcm9jZXNzb3IoZmlsZV9wYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
cm9jZXNzb3IuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHByb2Nlc3Nvci5oYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisKICAgICBkZWYgdGVzdF90ZXh0X3BhdGhz
KHNlbGYpOgogICAgICAgICAiIiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQgYXMg
dGV4dC4iIiIKICAgICAgICAgcGF0aHMgPSBbCkBAIC0yODMsMTQgKzMwOCwxMiBAQCBjbGFzcyBQ
cm9jZXNzb3JEaXNwYXRjaGVyRGlzcGF0Y2hUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgImZvby5tbSIsCiAgICAgICAgICAgICJmb28ucGhwIiwKICAgICAgICAgICAgImZvby5w
bSIsCi0gICAgICAgICAgICJmb28ucHkiLAogICAgICAgICAgICAiZm9vLnR4dCIsCiAgICAgICAg
ICAgICJGb29DaGFuZ2VMb2cuYmFrIiwKICAgICAgICAgICAgIldlYkNvcmUvQ2hhbmdlTG9nIiwK
ICAgICAgICAgICAgIldlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMiLAot
ICAgICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQ9c3R5bGUiLAotICAg
ICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3RleHRfc3R5bGUucHkiLAotICAg
ICAgICAgICAgXQorICAgICAgICAgICAiV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQt
c3R5bGUiLAorICAgICAgICBdCiAKICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CiAgICAgICAg
ICAgICBzZWxmLmFzc2VydF9wcm9jZXNzb3JfdGV4dChwYXRoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNzb3JzL3B5dGhvbi5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob24ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFiOTM2ZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob24ucHkK
QEAgLTAsMCArMSw1NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNq
ZXJkb25la0B3ZWJraXQub3JnKQorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisiIiJTdXBwb3J0cyBjaGVja2luZyBXZWJLaXQgc3R5bGUgaW4gUHl0aG9uIGZpbGVz
LiIiIgorCitmcm9tIC4uLnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0IHBlcDgKKworCitjbGFzcyBQ
eXRob25Qcm9jZXNzb3Iob2JqZWN0KToKKworICAgICIiIlByb2Nlc3NlcyB0ZXh0IGxpbmVzIGZv
ciBjaGVja2luZyBzdHlsZS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3BhdGgs
IGhhbmRsZV9zdHlsZV9lcnJvcik6CisgICAgICAgIHNlbGYuX2ZpbGVfcGF0aCA9IGZpbGVfcGF0
aAorICAgICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3IgPSBoYW5kbGVfc3R5bGVfZXJyb3IK
KworICAgIGRlZiBwcm9jZXNzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgIyBJbml0aWFsaXplIHBl
cDgub3B0aW9ucywgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvcgorICAgICAgICAjIENoZWNrZXIuY2hl
Y2tfYWxsKCkgdG8gZXhlY3V0ZS4KKyAgICAgICAgcGVwOC5wcm9jZXNzX29wdGlvbnMoYXJnbGlz
dD1bc2VsZi5fZmlsZV9wYXRoXSkKKworICAgICAgICBjaGVja2VyID0gcGVwOC5DaGVja2VyKHNl
bGYuX2ZpbGVfcGF0aCkKKworICAgICAgICBkZWYgX3BlcDhfaGFuZGxlX2Vycm9yKGxpbmVfbnVt
YmVyLCBvZmZzZXQsIHRleHQsIGNoZWNrKToKKyAgICAgICAgICAgICMgRklYTUU6IEluY29ycG9y
YXRlIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIGVycm9yIG91dHB1dC4KKyAgICAgICAg
ICAgICMgICAgICAgIFRoaXMgd2lsbCByZXF1aXJlIHVwZGF0aW5nIHRoZSBlcnJvciBoYW5kbGVy
IF9fY2FsbF9fCisgICAgICAgICAgICAjICAgICAgICBzaWduYXR1cmUgdG8gaW5jbHVkZSBhbiBv
cHRpb25hbCAib2Zmc2V0IiBwYXJhbWV0ZXIuCisgICAgICAgICAgICBwZXA4X2NvZGUgPSB0ZXh0
Wzo0XQorICAgICAgICAgICAgcGVwOF9tZXNzYWdlID0gdGV4dFs1Ol0KKworICAgICAgICAgICAg
Y2F0ZWdvcnkgPSAicGVwOC8iICsgcGVwOF9jb2RlCisKKyAgICAgICAgICAgIHNlbGYuX2hhbmRs
ZV9zdHlsZV9lcnJvcihsaW5lX251bWJlciwgY2F0ZWdvcnksIDUsIHBlcDhfbWVzc2FnZSkKKwor
ICAgICAgICBjaGVja2VyLnJlcG9ydF9lcnJvciA9IF9wZXA4X2hhbmRsZV9lcnJvcgorCisgICAg
ICAgIGVycm9ycyA9IGNoZWNrZXIuY2hlY2tfYWxsKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRlc3QucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvcHl0aG9uX3VuaXR0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZTMzMTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3Byb2Nlc3Nv
cnMvcHl0aG9uX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDEwIENocmlzIEplcmRvbmVrIChjamVyZG9uZWtAd2Via2l0Lm9yZykKKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiVW5pdCB0ZXN0cyBmb3IgcHl0aG9uLnB5
LiIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHB5dGhvbiBpbXBvcnQg
UHl0aG9uUHJvY2Vzc29yCisKKworY2xhc3MgUHl0aG9uUHJvY2Vzc29yVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisKKyAgICAiIiJUZXN0cyB0aGUgUHl0aG9uUHJvY2Vzc29yIGNsYXNzLiIiIgor
CisgICAgZGVmIHRlc3RfaW5pdChzZWxmKToKKyAgICAgICAgIiIiVGVzdCBfX2luaXRfXygpIG1l
dGhvZC4iIiIKKyAgICAgICAgZGVmIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihzZWxmKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICBwcm9jZXNzb3IgPSBQeXRob25Qcm9jZXNzb3IoImZv
by50eHQiLCBfbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHByb2Nlc3Nvci5fZmlsZV9wYXRoLCAiZm9vLnR4dCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHByb2Nlc3Nvci5faGFuZGxlX3N0eWxlX2Vycm9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBfbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCisKKyAgICBkZWYgdGVzdF9wcm9jZXNz
KHNlbGYpOgorICAgICAgICAiIiJUZXN0IHByb2Nlc3MoKSBtZXRob2QuIiIiCisgICAgICAgIGVy
cm9ycyA9IFtdCisKKyAgICAgICAgZGVmIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihsaW5lX251
bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSk6CisgICAgICAgICAgICBlcnJvciA9IChsaW5lX251bWJlciwgY2F0
ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVy
cm9yKQorCisgICAgICAgIGN1cnJlbnRfZGlyID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQor
ICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oY3VycmVudF9kaXIsICJweXRob25fdW5p
dHRlc3RfaW5wdXQucHkiKQorCisgICAgICAgIHByb2Nlc3NvciA9IFB5dGhvblByb2Nlc3Nvcihm
aWxlX3BhdGgsIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAgcHJvY2Vzc29yLnBy
b2Nlc3MobGluZXM9W10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGVycm9yc1swXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKDIsICJwZXA4L1cyOTEiLCA1LCAidHJhaWxpbmcgd2hpdGVzcGFjZSIpKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9jZXNzb3Jz
L3B5dGhvbl91bml0dGVzdF9pbnB1dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRlc3RfaW5wdXQucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOWYxZDExOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob25fdW5pdHRlc3RfaW5w
dXQucHkKQEAgLTAsMCArMSwyIEBACisjIFRoaXMgZmlsZSBpcyBzYW1wbGUgaW5wdXQgZm9yIHB5
dGhvbl91bml0dGVzdC5weSBhbmQgaW5jbHVkZXMgYSBzaW5nbGUKKyMgZXJyb3Igd2hpY2ggaXMg
YW4gZXh0cmEgc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGlzIGxpbmUuIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS91bml0dGVzdHMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weQppbmRleCA2MjYxNWFiLi4xYTI4
OTg3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0
ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0
cy5weQpAQCAtNDEsNCArNDEsNSBAQCBmcm9tIGZpbHRlcl91bml0dGVzdCBpbXBvcnQgKgogZnJv
bSBvcHRwYXJzZXJfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gcHJvY2Vzc29ycy5jb21tb25fdW5p
dHRlc3QgaW1wb3J0ICoKIGZyb20gcHJvY2Vzc29ycy5jcHBfdW5pdHRlc3QgaW1wb3J0ICoKK2Zy
b20gcHJvY2Vzc29ycy5weXRob25fdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gcHJvY2Vzc29ycy50
ZXh0X3VuaXR0ZXN0IGltcG9ydCAqCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlX3JlZmVyZW5jZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlX3JlZmVyZW5jZXMucHkKaW5kZXggMjUyOGM0ZC4uYjNiN2Y3NiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZV9yZWZlcmVuY2VzLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGVfcmVmZXJlbmNlcy5weQpAQCAtNDIsNyAr
NDIsNyBAQCBpbXBvcnQgb3MKIAogZnJvbSBkaWZmX3BhcnNlciBpbXBvcnQgRGlmZlBhcnNlcgog
ZnJvbSBzY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVtCi0KK2Zyb20gdGhpcmRwYXJ0eS5hdXRv
aW5zdGFsbGVkIGltcG9ydCBwZXA4CiAKIGRlZiBwYXJzZV9wYXRjaChwYXRjaF9zdHJpbmcpOgog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52345</attachid>
            <date>2010-04-01 15:38:36 -0700</date>
            <delta_ts>2010-04-01 15:38:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33639-20100401153835.patch</filename>
            <type>text/plain</type>
            <size>2156</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyMmRmNjRlLi44ZWM4NWM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDQt
MDEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IG9ubHkgaWdub3JpbmcgY2hhdHR5IHN0eWxlIGVycm9ycy4KKworICAgICAgICBjaGVjay13ZWJr
aXQtc3R5bGU6IFdlYktpdCBuZWVkcyBhIHB5dGhvbiBzdHlsZSBjaGVja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzYzOQorCisgICAgICAgIFJl
bW92ZSB0aGUgNzkgY2hhciBsaW5lIGxpbWl0IGJ5IGlnbm9yaW5nIAorICAgICAgICBwZXA4L0U1
MDEuICBCZWNhdXNlIHdlIGhhdmUgb3VyIG93biByZXBvcnRfZXJyb3IKKyAgICAgICAgaW1wbGVt
ZW50YXRpb24gd2UgaGF2ZSB0byBpZ25vcmUgRTUwMSBieSBoYW5kCisgICAgICAgIGluc3RlYWQg
b2YgcGFzc2luZyAtLWlnbm9yZT1FNTAxLgorCisgICAgICAgIFJpZ2h0IG5vdyBvdmVyIDE0MDAg
bGluZXMgb2Ygb3VyIGV4aXN0aW5nIHB5dGhvbgorICAgICAgICBmYWlsIEU1MDEgc28gdGhpcyBy
dWxlIGp1c3QgZ2VuZXJhdGVzIG5lZWRsZXNzIG5vaXNlLgorICAgICAgICBUaGUgcmVzdCBvZiBX
ZWJLaXQgaGFzIG5vIHdyYXBwaW5nIHJ1bGUgc28gaXQgbWFrZXMKKyAgICAgICAgbGl0dGxlIHNl
bnNlIGZvciBvdXIgUHl0aG9uIHRvIGRpZmZlciBoZXJlLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9wcm9jZXNzb3JzL3B5dGhvbi5weToKKwogMjAxMC0wNC0wMSAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBBZGQgY21h
cnJpbidzIElSQyBuaWNrbmFtZS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvcHJvY2Vzc29ycy9weXRob24ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL3Byb2Nlc3NvcnMvcHl0aG9uLnB5CmluZGV4IDhhYjkzNmQuLjM5ZmRiOTYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvcHJvY2Vzc29y
cy9weXRob24ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9wcm9j
ZXNzb3JzL3B5dGhvbi5weQpAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBQeXRob25Qcm9jZXNzb3Io
b2JqZWN0KToKICAgICBkZWYgcHJvY2VzcyhzZWxmLCBsaW5lcyk6CiAgICAgICAgICMgSW5pdGlh
bGl6ZSBwZXA4Lm9wdGlvbnMsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IKICAgICAgICAgIyBDaGVj
a2VyLmNoZWNrX2FsbCgpIHRvIGV4ZWN1dGUuCi0gICAgICAgIHBlcDgucHJvY2Vzc19vcHRpb25z
KGFyZ2xpc3Q9W3NlbGYuX2ZpbGVfcGF0aF0pCiAKKyAgICAgICAgcGVwOC5wcm9jZXNzX29wdGlv
bnMoYXJnbGlzdD1bc2VsZi5fZmlsZV9wYXRoXSkKICAgICAgICAgY2hlY2tlciA9IHBlcDguQ2hl
Y2tlcihzZWxmLl9maWxlX3BhdGgpCiAKICAgICAgICAgZGVmIF9wZXA4X2hhbmRsZV9lcnJvcihs
aW5lX251bWJlciwgb2Zmc2V0LCB0ZXh0LCBjaGVjayk6CkBAIC00Nyw2ICs0NywxMSBAQCBjbGFz
cyBQeXRob25Qcm9jZXNzb3Iob2JqZWN0KToKICAgICAgICAgICAgIHBlcDhfY29kZSA9IHRleHRb
OjRdCiAgICAgICAgICAgICBwZXA4X21lc3NhZ2UgPSB0ZXh0WzU6XQogCisgICAgICAgICAgICAj
IFdlIGlnbm9yZSBQRVA4L0U1MDEgLS0gbGluZSBsaW1pdCBvZiA3OSBjaGFyYWN0ZXJzLiBNb3N0
IG9mIG91cgorICAgICAgICAgICAgIyBweXRob24gY29kZSBmYWlscyBFNTAxIGFuZCB0aGUgcmVz
dCBvZiBXZWJLaXQgaGFzIG5vIHdyYXAgbGltaXQuCisgICAgICAgICAgICBpZiBwZXA4X2NvZGUg
PT0gIkU1MDEiOgorICAgICAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgICAgICBjYXRlZ29y
eSA9ICJwZXA4LyIgKyBwZXA4X2NvZGUKIAogICAgICAgICAgICAgc2VsZi5faGFuZGxlX3N0eWxl
X2Vycm9yKGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgNSwgcGVwOF9tZXNzYWdlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>