<?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>28449</bug_id>
          
          <creation_ts>2009-08-19 00:34:01 -0700</creation_ts>
          <short_desc>[v8] Use atomic string caching for createElement</short_desc>
          <delta_ts>2009-08-21 09:15:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christian Plesner Hansen">christian.plesner.hansen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>141428</commentid>
    <comment_count>0</comment_count>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-19 00:34:01 -0700</bug_when>
    <thetext>Extend atomic string caching to createElement.  Fix a bug in idl parser that caused incorrect parsing if a function argument attribute list contained a comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141432</commentid>
    <comment_count>1</comment_count>
      <attachid>35105</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-19 00:38:33 -0700</bug_when>
    <thetext>Created attachment 35105
initial</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141434</commentid>
    <comment_count>2</comment_count>
      <attachid>35105</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-19 00:42:36 -0700</bug_when>
    <thetext>Comment on attachment 35105
initial

Something unrelated was rolled into this patch.  Will upload a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141435</commentid>
    <comment_count>3</comment_count>
      <attachid>35106</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-19 00:46:45 -0700</bug_when>
    <thetext>Created attachment 35106
Unrelated changes removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141612</commentid>
    <comment_count>4</comment_count>
      <attachid>35106</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-19 15:26:00 -0700</bug_when>
    <thetext>Comment on attachment 35106
Unrelated changes removed


&gt; Index: WebCore/bindings/scripts/CodeGeneratorV8.pm

Why did this attribute change?


&gt; Index: WebCore/bindings/scripts/IDLParser.pm
&gt; +                # Split arguments at commas but only if the comma
&gt; +                # is not within attribute brackets, expressed here
&gt; +                # as being followed by a &apos;]&apos; without a preceding &apos;[&apos;.
&gt; +                # Note that this assumes that attributes don&apos;t nest.
&gt; +                my @params = split(/,(?![^[]*])/, $methodSignature);

I don&apos;t understand how this regex does what the comment says.

It looks like it splits on commas that are followed by anything except these three characters: &apos;[&apos;, &apos;]&apos;, &apos;*&apos;
(using a negative width lookahead assertion).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141726</commentid>
    <comment_count>5</comment_count>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-19 20:46:09 -0700</bug_when>
    <thetext>&gt; &gt; Index: WebCore/bindings/scripts/CodeGeneratorV8.pm
&gt; 
&gt; Why did this attribute change?

It&apos;s cleanup -- using V8Custom was a hack.  V8Custom is really there to indicate that we have to use a customized implementation rather than a generated accessor or function and using it for specifying atomic hints was a bad idea in the first place.

&gt; &gt; Index: WebCore/bindings/scripts/IDLParser.pm
&gt; &gt; +                # Split arguments at commas but only if the comma
&gt; &gt; +                # is not within attribute brackets, expressed here
&gt; &gt; +                # as being followed by a &apos;]&apos; without a preceding &apos;[&apos;.
&gt; &gt; +                # Note that this assumes that attributes don&apos;t nest.
&gt; &gt; +                my @params = split(/,(?![^[]*])/, $methodSignature);
&gt; 
&gt; I don&apos;t understand how this regex does what the comment says.
&gt; 
&gt; It looks like it splits on commas that are followed by anything except these
&gt; three characters: &apos;[&apos;, &apos;]&apos;, &apos;*&apos;
&gt; (using a negative width lookahead assertion).

The character class is closed by the first &apos;]&apos; so, using parens to indicate precedence, it gets parsed as ((([^[])*)]) rather than ([^[]*]).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141731</commentid>
    <comment_count>6</comment_count>
      <attachid>35106</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-19 21:28:49 -0700</bug_when>
    <thetext>Comment on attachment 35106
Unrelated changes removed


&gt; +++ WebCore/bindings/scripts/IDLParser.pm	(working copy)
&gt; +                my @params = split(/,(?![^[]*])/, $methodSignature);

Although apparently valid without this, it would be nice to escape the last ] to clue in the reader that it isn&apos;t a closing ] in the regex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141757</commentid>
    <comment_count>7</comment_count>
      <attachid>35191</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-20 01:07:57 -0700</bug_when>
    <thetext>Created attachment 35191
Escaped &apos;]&apos; in regexp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141758</commentid>
    <comment_count>8</comment_count>
      <attachid>35191</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-20 01:09:01 -0700</bug_when>
    <thetext>Comment on attachment 35191
Escaped &apos;]&apos; in regexp

Gah!  The ChangeLog disappeared.  Will upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141759</commentid>
    <comment_count>9</comment_count>
      <attachid>35192</attachid>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-20 01:13:57 -0700</bug_when>
    <thetext>Created attachment 35192
