<?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>36983</bug_id>
          
          <creation_ts>2010-04-01 14:31:56 -0700</creation_ts>
          <short_desc>new-run-webkit-tests ignores trailing EOL differences in text tests</short_desc>
          <delta_ts>2010-12-20 13:46:10 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>51018</dependson>
    
    <dependson>51135</dependson>
    
    <dependson>51147</dependson>
    
    <dependson>51340</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ctruta</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>tony</cc>
    
    <cc>victorw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>207407</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-01 14:31:56 -0700</bug_when>
    <thetext>The python new-run-webkit-tests differ ignores trailing EOLs for text tests.  The offending code is webkitpy/layout_tests/test_types/text_diff.py line 81 (http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/layout_tests/test_types/text_diff.py#L81):

        # Normalize line endings
        return text.strip(&quot;\r\n&quot;).replace(&quot;\r\n&quot;, &quot;\n&quot;) + &quot;\n&quot;

Unfortunately in python str.strip() takes a set of chars, not a sequence, so this line strips all trailing &apos;\r&apos; and &apos;\n&apos; characters.

This is inconsistent with the perl script (https://bugs.webkit.org/attachment.cgi?id=52198&amp;action=prettypatch passes with new-run-webkit-tests and fails with run-webkit-tests).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269004</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-24 21:41:24 -0700</bug_when>
    <thetext>I&apos;m not actively working on this, so I&apos;m gonna disclaim ownership in the hopes that someone else wants to pick this up for an easy commit ....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269300</commentid>
    <comment_count>2</comment_count>
    <who name="Victor Wang">victorw</who>
    <bug_when>2010-08-25 09:49:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I&apos;m not actively working on this, so I&apos;m gonna disclaim ownership in the hopes that someone else wants to pick this up for an easy commit ....

I will take this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282717</commentid>
    <comment_count>3</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-09-21 18:36:24 -0700</bug_when>
    <thetext>I was just bit by this bug. Let&apos;s see if I can help and get rid of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282778</commentid>
    <comment_count>4</comment_count>
      <attachid>68339</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-09-21 22:56:29 -0700</bug_when>
    <thetext>Created attachment 68339
1st attempt to fix

Not sure whether the two instances of s/^(\r\n)*// in my patch are necessary. I assumed they are, because, otherwise, the original code would have used rstrip instead of strip, but I could be wrong.

Also, not entirely sure whether the use of strip was originally intended to remove all trailing &quot;\r\n&quot; or just one of them. I assumed all; otherwise, the original code would have probably been much simpler, something like:
  text = text.replace(&quot;\r\n&quot;, &quot;\n&quot;)
  if not text.endswith(&quot;\n&quot;):
    text = text + &quot;\n&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283478</commentid>
    <comment_count>5</comment_count>
      <attachid>68339</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-22 19:55:18 -0700</bug_when>
    <thetext>Comment on attachment 68339
1st attempt to fix

Can you please add a regression test for this behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283482</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-22 20:05:44 -0700</bug_when>
    <thetext>From looking at the review, I would ask a couple of different things:

1) Why is the initial code broken and the new code correct? I.e., how are we/you defining the &quot;correct&quot; behavior? Is this what old-run-webkit-tests (the perl version) does?

2) Have you run this over the layout tests on a couple of different ports and seen if anything starts (or stops) diffing? I would expect something to change here, and wouldn&apos;t want to land this without updated baselines as well.

As JamesR said, we need unit tests for this and a comment or some other form of documentation as to what the behavior is supposed to be. Matching legacy is arguably good enough, but bonus points for figuring out why old-run-webkit-tests does what it does as well (e.g., win/unix CRLF conversion, Git NL handling, etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321612</commentid>
    <comment_count>7</comment_count>
      <attachid>76482</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-13 18:55:16 -0800</bug_when>
    <thetext>Created attachment 76482
2nd attempt to fix

For pre-review only. This needs a lot of rebaselining. Changelogs are missing as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321631</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-13 19:50:10 -0800</bug_when>
    <thetext>Per discussion w/ ctruta in IRC, it looks like the code change will do what he wants it to do, and it looks like what he wants it to do will probably match what ORWT does. He is going to document what he wants the code to do and add tests for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321742</commentid>
    <comment_count>9</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-14 01:15:32 -0800</bug_when>
    <thetext>Doing the required rebaselining in bug 51018 first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322523</commentid>
    <comment_count>10</comment_count>
      <attachid>76634</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 00:01:13 -0800</bug_when>
    <thetext>Created attachment 76634
Fix and unit tests

The rebaseline in bug 51018 has landed, and, luckily, no new disruptive tests have arrived.
Keeping fingers crossed that things will stay this way until this patch lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322529</commentid>
    <comment_count>11</comment_count>
      <attachid>76634</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 00:24:49 -0800</bug_when>
    <thetext>Comment on attachment 76634
Fix and unit tests

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

Thanks again for working on this. I hope you don&apos;t mind how meticulous I&quot;m being, but this is (IMO) one of the least-obvious routines in the code, so I&apos;d like for it to be well-tested and documented.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/base.py:327
&gt; +        the actual text outputs.&quot;&quot;&quot;

I wouldn&apos;t put the comment about the actual text output here, since this routine has nothing to do with the actual output. If we do want a comment for the actual output (not a bad idea), it should be in the Driver.run_test() method in the same file.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/test_types/text_diff.py:56
&gt; +        return output.replace(&quot;\r\n&quot;, &quot;\n&quot;).replace(&quot;\r\n&quot;, &quot;\n&quot;)

Not to be a pain here, but ...

1) I don&apos;t think the code matches the comment any more. &apos;\r\r\n&apos; =&gt; &apos;\n&apos;, and the comment seems to indicate that it should be &apos;\r\n&apos;. The comment may be wrong, in which case it should be updated. Or, maybe your fix is wrong? (It actually looks like the old code would&apos;ve also produced &apos;\n&apos;). 

2) I think output.replace(&quot;\r\r\n&quot;, &quot;\r\n&quot;).replace(&quot;\r\n&quot;, &quot;\n&quot;) is slightly clearer and the same result as what you have. What you have might lead someone to wonder why you&apos;re doing the same replace twice. That said, it&apos;s just my opinion, so if you prefer the existing version that&apos;s fine.

3) I would also consider adding a comment in test.py about this in passes/text.html, or updating this comment to mention that this is tested for in test.py&apos;s passes/text.html example. The former is probably better, since the comment is next to the test and hence harder for it to become out of sync.

4) What happens if the actual output contains &quot;\r\r\r\n&quot;? It looks like that gets would get changed to &apos;\r\n&apos;. Is that what we want? I&apos;d like to see a test with at least one more \r than the number of replace() calls. A test with 10 \r&apos;s instead of 3 would be fine as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322542</commentid>
    <comment_count>12</comment_count>
      <attachid>76637</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 01:48:41 -0800</bug_when>
    <thetext>Created attachment 76637
Fix and unit tests

Resubmitting to comply with Dirk&apos;s comments.

(In reply to comment #11)
&gt; 4) What happens if the actual output contains &quot;\r\r\r\n&quot;? It looks like that gets would get changed to &apos;\r\n&apos;. Is that what we want? I&apos;d like to see a test with at least one more \r than the number of replace() calls. A test with 10 \r&apos;s instead of 3 would be fine as well.

I don&apos;t think we &quot;want&quot; \r\r\r\n to change to \r\n. I found no tests to require such lines.
Instead, I preferred to say that we don&apos;t want too many \r...\r\n to be absorbed into \n, because that might mean something&apos;s wrong. So I tested this as an expected failure, not as a pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322725</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 11:52:34 -0800</bug_when>
    <thetext>Change LGTM! Thanks for all the work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322726</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 11:53:14 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; I don&apos;t think we &quot;want&quot; \r\r\r\n to change to \r\n. I found no tests to require such lines.
&gt; Instead, I preferred to say that we don&apos;t want too many \r...\r\n to be absorbed into \n, because that might mean something&apos;s wrong. So I tested this as an expected failure, not as a pass.

I guess what I was really asking was, does what this version will do match what old-run-webkit-tests does in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322733</commentid>
    <comment_count>15</comment_count>
      <attachid>76637</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-12-15 12:02:21 -0800</bug_when>
    <thetext>Comment on attachment 76637
Fix and unit tests

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322743</commentid>
    <comment_count>16</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 12:17:05 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; I don&apos;t think we &quot;want&quot; \r\r\r\n to change to \r\n. [...]
&gt; I guess what I was really asking was, does what this version will do match what old-run-webkit-tests does in this case?

Yes and no.
In my best interpretation of ORWT, not even \r\r\n is changed to \n, so, strictly speaking, I wouldn&apos;t say that NRWT fully matches ORWT, because of this reason. But in a loose sense, yes: the Python/Cygwin tools are said to convert \r\n to \r\r\n, and NRWT makes up for that. Also in a loose sense, yes, because neither NRWT nor ORWT accept more than two \r characters in \r\r...\r\n.

I am personally fond of the idea of investigating why exactly are those \r\r\n being produced. Eliminate that cause, then stop converting \r\r\n to \n. That would be my favorite solution, a lower-priority, but still potentially useful work item that makes the testing even more robust. Then we can absolutely say that NRWT matches ORWT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322750</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 12:26:43 -0800</bug_when>
    <thetext>Adding Adam Roben, who is likely the only person who might have observed what happens when running old-run-webkit-tests on windows under cygwin.

Cosmin, do we know what tests trigger this behavior? Or does someone need to investigate it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322751</commentid>
    <comment_count>18</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 12:27:28 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Adding Adam Roben, who is likely the only person who might have observed what happens when running old-run-webkit-tests on windows under cygwin.
