<?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>31689</bug_id>
          
          <creation_ts>2009-11-19 14:40:28 -0800</creation_ts>
          <short_desc>RegExp#exec&apos;s returned Array-like object behaves differently from regular Arrays</short_desc>
          <delta_ts>2009-11-24 20:29:42 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.6</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="J Smith">dark.panda+bugs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165096</commentid>
    <comment_count>0</comment_count>
      <attachid>43524</attachid>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-19 14:40:28 -0800</bug_when>
    <thetext>Created attachment 43524
RegExpMatchesArray::fillArrayInstance patch

RegExpMatchesArray objects returned from RegExp#exec behave differently than regular Arrays when using the &quot;in&quot; operator and the Array#forEach method. 

The RegExp#exec method returns an Array of captured matches from within the tested String. For optional captures, &quot;undefined&quot; is inserted into the Array as a missing match. The returned Array seems to be correct when you try to access the values directly using Array notation but using &quot;in&quot; or forEach will skip over any &quot;undefined&quot; values as if they aren&apos;t there.

For instance:

m = /(a)(_)?.+(c)(_)?.+/.exec(&quot;abcd&quot;);
console.log(m);
console.log(2 in m);
m.forEach(function(x) {
  console.log(x);
});

Should produce:

[&quot;abcd&quot;, &quot;a&quot;, undefined, &quot;c&quot;, undefined]
true
abcd
a
undefined
c
undefined

However, WebKit produces:

[&quot;abcd&quot;, &quot;a&quot;, undefined, &quot;c&quot;, undefined]
false
abcd
a
c

Using a regular Array similar to the one produced by RegExp#exec produces the expected result, so there is some inconsistency here.

The expected behaviour is based on what is produced by the Rhino, KJS and V8 engines. (In V8, the undefined values are inexplicably labeled &quot;null&quot; in their console output but checking with the strict equality operator shows that the undefined values are indeed undefined and not null. In IE8... well, the results are stranger still, as it acts in the exact opposite manner that WebKit does and produces empty Strings instead of undefineds or nulls to boot!)

A quick fix (small patch attached for the sake of convenience) appears to be to add an extra condition to JavaScriptCore/runtime/RegExpConstructor.cpp in RegExpMatchesArray::fillArrayInstance at line 135 to make sure that those undefined values are inserted properly:

131     for (unsigned i = 0; i &lt;= lastNumSubpatterns; ++i) {
132         int start = d-&gt;lastOvector()[2 * i];
133         if (start &gt;= 0)
134             JSArray::put(exec, i, jsSubstring(exec, d-&gt;lastInput, start, d-&gt;lastOvector()[2 * i + 1] - start));
135         else
136             JSArray::put(exec, i, jsUndefined());
137     }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165158</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-19 17:10:04 -0800</bug_when>
    <thetext>Thank you for the bug report, and for the proposed fix.

Would you be willing to submit a patch for review, as described in &lt;http://webkit.org/coding/contributing.html&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165319</commentid>
    <comment_count>2</comment_count>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-20 08:46:49 -0800</bug_when>
    <thetext>Not a problem. Should any new layout tests be added for the fix? This is my first WebKit patch so I&apos;m not entirely sure of the procedure...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165464</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-20 14:52:12 -0800</bug_when>
    <thetext>Good question! Yes, a layout test needs to be added to LayoutTests/fast/js. To make one, add a test script to LayoutTests/fast/js/script-tests, and then use make-script-test-wrappers script to generate an HTML wrapper. Expected results are generated by run-webkit-tests itself.

Looks like a link in &lt;http://webkit.org/coding/contributing.html&gt; promises to explain this, but &lt;http://webkit.org/quality/testwriting.html&gt; fails to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166076</commentid>
    <comment_count>4</comment_count>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 07:47:48 -0800</bug_when>
    <thetext>Okay, I&apos;ve created a patch, tests and such included. Hopefully everything is correct and in the right places. Just let me know how it looks and if everything is okay...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166081</commentid>
    <comment_count>5</comment_count>
      <attachid>43769</attachid>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 07:52:47 -0800</bug_when>
    <thetext>Created attachment 43769
Patch for RegExpMatchesArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166168</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 10:45:09 -0800</bug_when>
    <thetext>http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree explains more about test writing, but it has long been on my list of TODOs to enhance both that page and the webkit.org/quality/testwriting.html page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166173</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 10:47:58 -0800</bug_when>
    <thetext>Ideally JavaScriptCore/runtime/RegExpConstructor.cpp would be updated with your Copyright line.  And the ChangeLog would include your full name (unless your first name is actually &apos;J&apos;).  Overall the patch seems good to me.  I&apos;m not sure I understand the test case fully, but I would have to stare at it more.