Included ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141762</commentid>
    <comment_count>10</comment_count>
      <attachid>35192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-20 01:38:58 -0700</bug_when>
    <thetext>Comment on attachment 35192
Included ChangeLog

Rejecting patch 35192 from commit-queue.  This patch will require manual commit.

Found no modified ChangeLogs, cannot create a commit message.
All changes require a ChangeLog.  See:
http://webkit.org/coding/contributing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141763</commentid>
    <comment_count>11</comment_count>
    <who name="Christian Plesner Hansen">christian.plesner.hansen</who>
    <bug_when>2009-08-20 01:48:55 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 35192 [details])
&gt; Rejecting patch 35192 from commit-queue.  This patch will require manual
&gt; commit.
&gt; 
&gt; Found no modified ChangeLogs, cannot create a commit message.
&gt; All changes require a ChangeLog.  See:
&gt; http://webkit.org/coding/contributing.html

I accidentally left out the ChangeLog from the previous patch but the latest one does have one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141764</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-20 01:58:57 -0700</bug_when>
    <thetext>I think the commit tool is having issues which are fixed in  https://bugs.webkit.org/show_bug.cgi?id=28485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141824</commentid>
    <comment_count>13</comment_count>
      <attachid>35192</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-20 23:06:39 -0700</bug_when>
    <thetext>Comment on attachment 35192
Included ChangeLog

Eric commit-queue+ this patch during the blackout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141830</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-20 23:13:20 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/47562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141831</commentid>
    <comment_count>15</comment_count>
      <attachid>35192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-20 23:13:25 -0700</bug_when>
    <thetext>Comment on attachment 35192
Included ChangeLog

Rejecting patch 35192 from commit-queue.  This patch will require manual commit.

Patch https://bugs.webkit.org/attachment.cgi?id=35192 from bug 28449 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141881</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-21 09:15:14 -0700</bug_when>
    <thetext>The queue (correctly) rejected this because it was already landed... bugzilla just forgot.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35105</attachid>
            <date>2009-08-19 00:38:33 -0700</date>
            <delta_ts>2009-08-19 00:42:35 -0700</delta_ts>
            <desc>initial</desc>
            <filename>bug-28449-20090819093831.patch</filename>
            <type>text/plain</type>
            <size>6999</size>
            <attacher name="Christian Plesner Hansen">christian.plesner.hansen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzQ5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMTkgIENocmlzdGlhbiBQbGVzbmVyIEhhbnNlbiAgPGNo
cmlzdGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBVc2UgYXRvbWljIHN0cmluZyBjYWNoaW5n
IGZvciBjcmVhdGVFbGVtZW50CisgICAgICAgIEV4dGVuZCBhdG9taWMgc3RyaW5nIGNhY2hpbmcg
dG8gY3JlYXRlRWxlbWVudC4gIEZpeCBhIGJ1ZyBpbiBpZGwKKyAgICAgICAgcGFyc2VyIHRoYXQg
Y2F1c2VkIGluY29ycmVjdCBwYXJzaW5nIGlmIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICAgICAg
YXR0cmlidXRlIGxpc3QgY29udGFpbmVkIGEgY29tbWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODQ0OQorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChX
ZWJDb3JlOjp2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmlkbDoKKwogMjAwOS0wOC0xOCAgTWlrZSBGZW50b24gIDxtaWtl
LmZlbnRvbkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0J
KHJldmlzaW9uIDQ3NDk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMTU2Niw3ICsxNTY2LDcgQEAgc3ViIEdldFR5cGVG
cm9tU2lnbmF0dXJlCiAgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OwogCiAgICAgbXkgJHR5cGUg
PSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgaWYg
KCgkdHlwZSBlcSAiRE9NU3RyaW5nIikgJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4Q3VzdG9tIn0pIHsKKyAgICBpZiAoKCR0eXBlIGVxICJET01TdHJpbmciKSAmJiAkc2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGludEF0b21pYyJ9KSB7CiAgICAgICAgICR0
eXBlID0gIkF0b21pY1N0cmluZyI7CiAgICAgfQogCkBAIC0xODEzLDcgKzE4MTMsMTEgQEAgc3Vi
IEpTVmFsdWVUb05hdGl2ZQogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVI
b3c+KCR2YWx1ZS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwogICAg
IHJldHVybiAic3RhdGljX2Nhc3Q8U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJHZhbHVlLT5Ub0lu
dDMyKCktPkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwogCi0gICAg
cmV0dXJuICJ2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKCR2YWx1ZSkiIGlmICR0eXBlIGVx
ICJBdG9taWNTdHJpbmciOworICAgIGlmICgkdHlwZSBlcSAiQXRvbWljU3RyaW5nIikgeworICAg
ICAgICByZXR1cm4gInY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKCR2
YWx1ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZyJ9OworICAgICAgICByZXR1cm4gInY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJp
bmcoJHZhbHVlKSI7CisgICAgfQorCiAgICAgcmV0dXJuICJ0b1dlYkNvcmVTdHJpbmcoJHZhbHVl
KSIgaWYgJHR5cGUgZXEgIkRPTVVzZXJEYXRhIjsKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmlu
ZyIpIHsKICAgICAgICAgcmV0dXJuICJ0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKCR2YWx1
ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZyJ9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCShyZXZp
c2lvbiA0NzQ5NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdv
cmtpbmcgY29weSkKQEAgLTMwOSw3ICszMDksMTEgQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiAgICAg
ICAgICAgICAgICAgJG1ldGhvZEV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKICAgICAgICAgICAgICAg
ICBAeyRuZXdEYXRhTm9kZS0+cmFpc2VzRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRtZXRob2RF
eGNlcHRpb24pOwogCi0gICAgICAgICAgICAgICAgbXkgQHBhcmFtcyA9IHNwbGl0KC8sLywgJG1l
dGhvZFNpZ25hdHVyZSk7CisgICAgICAgICAgICAgICAgIyBTcGxpdCBhcmd1bWVudHMgYXQgY29t
bWFzIGJ1dCBvbmx5IGlmIHRoZSBjb21tYQorICAgICAgICAgICAgICAgICMgaXMgbm90IHdpdGhp
biBhdHRyaWJ1dGUgYnJhY2tldHMsIGV4cHJlc3NlZCBoZXJlCisgICAgICAgICAgICAgICAgIyBh
cyBiZWluZyBmb2xsb3dlZCBieSBhICddJyB3aXRob3V0IGEgcHJlY2VkaW5nICdbJy4KKyAgICAg
ICAgICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhhdCBhdHRyaWJ1dGVzIGRvbid0
IG5lc3QuCisgICAgICAgICAgICAgICAgbXkgQHBhcmFtcyA9IHNwbGl0KC8sKD8hW15bXSpdKS8s
ICRtZXRob2RTaWduYXR1cmUpOwogICAgICAgICAgICAgICAgIGZvcmVhY2goQHBhcmFtcykgewog
ICAgICAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOwogCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmgJKHJldmlzaW9uIDQ3NDk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBWOEJpbmRpbmdf
aAogI2RlZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5j
bHVkZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKQEAgLTE0
NSw3ICsxNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICByZXR1cm4g
dmFsdWUgPyB2ODo6VHJ1ZSgpIDogdjg6OkZhbHNlKCk7CiAgICAgfQotICAgCisKICAgICBpbmxp
bmUgU3RyaW5nIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkgCkBAIC0xNTMs
NiArMTU0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHY4VmFsdWVU
b1dlYkNvcmVTdHJpbmcodmFsdWUpOwogICAgIH0KIAorICAgIGlubGluZSBBdG9taWNTdHJpbmcg
djhWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkKKyAgICAg
ICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHY4VmFsdWVUb0F0
b21pY1dlYkNvcmVTdHJpbmcodmFsdWUpOworICAgIH0KKwogICAgIGlubGluZSBTdHJpbmcgdG9X
ZWJDb3JlU3RyaW5nV2l0aE51bGxPclVuZGVmaW5lZENoZWNrKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICh2YWx1ZS0+SXNOdWxsKCkgfHwgdmFsdWUtPklz
VW5kZWZpbmVkKCkpCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA0NzQ5NykKKysrIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhDdXN0b21dIERPTUltcGxlbWVu
dGF0aW9uIGltcGxlbWVudGF0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVu
dCBkb2N1bWVudEVsZW1lbnQ7CiAKLSAgICAgICAgW1JldHVybnNOZXddIEVsZW1lbnQgY3JlYXRl
RWxlbWVudChpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0YWdOYW1lKQor
ICAgICAgICBbUmV0dXJuc05ld10gRWxlbWVudCBjcmVhdGVFbGVtZW50KGluIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgSGludEF0b21pY10gRE9NU3RyaW5nIHRhZ05hbWUpCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgICBjcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgICAgIFtSZXR1cm5zTmV3XSBUZXh0IGNyZWF0ZVRl
eHROb2RlKGluIERPTVN0cmluZyBkYXRhKTsKQEAgLTY0LDcgKzY0LDcgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBbT2xkU3R5bGVP
YmpDXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsK
LSAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkKGluIFtWOEN1c3RvbT1I
aW50QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICAgICAgRWxlbWVudCAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkKGluIFtIaW50QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsK
IAogICAgICAgICAvLyBET00gTGV2ZWwgMyBDb3JlCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cmVnZXgvY3Jvc3MtZnJhbWUtY2FsbGFibGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvcmVnZXgvY3Jvc3MtZnJhbWUtY2FsbGFibGUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9jcm9zcy1mcmFtZS1jYWxsYWJs
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorUEFTUyByZSgnYScp
IGlzIFsnYSddCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvY3Jvc3MtZnJhbWUtY2FsbGFibGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L2Nyb3NzLWZyYW1lLWNhbGxh
YmxlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L2Nyb3NzLWZy
YW1lLWNhbGxhYmxlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY3Jvc3MtZnJhbWUtY2Fs
bGFibGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9yZWdleC9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtY2FsbGFibGUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtY2FsbGFibGUu
anMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Jlc291cmNlcy9jcm9z
cy1mcmFtZS1jYWxsYWJsZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rp
b24gZG9UZXN0KGNoaWxkUmVnRXhwKQoreworICAgIHJlID0gY2hpbGRSZWdFeHA7CisgICAgc2hv
dWxkQmUoInJlKCdhJykiLCAiWydhJ10iKTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OworaWZyYW1lLmNvbnRlbnREb2N1bWVudC53cml0ZSgnPHNjcmlwdD50b3AuZG9UZXN0KC9hLyk8
L3NjcmlwdD4nKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35106</attachid>
            <date>2009-08-19 00:46:45 -0700</date>
            <delta_ts>2009-08-20 01:07:57 -0700</delta_ts>
            <desc>Unrelated changes removed</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5391</size>
            <attacher name="Christian Plesner Hansen">christian.plesner.hansen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzQ5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMTkgIENocmlzdGlhbiBQbGVzbmVyIEhhbnNlbiAgPGNo
cmlzdGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBVc2UgYXRvbWljIHN0cmluZyBjYWNoaW5n
IGZvciBjcmVhdGVFbGVtZW50CisgICAgICAgIEV4dGVuZCBhdG9taWMgc3RyaW5nIGNhY2hpbmcg
dG8gY3JlYXRlRWxlbWVudC4gIEZpeCBhIGJ1ZyBpbiBpZGwKKyAgICAgICAgcGFyc2VyIHRoYXQg
Y2F1c2VkIGluY29ycmVjdCBwYXJzaW5nIGlmIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICAgICAg
YXR0cmlidXRlIGxpc3QgY29udGFpbmVkIGEgY29tbWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODQ0OQorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChX
ZWJDb3JlOjp2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmlkbDoKKwogMjAwOS0wOC0xOCAgTWlrZSBGZW50b24gIDxtaWtl
LmZlbnRvbkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0J
KHJldmlzaW9uIDQ3NDk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMTU2Niw3ICsxNTY2LDcgQEAgc3ViIEdldFR5cGVG
cm9tU2lnbmF0dXJlCiAgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OwogCiAgICAgbXkgJHR5cGUg
PSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJHNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgaWYg
KCgkdHlwZSBlcSAiRE9NU3RyaW5nIikgJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4Q3VzdG9tIn0pIHsKKyAgICBpZiAoKCR0eXBlIGVxICJET01TdHJpbmciKSAmJiAkc2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGludEF0b21pYyJ9KSB7CiAgICAgICAgICR0
eXBlID0gIkF0b21pY1N0cmluZyI7CiAgICAgfQogCkBAIC0xODEzLDcgKzE4MTMsMTEgQEAgc3Vi
IEpTVmFsdWVUb05hdGl2ZQogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVI
b3c+KCR2YWx1ZS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwogICAg
IHJldHVybiAic3RhdGljX2Nhc3Q8U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJHZhbHVlLT5Ub0lu
dDMyKCktPkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwogCi0gICAg
cmV0dXJuICJ2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKCR2YWx1ZSkiIGlmICR0eXBlIGVx
ICJBdG9taWNTdHJpbmciOworICAgIGlmICgkdHlwZSBlcSAiQXRvbWljU3RyaW5nIikgeworICAg
ICAgICByZXR1cm4gInY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKCR2
YWx1ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZyJ9OworICAgICAgICByZXR1cm4gInY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJp
bmcoJHZhbHVlKSI7CisgICAgfQorCiAgICAgcmV0dXJuICJ0b1dlYkNvcmVTdHJpbmcoJHZhbHVl
KSIgaWYgJHR5cGUgZXEgIkRPTVVzZXJEYXRhIjsKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmlu
ZyIpIHsKICAgICAgICAgcmV0dXJuICJ0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKCR2YWx1
ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZyJ9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCShyZXZp
c2lvbiA0NzQ5NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdv
cmtpbmcgY29weSkKQEAgLTMwOSw3ICszMDksMTEgQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiAgICAg
ICAgICAgICAgICAgJG1ldGhvZEV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKICAgICAgICAgICAgICAg
ICBAeyRuZXdEYXRhTm9kZS0+cmFpc2VzRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRtZXRob2RF
eGNlcHRpb24pOwogCi0gICAgICAgICAgICAgICAgbXkgQHBhcmFtcyA9IHNwbGl0KC8sLywgJG1l
dGhvZFNpZ25hdHVyZSk7CisgICAgICAgICAgICAgICAgIyBTcGxpdCBhcmd1bWVudHMgYXQgY29t
bWFzIGJ1dCBvbmx5IGlmIHRoZSBjb21tYQorICAgICAgICAgICAgICAgICMgaXMgbm90IHdpdGhp
biBhdHRyaWJ1dGUgYnJhY2tldHMsIGV4cHJlc3NlZCBoZXJlCisgICAgICAgICAgICAgICAgIyBh
cyBiZWluZyBmb2xsb3dlZCBieSBhICddJyB3aXRob3V0IGEgcHJlY2VkaW5nICdbJy4KKyAgICAg
ICAgICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhhdCBhdHRyaWJ1dGVzIGRvbid0
IG5lc3QuCisgICAgICAgICAgICAgICAgbXkgQHBhcmFtcyA9IHNwbGl0KC8sKD8hW15bXSpdKS8s
ICRtZXRob2RTaWduYXR1cmUpOwogICAgICAgICAgICAgICAgIGZvcmVhY2goQHBhcmFtcykgewog
ICAgICAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOwogCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmgJKHJldmlzaW9uIDQ3NDk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBWOEJpbmRpbmdf
aAogI2RlZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5j
bHVkZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKQEAgLTE0
NSw3ICsxNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICByZXR1cm4g
dmFsdWUgPyB2ODo6VHJ1ZSgpIDogdjg6OkZhbHNlKCk7CiAgICAgfQotICAgCisKICAgICBpbmxp
bmUgU3RyaW5nIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkgCkBAIC0xNTMs
NiArMTU0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHY4VmFsdWVU
b1dlYkNvcmVTdHJpbmcodmFsdWUpOwogICAgIH0KIAorICAgIGlubGluZSBBdG9taWNTdHJpbmcg
djhWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkKKyAgICAg
ICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHY4VmFsdWVUb0F0
b21pY1dlYkNvcmVTdHJpbmcodmFsdWUpOworICAgIH0KKwogICAgIGlubGluZSBTdHJpbmcgdG9X
ZWJDb3JlU3RyaW5nV2l0aE51bGxPclVuZGVmaW5lZENoZWNrKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICh2YWx1ZS0+SXNOdWxsKCkgfHwgdmFsdWUtPklz
VW5kZWZpbmVkKCkpCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA0NzQ5NykKKysrIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhDdXN0b21dIERPTUltcGxlbWVu
dGF0aW9uIGltcGxlbWVudGF0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVu
dCBkb2N1bWVudEVsZW1lbnQ7CiAKLSAgICAgICAgW1JldHVybnNOZXddIEVsZW1lbnQgY3JlYXRl
RWxlbWVudChpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0YWdOYW1lKQor
ICAgICAgICBbUmV0dXJuc05ld10gRWxlbWVudCBjcmVhdGVFbGVtZW50KGluIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZywgSGludEF0b21pY10gRE9NU3RyaW5nIHRhZ05hbWUpCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgICBjcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgICAgIFtSZXR1cm5zTmV3XSBUZXh0IGNyZWF0ZVRl
eHROb2RlKGluIERPTVN0cmluZyBkYXRhKTsKQEAgLTY0LDcgKzY0LDcgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBbT2xkU3R5bGVP
YmpDXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsK
LSAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkKGluIFtWOEN1c3RvbT1I
aW50QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICAgICAgRWxlbWVudCAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkKGluIFtIaW50QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsK
IAogICAgICAgICAvLyBET00gTGV2ZWwgMyBDb3JlCiAK
</data>
<flag name="review"
          id="19297"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="19377"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35191</attachid>
            <date>2009-08-20 01:07:57 -0700</date>
            <delta_ts>2009-08-20 01:09:00 -0700</delta_ts>
            <desc>Escaped &apos;]&apos; in regexp</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4476</size>
            <attacher name="Christian Plesner Hansen">christian.plesner.hansen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2
