<?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>12878</bug_id>
          
          <creation_ts>2007-02-24 10:50:20 -0800</creation_ts>
          <short_desc>Support for each (var in collection) syntax</short_desc>
          <delta_ts>2012-03-08 18:11:54 -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>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>http://server250.reaktix.com/array_for_each.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Haygood">jhaygood</reporter>
          <assigned_to name="Justin Haygood">jhaygood</assigned_to>
          <cc>arv</cc>
    
    <cc>barraclough</cc>
    
    <cc>emacemac7</cc>
    
    <cc>jwbaker</cc>
    
    <cc>mrowe</cc>
    
    <cc>nickshanks</cc>
    
    <cc>webmaster</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21839</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-02-24 10:50:20 -0800</bug_when>
    <thetext>JavaScript 1.6 supports for each ( var in collection ) syntax, like:

var array = [&quot;foo&quot;,&quot;bar&quot;];

for each ( var string in array )
{
document.write( string + &quot;&lt;br&gt;&quot; )
}

Should result in:

foo&lt;br&gt;
bar&lt;br&gt;

Currently, it gets an error.

This is one area where we can make the first effort at supporting E4X, but this is useful in any JavaScript/DOM collection as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21840</commentid>
    <comment_count>1</comment_count>
      <attachid>13362</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-02-24 10:51:02 -0800</bug_when>
    <thetext>Created attachment 13362
mini test case

Test case for bug. Works in Firefox, Fails elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21846</commentid>
    <comment_count>2</comment_count>
      <attachid>13364</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-02-24 12:08:06 -0800</bug_when>
    <thetext>Created attachment 13364
Adds support for for..each..in

This is an initial implementation of for...each...in, supported by Mozilla Firefox currently. This also is required for support of E4X, but is useable elsewhere, such as iterating through arrays more naturally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21847</commentid>
    <comment_count>3</comment_count>
      <attachid>13364</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-02-24 12:41:05 -0800</bug_when>
    <thetext>Comment on attachment 13364
Adds support for for..each..in

r- for purely stylistic issues discussed via IRC (star and comma positioning, assert vs. ASSERT). And clearly, this cannot be landed to trunk before the stabilization period ends.

A couple additional stylistic notes:

+        if (varDecl)
+    s &lt;&lt; &quot;var &quot; &lt;&lt; varDecl;

  Indentation looks broken here.

+            if ((c.complType() == Break) &amp;&amp; ls.contains(c.target()))
+            break;

  And here.

+    JSValue* e;
...
+    e = expr-&gt;evaluate(exec);

  There is no need to declare local variables at the beginning of the function in C++. Also, this and other variables may benefit from a more descriptive name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21702</commentid>
    <comment_count>4</comment_count>
      <attachid>13368</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-02-25 10:34:03 -0800</bug_when>
    <thetext>Created attachment 13368
Implements for each ( var &lt;identifier&gt; in &lt;collection&gt; )

Same as above mostly, except:
 * Removes unused variables
 * Follows code style guidelines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21432</commentid>
    <comment_count>5</comment_count>
      <attachid>13368</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-02-25 17:51:48 -0800</bug_when>
    <thetext>Comment on attachment 13368
Implements for each ( var &lt;identifier&gt; in &lt;collection&gt; )

