<?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>13623</bug_id>
          
          <creation_ts>2007-05-08 01:38:47 -0700</creation_ts>
          <short_desc>Decompilation of function doesn&apos;t compile with &quot;++(x,y)&quot;</short_desc>
          <delta_ts>2007-05-25 10:50:59 -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>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13638</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesse Ruderman">jruderman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kkinnunen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10678</commentid>
    <comment_count>0</comment_count>
    <who name="Jesse Ruderman">jruderman</who>
    <bug_when>2007-05-08 01:38:47 -0700</bug_when>
    <thetext>&gt; f = function(){ ++(x,y) };
function () 
{
  ++x, y;
}

&gt; eval(&quot;&quot; + f)
SyntaxError: Parse error

I think the best way to avoid this &quot;decompilation of a function fails to compile&quot; bug is to reject the initial function at compile time, like Firefox does.

Found by jsfunfuzz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10563</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-05-10 04:36:16 -0700</bug_when>
    <thetext>Except there is no &quot;compile time&quot; in JavaScriptCore.  JSC parses the source to make an abstract syntax tree and then walks the tree for execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10412</commentid>
    <comment_count>2</comment_count>
    <who name="Jesse Ruderman">jruderman</who>
    <bug_when>2007-05-10 12:02:00 -0700</bug_when>
    <thetext>&quot;Parse time&quot; then? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9236</commentid>
    <comment_count>3</comment_count>
      <attachid>14702</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-24 06:37:44 -0700</bug_when>
    <thetext>Created attachment 14702
Patch for toString()ing pre/postfix/typeof operators that contain grouping expression

The patch makes errors like these produce run-time exception similar to the other varians of this error, like &quot;function f() { (g())++; }&quot;

SyntaxError for eval(&quot;function() {++x, y; }&quot;) is another issue, caused by treating &apos;function&apos; as function declaration and not function expression. Firefox treats anonymous functions that appear in SourceElement context as  function expressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9235</commentid>
    <comment_count>4</comment_count>
      <attachid>14702</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-24 06:43:38 -0700</bug_when>
    <thetext>Comment on attachment 14702
Patch for toString()ing pre/postfix/typeof operators that contain grouping expression

Seems that I got some conflict fragments in LayoutTests/ChangeLog..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9234</commentid>
    <comment_count>5</comment_count>
      <attachid>14703</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-24 06:57:42 -0700</bug_when>
    <thetext>Created attachment 14703
Patch for toString()ing pre/postfix/typeof operators that contain grouping expression. 

Same patch as above. Seems that the conflict markers in LayoutTests/ChangeLog had been committed to the repository. I removed them locally, and that&apos;s why they show up in the diff. (conflict markers not removed in this)

About the previous Firefox comment: I&apos;m no expert in how firefox/spidermonkey works, but that&apos;s my guess why the anonymous function expression works in the SourceElement context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9225</commentid>
    <comment_count>6</comment_count>
      <attachid>14703</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-24 09:44:20 -0700</bug_when>
    <thetext>Comment on attachment 14703
Patch for toString()ing pre/postfix/typeof operators that contain grouping expression. 

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9222</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-05-24 09:51:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Same patch as above. Seems that the conflict markers in LayoutTests/ChangeLog
&gt; had been committed to the repository. I removed them locally, and that&apos;s why
&gt; they show up in the diff. (conflict markers not removed in this)

That&apos;s my bad.  I just removed them.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9207</commentid>
    <comment_count>8</comment_count>
    <who name="Jesse Ruderman">jruderman</who>
    <bug_when>2007-05-24 12:19:55 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; &gt; eval(&quot;&quot; + f)
&gt; SyntaxError: Parse error