&gt; 
&gt; Cosmin, do we know what tests trigger this behavior? Or does someone need to investigate it?

And do we know if this is only with cygwin python, or win python (and if it&apos;s dependent on cygwin&apos;s newline conversion settings?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322754</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-12-15 12:38:19 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Adding Adam Roben, who is likely the only person who might have observed what happens when running old-run-webkit-tests on windows under cygwin.

I&apos;m not sure exactly what&apos;s being asked of me, but here&apos;s what I think is the current situation for Apple&apos;s Windows port:

1) Developers are expected to tell Cygwin to use UNIX line endings
2) Checked-in expected test results have UNIX line endings
3) DRT outputs UNIX line endings (by putting stdout/stderr in binary mode)

So I think no carriage returns ever come into play. I could be wrong, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322755</commentid>
    <comment_count>20</comment_count>
      <attachid>76637</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 12:39:38 -0800</bug_when>
    <thetext>Comment on attachment 76637
Fix and unit tests

Clearing flags on attachment: 76637

Committed r74136: &lt;http://trac.webkit.org/changeset/74136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322756</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-15 12:39:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322761</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 12:47:37 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; Adding Adam Roben, who is likely the only person who might have observed what happens when running old-run-webkit-tests on windows under cygwin.
&gt; 
&gt; I&apos;m not sure exactly what&apos;s being asked of me, but here&apos;s what I think is the current situation for Apple&apos;s Windows port:
&gt; 
&gt; 1) Developers are expected to tell Cygwin to use UNIX line endings
&gt; 2) Checked-in expected test results have UNIX line endings
&gt; 3) DRT outputs UNIX line endings (by putting stdout/stderr in binary mode)
&gt; 
&gt; So I think no carriage returns ever come into play. I could be wrong, though.

Thanks for clarifying, Adam! I wasn&apos;t actually intending to ask you anything, just making you aware of the conversation in case we did find some discrepancy. I&apos;m almost wondering if this comment/bug doesn&apos;t actually exist any more, or if was something stupid Chromium was doing on Windows (e.g., before we upstreamed this stuff).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322762</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 12:49:47 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #19)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; Adding Adam Roben, who is likely the only person who might have observed what happens when running old-run-webkit-tests on windows under cygwin.
&gt; &gt; 
&gt; &gt; I&apos;m not sure exactly what&apos;s being asked of me, but here&apos;s what I think is the current situation for Apple&apos;s Windows port:
&gt; &gt; 
&gt; &gt; 1) Developers are expected to tell Cygwin to use UNIX line endings
&gt; &gt; 2) Checked-in expected test results have UNIX line endings
&gt; &gt; 3) DRT outputs UNIX line endings (by putting stdout/stderr in binary mode)
&gt; &gt; 
&gt; &gt; So I think no carriage returns ever come into play. I could be wrong, though.
&gt; 
&gt; Thanks for clarifying, Adam! I wasn&apos;t actually intending to ask you anything, just making you aware of the conversation in case we did find some discrepancy. I&apos;m almost wondering if this comment/bug doesn&apos;t actually exist any more, or if was something stupid Chromium was doing on Windows (e.g., before we upstreamed this stuff).

Also adding Tony Chang, who is probably the most familiar with our current DRT win port. For example, one possibility is that since both new-run-webkit-tests and DRT run directly under Win32, we actually were getting CRLFs instead of just LFs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322774</commentid>
    <comment_count>24</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 13:07:52 -0800</bug_when>
    <thetext>&gt; Cosmin, do we know what tests trigger this behavior? Or does someone need to investigate it?
&gt; And do we know if this is only with cygwin python, or win python (and if it&apos;s dependent on cygwin&apos;s newline conversion settings?)

I know this thing to happen in general, but I do not know of any specifics in this context.

&gt; 1) Developers are expected to tell Cygwin to use UNIX line endings

I find this a little fragile, and easy to avoid if binary mode I/O is used consistently.

2) Checked-in expected test results have UNIX line endings

&gt; Maybe non-chromium ones do, but I found tests with CRLF in platform/chromium-win that are picked up by chromium-linux and chromium-mac. They run fine.

&gt; 3) DRT outputs UNIX line endings (by putting stdout/stderr in binary mode)

The DRT outputs are fine, I did not have to rebaseline any of those. But I&apos;m pretty sure about the rest of *-expected.txt files that people abuse them in text editors sometimes. Otherwise, I can&apos;t explain why I had to look at every single of those 400+ expectation files that needed rebaselining in bug 51018. Most were missing or having extra trailing empty lines, very inconsistently, almost randomly; but some even had missing or extra leading empty lines. If those text files were taken straight out of run-webkit-tests --new-baseline, this wouldn&apos;t have happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322775</commentid>
    <comment_count>25</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 13:10:33 -0800</bug_when>
    <thetext>I had the indentation of my response to 2) backwards. Here is how I meant it:

&gt; 2) Checked-in expected test results have UNIX line endings

Maybe non-chromium ones do, but I found tests with CRLF in platform/chromium-win that are picked up by chromium-linux and chromium-mac. They run fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322806</commentid>
    <comment_count>26</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 14:12:18 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; Cosmin, do we know what tests trigger this behavior? Or does someone need to investigate it?
&gt; &gt; And do we know if this is only with cygwin python, or win python (and if it&apos;s dependent on cygwin&apos;s newline conversion settings?)
&gt; 
&gt; I know this thing to happen in general, but I do not know of any specifics in this context.
&gt; 
&gt; &gt; 1) Developers are expected to tell Cygwin to use UNIX line endings
&gt; 
&gt; I find this a little fragile, and easy to avoid if binary mode I/O is used consistently.
&gt; 

If you don&apos;t tell users to use UNIX line endings, and you use binary mode I/O, then users may use text editors that save files either with &quot;\n&quot; or &quot;\r\n&quot; depending on what they happened to use for UNIX line endings in Cygwin, no? That would then require the test harness to do the &quot;\r\n&quot; -&gt; &quot;\n&quot; conversion we&apos;re doing.

&gt; 2) Checked-in expected test results have UNIX line endings
&gt; 
&gt;  Maybe non-chromium ones do, but I found tests with CRLF in platform/chromium-win that are picked up by chromium-linux and chromium-mac. They run fine.

chromium-mac doesn&apos;t (shouldn&apos;t) ever look at chromium-win, but otherwise I could certainly believe it, since our code would work in this case but I believe ORWT would choke.

&gt; 
&gt; &gt; 3) DRT outputs UNIX line endings (by putting stdout/stderr in binary mode)
&gt; 
&gt; The DRT outputs are fine, I did not have to rebaseline any of those. But I&apos;m pretty sure about the rest of *-expected.txt files that people abuse them in text editors sometimes. Otherwise, I can&apos;t explain why I had to look at every single of those 400+ expectation files that needed rebaselining in bug 51018. Most were missing or having extra trailing empty lines, very inconsistently, almost randomly; but some even had missing or extra leading empty lines. If those text files were taken straight out of run-webkit-tests --new-baseline, this wouldn&apos;t have happened.

Hard to say if that&apos;s true. If we weren&apos;t checking for trailing lines before, the tests could easily have been broken at different points and we&apos;d never have noticed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322882</commentid>
    <comment_count>27</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-15 15:35:46 -0800</bug_when>
    <thetext>Opened bug 51147 to add some missing expectation files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322969</commentid>
    <comment_count>28</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-15 17:23:38 -0800</bug_when>
    <thetext>Assigning to myself to own since ctruta isn&apos;t a committer yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323324</commentid>
    <comment_count>29</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-16 11:56:57 -0800</bug_when>
    <thetext>Finished rebaselining in bug 51147, using output files that I took from Chromium&apos;s canary build 69353.
I _think_ it is safe to re-land the NRWT fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323335</commentid>
    <comment_count>30</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-16 12:03:36 -0800</bug_when>
    <thetext>Actually, the patch to bug 51147 still needs to land. It got stuck, apparently, for no good reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323415</commentid>
    <comment_count>31</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-16 14:08:35 -0800</bug_when>
    <thetext>The patch to bug 51147 has landed, so we should be able to re-land this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323564</commentid>
    <comment_count>32</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-12-16 18:37:02 -0800</bug_when>
    <thetext>Chromium try runs seem fairly clean, so we should be good to give this another go.  Unfortunately I&apos;m unlikely to have time to babysit this through landing this evening but I could try tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324010</commentid>
    <comment_count>33</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-17 15:21:43 -0800</bug_when>
    <thetext>reopening it to try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324016</commentid>
    <comment_count>34</comment_count>
      <attachid>76919</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-17 15:31:34 -0800</bug_when>
    <thetext>Created attachment 76919
Fix and unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324030</commentid>
    <comment_count>35</comment_count>
      <attachid>76919</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-17 16:17:36 -0800</bug_when>
    <thetext>Comment on attachment 76919
Fix and unit tests

Clearing review flag - this was already reviewed by jamesr@chromium.org . Clearing CQ flag - landing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324455</commentid>
    <comment_count>36</comment_count>
      <attachid>77013</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-12-20 10:56:17 -0800</bug_when>
    <thetext>Created attachment 77013
Fix and unit tests

For some mystery reason, the last patch failed to land last Friday. Sigh...
(Could it have been because of the renaming of WebKitTools/ to Tools/ ?)

Naturally, even more bad expectation files came up, which I&apos;ll address in bug 51340. Is this one of those neverending stories?
I will kindly ask one of the Chromium sheriffs to run this patch on the Chromium trybots first, to make sure I won&apos;t miss anything in bug 51340.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324550</commentid>
    <comment_count>37</comment_count>
      <attachid>77013</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-12-20 13:44:43 -0800</bug_when>
    <thetext>Comment on attachment 77013