+void ForEachInNode::streamTo(SourceStream &amp;s) const
+{
+    s &lt;&lt; SourceStream::Endl &lt;&lt; &quot;for each (&quot;;
+        if (varDecl)
+    s &lt;&lt; &quot;var &quot; &lt;&lt; varDecl;
+        else
+    s &lt;&lt; lexpr;
+

Indentation is incorrect here.

+            if ((c.complType() == Break) &amp;&amp; ls.contains(c.target()))
+            break;

And again here.

The ForEachInNode constructor should set varDecl and lexpr in the initializer list, and the formatting of this list should match the coding style guidelines.

It looks as though varDecl is only used in streamTo, which means that &quot;for each (a in b)&quot; and &quot;for each (var a in b)&quot; are treated identically when they should have different semantics.

+        JSValue* str = v-&gt;get(exec, name);

&quot;str&quot; seems to be a bit misleading for the new use of this variable, I gather it&apos;s now the value of the property retrieved from the iterator.

It seems that almost all of the code in ForEachInNode::execute is duplicated from ForInNode which is less than ideal.  It&apos;s also not clear why supporting only a single feature from the E4X specification is desirable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21433</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-02-25 17:57:43 -0800</bug_when>
    <thetext>Note that this feature comes from ECMA 357 (&lt;http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf&gt;), the ECMAScript for XML specification.  You should verify that your implementation matches this specification and definitely include test cases to support this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3316</commentid>
    <comment_count>7</comment_count>
      <attachid>15782</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-08-01 09:43:12 -0700</bug_when>
    <thetext>Created attachment 15782
Updated Patch

1. Implemented by subclassing from ForInNode, so that it doesn&apos;t duplicate code effort
2. Testcases are on the way
3. Doesn&apos;t cause any regressions
4. This is an experimental patch. Questions/Concerns, etc.. are very much welcome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3323</commentid>
    <comment_count>8</comment_count>
      <attachid>15782</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-08-01 10:25:04 -0700</bug_when>
    <thetext>Comment on attachment 15782
Updated Patch

I pointed out a few issues in the patch to Justin via IRC.  There are numerous coding style inconsistencies, and the redeclaration of ForInNode&apos;s instance variables in the subclass is wrong.  I also suggested that the implementation of streamTo could easily be shared between the two classes which should allow ForInNode&apos;s members to remain private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3324</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-08-01 10:25:56 -0700</bug_when>
    <thetext>Oh, and test cases!  Test cases, test cases, test cases! ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3346</commentid>
    <comment_count>10</comment_count>
      <attachid>15790</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-08-01 13:15:42 -0700</bug_when>
    <thetext>Created attachment 15790
for each...in test case

Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3347</commentid>
    <comment_count>11</comment_count>
      <attachid>15791</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2007-08-01 13:18:24 -0700</bug_when>
    <thetext>Created attachment 15791
Updated Patch for for each...in

This has been modified to follow code style guidelines.

It also merges streamTo between ForInNode and ForEachInNode and restores the &quot;private&quot; in ForInNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3192</commentid>
    <comment_count>12</comment_count>
      <attachid>15791</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-08-01 20:32:50 -0700</bug_when>
    <thetext>Comment on attachment 15791
Updated Patch for for each...in

There is still incorrect whitespace and * placement in many places.  You should also include a test case as part of the patch, along with the related changelog entry.

+                                            Node *n = $4-&gt;nodeInsideAllParens();

+JSValue* ForInNode::getIteratorValue( ExecState*, JSObject* inValue, const Identifier name )

+      JSValue *str = getIteratorValue(exec,v,name);

+JSValue* ForEachInNode::getIteratorValue(ExecState* exec, JSObject* inValue, const Identifier name )

+    virtual JSValue* getIteratorValue( ExecState *exec, JSObject *inValue, const Identifier name ) KJS_FAST_CALL;


+    ForEachInNode(Node *l, Node *e, StatementNode *s) KJS_FAST_CALL;
+    ForEachInNode(const Identifier &amp;i, AssignExprNode *in, Node *e, StatementNode *s) KJS_FAST_CALL;
+  protected:
+    virtual JSValue* getIteratorValue( ExecState *exec, JSObject *inValue, const Identifier name ) KJS_FAST_CALL;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90546</commentid>
    <comment_count>13</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-08 09:13:06 -0700</bug_when>
    <thetext>*** Bug 20728 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574451</commentid>
    <comment_count>14</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 18:11:54 -0800</bug_when>
    <thetext>Our goal is ES-262 compliance, and I don&apos;t think it looks &quot;for each&quot; looks like it&apos;s going to make it into ES6.  As such, I don&apos;t think we plan to support this.  If &quot;for each&quot; makes it onto the standardization track, we should revisit this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13362</attachid>
            <date>2007-02-24 10:51:02 -0800</date>
            <delta_ts>2007-08-01 13:15:42 -0700</delta_ts>
            <desc>mini test case</desc>
            <filename>array_for_each.html</filename>
            <type>text/html</type>
            <size>287</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBhcnJheSA9
IFsxLDIsMyw0LDUsNiw3XTsKCmZ1bmN0aW9uIHJ1blRlc3QoKQp7Cglmb3IgZWFjaCAoIHZhciBu
dW0gaW4gYXJyYXkgKQoJewoJCWRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICs9ICgiTnVtYmVyOiAi
ICsgbnVtICsgIjxicj4iKTsKCX0KCn0KPC9zY3JpcHQ+Cjx0aXRsZT5BcnJheSBmb3IuLi5lYWNo
PC90aXRsZT4KPC9oZWFkPgo8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cgo8L2JvZHk+CjwvaHRt
bD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13364</attachid>
            <date>2007-02-24 12:08:06 -0800</date>
            <delta_ts>2007-02-25 10:34:03 -0800</delta_ts>
            <desc>Adds support for for..each..in</desc>
            <filename>jscore-for-each.diff</filename>
            <type>text/plain</type>
            <size>9283</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDIt
MjQgIEp1c3RpbiBIYXlnb29kICA8amhheWdvb2RAZXlld29uZGVyLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGtqcy9ncmFtbWFyLnk6Cisg
ICAgICAgICoga2pzL2tleXdvcmRzLnRhYmxlOgorICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6Cisg
ICAgICAgIChGb3JFYWNoSW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKToKKyAgICAgICAgKEZvckVhY2hJ
bk5vZGU6OmV4ZWN1dGUpOgorICAgICAgICAoRm9yRWFjaEluTm9kZTo6cHJvY2Vzc1ZhckRlY2xz
KToKKyAgICAgICAgKiBranMvbm9kZXMuaDoKKyAgICAgICAgKiBranMvbm9kZXMyc3RyaW5nLmNw
cDoKKyAgICAgICAgKEZvckVhY2hJbk5vZGU6OnN0cmVhbVRvKToKKwogMjAwNy0wMi0yMiAgR2Vv
cmdlIFN0YWlrb3MgIDxzdGFpa29zQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFy
cy4KSW5kZXg6IGtqcy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2dyYW1tYXIueQkocmV2
aXNpb24gMTk4NDIpCisrKyBranMvZ3JhbW1hci55CSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQs
OCBAQAogICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCiAgKiAgQ29w
eXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDcgRXllV29uZGVyLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXln
b29kIChqaGF5Z29vZEBleWV3b25kZXIuY29tKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMTEz
LDcgKzExNSw3IEBAIHN0YXRpYyBOb2RlICptYWtlRGVsZXRlTm9kZShOb2RlICpleHByKTsKICV0
b2tlbiBOVUxMVE9LRU4gVFJVRVRPS0VOIEZBTFNFVE9LRU4KIAogLyoga2V5d29yZHMgKi8KLSV0
b2tlbiBCUkVBSyBDQVNFIERFRkFVTFQgRk9SIE5FVyBWQVIgQ09OU1QgQ09OVElOVUUKKyV0b2tl
biBCUkVBSyBDQVNFIERFRkFVTFQgRk9SIE5FVyBWQVIgQ09OU1QgQ09OVElOVUUgRUFDSAogJXRv
a2VuIEZVTkNUSU9OIFJFVFVSTiBWT0lEIERFTEVURQogJXRva2VuIElGIFRISVMgRE8gV0hJTEUg
SU4gSU5TVEFOQ0VPRiBUWVBFT0YKICV0b2tlbiBTV0lUQ0ggV0lUSCBSRVNFUlZFRApAQCAtNzM4
LDYgKzc0MCw4IEBAIEl0ZXJhdGlvblN0YXRlbWVudDoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IEZvckluTm9kZSgqJDQsIDAsICQ2LCAkOCk7IERC
RygkJCwgQDEsIEA3KTsgfQogICB8IEZPUiAnKCcgVkFSIElERU5UIEluaXRpYWxpemVyTm9JbiBJ
TiBFeHByICcpJyBTdGF0ZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gbmV3IEZvckluTm9kZSgqJDQsICQ1LCAkNywgJDkpOyBEQkcoJCQsIEAxLCBA
OCk7IH0KKyAgfCBGT1IgRUFDSCAnKCcgVkFSIElERU5UIElOIEV4cHIgJyknIFN0YXRlbWVudAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRm9yRWFj
aEluTm9kZSgqJDUsIDAsICQ3LCAkOSk7IERCRygkJCwgQDEsIEA5KTsgfQogOwogCiBFeHByT3B0
OgpJbmRleDoga2pzL2tleXdvcmRzLnRhYmxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9rZXl3b3Jkcy50
YWJsZQkocmV2aXNpb24gMTk4NDIpCisrKyBranMva2V5d29yZHMudGFibGUJKHdvcmtpbmcgY29w
eSkKQEAgLTE0LDYgKzE0LDcgQEAgY29uc3QJCUNPTlNUCiBkZWZhdWx0CQlERUZBVUxUCiBmaW5h
bGx5CQlGSU5BTExZCiBmb3IJCUZPUgorZWFjaCAgICBFQUNICiBpbnN0YW5jZW9mCUlOU1RBTkNF
T0YKIG5ldwkJTkVXCiB2YXIJCVZBUgpJbmRleDoga2pzL25vZGVzMnN0cmluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga2pzL25vZGVzMnN0cmluZy5jcHAJKHJldmlzaW9uIDE5ODQyKQorKysga2pzL25v
ZGVzMnN0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw4IEBACiAgKiAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDIg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDMgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXllV29uZGVyLCBJbmMu
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29vZEBleWV3b25k
ZXIuY29tKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTYxMyw2ICs2MTUsMTkgQEAgdm9pZCBG
b3JJbk5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcwogICAgIDw8IHN0YXRlbWVudCA8PCBT
b3VyY2VTdHJlYW06OlVuaW5kZW50OwogfQogCit2b2lkIEZvckVhY2hJbk5vZGU6OnN0cmVhbVRv
KFNvdXJjZVN0cmVhbSAmcykgY29uc3QKK3sKKyAgICBzIDw8IFNvdXJjZVN0cmVhbTo6RW5kbCA8
PCAiZm9yICgiOworICAgICAgICBpZiAodmFyRGVjbCkKKyAgICBzIDw8ICJ2YXIgIiA8PCB2YXJE
ZWNsOworICAgICAgICBlbHNlCisgICAgcyA8PCBsZXhwcjsKKyAgCisgICAgaWYgKGluaXQpCisg
ICAgICAgIHMgPDwgIiA9ICIgPDwgaW5pdDsKKyAgICBzIDw8ICIgaW4gIiA8PCBleHByIDw8ICIp
IiA8PCBTb3VyY2VTdHJlYW06OkluZGVudCA8PCBzdGF0ZW1lbnQgPDwgU291cmNlU3RyZWFtOjpV
bmluZGVudDsKK30KKwogdm9pZCBDb250aW51ZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAm
cykgY29uc3QKIHsKICAgcyA8PCBTb3VyY2VTdHJlYW06OkVuZGwgPDwgImNvbnRpbnVlIjsKSW5k
ZXg6IGtqcy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL25vZGVzLmNwcAkocmV2aXNpb24g
MTk4NDIpCisrKyBranMvbm9kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsOCBAQAog
ICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAyIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcp
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA3IEV5ZVdvbmRlciwgSW5jLgorICogIENvcHlyaWdodCAoQykgMjAwNyBKdXN0aW4gSGF5
Z29vZCAoamhheWdvb2RAZXlld29uZGVyLmNvbSkKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0x
OTgwLDYgKzE5ODIsMTIyIEBAIHZvaWQgRm9ySW5Ob2RlOjpwcm9jZXNzVmFyRGVjbHMoRXhlY1N0
YXQKICAgc3RhdGVtZW50LT5wcm9jZXNzVmFyRGVjbHMoZXhlYyk7CiB9CiAKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3JFYWNoSW5Ob2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitGb3JFYWNoSW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKGNvbnN0IElkZW50aWZp
ZXImIGksIEFzc2lnbkV4cHJOb2RlKiBpbiwgTm9kZSogZSwgU3RhdGVtZW50Tm9kZSogcykKKyAg
OiBpZGVudChpKSwKKyAgICBpbml0KGluKSwKKyAgICBleHByKGUpLAorICAgIHN0YXRlbWVudChz
KQoreworICAgIHZhckRlY2wgPSBuZXcgVmFyRGVjbE5vZGUoaWRlbnQsIGluaXQuZ2V0KCksIFZh
ckRlY2xOb2RlOjpWYXJpYWJsZSk7CisgICAgbGV4cHIgPSBuZXcgUmVzb2x2ZU5vZGUoaWRlbnQp
OworfQorCitDb21wbGV0aW9uIEZvckVhY2hJbk5vZGU6OmV4ZWN1dGUoRXhlY1N0YXRlKiBleGVj
KQoreworICAgIEpTVmFsdWUqIGU7CisgICAgSlNWYWx1ZSogcmV0dmFsID0gMDsKKyAgICBKU09i
amVjdCogdjsKKyAgICBDb21wbGV0aW9uIGM7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVy
dHlOYW1lczsKKworICAgIGUgPSBleHByLT5ldmFsdWF0ZShleGVjKTsKKworICAgIC8vIGZvciBO
dWxsIGFuZCBVbmRlZmluZWQsIHdlIHdhbnQgdG8gbWFrZSBzdXJlIG5vdCB0byBnbyB0aHJvdWdo
CisgICAgLy8gdGhlIGxvb3AgYXQgYWxsLCBiZWNhdXNlIHRoZWlyIG9iamVjdCB3cmFwcGVycyB3
aWxsIGhhdmUgYQorICAgIC8vIHByb3BlcnR5IGxpc3QgYnV0IHdpbGwgdGhyb3cgYW4gZXhjZXB0
aW9uIGlmIHlvdSBhdHRlbXB0IHRvCisgICAgLy8gYWNjZXNzIGFueSBwcm9wZXJ0eS4KKyAgICBp
ZiAoZS0+aXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgcmV0dXJuIENvbXBsZXRpb24oTm9y
bWFsLCAwKTsKKworICAgIEtKU19DSEVDS0VYQ0VQVElPTgorICAgIHYgPSBlLT50b09iamVjdChl
eGVjKTsKKyAgICB2LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAK
KyAgICBQcm9wZXJ0eU5hbWVBcnJheUl0ZXJhdG9yIGVuZCA9IHByb3BlcnR5TmFtZXMuZW5kKCk7
CisgICAgZm9yIChQcm9wZXJ0eU5hbWVBcnJheUl0ZXJhdG9yIGl0ID0gcHJvcGVydHlOYW1lcy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciAmbmFt
ZSA9ICppdDsKKyAgICAgICAgaWYgKCF2LT5oYXNQcm9wZXJ0eShleGVjLCBuYW1lKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEpTVmFsdWUgKiBzdHIgPSB2LT5nZXQoZXhlYywg
bmFtZSk7CisKKyAgICAgICAgaWYgKGxleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKKyAgICAgICAg
ICAgIGNvbnN0IElkZW50aWZpZXIgJmlkZW50ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUgKj4o
bGV4cHIuZ2V0KCkpLT5pZGVudGlmaWVyKCk7CisKKyAgICAgICAgICAgIGNvbnN0IFNjb3BlQ2hh
aW4mIGNoYWluID0gZXhlYy0+Y29udGV4dCgpLT5zY29wZUNoYWluKCk7CisgICAgICAgICAgICBT
Y29wZUNoYWluSXRlcmF0b3IgaXRlciA9IGNoYWluLmJlZ2luKCk7CisgICAgICAgICAgICBTY29w
ZUNoYWluSXRlcmF0b3IgZW5kID0gY2hhaW4uZW5kKCk7CisgIAorICAgICAgICAgICAgLy8gd2Ug
bXVzdCBhbHdheXMgaGF2ZSBzb21ldGhpbmcgaW4gdGhlIHNjb3BlIGNoYWluCisgICAgICAgICAg
ICBhc3NlcnQoaXRlciAhPSBlbmQpOworCisgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsK
KyAgICAgICAgICAgIEpTT2JqZWN0ICpvOworICAgICAgICAgICAgZG8geyAKKyAgICAgICAgICAg
ICAgICBvID0gKml0ZXI7CisgICAgICAgICAgICAgICAgaWYgKG8tPmdldFByb3BlcnR5U2xvdChl
eGVjLCBpZGVudCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgby0+cHV0KGV4ZWMsIGlk
ZW50LCBzdHIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgKytpdGVyOworICAgICAgICAgICAgfSB3aGlsZSAoaXRlciAhPSBl
bmQpOworICAgICAgICAKKyAgICAgICAgICAgIGlmIChpdGVyID09IGVuZCkKKyAgICAgICAgICAg
ICAgICBvLT5wdXQoZXhlYywgaWRlbnQsIHN0cik7CisgICAgICAgIH0gZWxzZSBpZiAobGV4cHIt
PmlzRG90QWNjZXNzb3JOb2RlKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50ID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlICo+KGxleHByLmdldCgpKS0+aWRlbnRp
ZmllcigpOworICAgICAgICAgICAgSlNWYWx1ZSAqdiA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29y
Tm9kZSAqPihsZXhwci5nZXQoKSktPmJhc2UoKS0+ZXZhbHVhdGUoZXhlYyk7CisgICAgICAgICAg
ICBLSlNfQ0hFQ0tFWENFUFRJT04KKyAgICAgICAgICAgIEpTT2JqZWN0ICpvID0gdi0+dG9PYmpl
Y3QoZXhlYyk7CisKKyAgICAgICAgICAgIG8tPnB1dChleGVjLCBpZGVudCwgc3RyKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChsZXhwci0+aXNCcmFja2V0QWNjZXNzb3JO
b2RlKCkpOworICAgICAgICAgICAgSlNWYWx1ZSAqdiA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nl
c3Nvck5vZGUgKj4obGV4cHIuZ2V0KCkpLT5iYXNlKCktPmV2YWx1YXRlKGV4ZWMpOworICAgICAg
ICAgICAgS0pTX0NIRUNLRVhDRVBUSU9OCisgICAgICAgICAgICBKU1ZhbHVlICp2MiA9IHN0YXRp
Y19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5vZGUgKj4obGV4cHIuZ2V0KCkpLT5zdWJzY3JpcHQoKS0+
ZXZhbHVhdGUoZXhlYyk7CisgICAgICAgICAgICBLSlNfQ0hFQ0tFWENFUFRJT04KKyAgICAgICAg
ICAgIEpTT2JqZWN0ICpvID0gdi0+dG9PYmplY3QoZXhlYyk7CisKKyAgICAgICAgICAgIHVpbnQz
Ml90IGk7CisgICAgICAgICAgICBpZiAodjItPmdldFVJbnQzMihpKSkKKyAgICAgICAgICAgICAg
ICBvLT5wdXQoZXhlYywgaSwgc3RyKTsKKyAgICAgICAgICAgIG8tPnB1dChleGVjLCBJZGVudGlm
aWVyKHYyLT50b1N0cmluZyhleGVjKSksIHN0cik7CisgICAgICAgIH0KKworICAgICAgICAvLyAn
bycgYXQgdGhpcyBwb2ludCBpcyB0aGUgaWRlbnRpZmllciBmb3IgdGhlIG9iamVjdAorCisgICAg
ICAgIEtKU19DSEVDS0VYQ0VQVElPTgorCisgICAgICAgIGV4ZWMtPmNvbnRleHQoKS0+cHVzaEl0
ZXJhdGlvbigpOworICAgICAgICBjID0gc3RhdGVtZW50LT5leGVjdXRlKGV4ZWMpOworICAgICAg
ICBleGVjLT5jb250ZXh0KCktPnBvcEl0ZXJhdGlvbigpOworICAgICAgICBpZiAoYy5pc1ZhbHVl
Q29tcGxldGlvbigpKQorICAgICAgICAgICAgcmV0dmFsID0gYy52YWx1ZSgpOworCisgICAgICAg
IGlmICghKChjLmNvbXBsVHlwZSgpID09IENvbnRpbnVlKSAmJiBscy5jb250YWlucyhjLnRhcmdl
dCgpKSkpIHsKKyAgICAgICAgICAgIGlmICgoYy5jb21wbFR5cGUoKSA9PSBCcmVhaykgJiYgbHMu
Y29udGFpbnMoYy50YXJnZXQoKSkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlm
IChjLmNvbXBsVHlwZSgpICE9IE5vcm1hbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vIGJhaWwgb3V0IG9uIGVycm9yCisgICAgS0pTX0NIRUNL
RVhDRVBUSU9OCisKKyAgICByZXR1cm4gQ29tcGxldGlvbihOb3JtYWwsIHJldHZhbCk7Cit9CisK
K3ZvaWQgRm9yRWFjaEluTm9kZTo6cHJvY2Vzc1ZhckRlY2xzKEV4ZWNTdGF0ZSAqZXhlYykKK3sK
KyAgaWYgKHZhckRlY2wpCisgICAgdmFyRGVjbC0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOworICBz
dGF0ZW1lbnQtPnByb2Nlc3NWYXJEZWNscyhleGVjKTsKK30KKworCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gQ29udGludWVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiAvLyBFQ01BIDEyLjcKSW5kZXg6IGtqcy9ub2Rlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtqcy9ub2Rlcy5oCShyZXZpc2lvbiAxOTg0MikKKysrIGtqcy9ub2Rlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00LDYgKzQsOCBAQAogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBv
cnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5
IChwbWtAcG9zdC5jb20pCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEV5ZVdvbmRlciwg
SW5jLgorICogIENvcHlyaWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAZXll
d29uZGVyLmNvbSkKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04NzcsNiArODc5LDIxIEBAIG5h
bWVzcGFjZSBLSlMgewogICAgIFJlZlB0cjxTdGF0ZW1lbnROb2RlPiBzdGF0ZW1lbnQ7CiAgIH07
CiAKKyAgICBjbGFzcyBGb3JFYWNoSW5Ob2RlIDogcHVibGljIFN0YXRlbWVudE5vZGUgeworICAg
IHB1YmxpYzoKKyAgICAgICAgRm9yRWFjaEluTm9kZShjb25zdCBJZGVudGlmaWVyICZpLCBBc3Np
Z25FeHByTm9kZSAqaW4sIE5vZGUgKmUsIFN0YXRlbWVudE5vZGUgKnMpOworICAgICAgICB2aXJ0
dWFsIENvbXBsZXRpb24gZXhlY3V0ZShFeGVjU3RhdGUqKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJv
Y2Vzc1ZhckRlY2xzKEV4ZWNTdGF0ZSopOworICAgIHByaXZhdGU6CisgICAgICAgIElkZW50aWZp
ZXIgaWRlbnQ7CisgICAgICAgIFJlZlB0cjxBc3NpZ25FeHByTm9kZT4gaW5pdDsKKyAgICAgICAg
UmVmUHRyPE5vZGU+IGxleHByOworICAgICAgICBSZWZQdHI8Tm9kZT4gZXhwcjsKKyAgICAgICAg
UmVmUHRyPFZhckRlY2xOb2RlPiB2YXJEZWNsOworICAgICAgICBSZWZQdHI8U3RhdGVtZW50Tm9k
ZT4gc3RhdGVtZW50OworICAgIH07CisKICAgY2xhc3MgQ29udGludWVOb2RlIDogcHVibGljIFN0
YXRlbWVudE5vZGUgewogICBwdWJsaWM6CiAgICAgQ29udGludWVOb2RlKCkgeyB9Cg==
</data>
<flag name="review"
          id="5250"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13368</attachid>
            <date>2007-02-25 10:34:03 -0800</date>
            <delta_ts>2007-08-01 09:43:12 -0700</delta_ts>
            <desc>Implements for each ( var &lt;identifier&gt; in &lt;collection&gt; )</desc>
            <filename>jscore-for-each.diff</filename>
            <type>text/plain</type>
            <size>8957</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQ0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDctMDIt
MjUgIEp1c3RpbiBIYXlnb29kICA8amhheWdvb2RAZXlld29uZGVyLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZm9yIGVhY2gg
KCB2YXIgPGlkZW50aWZpZXI+IGluIDxleHByPiApIHN5bnRheC4KKworICAgICAgICAqIGtqcy9n
cmFtbWFyLnk6CisgICAgICAgICoga2pzL2tleXdvcmRzLnRhYmxlOgorICAgICAgICAqIGtqcy9u
b2Rlcy5jcHA6CisgICAgICAgIChGb3JFYWNoSW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKToKKyAgICAg
ICAgKEZvckVhY2hJbk5vZGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorICAg
ICAgICAqIGtqcy9ub2RlczJzdHJpbmcuY3BwOgorICAgICAgICAoRm9yRWFjaEluTm9kZTo6c3Ry
ZWFtVG8pOgorCiAyMDA3LTAyLTIyICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAa2RlLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBMYXJzLgpJbmRleDoga2pzL2dyYW1tYXIueQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBranMvZ3JhbW1hci55CShyZXZpc2lvbiAxOTg0NCkKKysrIGtqcy9ncmFtbWFyLnkJ
KHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw4IEBACiAgKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBsaWJyYXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0
ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICogIENvcHlyaWdodCAoQykgMjAwNyBFeWVXb25kZXIsIEluYy4KKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQGV5ZXdvbmRlci5jb20pCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCkBAIC0xMTMsNyArMTE1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VE
ZWxldGVOb2RlKE5vZGUgKmV4cHIpOwogJXRva2VuIE5VTExUT0tFTiBUUlVFVE9LRU4gRkFMU0VU
T0tFTgogCiAvKiBrZXl3b3JkcyAqLwotJXRva2VuIEJSRUFLIENBU0UgREVGQVVMVCBGT1IgTkVX
IFZBUiBDT05TVCBDT05USU5VRQorJXRva2VuIEJSRUFLIENBU0UgREVGQVVMVCBGT1IgTkVXIFZB
UiBDT05TVCBDT05USU5VRSBFQUNICiAldG9rZW4gRlVOQ1RJT04gUkVUVVJOIFZPSUQgREVMRVRF
CiAldG9rZW4gSUYgVEhJUyBETyBXSElMRSBJTiBJTlNUQU5DRU9GIFRZUEVPRgogJXRva2VuIFNX
SVRDSCBXSVRIIFJFU0VSVkVECkBAIC03MzgsNiArNzQwLDggQEAgSXRlcmF0aW9uU3RhdGVtZW50
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRm9y
SW5Ob2RlKCokNCwgMCwgJDYsICQ4KTsgREJHKCQkLCBAMSwgQDcpOyB9CiAgIHwgRk9SICcoJyBW
QVIgSURFTlQgSW5pdGlhbGl6ZXJOb0luIElOIEV4cHIgJyknIFN0YXRlbWVudAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRm9ySW5Ob2RlKCokNCwg
JDUsICQ3LCAkOSk7IERCRygkJCwgQDEsIEA4KTsgfQorICB8IEZPUiBFQUNIICcoJyBWQVIgSURF
TlQgSU4gRXhwciAnKScgU3RhdGVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyAkJCA9IG5ldyBGb3JFYWNoSW5Ob2RlKCokNSwgJDcsICQ5KTsgREJHKCQkLCBA
MSwgQDkpOyB9CiA7CiAKIEV4cHJPcHQ6CkluZGV4OiBranMva2V5d29yZHMudGFibGUKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga2pzL2tleXdvcmRzLnRhYmxlCShyZXZpc2lvbiAxOTg0NCkKKysrIGtqcy9rZXl3
b3Jkcy50YWJsZQkod29ya2luZyBjb3B5KQpAQCAtMTQsNiArMTQsNyBAQCBjb25zdAkJQ09OU1QK
IGRlZmF1bHQJCURFRkFVTFQKIGZpbmFsbHkJCUZJTkFMTFkKIGZvcgkJRk9SCitlYWNoICAgIEVB
Q0gKIGluc3RhbmNlb2YJSU5TVEFOQ0VPRgogbmV3CQlORVcKIHZhcgkJVkFSCkluZGV4OiBranMv
bm9kZXMyc3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMyc3RyaW5nLmNwcAkocmV2
aXNpb24gMTk4NDQpCisrKyBranMvbm9kZXMyc3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Miw2ICsyLDggQEAKICAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxpYnJhcmllcwog
ICogIENvcHlyaWdodCAoQykgMjAwMiBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICog
IENvcHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLgorICogIENvcHlyaWdodCAo
QykgMjAwNyBFeWVXb25kZXIsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhh
eWdvb2QgKGpoYXlnb29kQGV5ZXdvbmRlci5jb20pCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NjEzLDYgKzYxNSwxNyBAQCB2b2lkIEZvckluTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZz
CiAgICAgPDwgc3RhdGVtZW50IDw8IFNvdXJjZVN0cmVhbTo6VW5pbmRlbnQ7CiB9CiAKK3ZvaWQg
Rm9yRWFjaEluTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdAoreworICAgIHMg
PDwgU291cmNlU3RyZWFtOjpFbmRsIDw8ICJmb3IgZWFjaCAoIjsKKyAgICAgICAgaWYgKHZhckRl
Y2wpCisgICAgcyA8PCAidmFyICIgPDwgdmFyRGVjbDsKKyAgICAgICAgZWxzZQorICAgIHMgPDwg
bGV4cHI7CisKKyAgICBzIDw8ICIgaW4gIiA8PCBleHByIDw8ICIpIiA8PCBTb3VyY2VTdHJlYW06
OkluZGVudCA8PCBzdGF0ZW1lbnQgPDwgU291cmNlU3RyZWFtOjpVbmluZGVudDsKK30KKwogdm9p
ZCBDb250aW51ZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKICAgcyA8
PCBTb3VyY2VTdHJlYW06OkVuZGwgPDwgImNvbnRpbnVlIjsKSW5kZXg6IGtqcy9ub2Rlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2pzL25vZGVzLmNwcAkocmV2aXNpb24gMTk4NDQpCisrKyBranMvbm9k
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsOCBAQAogICogIENvcHlyaWdodCAoQykg
MTk5OS0yMDAyIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAz
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEV5ZVdvbmRlciwg
SW5jLgorICogIENvcHlyaWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAZXll
d29uZGVyLmNvbSkKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOTgwLDYgKzE5ODIsMTEzIEBA
IHZvaWQgRm9ySW5Ob2RlOjpwcm9jZXNzVmFyRGVjbHMoRXhlY1N0YXQKICAgc3RhdGVtZW50LT5w
cm9jZXNzVmFyRGVjbHMoZXhlYyk7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGb3JFYWNoSW5Ob2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitGb3JF
YWNoSW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKGNvbnN0IElkZW50aWZpZXImIGksIE5vZGUqIGUsIFN0
YXRlbWVudE5vZGUqIHMpCisgIDogaWRlbnQoaSksCisgICAgZXhwcihlKSwKKyAgICBzdGF0ZW1l
bnQocykKK3sKKyAgICB2YXJEZWNsID0gbmV3IFZhckRlY2xOb2RlKGlkZW50LCAwLCBWYXJEZWNs
Tm9kZTo6VmFyaWFibGUpOworICAgIGxleHByID0gbmV3IFJlc29sdmVOb2RlKGlkZW50KTsKK30K
KworQ29tcGxldGlvbiBGb3JFYWNoSW5Ob2RlOjpleGVjdXRlKEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBKU1ZhbHVlKiBlOworICAgIEpTVmFsdWUqIHJldHZhbCA9IDA7CisgICAgSlNPYmplY3Qq
IHY7CisgICAgQ29tcGxldGlvbiBjOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFt
ZXM7CisKKyAgICBlID0gZXhwci0+ZXZhbHVhdGUoZXhlYyk7CisKKyAgICAvLyBmb3IgTnVsbCBh
bmQgVW5kZWZpbmVkLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSBub3QgdG8gZ28gdGhyb3VnaAorICAg
IC8vIHRoZSBsb29wIGF0IGFsbCwgYmVjYXVzZSB0aGVpciBvYmplY3Qgd3JhcHBlcnMgd2lsbCBo
YXZlIGEKKyAgICAvLyBwcm9wZXJ0eSBsaXN0IGJ1dCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBp
ZiB5b3UgYXR0ZW1wdCB0bworICAgIC8vIGFjY2VzcyBhbnkgcHJvcGVydHkuCisgICAgaWYgKGUt
PmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBDb21wbGV0aW9uKE5vcm1hbCwg
MCk7CisKKyAgICBLSlNfQ0hFQ0tFWENFUFRJT04KKyAgICB2ID0gZS0+dG9PYmplY3QoZXhlYyk7
CisgICAgdi0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgCisgICAg
UHJvcGVydHlOYW1lQXJyYXlJdGVyYXRvciBlbmQgPSBwcm9wZXJ0eU5hbWVzLmVuZCgpOworICAg
IGZvciAoUHJvcGVydHlOYW1lQXJyYXlJdGVyYXRvciBpdCA9IHByb3BlcnR5TmFtZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUgPSAq
aXQ7CisgICAgICAgIGlmICghdi0+aGFzUHJvcGVydHkoZXhlYywgbmFtZSkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBKU1ZhbHVlKiBzdHIgPSB2LT5nZXQoZXhlYywgbmFtZSk7
CisKKyAgICAgICAgaWYgKGxleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKKyAgICAgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIGlkZW50ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqID4obGV4cHIu
Z2V0KCkpLT5pZGVudGlmaWVyKCk7CisKKyAgICAgICAgICAgIGNvbnN0IFNjb3BlQ2hhaW4mIGNo
YWluID0gZXhlYy0+Y29udGV4dCgpLT5zY29wZUNoYWluKCk7CisgICAgICAgICAgICBTY29wZUNo
YWluSXRlcmF0b3IgaXRlciA9IGNoYWluLmJlZ2luKCk7CisgICAgICAgICAgICBTY29wZUNoYWlu
SXRlcmF0b3IgZW5kID0gY2hhaW4uZW5kKCk7CisgIAorICAgICAgICAgICAgLy8gd2UgbXVzdCBh
bHdheXMgaGF2ZSBzb21ldGhpbmcgaW4gdGhlIHNjb3BlIGNoYWluCisgICAgICAgICAgICBBU1NF
UlQoaXRlciAhPSBlbmQpOworCisgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAg
ICAgICAgIEpTT2JqZWN0KiBvOworICAgICAgICAgICAgZG8geyAKKyAgICAgICAgICAgICAgICBv
ID0gKml0ZXI7CisgICAgICAgICAgICAgICAgaWYgKG8tPmdldFByb3BlcnR5U2xvdChleGVjLCBp
ZGVudCwgc2xvdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgby0+cHV0KGV4ZWMsIGlkZW50LCBz
dHIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgKytpdGVyOworICAgICAgICAgICAgfSB3aGlsZSAoaXRlciAhPSBlbmQpOwor
ICAgICAgICAKKyAgICAgICAgICAgIGlmIChpdGVyID09IGVuZCkKKyAgICAgICAgICAgICAgICBv
LT5wdXQoZXhlYywgaWRlbnQsIHN0cik7CisgICAgICAgIH0gZWxzZSBpZiAobGV4cHItPmlzRG90
QWNjZXNzb3JOb2RlKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0g
c3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlKiA+KGxleHByLmdldCgpKS0+aWRlbnRpZmllcigp
OworICAgICAgICAgICAgSlNWYWx1ZSogdiA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSog
PihsZXhwci5nZXQoKSktPmJhc2UoKS0+ZXZhbHVhdGUoZXhlYyk7CisgICAgICAgICAgICBLSlNf
Q0hFQ0tFWENFUFRJT04KKyAgICAgICAgICAgIEpTT2JqZWN0KiBvID0gdi0+dG9PYmplY3QoZXhl
Yyk7CisKKyAgICAgICAgICAgIG8tPnB1dChleGVjLCBpZGVudCwgc3RyKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGFzc2VydChsZXhwci0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkp
OworICAgICAgICAgICAgSlNWYWx1ZSogdiA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5v
ZGUqID4obGV4cHIuZ2V0KCkpLT5iYXNlKCktPmV2YWx1YXRlKGV4ZWMpOworICAgICAgICAgICAg
S0pTX0NIRUNLRVhDRVBUSU9OCisgICAgICAgICAgICBKU1ZhbHVlKiB2MiA9IHN0YXRpY19jYXN0
PEJyYWNrZXRBY2Nlc3Nvck5vZGUqID4obGV4cHIuZ2V0KCkpLT5zdWJzY3JpcHQoKS0+ZXZhbHVh
dGUoZXhlYyk7CisgICAgICAgICAgICBLSlNfQ0hFQ0tFWENFUFRJT04KKyAgICAgICAgICAgIEpT
T2JqZWN0ICpvID0gdi0+dG9PYmplY3QoZXhlYyk7CisKKyAgICAgICAgICAgIHVpbnQzMl90IGk7
CisgICAgICAgICAgICBpZiAodjItPmdldFVJbnQzMihpKSkKKyAgICAgICAgICAgICAgICBvLT5w
dXQoZXhlYywgaSwgc3RyKTsKKyAgICAgICAgICAgIG8tPnB1dChleGVjLCBJZGVudGlmaWVyKHYy
LT50b1N0cmluZyhleGVjKSksIHN0cik7CisgICAgICAgIH0KKworICAgICAgICAvLyAnbycgYXQg
dGhpcyBwb2ludCBpcyB0aGUgaWRlbnRpZmllciBmb3IgdGhlIG9iamVjdAorCisgICAgICAgIEtK
U19DSEVDS0VYQ0VQVElPTgorCisgICAgICAgIGV4ZWMtPmNvbnRleHQoKS0+cHVzaEl0ZXJhdGlv
bigpOworICAgICAgICBjID0gc3RhdGVtZW50LT5leGVjdXRlKGV4ZWMpOworICAgICAgICBleGVj
LT5jb250ZXh0KCktPnBvcEl0ZXJhdGlvbigpOworICAgICAgICBpZiAoYy5pc1ZhbHVlQ29tcGxl
dGlvbigpKQorICAgICAgICAgICAgcmV0dmFsID0gYy52YWx1ZSgpOworCisgICAgICAgIGlmICgh
KChjLmNvbXBsVHlwZSgpID09IENvbnRpbnVlKSAmJiBscy5jb250YWlucyhjLnRhcmdldCgpKSkp
IHsKKyAgICAgICAgICAgIGlmICgoYy5jb21wbFR5cGUoKSA9PSBCcmVhaykgJiYgbHMuY29udGFp
bnMoYy50YXJnZXQoKSkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChjLmNv
bXBsVHlwZSgpICE9IE5vcm1hbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAg
fQorICAgIH0KKworICAgIC8vIGJhaWwgb3V0IG9uIGVycm9yCisgICAgS0pTX0NIRUNLRVhDRVBU
SU9OCisKKyAgICByZXR1cm4gQ29tcGxldGlvbihOb3JtYWwsIHJldHZhbCk7Cit9CisKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb250aW51ZU5vZGUgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEgMTIuNwpJbmRleDoga2pzL25vZGVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2pzL25vZGVzLmgJKHJldmlzaW9uIDE5ODQ0KQorKysga2pzL25vZGVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw4IEBACiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIw
MDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEg
UGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQs
IDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcg
RXllV29uZGVyLCBJbmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChq
aGF5Z29vZEBleWV3b25kZXIuY29tKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg3Nyw2ICs4
NzksMTkgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgUmVmUHRyPFN0YXRlbWVudE5vZGU+IHN0YXRl
bWVudDsKICAgfTsKIAorICAgIGNsYXNzIEZvckVhY2hJbk5vZGUgOiBwdWJsaWMgU3RhdGVtZW50
Tm9kZSB7CisgICAgcHVibGljOgorICAgICAgICBGb3JFYWNoSW5Ob2RlKGNvbnN0IElkZW50aWZp
ZXIgJmksIE5vZGUgKmUsIFN0YXRlbWVudE5vZGUgKnMpOworICAgICAgICB2aXJ0dWFsIENvbXBs
ZXRpb24gZXhlY3V0ZShFeGVjU3RhdGUqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRv
KFNvdXJjZVN0cmVhbSYpIGNvbnN0OworICAgIHByaXZhdGU6CisgICAgICAgIElkZW50aWZpZXIg
aWRlbnQ7CisgICAgICAgIFJlZlB0cjxOb2RlPiBsZXhwcjsKKyAgICAgICAgUmVmUHRyPE5vZGU+
IGV4cHI7CisgICAgICAgIFJlZlB0cjxWYXJEZWNsTm9kZT4gdmFyRGVjbDsKKyAgICAgICAgUmVm
UHRyPFN0YXRlbWVudE5vZGU+IHN0YXRlbWVudDsKKyAgICB9OworCiAgIGNsYXNzIENvbnRpbnVl
Tm9kZSA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgcHVibGljOgogICAgIENvbnRpbnVlTm9k
ZSgpIHsgfQo=
</data>
<flag name="review"
          id="5252"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15782</attachid>
            <date>2007-08-01 09:43:12 -0700</date>
            <delta_ts>2007-08-01 13:18:24 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>jscore-for-each-in.txt</filename>
            <type>text/plain</type>
            <size>8298</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODAzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMDgtMDEgIEp1c3RpbiBI
YXlnb29kICA8amhheWdvb2RAZXlld29uZGVyLmNvbT4KKworCUFkZCBmb3IgZWFjaC4uLmluIHN1
cHBvcnQgdG8gSmF2YVNjcmlwdENvcmUsIHBhcnQgb2YgdGhlIEVDTUEtMzU3IHN0YW5kYXJkIGFz
IHdlbGwgYXMgSmF2YVNjcmlwdCAxLjYuIFVzZWZ1bCBpbiBjb250ZXh0cyBvdGhlciB0aGFuIEVD
TUEtMzU3IGFzIHdlbGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBranMvZ3JhbW1hci55OgorICAgICAgICAqIGtqcy9rZXl3b3Jkcy50YWJsZToK
KyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoRm9ySW5Ob2RlOjpnZXRJdGVyYXRv
clZhbHVlKToKKyAgICAgICAgKEZvckluTm9kZTo6ZXhlY3V0ZSk6CisgICAgICAgIChGb3JFYWNo
SW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKToKKyAgICAgICAgKEZvckVhY2hJbk5vZGU6OmdldEl0ZXJh
dG9yVmFsdWUpOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorICAgICAgICAqIGtqcy9ub2RlczJz
dHJpbmcuY3BwOgorICAgICAgICAoRm9yRWFjaEluTm9kZTo6c3RyZWFtVG8pOgorCiAyMDA3LTA3
LTMwICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgRG9uZSB3
aXRoIGFuZCByZXZpZXdlZCBieSBMYXJzLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2dyYW1t
YXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CShyZXZpc2lv
biAyNDgwMykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHdvcmtpbmcgY29weSkK
QEAgLTQsNiArNCw3IEBACiAgKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJp
ZXMKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29v
ZEBleWV3b25kZXIuY29tKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMTE0LDcgKzExNSw3IEBA
IHN0YXRpYyBOb2RlICptYWtlRGVsZXRlTm9kZShOb2RlICpleHByKTsKICV0b2tlbiBOVUxMVE9L
RU4gVFJVRVRPS0VOIEZBTFNFVE9LRU4KIAogLyoga2V5d29yZHMgKi8KLSV0b2tlbiBCUkVBSyBD
QVNFIERFRkFVTFQgRk9SIE5FVyBWQVIgQ09OU1QgQ09OVElOVUUKKyV0b2tlbiBCUkVBSyBDQVNF
IERFRkFVTFQgRk9SIE5FVyBWQVIgQ09OU1QgQ09OVElOVUUgRUFDSAogJXRva2VuIEZVTkNUSU9O
IFJFVFVSTiBWT0lEIERFTEVURQogJXRva2VuIElGIFRISVMgRE8gV0hJTEUgSU4gSU5TVEFOQ0VP
RiBUWVBFT0YKICV0b2tlbiBTV0lUQ0ggV0lUSCBSRVNFUlZFRApAQCAtNzM4LDggKzczOSwyMSBA
QCBJdGVyYXRpb25TdGF0ZW1lbnQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICB8IEZPUiAnKCcgVkFSIElERU5UIElOIEV4cHIgJyknIFN0YXRlbWVudAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRm9ySW5Ob2Rl
KCokNCwgMCwgJDYsICQ4KTsgREJHKCQkLCBAMSwgQDcpOyB9CisgIAogICB8IEZPUiAnKCcgVkFS
IElERU5UIEluaXRpYWxpemVyTm9JbiBJTiBFeHByICcpJyBTdGF0ZW1lbnQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IEZvckluTm9kZSgqJDQsICQ1
LCAkNywgJDkpOyBEQkcoJCQsIEAxLCBAOCk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgfCBGT1IgRUFDSCAnKCcgVkFSIElERU5UIElOIEV4cHIgJyknIFN0
YXRlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBu
ZXcgRm9yRWFjaEluTm9kZSgqJDUsIDAsICQ3LCAkOSk7IERCRygkJCwgQDEsIEA5KTsgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICB8IEZPUiBFQUNIICcoJyBM
ZWZ0SGFuZFNpZGVFeHByIElOIEV4cHIgJyknIFN0YXRlbWVudAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTm9kZSAqbiA9ICQ0LT5ub2RlSW5zaWRlQWxsUGFyZW5zKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFuLT5pc0xvY2F0aW9uKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUFCT1JU
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IG5ldyBG
b3JFYWNoSW5Ob2RlKG4sICQ2LCAkOCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERCRygkJCwgQDEsIEA3KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiA7CiAKIEV4cHJPcHQ6CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
a2V5d29yZHMudGFibGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2tleXdvcmRz
LnRhYmxlCShyZXZpc2lvbiAyNDgwMykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9rZXl3b3Jkcy50
YWJsZQkod29ya2luZyBjb3B5KQpAQCAtMTQsNiArMTQsNyBAQCBjb25zdAkJQ09OU1QKIGRlZmF1
bHQJCURFRkFVTFQKIGZpbmFsbHkJCUZJTkFMTFkKIGZvcgkJRk9SCitlYWNoICAgICAgICAgICAg
RUFDSAogaW5zdGFuY2VvZglJTlNUQU5DRU9GCiBuZXcJCU5FVwogdmFyCQlWQVIKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCShyZXZpc2lvbiAyNDgwMykKKysrIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBA
QAogICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCiAgKiAgQ29weXJp
Z2h0IChDKSAyMDAyIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29k
QGV5ZXdvbmRlci5jb20pCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjY2LDYgKzY2NywxOCBA
QCB2b2lkIEZvckluTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzCiAgICAgPDwgc3RhdGVt
ZW50IDw8IFNvdXJjZVN0cmVhbTo6VW5pbmRlbnQ7CiB9CiAKK3ZvaWQgRm9yRWFjaEluTm9kZTo6
c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdAoreworICAgIHMgPDwgU291cmNlU3RyZWFt
OjpFbmRsIDw8ICJmb3IgZWFjaCAoIjsKKyAgICAKKyAgICBpZiggdmFyRGVjbCApCisgICAgICAg
IHMgPDwgInZhciAiIDw8IHZhckRlY2w7CisgICAgZWxzZQorICAgICAgICBzIDw8IGxleHByOwor
ICAgICAgICAKKyAgICBzIDw8ICIgaW4gIiA8PCBleHByIDw8ICIpIiA8PCBTb3VyY2VTdHJlYW06
OkluZGVudCA8PCBzdGF0ZW1lbnQgPDwgU291cmNlU3RyZWFtOjpVbmluZGVudDsKK30KKwogdm9p
ZCBDb250aW51ZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3QKIHsKICAgcyA8
PCBTb3VyY2VTdHJlYW06OkVuZGwgPDwgImNvbnRpbnVlIjsKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2tqcy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNw
cAkocmV2aXNpb24gMjQ4MDMpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBL
ZWxseSAocG1rQHBvc3QuY29tKQogICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IENhbWVyb24gWndhcmljaCAoY3d6d2FyaWNoQHV3YXRlcmxvby5jYSkKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQGV5ZXdvbmRlci5jb20p
CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTk1NCw2ICsxOTU1LDExIEBAIEZvckluTm9kZTo6
Rm9ySW5Ob2RlKGNvbnN0IElkZW50aWZpZXIgJmkKICAgbGV4cHIgPSBuZXcgUmVzb2x2ZU5vZGUo
aWRlbnQpOwogfQogCitKU1ZhbHVlKiBGb3JJbk5vZGU6OmdldEl0ZXJhdG9yVmFsdWUoIEV4ZWNT
dGF0ZSAqLCBKU09iamVjdCAqaW5WYWx1ZSwgY29uc3QgSWRlbnRpZmllciBuYW1lICkKK3sKKyAg
ICByZXR1cm4ganNPd25lZFN0cmluZyggbmFtZS51c3RyaW5nKCkgKTsKK30KKwogLy8gRUNNQSAx
Mi42LjQKIENvbXBsZXRpb24gRm9ySW5Ob2RlOjpleGVjdXRlKEV4ZWNTdGF0ZSAqZXhlYykKIHsK
QEAgLTE5ODgsNyArMTk5NCw3IEBAIENvbXBsZXRpb24gRm9ySW5Ob2RlOjpleGVjdXRlKEV4ZWNT
dGF0ZSAKICAgICAgIGlmICghdi0+aGFzUHJvcGVydHkoZXhlYywgbmFtZSkpCiAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgIEpTVmFsdWUgKnN0ciA9IGpzT3duZWRTdHJpbmcobmFtZS51c3Ry
aW5nKCkpOworICAgICAgSlNWYWx1ZSAqc3RyID0gZ2V0SXRlcmF0b3JWYWx1ZShleGVjLHYsbmFt
ZSk7CiAKICAgICAgIGlmIChsZXhwci0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIGNvbnN0
IElkZW50aWZpZXIgJmlkZW50ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUgKj4obGV4cHIuZ2V0
KCkpLT5pZGVudGlmaWVyKCk7CkBAIC0yMDY0LDYgKzIwNzAsMjMgQEAgdm9pZCBGb3JJbk5vZGU6
OnByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdAogICBzdGF0ZW1lbnQtPnByb2Nlc3NWYXJEZWNscyhl
eGVjKTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvckVhY2hJbk5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitGb3JFYWNoSW5Ob2RlOjpG
b3JFYWNoSW5Ob2RlKE5vZGUgKmwsIE5vZGUgKmUsIFN0YXRlbWVudE5vZGUgKnMpCisgIDogRm9y
SW5Ob2RlKCBsLCBlLCBzICkKK3sKK30KKworRm9yRWFjaEluTm9kZTo6Rm9yRWFjaEluTm9kZShj
b25zdCBJZGVudGlmaWVyICZpLCBBc3NpZ25FeHByTm9kZSAqaW4sIE5vZGUgKmUsIFN0YXRlbWVu
dE5vZGUgKnMpCisgIDogRm9ySW5Ob2RlKCBpLCBpbiwgZSwgcykKK3sKK30KKworSlNWYWx1ZSog
Rm9yRWFjaEluTm9kZTo6Z2V0SXRlcmF0b3JWYWx1ZSggRXhlY1N0YXRlICpleGVjLCBKU09iamVj
dCAqaW5WYWx1ZSwgY29uc3QgSWRlbnRpZmllciBuYW1lICkKK3sKKyAgICByZXR1cm4gaW5WYWx1
ZS0+Z2V0KGV4ZWMsbmFtZSk7Cit9CisKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIENvbnRpbnVlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8g
RUNNQSAxMi43CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAkocmV2aXNpb24gMjQ4MDMpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICog
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5
Z29vZEBleWV3b25kZXIuY29tKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTkxNSw3ICs5MTYs
OCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIENvbXBsZXRpb24gZXhlY3V0ZShFeGVj
U3RhdGUqKSBLSlNfRkFTVF9DQUxMOwogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVmFyRGVjbHMo
RXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291
cmNlU3RyZWFtJikgY29uc3QgS0pTX0ZBU1RfQ0FMTDsKLSAgcHJpdmF0ZToKKyAgcHJvdGVjdGVk
OgorICAgIHZpcnR1YWwgSlNWYWx1ZSogZ2V0SXRlcmF0b3JWYWx1ZSggRXhlY1N0YXRlICpleGVj
LCBKU09iamVjdCAqaW5WYWx1ZSwgY29uc3QgSWRlbnRpZmllciBuYW1lICkgS0pTX0ZBU1RfQ0FM
TDsKICAgICBJZGVudGlmaWVyIGlkZW50OwogICAgIFJlZlB0cjxBc3NpZ25FeHByTm9kZT4gaW5p
dDsKICAgICBSZWZQdHI8Tm9kZT4gbGV4cHI7CkBAIC05MjMsNiArOTI1LDIyIEBAIG5hbWVzcGFj
ZSBLSlMgewogICAgIFJlZlB0cjxWYXJEZWNsTm9kZT4gdmFyRGVjbDsKICAgICBSZWZQdHI8U3Rh
dGVtZW50Tm9kZT4gc3RhdGVtZW50OwogICB9OworICAKKyAgICBjbGFzcyBGb3JFYWNoSW5Ob2Rl
IDogcHVibGljIEZvckluTm9kZSB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIEZvckVh
Y2hJbk5vZGUoTm9kZSAqbCwgTm9kZSAqZSwgU3RhdGVtZW50Tm9kZSAqcykgS0pTX0ZBU1RfQ0FM
TDsKKyAgICAgICAgICAgIEZvckVhY2hJbk5vZGUoY29uc3QgSWRlbnRpZmllciAmaSwgQXNzaWdu
RXhwck5vZGUgKmluLCBOb2RlICplLCBTdGF0ZW1lbnROb2RlICpzKSBLSlNfRkFTVF9DQUxMOwor
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtK
U19GQVNUX0NBTEw7CisgICAgICAgIHByb3RlY3RlZDoKKyAgICAgICAgICAgIHZpcnR1YWwgSlNW
YWx1ZSogZ2V0SXRlcmF0b3JWYWx1ZSggRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqaW5WYWx1
ZSwgY29uc3QgSWRlbnRpZmllciBuYW1lICkgS0pTX0ZBU1RfQ0FMTDsKKyAgICAgICAgICAgIElk
ZW50aWZpZXIgaWRlbnQ7CisgICAgICAgIFJlZlB0cjxBc3NpZ25FeHByTm9kZT4gaW5pdDsKKyAg
ICAgICAgUmVmUHRyPE5vZGU+IGxleHByOworICAgICAgICBSZWZQdHI8Tm9kZT4gZXhwcjsKKyAg
ICAgICAgUmVmUHRyPFZhckRlY2xOb2RlPiB2YXJEZWNsOworICAgICAgICBSZWZQdHI8U3RhdGVt
ZW50Tm9kZT4gc3RhdGVtZW50OworICAgIH07CisKIAogICBjbGFzcyBDb250aW51ZU5vZGUgOiBw
dWJsaWMgU3RhdGVtZW50Tm9kZSB7CiAgIHB1YmxpYzoK
</data>
<flag name="review"
          id="6588"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>15790</attachid>
            <date>2007-08-01 13:15:42 -0700</date>
            <delta_ts>2007-08-01 13:15:42 -0700</delta_ts>
            <desc>for each...in test case</desc>
            <filename>for-each-testcase.zip</filename>
            <type>application/zip</type>
            <size>1641</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">UEsDBBQACAAIAHRgATcAAAAAAAAAAAAAAAAWABAAZm9yLWVhY2gtaW4tYmFzaWMuaHRtbFVYDACH
6bBG266wRvUB9QGFkLkOwjAQRHu+wrh39gcSCpIgkLiKUFAm9qI4mDjyGiT+HueoOEQ10s7bndHG
8+yQFudjztbFbsuOp+V2kzIuADZ5sQLIimxwAPI9X8zi2t9ML1iqIEa3V+bQJJz80yDViJ6z2uEl
4Q7J3p1EgoaER/JiYCJJ1B8i6XTnGTn5De0cRk3gYhi5sABTZmXVM0jHtEq4wtHXtu3hLhhKPwZL
2paswX4cRj8TL9YJLGUtdCuqkrR8z/1T1JL/aDpVhPFZL1BLBwg/q3SfwgAAAGMBAABQSwMECgAA
AAAAwIEBNwAAAAAAAAAAAAAAAAkAEABfX01BQ09TWC9VWAwAh+mwRofpsEb1AfUBUEsDBBQACAAI
AHRgATcAAAAAAAAAAAAAAAAhABAAX19NQUNPU1gvLl9mb3ItZWFjaC1pbi1iYXNpYy5odG1sVVgM
AIfpsEbbrrBG9QH1AWNgFWNnYGLABCAxTiA2AmIFKD8IJBHs65MS7Bvqg0UPGAAAUEsHCDtqAE8j
AAAAUgAAAFBLAwQKAAAAAACrgQE3AAAAAAAAAAAAAAAACgAQAHJlc291cmNlcy9VWAwAW+mwRmHp
sEb1AfUBUEsDBBQACAAIALxjATcAAAAAAAAAAAAAAAAeABAAcmVzb3VyY2VzL2Zvci1lYWNoLWlu
LWJhc2ljLmpzVVgMAIfpsEYDtbBG9QH1AV2QwUrEMBCGz5mnGHLZLogvUDyoKOhBFxTvMZ3SLqFT
JkmlyL67k6pr6yVMZv58/59pKHrpx9TzUIF97fqIiWLSs3MJH93kXpb5LQvhPcud893D8MQN4egk
UhFqKTySpBknFzKhZxHyKcwW9jXA5OSsqJcb6yM5nFvQ5sGXCIt3tYdPMIsMr3CgD3x+PyquUpbh
y5ZL216PYyCrHTAtC5LmwuovSD/o6z0YJZnYcQ7NDVX2d2wv7G4B7GyBnv5R1oHftF7DNtE1yEpX
b7w2wo2hKY4ngO/P/iwoZu8pxjaHMB/KZhuFJ8lUfwFQSwcI00zcB+sAAACjAQAAUEsDBAoAAAAA
AMCBATcAAAAAAAAAAAAAAAATABAAX19NQUNPU1gvcmVzb3VyY2VzL1VYDACH6bBGh+mwRvUB9QFQ
SwMEFAAIAAgAvGMBNwAAAAAAAAAAAAAAACkAEABfX01BQ09TWC9yZXNvdXJjZXMvLl9mb3ItZWFj
aC1pbi1iYXNpYy5qc1VYDACH6bBGA7WwRvUB9QFjYBVjZ2BiwAQgMU4gNgJiBSg/CCQR7OuTEuwb
6oNFDxgAAFBLBwg7agBPIwAAAFIAAABQSwECFQMUAAgACAB0YAE3P6t0n8IAAABjAQAAFgAMAAAA
AAAAAABApIEAAAAAZm9yLWVhY2gtaW4tYmFzaWMuaHRtbFVYCACH6bBG266wRlBLAQIVAwoAAAAA
AMCBATcAAAAAAAAAAAAAAAAJAAwAAAAAAAAAAED9QRYBAABfX01BQ09TWC9VWAgAh+mwRofpsEZQ
SwECFQMUAAgACAB0YAE3O2oATyMAAABSAAAAIQAMAAAAAAAAAABApIFNAQAAX19NQUNPU1gvLl9m
b3ItZWFjaC1pbi1iYXNpYy5odG1sVVgIAIfpsEbbrrBGUEsBAhUDCgAAAAAAq4EBNwAAAAAAAAAA
AAAAAAoADAAAAAAAAAAAQO1BzwEAAHJlc291cmNlcy9VWAgAW+mwRmHpsEZQSwECFQMUAAgACAC8
YwE300zcB+sAAACjAQAAHgAMAAAAAAAAAABApIEHAgAAcmVzb3VyY2VzL2Zvci1lYWNoLWluLWJh
c2ljLmpzVVgIAIfpsEYDtbBGUEsBAhUDCgAAAAAAwIEBNwAAAAAAAAAAAAAAABMADAAAAAAAAAAA
QP1BTgMAAF9fTUFDT1NYL3Jlc291cmNlcy9VWAgAh+mwRofpsEZQSwECFQMUAAgACAC8YwE3O2oA
TyMAAABSAAAAKQAMAAAAAAAAAABApIGPAwAAX19NQUNPU1gvcmVzb3VyY2VzLy5fZm9yLWVhY2gt
aW4tYmFzaWMuanNVWAgAh+mwRgO1sEZQSwUGAAAAAAcABwA6AgAAGQQAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15791</attachid>
            <date>2007-08-01 13:18:24 -0700</date>
            <delta_ts>2010-06-10 17:29:55 -0700</delta_ts>
            <desc>Updated Patch for for each...in</desc>
            <filename>jscore-for-each-in.txt</filename>
            <type>text/plain</type>
            <size>8192</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODA3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMDgtMDEgIEp1c3RpbiBI
YXlnb29kICA8amhheWdvb2RAZXlld29uZGVyLmNvbT4KKworCUFkZCBmb3IgZWFjaC4uLmluIHN1
cHBvcnQgdG8gSmF2YVNjcmlwdENvcmUsIHBhcnQgb2YgdGhlIEVDTUEtMzU3IHN0YW5kYXJkIGFz
IHdlbGwgYXMgSmF2YVNjcmlwdCAxLjYuIFVzZWZ1bCBpbiBjb250ZXh0cyBvdGhlciB0aGFuIEVD
TUEtMzU3IGFzIHdlbGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBranMvZ3JhbW1hci55OgorICAgICAgICAqIGtqcy9rZXl3b3Jkcy50YWJsZToK
KyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoRm9ySW5Ob2RlOjpnZXRJdGVyYXRv
clZhbHVlKToKKyAgICAgICAgKEZvckluTm9kZTo6ZXhlY3V0ZSk6CisgICAgICAgIChGb3JFYWNo
SW5Ob2RlOjpGb3JFYWNoSW5Ob2RlKToKKyAgICAgICAgKEZvckVhY2hJbk5vZGU6OmdldEl0ZXJh
dG9yVmFsdWUpOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorICAgICAgICAqIGtqcy9ub2RlczJz
dHJpbmcuY3BwOgorICAgICAgICAoRm9yRWFjaEluTm9kZTo6c3RyZWFtVG8pOgorCiAyMDA3LTA3
LTMwICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgRG9uZSB3
aXRoIGFuZCByZXZpZXdlZCBieSBMYXJzLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2dyYW1t
YXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CShyZXZpc2lv
biAyNDgwNykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHdvcmtpbmcgY29weSkK
QEAgLTQsNiArNCw3IEBACiAgKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJp
ZXMKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQogICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kCiAgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCkBAIC0xMTQsNyArMTE1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VEZWxldGVO
b2RlKE5vZGUgKmV4cHIpOwogJXRva2VuIE5VTExUT0tFTiBUUlVFVE9LRU4gRkFMU0VUT0tFTgog
CiAvKiBrZXl3b3JkcyAqLwotJXRva2VuIEJSRUFLIENBU0UgREVGQVVMVCBGT1IgTkVXIFZBUiBD
T05TVCBDT05USU5VRQorJXRva2VuIEJSRUFLIENBU0UgREVGQVVMVCBGT1IgTkVXIFZBUiBDT05T
VCBDT05USU5VRSBFQUNICiAldG9rZW4gRlVOQ1RJT04gUkVUVVJOIFZPSUQgREVMRVRFCiAldG9r
ZW4gSUYgVEhJUyBETyBXSElMRSBJTiBJTlNUQU5DRU9GIFRZUEVPRgogJXRva2VuIFNXSVRDSCBX
SVRIIFJFU0VSVkVECkBAIC03MzgsOCArNzM5LDIxIEBAIEl0ZXJhdGlvblN0YXRlbWVudDoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgRk9SICcoJyBWQVIg
SURFTlQgSU4gRXhwciAnKScgU3RhdGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyAkJCA9IG5ldyBGb3JJbk5vZGUoKiQ0LCAwLCAkNiwgJDgpOyBEQkcoJCQs
IEAxLCBANyk7IH0KKyAgCiAgIHwgRk9SICcoJyBWQVIgSURFTlQgSW5pdGlhbGl6ZXJOb0luIElO
IEV4cHIgJyknIFN0YXRlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgJCQgPSBuZXcgRm9ySW5Ob2RlKCokNCwgJDUsICQ3LCAkOSk7IERCRygkJCwgQDEsIEA4
KTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICB8IEZPUiBF
QUNIICcoJyBWQVIgSURFTlQgSU4gRXhwciAnKScgU3RhdGVtZW50CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGb3JFYWNoSW5Ob2RlKCokNSwgMCwg
JDcsICQ5KTsgREJHKCQkLCBAMSwgQDkpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCisgIHwgRk9SIEVBQ0ggJygnIExlZnRIYW5kU2lkZUV4cHIgSU4gRXhwciAn
KScgU3RhdGVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlICpuID0gJDQt
Pm5vZGVJbnNpZGVBbGxQYXJlbnMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYoIW4tPmlzTG9jYXRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFlZQUJPUlQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkID0gbmV3IEZvckVhY2hJbk5vZGUobiwgJDYsICQ4KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLCBAMSwg
QDcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KIDsKIAogRXhw
ck9wdDoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9rZXl3b3Jkcy50YWJsZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMva2V5d29yZHMudGFibGUJKHJldmlzaW9uIDI0ODA3KQor
KysgSmF2YVNjcmlwdENvcmUva2pzL2tleXdvcmRzLnRhYmxlCSh3b3JraW5nIGNvcHkpCkBAIC0x
NCw2ICsxNCw3IEBAIGNvbnN0CQlDT05TVAogZGVmYXVsdAkJREVGQVVMVAogZmluYWxseQkJRklO
QUxMWQogZm9yCQlGT1IKK2VhY2ggICAgICAgICAgICBFQUNICiBpbnN0YW5jZW9mCUlOU1RBTkNF
T0YKIG5ldwkJTkVXCiB2YXIJCVZBUgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0
cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5j
cHAJKHJldmlzaW9uIDI0ODA3KQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzMnN0cmluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBsaWJyYXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDIgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAo
QykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAZXlld29uZGVyLmNvbSkKICAqCiAgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC02NTYsNyArNjU3LDggQEAgdm9pZCBGb3JOb2RlOjpzdHJlYW1UbyhT
b3VyY2VTdHJlYW0gJnMpIAogCiB2b2lkIEZvckluTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFt
ICZzKSBjb25zdAogewotICBzIDw8IFNvdXJjZVN0cmVhbTo6RW5kbCA8PCAiZm9yICgiOworICBz
IDw8IFNvdXJjZVN0cmVhbTo6RW5kbCA8PCBnZXRJdGVyYXRvclR5cGVTdHJpbmcoKSA8PCAiICgi
OworICAKICAgaWYgKHZhckRlY2wpCiAgICAgcyA8PCAidmFyICIgPDwgdmFyRGVjbDsKICAgZWxz
ZQpAQCAtNjY2LDYgKzY2OCwxNiBAQCB2b2lkIEZvckluTm9kZTo6c3RyZWFtVG8oU291cmNlU3Ry
ZWFtICZzCiAgICAgPDwgc3RhdGVtZW50IDw8IFNvdXJjZVN0cmVhbTo6VW5pbmRlbnQ7CiB9CiAK
K1VTdHJpbmcgRm9ySW5Ob2RlOjpnZXRJdGVyYXRvclR5cGVTdHJpbmcoKSBjb25zdAoreworICAg
IHJldHVybiAiZm9yIjsKK30KKworVVN0cmluZyBGb3JFYWNoSW5Ob2RlOjpnZXRJdGVyYXRvclR5
cGVTdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiAiZm9yIGVhY2giOworfQorCiB2b2lkIENv
bnRpbnVlTm9kZTo6c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdAogewogICBzIDw8IFNv
dXJjZVN0cmVhbTo6RW5kbCA8PCAiY29udGludWUiOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCShy
ZXZpc2lvbiAyNDgwNykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5
IChwbWtAcG9zdC5jb20pCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMp
IDIwMDcgQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQorICogIENvcHly
aWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAZXlld29uZGVyLmNvbSkKICAq
CiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOTU0LDYgKzE5NTUsMTEgQEAgRm9ySW5Ob2RlOjpGb3JJ
bk5vZGUoY29uc3QgSWRlbnRpZmllciAmaQogICBsZXhwciA9IG5ldyBSZXNvbHZlTm9kZShpZGVu
dCk7CiB9CiAKK0pTVmFsdWUqIEZvckluTm9kZTo6Z2V0SXRlcmF0b3JWYWx1ZSggRXhlY1N0YXRl
KiwgSlNPYmplY3QqIGluVmFsdWUsIGNvbnN0IElkZW50aWZpZXIgbmFtZSApCit7CisgICAgcmV0
dXJuIGpzT3duZWRTdHJpbmcobmFtZS51c3RyaW5nKCkpOworfQorCiAvLyBFQ01BIDEyLjYuNAog
Q29tcGxldGlvbiBGb3JJbk5vZGU6OmV4ZWN1dGUoRXhlY1N0YXRlICpleGVjKQogewpAQCAtMTk4
OCw3ICsxOTk0LDcgQEAgQ29tcGxldGlvbiBGb3JJbk5vZGU6OmV4ZWN1dGUoRXhlY1N0YXRlIAog
ICAgICAgaWYgKCF2LT5oYXNQcm9wZXJ0eShleGVjLCBuYW1lKSkKICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgSlNWYWx1ZSAqc3RyID0ganNPd25lZFN0cmluZyhuYW1lLnVzdHJpbmcoKSk7
CisgICAgICBKU1ZhbHVlICpzdHIgPSBnZXRJdGVyYXRvclZhbHVlKGV4ZWMsdixuYW1lKTsKIAog
ICAgICAgaWYgKGxleHByLT5pc1Jlc29sdmVOb2RlKCkpIHsKICAgICAgICAgY29uc3QgSWRlbnRp
ZmllciAmaWRlbnQgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSAqPihsZXhwci5nZXQoKSktPmlk
ZW50aWZpZXIoKTsKQEAgLTIwNjQsNiArMjA3MCwyMyBAQCB2b2lkIEZvckluTm9kZTo6cHJvY2Vz
c1ZhckRlY2xzKEV4ZWNTdGF0CiAgIHN0YXRlbWVudC0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwog
fQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRm9yRWFjaEluTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0ZvckVhY2hJbk5vZGU6OkZvckVhY2hJ
bk5vZGUoTm9kZSogbCwgTm9kZSogZSwgU3RhdGVtZW50Tm9kZSogcykKKyAgOiBGb3JJbk5vZGUo
bCwgZSwgcyApCit7Cit9CisKK0ZvckVhY2hJbk5vZGU6OkZvckVhY2hJbk5vZGUoY29uc3QgSWRl
bnRpZmllciYgaSwgQXNzaWduRXhwck5vZGUqIGluLCBOb2RlKiBlLCBTdGF0ZW1lbnROb2RlKiBz
KQorICA6IEZvckluTm9kZShpLCBpbiwgZSwgcykKK3sKK30KKworSlNWYWx1ZSogRm9yRWFjaElu
Tm9kZTo6Z2V0SXRlcmF0b3JWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBpblZhbHVl
LCBjb25zdCBJZGVudGlmaWVyIG5hbWUgKQoreworICAgIHJldHVybiBpblZhbHVlLT5nZXQoZXhl
YyxuYW1lKTsKK30KKworCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29udGlu
dWVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBFQ01BIDEyLjcK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5oCShyZXZpc2lvbiAyNDgwNykKKysrIEphdmFTY3JpcHRDb3JlL2tq
cy9ub2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogIENvcHlyaWdodCAo
QykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0
IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQGV5ZXdv
bmRlci5jb20pCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtOTE1LDYgKzkxNiw5IEBAIG5hbWVz
cGFjZSBLSlMgewogICAgIHZpcnR1YWwgQ29tcGxldGlvbiBleGVjdXRlKEV4ZWNTdGF0ZSopIEtK
U19GQVNUX0NBTEw7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUq
KSBLSlNfRkFTVF9DQUxMOwogICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0m
KSBjb25zdCBLSlNfRkFTVF9DQUxMOworICBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBKU1ZhbHVl
KiBnZXRJdGVyYXRvclZhbHVlKCBFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICppblZhbHVlLCBj
b25zdCBJZGVudGlmaWVyIG5hbWUgKSBLSlNfRkFTVF9DQUxMOworICAgIHZpcnR1YWwgVVN0cmlu
ZyBnZXRJdGVyYXRvclR5cGVTdHJpbmcoKSBjb25zdCBLSlNfRkFTVF9DQUxMOwogICBwcml2YXRl
OgogICAgIElkZW50aWZpZXIgaWRlbnQ7CiAgICAgUmVmUHRyPEFzc2lnbkV4cHJOb2RlPiBpbml0
OwpAQCAtOTIzLDYgKzkyNywxNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBSZWZQdHI8VmFyRGVj
bE5vZGU+IHZhckRlY2w7CiAgICAgUmVmUHRyPFN0YXRlbWVudE5vZGU+IHN0YXRlbWVudDsKICAg
fTsKKyAgCisgIGNsYXNzIEZvckVhY2hJbk5vZGUgOiBwdWJsaWMgRm9ySW5Ob2RlIHsKKyAgcHVi
bGljOgorICAgIEZvckVhY2hJbk5vZGUoTm9kZSAqbCwgTm9kZSAqZSwgU3RhdGVtZW50Tm9kZSAq
cykgS0pTX0ZBU1RfQ0FMTDsKKyAgICBGb3JFYWNoSW5Ob2RlKGNvbnN0IElkZW50aWZpZXIgJmks
IEFzc2lnbkV4cHJOb2RlICppbiwgTm9kZSAqZSwgU3RhdGVtZW50Tm9kZSAqcykgS0pTX0ZBU1Rf
Q0FMTDsKKyAgcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgSlNWYWx1ZSogZ2V0SXRlcmF0b3JWYWx1
ZSggRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqaW5WYWx1ZSwgY29uc3QgSWRlbnRpZmllciBu
YW1lICkgS0pTX0ZBU1RfQ0FMTDsKKyAgICB2aXJ0dWFsIFVTdHJpbmcgZ2V0SXRlcmF0b3JUeXBl
U3RyaW5nKCkgY29uc3QgS0pTX0ZBU1RfQ0FMTDsKKyAgfTsKKwogCiAgIGNsYXNzIENvbnRpbnVl
Tm9kZSA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgcHVibGljOgo=
</data>
<flag name="review"
          id="6594"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>