Technically I think that the test case violates the webkit style guidlines ({ on a new line after a function name), although we aren&apos;t very clear about our JavaScript styling.  Thank you very much for the patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166213</commentid>
    <comment_count>8</comment_count>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 11:53:59 -0800</bug_when>
    <thetext>Is there anything like the &quot;WebKit Group&quot; or something the copyright could be assigned to? I have no problems assigning copyright over for a two-liner, especially if it makes licensing easier...

The test case itself just ensures that the RegExpMatchesArrays that are created by RegExp#exec insert the &quot;undefined&quot; entries where necessary, whether they&apos;re at the beginning of a match Array, in the middle or the end. It also tests the &quot;in&quot; operator and forEach function to make sure that the RegExpMatchesArray is behaving in the same manner as a plain old JavaScript Array. In the end, the three test functions should test the equivalence of Arrays to RegExpMatchesArrays with regards to the &quot;in&quot; operator and the forEach function.

I just noticed that I didn&apos;t include my forEach function tests, so I should add those as well.

I&apos;ll upload a new patch with the fixes for formatting and my missing forEach test. For the copyright statement, I&apos;ll add it, but I feel rather sheepish for adding a copyright statement for a two-liner. Again, if there&apos;s any group that accepts copyright assignment on WebKit&apos;s behalf, I can certainly assign copyright over if it&apos;s easier for licensing...

(On a somewhat related note with regards to DumpRenderTree, I&apos;m having problems building that tool and am getting &quot;make: *** No rule to make target .../Debug/DumpRenderTree&quot; errors. I&apos;ve only been able to run tests in LayoutTests manually. Any hints for a WebKit newbie?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166219</commentid>
    <comment_count>9</comment_count>
      <attachid>43795</attachid>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 12:02:09 -0800</bug_when>
    <thetext>Created attachment 43795
Patch for RegExpMatchesArray with corrections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166221</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 12:03:50 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Is there anything like the &quot;WebKit Group&quot; or something the copyright could be
&gt; assigned to? I have no problems assigning copyright over for a two-liner,
&gt; especially if it makes licensing easier...

No, for better or worse, there is no &quot;WebKit Group&quot;.  Most folks just list themselves, or their employer (if they have an explicit copyright assignment agreement with their employer).

&gt; I&apos;ll upload a new patch with the fixes for formatting and my missing forEach
&gt; test. For the copyright statement, I&apos;ll add it, but I feel rather sheepish for
&gt; adding a copyright statement for a two-liner. Again, if there&apos;s any group that
&gt; accepts copyright assignment on WebKit&apos;s behalf, I can certainly assign
&gt; copyright over if it&apos;s easier for licensing...

Thank you.

&gt; (On a somewhat related note with regards to DumpRenderTree, I&apos;m having problems
&gt; building that tool and am getting &quot;make: *** No rule to make target
&gt; .../Debug/DumpRenderTree&quot; errors. I&apos;ve only been able to run tests in
&gt; LayoutTests manually. Any hints for a WebKit newbie?)

Which port are you building?  If you&apos;re using make instead of build-webkit and build-dumprendertree I assume that you&apos;re using the gtk port.

run-webkit-tests calls build-dumprendertree on most ports and correctly builds DumpRenderTree if needed.  Not all ports have correctly wired up the scripts though, and it&apos;s possible you&apos;re using one of the ports which is missing this functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166223</commentid>
    <comment_count>11</comment_count>
      <attachid>43795</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 12:05:53 -0800</bug_when>
    <thetext>Comment on attachment 43795
Patch for RegExpMatchesArray with corrections

This looks right to me.  Thanks again for the patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166224</commentid>
    <comment_count>12</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-24 12:06:51 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 43795 [details])
&gt; This looks right to me.  Thanks again for the patch!

Still no expected results :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166226</commentid>
    <comment_count>13</comment_count>
      <attachid>43795</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 12:08:07 -0800</bug_when>
    <thetext>Comment on attachment 43795
Patch for RegExpMatchesArray with corrections

Rejecting patch 43795 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;]&quot; exit_code: 1
Last 500 characters of output:
ojects/build/WebCore.build/Release/WebCore.build/Objects-normal/i386/RenderLayerBacking.o /Users/eseidel/Projects/CommitQueue/WebCore/rendering/RenderLayerBacking.cpp normal i386 c++ com.apple.compilers.gcc.4_2
	Distributed-CompileC /Users/eseidel/Projects/build/WebCore.build/Release/WebCore.build/Objects-normal/i386/JSWebGLRenderingContextCustom.o /Users/eseidel/Projects/CommitQueue/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp normal i386 c++ com.apple.compilers.gcc.4_2
(14 failures)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166229</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 12:10:12 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 43795 [details] [details])
&gt; &gt; This looks right to me.  Thanks again for the patch!
&gt; 
&gt; Still no expected results :-/