aXNpb24gNDc1NTcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBzdWIgR2V0VHlwZUZyb21T
aWduYXR1cmUKICAgICBteSAkc2lnbmF0dXJlID0gc2hpZnQ7CiAKICAgICBteSAkdHlwZSA9ICRj
b2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkc2lnbmF0dXJlLT50eXBlKTsKLSAgICBpZiAoKCR0
eXBlIGVxICJET01TdHJpbmciKSAmJiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VjhDdXN0b20ifSkgeworICAgIGlmICgoJHR5cGUgZXEgIkRPTVN0cmluZyIpICYmICRzaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIaW50QXRvbWljIn0pIHsKICAgICAgICAgJHR5cGUg
PSAiQXRvbWljU3RyaW5nIjsKICAgICB9CiAKQEAgLTE4MTMsNyArMTgxMywxMSBAQCBzdWIgSlNW
YWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFyZUhvdz4o
JHZhbHVlLT5JbnQzMlZhbHVlKCkpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CiAgICAgcmV0
dXJuICJzdGF0aWNfY2FzdDxTVkdQYWludDo6U1ZHUGFpbnRUeXBlPigkdmFsdWUtPlRvSW50MzIo
KS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIlNWR1BhaW50VHlwZSI7CiAKLSAgICByZXR1
cm4gInY4VmFsdWVUb0F0b21pY1dlYkNvcmVTdHJpbmcoJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkF0
b21pY1N0cmluZyI7CisgICAgaWYgKCR0eXBlIGVxICJBdG9taWNTdHJpbmciKSB7CisgICAgICAg
IHJldHVybiAidjhWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2soJHZhbHVl
KSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxs
U3RyaW5nIn07CisgICAgICAgIHJldHVybiAidjhWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZygk
dmFsdWUpIjsKKyAgICB9CisKICAgICByZXR1cm4gInRvV2ViQ29yZVN0cmluZygkdmFsdWUpIiBp
ZiAkdHlwZSBlcSAiRE9NVXNlckRhdGEiOwogICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nIikg
ewogICAgICAgICByZXR1cm4gInRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2soJHZhbHVlKSIg
aWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nIn07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHJldmlzaW9u
IDQ3NTU3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzA5LDcgKzMwOSwxMSBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAg
ICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwogICAgICAgICAgICAgICAgIEB7
JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1ldGhvZEV4Y2Vw
dGlvbik7CiAKLSAgICAgICAgICAgICAgICBteSBAcGFyYW1zID0gc3BsaXQoLywvLCAkbWV0aG9k
U2lnbmF0dXJlKTsKKyAgICAgICAgICAgICAgICAjIFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMg
YnV0IG9ubHkgaWYgdGhlIGNvbW1hCisgICAgICAgICAgICAgICAgIyBpcyBub3Qgd2l0aGluIGF0
dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2VkIGhlcmUKKyAgICAgICAgICAgICAgICAjIGFzIGJl
aW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRpbmcgJ1snLgorICAgICAgICAg
ICAgICAgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9uJ3QgbmVz
dC4KKyAgICAgICAgICAgICAgICBteSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRt
ZXRob2RTaWduYXR1cmUpOwogICAgICAgICAgICAgICAgIGZvcmVhY2goQHBhcmFtcykgewogICAg
ICAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmgJKHJldmlzaW9uIDQ3NTU3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBWOEJpbmRpbmdfaAog
I2RlZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKQEAgLTE0NSw3
ICsxNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICByZXR1cm4gdmFs
dWUgPyB2ODo6VHJ1ZSgpIDogdjg6OkZhbHNlKCk7CiAgICAgfQotICAgCisKICAgICBpbmxpbmUg
U3RyaW5nIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkgCkBAIC0xNTMsNiAr
MTU0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHY4VmFsdWVUb1dl
YkNvcmVTdHJpbmcodmFsdWUpOwogICAgIH0KIAorICAgIGlubGluZSBBdG9taWNTdHJpbmcgdjhW
YWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSkKKyAgICAgICAg
ICAgIHJldHVybiBBdG9taWNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHY4VmFsdWVUb0F0b21p
Y1dlYkNvcmVTdHJpbmcodmFsdWUpOworICAgIH0KKwogICAgIGlubGluZSBTdHJpbmcgdG9XZWJD
b3JlU3RyaW5nV2l0aE51bGxPclVuZGVmaW5lZENoZWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICh2YWx1ZS0+SXNOdWxsKCkgfHwgdmFsdWUtPklzVW5k
ZWZpbmVkKCkpCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA0NzU1NykKKysrIFdlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhDdXN0b21dIERPTUltcGxlbWVudGF0
aW9uIGltcGxlbWVudGF0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBk
b2N1bWVudEVsZW1lbnQ7CiAKLSAgICAgICAgW1JldHVybnNOZXddIEVsZW1lbnQgY3JlYXRlRWxl
bWVudChpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0YWdOYW1lKQorICAg
ICAgICBbUmV0dXJuc05ld10gRWxlbWVudCBjcmVhdGVFbGVtZW50KGluIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZywgSGludEF0b21pY10gRE9NU3RyaW5nIHRhZ05hbWUpCiAgICAgICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgICBjcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7CiAgICAgICAgIFtSZXR1cm5zTmV3XSBUZXh0IGNyZWF0ZVRleHRO
b2RlKGluIERPTVN0cmluZyBkYXRhKTsKQEAgLTY0LDcgKzY0LDcgQEAgbW9kdWxlIGNvcmUgewog
ICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBbT2xkU3R5bGVPYmpD
XSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAg
ICAgICAgRWxlbWVudCAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkKGluIFtWOEN1c3RvbT1IaW50
QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICAgICAgRWxlbWVudCAgICAgICAgICAg
IGdldEVsZW1lbnRCeUlkKGluIFtIaW50QXRvbWljXSBET01TdHJpbmcgZWxlbWVudElkKTsKIAog
ICAgICAgICAvLyBET00gTGV2ZWwgMyBDb3JlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35192</attachid>
            <date>2009-08-20 01:13:57 -0700</date>
            <delta_ts>2009-08-20 23:13:25 -0700</delta_ts>
            <desc>Included ChangeLog</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5384</size>
            <attacher name="Christian Plesner Hansen">christian.plesner.hansen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzU1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMjAgIENocmlzdGlhbiBQbGVzbmVyIEhhbnNlbiAgPGNo
cmlzdGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4XSBVc2UgYXRvbWljIHN0cmluZyBjYWNoaW5n
IGZvciBjcmVhdGVFbGVtZW50CisgICAgICAgIEV4dGVuZCBhdG9taWMgc3RyaW5nIGNhY2hpbmcg
dG8gY3JlYXRlRWxlbWVudC4gIEZpeCBhIGJ1ZyBpbiBpZGwKKyAgICAgICAgcGFyc2VyIHRoYXQg
Y2F1c2VkIGluY29ycmVjdCBwYXJzaW5nIGlmIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICAgICAg
YXR0cmlidXRlIGxpc3QgY29udGFpbmVkIGEgY29tbWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODQ0OQorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChX
ZWJDb3JlOjp2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmlkbDoKKwogMjAwOS0wOC0yMCAgRGFyaW4gRmlzaGVyICA8ZGFy
aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lv
biA0NzU1OCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0J
KHdvcmtpbmcgY29weSkKQEAgLTE1NjYsNyArMTU2Niw3IEBAIHN1YiBHZXRUeXBlRnJvbVNpZ25h
dHVyZQogICAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsKIAogICAgIG15ICR0eXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRzaWduYXR1cmUtPnR5cGUpOwotICAgIGlmICgoJHR5cGUg
ZXEgIkRPTVN0cmluZyIpICYmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEN1
c3RvbSJ9KSB7CisgICAgaWYgKCgkdHlwZSBlcSAiRE9NU3RyaW5nIikgJiYgJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkhpbnRBdG9taWMifSkgewogICAgICAgICAkdHlwZSA9ICJB
dG9taWNTdHJpbmciOwogICAgIH0KIApAQCAtMTgxMyw3ICsxODEzLDExIEBAIHN1YiBKU1ZhbHVl
VG9OYXRpdmUKICAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFs
dWUtPkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4g
InN0YXRpY19jYXN0PFNWR1BhaW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS0+VG9JbnQzMigpLT5J
bnQzMlZhbHVlKCkpIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKIAotICAgIHJldHVybiAi
djhWYWx1ZVRvQXRvbWljV2ViQ29yZVN0cmluZygkdmFsdWUpIiBpZiAkdHlwZSBlcSAiQXRvbWlj
U3RyaW5nIjsKKyAgICBpZiAoJHR5cGUgZXEgIkF0b21pY1N0cmluZyIpIHsKKyAgICAgICAgcmV0
dXJuICJ2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjaygkdmFsdWUpIiBp
ZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydE51bGxUb051bGxTdHJp
bmcifTsKKyAgICAgICAgcmV0dXJuICJ2OFZhbHVlVG9BdG9taWNXZWJDb3JlU3RyaW5nKCR2YWx1
ZSkiOworICAgIH0KKwogICAgIHJldHVybiAidG9XZWJDb3JlU3RyaW5nKCR2YWx1ZSkiIGlmICR0
eXBlIGVxICJET01Vc2VyRGF0YSI7CiAgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciKSB7CiAg
ICAgICAgIHJldHVybiAidG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjaygkdmFsdWUpIiBpZiAk
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydE51bGxUb051bGxTdHJpbmci
fTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gNDc1
NTgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC0zMDksNyArMzA5LDExIEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgICAgICAgICAg
ICAgICRtZXRob2RFeGNlcHRpb24gPX4gcy9ccysvL2c7CiAgICAgICAgICAgICAgICAgQHskbmV3
RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9u
KTsKIAotICAgICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLC8sICRtZXRob2RTaWdu
YXR1cmUpOworICAgICAgICAgICAgICAgICMgU3BsaXQgYXJndW1lbnRzIGF0IGNvbW1hcyBidXQg
b25seSBpZiB0aGUgY29tbWEKKyAgICAgICAgICAgICAgICAjIGlzIG5vdCB3aXRoaW4gYXR0cmli
dXRlIGJyYWNrZXRzLCBleHByZXNzZWQgaGVyZQorICAgICAgICAgICAgICAgICMgYXMgYmVpbmcg
Zm9sbG93ZWQgYnkgYSAnXScgd2l0aG91dCBhIHByZWNlZGluZyAnWycuCisgICAgICAgICAgICAg
ICAgIyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVzIHRoYXQgYXR0cmlidXRlcyBkb24ndCBuZXN0Lgor
ICAgICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/IVteW10qXF0pLywgJG1ldGhv
ZFNpZ25hdHVyZSk7CiAgICAgICAgICAgICAgICAgZm9yZWFjaChAcGFyYW1zKSB7CiAgICAgICAg
ICAgICAgICAgICAgIG15ICRsaW5lID0gJF87CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aAkocmV2aXNpb24gNDc1NTgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFY4QmluZGluZ19oCiAjZGVm
aW5lIFY4QmluZGluZ19oCiAKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJN
YXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIApAQCAtMTQ1LDcgKzE0
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA/
IHY4OjpUcnVlKCkgOiB2ODo6RmFsc2UoKTsKICAgICB9Ci0gICAKKwogICAgIGlubGluZSBTdHJp
bmcgdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICBpZiAodmFsdWUtPklzTnVsbCgpKSAKQEAgLTE1Myw2ICsxNTQs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICByZXR1cm4gdjhWYWx1ZVRvV2ViQ29y
ZVN0cmluZyh2YWx1ZSk7CiAgICAgfQogCisgICAgaW5saW5lIEF0b21pY1N0cmluZyB2OFZhbHVl
VG9BdG9taWNXZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUtPklzTnVsbCgpKQorICAgICAgICAgICAg
cmV0dXJuIEF0b21pY1N0cmluZygpOworICAgICAgICByZXR1cm4gdjhWYWx1ZVRvQXRvbWljV2Vi
Q29yZVN0cmluZyh2YWx1ZSk7CisgICAgfQorCiAgICAgaW5saW5lIFN0cmluZyB0b1dlYkNvcmVT
dHJpbmdXaXRoTnVsbE9yVW5kZWZpbmVkQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
KQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5Jc051bGwoKSB8fCB2YWx1ZS0+SXNVbmRlZmlu
ZWQoKSkKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDQ3NTU4KQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEN1c3RvbV0gRE9NSW1wbGVtZW50YXRpb24g
aW1wbGVtZW50YXRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGRvY3Vt
ZW50RWxlbWVudDsKIAotICAgICAgICBbUmV0dXJuc05ld10gRWxlbWVudCBjcmVhdGVFbGVtZW50
KGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRhZ05hbWUpCisgICAgICAg
IFtSZXR1cm5zTmV3XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLCBIaW50QXRvbWljXSBET01TdHJpbmcgdGFnTmFtZSkKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRG9jdW1lbnRGcmFnbWVudCAgIGNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKICAgICAgICAgW1JldHVybnNOZXddIFRleHQgY3JlYXRlVGV4dE5vZGUo
aW4gRE9NU3RyaW5nIGRhdGEpOwpAQCAtNjQsNyArNjQsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgICAg
ICBFbGVtZW50ICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQoaW4gW1Y4Q3VzdG9tPUhpbnRBdG9t
aWNdIERPTVN0cmluZyBlbGVtZW50SWQpOworICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZ2V0
RWxlbWVudEJ5SWQoaW4gW0hpbnRBdG9taWNdIERPTVN0cmluZyBlbGVtZW50SWQpOwogCiAgICAg
ICAgIC8vIERPTSBMZXZlbCAzIENvcmUKIAo=
</data>
<flag name="review"
          id="19385"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="19386"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>