<?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>25706</bug_id>
          
          <creation_ts>2009-05-11 14:40:01 -0700</creation_ts>
          <short_desc>Audit V8 bindings for V8Proxy::retrieveFrameForEnteredContext</short_desc>
          <delta_ts>2009-05-20 21:57:48 -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>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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aa</cc>
    
    <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>120727</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-11 14:40:01 -0700</bug_when>
    <thetext>In the V8 bindings, we use V8Proxy::retrieveFrameForEnteredContext in a bunch of places were we should be using retrieveFrameForCurrentContext.  We should audit all these call sites and make sure they match JavaScriptCore.  Match in this context is:

retrieveFrameForEnteredContext &lt;-&gt; exec-&gt;dynamicGlobalObject
retrieveFrameForCurrentContext &lt;-&gt; exec-&gt;lexicalGlobalObject

Getting this right is important for security and subtle for compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120883</commentid>
    <comment_count>1</comment_count>
      <attachid>30238</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-12 09:47:22 -0700</bug_when>
    <thetext>Created attachment 30238
patch (no tests)

Turns out most of these match JSC.  I think some of the JSC ones are wrong, but I&apos;ll deal with that in a separate patch.  This patch makes V8 match JSC.  No tests yet.  (I don&apos;t have a machine that can both compile V8 and make LayoutTests.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120884</commentid>
    <comment_count>2</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-05-12 09:50:49 -0700</bug_when>
    <thetext>lgtm, but I am not a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120888</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-12 10:08:10 -0700</bug_when>
    <thetext>Thanks, but the patch isn&apos;t quite ready for review.  It lacks tests and Changelog entries.  I&apos;ll post an updated version in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120901</commentid>
    <comment_count>4</comment_count>
      <attachid>30242</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-12 10:56:05 -0700</bug_when>
    <thetext>Created attachment 30242
patch (with tests!)

Here&apos;s the complete patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120905</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-05-12 11:06:22 -0700</bug_when>
    <thetext>I don&apos;t feel comfortable reviewing the code change (as I don&apos;t know V8&apos;s bindings at all), but the tests look good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120910</commentid>
    <comment_count>6</comment_count>
      <attachid>30242</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-05-12 11:33:23 -0700</bug_when>
    <thetext>Comment on attachment 30242
patch (with tests!)

Looks good -- can you add bug URL to changelog before landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120922</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-12 12:42:22 -0700</bug_when>
    <thetext>Thanks.  I always forget the bug URL.  :)

I&apos;ll land this tonight when I get back to my Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120966</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-12 20:13:59 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-lexical-expected.txt
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-lexical.html
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-write-lexical-expected.txt
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical-expected.txt
Adding         LayoutTests/http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html
Sending        WebCore/ChangeLog
Sending        WebCore/bindings/v8/custom/V8HTMLDocumentCustom.cpp
Transmitting file data .........
Committed revision 43604.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122211</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-20 15:51:11 -0700</bug_when>
    <thetext>Turns out the CurrentContext wasn&apos;t right either.  That gave us the context for the write() function itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122212</commentid>
    <comment_count>10</comment_count>
      <attachid>30514</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-20 15:52:48 -0700</bug_when>
    <thetext>Created attachment 30514
Patch attempt 2

We actually want the *calling* context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122213</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-20 15:53:33 -0700</bug_when>
    <thetext>I should say this is covered by the tests from last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122214</commentid>
    <comment_count>12</comment_count>
      <attachid>30514</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-05-20 15:56:17 -0700</bug_when>
    <thetext>Comment on attachment 30514
Patch attempt 2

r=me, but only if it works! :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122248</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-20 21:57:48 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/bindings/v8/custom/V8HTMLDocumentCustom.cpp
Committed r43958

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30238</attachid>
            <date>2009-05-12 09:47:22 -0700</date>
            <delta_ts>2009-05-12 10:56:05 -0700</delta_ts>
            <desc>patch (no tests)</desc>
            <filename>current-context.patch</filename>
            <type>text/plain</type>
            <size>1334</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCShy
ZXZpc2lvbiA0MzUxMikNCisrKyBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTE4LDcgKzExOCw3IEBADQogewogICAgIElOQ19T
VEFUUygiRE9NLkhUTUxEb2N1bWVudC53cml0ZSgpIik7CiAgICAgSFRNTERvY3VtZW50KiBodG1s
RG9jdW1lbnQgPSBWOFByb3h5OjpET01XcmFwcGVyVG9Ob2RlPEhUTUxEb2N1bWVudD4oYXJncy5I
b2xkZXIoKSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVu
dGVyZWRDb250ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFt
ZUZvckN1cnJlbnRDb250ZXh0KCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBodG1sRG9jdW1l
bnQtPndyaXRlKHdyaXRlSGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFtZS0+ZG9jdW1lbnQoKSk7
CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTEyOCw3ICsxMjgsNyBAQA0KIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQud3JpdGVsbigpIik7CiAgICAgSFRNTERvY3Vt
ZW50KiBodG1sRG9jdW1lbnQgPSBWOFByb3h5OjpET01XcmFwcGVyVG9Ob2RlPEhUTUxEb2N1bWVu
dD4oYXJncy5Ib2xkZXIoKSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVG
cmFtZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0
cmlldmVGcmFtZUZvckN1cnJlbnRDb250ZXh0KCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBo
dG1sRG9jdW1lbnQtPndyaXRlbG4od3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lLT5k
b2N1bWVudCgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpAQCAtMTY4LDcgKzE2OCw3
IEBADQogICAgICAgICB9CiAgICAgfQogCi0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0
cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94
eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRDb250ZXh0KCk7CiAgICAgaHRtbERvY3VtZW50LT5v
cGVuKGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICAvLyBSZXR1cm4gdGhlIGRvY3VtZW50LgogICAg
IHJldHVybiBhcmdzLkhvbGRlcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30242</attachid>
            <date>2009-05-12 10:56:05 -0700</date>
            <delta_ts>2009-05-20 15:52:48 -0700</delta_ts>
            <desc>patch (with tests!)</desc>
            <filename>lexi.patch</filename>
            <type>text/plain</type>
            <size>19859</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzU2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDUtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFu
