<?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>29005</bug_id>
          
          <creation_ts>2009-09-07 03:36:48 -0700</creation_ts>
          <short_desc>The values of RuntimeArray are not enumerable</short_desc>
          <delta_ts>2009-12-11 07:22:20 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29008</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>oliver</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145123</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-07 03:36:48 -0700</bug_when>
    <thetext>RuntimeArray does not behave like a regular JSArray regarding the listing of its properties. The indices of the array are not enumerated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145124</commentid>
    <comment_count>1</comment_count>
      <attachid>39138</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-07 03:48:35 -0700</bug_when>
    <thetext>Created attachment 39138
patch suggestion

I am not sure how I could do the test for this since I need a RuntimeArray in the runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145145</commentid>
    <comment_count>2</comment_count>
      <attachid>39144</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-07 07:18:51 -0700</bug_when>
    <thetext>Created attachment 39144
patch suggestion

Change the for() loop to follow the coding convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145527</commentid>
    <comment_count>3</comment_count>
      <attachid>39144</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-09-08 14:06:51 -0700</bug_when>
    <thetext>Comment on attachment 39144
patch suggestion

Code looks good.

You can test RuntimeArray by passing an NSArray * from Objective-C to JavaScript. The best place to do that is probably inside DumpRenderTree&apos;s ObjcController.

r- because there&apos;s no regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147505</commentid>
    <comment_count>4</comment_count>
      <attachid>39641</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-16 05:45:39 -0700</bug_when>
    <thetext>Created attachment 39641
patch suggestion

The same patch with a test for Objective-C.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147686</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-16 17:21:24 -0700</bug_when>
    <thetext>Style is wrong here:
 46     virtual void getPropertyNames(ExecState* exec, PropertyNameArray &amp;propertyNames);
(yes, it&apos;s clearly wrong in other parts of the file too.)  No need for either argument name (they don&apos;t add clarity) and the &amp; goes next to the type.

Doesn&apos;t Obj-C transparently convert JS arrays to Obj-C arrays?  Would it make more sense to have a more generic testing method which converted whatever was passed in to Obj-C and then back to a string on output?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147689</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-09-16 17:28:17 -0700</bug_when>
    <thetext>+    for (unsigned i = 0; i &lt; length; ++i) {
+        propertyNames.add(Identifier::from(exec, i));
+    }

This part should not have braces.

 46     virtual void getPropertyNames(ExecState* exec, PropertyNameArray
&amp;propertyNames);

This is similar to what is already used in that file, so maybe it should be changed in a follow-up, clean-up patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147764</commentid>
    <comment_count>7</comment_count>
      <attachid>39685</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-17 01:37:23 -0700</bug_when>
    <thetext>Created attachment 39685
proposed patch

Same patch, same test.
Fixed the code to follow the coding convention (thanks Eric and Kenneth).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147765</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-09-17 01:42:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Doesn&apos;t Obj-C transparently convert JS arrays to Obj-C arrays?  Would it make
&gt; more sense to have a more generic testing method which converted whatever was
&gt; passed in to Obj-C and then back to a string on output?

The NSArray is &quot;converted&quot; to RuntimeArray in convertObjcValueToValue(). The purpose of the test is to use RuntimeArray in a for() loop of Javascript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149559</commentid>
    <comment_count>9</comment_count>
      <attachid>39685</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 17:17:32 -0700</bug_when>
    <thetext>Comment on attachment 39685
proposed patch

I still think we could write a smarter test.  But the code change looks OK to me.  Did you mean to set commit-queue? or do you have other plans for how this should be committed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149706</commentid>
    <comment_count>10</comment_count>
      <attachid>39685</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-24 02:46:20 -0700</bug_when>
    <thetext>Comment on attachment 39685
proposed patch

Schedule for cq, as correctly suggested by Eric :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149712</commentid>
    <comment_count>11</comment_count>
      <attachid>39685</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-24 03:42:54 -0700</bug_when>
    <thetext>Comment on attachment 39685
proposed patch

Clearing flags on attachment: 39685

Committed r48712: &lt;http://trac.webkit.org/changeset/48712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149713</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-24 03:42:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149718</commentid>
    <comment_count>13</comment_count>
      <attachid>39685</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-24 03:57:25 -0700</bug_when>
    <thetext>Comment on attachment 39685
proposed patch

It is incorrect to override getPropertyNames in almost any case.  You should be overriding getOwnPropertyNames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149719</commentid>
    <comment_count>14</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-24 03:59:57 -0700</bug_when>
    <thetext>I rolled this patch out in r48712 due to it being incorrect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149783</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-24 11:11:04 -0700</bug_when>
    <thetext>Thank you oliver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169226</commentid>
    <comment_count>16</comment_count>
      <attachid>44394</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-07 02:50:23 -0800</bug_when>
    <thetext>Created attachment 44394
Patch

Exactly the same patch as before, but use getOwnPropertyNames() instead of qetPropertyNames().

Oliver, could you please describe in which cases qetPropertyNames() is appropriate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169227</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-07 02:55:29 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44394 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169340</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-07 09:40:36 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Oliver, could you please describe in which cases getPropertyNames() is
&gt; appropriate?

I&apos;m not sure this is an entirely pertinent question, but I&apos;ll try to answer.

The getPropertyNames function is a loop that calls getOwnPropertyNames on all the objects in the prototype chain.

To add properties, it would never be good to override getPropertyNames, because it would create properties that you can see when enumerating the entire chain, but not when looking at an individual object with the getOwnPropertyNames code path.

The overrides of getPropertyNames inside the bridge directory in classes like RuntimeObjectImp, CInstance, and QTInstance are almost certainly all indicative of bugs that should be fixed.

The code in RuntimeObjectImp::getPropertyNames should probably be moved to RuntimeObjectImp::getOwnPropertyNames, and in fact the code in the latter looks like it will just cause an infinite loop and stack exhaustion. The trick here is finding a way to test.

Similar with CInstance::getPropertyNames and QtInstance::getPropertyNames.

JSDOMWindow overrides getPropertyNames because it wants to control access to the properties of its prototypes. That’s probably OK. It&apos;s a workaround for the fact that the call to get the prototype inside the getPropertyNames function doesn&apos;t have a convenient hook to allow the object to control access to the prototype.

Long term we might decide that getPropertyNames shouldn&apos;t even be a virtual function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169342</commentid>
    <comment_count>19</comment_count>
      <attachid>44394</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-07 09:42:33 -0800</bug_when>
    <thetext>Comment on attachment 44394
Patch

&gt; +    const unsigned int length = getLength();

On the next line of code you use &quot;unsigned&quot; but here you used &quot;unsigned int&quot;.

Further, you mark this local variable &quot;const&quot; and we don&apos;t do that in WebKit. There are so many that could be marked const, and I don&apos;t think we want to start heading that direction now.