(In reply to comment #3)
&gt; SyntaxError for eval(&quot;function() {++x, y; }&quot;) is another issue, caused by
&gt; treating &apos;function&apos; as function declaration and not function expression.
&gt; Firefox treats anonymous functions that appear in SourceElement context as 
&gt; function expressions.

Oops, I forgot that I needed parentheses there.  Firefox trunk requires parentheses too (see https://bugzilla.mozilla.org/show_bug.cgi?id=376052).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9189</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-24 17:54:02 -0700</bug_when>
    <thetext>Landed in r21473 and r21393 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9186</commentid>
    <comment_count>10</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-24 21:40:07 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Landed in r21473 and r21393 ?
&gt; 

I don&apos;t understand the comment/question, but I believe the patch has not yet been applied (r21742). The mentioned revs are different patches (fixing different bugs)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9180</commentid>
    <comment_count>11</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-24 21:57:26 -0700</bug_when>
    <thetext>The first patch is ok but has the LayoutTests/ChangeLog problem.
The second patch was a old patch for different bug. 

Sorry for the mixup. I&apos;ll upload the first patch again with correct ChangeLog..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9147</commentid>
    <comment_count>12</comment_count>
      <attachid>14719</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-25 05:12:54 -0700</bug_when>
    <thetext>Created attachment 14719
The correct patch (same as the first one, except the LayoutTests/ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9113</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-25 10:50:59 -0700</bug_when>
    <thetext>Landed, for real this time, in r21761.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14702</attachid>
            <date>2007-05-24 06:37:44 -0700</date>
            <delta_ts>2007-05-24 06:43:38 -0700</delta_ts>
            <desc>Patch for toString()ing pre/postfix/typeof operators that contain grouping expression</desc>
            <filename>toString-unary-expr-preserve-parens.diff</filename>
            <type>text/plain</type>
            <size>14917</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDctMDUtMjQgIEtpbW1vIEtp
bm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjIzIChEZWNvbXBpbGF0aW9uIG9mIGZ1bmN0aW9uCisgICAgICAgICAgZG9lc24ndCBjb21w
aWxlIHdpdGggIisrKHgseSkiKQorICAgICAgICAtIENyZWF0ZSB0aGUgZXJyb3Igbm9kZSBiYXNl
ZCBvbiB0aGUgYWN0dWFsIG5vZGUsIG5vdCB0aGUgbm9kZSBpbnNpZGUKKyAgICAgICAgICBwYXJl
bnRoZXNpcworICAgICAgICAtIEZpeCBhcHBsaWVzIHRvIHBvc3RmaXgsIHByZWZpeCBhbmQgdHlw
ZW9mIG9wZXJhdG9ycworICAgICAgICAtIFByb2R1Y2VzIHJ1bi10aW1lIFJlZmVyZW5jZUVycm9y
IGxpa2Ugb3RoZXIgbm9uLWx2YWx1ZSBhc3NpZ25tZW50cyBldGMuCisKKyAgICAgICAgKiBranMv
Z3JhbW1hci55OiBDcmVhdGUge1ByZWZpeCxQb3N0Zml4fUVycm9yTm9kZSBiYXNlZCBvbiB0aGUg
YWN0dWFsIG5vZGUsCisgICAgICAgIG5vdCB0aGUgYmFzZWQgb24gdGhlIG5vZGUgcmV0dXJuZWQg
YnkgIm5vZGVJbnNpZGVBbGxQYXJlbnMoKSIuIFNhbWUgZm9yCisgICAgICAgIFR5cGVPZlZhbHVl
Tm9kZS4KKwogMjAwNy0wNS0xOCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBz
ZWxmaXNoLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvZ3JhbW1hci55Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tq
cy9ncmFtbWFyLnkJKHJldmlzaW9uIDIxNzAxKQorKysgSmF2YVNjcmlwdENvcmUva2pzL2dyYW1t
YXIueQkod29ya2luZyBjb3B5KQpAQCAtODk1LDcgKzg5NSw3IEBAIHN0YXRpYyBOb2RlKiBtYWtl
UHJlZml4Tm9kZShOb2RlICpleHByLCAKICAgICBOb2RlICpuID0gZXhwci0+bm9kZUluc2lkZUFs
bFBhcmVucygpOwogCiAgICAgaWYgKCFuLT5pc0xvY2F0aW9uKCkpCi0gICAgICAgIHJldHVybiBu
ZXcgUHJlZml4RXJyb3JOb2RlKG4sIG9wKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmVmaXhFcnJv
ck5vZGUoZXhwciwgb3ApOwogICAgIAogICAgIGlmIChuLT5pc1Jlc29sdmVOb2RlKCkpIHsKICAg
ICAgICAgUmVzb2x2ZU5vZGUgKnJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSAqPihu
KTsKQEAgLTkxNSw3ICs5MTUsNyBAQCBzdGF0aWMgTm9kZSogbWFrZVBvc3RmaXhOb2RlKE5vZGUq
IGV4cHIsCiAgICAgTm9kZSAqbiA9IGV4cHItPm5vZGVJbnNpZGVBbGxQYXJlbnMoKTsKIAogICAg
IGlmICghbi0+aXNMb2NhdGlvbigpKQotICAgICAgICByZXR1cm4gbmV3IFBvc3RmaXhFcnJvck5v
ZGUobiwgb3ApOworICAgICAgICByZXR1cm4gbmV3IFBvc3RmaXhFcnJvck5vZGUoZXhwciwgb3Ap
OwogICAgIAogICAgIGlmIChuLT5pc1Jlc29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5v
ZGUgKnJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSAqPihuKTsKQEAgLTk2Myw3ICs5
NjMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVR5cGVPZk5vZGUoTm9kZSAqZXhwcikKICAgICAgICAg
UmVzb2x2ZU5vZGUgKnJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSAqPihuKTsKICAg
ICAgICAgcmV0dXJuIG5ldyBUeXBlT2ZSZXNvbHZlTm9kZShyZXNvbHZlLT5pZGVudGlmaWVyKCkp
OwogICAgIH0gZWxzZQotICAgICAgICByZXR1cm4gbmV3IFR5cGVPZlZhbHVlTm9kZShuKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBUeXBlT2ZWYWx1ZU5vZGUoZXhwcik7CiB9CiAKIHN0YXRpYyBOb2Rl
ICptYWtlRGVsZXRlTm9kZShOb2RlICpleHByKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3MDcpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMTUgQEAK
LTw8PDw8PDwgLm1pbmUKLTIwMDctMDUtMjMgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3Jn
PgorMjAwNy0wNS0yNCAgS2ltbW8gS2lubnVuZW4gIDxraW1tb2tAaWtpLmZpPgogCi0gICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgotCi0gICAgICAgIC0gdGVzdHMgZm9yIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTYzCi0gICAgICAgICAgUkVHUkVTU0lP
TjogQ3Jhc2ggbG9hZGluZyBtZXNzYWdlIGluIFlhaG9vISBNYWlsCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgogCi0gICAgICAgICogZmFzdC9jc3Mvc3RhbGUtc3R5bGUtc2Vs
ZWN0b3ItY3Jhc2gtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGZhc3QvY3NzL3N0
YWxlLXN0eWxlLXNlbGVjdG9yLWNyYXNoLTEuaHRtbDogQWRkZWQuCi0gICAgICAgICogZmFzdC9j
c3Mvc3RhbGUtc3R5bGUtc2VsZWN0b3ItY3Jhc2gtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAg
ICAgICAqIGZhc3QvY3NzL3N0YWxlLXN0eWxlLXNlbGVjdG9yLWNyYXNoLTIuaHRtbDogQWRkZWQu
CisgICAgICAgIC0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MjMg
KERlY29tcGlsYXRpb24gb2YgZnVuY3Rpb24KKyAgICAgICAgICBkb2Vzbid0IGNvbXBpbGUgd2l0
aCAiKysoeCx5KSIpCisgICAgICAgIC0gQ29udGFpbnMgdGVzdHMgZm9yIGdyb3VwaW5nIGV4cHJl
c3Npb24gdGhhdCBpcyBpbnNpZGUgdHlwZW9mIG9yIHByZWZpeC9wb3N0Zml4CisgICAgICAgICAg
ZXhwcmVzc2lvbgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL3RvU3RyaW5nLXByZWZpeC1w
b3N0Zml4LXByZXNlcnZlLXBhcmVucy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy90b1N0
cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2pzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4LXByZXNlcnZlLXBhcmVu
cy5odG1sOiBBZGRlZC4KIAotPT09PT09PQogMjAwNy0wNS0yMyAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4LXByZXNlcnZlLXBhcmVucy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1wcmVm
aXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJl
bnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACitUaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgdG9TdHJpbmcoKSByb3VuZC10cmlwIG9uIGEgZnVuY3Rpb24gdGhhdCBoYXMg
cHJlZml4LCBwb3N0Zml4IGFuZCB0eXBlb2Ygb3BlcmF0b3JzIGFwcGxpZWQgdG8gZ3JvdXAgZXhw
cmVzc2lvbiB3aWxsIG5vdCByZW1vdmUgdGhlIGdyb3VwaW5nLiBBbHNvIGNoZWNrcyB0aGF0IGV2
YWx1YXRpb24gb2Ygc3VjaCBhIGV4cHJlc3Npb24gcHJvZHVjZXMgcnVuLXRpbWUgZXhjZXB0aW9u
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2
YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkpIGlzIHVuZXZhbGYocHJlZml4X3No
b3VsZF9wcmVzZXJ2ZV9wYXJlbnMpCitQQVNTIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnMpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwcmVmaXhfc2hv
dWxkX3ByZXNlcnZlX3BhcmVucygxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVy
cm9yOiBQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJl
ZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVu
cykpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IFByZWZpeCArKyBv
cGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KK1BBU1Mg
dW5ldmFsZihldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkpIGlz
IHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKQorUEFTUyB1bmV2YWxmKHBv
c3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykuaW5kZXhPZignKHgsIHkpJykgPj0gMCBpcyB0
cnVlCitQQVNTIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucygxLCAyLCAzKTsgdGhyZXcg
ZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQb3N0Zml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8g
dmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocG9zdGZp
eF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZl
cmVuY2VFcnJvcjogUG9zdGZpeCArKyBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMg
bm90IGEgcmVmZXJlbmNlLi4KK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYoYm90aF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zKSkpIGlzIHVuZXZhbGYoYm90aF9zaG91bGRfcHJlc2VydmVfcGFyZW5z
KQorUEFTUyB1bmV2YWxmKGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykuaW5kZXhPZignKHgs
IHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucygxLCAy
LCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQcmVmaXggKysgb3BlcmF0b3Ig
YXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5l
dmFsZihib3RoX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0
aW9uIFJlZmVyZW5jZUVycm9yOiBQcmVmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0
aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHByZWZp
eF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKSkpIGlzIHVuZXZhbGYocHJlZml4X3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpCitQQVNTIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnNfbXVsdGkpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBw
cmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0
aW9uIFJlZmVyZW5jZUVycm9yOiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0
aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwcmVmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJl
bmNlRXJyb3I6IFByZWZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90
IGEgcmVmZXJlbmNlLi4KK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zX211bHRpKSkpIGlzIHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpKQorUEFTUyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aSkuaW5kZXhPZignKHgsIHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIHBvc3RmaXhf
c2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJl
ZmVyZW5jZUVycm9yOiBQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBp
cyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJl
c2VydmVfcGFyZW5zX211bHRpKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VF
cnJvcjogUG9zdGZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEg
cmVmZXJlbmNlLi4KK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnNfbXVsdGkxKSkpIGlzIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkxKQorUEFTUyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5z
X211bHRpMSkuaW5kZXhPZignKHgsIHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIHByZWZpeF9zaG91
bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVy
ZW5jZUVycm9yOiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5v
dCBhIHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZl
X3BhcmVuc19tdWx0aTEpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9y
OiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVy
ZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZl
X3BhcmVuc19tdWx0aTEpKSkgaXMgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnNfbXVsdGkxKQorUEFTUyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aTEpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwb3N0Zml4X3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkxKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJl
bmNlRXJyb3I6IFBvc3RmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5v
dCBhIHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnNfbXVsdGkxKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJv
cjogUG9zdGZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVm
ZXJlbmNlLi4KK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnNfbXVsdGkyKSkpIGlzIHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnNfbXVsdGkyKQorUEFTUyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211
bHRpMikuaW5kZXhPZignKHgsIHkpJykgPj0gMCBpcyB0cnVlCitQQVNTIHByZWZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zX211bHRpMigxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5j
ZUVycm9yOiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBh
IHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aTIpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQ
cmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5j
ZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aTIpKSkgaXMgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkyKQorUEFTUyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0
aTIpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwb3N0Zml4X3Nob3VsZF9w
cmVzZXJ2ZV9wYXJlbnNfbXVsdGkyKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNl
RXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBh
IHJlZmVyZW5jZS4uCitQQVNTIGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkyKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjog
UG9zdGZpeCArKyBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJl
bmNlLi4KK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMpKSkgaXMgdW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykKK1BBU1Mg
dW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykuaW5kZXhPZignKHgsIHkpJykg
Pj0gMCBpcyB0cnVlCitQQVNTIHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zKCdhJywgMSk7
IGlzICdudW1iZXInCitQQVNTIGV2YWwodW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVucykpKCdhJywgMSk7IGlzICdudW1iZXInCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHR5
cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMSkpKSBpcyB1bmV2YWxmKHR5cGVvZl9zaG91bGRf
cHJlc2VydmVfcGFyZW5zMSkKK1BBU1MgdW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuczEpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyB0eXBlb2Zfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuczEoJ2EnLCAxKTsgaXMgJ251bWJlcicKK1BBU1MgZXZhbCh1bmV2YWxm
KHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMSkpKCdhJywgMSk7IGlzICdudW1iZXInCitQ
QVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMikp
KSBpcyB1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMikKK1BBU1MgdW5ldmFs
Zih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczIpLmluZGV4T2YoJyh4LCB5KScpID49IDAg
aXMgdHJ1ZQorUEFTUyB0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczIoJ2EnLCAxKTsgaXMg
J251bWJlcicKK1BBU1MgZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5z
MikpKCdhJywgMSk7IGlzICdudW1iZXInCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHR5cGVv
Zl9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKSkpIGlzIHVuZXZhbGYodHlwZW9mX3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpCitQQVNTIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnNfbXVsdGkpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyB0
eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSgnYScsIDEpOyBpcyAnbnVtYmVyJwor
UEFTUyBldmFsKHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpKSgn
YScsIDEpOyBpcyAnbnVtYmVyJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctcHJlZml4
LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgt
cHJlc2VydmUtcGFyZW5zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgt
cHJlc2VydmUtcGFyZW5zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvcmVzb3VyY2VzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4LXByZXNlcnZlLXBh
cmVucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90b1N0
cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVz
ZXJ2ZS1wYXJlbnMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTM0IEBACitkZXNjcmlwdGlv
bigKKyJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdG9TdHJpbmcoKSByb3VuZC10cmlwIG9uIGEgZnVu
Y3Rpb24gdGhhdCBoYXMgcHJlZml4LCBwb3N0Zml4IGFuZCB0eXBlb2Ygb3BlcmF0b3JzIGFwcGxp
ZWQgdG8gZ3JvdXAgZXhwcmVzc2lvbiB3aWxsIG5vdCByZW1vdmUgdGhlIGdyb3VwaW5nLiBBbHNv
IGNoZWNrcyB0aGF0IGV2YWx1YXRpb24gb2Ygc3VjaCBhIGV4cHJlc3Npb24gcHJvZHVjZXMgcnVu
LXRpbWUgZXhjZXB0aW9uIgorKTsKKworZnVuY3Rpb24gcG9zdGZpeF9zaG91bGRfcHJlc2VydmVf
cGFyZW5zKHgsIHksIHopIHsKKyAgICAoeCx5KSsrOworICAgIHJldHVybiB5OworfQorCitmdW5j
dGlvbiBwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucyh4LCB5LCB6KSB7CisgICAgKysoeCx5
KTsKKyAgICByZXR1cm4geDsKKworfQorCitmdW5jdGlvbiBib3RoX3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMoeCwgeSwgeikgeworICAgICsrKHgseSktLTsKKyAgICByZXR1cm4geDsKKworfQorCitm
dW5jdGlvbiBwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoeCwgeSwgeikgewor
ICAgICgoKHgseSkpKS0tOworICAgIHJldHVybiB4OworfQorCitmdW5jdGlvbiBwcmVmaXhfc2hv
dWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSh4LCB5LCB6KSB7CisgICAgLS0oKCh4LHkpKSk7Cisg
ICAgcmV0dXJuIHg7Cit9CisKK2Z1bmN0aW9uIGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aSh4LCB5LCB6KSB7CisgICAgKysoKCh4LHkpKSktLTsKKyAgICByZXR1cm4geDsKK30KKwor
ZnVuY3Rpb24gcG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSh4LCB5LCB6KSB7
CisgICAgKCgoeCkpLHkpLS07CisgICAgcmV0dXJuIHg7Cit9CisKK2Z1bmN0aW9uIHByZWZpeF9z
aG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSh4LCB5LCB6KSB7CisgICAgLS0oKCh4KSkseSk7
CisgICAgcmV0dXJuIHg7Cit9CisKK2Z1bmN0aW9uIHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFy
ZW5zX211bHRpMih4LCB5LCB6KSB7CisgICAgdmFyIHogPSAwOworICAgIC0tKCgoeCkseSkseik7
CisgICAgcmV0dXJuIHg7Cit9CisKK2Z1bmN0aW9uIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aTIoeCwgeSwgeikgeworICAgIHZhciB6ID0gMDsKKyAgICAoKCh4KSx5KSx6KSsr
OworICAgIHJldHVybiB4OworfQorCisvLyBpZiB0aGVzZSByZXR1cm4gYSB2YXJpYWJsZSAoc3Vj
aCBhcyB5KSBpbnN0ZWFkIG9mCisvLyB0aGUgcmVzdWx0IG9mIHR5cGVvZiwgdGhpcyBtZWFucyB0
aGF0IHRoZSBwYXJlbnRoZXNpcworLy8gZ290IGxvc3Qgc29tZXdoZXJlLgorZnVuY3Rpb24gdHlw
ZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoeCwgeSwgeikgeworICAgIHJldHVybiB0eXBlb2Yg
KHgseSk7Cit9CisKK2Z1bmN0aW9uIHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zMSh4LCB5
LCB6KSB7CisgICAgcmV0dXJuIHR5cGVvZiAoKHgseSkpOworfQorCitmdW5jdGlvbiB0eXBlb2Zf
c2hvdWxkX3ByZXNlcnZlX3BhcmVuczIoeCwgeSwgeikgeworICAgIHZhciB6ID0gMzM7CisgICAg
cmV0dXJuIHR5cGVvZiAoeiwgKHgseSkpOworfQorCitmdW5jdGlvbiB0eXBlb2Zfc2hvdWxkX3By
ZXNlcnZlX3BhcmVuc19tdWx0aSh4LCB5LCB6KSB7CisgICAgdmFyIHogPSAzMzsKKyAgICByZXR1
cm4gdHlwZW9mICgoeiwoKCh4LHkpKSkpKTsKK30KKwordW5ldmFsZiA9IGZ1bmN0aW9uKHgpIHsg
cmV0dXJuICcoJyArIHgudG9TdHJpbmcoKSArICcpJzsgfTsKKworZnVuY3Rpb24gdGVzdFRvU3Ry
aW5nKGZuKSB7CisgICAgLy8gY2hlY2sgdGhhdCB0b1N0cmluZyByZXN1bHQgZXZhbHVhdGVzIHRv
IGNvZGUgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgLy8gdGhpcyBkb2Vzbid0IGFjdHVhbGx5
IHJldmVhbCB0aGUgYnVnIHRoYXQgdGhpcyB0ZXN0IGlzIHRlc3RpbmcKKyAgICBzaG91bGRCZSgi
dW5ldmFsZihldmFsKHVuZXZhbGYoIitmbisiKSkpIiwgInVuZXZhbGYoIiArIGZuICsgIikiKTsK
KworICAgIC8vIGNoZWNrIHRoYXQgZ3JvdXBpbmcgb3BlcmF0b3IgaXMgc3RpbGwgdGhlcmUgKHRo
aXMgdGVzdCByZXZlYWxzIHRoZSBidWcKKyAgICAvLyBidXQgd2lsbCBjcmVhdGUgcG9zc2libGUg
ZmFsc2UgbmVnYXRpdmUgaWYgdG9TdHJpbmcgb3V0cHV0IGNoYW5nZXMgaW4KKyAgICAvLyB0aGUg
ZnV0dXJlKQorICAgIHNob3VsZEJlVHJ1ZSgidW5ldmFsZigiK2ZuKyIpLmluZGV4T2YoJyh4LCB5
KScpID49IDAiKTsKKworfQorCitmdW5jdGlvbiB0ZXN0VG9TdHJpbmdBbmRSVEZhaWx1cmUoZm4p
Cit7CisgICAgdGVzdFRvU3RyaW5nKGZuKTsKKworICAgIC8vIGNoZWNrIHRoYXQgZnVuY3Rpb24g
Y2FsbCBwcm9kdWNlcyBydW4tdGltZSBleGNlcHRpb24KKyAgICBzaG91bGRUaHJvdygiIitmbisg
IigxLCAyLCAzKTsiKTsKKworICAgIC8vIGNoZWNrIHRoYXQgZnVuY3Rpb24gY2FsbCBwcm9kdWNl
cyBydW4tdGltZSBleGNlcHRpb24gYWZ0ZXIgZXZhbCh1bmV2YWxmKQorICAgIHNob3VsZFRocm93
KCJldmFsKHVuZXZhbGYoIitmbisgIikpKDEsIDIsIDMpOyIpOworfQorCitmdW5jdGlvbiB0ZXN0
VG9TdHJpbmdBbmRSZXR1cm4oZm4sIHAxLCBwMiwgcmV0dmFsKQoreworCisgICAgdGVzdFRvU3Ry
aW5nKGZuKTsKKworICAgIC8vIGNoZWNrIHRoYXQgZnVuY3Rpb24gY2FsbCBwcm9kdWNlcyBjb3Jy
ZWN0IHJlc3VsdAorICAgIHNob3VsZEJlKCIiICsgZm4gKyAiKCIgKyBwMSArICIsICIgKyBwMiAr
Iik7IiwgcmV0dmFsKTsKKworICAgIC8vIGNoZWNrIHRoYXQgZnVuY3Rpb24gY2FsbCBwcm9kdWNl
cyBjb3JyZWN0IHJlc3VsdCBhZnRlciBldmFsKHVuZXZhbGYpCisgICAgc2hvdWxkQmUoImV2YWwo
dW5ldmFsZigiK2ZuKyAiKSkiICsgIigiICsgcDEgKyAiLCAiICsgcDIgKyIpOyIsIHJldHZhbCk7
Cit9CisKKwordGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKCJwcmVmaXhfc2hvdWxkX3ByZXNlcnZl
X3BhcmVucyIpOwordGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKCJwb3N0Zml4X3Nob3VsZF9wcmVz
ZXJ2ZV9wYXJlbnMiKTsKK3Rlc3RUb1N0cmluZ0FuZFJURmFpbHVyZSgiYm90aF9zaG91bGRfcHJl
c2VydmVfcGFyZW5zIik7Cit0ZXN0VG9TdHJpbmdBbmRSVEZhaWx1cmUoInByZWZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zX211bHRpIik7Cit0ZXN0VG9TdHJpbmdBbmRSVEZhaWx1cmUoInBvc3Rm
aXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSIpOwordGVzdFRvU3RyaW5nQW5kUlRGYWls
dXJlKCJwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEiKTsKK3Rlc3RUb1N0cmlu
Z0FuZFJURmFpbHVyZSgicG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSIpOwor
dGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKCJwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aTIiKTsKK3Rlc3RUb1N0cmluZ0FuZFJURmFpbHVyZSgicG9zdGZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpMiIpOworCit0ZXN0VG9TdHJpbmdBbmRSZXR1cm4oInR5cGVvZl9zaG91
bGRfcHJlc2VydmVfcGFyZW5zIiwgIidhJyIsIDEsICInbnVtYmVyJyIpOwordGVzdFRvU3RyaW5n
QW5kUmV0dXJuKCJ0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczEiLCAiJ2EnIiwgMSwgIidu
dW1iZXInIik7Cit0ZXN0VG9TdHJpbmdBbmRSZXR1cm4oInR5cGVvZl9zaG91bGRfcHJlc2VydmVf
cGFyZW5zMiIsICInYSciLCAxLCAiJ251bWJlciciKTsKK3Rlc3RUb1N0cmluZ0FuZFJldHVybigi
dHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkiLCAiJ2EnIiwgMSwgIidudW1iZXIn
Iik7CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14703</attachid>
            <date>2007-05-24 06:57:42 -0700</date>
            <delta_ts>2007-05-24 21:58:07 -0700</delta_ts>
            <desc>Patch for toString()ing pre/postfix/typeof operators that contain grouping expression. </desc>
            <filename>toString-elision-trailing-comma-2.diff</filename>
            <type>text/plain</type>
            <size>8721</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDQ5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDUtMTMgIEtpbW1vIEtp
bm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIEZpeGVzIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNjIyIChEZWNvbXBpbGVyCisgICAgICAgICAgb21pdHMgdHJhaWxpbmcgY29tbWEg
aW4gYXJyYXkgbGl0ZXJhbCkKKworCSAgICAgKiBranMvbm9kZXMyc3RyaW5nLmNwcDoKKwkgICAg
IChBcnJheU5vZGU6OnN0cmVhbVRvKTogcHJpbnQgZXh0cmEgJywnIGluIGNhc2UgdGhlcmUgd2Fz
IGVsaXNpb24KKwkgICAgIGNvbW1hcyAoY2hlY2sgb3B0IG1lbWJlciB2YXIpIGFuZCBhcnJheSBl
bGVtZW50cyBwcmVzZW50CisJICAgICBpbiB0aGUgYXJyYXkgZXhwcmVzc2lvbgorCiAyMDA3LTA1
LTExICBLaW1tbyBLaW5udW5lbiAgPGtpbW1va0Bpa2kuZmk+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4uCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNwcAkocmV2aXNpb24g
MjE0NDkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMyc3RyaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTc3LDYgKzE3NywxMCBAQCB2b2lkIEFycmF5Tm9kZTo6c3RyZWFtVG8oU291cmNl
U3RyZWFtICZzCiAgIHMgPDwgIlsiIDw8IGVsZW1lbnQ7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwg
ZWxpc2lvbjsgaSsrKQogICAgIHMgPDwgIiwiOworICAvLyBQYXJzZXIgY29uc3VtZXMgb25lIGVs
aXNpb24gY29tbWEgaWYgdGhlcmUncyBhcnJheSBlbGVtZW50cyAKKyAgLy8gcHJlc2VudCBpbiB0
aGUgZXhwcmVzc2lvbi4KKyAgaWYgKG9wdCAmJiBlbGVtZW50KQorICAgIHMgPDwgIiwiOwogICBz
IDw8ICJdIjsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0NDkpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwNy0wNS0xMyAgS2lt
bW8gS2lubnVuZW4gIDxraW1tb2tAaWtpLmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIC0gVGVzdHMgZm9yIGZpeCB0byBodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYyMiAoRGVjb21waWxlciBvbWl0cworICAgICAgICAg
IHRyYWlsaW5nIGNvbW1hIGluIGFycmF5IGxpdGVyYWwpCisgICAgICAgICogZmFzdC9qcy9yZXNv
dXJjZXMvdG9TdHJpbmctZWxpc2lvbi10cmFpbGluZy1jb21tYS5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9qcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5nLWNvbW1hLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5nLWNvbW1h
Lmh0bWw6IEFkZGVkLgorCiAyMDA3LTA1LTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvanMvdG9TdHJpbmctZWxpc2lvbi10cmFpbGluZy1jb21tYS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5n
LWNvbW1hLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMv
dG9TdHJpbmctZWxpc2lvbi10cmFpbGluZy1jb21tYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0b1N0cmluZygpIHJvdW5k
LXRyaXAgb24gYSBmdW5jdGlvbiB0aGF0IGhhcyBhIGFycmF5IHdpdGggZWxpc2lvbiBkb2VzIG5v
dCByZW1vdmUgYSBjb21tYS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dHlwZW9mIHVuZGVmaW5lZCBpcyAndW5kZWZpbmVkJworUEFTUyBmMSgpLmxlbmd0aCBpcyAxCitQ
QVNTIGYxKClbMS0xXSBpcyB1bmRlZmluZWQKK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYoZjEp
KSkgaXMgdW5ldmFsZihmMSkKK1BBU1MgZXZhbCh1bmV2YWxmKGYxKSkoKS5sZW5ndGggaXMgMQor
UEFTUyBldmFsKHVuZXZhbGYoZjEpKSgpWzEtMV0gaXMgdW5kZWZpbmVkCitQQVNTIGYyKCkubGVu
Z3RoIGlzIDEKK1BBU1MgZjIoKVsxLTFdIGlzIDEKK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYo
ZjIpKSkgaXMgdW5ldmFsZihmMikKK1BBU1MgZXZhbCh1bmV2YWxmKGYyKSkoKS5sZW5ndGggaXMg
MQorUEFTUyBldmFsKHVuZXZhbGYoZjIpKSgpWzEtMV0gaXMgMQorUEFTUyBmMygpLmxlbmd0aCBp
cyAxCitQQVNTIGYzKClbMS0xXSBpcyAxCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGYzKSkp
IGlzIHVuZXZhbGYoZjMpCitQQVNTIGV2YWwodW5ldmFsZihmMykpKCkubGVuZ3RoIGlzIDEKK1BB
U1MgZXZhbCh1bmV2YWxmKGYzKSkoKVsxLTFdIGlzIDEKK1BBU1MgZjQoKS5sZW5ndGggaXMgMgor
UEFTUyBmNCgpWzItMV0gaXMgdW5kZWZpbmVkCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGY0
KSkpIGlzIHVuZXZhbGYoZjQpCitQQVNTIGV2YWwodW5ldmFsZihmNCkpKCkubGVuZ3RoIGlzIDIK
K1BBU1MgZXZhbCh1bmV2YWxmKGY0KSkoKVsyLTFdIGlzIHVuZGVmaW5lZAorUEFTUyBmNSgpLmxl
bmd0aCBpcyAzCitQQVNTIGY1KClbMy0xXSBpcyB1bmRlZmluZWQKK1BBU1MgdW5ldmFsZihldmFs
KHVuZXZhbGYoZjUpKSkgaXMgdW5ldmFsZihmNSkKK1BBU1MgZXZhbCh1bmV2YWxmKGY1KSkoKS5s
ZW5ndGggaXMgMworUEFTUyBldmFsKHVuZXZhbGYoZjUpKSgpWzMtMV0gaXMgdW5kZWZpbmVkCitQ
QVNTIGY2KCkubGVuZ3RoIGlzIDQKK1BBU1MgZjYoKVs0LTFdIGlzIDQKK1BBU1MgdW5ldmFsZihl
dmFsKHVuZXZhbGYoZjYpKSkgaXMgdW5ldmFsZihmNikKK1BBU1MgZXZhbCh1bmV2YWxmKGY2KSko
KS5sZW5ndGggaXMgNAorUEFTUyBldmFsKHVuZXZhbGYoZjYpKSgpWzQtMV0gaXMgNAorUEFTUyBm
NygpLmxlbmd0aCBpcyAyCitQQVNTIGY3KClbMi0xXSBpcyAyCitQQVNTIHVuZXZhbGYoZXZhbCh1
bmV2YWxmKGY3KSkpIGlzIHVuZXZhbGYoZjcpCitQQVNTIGV2YWwodW5ldmFsZihmNykpKCkubGVu
Z3RoIGlzIDIKK1BBU1MgZXZhbCh1bmV2YWxmKGY3KSkoKVsyLTFdIGlzIDIKK1BBU1MgZjgoKS5s
ZW5ndGggaXMgMworUEFTUyBmOCgpWzMtMV0gaXMgdW5kZWZpbmVkCitQQVNTIHVuZXZhbGYoZXZh
bCh1bmV2YWxmKGY4KSkpIGlzIHVuZXZhbGYoZjgpCitQQVNTIGV2YWwodW5ldmFsZihmOCkpKCku
bGVuZ3RoIGlzIDMKK1BBU1MgZXZhbCh1bmV2YWxmKGY4KSkoKVszLTFdIGlzIHVuZGVmaW5lZAor
UEFTUyBmOSgpLmxlbmd0aCBpcyA1CitQQVNTIGY5KClbNS0xXSBpcyA1CitQQVNTIHVuZXZhbGYo
ZXZhbCh1bmV2YWxmKGY5KSkpIGlzIHVuZXZhbGYoZjkpCitQQVNTIGV2YWwodW5ldmFsZihmOSkp
KCkubGVuZ3RoIGlzIDUKK1BBU1MgZXZhbCh1bmV2YWxmKGY5KSkoKVs1LTFdIGlzIDUKK1BBU1Mg
ZjEwKCkubGVuZ3RoIGlzIDUKK1BBU1MgZjEwKClbNS0xXSBpcyB1bmRlZmluZWQKK1BBU1MgdW5l
dmFsZihldmFsKHVuZXZhbGYoZjEwKSkpIGlzIHVuZXZhbGYoZjEwKQorUEFTUyBldmFsKHVuZXZh
bGYoZjEwKSkoKS5sZW5ndGggaXMgNQorUEFTUyBldmFsKHVuZXZhbGYoZjEwKSkoKVs1LTFdIGlz
IHVuZGVmaW5lZAorUEFTUyBmMTEoKS5sZW5ndGggaXMgNgorUEFTUyBmMTEoKVs2LTFdIGlzIDYK
K1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYoZjExKSkpIGlzIHVuZXZhbGYoZjExKQorUEFTUyBl
dmFsKHVuZXZhbGYoZjExKSkoKS5sZW5ndGggaXMgNgorUEFTUyBldmFsKHVuZXZhbGYoZjExKSko
KVs2LTFdIGlzIDYKK1BBU1MgZjEyKCkubGVuZ3RoIGlzIDIKK1BBU1MgZjEyKClbMi0xXSBpcyB1
bmRlZmluZWQKK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYoZjEyKSkpIGlzIHVuZXZhbGYoZjEy
KQorUEFTUyBldmFsKHVuZXZhbGYoZjEyKSkoKS5sZW5ndGggaXMgMgorUEFTUyBldmFsKHVuZXZh
bGYoZjEyKSkoKVsyLTFdIGlzIHVuZGVmaW5lZAorUEFTUyBmMTMoKS5sZW5ndGggaXMgMgorUEFT
UyBmMTMoKVsyLTFdIGlzIHVuZGVmaW5lZAorUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihmMTMp
KSkgaXMgdW5ldmFsZihmMTMpCitQQVNTIGV2YWwodW5ldmFsZihmMTMpKSgpLmxlbmd0aCBpcyAy
CitQQVNTIGV2YWwodW5ldmFsZihmMTMpKSgpWzItMV0gaXMgdW5kZWZpbmVkCitQQVNTIGYxNCgp
Lmxlbmd0aCBpcyAzCitQQVNTIGYxNCgpWzMtMV0gaXMgdW5kZWZpbmVkCitQQVNTIHVuZXZhbGYo
ZXZhbCh1bmV2YWxmKGYxNCkpKSBpcyB1bmV2YWxmKGYxNCkKK1BBU1MgZXZhbCh1bmV2YWxmKGYx
NCkpKCkubGVuZ3RoIGlzIDMKK1BBU1MgZXZhbCh1bmV2YWxmKGYxNCkpKClbMy0xXSBpcyB1bmRl
ZmluZWQKK1BBU1MgZjE1KCkubGVuZ3RoIGlzIDIKK1BBU1MgZjE1KClbMi0xXSBpcyB1bmRlZmlu
ZWQKK1BBU1MgdW5ldmFsZihldmFsKHVuZXZhbGYoZjE1KSkpIGlzIHVuZXZhbGYoZjE1KQorUEFT
UyBldmFsKHVuZXZhbGYoZjE1KSkoKS5sZW5ndGggaXMgMgorUEFTUyBldmFsKHVuZXZhbGYoZjE1
KSkoKVsyLTFdIGlzIHVuZGVmaW5lZAorUEFTUyBmMTYoKS5sZW5ndGggaXMgMworUEFTUyBmMTYo
KVszLTFdIGlzIHVuZGVmaW5lZAorUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihmMTYpKSkgaXMg
dW5ldmFsZihmMTYpCitQQVNTIGV2YWwodW5ldmFsZihmMTYpKSgpLmxlbmd0aCBpcyAzCitQQVNT
IGV2YWwodW5ldmFsZihmMTYpKSgpWzMtMV0gaXMgdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5nLWNvbW1hLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5nLWNvbW1hLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLWVsaXNpb24tdHJh
aWxpbmctY29tbWEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90b1N0cmluZy1lbGlzaW9uLXRyYWlsaW5nLWNv
bW1hLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
cmVzb3VyY2VzL3RvU3RyaW5nLWVsaXNpb24tdHJhaWxpbmctY29tbWEuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9TdHJpbmctZWxpc2lvbi10cmFpbGlu
Zy1jb21tYS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L3RvU3RyaW5nLWVsaXNpb24tdHJhaWxpbmctY29tbWEuanMJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTExIEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdG9TdHJpbmco
KSByb3VuZC10cmlwIG9uIGEgZnVuY3Rpb24gdGhhdCBoYXMgYSBhcnJheSB3aXRoIGVsaXNpb24g
ZG9lcyBub3QgcmVtb3ZlIGEgY29tbWEuIgorKTsKKworZnVuY3Rpb24gZjEoKSB7CisgICAgcmV0
dXJuIFssXTsKK30KKworZnVuY3Rpb24gZjIoKSB7CisgICAgcmV0dXJuIFsxXTsKK30KKworZnVu
Y3Rpb24gZjMoKSB7CisgICAgcmV0dXJuIFsxLF07Cit9CisKKy8vIHRoaXMgaXMgdGhlIGZpcnN0
IHRlc3RjYXNlIHRoYXQgcHJvdmVzIHRoYXQgdHJhaWxpbmcKKy8vIGVsaXNpb24gY29tbWEgaXMg
bm90IHJlbW92ZWQKK2Z1bmN0aW9uIGY0KCkgeworICAgIHJldHVybiBbMSwsXTsKK30KKworZnVu
Y3Rpb24gZjUoKSB7CisgICAgcmV0dXJuIFsxLCwsXTsKK30KK2Z1bmN0aW9uIGY2KCkgeworICAg
IHJldHVybiBbMSwsLDRdOworfQorCitmdW5jdGlvbiBmNygpIHsKKyAgICByZXR1cm4gWywyLF07
Cit9CisKK2Z1bmN0aW9uIGY4KCkgeworICAgIHJldHVybiBbLDIsLF07Cit9CisKK2Z1bmN0aW9u
IGY5KCkgeworICAgIHJldHVybiBbLDIsLCw1XTsKK30KKworZnVuY3Rpb24gZjEwKCkgeworICAg
IHJldHVybiBbLCwzLCwsXTsKK30KKworZnVuY3Rpb24gZjExKCkgeworICAgIHJldHVybiBbLCwz
LCwsNl07Cit9CisKK2Z1bmN0aW9uIGYxMigpIHsKKyAgICByZXR1cm4gWyx1bmRlZmluZWRdOwor
fQorCitmdW5jdGlvbiBmMTMoKSB7CisgICAgcmV0dXJuIFssdW5kZWZpbmVkLF07Cit9CisKK2Z1
bmN0aW9uIGYxNCgpIHsKKyAgICByZXR1cm4gWyx1bmRlZmluZWQsLF07Cit9CisKK2Z1bmN0aW9u
IGYxNSgpIHsKKyAgICByZXR1cm4gWywsXTsKK30KKworZnVuY3Rpb24gZjE2KCkgeworICAgIHJl
dHVybiBbLCwsXTsKK30KKworc2hvdWxkQmUoInR5cGVvZiB1bmRlZmluZWQiLCAiJ3VuZGVmaW5l
ZCciKTsKKwordW5ldmFsZiA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuICcoJyArIHgudG9TdHJpbmco
KSArICcpJzsgfTsKKworZnVuY3Rpb24gdGVzdFRvU3RyaW5nQW5kTGVuZ3RoKGZuLCBsZW5ndGgs
IGxhc3RFbGVtZW50KQoreworICAgIC8vIGNoZWNrIHRoYXQgYXJyYXkgbGVuZ3RoIGlzIGNvcnJl
Y3QKKyAgICBzaG91bGRCZSgiIisgZm4gKyIoKS5sZW5ndGgiLCAiIiArIGxlbmd0aCk7CisKKyAg
ICAvLyBjaGVjayB0aGF0IGxhc3QgZWxlbWVudCBpcyB3aGF0IGl0IGlzIHN1cHBvc2VkIHRvIGJl
CisgICAgc2hvdWxkQmUoIiIrIGZuICsiKClbIiArIGxlbmd0aCArIi0xXSIsICIiICsgbGFzdEVs
ZW1lbnQpOworCisgICAgLy8gY2hlY2sgdGhhdCB0b1N0cmluZyByZXN1bHQgZXZhbHVhdGVzIHRv
IGNvZGUgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgLy8gYW5kIHRoYXQgdG9TdHJpbmcgZG9l
c24ndCByZW1vdmUgdGhlIHRyYWlsaW5nIGVsaXNpb24gY29tbWEuCisgICAgc2hvdWxkQmUoInVu
ZXZhbGYoZXZhbCh1bmV2YWxmKCIrZm4rIikpKSIsICJ1bmV2YWxmKCIgKyBmbiArICIpIik7CisK
KyAgICAvLyBjaGVjayB0aGF0IHRvU3RyaW5nKCllZCBmdW5jdGlvbnMgc2hvdWxkIHJldGFpbiBz
ZW1hbnRpY3MKKworICAgIHNob3VsZEJlKCJldmFsKHVuZXZhbGYoIitmbisiKSkoKS5sZW5ndGgi
LCAiIitsZW5ndGgpOworICAgIHNob3VsZEJlKCJldmFsKHVuZXZhbGYoIitmbisiKSkoKVsiICsg
bGVuZ3RoICsiLTFdIiwgIiIrbGFzdEVsZW1lbnQpOworfQorCisKK3Rlc3RUb1N0cmluZ0FuZExl
bmd0aCgiZjEiLCAxKTsKK3Rlc3RUb1N0cmluZ0FuZExlbmd0aCgiZjIiLCAxLCAxKTsKK3Rlc3RU
b1N0cmluZ0FuZExlbmd0aCgiZjMiLCAxLDEpOwordGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmNCIs
IDIpOwordGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmNSIsIDMpOwordGVzdFRvU3RyaW5nQW5kTGVu
Z3RoKCJmNiIsIDQsIDQpOwordGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmNyIsIDIsIDIpOwordGVz
dFRvU3RyaW5nQW5kTGVuZ3RoKCJmOCIsIDMpOwordGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmOSIs
IDUsIDUpOwordGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmMTAiLCA1KTsKK3Rlc3RUb1N0cmluZ0Fu
ZExlbmd0aCgiZjExIiwgNiwgNik7Cit0ZXN0VG9TdHJpbmdBbmRMZW5ndGgoImYxMiIsIDIpOwor
dGVzdFRvU3RyaW5nQW5kTGVuZ3RoKCJmMTMiLCAyKTsKK3Rlc3RUb1N0cmluZ0FuZExlbmd0aCgi
ZjE0IiwgMyk7Cit0ZXN0VG9TdHJpbmdBbmRMZW5ndGgoImYxNSIsIDIpOwordGVzdFRvU3RyaW5n
QW5kTGVuZ3RoKCJmMTYiLCAzKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14719</attachid>
            <date>2007-05-25 05:12:54 -0700</date>
            <delta_ts>2007-05-25 08:07:27 -0700</delta_ts>
            <desc>The correct patch (same as the first one, except the LayoutTests/ChangeLog)</desc>
            <filename>toString-unary-expr-preserve-parens-3.diff</filename>
            <type>text/plain</type>
            <size>14405</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzUwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDctMDUtMjUgIEtpbW1vIEtp
bm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjIzIChEZWNvbXBpbGF0aW9uIG9mIGZ1bmN0aW9uCisgICAgICAgICAgZG9lc24ndCBjb21w
aWxlIHdpdGggIisrKHgseSkiKQorICAgICAgICAtIENyZWF0ZSB0aGUgZXJyb3Igbm9kZSBiYXNl
ZCBvbiB0aGUgYWN0dWFsIG5vZGUsIG5vdCB0aGUgbm9kZSBpbnNpZGUKKyAgICAgICAgICBwYXJl
bnRoZXNpcworICAgICAgICAtIEZpeCBhcHBsaWVzIHRvIHBvc3RmaXgsIHByZWZpeCBhbmQgdHlw
ZW9mIG9wZXJhdG9ycworICAgICAgICAtIFByb2R1Y2VzIHJ1bi10aW1lIFJlZmVyZW5jZUVycm9y
IGxpa2Ugb3RoZXIgbm9uLWx2YWx1ZSBhc3NpZ25tZW50cyBldGMuCisKKyAgICAgICAgKiBranMv
Z3JhbW1hci55OiBDcmVhdGUge1ByZWZpeCxQb3N0Zml4fUVycm9yTm9kZSBiYXNlZCBvbiB0aGUg
YWN0dWFsIG5vZGUsCisgICAgICAgIG5vdCB0aGUgYmFzZWQgb24gdGhlIG5vZGUgcmV0dXJuZWQg
YnkgIm5vZGVJbnNpZGVBbGxQYXJlbnMoKSIuIFNhbWUgZm9yCisgICAgICAgIFR5cGVPZlZhbHVl
Tm9kZS4KKwogMjAwNy0wNS0yNCAgTHVjaWFubyBNb250YW5hcm8gIDxtaWtlbGltYUBjaXJ1bGxh
Lm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbgpJbmRleDogSmF2YVNjcmlwdENvcmUv
a2pzL2dyYW1tYXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55
CShyZXZpc2lvbiAyMTc1MCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHdvcmtp
bmcgY29weSkKQEAgLTg5NSw3ICs4OTUsNyBAQCBzdGF0aWMgTm9kZSogbWFrZVByZWZpeE5vZGUo
Tm9kZSAqZXhwciwgCiAgICAgTm9kZSAqbiA9IGV4cHItPm5vZGVJbnNpZGVBbGxQYXJlbnMoKTsK
IAogICAgIGlmICghbi0+aXNMb2NhdGlvbigpKQotICAgICAgICByZXR1cm4gbmV3IFByZWZpeEVy
cm9yTm9kZShuLCBvcCk7CisgICAgICAgIHJldHVybiBuZXcgUHJlZml4RXJyb3JOb2RlKGV4cHIs
IG9wKTsKICAgICAKICAgICBpZiAobi0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29s
dmVOb2RlICpyZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUgKj4obik7CkBAIC05MTUs
NyArOTE1LDcgQEAgc3RhdGljIE5vZGUqIG1ha2VQb3N0Zml4Tm9kZShOb2RlKiBleHByLAogICAg
IE5vZGUgKm4gPSBleHByLT5ub2RlSW5zaWRlQWxsUGFyZW5zKCk7CiAKICAgICBpZiAoIW4tPmlz
TG9jYXRpb24oKSkKLSAgICAgICAgcmV0dXJuIG5ldyBQb3N0Zml4RXJyb3JOb2RlKG4sIG9wKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBQb3N0Zml4RXJyb3JOb2RlKGV4cHIsIG9wKTsKICAgICAKICAg
ICBpZiAobi0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29sdmVOb2RlICpyZXNvbHZl
ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUgKj4obik7CkBAIC05NjMsNyArOTYzLDcgQEAgc3Rh
dGljIE5vZGUgKm1ha2VUeXBlT2ZOb2RlKE5vZGUgKmV4cHIpCiAgICAgICAgIFJlc29sdmVOb2Rl
ICpyZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUgKj4obik7CiAgICAgICAgIHJldHVy
biBuZXcgVHlwZU9mUmVzb2x2ZU5vZGUocmVzb2x2ZS0+aWRlbnRpZmllcigpKTsKICAgICB9IGVs
c2UKLSAgICAgICAgcmV0dXJuIG5ldyBUeXBlT2ZWYWx1ZU5vZGUobik7CisgICAgICAgIHJldHVy
biBuZXcgVHlwZU9mVmFsdWVOb2RlKGV4cHIpOwogfQogCiBzdGF0aWMgTm9kZSAqbWFrZURlbGV0
ZU5vZGUoTm9kZSAqZXhwcikKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzUwKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDUtMjUg
IEtpbW1vIEtpbm51bmVuICA8a2ltbW9rQGlraS5maT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNjIzIChEZWNvbXBpbGF0aW9uIG9mIGZ1bmN0aW9uCisgICAgICAgICAgZG9l
c24ndCBjb21waWxlIHdpdGggIisrKHgseSkiKQorICAgICAgICAtIENvbnRhaW5zIHRlc3RzIGZv
ciBncm91cGluZyBleHByZXNzaW9uIHRoYXQgaXMgaW5zaWRlIHR5cGVvZiBvciBwcmVmaXgvcG9z
dGZpeAorICAgICAgICAgIGV4cHJlc3Npb24KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy90
b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMuanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9zdGZp
eC1wcmVzZXJ2ZS1wYXJlbnMuaHRtbDogQWRkZWQuCisKIDIwMDctMDUtMjQgIFJvYiBCdWlzICA8
YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1wYXJlbnMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctcHJl
Zml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFy
ZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorVGhpcyB0ZXN0
IGNoZWNrcyB0aGF0IHRvU3RyaW5nKCkgcm91bmQtdHJpcCBvbiBhIGZ1bmN0aW9uIHRoYXQgaGFz
IHByZWZpeCwgcG9zdGZpeCBhbmQgdHlwZW9mIG9wZXJhdG9ycyBhcHBsaWVkIHRvIGdyb3VwIGV4
cHJlc3Npb24gd2lsbCBub3QgcmVtb3ZlIHRoZSBncm91cGluZy4gQWxzbyBjaGVja3MgdGhhdCBl
dmFsdWF0aW9uIG9mIHN1Y2ggYSBleHByZXNzaW9uIHByb2R1Y2VzIHJ1bi10aW1lIGV4Y2VwdGlv
bgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB1bmV2YWxmKGV2YWwodW5l
dmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpKSBpcyB1bmV2YWxmKHByZWZpeF9z
aG91bGRfcHJlc2VydmVfcGFyZW5zKQorUEFTUyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgcHJlZml4X3No
b3VsZF9wcmVzZXJ2ZV9wYXJlbnMoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VF
cnJvcjogUHJlZml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSBy
ZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJl
bnMpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5jZUVycm9yOiBQcmVmaXggKysg
b3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVyZW5jZS4uCitQQVNT
IHVuZXZhbGYoZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpKSBp
cyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykKK1BBU1MgdW5ldmFsZihw
b3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMg
dHJ1ZQorUEFTUyBwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoMSwgMiwgMyk7IHRocmV3
IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUG9zdGZpeCArKyBvcGVyYXRvciBhcHBsaWVkIHRv
IHZhbHVlIHRoYXQgaXMgbm90IGEgcmVmZXJlbmNlLi4KK1BBU1MgZXZhbCh1bmV2YWxmKHBvc3Rm
aXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVucykpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVm
ZXJlbmNlRXJyb3I6IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlz
IG5vdCBhIHJlZmVyZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKGJvdGhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVucykpKSBpcyB1bmV2YWxmKGJvdGhfc2hvdWxkX3ByZXNlcnZlX3BhcmVu
cykKK1BBU1MgdW5ldmFsZihib3RoX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpLmluZGV4T2YoJyh4
LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBib3RoX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoMSwg
MiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjogUHJlZml4ICsrIG9wZXJhdG9y
IGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVu
ZXZhbGYoYm90aF9zaG91bGRfcHJlc2VydmVfcGFyZW5zKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2Vw
dGlvbiBSZWZlcmVuY2VFcnJvcjogUHJlZml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUg
dGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihwcmVm
aXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpKSBpcyB1bmV2YWxmKHByZWZpeF9zaG91
bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKQorUEFTUyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJl
c2VydmVfcGFyZW5zX211bHRpKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1Mg
cHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoMSwgMiwgMyk7IHRocmV3IGV4Y2Vw
dGlvbiBSZWZlcmVuY2VFcnJvcjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUg
dGhhdCBpcyBub3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocHJlZml4X3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkpKSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVy
ZW5jZUVycm9yOiBQcmVmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5v
dCBhIHJlZmVyZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpKSBpcyB1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3ByZXNl
cnZlX3BhcmVuc19tdWx0aSkKK1BBU1MgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwb3N0Zml4
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBS
ZWZlcmVuY2VFcnJvcjogUG9zdGZpeCAtLSBvcGVyYXRvciBhcHBsaWVkIHRvIHZhbHVlIHRoYXQg
aXMgbm90IGEgcmVmZXJlbmNlLi4KK1BBU1MgZXZhbCh1bmV2YWxmKHBvc3RmaXhfc2hvdWxkX3By
ZXNlcnZlX3BhcmVuc19tdWx0aSkpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNl
RXJyb3I6IFBvc3RmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBh
IHJlZmVyZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJl
c2VydmVfcGFyZW5zX211bHRpMSkpKSBpcyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVf
cGFyZW5zX211bHRpMSkKK1BBU1MgdW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVu
c19tdWx0aTEpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwcmVmaXhfc2hv
dWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZl
cmVuY2VFcnJvcjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBu
b3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnNfbXVsdGkxKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJv
cjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZl
cmVuY2UuLgorUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnNfbXVsdGkxKSkpIGlzIHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFy
ZW5zX211bHRpMSkKK1BBU1MgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkxKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgcG9zdGZpeF9zaG91
bGRfcHJlc2VydmVfcGFyZW5zX211bHRpMSgxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVy
ZW5jZUVycm9yOiBQb3N0Zml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBu
b3QgYSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpMSkpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJy
b3I6IFBvc3RmaXggLS0gb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJl
ZmVyZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2Vy
dmVfcGFyZW5zX211bHRpMikpKSBpcyB1bmV2YWxmKHByZWZpeF9zaG91bGRfcHJlc2VydmVfcGFy
ZW5zX211bHRpMikKK1BBU1MgdW5ldmFsZihwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19t
dWx0aTIpLmluZGV4T2YoJyh4LCB5KScpID49IDAgaXMgdHJ1ZQorUEFTUyBwcmVmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuc19tdWx0aTIoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVu
Y2VFcnJvcjogUHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3Qg
YSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkyKSkoMSwgMiwgMyk7IHRocmV3IGV4Y2VwdGlvbiBSZWZlcmVuY2VFcnJvcjog
UHJlZml4IC0tIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3QgYSByZWZlcmVu
Y2UuLgorUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkyKSkpIGlzIHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5z
X211bHRpMikKK1BBU1MgdW5ldmFsZihwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVs
dGkyKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgcG9zdGZpeF9zaG91bGRf
cHJlc2VydmVfcGFyZW5zX211bHRpMigxLCAyLCAzKTsgdGhyZXcgZXhjZXB0aW9uIFJlZmVyZW5j
ZUVycm9yOiBQb3N0Zml4ICsrIG9wZXJhdG9yIGFwcGxpZWQgdG8gdmFsdWUgdGhhdCBpcyBub3Qg
YSByZWZlcmVuY2UuLgorUEFTUyBldmFsKHVuZXZhbGYocG9zdGZpeF9zaG91bGRfcHJlc2VydmVf
cGFyZW5zX211bHRpMikpKDEsIDIsIDMpOyB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6
IFBvc3RmaXggKysgb3BlcmF0b3IgYXBwbGllZCB0byB2YWx1ZSB0aGF0IGlzIG5vdCBhIHJlZmVy
ZW5jZS4uCitQQVNTIHVuZXZhbGYoZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVf
cGFyZW5zKSkpIGlzIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpCitQQVNT
IHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMpLmluZGV4T2YoJyh4LCB5KScp
ID49IDAgaXMgdHJ1ZQorUEFTUyB0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVucygnYScsIDEp
OyBpcyAnbnVtYmVyJworUEFTUyBldmFsKHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMpKSgnYScsIDEpOyBpcyAnbnVtYmVyJworUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZih0
eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczEpKSkgaXMgdW5ldmFsZih0eXBlb2Zfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuczEpCitQQVNTIHVuZXZhbGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnMxKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1MgdHlwZW9mX3Nob3Vs
ZF9wcmVzZXJ2ZV9wYXJlbnMxKCdhJywgMSk7IGlzICdudW1iZXInCitQQVNTIGV2YWwodW5ldmFs
Zih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczEpKSgnYScsIDEpOyBpcyAnbnVtYmVyJwor
UEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczIp
KSkgaXMgdW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczIpCitQQVNTIHVuZXZh
bGYodHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMyKS5pbmRleE9mKCcoeCwgeSknKSA+PSAw
IGlzIHRydWUKK1BBU1MgdHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMyKCdhJywgMSk7IGlz
ICdudW1iZXInCitQQVNTIGV2YWwodW5ldmFsZih0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVu
czIpKSgnYScsIDEpOyBpcyAnbnVtYmVyJworUEFTUyB1bmV2YWxmKGV2YWwodW5ldmFsZih0eXBl
b2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aSkpKSBpcyB1bmV2YWxmKHR5cGVvZl9zaG91
bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKQorUEFTUyB1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJl
c2VydmVfcGFyZW5zX211bHRpKS5pbmRleE9mKCcoeCwgeSknKSA+PSAwIGlzIHRydWUKK1BBU1Mg
dHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoJ2EnLCAxKTsgaXMgJ251bWJlcicK
K1BBU1MgZXZhbCh1bmV2YWxmKHR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKSko
J2EnLCAxKTsgaXMgJ251bWJlcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLXByZWZp
eC1wb3N0Zml4LXByZXNlcnZlLXBhcmVucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4
LXByZXNlcnZlLXBhcmVucy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvU3RyaW5nLXByZWZpeC1wb3N0Zml4
LXByZXNlcnZlLXBhcmVucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3Jlc291cmNlcy90b1N0cmluZy1wcmVmaXgtcG9zdGZpeC1wcmVzZXJ2ZS1w
YXJlbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9T
dHJpbmctcHJlZml4LXBvc3RmaXgtcHJlc2VydmUtcGFyZW5zLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvdG9TdHJpbmctcHJlZml4LXBvc3RmaXgtcHJl
c2VydmUtcGFyZW5zLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzNCBAQAorZGVzY3JpcHRp
b24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRvU3RyaW5nKCkgcm91bmQtdHJpcCBvbiBhIGZ1
bmN0aW9uIHRoYXQgaGFzIHByZWZpeCwgcG9zdGZpeCBhbmQgdHlwZW9mIG9wZXJhdG9ycyBhcHBs
aWVkIHRvIGdyb3VwIGV4cHJlc3Npb24gd2lsbCBub3QgcmVtb3ZlIHRoZSBncm91cGluZy4gQWxz
byBjaGVja3MgdGhhdCBldmFsdWF0aW9uIG9mIHN1Y2ggYSBleHByZXNzaW9uIHByb2R1Y2VzIHJ1
bi10aW1lIGV4Y2VwdGlvbiIKKyk7CisKK2Z1bmN0aW9uIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZl
X3BhcmVucyh4LCB5LCB6KSB7CisgICAgKHgseSkrKzsKKyAgICByZXR1cm4geTsKK30KKworZnVu
Y3Rpb24gcHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMoeCwgeSwgeikgeworICAgICsrKHgs
eSk7CisgICAgcmV0dXJuIHg7CisKK30KKworZnVuY3Rpb24gYm90aF9zaG91bGRfcHJlc2VydmVf
cGFyZW5zKHgsIHksIHopIHsKKyAgICArKyh4LHkpLS07CisgICAgcmV0dXJuIHg7CisKK30KKwor
ZnVuY3Rpb24gcG9zdGZpeF9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpKHgsIHksIHopIHsK
KyAgICAoKCh4LHkpKSktLTsKKyAgICByZXR1cm4geDsKK30KKworZnVuY3Rpb24gcHJlZml4X3No
b3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkoeCwgeSwgeikgeworICAgIC0tKCgoeCx5KSkpOwor
ICAgIHJldHVybiB4OworfQorCitmdW5jdGlvbiBib3RoX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkoeCwgeSwgeikgeworICAgICsrKCgoeCx5KSkpLS07CisgICAgcmV0dXJuIHg7Cit9CisK
K2Z1bmN0aW9uIHBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEoeCwgeSwgeikg
eworICAgICgoKHgpKSx5KS0tOworICAgIHJldHVybiB4OworfQorCitmdW5jdGlvbiBwcmVmaXhf
c2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEoeCwgeSwgeikgeworICAgIC0tKCgoeCkpLHkp
OworICAgIHJldHVybiB4OworfQorCitmdW5jdGlvbiBwcmVmaXhfc2hvdWxkX3ByZXNlcnZlX3Bh
cmVuc19tdWx0aTIoeCwgeSwgeikgeworICAgIHZhciB6ID0gMDsKKyAgICAtLSgoKHgpLHkpLHop
OworICAgIHJldHVybiB4OworfQorCitmdW5jdGlvbiBwb3N0Zml4X3Nob3VsZF9wcmVzZXJ2ZV9w
YXJlbnNfbXVsdGkyKHgsIHksIHopIHsKKyAgICB2YXIgeiA9IDA7CisgICAgKCgoeCkseSkseikr
KzsKKyAgICByZXR1cm4geDsKK30KKworLy8gaWYgdGhlc2UgcmV0dXJuIGEgdmFyaWFibGUgKHN1
Y2ggYXMgeSkgaW5zdGVhZCBvZgorLy8gdGhlIHJlc3VsdCBvZiB0eXBlb2YsIHRoaXMgbWVhbnMg
dGhhdCB0aGUgcGFyZW50aGVzaXMKKy8vIGdvdCBsb3N0IHNvbWV3aGVyZS4KK2Z1bmN0aW9uIHR5
cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zKHgsIHksIHopIHsKKyAgICByZXR1cm4gdHlwZW9m
ICh4LHkpOworfQorCitmdW5jdGlvbiB0eXBlb2Zfc2hvdWxkX3ByZXNlcnZlX3BhcmVuczEoeCwg
eSwgeikgeworICAgIHJldHVybiB0eXBlb2YgKCh4LHkpKTsKK30KKworZnVuY3Rpb24gdHlwZW9m
X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMyKHgsIHksIHopIHsKKyAgICB2YXIgeiA9IDMzOworICAg
IHJldHVybiB0eXBlb2YgKHosICh4LHkpKTsKK30KKworZnVuY3Rpb24gdHlwZW9mX3Nob3VsZF9w
cmVzZXJ2ZV9wYXJlbnNfbXVsdGkoeCwgeSwgeikgeworICAgIHZhciB6ID0gMzM7CisgICAgcmV0
dXJuIHR5cGVvZiAoKHosKCgoeCx5KSkpKSk7Cit9CisKK3VuZXZhbGYgPSBmdW5jdGlvbih4KSB7
IHJldHVybiAnKCcgKyB4LnRvU3RyaW5nKCkgKyAnKSc7IH07CisKK2Z1bmN0aW9uIHRlc3RUb1N0
cmluZyhmbikgeworICAgIC8vIGNoZWNrIHRoYXQgdG9TdHJpbmcgcmVzdWx0IGV2YWx1YXRlcyB0
byBjb2RlIHRoYXQgY2FuIGJlIGV2YWx1YXRlZAorICAgIC8vIHRoaXMgZG9lc24ndCBhY3R1YWxs
eSByZXZlYWwgdGhlIGJ1ZyB0aGF0IHRoaXMgdGVzdCBpcyB0ZXN0aW5nCisgICAgc2hvdWxkQmUo
InVuZXZhbGYoZXZhbCh1bmV2YWxmKCIrZm4rIikpKSIsICJ1bmV2YWxmKCIgKyBmbiArICIpIik7
CisKKyAgICAvLyBjaGVjayB0aGF0IGdyb3VwaW5nIG9wZXJhdG9yIGlzIHN0aWxsIHRoZXJlICh0
aGlzIHRlc3QgcmV2ZWFscyB0aGUgYnVnCisgICAgLy8gYnV0IHdpbGwgY3JlYXRlIHBvc3NpYmxl
IGZhbHNlIG5lZ2F0aXZlIGlmIHRvU3RyaW5nIG91dHB1dCBjaGFuZ2VzIGluCisgICAgLy8gdGhl
IGZ1dHVyZSkKKyAgICBzaG91bGRCZVRydWUoInVuZXZhbGYoIitmbisiKS5pbmRleE9mKCcoeCwg
eSknKSA+PSAwIik7CisKK30KKworZnVuY3Rpb24gdGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKGZu
KQoreworICAgIHRlc3RUb1N0cmluZyhmbik7CisKKyAgICAvLyBjaGVjayB0aGF0IGZ1bmN0aW9u
IGNhbGwgcHJvZHVjZXMgcnVuLXRpbWUgZXhjZXB0aW9uCisgICAgc2hvdWxkVGhyb3coIiIrZm4r
ICIoMSwgMiwgMyk7Iik7CisKKyAgICAvLyBjaGVjayB0aGF0IGZ1bmN0aW9uIGNhbGwgcHJvZHVj
ZXMgcnVuLXRpbWUgZXhjZXB0aW9uIGFmdGVyIGV2YWwodW5ldmFsZikKKyAgICBzaG91bGRUaHJv
dygiZXZhbCh1bmV2YWxmKCIrZm4rICIpKSgxLCAyLCAzKTsiKTsKK30KKworZnVuY3Rpb24gdGVz
dFRvU3RyaW5nQW5kUmV0dXJuKGZuLCBwMSwgcDIsIHJldHZhbCkKK3sKKworICAgIHRlc3RUb1N0
cmluZyhmbik7CisKKyAgICAvLyBjaGVjayB0aGF0IGZ1bmN0aW9uIGNhbGwgcHJvZHVjZXMgY29y
cmVjdCByZXN1bHQKKyAgICBzaG91bGRCZSgiIiArIGZuICsgIigiICsgcDEgKyAiLCAiICsgcDIg
KyIpOyIsIHJldHZhbCk7CisKKyAgICAvLyBjaGVjayB0aGF0IGZ1bmN0aW9uIGNhbGwgcHJvZHVj
ZXMgY29ycmVjdCByZXN1bHQgYWZ0ZXIgZXZhbCh1bmV2YWxmKQorICAgIHNob3VsZEJlKCJldmFs
KHVuZXZhbGYoIitmbisgIikpIiArICIoIiArIHAxICsgIiwgIiArIHAyICsiKTsiLCByZXR2YWwp
OworfQorCisKK3Rlc3RUb1N0cmluZ0FuZFJURmFpbHVyZSgicHJlZml4X3Nob3VsZF9wcmVzZXJ2
ZV9wYXJlbnMiKTsKK3Rlc3RUb1N0cmluZ0FuZFJURmFpbHVyZSgicG9zdGZpeF9zaG91bGRfcHJl
c2VydmVfcGFyZW5zIik7Cit0ZXN0VG9TdHJpbmdBbmRSVEZhaWx1cmUoImJvdGhfc2hvdWxkX3By
ZXNlcnZlX3BhcmVucyIpOwordGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKCJwcmVmaXhfc2hvdWxk
X3ByZXNlcnZlX3BhcmVuc19tdWx0aSIpOwordGVzdFRvU3RyaW5nQW5kUlRGYWlsdXJlKCJwb3N0
Zml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkiKTsKK3Rlc3RUb1N0cmluZ0FuZFJURmFp
bHVyZSgicHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNfbXVsdGkxIik7Cit0ZXN0VG9TdHJp
bmdBbmRSVEZhaWx1cmUoInBvc3RmaXhfc2hvdWxkX3ByZXNlcnZlX3BhcmVuc19tdWx0aTEiKTsK
K3Rlc3RUb1N0cmluZ0FuZFJURmFpbHVyZSgicHJlZml4X3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnNf
bXVsdGkyIik7Cit0ZXN0VG9TdHJpbmdBbmRSVEZhaWx1cmUoInBvc3RmaXhfc2hvdWxkX3ByZXNl
cnZlX3BhcmVuc19tdWx0aTIiKTsKKwordGVzdFRvU3RyaW5nQW5kUmV0dXJuKCJ0eXBlb2Zfc2hv
dWxkX3ByZXNlcnZlX3BhcmVucyIsICInYSciLCAxLCAiJ251bWJlciciKTsKK3Rlc3RUb1N0cmlu
Z0FuZFJldHVybigidHlwZW9mX3Nob3VsZF9wcmVzZXJ2ZV9wYXJlbnMxIiwgIidhJyIsIDEsICIn
bnVtYmVyJyIpOwordGVzdFRvU3RyaW5nQW5kUmV0dXJuKCJ0eXBlb2Zfc2hvdWxkX3ByZXNlcnZl
X3BhcmVuczIiLCAiJ2EnIiwgMSwgIidudW1iZXInIik7Cit0ZXN0VG9TdHJpbmdBbmRSZXR1cm4o
InR5cGVvZl9zaG91bGRfcHJlc2VydmVfcGFyZW5zX211bHRpIiwgIidhJyIsIDEsICInbnVtYmVy
JyIpOworCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="6059"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>