Z2UgVjggYmluZGluZ3MgdG8gbWF0Y2ggSlNDIGJpbmRpbmdzIHdpdGggcmVzcGVjdCB0byB1c2lu
ZworICAgICAgICB0aGUgbGV4aWNhbCBvciBkeW5hbWljIGdsb2JhbCBvYmplY3QuCisKKyAgICAg
ICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0
LWdyYW5kY2hpbGRyZW4tbGV4aWNhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlLWxl
eGljYWwuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5r
L3NlY3VyaXR5LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi13cml0ZWxuLWxleGljYWwuaHRtbAorCisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6CisKIDIwMDktMDUtMTIgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTERvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gNDM1NjkpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExOCw3ICsxMTgsNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTERvY3VtZW50V3JpdGUpCiB7
CiAgICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50LndyaXRlKCkiKTsKICAgICBIVE1MRG9j
dW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4UHJveHk6OkRPTVdyYXBwZXJUb05vZGU8SFRNTERvY3Vt
ZW50PihhcmdzLkhvbGRlcigpKTsKLSAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2
ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5Ojpy
ZXRyaWV2ZUZyYW1lRm9yQ3VycmVudENvbnRleHQoKTsKICAgICBBU1NFUlQoZnJhbWUpOwogICAg
IGh0bWxEb2N1bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lLT5k
b2N1bWVudCgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpAQCAtMTI4LDcgKzEyOCw3
IEBAIENBTExCQUNLX0ZVTkNfREVDTChIVE1MRG9jdW1lbnRXcml0ZWxuKQogewogICAgIElOQ19T
VEFUUygiRE9NLkhUTUxEb2N1bWVudC53cml0ZWxuKCkiKTsKICAgICBIVE1MRG9jdW1lbnQqIGh0
bWxEb2N1bWVudCA9IFY4UHJveHk6OkRPTVdyYXBwZXJUb05vZGU8SFRNTERvY3VtZW50Pihhcmdz
LkhvbGRlcigpKTsKLSAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9y
RW50ZXJlZENvbnRleHQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZy
YW1lRm9yQ3VycmVudENvbnRleHQoKTsKICAgICBBU1NFUlQoZnJhbWUpOwogICAgIGh0bWxEb2N1
bWVudC0+d3JpdGVsbih3cml0ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJhbWUtPmRvY3VtZW50
KCkpOwogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CkBAIC0xNjgsNyArMTY4LDcgQEAgQ0FM
TEJBQ0tfRlVOQ19ERUNMKEhUTUxEb2N1bWVudE9wZW4pCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQo
KTsKKyAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ3VycmVudENv
bnRleHQoKTsKICAgICBodG1sRG9jdW1lbnQtPm9wZW4oZnJhbWUtPmRvY3VtZW50KCkpOwogICAg
IC8vIFJldHVybiB0aGUgZG9jdW1lbnQuCiAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA0MzU2OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5LTA1LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdCB0aGF0IHdlIHVzZSB0aGUgbGV4aWNhbCBnbG9iYWwgb2JqZWN0IGluIGRvY3VtZW50
Lm9wZW4sCisgICAgICAgIGRvY3VtZW50LndyaXRlLCBhbmQgZG9jdW1lbnQud3JpdGVsbi4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0
LWdyYW5kY2hpbGRyZW4tbGV4aWNhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRy
ZW4tbGV4aWNhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fi
b3V0Qmxhbmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlLWxleGljYWwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxh
bmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlLWxleGljYWwuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5rL3NlY3VyaXR5LWNv
bnRleHQtZ3JhbmRjaGlsZHJlbi13cml0ZWxuLWxleGljYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJpdHktY29udGV4
dC1ncmFuZGNoaWxkcmVuLXdyaXRlbG4tbGV4aWNhbC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNS0x
MiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Fib3V0Qmxhbmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLWxleGljYWwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJv
dXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRyZW4tbGV4aWNhbC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0
Qmxhbmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLWxleGljYWwtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisKK0hlbHBlcnMgbG9hZGVkIQorLS0tIFRl
c3QgYmVnaW5zIC0tLQorKiAiYWJvdXQ6YmxhbmsiCitkb2N1bWVudC5VUkwgPSBhYm91dDpibGFu
aworZG9jdW1lbnQuYmFzZVVSSSA9IGFib3V0OmJsYW5rCitkb2N1bWVudC5jb29raWUgPSBjb29r
aWU9cmVzb3VyY2VzOyBjb29raWU9cGFyZW50CisqICIiCitkb2N1bWVudC5VUkwgPSBhYm91dDpi
bGFuaworZG9jdW1lbnQuYmFzZVVSSSA9IGFib3V0OmJsYW5rCitkb2N1bWVudC5jb29raWUgPSBj
b29raWU9cmVzb3VyY2VzOyBjb29raWU9cGFyZW50CistLS0gQWZ0ZXIgZG9jdW1lbnQub3Blbigp
IC0tLQorKiAiYWJvdXQ6YmxhbmsiCitkb2N1bWVudC5VUkwgPSBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJvdXQtYmxhbmst
Y2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuYmFzZVVSSSA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9hYm91dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGls
ZHJlbi5odG1sCitkb2N1bWVudC5jb29raWUgPSBjb29raWU9cmVzb3VyY2VzOyBjb29raWU9cGFy
ZW50CisqICIiCitkb2N1bWVudC5VUkwgPSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
YWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJvdXQtYmxhbmstY2hpbGRyZW4uaHRt
bAorZG9jdW1lbnQuYmFzZVVSSSA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9hYm91
dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJlbi5odG1sCitk
b2N1bWVudC5jb29raWUgPSBjb29raWU9cmVzb3VyY2VzOyBjb29raWU9cGFyZW50CistLS0gQWZ0
ZXIgZG9jdW1lbnQuY2xvc2UoKSAtLS0KKyogImFib3V0OmJsYW5rIgorZG9jdW1lbnQuVVJMID0g
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0QmxhbmsvcmVzb3VyY2VzL2lmcmFt
ZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50LmJhc2VVUkkgPSBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdp
dGgtYWJvdXQtYmxhbmstY2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuY29va2llID0gY29va2llPXJl
c291cmNlczsgY29va2llPXBhcmVudAorKiAiIgorZG9jdW1lbnQuVVJMID0gaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0QmxhbmsvcmVzb3VyY2VzL2lmcmFtZS13aXRoLWFib3V0
LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50LmJhc2VVUkkgPSBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJvdXQtYmxh
bmstY2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuY29va2llID0gY29va2llPXJlc291cmNlczsgY29v
a2llPXBhcmVudAorLS0tIFRlc3QgZW5kcyAtLS0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRyZW4tbGV4
aWNhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
YWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRyZW4tbGV4aWNhbC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5r
L3NlY3VyaXR5LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi1sZXhpY2FsLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNzcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZG9jdW1l
bnQuY29va2llID0gJ2Nvb2tpZT1wYXJlbnQnOworCitmdW5jdGlvbiBsb2cobXNnKSB7CisgIHZh
ciBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgIGxpbmUuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQobGluZSk7Cit9CisKK3ZhciB0ZXN0U3RhcnRlZCA9
IGZhbHNlOworZnVuY3Rpb24gZG9UZXN0KCkgeworICBpZiAodGVzdFN0YXJ0ZWQpCisgICAgcmV0
dXJuOworCisgIHRlc3RTdGFydGVkID0gdHJ1ZTsKKyAgZnJhbWVzWzBdLmxvY2F0aW9uID0gImph
dmFzY3JpcHQ6IiArCisgICAgICAid2luZG93Lm15b3BlbiA9IGZ1bmN0aW9uKGkpIHsgZnJhbWVz
W2ldLmRvY3VtZW50Lm9wZW4oKTsgfTsiICsKKyAgICAgICJ3aW5kb3cubXl3cml0ZSA9IGZ1bmN0
aW9uKGksIHN0cikgeyBmcmFtZXNbaV0uZG9jdW1lbnQud3JpdGUoc3RyKTsgfTsiICsKKyAgICAg
ICJ3aW5kb3cubXl3cml0ZWxuID0gZnVuY3Rpb24oaSwgc3RyKSB7IGZyYW1lc1tpXS5kb2N1bWVu
dC53cml0ZWxuKHN0cik7IH07IiArCisgICAgICAid2luZG93Lm15Y2xvc2UgPSBmdW5jdGlvbihp
KSB7IGZyYW1lc1tpXS5kb2N1bWVudC5jbG9zZSgpOyB9OyIgKworICAgICAgInBhcmVudC5sb2co
J0hlbHBlcnMgbG9hZGVkIVxcbicpOyIgKworICAgICAgInBhcmVudC5zZXRUaW1lb3V0KCdjb250
aW51ZVRlc3QoKScsIDEwKTsiOworfQorCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKSB7CisgIGxv
ZygnLS0tIFRlc3QgYmVnaW5zIC0tLVxuJyk7CisgIGxvZygnKiAiYWJvdXQ6YmxhbmsiXG4nKTsK
KyAgbG9nKCdkb2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5V
UkwgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyArIGZyYW1lc1swXS5mcmFt
ZXNbMF0uZG9jdW1lbnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2RvY3VtZW50LmNvb2tpZSA9
ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzBdLmRvY3VtZW50LmNvb2tpZSArICdcbicpOworICBsb2co
JyogIiJcbicpOworICBsb2coJ2RvY3VtZW50LlVSTCA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFd
LmRvY3VtZW50LlVSTCArICdcbicpOworICBsb2coJ2RvY3VtZW50LmJhc2VVUkkgPSAnICsgZnJh
bWVzWzBdLmZyYW1lc1sxXS5kb2N1bWVudC5iYXNlVVJJICsgJ1xuJyk7CisgIGxvZygnZG9jdW1l
bnQuY29va2llID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuY29va2llICsgJ1xu
Jyk7CisgIGxvZygnLS0tIEFmdGVyIGRvY3VtZW50Lm9wZW4oKSAtLS1cbicpOworICBmcmFtZXNb
MF0ubXlvcGVuKDApOworICBmcmFtZXNbMF0ubXlvcGVuKDEpOworICBsb2coJyogImFib3V0OmJs
YW5rIlxuJyk7CisgIGxvZygnZG9jdW1lbnQuVVJMID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0u
ZG9jdW1lbnQuVVJMICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuYmFzZVVSSSA9ICcgKyBmcmFt
ZXNbMF0uZnJhbWVzWzBdLmRvY3VtZW50LmJhc2VVUkkgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVu
dC5jb29raWUgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUgKyAnXG4n
KTsKKyAgbG9nKCcqICIiXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBd
LmZyYW1lc1sxXS5kb2N1bWVudC5VUkwgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJ
ID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuYmFzZVVSSSArICdcbicpOworICBs
b2coJ2RvY3VtZW50LmNvb2tpZSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmNv
b2tpZSArICdcbicpOworICBsb2coJy0tLSBBZnRlciBkb2N1bWVudC5jbG9zZSgpIC0tLVxuJyk7
CisgIGZyYW1lc1swXS5teWNsb3NlKDApOworICBmcmFtZXNbMF0ubXljbG9zZSgxKTsKKyAgbG9n
KCcqICJhYm91dDpibGFuayJcbicpOworICBsb2coJ2RvY3VtZW50LlVSTCA9ICcgKyBmcmFtZXNb
MF0uZnJhbWVzWzBdLmRvY3VtZW50LlVSTCArICdcbicpOworICBsb2coJ2RvY3VtZW50LmJhc2VV
UkkgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5iYXNlVVJJICsgJ1xuJyk7Cisg
IGxvZygnZG9jdW1lbnQuY29va2llID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1lbnQu
Y29va2llICsgJ1xuJyk7CisgIGxvZygnKiAiIlxuJyk7CisgIGxvZygnZG9jdW1lbnQuVVJMID0g
JyArIGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuVVJMICsgJ1xuJyk7CisgIGxvZygnZG9j
dW1lbnQuYmFzZVVSSSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmJhc2VVUkkg
KyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5jb29raWUgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1sx
XS5kb2N1bWVudC5jb29raWUgKyAnXG4nKTsKKyAgbG9nKCctLS0gVGVzdCBlbmRzIC0tLVxuJyk7
CisKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgCisgIG9ubG9hZD0iZG9UZXN0KCkiCisgIHNyYz0icmVz
b3VyY2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwiPgorPC9pZnJhbWU+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdy
YW5kY2hpbGRyZW4td3JpdGUtbGV4aWNhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5rL3NlY3VyaXR5LWNvbnRleHQt
Z3JhbmRjaGlsZHJlbi13cml0ZS1sZXhpY2FsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250
ZXh0LWdyYW5kY2hpbGRyZW4td3JpdGUtbGV4aWNhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzAgQEAKKworSGVscGVycyBsb2FkZWQhCistLS0gVGVzdCBiZWdpbnMgLS0t
CisqICJhYm91dDpibGFuayIKK2RvY3VtZW50LlVSTCA9IGFib3V0OmJsYW5rCitkb2N1bWVudC5i
YXNlVVJJID0gYWJvdXQ6YmxhbmsKK2RvY3VtZW50LmNvb2tpZSA9IGNvb2tpZT1yZXNvdXJjZXM7
IGNvb2tpZT1wYXJlbnQKKyogIiIKK2RvY3VtZW50LlVSTCA9IGFib3V0OmJsYW5rCitkb2N1bWVu
dC5iYXNlVVJJID0gYWJvdXQ6YmxhbmsKK2RvY3VtZW50LmNvb2tpZSA9IGNvb2tpZT1yZXNvdXJj
ZXM7IGNvb2tpZT1wYXJlbnQKKy0tLSBBZnRlciBkb2N1bWVudC5vcGVuKCkgLS0tCisqICJhYm91
dDpibGFuayIKK2RvY3VtZW50LlVSTCA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9h
Ym91dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJlbi5odG1s
Citkb2N1bWVudC5iYXNlVVJJID0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0
QmxhbmsvcmVzb3VyY2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2Rv
Y3VtZW50LmNvb2tpZSA9IGNvb2tpZT1yZXNvdXJjZXM7IGNvb2tpZT1wYXJlbnQKKyogIiIKK2Rv
Y3VtZW50LlVSTCA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9hYm91dEJsYW5rL3Jl
c291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJlbi5odG1sCitkb2N1bWVudC5i
YXNlVVJJID0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0QmxhbmsvcmVzb3Vy
Y2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50LmNvb2tp
ZSA9IGNvb2tpZT1yZXNvdXJjZXM7IGNvb2tpZT1wYXJlbnQKKy0tLSBBZnRlciBkb2N1bWVudC5j
bG9zZSgpIC0tLQorKiAiYWJvdXQ6YmxhbmsiCitkb2N1bWVudC5VUkwgPSBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJvdXQt
YmxhbmstY2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuYmFzZVVSSSA9IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9hYm91dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFu
ay1jaGlsZHJlbi5odG1sCitkb2N1bWVudC5jb29raWUgPSBjb29raWU9cmVzb3VyY2VzOyBjb29r
aWU9cGFyZW50CisqICIiCitkb2N1bWVudC5VUkwgPSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJvdXQtYmxhbmstY2hpbGRy
ZW4uaHRtbAorZG9jdW1lbnQuYmFzZVVSSSA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS9hYm91dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJlbi5o
dG1sCitkb2N1bWVudC5jb29raWUgPSBjb29raWU9cmVzb3VyY2VzOyBjb29raWU9cGFyZW50Cist
LS0gVGVzdCBlbmRzIC0tLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9h
Ym91dEJsYW5rL3NlY3VyaXR5LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi13cml0ZS1sZXhpY2FsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJs
YW5rL3NlY3VyaXR5LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi13cml0ZS1sZXhpY2FsLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsv
c2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlLWxleGljYWwuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw4NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitk
b2N1bWVudC5jb29raWUgPSAnY29va2llPXBhcmVudCc7CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsK
KyAgdmFyIGxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgbGluZS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChsaW5lKTsKK30KKwordmFyIHRlc3RTdGFy
dGVkID0gZmFsc2U7CitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgIGlmICh0ZXN0U3RhcnRlZCkKKyAg
ICByZXR1cm47CisKKyAgdGVzdFN0YXJ0ZWQgPSB0cnVlOworICBmcmFtZXNbMF0ubG9jYXRpb24g
PSAiamF2YXNjcmlwdDoiICsKKyAgICAgICJ3aW5kb3cubXlvcGVuID0gZnVuY3Rpb24oaSkgeyBm
cmFtZXNbaV0uZG9jdW1lbnQub3BlbigpOyB9OyIgKworICAgICAgIndpbmRvdy5teXdyaXRlID0g
ZnVuY3Rpb24oaSwgc3RyKSB7IGZyYW1lc1tpXS5kb2N1bWVudC53cml0ZShzdHIpOyB9OyIgKwor
ICAgICAgIndpbmRvdy5teXdyaXRlbG4gPSBmdW5jdGlvbihpLCBzdHIpIHsgZnJhbWVzW2ldLmRv
Y3VtZW50LndyaXRlbG4oc3RyKTsgfTsiICsKKyAgICAgICJ3aW5kb3cubXljbG9zZSA9IGZ1bmN0
aW9uKGkpIHsgZnJhbWVzW2ldLmRvY3VtZW50LmNsb3NlKCk7IH07IiArCisgICAgICAicGFyZW50
LmxvZygnSGVscGVycyBsb2FkZWQhXFxuJyk7IiArCisgICAgICAicGFyZW50LnNldFRpbWVvdXQo
J2NvbnRpbnVlVGVzdCgpJywgMTApOyI7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgpIHsK
KyAgZnJhbWVzWzBdLmxvY2F0aW9uID0gImphdmFzY3JpcHQ6IiArCisgICAgICAid2luZG93Lm15
b3BlbiA9IGZ1bmN0aW9uKGkpIHsgZnJhbWVzW2ldLmRvY3VtZW50Lm9wZW4oKTsgfTsiICsKKyAg
ICAgICJ3aW5kb3cubXl3cml0ZSA9IGZ1bmN0aW9uKGksIHN0cikgeyBmcmFtZXNbaV0uZG9jdW1l
bnQud3JpdGUoc3RyKTsgfTsiICsKKyAgICAgICJ3aW5kb3cubXl3cml0ZWxuID0gZnVuY3Rpb24o
aSwgc3RyKSB7IGZyYW1lc1tpXS5kb2N1bWVudC53cml0ZWxuKHN0cik7IH07IiArCisgICAgICAi
d2luZG93Lm15Y2xvc2UgPSBmdW5jdGlvbihpKSB7IGZyYW1lc1tpXS5kb2N1bWVudC5jbG9zZSgp
OyB9OyIgKworICAgICAgInBhcmVudC5sb2coJ0hlbHBlcnMgbG9hZGVkIVxcbicpOyI7CisKKyAg
bG9nKCctLS0gVGVzdCBiZWdpbnMgLS0tXG4nKTsKKyAgbG9nKCcqICJhYm91dDpibGFuayJcbicp
OworICBsb2coJ2RvY3VtZW50LlVSTCA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzBdLmRvY3VtZW50
LlVSTCArICdcbicpOworICBsb2coJ2RvY3VtZW50LmJhc2VVUkkgPSAnICsgZnJhbWVzWzBdLmZy
YW1lc1swXS5kb2N1bWVudC5iYXNlVVJJICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuY29va2ll
ID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1lbnQuY29va2llICsgJ1xuJyk7CisgIGxv
ZygnKiAiIlxuJyk7CisgIGxvZygnZG9jdW1lbnQuVVJMID0gJyArIGZyYW1lc1swXS5mcmFtZXNb
MV0uZG9jdW1lbnQuVVJMICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuYmFzZVVSSSA9ICcgKyBm
cmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmJhc2VVUkkgKyAnXG4nKTsKKyAgbG9nKCdkb2N1
bWVudC5jb29raWUgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1sxXS5kb2N1bWVudC5jb29raWUgKyAn
XG4nKTsKKyAgbG9nKCctLS0gQWZ0ZXIgZG9jdW1lbnQub3BlbigpIC0tLVxuJyk7CisgIGZyYW1l
c1swXS5teXdyaXRlKDAsICJIZWxsbywgd29ybGQuIik7CisgIGZyYW1lc1swXS5teXdyaXRlKDEs
ICJIZWxsbywgd29ybGQuIik7CisgIGxvZygnKiAiYWJvdXQ6YmxhbmsiXG4nKTsKKyAgbG9nKCdk
b2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5VUkwgKyAnXG4n
KTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9j
dW1lbnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2RvY3VtZW50LmNvb2tpZSA9ICcgKyBmcmFt
ZXNbMF0uZnJhbWVzWzBdLmRvY3VtZW50LmNvb2tpZSArICdcbicpOworICBsb2coJyogIiJcbicp
OworICBsb2coJ2RvY3VtZW50LlVSTCA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50
LlVSTCArICdcbicpOworICBsb2coJ2RvY3VtZW50LmJhc2VVUkkgPSAnICsgZnJhbWVzWzBdLmZy
YW1lc1sxXS5kb2N1bWVudC5iYXNlVVJJICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuY29va2ll
ID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuY29va2llICsgJ1xuJyk7CisgIGxv
ZygnLS0tIEFmdGVyIGRvY3VtZW50LmNsb3NlKCkgLS0tXG4nKTsKKyAgZnJhbWVzWzBdLm15Y2xv
c2UoMCk7CisgIGZyYW1lc1swXS5teWNsb3NlKDEpOworICBsb2coJyogImFib3V0OmJsYW5rIlxu
Jyk7CisgIGxvZygnZG9jdW1lbnQuVVJMID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1l
bnQuVVJMICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuYmFzZVVSSSA9ICcgKyBmcmFtZXNbMF0u
ZnJhbWVzWzBdLmRvY3VtZW50LmJhc2VVUkkgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5jb29r
aWUgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUgKyAnXG4nKTsKKyAg
bG9nKCcqICIiXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1l
c1sxXS5kb2N1bWVudC5VUkwgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyAr
IGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2Rv
Y3VtZW50LmNvb2tpZSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmNvb2tpZSAr
ICdcbicpOworICBsb2coJy0tLSBUZXN0IGVuZHMgLS0tXG4nKTsKKworICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSAKKyAgb25sb2FkPSJkb1Rlc3QoKSIKKyAgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLXdpdGgt
YWJvdXQtYmxhbmstY2hpbGRyZW4uaHRtbCI+Cis8L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9hYm91dEJsYW5rL3NlY3VyaXR5LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi13cml0ZWxu
LWxleGljYWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRyZW4td3Jp
dGVsbi1sZXhpY2FsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LWdyYW5kY2hpbGRy
ZW4td3JpdGVsbi1sZXhpY2FsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MCBAQAorCitIZWxwZXJzIGxvYWRlZCEKKy0tLSBUZXN0IGJlZ2lucyAtLS0KKyogImFib3V0OmJs
YW5rIgorZG9jdW1lbnQuVVJMID0gYWJvdXQ6YmxhbmsKK2RvY3VtZW50LmJhc2VVUkkgPSBhYm91
dDpibGFuaworZG9jdW1lbnQuY29va2llID0gY29va2llPXJlc291cmNlczsgY29va2llPXBhcmVu
dAorKiAiIgorZG9jdW1lbnQuVVJMID0gYWJvdXQ6YmxhbmsKK2RvY3VtZW50LmJhc2VVUkkgPSBh
Ym91dDpibGFuaworZG9jdW1lbnQuY29va2llID0gY29va2llPXJlc291cmNlczsgY29va2llPXBh
cmVudAorLS0tIEFmdGVyIGRvY3VtZW50Lm9wZW4oKSAtLS0KKyogImFib3V0OmJsYW5rIgorZG9j
dW1lbnQuVVJMID0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0QmxhbmsvcmVz
b3VyY2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50LmJh
c2VVUkkgPSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJj
ZXMvaWZyYW1lLXdpdGgtYWJvdXQtYmxhbmstY2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuY29va2ll
ID0gY29va2llPXJlc291cmNlczsgY29va2llPXBhcmVudAorKiAiIgorZG9jdW1lbnQuVVJMID0g
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0QmxhbmsvcmVzb3VyY2VzL2lmcmFt
ZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50LmJhc2VVUkkgPSBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvYWJvdXRCbGFuay9yZXNvdXJjZXMvaWZyYW1lLXdp
dGgtYWJvdXQtYmxhbmstY2hpbGRyZW4uaHRtbAorZG9jdW1lbnQuY29va2llID0gY29va2llPXJl
c291cmNlczsgY29va2llPXBhcmVudAorLS0tIEFmdGVyIGRvY3VtZW50LmNsb3NlKCkgLS0tCisq
ICJhYm91dDpibGFuayIKK2RvY3VtZW50LlVSTCA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9hYm91dEJsYW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJl
bi5odG1sCitkb2N1bWVudC5iYXNlVVJJID0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L2Fib3V0QmxhbmsvcmVzb3VyY2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0
bWwKK2RvY3VtZW50LmNvb2tpZSA9IGNvb2tpZT1yZXNvdXJjZXM7IGNvb2tpZT1wYXJlbnQKKyog
IiIKK2RvY3VtZW50LlVSTCA9IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9hYm91dEJs
YW5rL3Jlc291cmNlcy9pZnJhbWUtd2l0aC1hYm91dC1ibGFuay1jaGlsZHJlbi5odG1sCitkb2N1
bWVudC5iYXNlVVJJID0gaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Fib3V0Qmxhbmsv
cmVzb3VyY2VzL2lmcmFtZS13aXRoLWFib3V0LWJsYW5rLWNoaWxkcmVuLmh0bWwKK2RvY3VtZW50
LmNvb2tpZSA9IGNvb2tpZT1yZXNvdXJjZXM7IGNvb2tpZT1wYXJlbnQKKy0tLSBUZXN0IGVuZHMg
LS0tCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2Vj
dXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlbG4tbGV4aWNhbC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay9zZWN1cml0
eS1jb250ZXh0LWdyYW5kY2hpbGRyZW4td3JpdGVsbi1sZXhpY2FsLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJpdHkt
Y29udGV4dC1ncmFuZGNoaWxkcmVuLXdyaXRlbG4tbGV4aWNhbC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDg0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2RvY3VtZW50
LmNvb2tpZSA9ICdjb29raWU9cGFyZW50JzsKKworZnVuY3Rpb24gbG9nKG1zZykgeworICB2YXIg
bGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBsaW5lLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykpOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGxpbmUpOworfQorCit2YXIgdGVzdFN0YXJ0ZWQgPSBm
YWxzZTsKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgaWYgKHRlc3RTdGFydGVkKQorICAgIHJldHVy
bjsKKworICB0ZXN0U3RhcnRlZCA9IHRydWU7CisgIGZyYW1lc1swXS5sb2NhdGlvbiA9ICJqYXZh
c2NyaXB0OiIgKworICAgICAgIndpbmRvdy5teW9wZW4gPSBmdW5jdGlvbihpKSB7IGZyYW1lc1tp
XS5kb2N1bWVudC5vcGVuKCk7IH07IiArCisgICAgICAid2luZG93Lm15d3JpdGUgPSBmdW5jdGlv
bihpLCBzdHIpIHsgZnJhbWVzW2ldLmRvY3VtZW50LndyaXRlKHN0cik7IH07IiArCisgICAgICAi
d2luZG93Lm15d3JpdGVsbiA9IGZ1bmN0aW9uKGksIHN0cikgeyBmcmFtZXNbaV0uZG9jdW1lbnQu
d3JpdGVsbihzdHIpOyB9OyIgKworICAgICAgIndpbmRvdy5teWNsb3NlID0gZnVuY3Rpb24oaSkg
eyBmcmFtZXNbaV0uZG9jdW1lbnQuY2xvc2UoKTsgfTsiICsKKyAgICAgICJwYXJlbnQubG9nKCdI
ZWxwZXJzIGxvYWRlZCFcXG4nKTsiICsKKyAgICAgICJwYXJlbnQuc2V0VGltZW91dCgnY29udGlu
dWVUZXN0KCknLCAxMCk7IjsKK30KKworZnVuY3Rpb24gY29udGludWVUZXN0KCkgeworICBmcmFt
ZXNbMF0ubG9jYXRpb24gPSAiamF2YXNjcmlwdDoiICsKKyAgICAgICJ3aW5kb3cubXlvcGVuID0g
ZnVuY3Rpb24oaSkgeyBmcmFtZXNbaV0uZG9jdW1lbnQub3BlbigpOyB9OyIgKworICAgICAgIndp
bmRvdy5teXdyaXRlID0gZnVuY3Rpb24oaSwgc3RyKSB7IGZyYW1lc1tpXS5kb2N1bWVudC53cml0
ZShzdHIpOyB9OyIgKworICAgICAgIndpbmRvdy5teXdyaXRlbG4gPSBmdW5jdGlvbihpLCBzdHIp
IHsgZnJhbWVzW2ldLmRvY3VtZW50LndyaXRlbG4oc3RyKTsgfTsiICsKKyAgICAgICJ3aW5kb3cu
bXljbG9zZSA9IGZ1bmN0aW9uKGkpIHsgZnJhbWVzW2ldLmRvY3VtZW50LmNsb3NlKCk7IH07IiAr
CisgICAgICAicGFyZW50LmxvZygnSGVscGVycyBsb2FkZWQhXFxuJyk7IjsKKworICBsb2coJy0t
LSBUZXN0IGJlZ2lucyAtLS1cbicpOworICBsb2coJyogImFib3V0OmJsYW5rIlxuJyk7CisgIGxv
ZygnZG9jdW1lbnQuVVJMID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1lbnQuVVJMICsg
J1xuJyk7CisgIGxvZygnZG9jdW1lbnQuYmFzZVVSSSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzBd
LmRvY3VtZW50LmJhc2VVUkkgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5jb29raWUgPSAnICsg
ZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUgKyAnXG4nKTsKKyAgbG9nKCcqICIi
XG4nKTsKKyAgbG9nKCdkb2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1sxXS5kb2N1
bWVudC5VUkwgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyArIGZyYW1lc1sw
XS5mcmFtZXNbMV0uZG9jdW1lbnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2RvY3VtZW50LmNv
b2tpZSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmNvb2tpZSArICdcbicpOwor
ICBsb2coJy0tLSBBZnRlciBkb2N1bWVudC5vcGVuKCkgLS0tXG4nKTsKKyAgZnJhbWVzWzBdLm15
d3JpdGVsbigwLCAiSGVsbG8sIHdvcmxkLiIpOworICBmcmFtZXNbMF0ubXl3cml0ZWxuKDEsICJI
ZWxsbywgd29ybGQuIik7CisgIGxvZygnKiAiYWJvdXQ6YmxhbmsiXG4nKTsKKyAgbG9nKCdkb2N1
bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5VUkwgKyAnXG4nKTsK
KyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1l
bnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2RvY3VtZW50LmNvb2tpZSA9ICcgKyBmcmFtZXNb
MF0uZnJhbWVzWzBdLmRvY3VtZW50LmNvb2tpZSArICdcbicpOworICBsb2coJyogIiJcbicpOwor
ICBsb2coJ2RvY3VtZW50LlVSTCA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LlVS
TCArICdcbicpOworICBsb2coJ2RvY3VtZW50LmJhc2VVUkkgPSAnICsgZnJhbWVzWzBdLmZyYW1l
c1sxXS5kb2N1bWVudC5iYXNlVVJJICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuY29va2llID0g
JyArIGZyYW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuY29va2llICsgJ1xuJyk7CisgIGxvZygn
LS0tIEFmdGVyIGRvY3VtZW50LmNsb3NlKCkgLS0tXG4nKTsKKyAgZnJhbWVzWzBdLm15Y2xvc2Uo
MCk7CisgIGZyYW1lc1swXS5teWNsb3NlKDEpOworICBsb2coJyogImFib3V0OmJsYW5rIlxuJyk7
CisgIGxvZygnZG9jdW1lbnQuVVJMID0gJyArIGZyYW1lc1swXS5mcmFtZXNbMF0uZG9jdW1lbnQu
VVJMICsgJ1xuJyk7CisgIGxvZygnZG9jdW1lbnQuYmFzZVVSSSA9ICcgKyBmcmFtZXNbMF0uZnJh
bWVzWzBdLmRvY3VtZW50LmJhc2VVUkkgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5jb29raWUg
PSAnICsgZnJhbWVzWzBdLmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUgKyAnXG4nKTsKKyAgbG9n
KCcqICIiXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5VUkwgPSAnICsgZnJhbWVzWzBdLmZyYW1lc1sx
XS5kb2N1bWVudC5VUkwgKyAnXG4nKTsKKyAgbG9nKCdkb2N1bWVudC5iYXNlVVJJID0gJyArIGZy
YW1lc1swXS5mcmFtZXNbMV0uZG9jdW1lbnQuYmFzZVVSSSArICdcbicpOworICBsb2coJ2RvY3Vt
ZW50LmNvb2tpZSA9ICcgKyBmcmFtZXNbMF0uZnJhbWVzWzFdLmRvY3VtZW50LmNvb2tpZSArICdc
bicpOworICBsb2coJy0tLSBUZXN0IGVuZHMgLS0tXG4nKTsKKworICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFt
ZSAKKyAgb25sb2FkPSJkb1Rlc3QoKSIKKyAgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLXdpdGgtYWJv
dXQtYmxhbmstY2hpbGRyZW4uaHRtbCI+Cis8L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="15210"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30514</attachid>
            <date>2009-05-20 15:52:48 -0700</date>
            <delta_ts>2009-05-20 15:56:17 -0700</delta_ts>
            <desc>Patch attempt 2</desc>
            <filename>0001-Calling-contex.patch</filename>
            <type>text/plain</type>
            <size>2520</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">RnJvbSAzMmQ3M2ZlOWE5MDBlNDY0YjYzZGJlOTg1NjQ5MDkxMjU0NTRhYWZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIEJhcnRoIDxhYmFydGhAYXJjdGljYS5sb2NhbD4KRGF0