r=me despite this slight strangeness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170157</commentid>
    <comment_count>20</comment_count>
      <attachid>44394</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-09 14:02:00 -0800</bug_when>
    <thetext>Comment on attachment 44394
Patch

Darin has suggested revisions.  I think we should see an update patch if we&apos;re going to cq this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170671</commentid>
    <comment_count>21</comment_count>
      <attachid>44665</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-11 03:58:55 -0800</bug_when>
    <thetext>Created attachment 44665
Patch

Sorry for the delay.
I have updated the patch to change the &quot;unsigned int&quot; to &quot;unsigned&quot; and to remove the &quot;const&quot; keyword.
I have also put getOwnPropertyNames() with the other getOwnPropertyXXX() in the header to group the related functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170673</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 04:03:30 -0800</bug_when>
    <thetext>Attachment 44665 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bridge/runtime_array.cpp:68:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170675</commentid>
    <comment_count>23</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-11 04:05:32 -0800</bug_when>
    <thetext>Thanks Darin for the explanation. I had totally misunderstood the purpose of getPropertyNames().

I will open a bug report for the problem of QtInstance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170680</commentid>
    <comment_count>24</comment_count>
      <attachid>44667</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-11 04:17:53 -0800</bug_when>
    <thetext>Created attachment 44667
Patch

Sorry for the delay.
I have updated the patch to change the &quot;unsigned int&quot; to &quot;unsigned&quot; and to
remove the &quot;const&quot; keyword.
I have also put getOwnPropertyNames() with the other getOwnPropertyXXX() in the
header to group the related functions.

+ removed a \t for my misconfigured XCode...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170682</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 04:19:02 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44667 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170748</commentid>
    <comment_count>26</comment_count>
      <attachid>44667</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-11 07:22:10 -0800</bug_when>
    <thetext>Comment on attachment 44667
Patch

Clearing flags on attachment: 44667

Committed r51985: &lt;http://trac.webkit.org/changeset/51985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170749</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-11 07:22:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39138</attachid>
            <date>2009-09-07 03:48:35 -0700</date>
            <delta_ts>2009-09-07 07:18:51 -0700</delta_ts>
            <desc>patch suggestion</desc>
            <filename>runtime_array_properties.patch</filename>
            <type>text/plain</type>
            <size>1932</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGJmMmM2MS4uZTVlNDI4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOS0wNyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTAwNQorICAgICAgICBUaGUgaW5kaWNlcyBvZiBSdW50aW1lQXJyYXkgc2hv
dWxkIGJlIGVudW1lcmF0ZWQgbGlrZSBmb3IgYSByZWd1bGFyIGFycmF5LiAKKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaDoKKwogMjAwOS0wOS0wNyAgTWljaGFlbCBOb3JkbWFuICA8bWlj
aGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcuLjYyYTJmNjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9BcnJh
eVByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtMTQ1LDQgKzE0NiwxNCBAQCBib29sIFJ1bnRpbWVBcnJheTo6
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQoreworICAgIGNvbnN0IHVuc2lnbmVk
IGludCBsZW5ndGggPSBnZXRMZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJv
bShleGVjLCBpKSk7CisgICAgfQorCisgICAgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBmNjE0
ZjdmLi42YWJiMzY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
KysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1
YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlICpl
eGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7Cisg
ICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSAmcHJvcGVydHlOYW1lcyk7CiAgICAgCiAgICAgdmlydHVhbCBjb25zdCBDbGFz
c0luZm8gKmNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39144</attachid>
            <date>2009-09-07 07:18:51 -0700</date>
            <delta_ts>2009-09-16 05:45:39 -0700</delta_ts>
            <desc>patch suggestion</desc>
            <filename>runtime_array_properties.patch</filename>
            <type>text/plain</type>
            <size>1923</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGJmMmM2MS4uZTVlNDI4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOS0wNyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTAwNQorICAgICAgICBUaGUgaW5kaWNlcyBvZiBSdW50aW1lQXJyYXkgc2hv
dWxkIGJlIGVudW1lcmF0ZWQgbGlrZSBmb3IgYSByZWd1bGFyIGFycmF5LiAKKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaDoKKwogMjAwOS0wOS0wNyAgTWljaGFlbCBOb3JkbWFuICA8bWlj
aGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcuLjYyYTJmNjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9BcnJh
eVByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtMTQ1LDQgKzE0NiwxNCBAQCBib29sIFJ1bnRpbWVBcnJheTo6
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQoreworICAgIGNvbnN0IHVuc2lnbmVk
IGludCBsZW5ndGggPSBnZXRMZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20o
ZXhlYywgaSkpOworCisgICAgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVy
dHlOYW1lcyk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBmNjE0ZjdmLi42YWJi
MzY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBjb25z
dCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CisgICAgdmlydHVh
bCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSAmcHJvcGVydHlOYW1lcyk7CiAgICAgCiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8gKmNs
YXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KICAgICAK
</data>
<flag name="review"
          id="20275"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39641</attachid>
            <date>2009-09-16 05:45:39 -0700</date>
            <delta_ts>2009-09-17 01:37:23 -0700</delta_ts>
            <desc>patch suggestion</desc>
            <filename>runtime_array_properties_with_test.patch</filename>
            <type>text/plain</type>
            <size>6533</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MGQzMzBlLi41YjEyMGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDkt
MTYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW5kaWNlcyBv
ZiBSdW50aW1lQXJyYXkgc2hvdWxkIGJlIGVudW1lcmF0ZWQgbGlrZSBmb3IgYSByZWd1bGFyIGFy
cmF5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjkw
MDUKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWw6CisKIDIwMDktMDktMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKaW5kZXggMTAzY2M2ZC4uNzgyMDU1MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1v
YmpjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CkBAIC0xOTIsNCArMTkyLDUgQEAgUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ05TQ0ZOdW1iZXInKSBpcyAnbnVtYmVyJwogUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ05TQ0ZTdHJpbmcnKSBpcyAnc3RyaW5nJwogUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ1dlYlNjcmlwdE9iamVjdCcpIGlzICdvYmplY3Qn
CiBQQVNTIG9iakNPYmplY3RPZkNsYXNzKCdOU0FycmF5JykgaW5zdGFuY2VvZiBBcnJheSBpcyB0
cnVlCitQQVNTIGNvbmNhdGVuYXRlQXJyYXkob2JqQ0FycmF5T2ZTdHJpbmcoKSkgaXMgJ29uZXR3
b3RocmVlJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCmluZGV4IGMyOWMyNmQuLjBjZGI3NTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNz
ZXMtb2JqYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy5odG1sCkBAIC0zNCw2ICszNCwyMSBAQCBmdW5jdGlvbiBvYmpDT2Jq
ZWN0T2ZDbGFzcyhuYW1lKQogICAgIHJldHVybiBvYmpDQ29udHJvbGxlci5vYmplY3RPZkNsYXNz
KG5hbWUpOwogfQogCitmdW5jdGlvbiBvYmpDQXJyYXlPZlN0cmluZygpCit7CisgICAgaWYgKCF3
aW5kb3cub2JqQ0NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiAib25seSB3b3JrcyB1bmRlciBE
dW1wUmVuZGVyVHJlZSI7CisgICAgcmV0dXJuIG9iakNDb250cm9sbGVyLmFycmF5T2ZTdHJpbmco
KTsKK30KKworZnVuY3Rpb24gY29uY2F0ZW5hdGVBcnJheShhcnJheSkKK3sKKyAgICB2YXIgcmVz
dWx0ID0gJyc7CisgICAgZm9yIChpIGluIGFycmF5KQorICAgICAgICByZXN1bHQgKz0gYXJyYXlb
aV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogZnVuY3Rpb24gdGFnT2JqQ1dyYXBwZXJDbGFz
cyh0YWdOYW1lKQogewogICAgIHJldHVybiBvYmpDV3JhcHBlckNsYXNzKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQodGFnTmFtZSkpOwpAQCAtMjcyLDYgKzI4Nyw4IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogICAgIHNob3VsZEJlKCJ0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ1dlYlNjcmlwdE9iamVj
dCcpIiwgIidvYmplY3QnIik7CiAgICAgc2hvdWxkQmVUcnVlKCJvYmpDT2JqZWN0T2ZDbGFzcygn
TlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkiKTsKIAorICAgIHNob3VsZEJlKCJjb25jYXRlbmF0
ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIiwgIidvbmV0d290aHJlZSciKTsKKwogICAgIC8v
IE5vdCB5ZXQgdGVzdGVkOgogCiAgICAgLy8gQ1NTQ2hhcnNldFJ1bGUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIxZjNiOC4uZTAwZGEz
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
LnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBpbmRpY2VzIG9mIFJ1bnRpbWVBcnJheSBzaG91bGQgYmUgZW51bWVy
YXRlZCBsaWtlIGZvciBhIHJlZ3VsYXIgYXJyYXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAwNQorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmdldFByb3BlcnR5TmFtZXMp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisKIDIwMDktMDktMTUgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcu
LmE1ZjJkOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisr
KyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJy
b3IuaD4KICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlIDxydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNDUsNCAr
MTQ2LDE0IEBAIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVudGltZUFycmF5OjpnZXRQ
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCit7CisgICAgY29uc3QgdW5zaWduZWQgaW50IGxlbmd0aCA9IGdldExlbmd0aCgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKKyAgICB9CisKKyAgICBK
U09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oCmluZGV4IGY2MTRmN2YuLjZhYmIzNjggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3Bl
cnR5TmFtZSk7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5ICZwcm9wZXJ0eU5hbWVzKTsK
ICAgICAKICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyAqY2xhc3NJbmZvKCkgY29uc3QgeyBy
ZXR1cm4gJnNfaW5mbzsgfQogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM0NTE4NDEuLmY4MjIxMTEgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAwOS0wOS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBv
dWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAwNQor
ICAgICAgICBUaGUgaW5kaWNlcyBvZiBSdW50aW1lQXJyYXkgc2hvdWxkIGJlIGVudW1lcmF0ZWQg
bGlrZSBmb3IgYSByZWd1bGFyIGFycmF5LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L09iakNDb250cm9sbGVyLm06CisgICAgICAgICgrW09iakNDb250cm9sbGVyIGlzU2VsZWN0b3JF
eGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6CisgICAgICAgICgrW09iakNDb250cm9sbGVyIHdlYlNj
cmlwdE5hbWVGb3JTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bT2JqQ0NvbnRyb2xsZXIgYXJyYXlP
ZlN0cmluZ10pOgorCiAyMDA5LTA5LTE0ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29udHJvbGxlci5tIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9sbGVyLm0KaW5kZXggZTBkNjYzZS4uZDdjYzZh
MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9s
bGVyLm0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9sbGVy
Lm0KQEAgLTU4LDYgKzU4LDcgQEAgc3RhdGljIHZvaWQqIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9p
ZCogYXJnKQogICAgIGlmICgwCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGNsYXNzTmFtZU9mOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Iob2Jq
ZWN0T2ZDbGFzczopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFycmF5
T2ZTdHJpbmcpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGlkZW50aXR5
SXNFcXVhbDo6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihsb25nTG9u
Z1JvdW5kVHJpcDopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHVuc2ln
bmVkTG9uZ0xvbmdSb3VuZFRyaXA6KQpAQCAtNzcsNiArNzgsOCBAQCBzdGF0aWMgdm9pZCogcnVu
SmF2YVNjcmlwdFRocmVhZCh2b2lkKiBhcmcpCiAgICAgICAgIHJldHVybiBAImNsYXNzTmFtZSI7
CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Iob2JqZWN0T2ZDbGFzczopKQogICAgICAg
ICByZXR1cm4gQCJvYmplY3RPZkNsYXNzIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rv
cihhcnJheU9mU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIEAiYXJyYXlPZlN0cmluZyI7CiAgICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaWRlbnRpdHlJc0VxdWFsOjopKQogICAgICAgICBy
ZXR1cm4gQCJpZGVudGl0eUlzRXF1YWwiOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGxvbmdMb25nUm91bmRUcmlwOikpCkBAIC0xMjIsNiArMTI1LDE2IEBAIHN0YXRpYyB2b2lkKiBy
dW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqIGFyZykKICAgICByZXR1cm4gbmlsOwogfQogCistIChO
U0FycmF5ICopYXJyYXlPZlN0cmluZworeworICAgIE5TU3RyaW5nICpzdHJpbmdzWzNdOworICAg
IHN0cmluZ3NbMF0gPSBAIm9uZSI7CisgICAgc3RyaW5nc1sxXSA9IEAidHdvIjsKKyAgICBzdHJp
bmdzWzJdID0gQCJ0aHJlZSI7CisgICAgTlNBcnJheSAqYXJyYXkgPSBbTlNBcnJheSBhcnJheVdp
dGhPYmplY3RzOnN0cmluZ3MgY291bnQ6M107CisgICAgcmV0dXJuIGFycmF5OworfQorCiAtIChC
T09MKWlkZW50aXR5SXNFcXVhbDooV2ViU2NyaXB0T2JqZWN0ICopYSA6KFdlYlNjcmlwdE9iamVj
dCAqKWIKIHsKICAgICBpZiAoW2EgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSAmJiBb
YiBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39685</attachid>
            <date>2009-09-17 01:37:23 -0700</date>
            <delta_ts>2009-12-07 02:50:23 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>runtime_array_properties_with_test.patch</filename>
            <type>text/plain</type>
            <size>6505</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MGQzMzBlLi41YjEyMGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDkt
MTYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW5kaWNlcyBv
ZiBSdW50aW1lQXJyYXkgc2hvdWxkIGJlIGVudW1lcmF0ZWQgbGlrZSBmb3IgYSByZWd1bGFyIGFy
cmF5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjkw
MDUKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWw6CisKIDIwMDktMDktMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1vYmpj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVy
LWNsYXNzZXMtb2JqYy1leHBlY3RlZC50eHQKaW5kZXggMTAzY2M2ZC4uNzgyMDU1MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXItY2xhc3Nlcy1v
YmpjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CkBAIC0xOTIsNCArMTkyLDUgQEAgUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ05TQ0ZOdW1iZXInKSBpcyAnbnVtYmVyJwogUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ05TQ0ZTdHJpbmcnKSBpcyAnc3RyaW5nJwogUEFT
UyB0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ1dlYlNjcmlwdE9iamVjdCcpIGlzICdvYmplY3Qn
CiBQQVNTIG9iakNPYmplY3RPZkNsYXNzKCdOU0FycmF5JykgaW5zdGFuY2VvZiBBcnJheSBpcyB0
cnVlCitQQVNTIGNvbmNhdGVuYXRlQXJyYXkob2JqQ0FycmF5T2ZTdHJpbmcoKSkgaXMgJ29uZXR3
b3RocmVlJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20v
d3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2RvbS93cmFwcGVyLWNsYXNzZXMtb2JqYy5odG1sCmluZGV4IGMyOWMyNmQuLjBjZGI3NTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNz
ZXMtb2JqYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFw
cGVyLWNsYXNzZXMtb2JqYy5odG1sCkBAIC0zNCw2ICszNCwyMSBAQCBmdW5jdGlvbiBvYmpDT2Jq
ZWN0T2ZDbGFzcyhuYW1lKQogICAgIHJldHVybiBvYmpDQ29udHJvbGxlci5vYmplY3RPZkNsYXNz
KG5hbWUpOwogfQogCitmdW5jdGlvbiBvYmpDQXJyYXlPZlN0cmluZygpCit7CisgICAgaWYgKCF3
aW5kb3cub2JqQ0NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiAib25seSB3b3JrcyB1bmRlciBE
dW1wUmVuZGVyVHJlZSI7CisgICAgcmV0dXJuIG9iakNDb250cm9sbGVyLmFycmF5T2ZTdHJpbmco
KTsKK30KKworZnVuY3Rpb24gY29uY2F0ZW5hdGVBcnJheShhcnJheSkKK3sKKyAgICB2YXIgcmVz
dWx0ID0gJyc7CisgICAgZm9yIChpIGluIGFycmF5KQorICAgICAgICByZXN1bHQgKz0gYXJyYXlb
aV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogZnVuY3Rpb24gdGFnT2JqQ1dyYXBwZXJDbGFz
cyh0YWdOYW1lKQogewogICAgIHJldHVybiBvYmpDV3JhcHBlckNsYXNzKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQodGFnTmFtZSkpOwpAQCAtMjcyLDYgKzI4Nyw4IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogICAgIHNob3VsZEJlKCJ0eXBlb2Ygb2JqQ09iamVjdE9mQ2xhc3MoJ1dlYlNjcmlwdE9iamVj
dCcpIiwgIidvYmplY3QnIik7CiAgICAgc2hvdWxkQmVUcnVlKCJvYmpDT2JqZWN0T2ZDbGFzcygn
TlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkiKTsKIAorICAgIHNob3VsZEJlKCJjb25jYXRlbmF0
ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIiwgIidvbmV0d290aHJlZSciKTsKKwogICAgIC8v
IE5vdCB5ZXQgdGVzdGVkOgogCiAgICAgLy8gQ1NTQ2hhcnNldFJ1bGUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIxZjNiOC4uZTAwZGEz
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAwOS0wOS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
LnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBpbmRpY2VzIG9mIFJ1bnRpbWVBcnJheSBzaG91bGQgYmUgZW51bWVy
YXRlZCBsaWtlIGZvciBhIHJlZ3VsYXIgYXJyYXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAwNQorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmdldFByb3BlcnR5TmFtZXMp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisKIDIwMDktMDktMTUgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcu
LjYxZmJlMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisr
KyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDUsNCAr
MTQ2LDEzIEBAIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVudGltZUFycmF5OjpnZXRQ
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCit7CisgICAgY29uc3QgdW5zaWduZWQgaW50IGxlbmd0aCA9IGdldExlbmd0aCgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgcHJvcGVy
dHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSk7CisKKyAgICBKU09iamVjdDo6
Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5oCmluZGV4IGY2MTRmN2YuLjRkNjhiNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
QEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSk7
CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOwogICAgIAogICAgIHZpcnR1YWwgY29uc3QgQ2xh
c3NJbmZvICpjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9CiAgICAgCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggMzQ1MTg0MS4uZjgyMjExMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA5LTE2ICBC
ZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1CisgICAgICAgIFRoZSBpbmRpY2VzIG9mIFJ1bnRp
bWVBcnJheSBzaG91bGQgYmUgZW51bWVyYXRlZCBsaWtlIGZvciBhIHJlZ3VsYXIgYXJyYXkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubToKKyAgICAgICAg
KCtbT2JqQ0NvbnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAg
ICAgICAgKCtbT2JqQ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOl0pOgorICAg
ICAgICAoLVtPYmpDQ29udHJvbGxlciBhcnJheU9mU3RyaW5nXSk6CisKIDIwMDktMDktMTQgIENo
cmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09i
akNDb250cm9sbGVyLm0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRy
b2xsZXIubQppbmRleCBlMGQ2NjNlLi5kN2NjNmEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQpAQCAtNTgsNiArNTgsNyBAQCBzdGF0aWMg
dm9pZCogcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKiBhcmcpCiAgICAgaWYgKDAKICAgICAgICAg
ICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY2xhc3NOYW1lT2Y6KQogICAgICAgICAgICAg
fHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihvYmplY3RPZkNsYXNzOikKKyAgICAgICAgICAgIHx8
IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYXJyYXlPZlN0cmluZykKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoaWRlbnRpdHlJc0VxdWFsOjopCiAgICAgICAgICAgICB8fCBh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKGxvbmdMb25nUm91bmRUcmlwOikKICAgICAgICAgICAgIHx8
IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodW5zaWduZWRMb25nTG9uZ1JvdW5kVHJpcDopCkBAIC03
Nyw2ICs3OCw4IEBAIHN0YXRpYyB2b2lkKiBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqIGFyZykK
ICAgICAgICAgcmV0dXJuIEAiY2xhc3NOYW1lIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxl
Y3RvcihvYmplY3RPZkNsYXNzOikpCiAgICAgICAgIHJldHVybiBAIm9iamVjdE9mQ2xhc3MiOwor
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFycmF5T2ZTdHJpbmcpKQorICAgICAgICBy
ZXR1cm4gQCJhcnJheU9mU3RyaW5nIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihp
ZGVudGl0eUlzRXF1YWw6OikpCiAgICAgICAgIHJldHVybiBAImlkZW50aXR5SXNFcXVhbCI7CiAg
ICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobG9uZ0xvbmdSb3VuZFRyaXA6KSkKQEAgLTEy
Miw2ICsxMjUsMTYgQEAgc3RhdGljIHZvaWQqIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCogYXJn
KQogICAgIHJldHVybiBuaWw7CiB9CiAKKy0gKE5TQXJyYXkgKilhcnJheU9mU3RyaW5nCit7Cisg
ICAgTlNTdHJpbmcgKnN0cmluZ3NbM107CisgICAgc3RyaW5nc1swXSA9IEAib25lIjsKKyAgICBz
dHJpbmdzWzFdID0gQCJ0d28iOworICAgIHN0cmluZ3NbMl0gPSBAInRocmVlIjsKKyAgICBOU0Fy
cmF5ICphcnJheSA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6c3RyaW5ncyBjb3VudDozXTsK
KyAgICByZXR1cm4gYXJyYXk7Cit9CisKIC0gKEJPT0wpaWRlbnRpdHlJc0VxdWFsOihXZWJTY3Jp
cHRPYmplY3QgKilhIDooV2ViU2NyaXB0T2JqZWN0ICopYgogewogICAgIGlmIChbYSBpc0tpbmRP
ZkNsYXNzOltOU1N0cmluZyBjbGFzc11dICYmIFtiIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pCg==
</data>
<flag name="review"
          id="21232"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44394</attachid>
            <date>2009-12-07 02:50:23 -0800</date>
            <delta_ts>2009-12-11 03:58:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>runtime_array_properties_with_test.patch</filename>
            <type>text/plain</type>
            <size>6594</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmIyZWMwLi5mZmUxMTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdmFsdWVzIG9m
IFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1CisKKyAgICAgICAgVGhlIGluZGljZXMgb2Yg
UnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJhdGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJh
eS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWw6CisKIDIwMDktMTItMDUgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBl
ci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IDEwM2NjNmQuLjc4MjA1NTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
b2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMTkyLDQgKzE5Miw1IEBAIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGTnVtYmVyJykgaXMgJ251bWJlcicKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGU3RyaW5nJykgaXMgJ3N0cmluZycKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmplY3QnKSBpcyAnb2JqZWN0
JwogUEFTUyBvYmpDT2JqZWN0T2ZDbGFzcygnTlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkgaXMg
dHJ1ZQorUEFTUyBjb25jYXRlbmF0ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIGlzICdvbmV0
d290aHJlZScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCBjMjljMjZkLi4wY2RiNzU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFz
c2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMzQsNiArMzQsMjEgQEAgZnVuY3Rpb24gb2JqQ09i
amVjdE9mQ2xhc3MobmFtZSkKICAgICByZXR1cm4gb2JqQ0NvbnRyb2xsZXIub2JqZWN0T2ZDbGFz
cyhuYW1lKTsKIH0KIAorZnVuY3Rpb24gb2JqQ0FycmF5T2ZTdHJpbmcoKQoreworICAgIGlmICgh
d2luZG93Lm9iakNDb250cm9sbGVyKQorICAgICAgICByZXR1cm4gIm9ubHkgd29ya3MgdW5kZXIg
RHVtcFJlbmRlclRyZWUiOworICAgIHJldHVybiBvYmpDQ29udHJvbGxlci5hcnJheU9mU3RyaW5n
KCk7Cit9CisKK2Z1bmN0aW9uIGNvbmNhdGVuYXRlQXJyYXkoYXJyYXkpCit7CisgICAgdmFyIHJl
c3VsdCA9ICcnOworICAgIGZvciAoaSBpbiBhcnJheSkKKyAgICAgICAgcmVzdWx0ICs9IGFycmF5
W2ldOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGZ1bmN0aW9uIHRhZ09iakNXcmFwcGVyQ2xh
c3ModGFnTmFtZSkKIHsKICAgICByZXR1cm4gb2JqQ1dyYXBwZXJDbGFzcyhkb2N1bWVudC5jcmVh
dGVFbGVtZW50KHRhZ05hbWUpKTsKQEAgLTI3Miw2ICsyODcsOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICBzaG91bGRCZSgidHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmpl
Y3QnKSIsICInb2JqZWN0JyIpOwogICAgIHNob3VsZEJlVHJ1ZSgib2JqQ09iamVjdE9mQ2xhc3Mo
J05TQXJyYXknKSBpbnN0YW5jZW9mIEFycmF5Iik7CiAKKyAgICBzaG91bGRCZSgiY29uY2F0ZW5h
dGVBcnJheShvYmpDQXJyYXlPZlN0cmluZygpKSIsICInb25ldHdvdGhyZWUnIik7CisKICAgICAv
LyBOb3QgeWV0IHRlc3RlZDoKIAogICAgIC8vIENTU0NoYXJzZXRSdWxlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgyZjUyODUuLmU3YjY3
NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgdmFsdWVzIG9mIFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFi
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1
CisKKyAgICAgICAgVGhlIGluZGljZXMgb2YgUnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJh
dGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJheS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorCiAyMDA5LTEyLTA2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcuLmIx
NTQ3YzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBi
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDUsNCArMTQ2
LDEzIEBAIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNp
Z25lZCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVudGltZUFycmF5OjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCit7CisgICAgY29uc3QgdW5zaWduZWQgaW50IGxlbmd0aCA9IGdldExlbmd0aCgpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgcHJvcGVy
dHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSk7CisKKyAgICBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCmluZGV4IDEyMThiOGMuLjZhY2QzODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFt
ZSk7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgdW5z
aWduZWQgcHJvcGVydHlOYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOwogICAgIAogICAgIHZpcnR1YWwgY29u
c3QgQ2xhc3NJbmZvICpjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9CiAgICAg
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKaW5kZXggOTcyMDNkZS4uODRkYmIzMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTEy
LTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHZhbHVlcyBv
ZiBSdW50aW1lQXJyYXkgYXJlIG5vdCBlbnVtZXJhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAwNQorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL09iakNDb250cm9sbGVyLm06CisgICAgICAgICgrW09iakNDb250cm9sbGVyIGlzU2Vs
ZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6CisgICAgICAgICgrW09iakNDb250cm9sbGVy
IHdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bT2JqQ0NvbnRyb2xsZXIg
YXJyYXlPZlN0cmluZ10pOgorCiAyMDA5LTEyLTA1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubSBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29udHJvbGxlci5tCmluZGV4IGUwZDY2M2UuLmQ3
Y2M2YTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29u
dHJvbGxlci5tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29udHJv
bGxlci5tCkBAIC01OCw2ICs1OCw3IEBAIHN0YXRpYyB2b2lkKiBydW5KYXZhU2NyaXB0VGhyZWFk
KHZvaWQqIGFyZykKICAgICBpZiAoMAogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxl
Y3RvcihjbGFzc05hbWVPZjopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KG9iamVjdE9mQ2xhc3M6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihh
cnJheU9mU3RyaW5nKQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihpZGVu
dGl0eUlzRXF1YWw6OikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobG9u
Z0xvbmdSb3VuZFRyaXA6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih1
bnNpZ25lZExvbmdMb25nUm91bmRUcmlwOikKQEAgLTc3LDYgKzc4LDggQEAgc3RhdGljIHZvaWQq
IHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCogYXJnKQogICAgICAgICByZXR1cm4gQCJjbGFzc05h
bWUiOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG9iamVjdE9mQ2xhc3M6KSkKICAg
ICAgICAgcmV0dXJuIEAib2JqZWN0T2ZDbGFzcyI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IoYXJyYXlPZlN0cmluZykpCisgICAgICAgIHJldHVybiBAImFycmF5T2ZTdHJpbmciOwog
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGlkZW50aXR5SXNFcXVhbDo6KSkKICAgICAg
ICAgcmV0dXJuIEAiaWRlbnRpdHlJc0VxdWFsIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxl
Y3Rvcihsb25nTG9uZ1JvdW5kVHJpcDopKQpAQCAtMTIyLDYgKzEyNSwxNiBAQCBzdGF0aWMgdm9p
ZCogcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKiBhcmcpCiAgICAgcmV0dXJuIG5pbDsKIH0KIAor
LSAoTlNBcnJheSAqKWFycmF5T2ZTdHJpbmcKK3sKKyAgICBOU1N0cmluZyAqc3RyaW5nc1szXTsK
KyAgICBzdHJpbmdzWzBdID0gQCJvbmUiOworICAgIHN0cmluZ3NbMV0gPSBAInR3byI7CisgICAg
c3RyaW5nc1syXSA9IEAidGhyZWUiOworICAgIE5TQXJyYXkgKmFycmF5ID0gW05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0czpzdHJpbmdzIGNvdW50OjNdOworICAgIHJldHVybiBhcnJheTsKK30KKwog
LSAoQk9PTClpZGVudGl0eUlzRXF1YWw6KFdlYlNjcmlwdE9iamVjdCAqKWEgOihXZWJTY3JpcHRP
YmplY3QgKiliCiB7CiAgICAgaWYgKFthIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0g
JiYgW2IgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkK
</data>
<flag name="review"
          id="26233"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="26234"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44665</attachid>
            <date>2009-12-11 03:58:55 -0800</date>
            <delta_ts>2009-12-11 04:17:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>runtime_array_properties_with_test.patch</filename>
            <type>text/plain</type>
            <size>6953</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmIyZWMwLi5mZmUxMTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdmFsdWVzIG9m
IFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1CisKKyAgICAgICAgVGhlIGluZGljZXMgb2Yg
UnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJhdGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJh
eS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWw6CisKIDIwMDktMTItMDUgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBl
ci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IDEwM2NjNmQuLjc4MjA1NTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
b2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMTkyLDQgKzE5Miw1IEBAIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGTnVtYmVyJykgaXMgJ251bWJlcicKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGU3RyaW5nJykgaXMgJ3N0cmluZycKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmplY3QnKSBpcyAnb2JqZWN0
JwogUEFTUyBvYmpDT2JqZWN0T2ZDbGFzcygnTlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkgaXMg
dHJ1ZQorUEFTUyBjb25jYXRlbmF0ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIGlzICdvbmV0
d290aHJlZScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCBjMjljMjZkLi4wY2RiNzU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFz
c2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMzQsNiArMzQsMjEgQEAgZnVuY3Rpb24gb2JqQ09i
amVjdE9mQ2xhc3MobmFtZSkKICAgICByZXR1cm4gb2JqQ0NvbnRyb2xsZXIub2JqZWN0T2ZDbGFz
cyhuYW1lKTsKIH0KIAorZnVuY3Rpb24gb2JqQ0FycmF5T2ZTdHJpbmcoKQoreworICAgIGlmICgh
d2luZG93Lm9iakNDb250cm9sbGVyKQorICAgICAgICByZXR1cm4gIm9ubHkgd29ya3MgdW5kZXIg
RHVtcFJlbmRlclRyZWUiOworICAgIHJldHVybiBvYmpDQ29udHJvbGxlci5hcnJheU9mU3RyaW5n
KCk7Cit9CisKK2Z1bmN0aW9uIGNvbmNhdGVuYXRlQXJyYXkoYXJyYXkpCit7CisgICAgdmFyIHJl
c3VsdCA9ICcnOworICAgIGZvciAoaSBpbiBhcnJheSkKKyAgICAgICAgcmVzdWx0ICs9IGFycmF5
W2ldOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGZ1bmN0aW9uIHRhZ09iakNXcmFwcGVyQ2xh
c3ModGFnTmFtZSkKIHsKICAgICByZXR1cm4gb2JqQ1dyYXBwZXJDbGFzcyhkb2N1bWVudC5jcmVh
dGVFbGVtZW50KHRhZ05hbWUpKTsKQEAgLTI3Miw2ICsyODcsOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICBzaG91bGRCZSgidHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmpl
Y3QnKSIsICInb2JqZWN0JyIpOwogICAgIHNob3VsZEJlVHJ1ZSgib2JqQ09iamVjdE9mQ2xhc3Mo
J05TQXJyYXknKSBpbnN0YW5jZW9mIEFycmF5Iik7CiAKKyAgICBzaG91bGRCZSgiY29uY2F0ZW5h
dGVBcnJheShvYmpDQXJyYXlPZlN0cmluZygpKSIsICInb25ldHdvdGhyZWUnIik7CisKICAgICAv
LyBOb3QgeWV0IHRlc3RlZDoKIAogICAgIC8vIENTU0NoYXJzZXRSdWxlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgyZjUyODUuLmU3YjY3
NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgdmFsdWVzIG9mIFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFi
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1
CisKKyAgICAgICAgVGhlIGluZGljZXMgb2YgUnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJh
dGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJheS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorCiAyMDA5LTEyLTA2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcuLjUy
MGIzODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBi
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01Niw2ICs1Nywx
NSBAQCBKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcAogICAgIHJldHVybiB0aGlzT2JqLT5nZXRDb25j
cmV0ZUFycmF5KCktPnZhbHVlQXQoZXhlYywgc2xvdC5pbmRleCgpKTsKIH0KIAordm9pZCBSdW50
aW1lQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBnZXRMZW5n
dGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOworCisgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7Cit9CisJCiBi
b29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmgKaW5kZXggMTIxOGI4Yy4uOTk0MjVlZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaApAQCAtMzQsNyArMzQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFJ1bnRpbWVBcnJh
eSA6IHB1YmxpYyBKU09iamVjdCB7CiBwdWJsaWM6CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0
ZSosIEJpbmRpbmdzOjpBcnJheSopOwotICAgIAorCisgICAgdmlydHVhbCB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUgKiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dl
YktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5NzIwM2RlLi44NGRiYjMwIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMDktMTItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWlu
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgdmFsdWVzIG9mIFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFibGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1CisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubToKKyAgICAgICAgKCtbT2Jq
Q0NvbnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAgICAgICAg
KCtbT2JqQ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOl0pOgorICAgICAgICAo
LVtPYmpDQ29udHJvbGxlciBhcnJheU9mU3RyaW5nXSk6CisKIDIwMDktMTItMDUgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29udHJv
bGxlci5tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9sbGVyLm0K
aW5kZXggZTBkNjYzZS4uZDdjYzZhMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL09iakNDb250cm9sbGVyLm0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL09iakNDb250cm9sbGVyLm0KQEAgLTU4LDYgKzU4LDcgQEAgc3RhdGljIHZvaWQqIHJ1
bkphdmFTY3JpcHRUaHJlYWQodm9pZCogYXJnKQogICAgIGlmICgwCiAgICAgICAgICAgICB8fCBh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNsYXNzTmFtZU9mOikKICAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3Iob2JqZWN0T2ZDbGFzczopCisgICAgICAgICAgICB8fCBhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGFycmF5T2ZTdHJpbmcpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKGlkZW50aXR5SXNFcXVhbDo6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9y
ID09IEBzZWxlY3Rvcihsb25nTG9uZ1JvdW5kVHJpcDopCiAgICAgICAgICAgICB8fCBhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKHVuc2lnbmVkTG9uZ0xvbmdSb3VuZFRyaXA6KQpAQCAtNzcsNiArNzgs
OCBAQCBzdGF0aWMgdm9pZCogcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKiBhcmcpCiAgICAgICAg
IHJldHVybiBAImNsYXNzTmFtZSI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Iob2Jq
ZWN0T2ZDbGFzczopKQogICAgICAgICByZXR1cm4gQCJvYmplY3RPZkNsYXNzIjsKKyAgICBpZiAo
YVNlbGVjdG9yID09IEBzZWxlY3RvcihhcnJheU9mU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIEAi
YXJyYXlPZlN0cmluZyI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaWRlbnRpdHlJ
c0VxdWFsOjopKQogICAgICAgICByZXR1cm4gQCJpZGVudGl0eUlzRXF1YWwiOwogICAgIGlmIChh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKGxvbmdMb25nUm91bmRUcmlwOikpCkBAIC0xMjIsNiArMTI1
LDE2IEBAIHN0YXRpYyB2b2lkKiBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqIGFyZykKICAgICBy
ZXR1cm4gbmlsOwogfQogCistIChOU0FycmF5ICopYXJyYXlPZlN0cmluZworeworICAgIE5TU3Ry
aW5nICpzdHJpbmdzWzNdOworICAgIHN0cmluZ3NbMF0gPSBAIm9uZSI7CisgICAgc3RyaW5nc1sx
XSA9IEAidHdvIjsKKyAgICBzdHJpbmdzWzJdID0gQCJ0aHJlZSI7CisgICAgTlNBcnJheSAqYXJy
YXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOnN0cmluZ3MgY291bnQ6M107CisgICAgcmV0
dXJuIGFycmF5OworfQorCiAtIChCT09MKWlkZW50aXR5SXNFcXVhbDooV2ViU2NyaXB0T2JqZWN0
ICopYSA6KFdlYlNjcmlwdE9iamVjdCAqKWIKIHsKICAgICBpZiAoW2EgaXNLaW5kT2ZDbGFzczpb
TlNTdHJpbmcgY2xhc3NdXSAmJiBbYiBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44667</attachid>
            <date>2009-12-11 04:17:53 -0800</date>
            <delta_ts>2009-12-11 07:22:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>runtime_array_properties_with_test.patch</filename>
            <type>text/plain</type>
            <size>6952</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYmIyZWMwLi5mZmUxMTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdmFsdWVzIG9m
IFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1CisKKyAgICAgICAgVGhlIGluZGljZXMgb2Yg
UnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJhdGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJh
eS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL3dyYXBwZXIt
Y2xhc3Nlcy1vYmpjLmh0bWw6CisKIDIwMDktMTItMDUgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtb2Jq
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBl
ci1jbGFzc2VzLW9iamMtZXhwZWN0ZWQudHh0CmluZGV4IDEwM2NjNmQuLjc4MjA1NTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMt
b2JqYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLWV4cGVjdGVkLnR4dApAQCAtMTkyLDQgKzE5Miw1IEBAIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGTnVtYmVyJykgaXMgJ251bWJlcicKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdOU0NGU3RyaW5nJykgaXMgJ3N0cmluZycKIFBB
U1MgdHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmplY3QnKSBpcyAnb2JqZWN0
JwogUEFTUyBvYmpDT2JqZWN0T2ZDbGFzcygnTlNBcnJheScpIGluc3RhbmNlb2YgQXJyYXkgaXMg
dHJ1ZQorUEFTUyBjb25jYXRlbmF0ZUFycmF5KG9iakNBcnJheU9mU3RyaW5nKCkpIGlzICdvbmV0
d290aHJlZScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9t
L3dyYXBwZXItY2xhc3Nlcy1vYmpjLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9kb20vd3JhcHBlci1jbGFzc2VzLW9iamMuaHRtbAppbmRleCBjMjljMjZkLi4wY2RiNzU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3JhcHBlci1jbGFz
c2VzLW9iamMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9kb20vd3Jh
cHBlci1jbGFzc2VzLW9iamMuaHRtbApAQCAtMzQsNiArMzQsMjEgQEAgZnVuY3Rpb24gb2JqQ09i
amVjdE9mQ2xhc3MobmFtZSkKICAgICByZXR1cm4gb2JqQ0NvbnRyb2xsZXIub2JqZWN0T2ZDbGFz
cyhuYW1lKTsKIH0KIAorZnVuY3Rpb24gb2JqQ0FycmF5T2ZTdHJpbmcoKQoreworICAgIGlmICgh
d2luZG93Lm9iakNDb250cm9sbGVyKQorICAgICAgICByZXR1cm4gIm9ubHkgd29ya3MgdW5kZXIg
RHVtcFJlbmRlclRyZWUiOworICAgIHJldHVybiBvYmpDQ29udHJvbGxlci5hcnJheU9mU3RyaW5n
KCk7Cit9CisKK2Z1bmN0aW9uIGNvbmNhdGVuYXRlQXJyYXkoYXJyYXkpCit7CisgICAgdmFyIHJl
c3VsdCA9ICcnOworICAgIGZvciAoaSBpbiBhcnJheSkKKyAgICAgICAgcmVzdWx0ICs9IGFycmF5
W2ldOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGZ1bmN0aW9uIHRhZ09iakNXcmFwcGVyQ2xh
c3ModGFnTmFtZSkKIHsKICAgICByZXR1cm4gb2JqQ1dyYXBwZXJDbGFzcyhkb2N1bWVudC5jcmVh
dGVFbGVtZW50KHRhZ05hbWUpKTsKQEAgLTI3Miw2ICsyODcsOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICBzaG91bGRCZSgidHlwZW9mIG9iakNPYmplY3RPZkNsYXNzKCdXZWJTY3JpcHRPYmpl
Y3QnKSIsICInb2JqZWN0JyIpOwogICAgIHNob3VsZEJlVHJ1ZSgib2JqQ09iamVjdE9mQ2xhc3Mo
J05TQXJyYXknKSBpbnN0YW5jZW9mIEFycmF5Iik7CiAKKyAgICBzaG91bGRCZSgiY29uY2F0ZW5h
dGVBcnJheShvYmpDQXJyYXlPZlN0cmluZygpKSIsICInb25ldHdvdGhyZWUnIik7CisKICAgICAv
LyBOb3QgeWV0IHRlc3RlZDoKIAogICAgIC8vIENTU0NoYXJzZXRSdWxlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgyZjUyODUuLmU3YjY3
NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bi5wb3VsYWluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgdmFsdWVzIG9mIFJ1bnRpbWVBcnJheSBhcmUgbm90IGVudW1lcmFi
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDA1
CisKKyAgICAgICAgVGhlIGluZGljZXMgb2YgUnVudGltZUFycmF5IHNob3VsZCBiZSBlbnVtZXJh
dGVkIGxpa2UgZm9yIGEgcmVndWxhciBhcnJheS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorCiAyMDA5LTEyLTA2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWRiMDcuLjUy
MGIzODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBi
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlIDxydW50aW1lL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01Niw2ICs1Nywx
NSBAQCBKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcAogICAgIHJldHVybiB0aGlzT2JqLT5nZXRDb25j
cmV0ZUFycmF5KCktPnZhbHVlQXQoZXhlYywgc2xvdC5pbmRleCgpKTsKIH0KIAordm9pZCBSdW50
aW1lQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBnZXRMZW5n
dGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOworCisgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7Cit9CisKIGJv
b2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaAppbmRleCAxMjE4YjhjLi45OTQyNWVlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCkBAIC0zNCw3ICszNCw4IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUnVudGltZUFycmF5
IDogcHVibGljIEpTT2JqZWN0IHsKIHB1YmxpYzoKICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRl
KiwgQmluZGluZ3M6OkFycmF5Kik7Ci0gICAgCisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSAqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk3MjAzZGUuLjg0ZGJiMzAgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAwOS0xMi0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5A
bm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSB2YWx1ZXMgb2YgUnVudGltZUFycmF5IGFyZSBub3QgZW51bWVyYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwMDUKKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9PYmpDQ29udHJvbGxlci5tOgorICAgICAgICAoK1tPYmpD
Q29udHJvbGxlciBpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0Ol0pOgorICAgICAgICAo
K1tPYmpDQ29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgt
W09iakNDb250cm9sbGVyIGFycmF5T2ZTdHJpbmddKToKKwogMjAwOS0xMi0wNSAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9s
bGVyLm0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQpp
bmRleCBlMGQ2NjNlLi5kN2NjNmEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQpAQCAtNTgsNiArNTgsNyBAQCBzdGF0aWMgdm9pZCogcnVu
SmF2YVNjcmlwdFRocmVhZCh2b2lkKiBhcmcpCiAgICAgaWYgKDAKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoY2xhc3NOYW1lT2Y6KQogICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3RvcihvYmplY3RPZkNsYXNzOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3Rv
ciA9PSBAc2VsZWN0b3IoYXJyYXlPZlN0cmluZykKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9
PSBAc2VsZWN0b3IoaWRlbnRpdHlJc0VxdWFsOjopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKGxvbmdMb25nUm91bmRUcmlwOikKICAgICAgICAgICAgIHx8IGFTZWxlY3Rv
ciA9PSBAc2VsZWN0b3IodW5zaWduZWRMb25nTG9uZ1JvdW5kVHJpcDopCkBAIC03Nyw2ICs3OCw4
IEBAIHN0YXRpYyB2b2lkKiBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqIGFyZykKICAgICAgICAg
cmV0dXJuIEAiY2xhc3NOYW1lIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihvYmpl
Y3RPZkNsYXNzOikpCiAgICAgICAgIHJldHVybiBAIm9iamVjdE9mQ2xhc3MiOworICAgIGlmIChh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFycmF5T2ZTdHJpbmcpKQorICAgICAgICByZXR1cm4gQCJh
cnJheU9mU3RyaW5nIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihpZGVudGl0eUlz
RXF1YWw6OikpCiAgICAgICAgIHJldHVybiBAImlkZW50aXR5SXNFcXVhbCI7CiAgICAgaWYgKGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IobG9uZ0xvbmdSb3VuZFRyaXA6KSkKQEAgLTEyMiw2ICsxMjUs
MTYgQEAgc3RhdGljIHZvaWQqIHJ1bkphdmFTY3JpcHRUaHJlYWQodm9pZCogYXJnKQogICAgIHJl
dHVybiBuaWw7CiB9CiAKKy0gKE5TQXJyYXkgKilhcnJheU9mU3RyaW5nCit7CisgICAgTlNTdHJp
bmcgKnN0cmluZ3NbM107CisgICAgc3RyaW5nc1swXSA9IEAib25lIjsKKyAgICBzdHJpbmdzWzFd
ID0gQCJ0d28iOworICAgIHN0cmluZ3NbMl0gPSBAInRocmVlIjsKKyAgICBOU0FycmF5ICphcnJh
eSA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6c3RyaW5ncyBjb3VudDozXTsKKyAgICByZXR1
cm4gYXJyYXk7Cit9CisKIC0gKEJPT0wpaWRlbnRpdHlJc0VxdWFsOihXZWJTY3JpcHRPYmplY3Qg
KilhIDooV2ViU2NyaXB0T2JqZWN0ICopYgogewogICAgIGlmIChbYSBpc0tpbmRPZkNsYXNzOltO
U1N0cmluZyBjbGFzc11dICYmIFtiIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>