Oops.  My bad.  Looks like the commit-queue also found a compile failure.  Sadly the commit-queue doesn&apos;t know how to upload the entire compile results yet.  :(  See bug 28286.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166232</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 12:11:46 -0800</bug_when>
    <thetext>Actually, looks like the compile failure was bogus.  I&apos;ll leave the patch cq- though due to the missing results.  The false rejection was caused by bug 30098 (which I have a fix for, I just haven&apos;t landed it yet).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166245</commentid>
    <comment_count>16</comment_count>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 12:28:54 -0800</bug_when>
    <thetext>Ah, yeah, I guess those would help. I&apos;ll add those to the patch and re-up as soon as my local build is done. I think my problem with DumpRenderTree may be because I&apos;m building JavaScriptCore in Xcode but running build-dumprendertree and run-webkit-tests from a terminal. Probably shouldn&apos;t be mixing those I guess. (My build environment is OSX 10.6.2 on an MBP, fwiw...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166247</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-24 12:31:24 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Ah, yeah, I guess those would help. I&apos;ll add those to the patch and re-up as
&gt; soon as my local build is done. I think my problem with DumpRenderTree may be
&gt; because I&apos;m building JavaScriptCore in Xcode but running build-dumprendertree
&gt; and run-webkit-tests from a terminal. Probably shouldn&apos;t be mixing those I
&gt; guess. (My build environment is OSX 10.6.2 on an MBP, fwiw...)

build-dumprendertree is called by run-webkit-tests.  The issue is likely that you need to do build-webkit so that the entire stack is built.

--Oliver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166256</commentid>
    <comment_count>18</comment_count>
      <attachid>43804</attachid>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 13:18:50 -0800</bug_when>
    <thetext>Created attachment 43804
Patch for RegExpMatchesArray with expected test results

Okay, here&apos;s the updated patch with the expected test results.

Since this attachment upload page says &quot;Please also add your copyright (name and year) to the relevant files for changes that are more than 10 lines of code&quot;, I guess I can forgo the copyright statement as the patch is pretty trivial.

Hopefully everything&apos;s in place now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166270</commentid>
    <comment_count>19</comment_count>
      <attachid>43804</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 13:49:22 -0800</bug_when>
    <thetext>Comment on attachment 43804
Patch for RegExpMatchesArray with expected test results

The ChangeLog is doesn&apos;t mention the -expected.txt file, but that&apos;s OK. :)  Looks good, I&apos;ll add it to the commit-queue again for automated landing.

Thanks, and congrats on your first WebKit patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166290</commentid>
    <comment_count>20</comment_count>
      <attachid>43804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 15:11:00 -0800</bug_when>
    <thetext>Comment on attachment 43804
Patch for RegExpMatchesArray with expected test results

Rejecting patch 43804 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	ChangeLog
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/runtime/RegExpConstructor.cpp
	A	LayoutTests/fast/js/regexp-in-and-foreach-handling-expected.txt
	A	LayoutTests/fast/js/regexp-in-and-foreach-handling.html
	A	LayoutTests/fast/js/script-tests/regexp-in-and-foreach-handling.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166299</commentid>
    <comment_count>21</comment_count>
      <attachid>43804</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 15:27:20 -0800</bug_when>
    <thetext>Comment on attachment 43804
Patch for RegExpMatchesArray with expected test results

I think that rejection was bogus.  Looks like bug 31734.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166300</commentid>
    <comment_count>22</comment_count>
      <attachid>43804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 15:37:53 -0800</bug_when>
    <thetext>Comment on attachment 43804
Patch for RegExpMatchesArray with expected test results

Rejecting patch 43804 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	ChangeLog
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/runtime/RegExpConstructor.cpp
	A	LayoutTests/fast/js/regexp-in-and-foreach-handling-expected.txt
	A	LayoutTests/fast/js/regexp-in-and-foreach-handling.html
	A	LayoutTests/fast/js/script-tests/regexp-in-and-foreach-handling.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166305</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 15:47:42 -0800</bug_when>
    <thetext>A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:

    The following files contain tab characters:

        trunk/LayoutTests/fast/js/script-tests/regexp-in-and-foreach-handling.js

    Please use spaces instead to indent.
    If you must commit a file with tabs, use svn propset to set the &quot;allow-tabs&quot; property.
 at /usr/local/libexec/git-core//git-svn line 469

Ahha!  The fact that that comment is missing from teh bug  is a recent bugzilla-tool regression caused by zoltan&apos;s change.  I&apos;ll update bug 31734</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166307</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 15:50:47 -0800</bug_when>
    <thetext>The end result is that one of your files has a tab in it.  Due to bug 31734, the correct reason for the failure was not correctly posted in the bug.  In order to get this landed, either someone will have to land it by hand (removing the tab), or you&apos;ll have to upload a new patch w/o a tab in it.  I&apos;m sorry that our current tooling does not warn you about stray tabs earlier. :(  We really need to make our tools more friendly to new contributers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166322</commentid>
    <comment_count>25</comment_count>
      <attachid>43821</attachid>
    <who name="J Smith">dark.panda+bugs</who>
    <bug_when>2009-11-24 18:15:08 -0800</bug_when>
    <thetext>Created attachment 43821
Patch for RegExpMatchesArray with corrected tabs

Okay, deep breath here, J.

Expected results for tests -- check.
ChangeLog completed -- check.
No tabs for indentation -- check.
Fingers crossed -- check.

Here goes nothin&apos;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166332</commentid>
    <comment_count>26</comment_count>
      <attachid>43821</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 18:45:10 -0800</bug_when>
    <thetext>Comment on attachment 43821
Patch for RegExpMatchesArray with corrected tabs

Clearing flags on attachment: 43821

Committed r51369: &lt;http://trac.webkit.org/changeset/51369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166333</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-24 18:45:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166343</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 20:29:42 -0800</bug_when>
    <thetext>Yay!  Congrats again on your first change to webkit.  Sorry our tools gave you trouble!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43524</attachid>
            <date>2009-11-19 14:40:28 -0800</date>
            <delta_ts>2009-11-24 07:52:47 -0800</delta_ts>
            <desc>RegExpMatchesArray::fillArrayInstance patch</desc>
            <filename>RegExp-exec-bug.patch</filename>
            <type>text/plain</type>
            <size>555</size>
            <attacher name="J Smith">dark.panda+bugs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShy
ZXZpc2lvbiA1MTIwMykKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDggQEAKICAgICAgICAgaW50IHN0
YXJ0ID0gZC0+bGFzdE92ZWN0b3IoKVsyICogaV07CiAgICAgICAgIGlmIChzdGFydCA+PSAwKQog
ICAgICAgICAgICAgSlNBcnJheTo6cHV0KGV4ZWMsIGksIGpzU3Vic3RyaW5nKGV4ZWMsIGQtPmxh
c3RJbnB1dCwgc3RhcnQsIGQtPmxhc3RPdmVjdG9yKClbMiAqIGkgKyAxXSAtIHN0YXJ0KSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIEpTQXJyYXk6OnB1dChleGVjLCBpLCBqc1VuZGVmaW5l
ZCgpKTsKICAgICB9CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43769</attachid>
            <date>2009-11-24 07:52:47 -0800</date>
            <delta_ts>2009-11-24 12:02:09 -0800</delta_ts>
            <desc>Patch for RegExpMatchesArray</desc>
            <filename>RegExpMatchesArray-bug-31689.patch</filename>
            <type>text/plain</type>
            <size>4000</size>
            <attacher name="J Smith">dark.panda+bugs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzM3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEt
MjQgIEogU21pdGggIDxkYXJrLnBhbmRhQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdFeHAjZXhlYydzIHJldHVybmVkIEFycmF5
LWxpa2Ugb2JqZWN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbQorICAgICAgICByZWd1bGFyIEFy
cmF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2
ODkKKworICAgICAgICAqIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFuZC1mb3JlYWNo
LWhhbmRsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIExheW91dFRlc3RzL2Zhc3QvanMvc2Ny
aXB0LXRlc3RzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5qczogQWRkZWQuCisKIDIw
MDktMTEtMDkgIFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTMzNykKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDA5LTExLTI0ICBKIFNtaXRoICA8ZGFyay5wYW5kYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVnRXhwI2V4ZWMncyByZXR1cm5l
ZCBBcnJheS1saWtlIG9iamVjdCBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20KKyAgICAgICAgcmVn
dWxhciBBcnJheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMxNjg5CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcDogZW5zdXJlIHRoYXQgdW5kZWZpbmVkCisgICAgICAgIHZhbHVlcyBhcmUgYWRk
ZWQgdG8gdGhlIHJldHVybmVkIFJlZ0V4cE1hdGNoZXNBcnJheQorCiAyMDA5LTExLTI0ICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHByb2R1Y3Rpb24gYnVpbGRz
IHdoZXJlIHRoZSBzb3VyY2UgdHJlZSBtYXkgYmUgcmVhZC1vbmx5LgpJbmRleDogSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDUxMzM3KQor
KysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMiw2ICsxMzIsOCBAQCB2b2lkIFJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFy
cmF5SW5zdGFuCiAgICAgICAgIGludCBzdGFydCA9IGQtPmxhc3RPdmVjdG9yKClbMiAqIGldOwog
ICAgICAgICBpZiAoc3RhcnQgPj0gMCkKICAgICAgICAgICAgIEpTQXJyYXk6OnB1dChleGVjLCBp
LCBqc1N1YnN0cmluZyhleGVjLCBkLT5sYXN0SW5wdXQsIHN0YXJ0LCBkLT5sYXN0T3ZlY3Rvcigp
WzIgKiBpICsgMV0gLSBzdGFydCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBKU0FycmF5
OjpwdXQoZXhlYywgaSwganNVbmRlZmluZWQoKSk7CiAgICAgfQogCiAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFj
aC1oYW5kbGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhw
LWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJy
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5k
LWZvcmVhY2gtaGFuZGxpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLWluLWFuZC1mb3Jl
YWNoLWhhbmRsaW5nLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitkZXNjcmlwdGlv
bigiVGVzdCBmb3IgYnVnIDMxNjg5OiBSZWdFeHAjZXhlYydzIHJldHVybmVkIEFycmF5LWxpa2Ug
b2JqZWN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbSByZWd1bGFyIEFycmF5cyIpCisKK3ZhciB0
ZXN0cyA9IFsKKyAgICBbIC8oYSkoXyk/LisoYykoXyk/LisoZSkoXyk/LisvLCAnYWJjZGVmJywg
J1siYWJjZGVmIiwgImEiLCB1bmRlZmluZWQsICJjIiwgdW5kZWZpbmVkLCAiZSIsIHVuZGVmaW5l
ZF0nIF0sCisgICAgWyAvKGEpKF8pPy8sICdhYmNkZWYnLCAnWyJhIiwgImEiLCB1bmRlZmluZWRd
JyBdLAorICAgIFsgLyhfKT8uKyhhKS8sICd4YWJjZGVmJywgJ1sieGEiLCB1bmRlZmluZWQsICJh
Il0nIF0sCisgICAgWyAvKF8pPy4rKGEpKF8pPy8sICd4YWJjZGVmJywgJ1sieGEiLCB1bmRlZmlu
ZWQsICJhIiwgdW5kZWZpbmVkXScgXSwKK107CisKK2Z1bmN0aW9uIHRlc3RSZWdFeHBNYXRjaGVz
QXJyYXkoaSkgeworICAgIHJldHVybiB0ZXN0c1tpXVswXS5leGVjKHRlc3RzW2ldWzFdKTsKK30K
KworZnVuY3Rpb24gdGVzdEluT3BlcmF0b3IoaSkgeworICAgIHZhciByZSA9IHRlc3RzW2ldWzBd
LAorICAgICAgICBzdHIgPSB0ZXN0c1tpXVsxXSwKKyAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0c1tp
XVsyXSwKKyAgICAgICAgaW5BcnJheSA9IFtdLAorICAgICAgICBtYXRjaGVzID0gcmUuZXhlYyhz
dHIpOworCisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBtYXRjaGVzLmxlbmd0aDsgaisrKSB7Cisg
ICAgICAgIGlmIChqIGluIG1hdGNoZXMpIHsKKyAgICAgICAgICAgIGluQXJyYXkucHVzaChtYXRj
aGVzW2pdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gaW5BcnJheTsKK30KKworZm9y
ICh2YXIgaSBpbiB0ZXN0cykgeworICAgIHNob3VsZEJlKCd0ZXN0UmVnRXhwTWF0Y2hlc0FycmF5
KCcgKyBpICsgJyknLCB0ZXN0c1tpXVsyXSk7CisgICAgc2hvdWxkQmUoJ3Rlc3RJbk9wZXJhdG9y
KCcgKyBpICsgJyknLCB0ZXN0c1tpXVsyXSk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43795</attachid>
            <date>2009-11-24 12:02:09 -0800</date>
            <delta_ts>2009-11-24 13:18:50 -0800</delta_ts>
            <desc>Patch for RegExpMatchesArray with corrections</desc>
            <filename>RegExpMatchesArray-bug-31689.patch</filename>
            <type>text/plain</type>
            <size>4285</size>
            <attacher name="J Smith">dark.panda+bugs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzQz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEt
MjQgIEphc29uIFNtaXRoICA8ZGFyay5wYW5kYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBB
cnJheS1saWtlIG9iamVjdCBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20KKyAgICAgICAgcmVndWxh
ciBBcnJheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxNjg5CisKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9y
ZWFjaC1oYW5kbGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuanM6IEFkZGVkLgor
CiAyMDA5LTExLTA5ICBQcmlpdCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTEzNDMpCisr
KyBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAwOS0xMS0yNCAgSmFzb24gU21pdGggIDxkYXJrLnBhbmRhQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdFeHAjZXhlYydz
IHJldHVybmVkIEFycmF5LWxpa2Ugb2JqZWN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbQorICAg
ICAgICByZWd1bGFyIEFycmF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE2ODkKKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwOiBlbnN1cmUgdGhhdCB1bmRlZmluZWQKKyAgICAgICAgdmFsdWVz
IGFyZSBhZGRlZCB0byB0aGUgcmV0dXJuZWQgUmVnRXhwTWF0Y2hlc0FycmF5CisKIDIwMDktMTEt
MjQgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcHJvZHVjdGlv
biBidWlsZHMgd2hlcmUgdGhlIHNvdXJjZSB0cmVlIG1heSBiZSByZWFkLW9ubHkuCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
NTEzNDMpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw4IEBAIHZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5
OjpmaWxsQXJyYXlJbnN0YW4KICAgICAgICAgaW50IHN0YXJ0ID0gZC0+bGFzdE92ZWN0b3IoKVsy
ICogaV07CiAgICAgICAgIGlmIChzdGFydCA+PSAwKQogICAgICAgICAgICAgSlNBcnJheTo6cHV0
KGV4ZWMsIGksIGpzU3Vic3RyaW5nKGV4ZWMsIGQtPmxhc3RJbnB1dCwgc3RhcnQsIGQtPmxhc3RP
dmVjdG9yKClbMiAqIGkgKyAxXSAtIHN0YXJ0KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IEpTQXJyYXk6OnB1dChleGVjLCBpLCBqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKICAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdDsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFu
ZC1mb3JlYWNoLWhhbmRsaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlZ2V4
cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtaW4t
YW5kLWZvcmVhY2gtaGFuZGxpbmcuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0IGZvciBidWcgMzE2ODk6IFJlZ0V4cCNleGVjJ3MgcmV0dXJuZWQgQXJy
YXktbGlrZSBvYmplY3QgYmVoYXZlcyBkaWZmZXJlbnRseSBmcm9tIHJlZ3VsYXIgQXJyYXlzIik7
CisKK3ZhciB0ZXN0cyA9IFsKKyAgICBbIC8oYSkoXyk/LisoYykoXyk/LisoZSkoXyk/LisvLCAn
YWJjZGVmJywgJ1siYWJjZGVmIiwgImEiLCB1bmRlZmluZWQsICJjIiwgdW5kZWZpbmVkLCAiZSIs
IHVuZGVmaW5lZF0nIF0sCisgICAgWyAvKGEpKF8pPy8sICdhYmNkZWYnLCAnWyJhIiwgImEiLCB1
bmRlZmluZWRdJyBdLAorICAgIFsgLyhfKT8uKyhhKS8sICd4YWJjZGVmJywgJ1sieGEiLCB1bmRl
ZmluZWQsICJhIl0nIF0sCisgICAgWyAvKF8pPy4rKGEpKF8pPy8sICd4YWJjZGVmJywgJ1sieGEi
LCB1bmRlZmluZWQsICJhIiwgdW5kZWZpbmVkXScgXSwKK107CisKK2Z1bmN0aW9uIHRlc3RSZWdF
eHBNYXRjaGVzQXJyYXkoaSkKK3sKKyAgICByZXR1cm4gdGVzdHNbaV1bMF0uZXhlYyh0ZXN0c1tp
XVsxXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbk9wZXJhdG9yKGkpCit7CisgICAgdmFyIHJlID0g
dGVzdHNbaV1bMF0sCisgICAgICAgIHN0ciA9IHRlc3RzW2ldWzFdLAorICAgICAgICBpbkFycmF5
ID0gW10sCisgICAgICAgIG1hdGNoZXMgPSByZS5leGVjKHN0cik7CisKKyAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IG1hdGNoZXMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgaWYgKGogaW4gbWF0Y2hl
cykgeworICAgICAgICAgICAgaW5BcnJheS5wdXNoKG1hdGNoZXNbal0pOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBpbkFycmF5OworfQorCitmdW5jdGlvbiB0ZXN0Rm9yRWFjaEZ1bmN0
aW9uKGkpIAoreworCXZhciByZSA9IHRlc3RzW2ldWzBdLAorICAgICAgICBzdHIgPSB0ZXN0c1tp
XVsxXSwKKyAgICAgICAgaW5BcnJheSA9IFtdLAorICAgICAgICBtYXRjaGVzID0gcmUuZXhlYyhz
dHIpOworCisgICAgbWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgaW5BcnJh
eS5wdXNoKG0pOworICAgIH0pOworICAgIHJldHVybiBpbkFycmF5OworCit9CisKK2ZvciAodmFy
IGkgaW4gdGVzdHMpIHsKKyAgICBzaG91bGRCZSgndGVzdFJlZ0V4cE1hdGNoZXNBcnJheSgnICsg
aSArICcpJywgdGVzdHNbaV1bMl0pOworICAgIHNob3VsZEJlKCd0ZXN0SW5PcGVyYXRvcignICsg
aSArICcpJywgdGVzdHNbaV1bMl0pOworICAgIHNob3VsZEJlKCd0ZXN0Rm9yRWFjaEZ1bmN0aW9u
KCcgKyBpICsgJyknLCB0ZXN0c1tpXVsyXSk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCg==
</data>
<flag name="review"
          id="25526"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="25527"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43804</attachid>
            <date>2009-11-24 13:18:50 -0800</date>
            <delta_ts>2009-11-24 18:15:08 -0800</delta_ts>
            <desc>Patch for RegExpMatchesArray with expected test results</desc>
            <filename>RegExpMatchesArray-bug-31689.patch</filename>
            <type>text/plain</type>
            <size>5637</size>
            <attacher name="J Smith">dark.panda+bugs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzQz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEt
MjQgIEphc29uIFNtaXRoICA8ZGFyay5wYW5kYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBB
cnJheS1saWtlIG9iamVjdCBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20KKyAgICAgICAgcmVndWxh
ciBBcnJheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxNjg5CisKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9y
ZWFjaC1oYW5kbGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuanM6IEFkZGVkLgor
CiAyMDA5LTExLTA5ICBQcmlpdCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTEzNDMpCisr
KyBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAwOS0xMS0yNCAgSmFzb24gU21pdGggIDxkYXJrLnBhbmRhQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdFeHAjZXhlYydz
IHJldHVybmVkIEFycmF5LWxpa2Ugb2JqZWN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbQorICAg
ICAgICByZWd1bGFyIEFycmF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE2ODkKKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwOiBlbnN1cmUgdGhhdCB1bmRlZmluZWQKKyAgICAgICAgdmFsdWVz
IGFyZSBhZGRlZCB0byB0aGUgcmV0dXJuZWQgUmVnRXhwTWF0Y2hlc0FycmF5CisKIDIwMDktMTEt
MjQgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcHJvZHVjdGlv
biBidWlsZHMgd2hlcmUgdGhlIHNvdXJjZSB0cmVlIG1heSBiZSByZWFkLW9ubHkuCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
NTEzNDMpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw4IEBAIHZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5
OjpmaWxsQXJyYXlJbnN0YW4KICAgICAgICAgaW50IHN0YXJ0ID0gZC0+bGFzdE92ZWN0b3IoKVsy
ICogaV07CiAgICAgICAgIGlmIChzdGFydCA+PSAwKQogICAgICAgICAgICAgSlNBcnJheTo6cHV0
KGV4ZWMsIGksIGpzU3Vic3RyaW5nKGV4ZWMsIGQtPmxhc3RJbnB1dCwgc3RhcnQsIGQtPmxhc3RP
dmVjdG9yKClbMiAqIGkgKyAxXSAtIHN0YXJ0KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IEpTQXJyYXk6OnB1dChleGVjLCBpLCBqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKICAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdDsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFu
ZC1mb3JlYWNoLWhhbmRsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1o
YW5kbGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3Qg
Zm9yIGJ1ZyAzMTY4OTogUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBBcnJheS1saWtlIG9iamVjdCBi
ZWhhdmVzIGRpZmZlcmVudGx5IGZyb20gcmVndWxhciBBcnJheXMKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJlZ0V4cE1hdGNoZXNBcnJheSgwKSBpcyBbImFiY2Rl
ZiIsICJhIiwgdW5kZWZpbmVkLCAiYyIsIHVuZGVmaW5lZCwgImUiLCB1bmRlZmluZWRdCitQQVNT
IHRlc3RJbk9wZXJhdG9yKDApIGlzIFsiYWJjZGVmIiwgImEiLCB1bmRlZmluZWQsICJjIiwgdW5k
ZWZpbmVkLCAiZSIsIHVuZGVmaW5lZF0KK1BBU1MgdGVzdEZvckVhY2hGdW5jdGlvbigwKSBpcyBb
ImFiY2RlZiIsICJhIiwgdW5kZWZpbmVkLCAiYyIsIHVuZGVmaW5lZCwgImUiLCB1bmRlZmluZWRd
CitQQVNTIHRlc3RSZWdFeHBNYXRjaGVzQXJyYXkoMSkgaXMgWyJhIiwgImEiLCB1bmRlZmluZWRd
CitQQVNTIHRlc3RJbk9wZXJhdG9yKDEpIGlzIFsiYSIsICJhIiwgdW5kZWZpbmVkXQorUEFTUyB0
ZXN0Rm9yRWFjaEZ1bmN0aW9uKDEpIGlzIFsiYSIsICJhIiwgdW5kZWZpbmVkXQorUEFTUyB0ZXN0
UmVnRXhwTWF0Y2hlc0FycmF5KDIpIGlzIFsieGEiLCB1bmRlZmluZWQsICJhIl0KK1BBU1MgdGVz
dEluT3BlcmF0b3IoMikgaXMgWyJ4YSIsIHVuZGVmaW5lZCwgImEiXQorUEFTUyB0ZXN0Rm9yRWFj
aEZ1bmN0aW9uKDIpIGlzIFsieGEiLCB1bmRlZmluZWQsICJhIl0KK1BBU1MgdGVzdFJlZ0V4cE1h
dGNoZXNBcnJheSgzKSBpcyBbInhhIiwgdW5kZWZpbmVkLCAiYSIsIHVuZGVmaW5lZF0KK1BBU1Mg
dGVzdEluT3BlcmF0b3IoMykgaXMgWyJ4YSIsIHVuZGVmaW5lZCwgImEiLCB1bmRlZmluZWRdCitQ
QVNTIHRlc3RGb3JFYWNoRnVuY3Rpb24oMykgaXMgWyJ4YSIsIHVuZGVmaW5lZCwgImEiLCB1bmRl
ZmluZWRdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxp
bmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQt
Zm9yZWFjaC1oYW5kbGluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZWdl
eHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLWluLWFuZC1mb3JlYWNo
LWhhbmRsaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5qcwkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5k
bGluZy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorZGVzY3JpcHRpb24oIlRlc3Qg
Zm9yIGJ1ZyAzMTY4OTogUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBBcnJheS1saWtlIG9iamVjdCBi
ZWhhdmVzIGRpZmZlcmVudGx5IGZyb20gcmVndWxhciBBcnJheXMiKTsKKwordmFyIHRlc3RzID0g
WworICAgIFsgLyhhKShfKT8uKyhjKShfKT8uKyhlKShfKT8uKy8sICdhYmNkZWYnLCAnWyJhYmNk
ZWYiLCAiYSIsIHVuZGVmaW5lZCwgImMiLCB1bmRlZmluZWQsICJlIiwgdW5kZWZpbmVkXScgXSwK
KyAgICBbIC8oYSkoXyk/LywgJ2FiY2RlZicsICdbImEiLCAiYSIsIHVuZGVmaW5lZF0nIF0sCisg
ICAgWyAvKF8pPy4rKGEpLywgJ3hhYmNkZWYnLCAnWyJ4YSIsIHVuZGVmaW5lZCwgImEiXScgXSwK
KyAgICBbIC8oXyk/LisoYSkoXyk/LywgJ3hhYmNkZWYnLCAnWyJ4YSIsIHVuZGVmaW5lZCwgImEi
LCB1bmRlZmluZWRdJyBdLAorXTsKKworZnVuY3Rpb24gdGVzdFJlZ0V4cE1hdGNoZXNBcnJheShp
KQoreworICAgIHJldHVybiB0ZXN0c1tpXVswXS5leGVjKHRlc3RzW2ldWzFdKTsKK30KKworZnVu
Y3Rpb24gdGVzdEluT3BlcmF0b3IoaSkKK3sKKyAgICB2YXIgcmUgPSB0ZXN0c1tpXVswXSwKKyAg
ICAgICAgc3RyID0gdGVzdHNbaV1bMV0sCisgICAgICAgIGluQXJyYXkgPSBbXSwKKyAgICAgICAg
bWF0Y2hlcyA9IHJlLmV4ZWMoc3RyKTsKKworICAgIGZvciAodmFyIGogPSAwOyBqIDwgbWF0Y2hl
cy5sZW5ndGg7IGorKykgeworICAgICAgICBpZiAoaiBpbiBtYXRjaGVzKSB7CisgICAgICAgICAg
ICBpbkFycmF5LnB1c2gobWF0Y2hlc1tqXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IGluQXJyYXk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGb3JFYWNoRnVuY3Rpb24oaSkgCit7CisJdmFy
IHJlID0gdGVzdHNbaV1bMF0sCisgICAgICAgIHN0ciA9IHRlc3RzW2ldWzFdLAorICAgICAgICBp
bkFycmF5ID0gW10sCisgICAgICAgIG1hdGNoZXMgPSByZS5leGVjKHN0cik7CisKKyAgICBtYXRj
aGVzLmZvckVhY2goZnVuY3Rpb24obSkgeworICAgICAgICBpbkFycmF5LnB1c2gobSk7CisgICAg
fSk7CisgICAgcmV0dXJuIGluQXJyYXk7CisKK30KKworZm9yICh2YXIgaSBpbiB0ZXN0cykgewor
ICAgIHNob3VsZEJlKCd0ZXN0UmVnRXhwTWF0Y2hlc0FycmF5KCcgKyBpICsgJyknLCB0ZXN0c1tp
XVsyXSk7CisgICAgc2hvdWxkQmUoJ3Rlc3RJbk9wZXJhdG9yKCcgKyBpICsgJyknLCB0ZXN0c1tp
XVsyXSk7CisgICAgc2hvdWxkQmUoJ3Rlc3RGb3JFYWNoRnVuY3Rpb24oJyArIGkgKyAnKScsIHRl
c3RzW2ldWzJdKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisK
</data>
<flag name="review"
          id="25536"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="25537"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43821</attachid>
            <date>2009-11-24 18:15:08 -0800</date>
            <delta_ts>2009-11-24 18:45:10 -0800</delta_ts>
            <desc>Patch for RegExpMatchesArray with corrected tabs</desc>
            <filename>RegExpMatchesArray-bug-31689.patch</filename>
            <type>text/plain</type>
            <size>5699</size>
            <attacher name="J Smith">dark.panda+bugs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzY3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTEt
MjQgIEphc29uIFNtaXRoICA8ZGFyay5wYW5kYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBB
cnJheS1saWtlIG9iamVjdCBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20KKyAgICAgICAgcmVndWxh
ciBBcnJheXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxNjg5CisKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9y
ZWFjaC1oYW5kbGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5kLWZvcmVhY2gtaGFuZGxpbmcuanM6IEFkZGVkLgor
ICAgICAgICAqIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRs
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMDktMTEtMjQgIEplbnMgQWxma2UgIDxzbmVq
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUxMzY3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEtMjQgIEphc29uIFNtaXRoICA8
ZGFyay5wYW5kYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVnRXhwI2V4ZWMncyByZXR1cm5lZCBBcnJheS1saWtlIG9iamVjdCBi
ZWhhdmVzIGRpZmZlcmVudGx5IGZyb20KKyAgICAgICAgcmVndWxhciBBcnJheXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjg5CisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDogZW5zdXJlIHRo
YXQgdW5kZWZpbmVkCisgICAgICAgIHZhbHVlcyBhcmUgYWRkZWQgdG8gdGhlIHJldHVybmVkIFJl
Z0V4cE1hdGNoZXNBcnJheQorCiAyMDA5LTExLTI0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biA1MTM2NykKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDggQEAgdm9pZCBSZWdFeHBNYXRjaGVzQXJy
YXk6OmZpbGxBcnJheUluc3RhbgogICAgICAgICBpbnQgc3RhcnQgPSBkLT5sYXN0T3ZlY3Rvcigp
WzIgKiBpXTsKICAgICAgICAgaWYgKHN0YXJ0ID49IDApCiAgICAgICAgICAgICBKU0FycmF5Ojpw
dXQoZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFzdElucHV0LCBzdGFydCwgZC0+bGFz
dE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgSlNBcnJheTo6cHV0KGV4ZWMsIGksIGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAogICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdleHAtaW4t
YW5kLWZvcmVhY2gtaGFuZGxpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFuZC1mb3JlYWNo
LWhhbmRsaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorVGVz
dCBmb3IgYnVnIDMxNjg5OiBSZWdFeHAjZXhlYydzIHJldHVybmVkIEFycmF5LWxpa2Ugb2JqZWN0
IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbSByZWd1bGFyIEFycmF5cworCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UmVnRXhwTWF0Y2hlc0FycmF5KDApIGlzIFsiYWJj
ZGVmIiwgImEiLCB1bmRlZmluZWQsICJjIiwgdW5kZWZpbmVkLCAiZSIsIHVuZGVmaW5lZF0KK1BB
U1MgdGVzdEluT3BlcmF0b3IoMCkgaXMgWyJhYmNkZWYiLCAiYSIsIHVuZGVmaW5lZCwgImMiLCB1
bmRlZmluZWQsICJlIiwgdW5kZWZpbmVkXQorUEFTUyB0ZXN0Rm9yRWFjaEZ1bmN0aW9uKDApIGlz
IFsiYWJjZGVmIiwgImEiLCB1bmRlZmluZWQsICJjIiwgdW5kZWZpbmVkLCAiZSIsIHVuZGVmaW5l
ZF0KK1BBU1MgdGVzdFJlZ0V4cE1hdGNoZXNBcnJheSgxKSBpcyBbImEiLCAiYSIsIHVuZGVmaW5l
ZF0KK1BBU1MgdGVzdEluT3BlcmF0b3IoMSkgaXMgWyJhIiwgImEiLCB1bmRlZmluZWRdCitQQVNT
IHRlc3RGb3JFYWNoRnVuY3Rpb24oMSkgaXMgWyJhIiwgImEiLCB1bmRlZmluZWRdCitQQVNTIHRl
c3RSZWdFeHBNYXRjaGVzQXJyYXkoMikgaXMgWyJ4YSIsIHVuZGVmaW5lZCwgImEiXQorUEFTUyB0
ZXN0SW5PcGVyYXRvcigyKSBpcyBbInhhIiwgdW5kZWZpbmVkLCAiYSJdCitQQVNTIHRlc3RGb3JF
YWNoRnVuY3Rpb24oMikgaXMgWyJ4YSIsIHVuZGVmaW5lZCwgImEiXQorUEFTUyB0ZXN0UmVnRXhw
TWF0Y2hlc0FycmF5KDMpIGlzIFsieGEiLCB1bmRlZmluZWQsICJhIiwgdW5kZWZpbmVkXQorUEFT
UyB0ZXN0SW5PcGVyYXRvcigzKSBpcyBbInhhIiwgdW5kZWZpbmVkLCAiYSIsIHVuZGVmaW5lZF0K
K1BBU1MgdGVzdEZvckVhY2hGdW5jdGlvbigzKSBpcyBbInhhIiwgdW5kZWZpbmVkLCAiYSIsIHVu
ZGVmaW5lZF0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5k
bGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVnZXhwLWluLWFu
ZC1mb3JlYWNoLWhhbmRsaW5nLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3JlZ2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Jl
Z2V4cC1pbi1hbmQtZm9yZWFjaC1oYW5kbGluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtaW4tYW5kLWZvcmVh
Y2gtaGFuZGxpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhhbmRsaW5nLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLWluLWFuZC1mb3JlYWNoLWhh
bmRsaW5nLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACitkZXNjcmlwdGlvbigiVGVz
dCBmb3IgYnVnIDMxNjg5OiBSZWdFeHAjZXhlYydzIHJldHVybmVkIEFycmF5LWxpa2Ugb2JqZWN0
IGJlaGF2ZXMgZGlmZmVyZW50bHkgZnJvbSByZWd1bGFyIEFycmF5cyIpOworCit2YXIgdGVzdHMg
PSBbCisgICAgWyAvKGEpKF8pPy4rKGMpKF8pPy4rKGUpKF8pPy4rLywgJ2FiY2RlZicsICdbImFi
Y2RlZiIsICJhIiwgdW5kZWZpbmVkLCAiYyIsIHVuZGVmaW5lZCwgImUiLCB1bmRlZmluZWRdJyBd
LAorICAgIFsgLyhhKShfKT8vLCAnYWJjZGVmJywgJ1siYSIsICJhIiwgdW5kZWZpbmVkXScgXSwK
KyAgICBbIC8oXyk/LisoYSkvLCAneGFiY2RlZicsICdbInhhIiwgdW5kZWZpbmVkLCAiYSJdJyBd
LAorICAgIFsgLyhfKT8uKyhhKShfKT8vLCAneGFiY2RlZicsICdbInhhIiwgdW5kZWZpbmVkLCAi
YSIsIHVuZGVmaW5lZF0nIF0sCitdOworCitmdW5jdGlvbiB0ZXN0UmVnRXhwTWF0Y2hlc0FycmF5
KGkpCit7CisgICAgcmV0dXJuIHRlc3RzW2ldWzBdLmV4ZWModGVzdHNbaV1bMV0pOworfQorCitm
dW5jdGlvbiB0ZXN0SW5PcGVyYXRvcihpKQoreworICAgIHZhciByZSA9IHRlc3RzW2ldWzBdLAor
ICAgICAgICBzdHIgPSB0ZXN0c1tpXVsxXSwKKyAgICAgICAgaW5BcnJheSA9IFtdLAorICAgICAg
ICBtYXRjaGVzID0gcmUuZXhlYyhzdHIpOworCisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBtYXRj
aGVzLmxlbmd0aDsgaisrKSB7CisgICAgICAgIGlmIChqIGluIG1hdGNoZXMpIHsKKyAgICAgICAg
ICAgIGluQXJyYXkucHVzaChtYXRjaGVzW2pdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gaW5BcnJheTsKK30KKworZnVuY3Rpb24gdGVzdEZvckVhY2hGdW5jdGlvbihpKSAKK3sKKyAg
ICB2YXIgcmUgPSB0ZXN0c1tpXVswXSwKKyAgICAgICAgc3RyID0gdGVzdHNbaV1bMV0sCisgICAg
ICAgIGluQXJyYXkgPSBbXSwKKyAgICAgICAgbWF0Y2hlcyA9IHJlLmV4ZWMoc3RyKTsKKworICAg
IG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbihtKSB7CisgICAgICAgIGluQXJyYXkucHVzaChtKTsK
KyAgICB9KTsKKyAgICByZXR1cm4gaW5BcnJheTsKKworfQorCitmb3IgKHZhciBpIGluIHRlc3Rz
KSB7CisgICAgc2hvdWxkQmUoJ3Rlc3RSZWdFeHBNYXRjaGVzQXJyYXkoJyArIGkgKyAnKScsIHRl
c3RzW2ldWzJdKTsKKyAgICBzaG91bGRCZSgndGVzdEluT3BlcmF0b3IoJyArIGkgKyAnKScsIHRl
c3RzW2ldWzJdKTsKKyAgICBzaG91bGRCZSgndGVzdEZvckVhY2hGdW5jdGlvbignICsgaSArICcp
JywgdGVzdHNbaV1bMl0pOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>