ZTogV2VkLCAyMCBNYXkgMjAwOSAxNTo0ODozMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIENhbGxp
bmcgY29udGV4LgoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKwogLi4uL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhUTUxEb2N1bWVudEN1c3RvbS5jcHAgICAgfCAgICA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2Vk
LCAxNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYzNWU4My4uY2Y0MDliNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAwOS0wNS0yMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTcwNgorCisgICAgICAgIEl0IHR1cm5z
IG91dCB0aGUgQ3VycmVudENvbnRleHQgd2Fzbid0IGN1cnJlY3QgZWl0aGVyIGJlY2F1c2UgaXQg
Z2F2ZQorICAgICAgICB1cyB0aGUgZnJhbWUgZm9yIHRoZSB3cml0ZSgpIGZ1bmN0aW9uIGl0c2Vs
Zi4gIFdlIGFjdHVhbGx5IHdhbnQgdGhlCisgICAgICAgICpjYWxsaW5nKiBjb250ZXh0LgorCisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6CisKIDIwMDktMDUtMTkgIFlpY2hh
byBZaW4gIDx5aWNoYW8ueWluQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHZW9yZ2UgU3RhaWtvcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCBmNGVmOWU3Li4zNGJmODljIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
CkBAIC0xMTgsNyArMTE4LDcgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKEhUTUxEb2N1bWVudFdyaXRl
KQogewogICAgIElOQ19TVEFUUygiRE9NLkhUTUxEb2N1bWVudC53cml0ZSgpIik7CiAgICAgSFRN
TERvY3VtZW50KiBodG1sRG9jdW1lbnQgPSBWOFByb3h5OjpET01XcmFwcGVyVG9Ob2RlPEhUTUxE
b2N1bWVudD4oYXJncy5Ib2xkZXIoKSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0
cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94
eTo6cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7CiAgICAgQVNTRVJUKGZyYW1lKTsK
ICAgICBodG1sRG9jdW1lbnQtPndyaXRlKHdyaXRlSGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFt
ZS0+ZG9jdW1lbnQoKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTEyOCw3ICsx
MjgsNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTERvY3VtZW50V3JpdGVsbikKIHsKICAgICBJ
TkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQud3JpdGVsbigpIik7CiAgICAgSFRNTERvY3VtZW50
KiBodG1sRG9jdW1lbnQgPSBWOFByb3h5OjpET01XcmFwcGVyVG9Ob2RlPEhUTUxEb2N1bWVudD4o
YXJncy5Ib2xkZXIoKSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFt
ZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmll
dmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBodG1s
RG9jdW1lbnQtPndyaXRlbG4od3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lLT5kb2N1
bWVudCgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpAQCAtMTY4LDcgKzE2OCw3IEBA
IENBTExCQUNLX0ZVTkNfREVDTChIVE1MRG9jdW1lbnRPcGVuKQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250
ZXh0KCk7CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckNhbGxp
bmdDb250ZXh0KCk7CiAgICAgaHRtbERvY3VtZW50LT5vcGVuKGZyYW1lLT5kb2N1bWVudCgpKTsK
ICAgICAvLyBSZXR1cm4gdGhlIGRvY3VtZW50LgogICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwot
LSAKMS42LjAuMQoK
</data>
<flag name="review"
          id="15414"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>