Fix and unit tests

R=me. Will land by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324551</commentid>
    <comment_count>38</comment_count>
      <attachid>77013</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-12-20 13:46:02 -0800</bug_when>
    <thetext>Comment on attachment 77013
Fix and unit tests

Clearing flags on attachment: 77013

Committed r74362: &lt;http://trac.webkit.org/changeset/74362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324553</commentid>
    <comment_count>39</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-12-20 13:46:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68339</attachid>
            <date>2010-09-21 22:56:29 -0700</date>
            <delta_ts>2010-12-13 18:55:16 -0800</delta_ts>
            <desc>1st attempt to fix</desc>
            <filename>wk.diff.submit</filename>
            <type>text/plain</type>
            <size>2931</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0MzYyZTI1Li5kZjNjODE4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDkt
MjEgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHMgaWdu
b3JlcyB0cmFpbGluZyBFT0wgZGlmZmVyZW5jZXMgaW4gdGV4dCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5ODMKKworICAgICAgICBTLnN0
cmlwKCJcclxuIikgZG9lcyBub3QgdHJpbSBvdXQgdGhlICJcclxuIiBzZXF1ZW5jZXMsIGJ1dCB0
aGUgc2V0CisgICAgICAgIG9mIFsnXHInLCdcbiddIGNoYXJhY3RlcnMuIFJlcGxhY2UgdGhlIGNh
bGxzIHRvIHN0cmlwIHdpdGggcmUuc3ViLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5leHBlY3RlZF90ZXh0KToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3RfdHlwZXMu
cHk6CisgICAgICAgIChUZXN0VGV4dERpZmYuX2dldF9ub3JtYWxpemVkX291dHB1dF90ZXh0KToK
KwogMjAxMC0wOS0yMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggMzJhNGUxNy4uM2E2
Zjk4OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtMzcsNiArMzcsNyBAQCBpbXBvcnQgY29kZWNzCiBpbXBv
cnQgZGlmZmxpYgogaW1wb3J0IGVycm5vCiBpbXBvcnQgb3MKK2ltcG9ydCByZQogaW1wb3J0IHNo
bGV4CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQpAQCAtMjc4LDcgKzI3OSw5IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICAgICAgdGV4dCA9IHNlbGYuX2V4cGVjdGVkX2ZpbGVfY29udGVudHMo
dGVzdCwgJy50eHQnLCBOb25lKQogICAgICAgICBpZiBub3QgdGV4dDoKICAgICAgICAgICAgIHJl
dHVybiAnJwotICAgICAgICByZXR1cm4gdGV4dC5zdHJpcCgiXHJcbiIpLnJlcGxhY2UoIlxyXG4i
LCAiXG4iKSArICJcbiIKKyAgICAgICAgdGV4dCA9IHJlLnN1YigiXihcclxuKSoiLCAiIiwgdGV4
dCkKKyAgICAgICAgdGV4dCA9IHJlLnN1YigiKFxyXG4pKiQiLCAiIiwgdGV4dCkKKyAgICAgICAg
cmV0dXJuIHRleHQucmVwbGFjZSgiXHJcbiIsICJcbiIpICsgIlxuIgogCiAgICAgZGVmIGZpbGVu
YW1lX3RvX3VyaShzZWxmLCBmaWxlbmFtZSk6CiAgICAgICAgICIiIkNvbnZlcnQgYSB0ZXN0IGZp
bGUgdG8gYSBVUkkuIiIiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CmluZGV4IGIx
ZjYyMWUuLmFlYzg4ZTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CkBAIC0z
OSw2ICszOSw3IEBAIGltcG9ydCBjb2RlY3MKIGltcG9ydCBlcnJubwogaW1wb3J0IGxvZ2dpbmcK
IGltcG9ydCBvcy5wYXRoCitpbXBvcnQgcmUKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
bGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZmFpbHVyZXMKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLnRlc3RfdHlwZXMgaW1wb3J0IHRlc3RfdHlwZV9iYXNlCkBAIC01MSw5ICs1MiwxMCBA
QCBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKICAgICBk
ZWYgX2dldF9ub3JtYWxpemVkX291dHB1dF90ZXh0KHNlbGYsIG91dHB1dCk6CiAgICAgICAgICMg
U29tZSB0ZXN0cyBwcm9kdWNlICJcclxuIiBleHBsaWNpdGx5LiAgT3VyIHN5c3RlbSAoUHl0aG9u
L0N5Z3dpbikKICAgICAgICAgIyBoZWxwZnVsbHkgY2hhbmdlcyB0aGUgIlxuIiB0byAiXHJcbiIs
IHJlc3VsdGluZyBpbiAiXHJcclxuIi4KLSAgICAgICAgbm9ybSA9IG91dHB1dC5yZXBsYWNlKCJc
clxyXG4iLCAiXHJcbiIpLnN0cmlwKCJcclxuIikucmVwbGFjZSgKLSAgICAgICAgICAgICAiXHJc
biIsICJcbiIpCi0gICAgICAgIHJldHVybiBub3JtICsgIlxuIgorICAgICAgICBub3JtID0gb3V0
cHV0LnJlcGxhY2UoIlxyXHJcbiIsICJcclxuIikKKyAgICAgICAgbm9ybSA9IHJlLnN1YigiXihc
clxuKSoiLCAiIiwgbm9ybSkKKyAgICAgICAgbm9ybSA9IHJlLnN1YigiKFxyXG4pKiQiLCAiIiwg
bm9ybSkKKyAgICAgICAgcmV0dXJuIG5vcm0ucmVwbGFjZSgiXHJcbiIsICJcbiIpICsgIlxuIgog
CiAgICAgZGVmIF9nZXRfbm9ybWFsaXplZF9leHBlY3RlZF90ZXh0KHNlbGYsIGZpbGVuYW1lKToK
ICAgICAgICAgIiIiR2l2ZW4gdGhlIGZpbGVuYW1lIG9mIHRoZSB0ZXN0LCByZWFkIHRoZSBleHBl
Y3RlZCBvdXRwdXQgZnJvbSBhIGZpbGUK
</data>
<flag name="review"
          id="57849"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76482</attachid>
            <date>2010-12-13 18:55:16 -0800</date>
            <delta_ts>2010-12-15 00:01:13 -0800</delta_ts>
            <desc>2nd attempt to fix</desc>
            <filename>wk.diff.submit-2</filename>
            <type>text/plain</type>
            <size>1575</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weQppbmRleCBiYzVhOWFhLi43MTIzYjA2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zMzAs
NyArMzMwLDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBpZiBub3Qgc2VsZi5wYXRo
X2V4aXN0cyhwYXRoKToKICAgICAgICAgICAgIHJldHVybiAnJwogICAgICAgICB0ZXh0ID0gc2Vs
Zi5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKHBhdGgpCi0gICAgICAgIHJldHVybiB0ZXh0
LnN0cmlwKCJcclxuIikucmVwbGFjZSgiXHJcbiIsICJcbiIpICsgIlxuIgorICAgICAgICByZXR1
cm4gdGV4dC5yZXBsYWNlKCJcclxuIiwgIlxuIikKIAogICAgIGRlZiBmaWxlbmFtZV90b191cmko
c2VsZiwgZmlsZW5hbWUpOgogICAgICAgICAiIiJDb252ZXJ0IGEgdGVzdCBmaWxlICh3aGljaCBp
cyBhbiBhYnNvbHV0ZSBwYXRoKSB0byBhIFVSSS4iIiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0
X2RpZmYucHkKaW5kZXggY2E0YjE3ZC4uY2ZjYjUxYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90
ZXh0X2RpZmYucHkKQEAgLTUxLDkgKzUxLDcgQEAgY2xhc3MgVGVzdFRleHREaWZmKHRlc3RfdHlw
ZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAgICAgZGVmIF9nZXRfbm9ybWFsaXplZF9vdXRwdXRfdGV4
dChzZWxmLCBvdXRwdXQpOgogICAgICAgICAjIFNvbWUgdGVzdHMgcHJvZHVjZSAiXHJcbiIgZXhw
bGljaXRseS4gIE91ciBzeXN0ZW0gKFB5dGhvbi9DeWd3aW4pCiAgICAgICAgICMgaGVscGZ1bGx5
IGNoYW5nZXMgdGhlICJcbiIgdG8gIlxyXG4iLCByZXN1bHRpbmcgaW4gIlxyXHJcbiIuCi0gICAg
ICAgIG5vcm0gPSBvdXRwdXQucmVwbGFjZSgiXHJcclxuIiwgIlxyXG4iKS5zdHJpcCgiXHJcbiIp
LnJlcGxhY2UoCi0gICAgICAgICAgICAgIlxyXG4iLCAiXG4iKQotICAgICAgICByZXR1cm4gbm9y
bSArICJcbiIKKyAgICAgICAgcmV0dXJuIG91dHB1dC5yZXBsYWNlKCJcclxyXG4iLCAiXHJcbiIp
LnJlcGxhY2UoIlxyXG4iLCAiXG4iKQogCiAgICAgZGVmIGNvbXBhcmVfb3V0cHV0KHNlbGYsIHBv
cnQsIGZpbGVuYW1lLCB0ZXN0X2FyZ3MsIGFjdHVhbF90ZXN0X291dHB1dCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3Rlc3Rfb3V0cHV0KToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76634</attachid>
            <date>2010-12-15 00:01:13 -0800</date>
            <delta_ts>2010-12-15 01:48:41 -0800</delta_ts>
            <desc>Fix and unit tests</desc>
            <filename>wk36983.diff.submit</filename>
            <type>text/plain</type>
            <size>5651</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3NjFiYTllLi41ZGU1N2E2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTIt
MTQgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHMgaWdu
b3JlcyB0cmFpbGluZyBFT0wgZGlmZmVyZW5jZXMgaW4gdGV4dCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5ODMKKworICAgICAgICBDaGFu
Z2VkIHRoZSBoYW5kbGluZyBvZiBuZXctbGluZSBjaGFyYWN0ZXJzIHdpdGhpbiBuZXctcnVuLXdl
YmtpdC10ZXN0cworICAgICAgICB0byBtYXRjaCBvbGQtcnVuLXdlYmtpdC10ZXN0cy4gIERpZmZl
cmVuY2VzIGluIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGVtcHR5CisgICAgICAgIGxpbmVzIGluIHRl
eHQgZXhwZWN0YXRpb24gZmlsZXMgYXJlIG5vIGxvbmdlciBpZ25vcmVkLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgQWRkZWQg
dW5pdCB0ZXN0cy4gIFJlbW92ZWQgb2xkIGR1cGxpY2F0ZSB1bml0IHRlc3QgZW50cmllcy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlm
Zi5weToKKwogMjAxMC0xMi0xNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgSmlhbiBMaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBiYzVhOWFhLi44
Nzk4MmJiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zMjIsNyArMzIyLDkgQEAgY2xhc3MgUG9ydChvYmpl
Y3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKHBh
dGgpCiAKICAgICBkZWYgZXhwZWN0ZWRfdGV4dChzZWxmLCB0ZXN0KToKLSAgICAgICAgIiIiUmV0
dXJucyB0aGUgdGV4dCBvdXRwdXQgd2UgZXhwZWN0IHRoZSB0ZXN0IHRvIHByb2R1Y2UuIiIiCisg
ICAgICAgICIiIlJldHVybnMgdGhlIHRleHQgb3V0cHV0IHdlIGV4cGVjdCB0aGUgdGVzdCB0byBw
cm9kdWNlLgorICAgICAgICBFbmQtb2YtbGluZSBjaGFyYWN0ZXJzIGFyZSBub3JtYWxpemVkIHRv
ICJcbiIgaW4gYm90aCB0aGUgZXhwZWN0ZWQgYW5kCisgICAgICAgIHRoZSBhY3R1YWwgdGV4dCBv
dXRwdXRzLiIiIgogICAgICAgICAjIEZJWE1FOiBEUlQgb3V0cHV0IGlzIGFjdHVhbGx5IHV0Zi04
LCBidXQgc2luY2Ugd2UgZG9uJ3QgZGVjb2RlIHRoZQogICAgICAgICAjIG91dHB1dCBmcm9tIERS
VCAoaW5zdGVhZCB0cmVhdGluZyBpdCBhcyBhIGJpbmFyeSBzdHJpbmcpLCB3ZSByZWFkIHRoZQog
ICAgICAgICAjIGJhc2VsaW5lcyBhcyBhIGJpbmFyeSBzdHJpbmcsIHRvby4KQEAgLTMzMCw3ICsz
MzIsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLnBhdGhfZXhp
c3RzKHBhdGgpOgogICAgICAgICAgICAgcmV0dXJuICcnCiAgICAgICAgIHRleHQgPSBzZWxmLl9m
aWxlc3lzdGVtLnJlYWRfYmluYXJ5X2ZpbGUocGF0aCkKLSAgICAgICAgcmV0dXJuIHRleHQuc3Ry
aXAoIlxyXG4iKS5yZXBsYWNlKCJcclxuIiwgIlxuIikgKyAiXG4iCisgICAgICAgIHJldHVybiB0
ZXh0LnJlcGxhY2UoIlxyXG4iLCAiXG4iKQogCiAgICAgZGVmIGZpbGVuYW1lX3RvX3VyaShzZWxm
LCBmaWxlbmFtZSk6CiAgICAgICAgICIiIkNvbnZlcnQgYSB0ZXN0IGZpbGUgKHdoaWNoIGlzIGFu
IGFic29sdXRlIHBhdGgpIHRvIGEgVVJJLiIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDllNzk2NjcuLjEw
Y2ExZWUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTkwLDggKzkwLDYgQEAgY2xhc3MgVGVzdFBvcnQoYmFz
ZS5Qb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBiYXNl
LlBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAgICAgICAgIHRlc3RzID0gVGVzdExpc3Qo
c2VsZikKLSAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvaW1hZ2UuaHRtbCcpCi0gICAgICAgIHRl
c3RzLmFkZCgncGFzc2VzL3RleHQuaHRtbCcpCiAgICAgICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvY2hlY2tzdW0uaHRtbCcsCiAgICAgICAgICAgICAgICAgICBhY3R1YWxfY2hlY2tz
dW09J2NoZWNrc3VtX2ZhaWwtY2hlY2tzdW0nKQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVz
L2V4cGVjdGVkL2NyYXNoLmh0bWwnLCBjcmFzaD1UcnVlKQpAQCAtMTE0LDYgKzExMiwxMiBAQCBj
bGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW1h
Z2U9Tm9uZSkKICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX3Rl
eHQuaHRtbCcsCiAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90ZXh0PU5vbmUpCisgICAgICAg
IHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbmV3bGluZXNfbGVhZGluZy5odG1sJywKKyAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9IlxuZm9vXG4iLAorICAgICAgICAgICAgICAg
ICAgYWN0dWFsX3RleHQ9ImZvb1xuIikKKyAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBl
Y3RlZC9uZXdsaW5lc190cmFpbGluZy5odG1sJywKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3RleHQ9ImZvb1xuXG4iLAorICAgICAgICAgICAgICAgICAgYWN0dWFsX3RleHQ9ImZvb1xuIikK
ICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLAogICAgICAg
ICAgICAgICAgICAgYWN0dWFsX3RleHQ9J3RleHRfZmFpbC1wbmcnKQogICAgICAgICB0ZXN0cy5h
ZGQoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvdGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJywKQEAgLTEy
NCw3ICsxMjgsOSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICB0ZXN0cy5h
ZGQoJ3Bhc3Nlcy9lcnJvci5odG1sJywgZXJyb3I9J3N0dWZmIGdvaW5nIHRvIHN0ZGVycicpCiAg
ICAgICAgIHRlc3RzLmFkZCgncGFzc2VzL2ltYWdlLmh0bWwnKQogICAgICAgICB0ZXN0cy5hZGQo
J3Bhc3Nlcy9wbGF0Zm9ybV9pbWFnZS5odG1sJykKLSAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMv
dGV4dC5odG1sJykKKyAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvdGV4dC5odG1sJywKKyAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9J1xuZm9vXG5cbicsCisgICAgICAgICAgICAgICAg
ICBhY3R1YWxfdGV4dD0nXG5mb29cclxuXHJcclxuJykKICAgICAgICAgdGVzdHMuYWRkKCd3ZWJz
b2NrZXQvdGVzdHMvcGFzc2VzL3RleHQuaHRtbCcpCiAgICAgICAgIHNlbGYuX3Rlc3RzID0gdGVz
dHMKIApAQCAtMjcwLDYgKzI3Niw4IEBAIFdPTlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFn
ZV9jaGVja3N1bS5odG1sID0gSU1BR0UKIFdPTlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC9taXNz
aW5nX2NoZWNrLmh0bWwgPSBNSVNTSU5HIFBBU1MKIFdPTlRGSVggOiBmYWlsdXJlcy9leHBlY3Rl
ZC9taXNzaW5nX2ltYWdlLmh0bWwgPSBNSVNTSU5HIFBBU1MKIFdPTlRGSVggOiBmYWlsdXJlcy9l
eHBlY3RlZC9taXNzaW5nX3RleHQuaHRtbCA9IE1JU1NJTkcgUEFTUworV09OVEZJWCA6IGZhaWx1
cmVzL2V4cGVjdGVkL25ld2xpbmVzX2xlYWRpbmcuaHRtbCA9IFRFWFQKK1dPTlRGSVggOiBmYWls
dXJlcy9leHBlY3RlZC9uZXdsaW5lc190cmFpbGluZy5odG1sID0gVEVYVAogV09OVEZJWCA6IGZh
aWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFQKIFdPTlRGSVggOiBmYWlsdXJlcy9leHBl
Y3RlZC90aW1lb3V0Lmh0bWwgPSBUSU1FT1VUCiBXT05URklYIFNLSVAgOiBmYWlsdXJlcy9leHBl
Y3RlZC9oYW5nLmh0bWwgPSBUSU1FT1VUCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5
CmluZGV4IGNhNGIxN2QuLmNmNjRiZmQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4dF9kaWZm
LnB5CkBAIC00OSwxMSArNDksMTEgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRw
eS5sYXlvdXRfdGVzdHMudGVzdF90eXBlcy50ZXh0X2RpZmYiKQogY2xhc3MgVGVzdFRleHREaWZm
KHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAKICAgICBkZWYgX2dldF9ub3JtYWxpemVk
X291dHB1dF90ZXh0KHNlbGYsIG91dHB1dCk6CisgICAgICAgICIiIlJldHVybnMgdGhlIG5vcm1h
bGl6ZWQgdGV4dCBvdXRwdXQsIGkuZS4gdGhlIG91dHB1dCBpbiB3aGljaAorICAgICAgICB0aGUg
ZW5kLW9mLWxpbmUgY2hhcmFjdGVycyBhcmUgbm9ybWFsaXplZCB0byAiXG4iLiIiIgogICAgICAg
ICAjIFNvbWUgdGVzdHMgcHJvZHVjZSAiXHJcbiIgZXhwbGljaXRseS4gIE91ciBzeXN0ZW0gKFB5
dGhvbi9DeWd3aW4pCiAgICAgICAgICMgaGVscGZ1bGx5IGNoYW5nZXMgdGhlICJcbiIgdG8gIlxy
XG4iLCByZXN1bHRpbmcgaW4gIlxyXHJcbiIuCi0gICAgICAgIG5vcm0gPSBvdXRwdXQucmVwbGFj
ZSgiXHJcclxuIiwgIlxyXG4iKS5zdHJpcCgiXHJcbiIpLnJlcGxhY2UoCi0gICAgICAgICAgICAg
IlxyXG4iLCAiXG4iKQotICAgICAgICByZXR1cm4gbm9ybSArICJcbiIKKyAgICAgICAgcmV0dXJu
IG91dHB1dC5yZXBsYWNlKCJcclxuIiwgIlxuIikucmVwbGFjZSgiXHJcbiIsICJcbiIpCiAKICAg
ICBkZWYgY29tcGFyZV9vdXRwdXQoc2VsZiwgcG9ydCwgZmlsZW5hbWUsIHRlc3RfYXJncywgYWN0
dWFsX3Rlc3Rfb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGVzdF9v
dXRwdXQpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76637</attachid>
            <date>2010-12-15 01:48:41 -0800</date>
            <delta_ts>2010-12-17 15:31:34 -0800</delta_ts>
            <desc>Fix and unit tests</desc>
            <filename>wk36983.diff.submit</filename>
            <type>text/plain</type>
            <size>6243</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3NjFiYTllLi41ZGU1N2E2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTIt
MTQgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHMgaWdu
b3JlcyB0cmFpbGluZyBFT0wgZGlmZmVyZW5jZXMgaW4gdGV4dCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5ODMKKworICAgICAgICBDaGFu
Z2VkIHRoZSBoYW5kbGluZyBvZiBuZXctbGluZSBjaGFyYWN0ZXJzIHdpdGhpbiBuZXctcnVuLXdl
YmtpdC10ZXN0cworICAgICAgICB0byBtYXRjaCBvbGQtcnVuLXdlYmtpdC10ZXN0cy4gIERpZmZl
cmVuY2VzIGluIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGVtcHR5CisgICAgICAgIGxpbmVzIGluIHRl
eHQgZXhwZWN0YXRpb24gZmlsZXMgYXJlIG5vIGxvbmdlciBpZ25vcmVkLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgQWRkZWQg
dW5pdCB0ZXN0cy4gIFJlbW92ZWQgb2xkIGR1cGxpY2F0ZSB1bml0IHRlc3QgZW50cmllcy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlm
Zi5weToKKwogMjAxMC0xMi0xNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgSmlhbiBMaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBiYzVhOWFhLi5h
YThiMmU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zMjIsNyArMzIyLDggQEAgY2xhc3MgUG9ydChvYmpl
Y3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKHBh
dGgpCiAKICAgICBkZWYgZXhwZWN0ZWRfdGV4dChzZWxmLCB0ZXN0KToKLSAgICAgICAgIiIiUmV0
dXJucyB0aGUgdGV4dCBvdXRwdXQgd2UgZXhwZWN0IHRoZSB0ZXN0IHRvIHByb2R1Y2UuIiIiCisg
ICAgICAgICIiIlJldHVybnMgdGhlIHRleHQgb3V0cHV0IHdlIGV4cGVjdCB0aGUgdGVzdCB0byBw
cm9kdWNlLgorICAgICAgICBFbmQtb2YtbGluZSBjaGFyYWN0ZXJzIGFyZSBub3JtYWxpemVkIHRv
ICdcbicuIiIiCiAgICAgICAgICMgRklYTUU6IERSVCBvdXRwdXQgaXMgYWN0dWFsbHkgdXRmLTgs
IGJ1dCBzaW5jZSB3ZSBkb24ndCBkZWNvZGUgdGhlCiAgICAgICAgICMgb3V0cHV0IGZyb20gRFJU
IChpbnN0ZWFkIHRyZWF0aW5nIGl0IGFzIGEgYmluYXJ5IHN0cmluZyksIHdlIHJlYWQgdGhlCiAg
ICAgICAgICMgYmFzZWxpbmVzIGFzIGEgYmluYXJ5IHN0cmluZywgdG9vLgpAQCAtMzMwLDcgKzMz
MSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgaWYgbm90IHNlbGYucGF0aF9leGlz
dHMocGF0aCk6CiAgICAgICAgICAgICByZXR1cm4gJycKICAgICAgICAgdGV4dCA9IHNlbGYuX2Zp
bGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShwYXRoKQotICAgICAgICByZXR1cm4gdGV4dC5zdHJp
cCgiXHJcbiIpLnJlcGxhY2UoIlxyXG4iLCAiXG4iKSArICJcbiIKKyAgICAgICAgcmV0dXJuIHRl
eHQucmVwbGFjZSgiXHJcbiIsICJcbiIpCiAKICAgICBkZWYgZmlsZW5hbWVfdG9fdXJpKHNlbGYs
IGZpbGVuYW1lKToKICAgICAgICAgIiIiQ29udmVydCBhIHRlc3QgZmlsZSAod2hpY2ggaXMgYW4g
YWJzb2x1dGUgcGF0aCkgdG8gYSBVUkkuIiIiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggOWU3OTY2Ny4uZjcw
YjZkMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtOTAsOCArOTAsNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNl
LlBvcnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGJhc2Uu
UG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKICAgICAgICAgdGVzdHMgPSBUZXN0TGlzdChz
ZWxmKQotICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9pbWFnZS5odG1sJykKLSAgICAgICAgdGVz
dHMuYWRkKCdwYXNzZXMvdGV4dC5odG1sJykKICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9l
eHBlY3RlZC9jaGVja3N1bS5odG1sJywKICAgICAgICAgICAgICAgICAgIGFjdHVhbF9jaGVja3N1
bT0nY2hlY2tzdW1fZmFpbC1jaGVja3N1bScpCiAgICAgICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIGNyYXNoPVRydWUpCkBAIC0xMTQsNiArMTEyLDE1IEBAIGNs
YXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pbWFn
ZT1Ob25lKQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4
dC5odG1sJywKICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9Tm9uZSkKKyAgICAgICAg
dGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc19sZWFkaW5nLmh0bWwnLAorICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0iXG5mb29cbiIsCisgICAgICAgICAgICAgICAg
ICBhY3R1YWxfdGV4dD0iZm9vXG4iKQorICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVj
dGVkL25ld2xpbmVzX3RyYWlsaW5nLmh0bWwnLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
dGV4dD0iZm9vXG5cbiIsCisgICAgICAgICAgICAgICAgICBhY3R1YWxfdGV4dD0iZm9vXG4iKQor
ICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL25ld2xpbmVzX3dpdGhfZXhjZXNz
X0NSLmh0bWwnLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0iZm9vXHJcclxyXG4i
LAorICAgICAgICAgICAgICAgICAgYWN0dWFsX3RleHQ9ImZvb1xuIikKICAgICAgICAgdGVzdHMu
YWRkKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLAogICAgICAgICAgICAgICAgICAgYWN0
dWFsX3RleHQ9J3RleHRfZmFpbC1wbmcnKQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL3Vu
ZXhwZWN0ZWQvdGV4dC1pbWFnZS1jaGVja3N1bS5odG1sJywKQEAgLTEyNCw3ICsxMzEsMTEgQEAg
Y2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvZXJy
b3IuaHRtbCcsIGVycm9yPSdzdHVmZiBnb2luZyB0byBzdGRlcnInKQogICAgICAgICB0ZXN0cy5h
ZGQoJ3Bhc3Nlcy9pbWFnZS5odG1sJykKICAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvcGxhdGZv
cm1faW1hZ2UuaHRtbCcpCi0gICAgICAgIHRlc3RzLmFkZCgncGFzc2VzL3RleHQuaHRtbCcpCisg
ICAgICAgICMgVGV4dCBvdXRwdXQgZmlsZXMgY29udGFpbiAiXHJcbiIgb24gV2luZG93cy4gIFRo
aXMgbWF5IGJlCisgICAgICAgICMgaGVscGZ1bGx5IGZpbHRlcmVkIHRvICJcclxyXG4iIGJ5IG91
ciBQeXRob24vQ3lnd2luIHRvb2xpbmcuCisgICAgICAgIHRlc3RzLmFkZCgncGFzc2VzL3RleHQu
aHRtbCcsCisgICAgICAgICAgICAgICAgICBleHBlY3RlZF90ZXh0PSdcbmZvb1xuXG4nLAorICAg
ICAgICAgICAgICAgICAgYWN0dWFsX3RleHQ9J1xuZm9vXHJcblxyXHJcbicpCiAgICAgICAgIHRl
c3RzLmFkZCgnd2Vic29ja2V0L3Rlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwnKQogICAgICAgICBzZWxm
Ll90ZXN0cyA9IHRlc3RzCiAKQEAgLTI3MCw2ICsyODEsOSBAQCBXT05URklYIDogZmFpbHVyZXMv
ZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCA9IElNQUdFCiBXT05URklYIDogZmFpbHVyZXMv
ZXhwZWN0ZWQvbWlzc2luZ19jaGVjay5odG1sID0gTUlTU0lORyBQQVNTCiBXT05URklYIDogZmFp
bHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sID0gTUlTU0lORyBQQVNTCiBXT05URklY
IDogZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ190ZXh0Lmh0bWwgPSBNSVNTSU5HIFBBU1MKK1dP
TlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc19sZWFkaW5nLmh0bWwgPSBURVhUCitX
T05URklYIDogZmFpbHVyZXMvZXhwZWN0ZWQvbmV3bGluZXNfdHJhaWxpbmcuaHRtbCA9IFRFWFQK
K1dPTlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc193aXRoX2V4Y2Vzc19DUi5odG1s
ID0gVEVYVAogV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFQKIFdP
TlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwgPSBUSU1FT1VUCiBXT05URklY
IFNLSVAgOiBmYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwgPSBUSU1FT1VUCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3Rl
eHRfZGlmZi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rl
c3RfdHlwZXMvdGV4dF9kaWZmLnB5CmluZGV4IGNhNGIxN2QuLmFkMjUyNjIgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMvdGV4
dF9kaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3Rlc3RfdHlwZXMvdGV4dF9kaWZmLnB5CkBAIC00OSwxMSArNDksMTMgQEAgX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMudGVzdF90eXBlcy50ZXh0X2RpZmYi
KQogY2xhc3MgVGVzdFRleHREaWZmKHRlc3RfdHlwZV9iYXNlLlRlc3RUeXBlQmFzZSk6CiAKICAg
ICBkZWYgX2dldF9ub3JtYWxpemVkX291dHB1dF90ZXh0KHNlbGYsIG91dHB1dCk6Ci0gICAgICAg
ICMgU29tZSB0ZXN0cyBwcm9kdWNlICJcclxuIiBleHBsaWNpdGx5LiAgT3VyIHN5c3RlbSAoUHl0
aG9uL0N5Z3dpbikKLSAgICAgICAgIyBoZWxwZnVsbHkgY2hhbmdlcyB0aGUgIlxuIiB0byAiXHJc
biIsIHJlc3VsdGluZyBpbiAiXHJcclxuIi4KLSAgICAgICAgbm9ybSA9IG91dHB1dC5yZXBsYWNl
KCJcclxyXG4iLCAiXHJcbiIpLnN0cmlwKCJcclxuIikucmVwbGFjZSgKLSAgICAgICAgICAgICAi
XHJcbiIsICJcbiIpCi0gICAgICAgIHJldHVybiBub3JtICsgIlxuIgorICAgICAgICAiIiJSZXR1
cm5zIHRoZSBub3JtYWxpemVkIHRleHQgb3V0cHV0LCBpLmUuIHRoZSBvdXRwdXQgaW4gd2hpY2gK
KyAgICAgICAgdGhlIGVuZC1vZi1saW5lIGNoYXJhY3RlcnMgYXJlIG5vcm1hbGl6ZWQgdG8gIlxu
Ii4iIiIKKyAgICAgICAgIyBSdW5uaW5nIHRlc3RzIG9uIFdpbmRvd3MgcHJvZHVjZXMgIlxyXG4i
LiAgVGhlICJcbiIgcGFydCBpcyBoZWxwZnVsbHkKKyAgICAgICAgIyBjaGFuZ2VkIHRvICJcclxu
IiBieSBvdXIgc3lzdGVtIChQeXRob24vQ3lnd2luKSwgcmVzdWx0aW5nIGluCisgICAgICAgICMg
IlxyXHJcbiIsIHdoZW4sIGluIGZhY3QsIHdlIHdhbnRlZCB0byBjb21wYXJlIHRoZSB0ZXh0IG91
dHB1dCB3aXRoCisgICAgICAgICMgdGhlIG5vcm1hbGl6ZWQgdGV4dCBleHBlY3RhdGlvbiBmaWxl
cy4KKyAgICAgICAgcmV0dXJuIG91dHB1dC5yZXBsYWNlKCJcclxyXG4iLCAiXHJcbiIpLnJlcGxh
Y2UoIlxyXG4iLCAiXG4iKQogCiAgICAgZGVmIGNvbXBhcmVfb3V0cHV0KHNlbGYsIHBvcnQsIGZp
bGVuYW1lLCB0ZXN0X2FyZ3MsIGFjdHVhbF90ZXN0X291dHB1dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkX3Rlc3Rfb3V0cHV0KToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76919</attachid>
            <date>2010-12-17 15:31:34 -0800</date>
            <delta_ts>2010-12-20 10:56:17 -0800</delta_ts>
            <desc>Fix and unit tests</desc>
            <filename>wk36983.diff.submit</filename>
            <type>text/plain</type>
            <size>6245</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3NGYxMjhiLi4wNTZjYzRiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTIt
MTcgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHMgaWdu
b3JlcyB0cmFpbGluZyBFT0wgZGlmZmVyZW5jZXMgaW4gdGV4dCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5ODMKKworICAgICAgICBDaGFu
Z2VkIHRoZSBoYW5kbGluZyBvZiBuZXctbGluZSBjaGFyYWN0ZXJzIHdpdGhpbiBuZXctcnVuLXdl
YmtpdC10ZXN0cworICAgICAgICB0byBtYXRjaCBvbGQtcnVuLXdlYmtpdC10ZXN0cy4gIERpZmZl
cmVuY2VzIGluIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGVtcHR5CisgICAgICAgIGxpbmVzIGluIHRl
eHQgZXhwZWN0YXRpb24gZmlsZXMgYXJlIG5vIGxvbmdlciBpZ25vcmVkLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgQWRkZWQg
dW5pdCB0ZXN0cy4gIFJlbW92ZWQgb2xkIGR1cGxpY2F0ZSB1bml0IHRlc3QgZW50cmllcy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlm
Zi5weToKKwogMjAxMC0xMi0xNiAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggYmM1YTlh
YS4uYWE4YjJlNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtMzIyLDcgKzMyMiw4IEBAIGNsYXNzIFBvcnQo
b2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmls
ZShwYXRoKQogCiAgICAgZGVmIGV4cGVjdGVkX3RleHQoc2VsZiwgdGVzdCk6Ci0gICAgICAgICIi
IlJldHVybnMgdGhlIHRleHQgb3V0cHV0IHdlIGV4cGVjdCB0aGUgdGVzdCB0byBwcm9kdWNlLiIi
IgorICAgICAgICAiIiJSZXR1cm5zIHRoZSB0ZXh0IG91dHB1dCB3ZSBleHBlY3QgdGhlIHRlc3Qg
dG8gcHJvZHVjZS4KKyAgICAgICAgRW5kLW9mLWxpbmUgY2hhcmFjdGVycyBhcmUgbm9ybWFsaXpl
ZCB0byAnXG4nLiIiIgogICAgICAgICAjIEZJWE1FOiBEUlQgb3V0cHV0IGlzIGFjdHVhbGx5IHV0
Zi04LCBidXQgc2luY2Ugd2UgZG9uJ3QgZGVjb2RlIHRoZQogICAgICAgICAjIG91dHB1dCBmcm9t
IERSVCAoaW5zdGVhZCB0cmVhdGluZyBpdCBhcyBhIGJpbmFyeSBzdHJpbmcpLCB3ZSByZWFkIHRo
ZQogICAgICAgICAjIGJhc2VsaW5lcyBhcyBhIGJpbmFyeSBzdHJpbmcsIHRvby4KQEAgLTMzMCw3
ICszMzEsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLnBhdGhf
ZXhpc3RzKHBhdGgpOgogICAgICAgICAgICAgcmV0dXJuICcnCiAgICAgICAgIHRleHQgPSBzZWxm
Ll9maWxlc3lzdGVtLnJlYWRfYmluYXJ5X2ZpbGUocGF0aCkKLSAgICAgICAgcmV0dXJuIHRleHQu
c3RyaXAoIlxyXG4iKS5yZXBsYWNlKCJcclxuIiwgIlxuIikgKyAiXG4iCisgICAgICAgIHJldHVy
biB0ZXh0LnJlcGxhY2UoIlxyXG4iLCAiXG4iKQogCiAgICAgZGVmIGZpbGVuYW1lX3RvX3VyaShz
ZWxmLCBmaWxlbmFtZSk6CiAgICAgICAgICIiIkNvbnZlcnQgYSB0ZXN0IGZpbGUgKHdoaWNoIGlz
IGFuIGFic29sdXRlIHBhdGgpIHRvIGEgVVJJLiIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDNkYzJiNzQu
LmRjYTAzNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTkwLDggKzkwLDYgQEAgY2xhc3MgVGVzdFBvcnQo
YmFzZS5Qb3J0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBi
YXNlLlBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCiAgICAgICAgIHRlc3RzID0gVGVzdExp
c3Qoc2VsZikKLSAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvaW1hZ2UuaHRtbCcpCi0gICAgICAg
IHRlc3RzLmFkZCgncGFzc2VzL3RleHQuaHRtbCcpCiAgICAgICAgIHRlc3RzLmFkZCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvY2hlY2tzdW0uaHRtbCcsCiAgICAgICAgICAgICAgICAgICBhY3R1YWxfY2hl
Y2tzdW09J2NoZWNrc3VtX2ZhaWwtY2hlY2tzdW0nKQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCBjcmFzaD1UcnVlKQpAQCAtMTE0LDYgKzExMiwxNSBA
QCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
aW1hZ2U9Tm9uZSkKICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5n
X3RleHQuaHRtbCcsCiAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90ZXh0PU5vbmUpCisgICAg
ICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbmV3bGluZXNfbGVhZGluZy5odG1sJywK
KyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9IlxuZm9vXG4iLAorICAgICAgICAgICAg
ICAgICAgYWN0dWFsX3RleHQ9ImZvb1xuIikKKyAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9l
eHBlY3RlZC9uZXdsaW5lc190cmFpbGluZy5odG1sJywKKyAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkX3RleHQ9ImZvb1xuXG4iLAorICAgICAgICAgICAgICAgICAgYWN0dWFsX3RleHQ9ImZvb1xu
IikKKyAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc193aXRoX2V4
Y2Vzc19DUi5odG1sJywKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9ImZvb1xyXHJc
clxuIiwKKyAgICAgICAgICAgICAgICAgIGFjdHVhbF90ZXh0PSJmb29cbiIpCiAgICAgICAgIHRl
c3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywKICAgICAgICAgICAgICAgICAg
IGFjdHVhbF90ZXh0PSd0ZXh0X2ZhaWwtcG5nJykKICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJl
cy91bmV4cGVjdGVkL2NyYXNoLmh0bWwnLCBjcmFzaD1UcnVlKQpAQCAtMTI2LDcgKzEzMywxMSBA
QCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9l
cnJvci5odG1sJywgZXJyb3I9J3N0dWZmIGdvaW5nIHRvIHN0ZGVycicpCiAgICAgICAgIHRlc3Rz
LmFkZCgncGFzc2VzL2ltYWdlLmh0bWwnKQogICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9wbGF0
Zm9ybV9pbWFnZS5odG1sJykKLSAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvdGV4dC5odG1sJykK
KyAgICAgICAgIyBUZXh0IG91dHB1dCBmaWxlcyBjb250YWluICJcclxuIiBvbiBXaW5kb3dzLiAg
VGhpcyBtYXkgYmUKKyAgICAgICAgIyBoZWxwZnVsbHkgZmlsdGVyZWQgdG8gIlxyXHJcbiIgYnkg
b3VyIFB5dGhvbi9DeWd3aW4gdG9vbGluZy4KKyAgICAgICAgdGVzdHMuYWRkKCdwYXNzZXMvdGV4
dC5odG1sJywKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9J1xuZm9vXG5cbicsCisg
ICAgICAgICAgICAgICAgICBhY3R1YWxfdGV4dD0nXG5mb29cclxuXHJcclxuJykKICAgICAgICAg
dGVzdHMuYWRkKCd3ZWJzb2NrZXQvdGVzdHMvcGFzc2VzL3RleHQuaHRtbCcpCiAgICAgICAgIHNl
bGYuX3Rlc3RzID0gdGVzdHMKIApAQCAtMjcyLDYgKzI4Myw5IEBAIFdPTlRGSVggOiBmYWlsdXJl
cy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sID0gSU1BR0UKIFdPTlRGSVggOiBmYWlsdXJl
cy9leHBlY3RlZC9taXNzaW5nX2NoZWNrLmh0bWwgPSBNSVNTSU5HIFBBU1MKIFdPTlRGSVggOiBm
YWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlLmh0bWwgPSBNSVNTSU5HIFBBU1MKIFdPTlRG
SVggOiBmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX3RleHQuaHRtbCA9IE1JU1NJTkcgUEFTUwor
V09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL25ld2xpbmVzX2xlYWRpbmcuaHRtbCA9IFRFWFQK
K1dPTlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc190cmFpbGluZy5odG1sID0gVEVY
VAorV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL25ld2xpbmVzX3dpdGhfZXhjZXNzX0NSLmh0
bWwgPSBURVhUCiBXT05URklYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sID0gVEVYVAog
V09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCA9IFRJTUVPVVQKIFdPTlRG
SVggU0tJUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Rlc3RfdHlwZXMv
dGV4dF9kaWZmLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dGVzdF90eXBlcy90ZXh0X2RpZmYucHkKaW5kZXggY2E0YjE3ZC4uYWQyNTI2MiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90
ZXh0X2RpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkKQEAgLTQ5LDExICs0OSwxMyBAQCBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy50ZXN0X3R5cGVzLnRleHRfZGlm
ZiIpCiBjbGFzcyBUZXN0VGV4dERpZmYodGVzdF90eXBlX2Jhc2UuVGVzdFR5cGVCYXNlKToKIAog
ICAgIGRlZiBfZ2V0X25vcm1hbGl6ZWRfb3V0cHV0X3RleHQoc2VsZiwgb3V0cHV0KToKLSAgICAg
ICAgIyBTb21lIHRlc3RzIHByb2R1Y2UgIlxyXG4iIGV4cGxpY2l0bHkuICBPdXIgc3lzdGVtIChQ
eXRob24vQ3lnd2luKQotICAgICAgICAjIGhlbHBmdWxseSBjaGFuZ2VzIHRoZSAiXG4iIHRvICJc
clxuIiwgcmVzdWx0aW5nIGluICJcclxyXG4iLgotICAgICAgICBub3JtID0gb3V0cHV0LnJlcGxh
Y2UoIlxyXHJcbiIsICJcclxuIikuc3RyaXAoIlxyXG4iKS5yZXBsYWNlKAotICAgICAgICAgICAg
ICJcclxuIiwgIlxuIikKLSAgICAgICAgcmV0dXJuIG5vcm0gKyAiXG4iCisgICAgICAgICIiIlJl
dHVybnMgdGhlIG5vcm1hbGl6ZWQgdGV4dCBvdXRwdXQsIGkuZS4gdGhlIG91dHB1dCBpbiB3aGlj
aAorICAgICAgICB0aGUgZW5kLW9mLWxpbmUgY2hhcmFjdGVycyBhcmUgbm9ybWFsaXplZCB0byAi
XG4iLiIiIgorICAgICAgICAjIFJ1bm5pbmcgdGVzdHMgb24gV2luZG93cyBwcm9kdWNlcyAiXHJc
biIuICBUaGUgIlxuIiBwYXJ0IGlzIGhlbHBmdWxseQorICAgICAgICAjIGNoYW5nZWQgdG8gIlxy
XG4iIGJ5IG91ciBzeXN0ZW0gKFB5dGhvbi9DeWd3aW4pLCByZXN1bHRpbmcgaW4KKyAgICAgICAg
IyAiXHJcclxuIiwgd2hlbiwgaW4gZmFjdCwgd2Ugd2FudGVkIHRvIGNvbXBhcmUgdGhlIHRleHQg
b3V0cHV0IHdpdGgKKyAgICAgICAgIyB0aGUgbm9ybWFsaXplZCB0ZXh0IGV4cGVjdGF0aW9uIGZp
bGVzLgorICAgICAgICByZXR1cm4gb3V0cHV0LnJlcGxhY2UoIlxyXHJcbiIsICJcclxuIikucmVw
bGFjZSgiXHJcbiIsICJcbiIpCiAKICAgICBkZWYgY29tcGFyZV9vdXRwdXQoc2VsZiwgcG9ydCwg
ZmlsZW5hbWUsIHRlc3RfYXJncywgYWN0dWFsX3Rlc3Rfb3V0cHV0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfdGVzdF9vdXRwdXQpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77013</attachid>
            <date>2010-12-20 10:56:17 -0800</date>
            <delta_ts>2010-12-20 13:46:02 -0800</delta_ts>
            <desc>Fix and unit tests</desc>
            <filename>wk36983.diff.submit</filename>
            <type>text/plain</type>
            <size>6154</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MzVi
Y2Q1Li40M2RmMWZmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTItMjAgIENvc21pbiBUcnV0YSAgPGN0cnV0
YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHMgaWdub3JlcyB0cmFpbGluZyBFT0wgZGlmZmVy
ZW5jZXMgaW4gdGV4dCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzY5ODMKKworICAgICAgICBDaGFuZ2VkIHRoZSBoYW5kbGluZyBvZiBuZXct
bGluZSBjaGFyYWN0ZXJzIHdpdGhpbiBuZXctcnVuLXdlYmtpdC10ZXN0cworICAgICAgICB0byBt
YXRjaCBvbGQtcnVuLXdlYmtpdC10ZXN0cy4gIERpZmZlcmVuY2VzIGluIGxlYWRpbmcgYW5kIHRy
YWlsaW5nIGVtcHR5CisgICAgICAgIGxpbmVzIGluIHRleHQgZXhwZWN0YXRpb24gZmlsZXMgYXJl
IG5vIGxvbmdlciBpZ25vcmVkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgQWRkZWQgdW5pdCB0ZXN0cy4gIFJlbW92ZWQgb2xk
IGR1cGxpY2F0ZSB1bml0IHRlc3QgZW50cmllcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weToKKwogMjAxMC0xMi0yMCAgUnl1
YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weQppbmRleCBiYzVhOWFhLi5hYThiMmU1IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zMjIsNyArMzIyLDgg
QEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5y
ZWFkX2JpbmFyeV9maWxlKHBhdGgpCiAKICAgICBkZWYgZXhwZWN0ZWRfdGV4dChzZWxmLCB0ZXN0
KToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgdGV4dCBvdXRwdXQgd2UgZXhwZWN0IHRoZSB0ZXN0
IHRvIHByb2R1Y2UuIiIiCisgICAgICAgICIiIlJldHVybnMgdGhlIHRleHQgb3V0cHV0IHdlIGV4
cGVjdCB0aGUgdGVzdCB0byBwcm9kdWNlLgorICAgICAgICBFbmQtb2YtbGluZSBjaGFyYWN0ZXJz
IGFyZSBub3JtYWxpemVkIHRvICdcbicuIiIiCiAgICAgICAgICMgRklYTUU6IERSVCBvdXRwdXQg
aXMgYWN0dWFsbHkgdXRmLTgsIGJ1dCBzaW5jZSB3ZSBkb24ndCBkZWNvZGUgdGhlCiAgICAgICAg
ICMgb3V0cHV0IGZyb20gRFJUIChpbnN0ZWFkIHRyZWF0aW5nIGl0IGFzIGEgYmluYXJ5IHN0cmlu
ZyksIHdlIHJlYWQgdGhlCiAgICAgICAgICMgYmFzZWxpbmVzIGFzIGEgYmluYXJ5IHN0cmluZywg
dG9vLgpAQCAtMzMwLDcgKzMzMSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgaWYg
bm90IHNlbGYucGF0aF9leGlzdHMocGF0aCk6CiAgICAgICAgICAgICByZXR1cm4gJycKICAgICAg
ICAgdGV4dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShwYXRoKQotICAgICAg
ICByZXR1cm4gdGV4dC5zdHJpcCgiXHJcbiIpLnJlcGxhY2UoIlxyXG4iLCAiXG4iKSArICJcbiIK
KyAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZSgiXHJcbiIsICJcbiIpCiAKICAgICBkZWYgZmls
ZW5hbWVfdG9fdXJpKHNlbGYsIGZpbGVuYW1lKToKICAgICAgICAgIiIiQ29udmVydCBhIHRlc3Qg
ZmlsZSAod2hpY2ggaXMgYW4gYWJzb2x1dGUgcGF0aCkgdG8gYSBVUkkuIiIiCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggM2I4Mjk5
Ni4uOTM1ODgxYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvdGVzdC5weQpAQCAtOTAsOCArOTAsNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGJhc2UuUG9ydC5f
X2luaXRfXyhzZWxmLCAqKmt3YXJncykKICAgICAgICAgdGVzdHMgPSBUZXN0TGlzdChzZWxmKQot
ICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9pbWFnZS5odG1sJykKLSAgICAgICAgdGVzdHMuYWRk
KCdwYXNzZXMvdGV4dC5odG1sJykKICAgICAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3Rl
ZC9jaGVja3N1bS5odG1sJywKICAgICAgICAgICAgICAgICAgIGFjdHVhbF9jaGVja3N1bT0nY2hl
Y2tzdW1fZmFpbC1jaGVja3N1bScpCiAgICAgICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0
ZWQvY3Jhc2guaHRtbCcsIGNyYXNoPVRydWUpCkBAIC0xMTQsNiArMTEyLDE1IEBAIGNsYXNzIFRl
c3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9pbWFnZT1Ob25l
KQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1s
JywKICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3RleHQ9Tm9uZSkKKyAgICAgICAgdGVzdHMu
YWRkKCdmYWlsdXJlcy9leHBlY3RlZC9uZXdsaW5lc19sZWFkaW5nLmh0bWwnLAorICAgICAgICAg
ICAgICAgICAgZXhwZWN0ZWRfdGV4dD0iXG5mb29cbiIsCisgICAgICAgICAgICAgICAgICBhY3R1
YWxfdGV4dD0iZm9vXG4iKQorICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL25l
d2xpbmVzX3RyYWlsaW5nLmh0bWwnLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0i
Zm9vXG5cbiIsCisgICAgICAgICAgICAgICAgICBhY3R1YWxfdGV4dD0iZm9vXG4iKQorICAgICAg
ICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL25ld2xpbmVzX3dpdGhfZXhjZXNzX0NSLmh0
bWwnLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0iZm9vXHJcclxyXG4iLAorICAg
ICAgICAgICAgICAgICAgYWN0dWFsX3RleHQ9ImZvb1xuIikKICAgICAgICAgdGVzdHMuYWRkKCdm
YWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLAogICAgICAgICAgICAgICAgICAgYWN0dWFsX3Rl
eHQ9J3RleHRfZmFpbC1wbmcnKQogICAgICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL3VuZXhwZWN0
ZWQvY3Jhc2guaHRtbCcsIGNyYXNoPVRydWUpCkBAIC0xMjYsNyArMTMzLDExIEBAIGNsYXNzIFRl
c3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHRlc3RzLmFkZCgncGFzc2VzL2Vycm9yLmh0bWwn
LCBlcnJvcj0nc3R1ZmYgZ29pbmcgdG8gc3RkZXJyJykKICAgICAgICAgdGVzdHMuYWRkKCdwYXNz
ZXMvaW1hZ2UuaHRtbCcpCiAgICAgICAgIHRlc3RzLmFkZCgncGFzc2VzL3BsYXRmb3JtX2ltYWdl
Lmh0bWwnKQotICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKQorICAgICAgICAj
IFRleHQgb3V0cHV0IGZpbGVzIGNvbnRhaW4gIlxyXG4iIG9uIFdpbmRvd3MuICBUaGlzIG1heSBi
ZQorICAgICAgICAjIGhlbHBmdWxseSBmaWx0ZXJlZCB0byAiXHJcclxuIiBieSBvdXIgUHl0aG9u
L0N5Z3dpbiB0b29saW5nLgorICAgICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy90ZXh0Lmh0bWwnLAor
ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0nXG5mb29cblxuJywKKyAgICAgICAgICAg
ICAgICAgIGFjdHVhbF90ZXh0PSdcbmZvb1xyXG5cclxyXG4nKQogICAgICAgICB0ZXN0cy5hZGQo
J3dlYnNvY2tldC90ZXN0cy9wYXNzZXMvdGV4dC5odG1sJykKICAgICAgICAgc2VsZi5fdGVzdHMg
PSB0ZXN0cwogCkBAIC0yNzIsNiArMjgzLDkgQEAgV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVk
L2ltYWdlX2NoZWNrc3VtLmh0bWwgPSBJTUFHRQogV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVk
L21pc3NpbmdfY2hlY2suaHRtbCA9IE1JU1NJTkcgUEFTUwogV09OVEZJWCA6IGZhaWx1cmVzL2V4
cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRtbCA9IE1JU1NJTkcgUEFTUwogV09OVEZJWCA6IGZhaWx1
cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sID0gTUlTU0lORyBQQVNTCitXT05URklYIDog
ZmFpbHVyZXMvZXhwZWN0ZWQvbmV3bGluZXNfbGVhZGluZy5odG1sID0gVEVYVAorV09OVEZJWCA6
IGZhaWx1cmVzL2V4cGVjdGVkL25ld2xpbmVzX3RyYWlsaW5nLmh0bWwgPSBURVhUCitXT05URklY
IDogZmFpbHVyZXMvZXhwZWN0ZWQvbmV3bGluZXNfd2l0aF9leGNlc3NfQ1IuaHRtbCA9IFRFWFQK
IFdPTlRGSVggOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUCiBXT05URklYIDog
ZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sID0gVElNRU9VVAogV09OVEZJWCBTS0lQIDog
ZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sID0gVElNRU9VVApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdGVzdF90eXBlcy90ZXh0X2RpZmYucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5w
eQppbmRleCBjYTRiMTdkLi5hZDI1MjYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy90ZXN0X3R5cGVzL3RleHRfZGlmZi5weQpAQCAtNDks
MTEgKzQ5LDEzIEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rl
c3RzLnRlc3RfdHlwZXMudGV4dF9kaWZmIikKIGNsYXNzIFRlc3RUZXh0RGlmZih0ZXN0X3R5cGVf
YmFzZS5UZXN0VHlwZUJhc2UpOgogCiAgICAgZGVmIF9nZXRfbm9ybWFsaXplZF9vdXRwdXRfdGV4
dChzZWxmLCBvdXRwdXQpOgotICAgICAgICAjIFNvbWUgdGVzdHMgcHJvZHVjZSAiXHJcbiIgZXhw
bGljaXRseS4gIE91ciBzeXN0ZW0gKFB5dGhvbi9DeWd3aW4pCi0gICAgICAgICMgaGVscGZ1bGx5
IGNoYW5nZXMgdGhlICJcbiIgdG8gIlxyXG4iLCByZXN1bHRpbmcgaW4gIlxyXHJcbiIuCi0gICAg
ICAgIG5vcm0gPSBvdXRwdXQucmVwbGFjZSgiXHJcclxuIiwgIlxyXG4iKS5zdHJpcCgiXHJcbiIp
LnJlcGxhY2UoCi0gICAgICAgICAgICAgIlxyXG4iLCAiXG4iKQotICAgICAgICByZXR1cm4gbm9y
bSArICJcbiIKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgbm9ybWFsaXplZCB0ZXh0IG91dHB1dCwg
aS5lLiB0aGUgb3V0cHV0IGluIHdoaWNoCisgICAgICAgIHRoZSBlbmQtb2YtbGluZSBjaGFyYWN0
ZXJzIGFyZSBub3JtYWxpemVkIHRvICJcbiIuIiIiCisgICAgICAgICMgUnVubmluZyB0ZXN0cyBv
biBXaW5kb3dzIHByb2R1Y2VzICJcclxuIi4gIFRoZSAiXG4iIHBhcnQgaXMgaGVscGZ1bGx5Cisg
ICAgICAgICMgY2hhbmdlZCB0byAiXHJcbiIgYnkgb3VyIHN5c3RlbSAoUHl0aG9uL0N5Z3dpbiks
IHJlc3VsdGluZyBpbgorICAgICAgICAjICJcclxyXG4iLCB3aGVuLCBpbiBmYWN0LCB3ZSB3YW50
ZWQgdG8gY29tcGFyZSB0aGUgdGV4dCBvdXRwdXQgd2l0aAorICAgICAgICAjIHRoZSBub3JtYWxp
emVkIHRleHQgZXhwZWN0YXRpb24gZmlsZXMuCisgICAgICAgIHJldHVybiBvdXRwdXQucmVwbGFj
ZSgiXHJcclxuIiwgIlxyXG4iKS5yZXBsYWNlKCJcclxuIiwgIlxuIikKIAogICAgIGRlZiBjb21w
YXJlX291dHB1dChzZWxmLCBwb3J0LCBmaWxlbmFtZSwgdGVzdF9hcmdzLCBhY3R1YWxfdGVzdF9v
dXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90ZXN0X291dHB1dCk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>