<?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>49934</bug_id>
          
          <creation_ts>2010-11-22 13:32:23 -0800</creation_ts>
          <short_desc>nrwt - add --print-config, clean up create_driver interface</short_desc>
          <delta_ts>2010-11-24 17:00:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>312485</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-22 13:32:23 -0800</bug_when>
    <thetext>nrwt - add --print-config, clean up create_driver interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312486</commentid>
    <comment_count>1</comment_count>
      <attachid>74590</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-22 13:36:20 -0800</bug_when>
    <thetext>Created attachment 74590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312541</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-22 14:57:07 -0800</bug_when>
    <thetext>Note that this change is *not* related to the multiprocessing stuff, it&apos;s just that the cleanup now makes it a little more practical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312630</commentid>
    <comment_count>3</comment_count>
      <attachid>74590</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-22 17:53:32 -0800</bug_when>
    <thetext>Comment on attachment 74590
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=74590&amp;action=review

Some small clarifications . . .

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/printing.py:123
&gt; +        optparse.make_option(&quot;--print-config&quot;, action=&quot;store_true&quot;,
&gt; +            default=False, help=&quot;Print the config used for the run and exit.&quot;),

Is the expectation to only use this during tests?  It would be nice to not expose the flag in --help if we don&apos;t have to.

&gt; WebKitTools/Scripts/webkitpy/layout_tests/port/port_testcase.py:48
&gt; +    def test_driver_cmd_line(self):
&gt; +        port = self.make_port()

It looks like this test is only run by mac_unittest.py.  Would it be better to just move this test into that file and do more validation on the command line than len &gt; 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312641</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-22 18:18:29 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 74590 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74590&amp;action=review
&gt; 
&gt; Some small clarifications . . .
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/printing.py:123
&gt; &gt; +        optparse.make_option(&quot;--print-config&quot;, action=&quot;store_true&quot;,
&gt; &gt; +            default=False, help=&quot;Print the config used for the run and exit.&quot;),
&gt; 
&gt; Is the expectation to only use this during tests?  It would be nice to not expose the flag in --help if we don&apos;t have to.
&gt; 

No. This is very much intended to be a user-visible feature. I&apos;m adding it because people have asked for an easy way to see what command line we&apos;re running with.

&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/port_testcase.py:48
&gt; &gt; +    def test_driver_cmd_line(self):
&gt; &gt; +        port = self.make_port()
&gt; 
&gt; It looks like this test is only run by mac_unittest.py.  Would it be better to just move this test into that file and do more validation on the command line than len &gt; 0?

That is not intentionally the case. I am fairly positive that when I originally wrote this more than one port was using it - I think I had a win_unittest.py as well, but maybe that never got checked in. At any rate, all of the port unittests should be subclassing this class and running these tests, at which point I can&apos;t assume anything too helpful about the command line. I can file a separate bug for that or add a FIXME or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312950</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-23 11:43:35 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Is the expectation to only use this during tests?  It would be nice to not expose the flag in --help if we don&apos;t have to.
&gt; &gt; 
&gt; 
&gt; No. This is very much intended to be a user-visible feature. I&apos;m adding it because people have asked for an easy way to see what command line we&apos;re running with.

Is printing it when running (added in this patch) not sufficient?  It&apos;s pretty easy to run NRWT and press ctrl+c to get the command line then.  I only bring it up because NRWT --help is so long and unorganized that it&apos;s pretty much worthless now.  webkit-patch is much better in this regard.


&gt; &gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/port/port_testcase.py:48
&gt; &gt; &gt; +    def test_driver_cmd_line(self):
&gt; &gt; &gt; +        port = self.make_port()
&gt; &gt; 
&gt; &gt; It looks like this test is only run by mac_unittest.py.  Would it be better to just move this test into that file and do more validation on the command line than len &gt; 0?
&gt; 
&gt; That is not intentionally the case. I am fairly positive that when I originally wrote this more than one port was using it - I think I had a win_unittest.py as well, but maybe that never got checked in. At any rate, all of the port unittests should be subclassing this class and running these tests, at which point I can&apos;t assume anything too helpful about the command line. I can file a separate bug for that or add a FIXME or something.

Please file a separate bug and add a FIXME.  In general, I&apos;m not in favor of abstraction that isn&apos;t used so it should either be used (more port unittests checked in) or removed soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312957</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-23 11:52:51 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Is the expectation to only use this during tests?  It would be nice to not expose the flag in --help if we don&apos;t have to.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; No. This is very much intended to be a user-visible feature. I&apos;m adding it because people have asked for an easy way to see what command line we&apos;re running with.
&gt; 
&gt; Is printing it when running (added in this patch) not sufficient?  It&apos;s pretty easy to run NRWT and press ctrl+c to get the command line then.  I only bring it up because NRWT --help is so long and unorganized that it&apos;s pretty much worthless now.  webkit-patch is much better in this regard.
&gt; 

I personally have often wanted to be able to just verify the config and exit, and I don&apos;t really like having to ctrl-C things. Also, the alternatives are either remembering to do &quot;--print config&quot; which is just as bad as having &quot;--print-config&quot; (although at least it already exists) or &quot;--verbose&quot;, in which case the message will likely be lost. I&apos;d prefer the current approach.

I agree the --help output is long and confusing. There&apos;s a separate bug filed for cleaning up the option processing. I think rolling better printing into that would be fitting.

&gt; 
&gt; Please file a separate bug and add a FIXME.  In general, I&apos;m not in favor of abstraction that isn&apos;t used so it should either be used (more port unittests checked in) or removed soon.

Will do. I think the abstraction is useful even as is, since it represents &quot;tests that should be true on every port&quot; as opposed to &quot;mac-specific tests&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313495</commentid>
    <comment_count>7</comment_count>
      <attachid>74802</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:29:39 -0800</bug_when>
    <thetext>Created attachment 74802
update w/ review feedback, rebase to tip of tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313496</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 15:31:16 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; 
&gt; &gt; Please file a separate bug and add a FIXME.  In general, I&apos;m not in favor of abstraction that isn&apos;t used so it should either be used (more port unittests checked in) or removed soon.
&gt; 
&gt; Will do. I think the abstraction is useful even as is, since it represents &quot;tests that should be true on every port&quot; as opposed to &quot;mac-specific tests&quot;.

FIXME added, bug 50043 filed and patch uploaded in order to not conflate things in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313516</commentid>
    <comment_count>9</comment_count>
      <attachid>74806</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 16:19:23 -0800</bug_when>
    <thetext>Created attachment 74806
remove --print-config; we&apos;ll add a separate --dry-run flag instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313517</commentid>
    <comment_count>10</comment_count>
      <attachid>74807</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 16:27:34 -0800</bug_when>
    <thetext>Created attachment 74807
actually pass the tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313518</commentid>
    <comment_count>11</comment_count>
      <attachid>74807</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-24 16:31:09 -0800</bug_when>
    <thetext>Comment on attachment 74807
actually pass the tests

View in context: https://bugs.webkit.org/attachment.cgi?id=74807&amp;action=review

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:538
&gt;          if (not self._driver or self._driver.poll() is not None):

Nit: remove the ()s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313531</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 16:51:12 -0800</bug_when>
    <thetext>--dry-run patch uploaded as bug 50043.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313536</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 16:53:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; --dry-run patch uploaded as bug 50043.

Make that bug 50045.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313538</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-24 17:00:28 -0800</bug_when>
    <thetext>Closed, landed as r72708.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74590</attachid>
            <date>2010-11-22 13:36:20 -0800</date>
            <delta_ts>2010-11-24 15:29:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49934-20101122133619.patch</filename>
            <type>text/plain</type>
            <size>29577</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3ZTY0NzkzNDg3MWFmZDViMGUyMjRiODM3NzQ3ODk1Yzg5OWUzYTIwLi41OWU4ZjE0
Y2I4NzRhZTZlZWFkNWM5N2NmZWJiYzVjODdhZjI4YTgwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTAtMTEtMjIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCAtIGFkZCAtLXBy
aW50LWNvbmZpZywgY2xlYW4gdXAgY3JlYXRlX2RyaXZlciBpbnRlcmZhY2UKKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgdGhlIC0tcHJpbnQtY29uZmlnIG9wdGlvbiB0byBuZXctcnVuLXdlYmtp
dC10ZXN0cy4KKyAgICAgICAgUGFzc2luZyB0aGlzIGZsYWcgd2lsbCBjYXVzZSBOUldUIHRvIHBy
aW50IHRoZSBjb25maWcgaXQgd2lsbCB1c2UKKyAgICAgICAgZm9yIHRoZSB0ZXN0IHJ1biBhbmQg
dGhlbiBleGl0LiBJbiBwYXJ0aWN1bGFyLCBpdCB3aWxsIG5vdyBwcmludAorICAgICAgICB0aGUg
Y29tbWFuZCBsaW5lIGl0IHdpbGwgdXNlIGZvciBEdW1wUmVuZGVyVHJlZS4gVGhpcyBwYXRjaCBh
ZGRzCisgICAgICAgIGEgZHJpdmVyX2NtZF9saW5lKCkgY2FsbCB0byB0aGUgUG9ydCBjbGFzcyBp
biBvcmRlciB0byByZXRyaXZlCisgICAgICAgIHRoZSBjb21tYW5kIGxpbmUgdG8gcHJpbnQgaXQg
b3V0LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB0aGlzIHBhdGNoIGNsZWFucyB1cCB0aGUgUG9y
dC5jcmVhdGVfZHJpdmVyKCkKKyAgICAgICAgc2lnbmF0dXJlIGFuZCB0aGUgRHJpdmVyIGNvbnN0
cnVjdG9yIGludGVyZmFjZSB0byB0YWtlIGEgd29ya2VyCisgICAgICAgIG51bWJlciBhbmQgbm8g
bG9uZ2VyIHJlcXVpcmUgdGhlIGltYWdlX3BhdGggYXJndW1lbnQgKENocm9taXVtJ3MKKyAgICAg
ICAgZHJpdmVycyBub3cgc3ludGhlc2l6ZSB0aGUgaW1hZ2VfcGF0aCBmcm9tIHRoZSB3b3JrZXIg
bnVtYmVyCisgICAgICAgIGludGVybmFsbHkpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTkzNAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
cHJpbnRpbmcucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHNfdW5pdHRlc3QucHk6CisKIDIwMTAtMTEtMTkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQu
cHkKaW5kZXggYWYxNWE4MmVmYmUwNTlhODQxZTI5M2ZjYzViOGY0YTgwYjgxZTJjNC4uZGNmNTRj
Y2Y4ODljYTMzOTRhY2U2MGQ3YjZmOWVkZGU4MTY2MzQwYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5k
ZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTE3
NCw3ICsxNzQsNiBAQCBjbGFzcyBTaW5nbGVUZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgog
ICAgICAgICAgIHBvcnQ6IG9iamVjdCBpbXBsZW1lbnRpbmcgcG9ydC1zcGVjaWZpYyBob29rcwog
ICAgICAgICAgIG9wdGlvbnM6IGNvbW1hbmQgbGluZSBhcmd1bWVudCBvYmplY3QgZnJvbSBvcHRw
YXJzZQogICAgICAgICAgIHdvcmtlcl9udW1iZXI6IHdvcmtlciBudW1iZXIgZm9yIHRlc3RzCi0g
ICAgICAgICAgICAgIChGSVhNRTogdGhpcyBzaG91bGQgYmUgcGFzc2VkIHRvIHBvcnQuY3JlYXRl
X2RyaXZlcigpKS4KICAgICAgICAgICB3b3JrZXJfbmFtZTogZm9yIGxvZ2dpbmcKICAgICAgICAg
ICB0ZXN0X2lucHV0OiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFtZSBhbmQgdGlt
ZW91dAogICAgICAgICAgIHRlc3RfdHlwZXM6IEEgbGlzdCBvZiBUZXN0VHlwZSBvYmplY3RzIHRv
IHJ1biB0aGUgdGVzdCBvdXRwdXQKQEAgLTE5OCw4ICsxOTcsNyBAQCBjbGFzcyBTaW5nbGVUZXN0
VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfY292ZXJlZF9ydW4oc2VsZik6CiAg
ICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSByb3V0aW5lIHRvIHdvcmsgYXJvdW5k
IGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBodHRwOi8vYml0YnVja2V0Lm9yZy9u
ZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fcG9y
dC5jcmVhdGVfZHJpdmVyKHNlbGYuX3Rlc3RfYXJncy5wbmdfcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMpCisgICAgICAg
IHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl93b3JrZXJfbnVt
YmVyKQogICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoKQogICAgICAgICBzZWxmLl90ZXN0X3Jl
c3VsdCA9IF9ydW5fc2luZ2xlX3Rlc3Qoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXQs
IHNlbGYuX3Rlc3RfdHlwZXMsCkBAIC0yOTQsMTIgKzI5Miw2IEBAIGNsYXNzIFRlc3RTaGVsbFRo
cmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgIGRlZiBfZ2V0X3Rlc3RfYXJncyhzZWxmLCB3b3Jr
ZXJfbnVtYmVyKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgdHVwbGUgb2YgYXJndW1lbnRzIGZv
ciB0ZXN0cyBhbmQgZm9yIER1bXBSZW5kZXJUcmVlLiIiIgogICAgICAgICB0ZXN0X2FyZ3MgPSB0
ZXN0X3R5cGVfYmFzZS5UZXN0QXJndW1lbnRzKCkKLSAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRo
ID0gTm9uZQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzOgotICAgICAgICAg
ICAgcG5nX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbmdfcmVzdWx0JXMucG5n
IiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyKQotICAgICAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRoID0gcG5nX3BhdGgKICAgICAgICAg
dGVzdF9hcmdzLm5ld19iYXNlbGluZSA9IHNlbGYuX29wdGlvbnMubmV3X2Jhc2VsaW5lCiAgICAg
ICAgIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzID0gc2VsZi5fb3B0aW9ucy5yZXNldF9yZXN1bHRz
CiAKQEAgLTU0Niw4ICs1MzgsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhy
ZWFkKToKICAgICAgICAgIyBwb2xsKCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJvdyBP
U0Vycm9yIGR1ZSB0bzoKICAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTcz
MTcxNwogICAgICAgICBpZiAobm90IHNlbGYuX2RyaXZlciBvciBzZWxmLl9kcml2ZXIucG9sbCgp
IGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3Jl
YXRlX2RyaXZlcihzZWxmLl90ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucykKKyAgICAgICAg
ICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl93b3JrZXJf
bnVtYmVyKQogICAgICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKIAogICAgIGRlZiBfc3Rh
cnRfc2VydmVyc193aXRoX2xvY2soc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3By
aW50aW5nLnB5CmluZGV4IGZiOWZlNmRhZmQxNWM4YzUwYzVjMTY4NDc2NDRkZDJhOWYxYTZhMDIu
LjE5ODQxM2UzOGFjMzczN2ViZjcwZDZiNTVlMWZhZDEwZTU0NDQyZjUgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3By
aW50aW5nLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CkBAIC0xMTksNiArMTE5LDggQEAgZGVmIHByaW50
X29wdGlvbnMoKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQiLCBkZXN0
PSJwcmludF9vcHRpb25zIiwKICAgICAgICAgICAgIGhlbHA9KCJjb250cm9scyBwcmludCBvdXRw
dXQgb2YgdGVzdCBydW4uICIKICAgICAgICAgICAgICAgICAgICJVc2UgLS1oZWxwLXByaW50aW5n
IGZvciBtb3JlLiIpKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQtY29u
ZmlnIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhl
bHA9IlByaW50IHRoZSBjb25maWcgdXNlZCBmb3IgdGhlIHJ1biBhbmQgZXhpdC4iKSwKICAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0taGVscC1wcmludGluZyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCiAgICAgICAgICAgICBoZWxwPSJzaG93IGRldGFpbGVkIGhlbHAgb24gY29udHJvbGxp
bmcgcHJpbnQgb3V0cHV0IiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItdiIsICIt
LXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTI2LDggKzEyOCw3IEBAIGRlZiBw
cmludF9vcHRpb25zKCk6CiAgICAgXQogCiAKLQotZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJp
bnRfb3B0aW9ucywgdmVyYm9zZSwgY2hpbGRfcHJvY2Vzc2VzLAorZGVmIHBhcnNlX3ByaW50X29w
dGlvbnMocHJpbnRfb3B0aW9ucywgdmVyYm9zZSwgcHJpbnRfY29uZmlnLCBjaGlsZF9wcm9jZXNz
ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICBpc19mdWxseV9wYXJhbGxlbCk6CiAgICAgIiIi
UGFyc2UgdGhlIG9wdGlvbnMgcHJvdmlkZWQgdG8gLS1wcmludCBhbmQgZGVkdXAgYW5kIHJhbmsg
dGhlbS4KIApAQCAtMTQyLDYgKzE0Myw5IEBAIGRlZiBwYXJzZV9wcmludF9vcHRpb25zKHByaW50
X29wdGlvbnMsIHZlcmJvc2UsIGNoaWxkX3Byb2Nlc3NlcywKICAgICBlbHNlOgogICAgICAgICBz
d2l0Y2hlcyA9IHNldChQUklOVF9ERUZBVUxULnNwbGl0KCcsJykpCiAKKyAgICBpZiBwcmludF9j
b25maWc6CisgICAgICAgIHN3aXRjaGVzLmFkZCgnY29uZmlnJykKKwogICAgIGlmICdub3RoaW5n
JyBpbiBzd2l0Y2hlczoKICAgICAgICAgcmV0dXJuIHNldCgpCiAKQEAgLTI1MCw3ICsyNTQsOCBA
QCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBvcHRpb25zLnZlcmJvc2UpCiAK
ICAgICAgICAgc2VsZi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50X29wdGlvbnMob3B0aW9ucy5wcmlu
dF9vcHRpb25zLAotICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlLCBjaGlsZF9wcm9jZXNzZXMs
IGlzX2Z1bGx5X3BhcmFsbGVsKQorICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlLCBvcHRpb25z
LnByaW50X2NvbmZpZywgY2hpbGRfcHJvY2Vzc2VzLAorICAgICAgICAgICAgaXNfZnVsbHlfcGFy
YWxsZWwpCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgIiIiUmVzdG9yZSBsb2dn
aW5nIGNvbmZpZ3VyYXRpb24gdG8gaXRzIGluaXRpYWwgc2V0dGluZ3MuIiIiCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9wcmludGluZ191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CmluZGV4IDlhMGY0
ZWVhMjA4ZDIxY2Y4OGVmOGQ1ZWVhZjE0ODNhNTExNjE4ZTMuLmJiNDE3OWU5NGRhZDVhNWRlODk1
MDczZGEzOWQxMzU4NDJhNjA3NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC03OCw0MiArNzgsNDAgQEAgY2xhc3MgVGVzdFV0
aWxpdHlGdW5jdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRy
dWUob3B0aW9ucyBpcyBub3QgTm9uZSkKIAogICAgIGRlZiB0ZXN0X3BhcnNlX3ByaW50X29wdGlv
bnMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X3N3aXRjaGVzKGFyZ3MsIHZlcmJvc2UsIGNoaWxk
X3Byb2Nlc3NlcywgaXNfZnVsbHlfcGFyYWxsZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkX3N3aXRjaGVzX3N0cik6CisgICAgICAgIGRlZiB0ZXN0X3N3aXRjaGVzKGFyZ3Ms
IGV4cGVjdGVkX3N3aXRjaGVzX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9z
ZT1GYWxzZSwgcHJpbnRfY29uZmlnPUZhbHNlLCBjaGlsZF9wcm9jZXNzZXM9MSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXNfZnVsbHlfcGFyYWxsZWw9RmFsc2UpOgogICAgICAgICAgICAg
b3B0aW9ucywgYXJncyA9IGdldF9vcHRpb25zKGFyZ3MpCiAgICAgICAgICAgICBpZiBleHBlY3Rl
ZF9zd2l0Y2hlc19zdHI6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3dpdGNoZXMgPSBzZXQo
ZXhwZWN0ZWRfc3dpdGNoZXNfc3RyLnNwbGl0KCcsJykpCiAgICAgICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3N3aXRjaGVzID0gc2V0KCkKICAgICAgICAgICAgIHN3aXRj
aGVzID0gcHJpbnRpbmcucGFyc2VfcHJpbnRfb3B0aW9ucyhvcHRpb25zLnByaW50X29wdGlvbnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
Ym9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJib3NlLCBwcmludF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hpbGRfcHJvY2Vzc2VzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2Z1bGx5X3BhcmFsbGVsKQogICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9zd2l0Y2hlcywgc3dpdGNoZXMpCiAK
ICAgICAgICAgIyB0ZXN0IHRoYXQgd2UgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzZXQgb2Ygc3dp
dGNoZXMKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgRmFsc2UsIDEsIEZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCisgICAgICAgIHRlc3Rfc3dp
dGNoZXMoW10sIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCiAKICAgICAgICAgIyB0ZXN0IHRoYXQg
dmVyYm9zZSBkZWZhdWx0cyB0byBldmVyeXRoaW5nCi0gICAgICAgIHRlc3Rfc3dpdGNoZXMoW10s
IFRydWUsIDEsIEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0VW
RVJZVEhJTkcpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMoW10sIHByaW50aW5nLlBSSU5UX0VWRVJZ
VEhJTkcsIHZlcmJvc2U9VHJ1ZSkKIAogICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50IGRlZmF1
bHQgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0t
cHJpbnQnLCAnZGVmYXVsdCddLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKKyAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJp
bnQnLCAnZGVmYXVsdCddLCBwcmludGluZy5QUklOVF9ERUZBVUxUKQogCiAgICAgICAgICMgdGVz
dCB0aGF0IC0tcHJpbnQgbm90aGluZyBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdub3RoaW5nJ10sIEZhbHNlLCAxLCBGYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICBOb25lKQorICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1w
cmludCcsICdub3RoaW5nJ10sIE5vbmUpCiAKICAgICAgICAgIyB0ZXN0IHRoYXQgLS1wcmludCBl
dmVyeXRoaW5nIGRvZXMgd2hhdCBpdCdzIHN1cHBvc2VkIHRvCi0gICAgICAgIHRlc3Rfc3dpdGNo
ZXMoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSwgRmFsc2UsIDEsIEZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0VWRVJZVEhJTkcpCisgICAgICAgIHRlc3Rfc3dp
dGNoZXMoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSwgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElO
RykKIAogICAgICAgICAjIHRoaXMgdGVzdHMgdGhhdCAnLS1wcmludCBYJyBvdmVycmlkZXMgJy0t
dmVyYm9zZScKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJpbnQnLCAnYWN0dWFsJ10sIFRy
dWUsIDEsIEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICdhY3R1YWwnKQorICAgICAgICB0
ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgJ2FjdHVhbCcsIHZlcmJvc2U9VHJ1
ZSkKKworICAgICAgICAjIHRlc3QgdGhhdCAnLS1wcmludC1jb25maWcgYWRkcyAnY29uZmlnJwor
ICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgJ2FjdHVhbCxjb25m
aWcnLCBwcmludF9jb25maWc9VHJ1ZSkKIAogCiBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IDYzMjgwNmZiMmNlMzBmNTM4OTNkNDhlNzg1MGJj
MGZiODg3NGMzOTAuLjIzOWJkMmNhZGFiYmVjMzRkOWNmMWY1ZGM3OGRmZGJiNjZiMTlkOWMgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKQEAgLTM4NCw2ICszODQsMTEgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAg
ICAgICAjIHZhbGlkIHRlc3QgYW5kIGJ5IHByaW50aW5nLnB5IHRvIGRldGVybWluZSBpZiBiYXNl
bGluZXMgZXhpc3QuCiAgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhwYXRo
KQogCisgICAgZGVmIGRyaXZlcl9jbWRfbGluZShzZWxmKToKKyAgICAgICAgIiIiUHJpbnRzIHRo
ZSBEUlQgY29tbWFuZCBsaW5lIHRoYXQgd2lsbCBiZSB1c2VkLiIiIgorICAgICAgICBkcml2ZXIg
PSBzZWxmLmNyZWF0ZV9kcml2ZXIoMCkKKyAgICAgICAgcmV0dXJuIGRyaXZlci5jbWRfbGluZSgp
CisKICAgICBkZWYgdXBkYXRlX2Jhc2VsaW5lKHNlbGYsIHBhdGgsIGRhdGEsIGVuY29kaW5nKToK
ICAgICAgICAgIiIiVXBkYXRlcyB0aGUgYmFzZWxpbmUgZm9yIGEgdGVzdC4KIApAQCAtNTExLDcg
KzUxNiw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgcmVzdWx0c19maWxlbmFtZSBp
biBhIHVzZXJzJyBicm93c2VyLiIiIgogICAgICAgICByZXR1cm4gc2VsZi5fdXNlci5vcGVuX3Vy
bChyZXN1bHRzX2ZpbGVuYW1lKQogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2Vf
cGF0aCwgb3B0aW9ucyk6CisgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2VyX251bWJl
cik6CiAgICAgICAgICIiIlJldHVybiBhIG5ld2x5IGNyZWF0ZWQgYmFzZS5Ecml2ZXIgc3ViY2xh
c3MgZm9yIHN0YXJ0aW5nL3N0b3BwaW5nCiAgICAgICAgIHRoZSB0ZXN0IGRyaXZlci4iIiIKICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5jcmVhdGVfZHJpdmVyJykKQEAg
LTc0MSw3ICs3NDYsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAKICAgICBkZWYgX3BhdGhfdG9f
ZHJpdmVyKHNlbGYsIGNvbmZpZ3VyYXRpb249Tm9uZSk6CiAgICAgICAgICIiIlJldHVybnMgdGhl
IGZ1bGwgcGF0aCB0byB0aGUgdGVzdCBkcml2ZXIgKER1bXBSZW5kZXJUcmVlKS4iIiIKLSAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX2RyaXZlcicpCisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuX3BhdGhfdG9fZHJpdmVyJykKIAog
ICAgIGRlZiBfcGF0aF90b193ZWJjb3JlX2xpYnJhcnkoc2VsZik6CiAgICAgICAgICIiIlJldHVy
bnMgdGhlIGZ1bGwgcGF0aCB0byBhIGJ1aWx0IGNvcHkgb2YgV2ViQ29yZS4iIiIKQEAgLTgwNCwx
OSArODA5LDE0IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIGNsYXNzIERyaXZlcjoKICAgICAiIiJB
YnN0cmFjdCBpbnRlcmZhY2UgZm9yIHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgcG5nX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgogICAgICAg
ICAiIiJJbml0aWFsaXplIGEgRHJpdmVyIHRvIHN1YnNlcXVlbnRseSBydW4gdGVzdHMuCiAKICAg
ICAgICAgVHlwaWNhbGx5IHRoaXMgcm91dGluZSB3aWxsIHNwYXduIER1bXBSZW5kZXJUcmVlIGlu
IGEgY29uZmlnCiAgICAgICAgIHJlYWR5IGZvciBzdWJzZXF1ZW50IGlucHV0LgogCiAgICAgICAg
IHBvcnQgLSByZWZlcmVuY2UgYmFjayB0byB0aGUgcG9ydCBvYmplY3QuCi0gICAgICAgIHBuZ19w
YXRoIC0gYW4gYWJzb2x1dGUgcGF0aCBmb3IgdGhlIGRyaXZlciB0byB3cml0ZSBhbnkgaW1hZ2UK
LSAgICAgICAgICAgIGRhdGEgZm9yIGEgdGVzdCAoYXMgYSBQTkcpLiBJZiBubyBwYXRoIGlzIHBy
b3ZpZGVkLCB0aGF0Ci0gICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCBwaXhlbCB0ZXN0IHJlc3Vs
dHMgd2lsbCBub3QgYmUgY2hlY2tlZC4KLSAgICAgICAgb3B0aW9ucyAtIGNvbW1hbmQgbGluZSBv
cHRpb25zIGFyZ3VtZW50IGZyb20gb3B0cGFyc2UKLSAgICAgICAgZXhlY3V0aXZlIC0gcmVmZXJl
bmNlIHRvIHRoZSBwcm9jZXNzLXdpZGUgRXhlY3V0aXZlIG9iamVjdAotCisgICAgICAgIHdvcmtl
cl9udW1iZXIgLSBpZGVudGlmaWVyIGZvciBhIHBhcnRpY3VsYXIgd29ya2VyL2RyaXZlciBpbnN0
YW5jZQogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignRHJp
dmVyLl9faW5pdF9fJykKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CmluZGV4IDFlOWMy
Yjc1ZTAyNDkwOTliMThmMTQ4Mjk3MzQwMWViNjhmMDk5OTEuLjYwY2I3ZTAzM2M1ZWNlNTU4ODZl
ZmFlMDIwM2E1MWJiMjg2MjczYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKQEAg
LTI1OCw3ICsyNTgsNyBAQCBjbGFzcyBWaXJ0dWFsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKQogICAg
ICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jaGVja19idWlsZCwgTm9uZSkKICAgICAgICAg
c2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuY2hlY2tfaW1hZ2VfZGlmZikKLSAgICAgICAgc2VsZi5h
c3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgTm9uZSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgMCkKICAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQuZGlmZl9pbWFnZSwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKQogICAgICAgICBz
ZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25hbWUpCkBAIC0yODIsNyArMjgy
LDcgQEAgY2xhc3MgVmlydHVhbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRl
c3RfdmlydHVhbF9kcml2ZXJfbWV0aG9kKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhOb3RJbXBsZW1lbnRlZEVycm9yLCBiYXNlLkRyaXZlciwgYmFzZS5Qb3J0KCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICIiLCBOb25lLCBOb25lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKQogCiAgICAgZGVmIHRlc3RfdmlydHVhbF9kcml2ZXJfbWV0aG9kcyhzZWxmKToKICAg
ICAgICAgY2xhc3MgVmlydHVhbERyaXZlcihiYXNlLkRyaXZlcik6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5w
eQppbmRleCAzMTQ5MjkwOTlhYzEzNmQyODYxMmUzY2NmNzgxNzIxOTBkZjhmZDMyLi5mNDQ3MWFl
MjBjZmVjMjlhN2VlZjBjNmUyZTM1YTUxOTBlMGJmMjM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkK
QEAgLTQzLDcgKzQzLDYgQEAgaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGltZQogaW1wb3J0IHdl
YmJyb3dzZXIKIAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQg
RXhlY3V0aXZlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ucGF0aCBpbXBvcnQgY3lncGF0
aAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rf
ZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBp
bXBvcnQgdGVzdF9vdXRwdXQKQEAgLTE3NSw2ICsxNzQsOCBAQCBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIGRyaXZlcl9uYW1l
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9kcnQ6CisgICAgICAgICAgICBy
ZXR1cm4gIkR1bXBSZW5kZXJUcmVlIgogICAgICAgICByZXR1cm4gInRlc3Rfc2hlbGwiCiAKICAg
ICBkZWYgcGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uoc2VsZiwgKmNvbXBzKToKQEAgLTIxMiwxMyAr
MjEzLDExIEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICBpZiBvcy5w
YXRoLmV4aXN0cyhjYWNoZWRpcik6CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGNhY2hlZGly
KQogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Cisg
ICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAgICIiIlN0
YXJ0cyBhIG5ldyBEcml2ZXIgYW5kIHJldHVybnMgYSBoYW5kbGUgdG8gaXQuIiIiCi0gICAgICAg
IGlmIG9wdGlvbnMudXNlX2RydCBhbmQgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAg
ICAgICAgcmV0dXJuIHdlYmtpdC5XZWJLaXREcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9u
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGl2ZT1zZWxm
Ll9leGVjdXRpdmUpCi0gICAgICAgIHJldHVybiBDaHJvbWl1bURyaXZlcihzZWxmLCBpbWFnZV9w
YXRoLCBvcHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aXZlPXNl
bGYuX2V4ZWN1dGl2ZSkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfZHJ0JykgYW5k
IHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgICAgIHJldHVybiB3ZWJraXQuV2Vi
S2l0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCisgICAgICAgIHJldHVybiBDaHJvbWl1bURy
aXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgZGVmIHN0YXJ0X2hlbHBlcihzZWxmKToK
ICAgICAgICAgaGVscGVyX3BhdGggPSBzZWxmLl9wYXRoX3RvX2hlbHBlcigpCkBAIC0zNTksNDgg
KzM1OCw1MCBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKIGNsYXNzIENocm9taXVt
RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJBYnN0cmFjdCBpbnRlcmZhY2UgZm9yIHRlc3Rf
c2hlbGwuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0
aW9ucywgZXhlY3V0aXZlPUV4ZWN1dGl2ZSgpKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCwgd29ya2VyX251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAgICAgIHNl
bGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9w
YXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZQotCi0gICAgZGVmIF9kcml2
ZXJfYXJncyhzZWxmKToKLSAgICAgICAgZHJpdmVyX2FyZ3MgPSBbXQotICAgICAgICBpZiBzZWxm
Ll9pbWFnZV9wYXRoOgorICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJl
cgorICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gTm9uZQorICAgICAgICBpZiBzZWxmLl9wb3J0
LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CisgICAgICAgICAgICBzZWxmLl9pbWFnZV9wYXRo
ID0gb3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuZ2V0X29wdGlvbign
cmVzdWx0c19kaXJlY3RvcnknKSwKKyAgICAgICAgICAgICAgICAncG5nX3Jlc3VsdCVzLnBuZycg
JSBzZWxmLl93b3JrZXJfbnVtYmVyKQorCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAgICAg
ICBjbWQgPSBzZWxmLl9jb21tYW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFw
cGVyJykpCisgICAgICAgIGNtZC5hcHBlbmQoc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIoKSkK
KyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgogICAgICAg
ICAgICAgIyBTZWUgbm90ZSBhYm92ZSBpbiBkaWZmX2ltYWdlKCkgZm9yIHdoeSB3ZSBuZWVkIF9j
b252ZXJ0X3BhdGgoKS4KLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgiLS1waXhlbC10
ZXN0cz0iICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9jb252
ZXJ0X3BhdGgoc2VsZi5faW1hZ2VfcGF0aCkpCisgICAgICAgICAgICBjbWQuYXBwZW5kKCItLXBp
eGVsLXRlc3RzPSIgKworICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9jb252ZXJ0
X3BhdGgoc2VsZi5faW1hZ2VfcGF0aCkpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0
aW9uKCd1c2VfZHJ0Jyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tdGVzdC1z
aGVsbCcpCisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXRlc3Qtc2hlbGwnKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWxheW91dC10ZXN0cycpCisg
ICAgICAgICAgICBjbWQuYXBwZW5kKCctLWxheW91dC10ZXN0cycpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdzdGFydHVwX2RpYWxvZycpOgotICAgICAgICAgICAgZHJpdmVy
X2FyZ3MuYXBwZW5kKCctLXRlc3RzaGVsbC1zdGFydHVwLWRpYWxvZycpCisgICAgICAgICAgICBj
bWQuYXBwZW5kKCctLXRlc3RzaGVsbC1zdGFydHVwLWRpYWxvZycpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdncF9mYXVsdF9lcnJvcl9ib3gnKToKLSAgICAgICAgICAgIGRy
aXZlcl9hcmdzLmFwcGVuZCgnLS1ncC1mYXVsdC1lcnJvci1ib3gnKQorICAgICAgICAgICAgY21k
LmFwcGVuZCgnLS1ncC1mYXVsdC1lcnJvci1ib3gnKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlv
bnMuanNfZmxhZ3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQo
Jy0tanMtZmxhZ3M9IicgKyBzZWxmLl9vcHRpb25zLmpzX2ZsYWdzICsgJyInKQorICAgICAgICBp
ZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2pzX2ZsYWdzJykgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBjbWQuYXBwZW5kKCctLWpzLWZsYWdzPSInICsgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdq
c19mbGFncycpICsgJyInKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9h
ZHMgaXMgbm90IE5vbmUgYW5kIHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9hZHMgPiAwOgotICAg
ICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLW11bHRpcGxlLWxvYWRzPScgKyBzdHIoc2Vs
Zi5fb3B0aW9ucy5tdWx0aXBsZV9sb2FkcykpCisgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29w
dGlvbignbXVsdGlwbGVfbG9hZHMnKSA+IDA6CisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW11
bHRpcGxlLWxvYWRzPScgKyBzdHIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdtdWx0aXBsZV9sb2Fk
cycpKSkKIAogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkX2Nv
bXBvc2l0aW5nJyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tZW5hYmxlLWFj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nJykKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZW5hYmxl
LWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nJykKIAogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpOgotICAgICAgICAgICAgZHJpdmVyX2FyZ3Mu
YXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnKQotICAgICAgICByZXR1cm4g
ZHJpdmVyX2FyZ3MKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZW5hYmxlLWFjY2VsZXJhdGVk
LTJkLWNhbnZhcycpCisgICAgICAgIHJldHVybiBjbWQKIAogICAgIGRlZiBzdGFydChzZWxmKToK
ICAgICAgICAgIyBGSVhNRTogU2hvdWxkIGJlIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRob2Qg
dHdpY2UuCi0gICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0Lmdl
dF9vcHRpb24oJ3dyYXBwZXInKSkKLSAgICAgICAgY21kLmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRo
X3RvX2RyaXZlcigpKQotICAgICAgICBjbWQgKz0gc2VsZi5fZHJpdmVyX2FyZ3MoKQorICAgICAg
ICBjbWQgPSBzZWxmLmNtZF9saW5lKCkKIAogICAgICAgICAjIFdlIG5lZWQgdG8gcGFzcyBjbG9z
ZV9mZHM9VHJ1ZSB0byB3b3JrIGFyb3VuZCBQeXRob24gYnVnICMyMzIwCiAgICAgICAgICMgKG90
aGVyd2lzZSB3ZSBjYW4gaGFuZyB3aGVuIHdlIGtpbGwgRHVtcFJlbmRlclRyZWUgd2hlbiB3ZSBh
cmUgcnVubmluZwpAQCAtNTMyLDQgKzUzMyw0IEBAIGNsYXNzIENocm9taXVtRHJpdmVyKGJhc2Uu
RHJpdmVyKToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lOgog
ICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ3N0b3BwaW5nIHRlc3QgZHJpdmVyIHRp
bWVkIG91dCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tpbGxpbmcgaXQn
KQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYu
X3Byb2MucGlkKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9leGVjdXRpdmUua2ls
bF9wcm9jZXNzKHNlbGYuX3Byb2MucGlkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRl
c3QucHkKaW5kZXggOTJhMzFmYmU0NjI5M2E5YmM1MmM1YzU5NDM3MTQwYWRmNzMwZjhhMC4uNTM5
NjUyMjBmZjJhM2FkOTQwZDFmYzE5MDMyYTNjYTljMDg5NGY1YSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVz
dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3VuaXR0ZXN0LnB5CkBAIC00Miw3ICs0Miw4IEBAIGNsYXNzIENocm9taXVtRHJp
dmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAg
ICAgIG1vY2tfcG9ydCA9IE1vY2soKQotICAgICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtLkNo
cm9taXVtRHJpdmVyKG1vY2tfcG9ydCwgaW1hZ2VfcGF0aD1Ob25lLCBvcHRpb25zPU5vbmUpCisg
ICAgICAgIG1vY2tfcG9ydC5nZXRfb3B0aW9uID0gbGFtYmRhIG9wdGlvbl9uYW1lOiAnJworICAg
ICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtLkNocm9taXVtRHJpdmVyKG1vY2tfcG9ydCwgd29y
a2VyX251bWJlcj0wKQogCiAgICAgZGVmIHRlc3RfdGVzdF9zaGVsbF9jb21tYW5kKHNlbGYpOgog
ICAgICAgICBleHBlY3RlZF9jb21tYW5kID0gInRlc3QuaHRtbCAyIGNoZWNrc3VtXG4iCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
eXJ1bi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
ZHJ5cnVuLnB5CmluZGV4IDk2ZDBkNTVmNjJkN2JjMTRiNGFkNDNhOWVhYTllZDA2OWQ2NDIwMTYu
LjEwOGI3YzZjYjk0NzU2ZDMxOTQ0ZWM2NTNiMjc3NjUzN2VhOTc0NGQgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVu
LnB5CkBAIC05NSwxOCArOTUsMTkgQEAgY2xhc3MgRHJ5UnVuUG9ydChvYmplY3QpOgogICAgIGRl
ZiBzdG9wX3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBhc3MKIAotICAgIGRlZiBj
cmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgotICAgICAgICByZXR1cm4g
RHJ5cnVuRHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQor
ICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICByZXR1
cm4gRHJ5cnVuRHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKIAogY2xhc3MgRHJ5cnVuRHJp
dmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJEcnlydW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIER1
bXBSZW5kZXJUcmVlIC8gRHJpdmVyIGludGVyZmFjZS4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0LCBpbWFnZV9wYXRoLCBvcHRpb25zLCBleGVjdXRpdmUpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKICAgICAgICAgc2VsZi5fcG9ydCA9IHBv
cnQKLSAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IGltYWdlX3BhdGgKLSAgICAgICAgc2VsZi5f
ZXhlY3V0aXZlID0gZXhlY3V0aXZlCi0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0c19kaXIgPSBO
b25lCisgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCisKKyAgICBk
ZWYgY21kX2xpbmUoc2VsZik6CisgICAgICAgIHJldHVybiBbJ05vbmUnXQogCiAgICAgZGVmIHBv
bGwoc2VsZik6CiAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2Uu
cHkKaW5kZXggMDRhZGE1MDAwZTNiMzUzODJjM2M5NjA5MjJlMjhjNTUzYzNmNDA0ZS4uOTdiNmYw
YTQ2N2E0YTQ5YmY2ODRhNWM3ZjI5MWE0OWJlOWVhNDU0MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90
ZXN0Y2FzZS5weQpAQCAtNDQsNiArNDQsMTIgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgIiIiT3ZlcnJpZGUgaW4gc3ViY2xhc3MuIiIiCiAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCisgICAgZGVmIHRlc3RfZHJpdmVyX2NtZF9s
aW5lKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBpZiBu
b3QgcG9ydDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLmFzc2VydFRydWUobGVu
KHBvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQorCiAgICAgZGVmIHRlc3RfaHR0cF9zZXJ2ZXIoc2Vs
Zik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGlmIG5vdCBwb3J0
OgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC90ZXN0LnB5CmluZGV4IDBhMjc4MjE0ZGMxYjI1OWE5NzQ4ZDJkYmIzNTY1ZDUwZmEyNTE1
YjQuLmI2NDNlYzdlNzg5YTZjYzZlZDExYTQ2NWM5NTYwNTUyOGYzNGI1NzYgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3Qu
cHkKQEAgLTIyNiw4ICsyMjYsOCBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgIGRl
ZiBzZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGNyZWF0ZV9k
cml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Ci0gICAgICAgIHJldHVybiBUZXN0RHJp
dmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQorICAgIGRlZiBj
cmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICByZXR1cm4gVGVzdERy
aXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgZGVmIHN0YXJ0X2h0dHBfc2VydmVyKHNl
bGYpOgogICAgICAgICBwYXNzCkBAIC0yODEsMTEgKzI4MSwxMSBAQCBXT05URklYIFNLSVAgOiBm
YWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRtbCA9IENSQVNICiBjbGFzcyBUZXN0RHJpdmVy
KGJhc2UuRHJpdmVyKToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRoZSBE
dW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCwgaW1hZ2VfcGF0aCwgb3B0aW9ucywgZXhlY3V0aXZlKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgd29ya2VyX251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAg
ICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9wYXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1dGl2
ZSA9IGV4ZWN1dGl2ZQotICAgICAgICBzZWxmLl9pbWFnZV93cml0dGVuID0gRmFsc2UKKworICAg
IGRlZiBjbWRfbGluZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFsnTm9uZSddCiAKICAgICBkZWYg
cG9sbChzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXggMDY3
OTdjNmQzOGUyNTQ1NzBkM2ZmYTBlYjYxYTJiM2M2OTQzNjA4Ny4uY2Y5NGY2Y2MxOTcxM2E5NzIz
NTU2MDZjZjMzMTY4Njk4MjI1ZjZmYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQ2LDggKzQ2LDYg
QEAgaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCBzaHV0aWwKIAotZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCi0KIGlt
cG9ydCB3ZWJraXRweS5jb21tb24uc3lzdGVtLm9zcGF0aCBhcyBvc3BhdGgKIGltcG9ydCB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UudGVzdF9vdXRwdXQgYXMgdGVzdF9vdXRw
dXQKIGltcG9ydCB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5iYXNlIGFzIGJhc2UKQEAgLTE4
NSw5ICsxODMsOCBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICMgVGhp
cyBwb3J0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbi4KICAgICAg
ICAgcGFzcwogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9u
cyk6Ci0gICAgICAgIHJldHVybiBXZWJLaXREcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9u
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpdmU9c2VsZi5fZXhlY3V0aXZl
KQorICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBy
ZXR1cm4gV2ViS2l0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKICAgICBkZWYgdGVzdF9i
YXNlX3BsYXRmb3JtX25hbWVzKHNlbGYpOgogICAgICAgICAjIEF0IHRoZSBtb21lbnQgd2UgZG9u
J3QgdXNlIHRlc3QgcGxhdGZvcm0gbmFtZXMsIGJ1dCB3ZSBoYXZlCkBAIC0zODksNDAgKzM4Niwz
NiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiBjbGFzcyBXZWJLaXREcml2ZXIoYmFz
ZS5Ecml2ZXIpOgogICAgICIiIldlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJlbmRl
clRyZWUgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGltYWdl
X3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1FeGVjdXRpdmUoKSk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVy
ID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxm
Ll9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAotICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVj
dXRpdmUKICAgICAgICAgc2VsZi5fZHJpdmVyX3RlbXBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKHBy
ZWZpeD0nRHVtcFJlbmRlclRyZWUtJykKIAogICAgIGRlZiBfX2RlbF9fKHNlbGYpOgogICAgICAg
ICBzaHV0aWwucm10cmVlKHNlbGYuX2RyaXZlcl90ZW1wZGlyKQogCi0gICAgZGVmIF9kcml2ZXJf
YXJncyhzZWxmKToKLSAgICAgICAgZHJpdmVyX2FyZ3MgPSBbXQorICAgIGRlZiBjbWRfbGluZShz
ZWxmKToKKyAgICAgICAgY21kID0gc2VsZi5fY29tbWFuZF93cmFwcGVyKHNlbGYuX3BvcnQuZ2V0
X29wdGlvbignd3JhcHBlcicpKQorICAgICAgICBjbWQgKz0gW3NlbGYuX3BvcnQuX3BhdGhfdG9f
ZHJpdmVyKCksICctJ10KIAotICAgICAgICBpZiBzZWxmLl9pbWFnZV9wYXRoOgotICAgICAgICAg
ICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLXBpeGVsLXRlc3RzJykKKyAgICAgICAgaWYgc2VsZi5f
cG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgorICAgICAgICAgICAgY21kLmFwcGVuZCgn
LS1waXhlbC10ZXN0cycpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd1c2Vf
ZHJ0Jyk6CiAgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nJyk6Ci0gICAgICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWVu
YWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycpCisgICAgICAgICAgICAgICAgY21kLmFwcGVu
ZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcnKQogCiAgICAgICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpOgotICAgICAgICAg
ICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtMmQtY2FudmFz
JykKKyAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1j
YW52YXMnKQogCi0gICAgICAgIHJldHVybiBkcml2ZXJfYXJncworICAgICAgICByZXR1cm4gY21k
CiAKICAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBzZWxmLl9jb21tYW5k
X3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCi0gICAgICAgIGNvbW1h
bmQgKz0gW3NlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCksICctJ10KLSAgICAgICAgY29tbWFu
ZCArPSBzZWxmLl9kcml2ZXJfYXJncygpCi0KICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9w
b3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCiAgICAgICAgIGVudmlyb25tZW50WydEWUxE
X0ZSQU1FV09SS19QQVRIJ10gPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKICAgICAgICAgZW52
aXJvbm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAnXSA9IHNlbGYuX2RyaXZlcl90ZW1wZGlyCiAg
ICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0gc2VydmVyX3Byb2Nlc3MuU2VydmVyUHJvY2Vz
cyhzZWxmLl9wb3J0LAotICAgICAgICAgICAgIkR1bXBSZW5kZXJUcmVlIiwgY29tbWFuZCwgZW52
aXJvbm1lbnQpCisgICAgICAgICAgICAiRHVtcFJlbmRlclRyZWUiLCBzZWxmLmNtZF9saW5lKCks
IGVudmlyb25tZW50KQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxm
Ll9zZXJ2ZXJfcHJvY2Vzcy5wb2xsKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDkx
MjhhZTg1NDJiYjRjYmQ0YzlkOWE1ZTk3OTllZmYyYjQyYjQ4ZDkuLmY4YTJjZmY3ODY0MTU1Y2Zj
NGM2YTZlMWEzZTJmODE0NTUzMDFkZTkgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAt
OTI2LDYgKzkyNiw4IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICBwLnByaW50X2Nv
bmZpZygiUnVubmluZyAlcyAlc3MgaW4gcGFyYWxsZWwiICUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkpKQorICAgICAgICBwLnByaW50X2Nv
bmZpZygnQ29tbWFuZCBsaW5lOiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgJyAnLmpvaW4o
c2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCiAgICAgICAgIHAucHJpbnRfY29uZmlnKCIi
KQogCiAgICAgZGVmIF9wcmludF9leHBlY3RlZF9yZXN1bHRzX29mX3R5cGUoc2VsZiwgcmVzdWx0
X3N1bW1hcnksCkBAIC0xMzIxLDYgKzEzMjMsOSBAQCBkZWYgcnVuKHBvcnQsIG9wdGlvbnMsIGFy
Z3MsIHJlZ3VsYXJfb3V0cHV0PXN5cy5zdGRlcnIsCiAgICAgdHJ5OgogICAgICAgICB0ZXN0X3J1
bm5lciA9IFRlc3RSdW5uZXIocG9ydCwgb3B0aW9ucywgcHJpbnRlcikKICAgICAgICAgdGVzdF9y
dW5uZXIuX3ByaW50X2NvbmZpZygpCisgICAgICAgIGlmIG9wdGlvbnMucHJpbnRfY29uZmlnOgor
ICAgICAgICAgICAgcHJpbnRlci5jbGVhbnVwKCkKKyAgICAgICAgICAgIHJldHVybiAwCiAKICAg
ICAgICAgcHJpbnRlci5wcmludF91cGRhdGUoIkNvbGxlY3RpbmcgdGVzdHMgLi4uIikKICAgICAg
ICAgdHJ5OgpAQCAtMTU5MSw3ICsxNTk2LDcgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncz1Ob25lKToK
ICAgICAgICAgIyAgICAgIE51bWJlciBvZiB0aW1lcyB0byBydW4gdGhlIHNldCBvZiB0ZXN0cyAo
ZS5nLiBBQkNBQkNBQkMpCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXByaW50LWxh
c3QtZmFpbHVyZXMiLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICAgICAgZGVmYXVsdD1G
YWxzZSwgaGVscD0iUHJpbnQgdGhlIHRlc3RzIGluIHRoZSBsYXN0IHJ1biB0aGF0ICIKLSAgICAg
ICAgICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3IgcGFzc2VzKS4iKSwKKyAgICAgICAg
ICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3IgcGFzc2VzKSBhbmQgdGhlbiBleGl0LiIp
LAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1yZXRlc3QtbGFzdC1mYWlsdXJlcyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJy
ZS10ZXN0IHRoZSB0ZXN0cyBpbiB0aGUgbGFzdCBydW4gdGhhdCAiCiAgICAgICAgICAgICAiaGFk
IHVuZXhwZWN0ZWQgZmFpbHVyZXMgKG9yIHBhc3NlcykuIiksCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0
ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCAzZGZjM2U2MTI2MTRjNWI4YmQzYTMwZGYxY2Vm
OTU1NmE1MGZhNGM1Li45YTBmNjg1OWZiMjdhNjVlNjIzYTM4NmFlYzAyZWZjY2NmMTIxZDA5IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKQEAgLTEyOCw4ICsx
MjgsOCBAQCBkZWYgZ2V0X3Rlc3RzX3J1bihleHRyYV9hcmdzPU5vbmUsIHRlc3RzX2luY2x1ZGVk
PUZhbHNlLCBmbGF0dGVuX2JhdGNoZXM9RmFsc2UpOgogICAgIHRlc3RfYmF0Y2hlcyA9IFtdCiAK
ICAgICBjbGFzcyBSZWNvcmRpbmdUZXN0RHJpdmVyKFRlc3REcml2ZXIpOgotICAgICAgICBkZWYg
X19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Ci0gICAgICAgICAgICBU
ZXN0RHJpdmVyLl9faW5pdF9fKHNlbGYsIHBvcnQsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1
dGl2ZT1Ob25lKQorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgd29ya2VyX251bWJl
cik6CisgICAgICAgICAgICBUZXN0RHJpdmVyLl9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9u
dW1iZXIpCiAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X3Rlc3RfYmF0Y2ggPSBOb25lCiAKICAg
ICAgICAgZGVmIHBvbGwoc2VsZik6CkBAIC0xNDcsOCArMTQ3LDggQEAgZGVmIGdldF90ZXN0c19y
dW4oZXh0cmFfYXJncz1Ob25lLCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwgZmxhdHRlbl9iYXRjaGVz
PUZhbHNlKToKICAgICAgICAgICAgIHJldHVybiBUZXN0RHJpdmVyLnJ1bl90ZXN0KHNlbGYsIHVy
aSwgdGltZW91dG1zLCBpbWFnZV9oYXNoKQogCiAgICAgY2xhc3MgUmVjb3JkaW5nVGVzdFBvcnQo
VGVzdFBvcnQpOgotICAgICAgICBkZWYgY3JlYXRlX2RyaXZlcihzZWxmLCBpbWFnZV9wYXRoLCBv
cHRpb25zKToKLSAgICAgICAgICAgIHJldHVybiBSZWNvcmRpbmdUZXN0RHJpdmVyKHNlbGYsIGlt
YWdlX3BhdGgsIG9wdGlvbnMpCisgICAgICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtl
cl9udW1iZXIpOgorICAgICAgICAgICAgcmV0dXJuIFJlY29yZGluZ1Rlc3REcml2ZXIoc2VsZiwg
d29ya2VyX251bWJlcikKIAogICAgIHJlY29yZGluZ19wb3J0ID0gUmVjb3JkaW5nVGVzdFBvcnQo
b3B0aW9ucz1vcHRpb25zLCB1c2VyPXVzZXIpCiAgICAgbG9nZ2luZ19ydW4oZXh0cmFfYXJncz1h
cmdzLCBwb3J0X29iaj1yZWNvcmRpbmdfcG9ydCwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74802</attachid>
            <date>2010-11-24 15:29:39 -0800</date>
            <delta_ts>2010-11-24 16:19:20 -0800</delta_ts>
            <desc>update w/ review feedback, rebase to tip of tree</desc>
            <filename>bug-49934-20101124152938.patch</filename>
            <type>text/plain</type>
            <size>30004</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTg5ZjMzYzk5MDY3ZDJmZmQ4MWZjNDhlMjU5ODg2NjAxYmIzYWQwLi43NmIwNjE1
YmM2OWUwN2JjOWVlMTZmMTNiNzI1MWQxMDNlM2E3MDJiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTAtMTEtMjIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCAtIGFkZCAtLXBy
aW50LWNvbmZpZywgY2xlYW4gdXAgY3JlYXRlX2RyaXZlciBpbnRlcmZhY2UKKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgdGhlIC0tcHJpbnQtY29uZmlnIG9wdGlvbiB0byBuZXctcnVuLXdlYmtp
dC10ZXN0cy4KKyAgICAgICAgUGFzc2luZyB0aGlzIGZsYWcgd2lsbCBjYXVzZSBOUldUIHRvIHBy
aW50IHRoZSBjb25maWcgaXQgd2lsbCB1c2UKKyAgICAgICAgZm9yIHRoZSB0ZXN0IHJ1biBhbmQg
dGhlbiBleGl0LiBJbiBwYXJ0aWN1bGFyLCBpdCB3aWxsIG5vdyBwcmludAorICAgICAgICB0aGUg
Y29tbWFuZCBsaW5lIGl0IHdpbGwgdXNlIGZvciBEdW1wUmVuZGVyVHJlZS4gVGhpcyBwYXRjaCBh
ZGRzCisgICAgICAgIGEgZHJpdmVyX2NtZF9saW5lKCkgY2FsbCB0byB0aGUgUG9ydCBjbGFzcyBp
biBvcmRlciB0byByZXRyaXZlCisgICAgICAgIHRoZSBjb21tYW5kIGxpbmUgdG8gcHJpbnQgaXQg
b3V0LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB0aGlzIHBhdGNoIGNsZWFucyB1cCB0aGUgUG9y
dC5jcmVhdGVfZHJpdmVyKCkKKyAgICAgICAgc2lnbmF0dXJlIGFuZCB0aGUgRHJpdmVyIGNvbnN0
cnVjdG9yIGludGVyZmFjZSB0byB0YWtlIGEgd29ya2VyCisgICAgICAgIG51bWJlciBhbmQgbm8g
bG9uZ2VyIHJlcXVpcmUgdGhlIGltYWdlX3BhdGggYXJndW1lbnQgKENocm9taXVtJ3MKKyAgICAg
ICAgZHJpdmVycyBub3cgc3ludGhlc2l6ZSB0aGUgaW1hZ2VfcGF0aCBmcm9tIHRoZSB3b3JrZXIg
bnVtYmVyCisgICAgICAgIGludGVybmFsbHkpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTkzNAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
cHJpbnRpbmcucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHNfdW5pdHRlc3QucHk6CisKIDIwMTAtMTEtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQu
cHkKaW5kZXggMzhjZjZjMzUyMzc3YjM5NmMwYzk1OTFlN2E1YjViOTc0NWQ3YTg3YS4uNTE2ZTg0
MjgyODA0M2NhYjZkODdiZjg5YWQ5NDNmNTMwZGM1MWQ5MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5k
ZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTE3
MSw3ICsxNzEsNiBAQCBjbGFzcyBTaW5nbGVUZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgog
ICAgICAgICAgIHBvcnQ6IG9iamVjdCBpbXBsZW1lbnRpbmcgcG9ydC1zcGVjaWZpYyBob29rcwog
ICAgICAgICAgIG9wdGlvbnM6IGNvbW1hbmQgbGluZSBhcmd1bWVudCBvYmplY3QgZnJvbSBvcHRw
YXJzZQogICAgICAgICAgIHdvcmtlcl9udW1iZXI6IHdvcmtlciBudW1iZXIgZm9yIHRlc3RzCi0g
ICAgICAgICAgICAgIChGSVhNRTogdGhpcyBzaG91bGQgYmUgcGFzc2VkIHRvIHBvcnQuY3JlYXRl
X2RyaXZlcigpKS4KICAgICAgICAgICB3b3JrZXJfbmFtZTogZm9yIGxvZ2dpbmcKICAgICAgICAg
ICB0ZXN0X2lucHV0OiBPYmplY3QgY29udGFpbmluZyB0aGUgdGVzdCBmaWxlbmFtZSBhbmQgdGlt
ZW91dAogICAgICAgICAgIHRlc3RfdHlwZXM6IEEgbGlzdCBvZiBUZXN0VHlwZSBvYmplY3RzIHRv
IHJ1biB0aGUgdGVzdCBvdXRwdXQKQEAgLTE5NSw4ICsxOTQsNyBAQCBjbGFzcyBTaW5nbGVUZXN0
VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfY292ZXJlZF9ydW4oc2VsZik6CiAg
ICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSByb3V0aW5lIHRvIHdvcmsgYXJvdW5k
IGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBodHRwOi8vYml0YnVja2V0Lm9yZy9u
ZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fcG9y
dC5jcmVhdGVfZHJpdmVyKHNlbGYuX3Rlc3RfYXJncy5wbmdfcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMpCisgICAgICAg
IHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl93b3JrZXJfbnVt
YmVyKQogICAgICAgICBzZWxmLl9kcml2ZXIuc3RhcnQoKQogICAgICAgICBzZWxmLl90ZXN0X3Jl
c3VsdCA9IF9ydW5fc2luZ2xlX3Rlc3Qoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXQs
IHNlbGYuX3Rlc3RfdHlwZXMsCkBAIC0yOTIsMTIgKzI5MCw2IEBAIGNsYXNzIFRlc3RTaGVsbFRo
cmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgIGRlZiBfZ2V0X3Rlc3RfYXJncyhzZWxmLCB3b3Jr
ZXJfbnVtYmVyKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgdHVwbGUgb2YgYXJndW1lbnRzIGZv
ciB0ZXN0cyBhbmQgZm9yIER1bXBSZW5kZXJUcmVlLiIiIgogICAgICAgICB0ZXN0X2FyZ3MgPSB0
ZXN0X3R5cGVfYmFzZS5UZXN0QXJndW1lbnRzKCkKLSAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRo
ID0gTm9uZQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzOgotICAgICAgICAg
ICAgcG5nX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3B0aW9ucy5yZXN1bHRzX2RpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbmdfcmVzdWx0JXMucG5n
IiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyKQotICAgICAgICAgICAgdGVzdF9hcmdzLnBuZ19wYXRoID0gcG5nX3BhdGgKICAgICAgICAg
dGVzdF9hcmdzLm5ld19iYXNlbGluZSA9IHNlbGYuX29wdGlvbnMubmV3X2Jhc2VsaW5lCiAgICAg
ICAgIHRlc3RfYXJncy5yZXNldF9yZXN1bHRzID0gc2VsZi5fb3B0aW9ucy5yZXNldF9yZXN1bHRz
CiAKQEAgLTU0NCw4ICs1MzYsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhy
ZWFkKToKICAgICAgICAgIyBwb2xsKCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJvdyBP
U0Vycm9yIGR1ZSB0bzoKICAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTcz
MTcxNwogICAgICAgICBpZiAobm90IHNlbGYuX2RyaXZlciBvciBzZWxmLl9kcml2ZXIucG9sbCgp
IGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3Jl
YXRlX2RyaXZlcihzZWxmLl90ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucykKKyAgICAgICAg
ICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl93b3JrZXJf
bnVtYmVyKQogICAgICAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKIAogICAgIGRlZiBfc3Rh
cnRfc2VydmVyc193aXRoX2xvY2soc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3By
aW50aW5nLnB5CmluZGV4IDM0ODZjMzQ3YTI5ODU3ZTYzZWQyZTJjMzNkNTc1NTYzZWY4NmE2MDEu
LjJiYjY2NzY3MDA0Mjk2Mzk2YWMyYTQ0YTU3ZDM2ODM2YTc3OGFiNTEgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3By
aW50aW5nLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CkBAIC0xMTksNiArMTE5LDggQEAgZGVmIHByaW50
X29wdGlvbnMoKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQiLCBkZXN0
PSJwcmludF9vcHRpb25zIiwKICAgICAgICAgICAgIGhlbHA9KCJjb250cm9scyBwcmludCBvdXRw
dXQgb2YgdGVzdCBydW4uICIKICAgICAgICAgICAgICAgICAgICJVc2UgLS1oZWxwLXByaW50aW5n
IGZvciBtb3JlLiIpKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQtY29u
ZmlnIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhl
bHA9IlByaW50IHRoZSBjb25maWcgdXNlZCBmb3IgdGhlIHJ1biBhbmQgZXhpdC4iKSwKICAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0taGVscC1wcmludGluZyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCiAgICAgICAgICAgICBoZWxwPSJzaG93IGRldGFpbGVkIGhlbHAgb24gY29udHJvbGxp
bmcgcHJpbnQgb3V0cHV0IiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItdiIsICIt
LXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTI2LDggKzEyOCw3IEBAIGRlZiBw
cmludF9vcHRpb25zKCk6CiAgICAgXQogCiAKLQotZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJp
bnRfb3B0aW9ucywgdmVyYm9zZSwgY2hpbGRfcHJvY2Vzc2VzLAorZGVmIHBhcnNlX3ByaW50X29w
dGlvbnMocHJpbnRfb3B0aW9ucywgdmVyYm9zZSwgcHJpbnRfY29uZmlnLCBjaGlsZF9wcm9jZXNz
ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICBpc19mdWxseV9wYXJhbGxlbCk6CiAgICAgIiIi
UGFyc2UgdGhlIG9wdGlvbnMgcHJvdmlkZWQgdG8gLS1wcmludCBhbmQgZGVkdXAgYW5kIHJhbmsg
dGhlbS4KIApAQCAtMTQyLDYgKzE0Myw5IEBAIGRlZiBwYXJzZV9wcmludF9vcHRpb25zKHByaW50
X29wdGlvbnMsIHZlcmJvc2UsIGNoaWxkX3Byb2Nlc3NlcywKICAgICBlbHNlOgogICAgICAgICBz
d2l0Y2hlcyA9IHNldChQUklOVF9ERUZBVUxULnNwbGl0KCcsJykpCiAKKyAgICBpZiBwcmludF9j
b25maWc6CisgICAgICAgIHN3aXRjaGVzLmFkZCgnY29uZmlnJykKKwogICAgIGlmICdub3RoaW5n
JyBpbiBzd2l0Y2hlczoKICAgICAgICAgcmV0dXJuIHNldCgpCiAKQEAgLTI1MCw3ICsyNTQsOCBA
QCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBvcHRpb25zLnZlcmJvc2UpCiAK
ICAgICAgICAgc2VsZi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50X29wdGlvbnMob3B0aW9ucy5wcmlu
dF9vcHRpb25zLAotICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlLCBjaGlsZF9wcm9jZXNzZXMs
IGlzX2Z1bGx5X3BhcmFsbGVsKQorICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlLCBvcHRpb25z
LnByaW50X2NvbmZpZywgY2hpbGRfcHJvY2Vzc2VzLAorICAgICAgICAgICAgaXNfZnVsbHlfcGFy
YWxsZWwpCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgIiIiUmVzdG9yZSBsb2dn
aW5nIGNvbmZpZ3VyYXRpb24gdG8gaXRzIGluaXRpYWwgc2V0dGluZ3MuIiIiCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9wcmludGluZ191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CmluZGV4IDlhMGY0
ZWVhMjA4ZDIxY2Y4OGVmOGQ1ZWVhZjE0ODNhNTExNjE4ZTMuLmJiNDE3OWU5NGRhZDVhNWRlODk1
MDczZGEzOWQxMzU4NDJhNjA3NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC03OCw0MiArNzgsNDAgQEAgY2xhc3MgVGVzdFV0
aWxpdHlGdW5jdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRy
dWUob3B0aW9ucyBpcyBub3QgTm9uZSkKIAogICAgIGRlZiB0ZXN0X3BhcnNlX3ByaW50X29wdGlv
bnMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X3N3aXRjaGVzKGFyZ3MsIHZlcmJvc2UsIGNoaWxk
X3Byb2Nlc3NlcywgaXNfZnVsbHlfcGFyYWxsZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkX3N3aXRjaGVzX3N0cik6CisgICAgICAgIGRlZiB0ZXN0X3N3aXRjaGVzKGFyZ3Ms
IGV4cGVjdGVkX3N3aXRjaGVzX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9z
ZT1GYWxzZSwgcHJpbnRfY29uZmlnPUZhbHNlLCBjaGlsZF9wcm9jZXNzZXM9MSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXNfZnVsbHlfcGFyYWxsZWw9RmFsc2UpOgogICAgICAgICAgICAg
b3B0aW9ucywgYXJncyA9IGdldF9vcHRpb25zKGFyZ3MpCiAgICAgICAgICAgICBpZiBleHBlY3Rl
ZF9zd2l0Y2hlc19zdHI6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3dpdGNoZXMgPSBzZXQo
ZXhwZWN0ZWRfc3dpdGNoZXNfc3RyLnNwbGl0KCcsJykpCiAgICAgICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3N3aXRjaGVzID0gc2V0KCkKICAgICAgICAgICAgIHN3aXRj
aGVzID0gcHJpbnRpbmcucGFyc2VfcHJpbnRfb3B0aW9ucyhvcHRpb25zLnByaW50X29wdGlvbnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
Ym9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJib3NlLCBwcmludF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hpbGRfcHJvY2Vzc2VzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2Z1bGx5X3BhcmFsbGVsKQogICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9zd2l0Y2hlcywgc3dpdGNoZXMpCiAK
ICAgICAgICAgIyB0ZXN0IHRoYXQgd2UgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzZXQgb2Ygc3dp
dGNoZXMKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgRmFsc2UsIDEsIEZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCisgICAgICAgIHRlc3Rfc3dp
dGNoZXMoW10sIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCiAKICAgICAgICAgIyB0ZXN0IHRoYXQg
dmVyYm9zZSBkZWZhdWx0cyB0byBldmVyeXRoaW5nCi0gICAgICAgIHRlc3Rfc3dpdGNoZXMoW10s
IFRydWUsIDEsIEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0VW
RVJZVEhJTkcpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMoW10sIHByaW50aW5nLlBSSU5UX0VWRVJZ
VEhJTkcsIHZlcmJvc2U9VHJ1ZSkKIAogICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50IGRlZmF1
bHQgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0t
cHJpbnQnLCAnZGVmYXVsdCddLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKKyAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJp
bnQnLCAnZGVmYXVsdCddLCBwcmludGluZy5QUklOVF9ERUZBVUxUKQogCiAgICAgICAgICMgdGVz
dCB0aGF0IC0tcHJpbnQgbm90aGluZyBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdub3RoaW5nJ10sIEZhbHNlLCAxLCBGYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICBOb25lKQorICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1w
cmludCcsICdub3RoaW5nJ10sIE5vbmUpCiAKICAgICAgICAgIyB0ZXN0IHRoYXQgLS1wcmludCBl
dmVyeXRoaW5nIGRvZXMgd2hhdCBpdCdzIHN1cHBvc2VkIHRvCi0gICAgICAgIHRlc3Rfc3dpdGNo
ZXMoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSwgRmFsc2UsIDEsIEZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICAgIHByaW50aW5nLlBSSU5UX0VWRVJZVEhJTkcpCisgICAgICAgIHRlc3Rfc3dp
dGNoZXMoWyctLXByaW50JywgJ2V2ZXJ5dGhpbmcnXSwgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElO
RykKIAogICAgICAgICAjIHRoaXMgdGVzdHMgdGhhdCAnLS1wcmludCBYJyBvdmVycmlkZXMgJy0t
dmVyYm9zZScKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJpbnQnLCAnYWN0dWFsJ10sIFRy
dWUsIDEsIEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICdhY3R1YWwnKQorICAgICAgICB0
ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgJ2FjdHVhbCcsIHZlcmJvc2U9VHJ1
ZSkKKworICAgICAgICAjIHRlc3QgdGhhdCAnLS1wcmludC1jb25maWcgYWRkcyAnY29uZmlnJwor
ICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgJ2FjdHVhbCxjb25m
aWcnLCBwcmludF9jb25maWc9VHJ1ZSkKIAogCiBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IDNmYjBkOGVjNzY3N2ZjNTNiZGFhZDFjZjMxNGUz
NzZhODJiZWY0ZjIuLjc1NzMxOGQxMzgwNWJjN2RhOWE3N2YzODMwMmM1NTAxOGUwYTJiYjYgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKQEAgLTM4NCw2ICszODQsMTEgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAg
ICAgICAjIHZhbGlkIHRlc3QgYW5kIGJ5IHByaW50aW5nLnB5IHRvIGRldGVybWluZSBpZiBiYXNl
bGluZXMgZXhpc3QuCiAgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhwYXRo
KQogCisgICAgZGVmIGRyaXZlcl9jbWRfbGluZShzZWxmKToKKyAgICAgICAgIiIiUHJpbnRzIHRo
ZSBEUlQgY29tbWFuZCBsaW5lIHRoYXQgd2lsbCBiZSB1c2VkLiIiIgorICAgICAgICBkcml2ZXIg
PSBzZWxmLmNyZWF0ZV9kcml2ZXIoMCkKKyAgICAgICAgcmV0dXJuIGRyaXZlci5jbWRfbGluZSgp
CisKICAgICBkZWYgdXBkYXRlX2Jhc2VsaW5lKHNlbGYsIHBhdGgsIGRhdGEsIGVuY29kaW5nKToK
ICAgICAgICAgIiIiVXBkYXRlcyB0aGUgYmFzZWxpbmUgZm9yIGEgdGVzdC4KIApAQCAtNTExLDcg
KzUxNiw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgcmVzdWx0c19maWxlbmFtZSBp
biBhIHVzZXJzJyBicm93c2VyLiIiIgogICAgICAgICByZXR1cm4gc2VsZi5fdXNlci5vcGVuX3Vy
bChyZXN1bHRzX2ZpbGVuYW1lKQogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2Vf
cGF0aCwgb3B0aW9ucyk6CisgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2VyX251bWJl
cik6CiAgICAgICAgICIiIlJldHVybiBhIG5ld2x5IGNyZWF0ZWQgYmFzZS5Ecml2ZXIgc3ViY2xh
c3MgZm9yIHN0YXJ0aW5nL3N0b3BwaW5nCiAgICAgICAgIHRoZSB0ZXN0IGRyaXZlci4iIiIKICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5jcmVhdGVfZHJpdmVyJykKQEAg
LTc0MSw3ICs3NDYsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAKICAgICBkZWYgX3BhdGhfdG9f
ZHJpdmVyKHNlbGYsIGNvbmZpZ3VyYXRpb249Tm9uZSk6CiAgICAgICAgICIiIlJldHVybnMgdGhl
IGZ1bGwgcGF0aCB0byB0aGUgdGVzdCBkcml2ZXIgKER1bXBSZW5kZXJUcmVlKS4iIiIKLSAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX2RyaXZlcicpCisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuX3BhdGhfdG9fZHJpdmVyJykKIAog
ICAgIGRlZiBfcGF0aF90b193ZWJjb3JlX2xpYnJhcnkoc2VsZik6CiAgICAgICAgICIiIlJldHVy
bnMgdGhlIGZ1bGwgcGF0aCB0byBhIGJ1aWx0IGNvcHkgb2YgV2ViQ29yZS4iIiIKQEAgLTgwNCwx
OSArODA5LDE0IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIGNsYXNzIERyaXZlcjoKICAgICAiIiJB
YnN0cmFjdCBpbnRlcmZhY2UgZm9yIHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgcG5nX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgogICAgICAg
ICAiIiJJbml0aWFsaXplIGEgRHJpdmVyIHRvIHN1YnNlcXVlbnRseSBydW4gdGVzdHMuCiAKICAg
ICAgICAgVHlwaWNhbGx5IHRoaXMgcm91dGluZSB3aWxsIHNwYXduIER1bXBSZW5kZXJUcmVlIGlu
IGEgY29uZmlnCiAgICAgICAgIHJlYWR5IGZvciBzdWJzZXF1ZW50IGlucHV0LgogCiAgICAgICAg
IHBvcnQgLSByZWZlcmVuY2UgYmFjayB0byB0aGUgcG9ydCBvYmplY3QuCi0gICAgICAgIHBuZ19w
YXRoIC0gYW4gYWJzb2x1dGUgcGF0aCBmb3IgdGhlIGRyaXZlciB0byB3cml0ZSBhbnkgaW1hZ2UK
LSAgICAgICAgICAgIGRhdGEgZm9yIGEgdGVzdCAoYXMgYSBQTkcpLiBJZiBubyBwYXRoIGlzIHBy
b3ZpZGVkLCB0aGF0Ci0gICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCBwaXhlbCB0ZXN0IHJlc3Vs
dHMgd2lsbCBub3QgYmUgY2hlY2tlZC4KLSAgICAgICAgb3B0aW9ucyAtIGNvbW1hbmQgbGluZSBv
cHRpb25zIGFyZ3VtZW50IGZyb20gb3B0cGFyc2UKLSAgICAgICAgZXhlY3V0aXZlIC0gcmVmZXJl
bmNlIHRvIHRoZSBwcm9jZXNzLXdpZGUgRXhlY3V0aXZlIG9iamVjdAotCisgICAgICAgIHdvcmtl
cl9udW1iZXIgLSBpZGVudGlmaWVyIGZvciBhIHBhcnRpY3VsYXIgd29ya2VyL2RyaXZlciBpbnN0
YW5jZQogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignRHJp
dmVyLl9faW5pdF9fJykKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CmluZGV4IDIyNzA5
ZWFiZGY4MmZiODg0OTU0ZmRiOWFkNWY2M2Y5N2E4YzZkMDAuLjhkNTg2ZTM1NGU0MmYwMzkzYzZj
OTZmYmJlMTA3NjBiZDM3MTg1ZWUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKQEAg
LTI1OCw3ICsyNTgsNyBAQCBjbGFzcyBWaXJ0dWFsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKQogICAg
ICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jaGVja19idWlsZCwgTm9uZSkKICAgICAgICAg
c2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuY2hlY2tfaW1hZ2VfZGlmZikKLSAgICAgICAgc2VsZi5h
c3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgTm9uZSwgTm9uZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgMCkKICAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQuZGlmZl9pbWFnZSwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKQogICAgICAgICBz
ZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25hbWUpCkBAIC0yODIsNyArMjgy
LDcgQEAgY2xhc3MgVmlydHVhbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRl
c3RfdmlydHVhbF9kcml2ZXJfbWV0aG9kKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhOb3RJbXBsZW1lbnRlZEVycm9yLCBiYXNlLkRyaXZlciwgYmFzZS5Qb3J0KCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICIiLCBOb25lLCBOb25lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKQogCiAgICAgZGVmIHRlc3RfdmlydHVhbF9kcml2ZXJfbWV0aG9kcyhzZWxmKToKICAg
ICAgICAgY2xhc3MgVmlydHVhbERyaXZlcihiYXNlLkRyaXZlcik6CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5w
eQppbmRleCAyNWMxOGNiMjE2ZjczZDZhNjNiZGM5Y2QzOGQ4MjQ0OWFkYmJhMDhjLi44ZmU2ODVh
ZjA2NjllYjM0YWZlOGY5NGM1NmZlM2ZmM2NkOTUzNmM3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkK
QEAgLTQ0LDcgKzQ0LDYgQEAgaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGltZQogaW1wb3J0IHdl
YmJyb3dzZXIKIAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQg
RXhlY3V0aXZlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ucGF0aCBpbXBvcnQgY3lncGF0
aAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rf
ZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBp
bXBvcnQgdGVzdF9vdXRwdXQKQEAgLTE3Niw2ICsxNzUsOCBAQCBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIGRyaXZlcl9uYW1l
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9kcnQ6CisgICAgICAgICAgICBy
ZXR1cm4gIkR1bXBSZW5kZXJUcmVlIgogICAgICAgICByZXR1cm4gInRlc3Rfc2hlbGwiCiAKICAg
ICBkZWYgcGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uoc2VsZiwgKmNvbXBzKToKQEAgLTIxMywxMyAr
MjE0LDExIEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICBpZiBvcy5w
YXRoLmV4aXN0cyhjYWNoZWRpcik6CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGNhY2hlZGly
KQogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Cisg
ICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAgICIiIlN0
YXJ0cyBhIG5ldyBEcml2ZXIgYW5kIHJldHVybnMgYSBoYW5kbGUgdG8gaXQuIiIiCi0gICAgICAg
IGlmIG9wdGlvbnMudXNlX2RydCBhbmQgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAg
ICAgICAgcmV0dXJuIHdlYmtpdC5XZWJLaXREcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9u
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGl2ZT1zZWxm
Ll9leGVjdXRpdmUpCi0gICAgICAgIHJldHVybiBDaHJvbWl1bURyaXZlcihzZWxmLCBpbWFnZV9w
YXRoLCBvcHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aXZlPXNl
bGYuX2V4ZWN1dGl2ZSkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd1c2VfZHJ0JykgYW5k
IHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgICAgIHJldHVybiB3ZWJraXQuV2Vi
S2l0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCisgICAgICAgIHJldHVybiBDaHJvbWl1bURy
aXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgZGVmIHN0YXJ0X2hlbHBlcihzZWxmKToK
ICAgICAgICAgaGVscGVyX3BhdGggPSBzZWxmLl9wYXRoX3RvX2hlbHBlcigpCkBAIC0zNjAsNDgg
KzM1OSw1MCBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKIGNsYXNzIENocm9taXVt
RHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJBYnN0cmFjdCBpbnRlcmZhY2UgZm9yIHRlc3Rf
c2hlbGwuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0
aW9ucywgZXhlY3V0aXZlPUV4ZWN1dGl2ZSgpKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCwgd29ya2VyX251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAgICAgIHNl
bGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9w
YXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZQotCi0gICAgZGVmIF9kcml2
ZXJfYXJncyhzZWxmKToKLSAgICAgICAgZHJpdmVyX2FyZ3MgPSBbXQotICAgICAgICBpZiBzZWxm
Ll9pbWFnZV9wYXRoOgorICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJl
cgorICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gTm9uZQorICAgICAgICBpZiBzZWxmLl9wb3J0
LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6CisgICAgICAgICAgICBzZWxmLl9pbWFnZV9wYXRo
ID0gb3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuZ2V0X29wdGlvbign
cmVzdWx0c19kaXJlY3RvcnknKSwKKyAgICAgICAgICAgICAgICAncG5nX3Jlc3VsdCVzLnBuZycg
JSBzZWxmLl93b3JrZXJfbnVtYmVyKQorCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAgICAg
ICBjbWQgPSBzZWxmLl9jb21tYW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFw
cGVyJykpCisgICAgICAgIGNtZC5hcHBlbmQoc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIoKSkK
KyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgogICAgICAg
ICAgICAgIyBTZWUgbm90ZSBhYm92ZSBpbiBkaWZmX2ltYWdlKCkgZm9yIHdoeSB3ZSBuZWVkIF9j
b252ZXJ0X3BhdGgoKS4KLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgiLS1waXhlbC10
ZXN0cz0iICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9jb252
ZXJ0X3BhdGgoc2VsZi5faW1hZ2VfcGF0aCkpCisgICAgICAgICAgICBjbWQuYXBwZW5kKCItLXBp
eGVsLXRlc3RzPSIgKworICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9jb252ZXJ0
X3BhdGgoc2VsZi5faW1hZ2VfcGF0aCkpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0
aW9uKCd1c2VfZHJ0Jyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tdGVzdC1z
aGVsbCcpCisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXRlc3Qtc2hlbGwnKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWxheW91dC10ZXN0cycpCisg
ICAgICAgICAgICBjbWQuYXBwZW5kKCctLWxheW91dC10ZXN0cycpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdzdGFydHVwX2RpYWxvZycpOgotICAgICAgICAgICAgZHJpdmVy
X2FyZ3MuYXBwZW5kKCctLXRlc3RzaGVsbC1zdGFydHVwLWRpYWxvZycpCisgICAgICAgICAgICBj
bWQuYXBwZW5kKCctLXRlc3RzaGVsbC1zdGFydHVwLWRpYWxvZycpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdncF9mYXVsdF9lcnJvcl9ib3gnKToKLSAgICAgICAgICAgIGRy
aXZlcl9hcmdzLmFwcGVuZCgnLS1ncC1mYXVsdC1lcnJvci1ib3gnKQorICAgICAgICAgICAgY21k
LmFwcGVuZCgnLS1ncC1mYXVsdC1lcnJvci1ib3gnKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlv
bnMuanNfZmxhZ3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQo
Jy0tanMtZmxhZ3M9IicgKyBzZWxmLl9vcHRpb25zLmpzX2ZsYWdzICsgJyInKQorICAgICAgICBp
ZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2pzX2ZsYWdzJykgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBjbWQuYXBwZW5kKCctLWpzLWZsYWdzPSInICsgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdq
c19mbGFncycpICsgJyInKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9h
ZHMgaXMgbm90IE5vbmUgYW5kIHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9hZHMgPiAwOgotICAg
ICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLW11bHRpcGxlLWxvYWRzPScgKyBzdHIoc2Vs
Zi5fb3B0aW9ucy5tdWx0aXBsZV9sb2FkcykpCisgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29w
dGlvbignbXVsdGlwbGVfbG9hZHMnKSA+IDA6CisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW11
bHRpcGxlLWxvYWRzPScgKyBzdHIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdtdWx0aXBsZV9sb2Fk
cycpKSkKIAogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkX2Nv
bXBvc2l0aW5nJyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tZW5hYmxlLWFj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nJykKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZW5hYmxl
LWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nJykKIAogICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9v
cHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpOgotICAgICAgICAgICAgZHJpdmVyX2FyZ3Mu
YXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnKQotICAgICAgICByZXR1cm4g
ZHJpdmVyX2FyZ3MKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZW5hYmxlLWFjY2VsZXJhdGVk
LTJkLWNhbnZhcycpCisgICAgICAgIHJldHVybiBjbWQKIAogICAgIGRlZiBzdGFydChzZWxmKToK
ICAgICAgICAgIyBGSVhNRTogU2hvdWxkIGJlIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBtZXRob2Qg
dHdpY2UuCi0gICAgICAgIGNtZCA9IHNlbGYuX2NvbW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0Lmdl
dF9vcHRpb24oJ3dyYXBwZXInKSkKLSAgICAgICAgY21kLmFwcGVuZChzZWxmLl9wb3J0Ll9wYXRo
X3RvX2RyaXZlcigpKQotICAgICAgICBjbWQgKz0gc2VsZi5fZHJpdmVyX2FyZ3MoKQorICAgICAg
ICBjbWQgPSBzZWxmLmNtZF9saW5lKCkKIAogICAgICAgICAjIFdlIG5lZWQgdG8gcGFzcyBjbG9z
ZV9mZHM9VHJ1ZSB0byB3b3JrIGFyb3VuZCBQeXRob24gYnVnICMyMzIwCiAgICAgICAgICMgKG90
aGVyd2lzZSB3ZSBjYW4gaGFuZyB3aGVuIHdlIGtpbGwgRHVtcFJlbmRlclRyZWUgd2hlbiB3ZSBh
cmUgcnVubmluZwpAQCAtNTUxLDQgKzU1Miw0IEBAIGNsYXNzIENocm9taXVtRHJpdmVyKGJhc2Uu
RHJpdmVyKToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9wcm9jLnBvbGwoKSBpcyBOb25lOgog
ICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ3N0b3BwaW5nIHRlc3QgZHJpdmVyIHRp
bWVkIG91dCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tpbGxpbmcgaXQn
KQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGVjdXRpdmUua2lsbF9wcm9jZXNzKHNlbGYu
X3Byb2MucGlkKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Ll9leGVjdXRpdmUua2ls
bF9wcm9jZXNzKHNlbGYuX3Byb2MucGlkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRl
c3QucHkKaW5kZXggOTJhMzFmYmU0NjI5M2E5YmM1MmM1YzU5NDM3MTQwYWRmNzMwZjhhMC4uNTM5
NjUyMjBmZjJhM2FkOTQwZDFmYzE5MDMyYTNjYTljMDg5NGY1YSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVz
dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX3VuaXR0ZXN0LnB5CkBAIC00Miw3ICs0Miw4IEBAIGNsYXNzIENocm9taXVtRHJp
dmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAg
ICAgIG1vY2tfcG9ydCA9IE1vY2soKQotICAgICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtLkNo
cm9taXVtRHJpdmVyKG1vY2tfcG9ydCwgaW1hZ2VfcGF0aD1Ob25lLCBvcHRpb25zPU5vbmUpCisg
ICAgICAgIG1vY2tfcG9ydC5nZXRfb3B0aW9uID0gbGFtYmRhIG9wdGlvbl9uYW1lOiAnJworICAg
ICAgICBzZWxmLmRyaXZlciA9IGNocm9taXVtLkNocm9taXVtRHJpdmVyKG1vY2tfcG9ydCwgd29y
a2VyX251bWJlcj0wKQogCiAgICAgZGVmIHRlc3RfdGVzdF9zaGVsbF9jb21tYW5kKHNlbGYpOgog
ICAgICAgICBleHBlY3RlZF9jb21tYW5kID0gInRlc3QuaHRtbCAyIGNoZWNrc3VtXG4iCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
eXJ1bi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
ZHJ5cnVuLnB5CmluZGV4IGQ0NDRkYWIxMjMxNDJkZGUxM2RlMGE3MTFmNjMzMTlkZDYxNjUwMzIu
LjRlZDM0ZTY0ODhlZjI4NDc1MGM2OWZkMDU0ZDAzMTAwYmVlZDViNmYgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVu
LnB5CkBAIC05NSwxOCArOTUsMTkgQEAgY2xhc3MgRHJ5UnVuUG9ydChvYmplY3QpOgogICAgIGRl
ZiBzdG9wX3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBhc3MKIAotICAgIGRlZiBj
cmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgotICAgICAgICByZXR1cm4g
RHJ5cnVuRHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQor
ICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICByZXR1
cm4gRHJ5cnVuRHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKIAogY2xhc3MgRHJ5cnVuRHJp
dmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJEcnlydW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIER1
bXBSZW5kZXJUcmVlIC8gRHJpdmVyIGludGVyZmFjZS4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0LCBpbWFnZV9wYXRoLCBvcHRpb25zLCBleGVjdXRpdmUpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKICAgICAgICAgc2VsZi5fcG9ydCA9IHBv
cnQKLSAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IGltYWdlX3BhdGgKLSAgICAgICAgc2VsZi5f
ZXhlY3V0aXZlID0gZXhlY3V0aXZlCi0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0c19kaXIgPSBO
b25lCisgICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCisKKyAgICBk
ZWYgY21kX2xpbmUoc2VsZik6CisgICAgICAgIHJldHVybiBbJ05vbmUnXQogCiAgICAgZGVmIHBv
bGwoc2VsZik6CiAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2Uu
cHkKaW5kZXggMDRhZGE1MDAwZTNiMzUzODJjM2M5NjA5MjJlMjhjNTUzYzNmNDA0ZS4uYzRiMzZh
Y2Q5MDc5ZmQyZmJlOTA5MDEyMDJkNWY5YzAyNWUzODdlNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90
ZXN0Y2FzZS5weQpAQCAtMzcsNiArMzcsOCBAQCBtb2NrX29wdGlvbnMgPSBtb2NrdG9vbC5Nb2Nr
T3B0aW9ucyhyZXN1bHRzX2RpcmVjdG9yeT0nbGF5b3V0LXRlc3QtcmVzdWx0cycsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfYXBhY2hlPVRydWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPSdSZWxlYXNlJykKIAorIyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIHBvcnRzLCBub3QganVzdCBXZWJLaXQg
TWFjLiBTZWUKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDQz
IC4KIAogY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJUZXN0
cyB0aGUgV2ViS2l0IHBvcnQgaW1wbGVtZW50YXRpb24uIiIiCkBAIC00NCw2ICs0NiwxMiBAQCBj
bGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAiIiJPdmVycmlk
ZSBpbiBzdWJjbGFzcy4iIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAK
KyAgICBkZWYgdGVzdF9kcml2ZXJfY21kX2xpbmUoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydCgpCisgICAgICAgIGlmIG5vdCBwb3J0OgorICAgICAgICAgICAgcmV0dXJuCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4ocG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCisKICAg
ICBkZWYgdGVzdF9odHRwX3NlcnZlcihzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KCkKICAgICAgICAgaWYgbm90IHBvcnQ6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggZGQ4ZjYxOGE4ZWE5
ZWNkZDJmNjE1MTRhZTBjMDNhMTZjMWE2NmM1Mi4uOGUyN2YzNWMxYzFhZDhhZDdiMzA5NDFkMWNi
MjQ2M2ZhZGU5ZDZmOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjI2LDggKzIyNiw4IEBAIGNsYXNzIFRl
c3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYpOgogICAgICAg
ICBwYXNzCiAKLSAgICBkZWYgY3JlYXRlX2RyaXZlcihzZWxmLCBpbWFnZV9wYXRoLCBvcHRpb25z
KToKLSAgICAgICAgcmV0dXJuIFRlc3REcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucywg
ZXhlY3V0aXZlPU5vbmUpCisgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2VyX251bWJl
cik6CisgICAgICAgIHJldHVybiBUZXN0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKICAg
ICBkZWYgc3RhcnRfaHR0cF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBhc3MKQEAgLTI4MSwxMSAr
MjgxLDExIEBAIFdPTlRGSVggU0tJUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2V4Y2VwdGlvbi5odG1s
ID0gQ1JBU0gKIGNsYXNzIFRlc3REcml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICIiIlRlc3QvRHVt
bXkgaW1wbGVtZW50YXRpb24gb2YgdGhlIER1bXBSZW5kZXJUcmVlIGludGVyZmFjZS4iIiIKIAot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBpbWFnZV9wYXRoLCBvcHRpb25zLCBleGVjdXRp
dmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKICAgICAg
ICAgc2VsZi5fcG9ydCA9IHBvcnQKLSAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IGltYWdlX3Bh
dGgKLSAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gZXhlY3V0aXZlCi0gICAgICAgIHNlbGYuX2lt
YWdlX3dyaXR0ZW4gPSBGYWxzZQorCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gWydOb25lJ10KIAogICAgIGRlZiBwb2xsKHNlbGYpOgogICAgICAgICByZXR1cm4gVHJ1
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYmtpdC5weQppbmRleCBmNWY5MjUyNjcwMzFjZWNiMzk0MDU1ZjgyZDU5MGMwNTRh
OTA4MzNkLi4wOWJlODMzZDc1MmYwMmZkYjc5NDQ2NjNiOTBlNTVlYTczMGNlMWExIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtp
dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dlYmtpdC5weQpAQCAtNDYsOCArNDYsNiBAQCBpbXBvcnQgb3BlcmF0b3IKIGltcG9ydCB0ZW1w
ZmlsZQogaW1wb3J0IHNodXRpbAogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBFeGVjdXRpdmUKLQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3Nw
YXRoIGFzIG9zcGF0aAogaW1wb3J0IHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2Fn
ZS50ZXN0X291dHB1dCBhcyB0ZXN0X291dHB1dAogaW1wb3J0IHdlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0LmJhc2UgYXMgYmFzZQpAQCAtMTg1LDkgKzE4Myw4IEBAIGNsYXNzIFdlYktpdFBvcnQo
YmFzZS5Qb3J0KToKICAgICAgICAgIyBUaGlzIHBvcnQgZG9lc24ndCByZXF1aXJlIGFueSBzcGVj
aWZpYyBjb25maWd1cmF0aW9uLgogICAgICAgICBwYXNzCiAKLSAgICBkZWYgY3JlYXRlX2RyaXZl
cihzZWxmLCBpbWFnZV9wYXRoLCBvcHRpb25zKToKLSAgICAgICAgcmV0dXJuIFdlYktpdERyaXZl
cihzZWxmLCBpbWFnZV9wYXRoLCBvcHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4ZWN1dGl2ZT1zZWxmLl9leGVjdXRpdmUpCisgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwg
d29ya2VyX251bWJlcik6CisgICAgICAgIHJldHVybiBXZWJLaXREcml2ZXIoc2VsZiwgd29ya2Vy
X251bWJlcikKIAogICAgIGRlZiB0ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoc2VsZik6CiAgICAg
ICAgICMgQXQgdGhlIG1vbWVudCB3ZSBkb24ndCB1c2UgdGVzdCBwbGF0Zm9ybSBuYW1lcywgYnV0
IHdlIGhhdmUKQEAgLTM4OSw0MCArMzg2LDM2IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0
KToKIGNsYXNzIFdlYktpdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgIiIiV2ViS2l0IGltcGxl
bWVudGF0aW9uIG9mIHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucywgZXhlY3V0aXZlPUV4ZWN1
dGl2ZSgpKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgd29ya2VyX251bWJlcik6Cisg
ICAgICAgIHNlbGYuX3dvcmtlcl9udW1iZXIgPSB3b3JrZXJfbnVtYmVyCiAgICAgICAgIHNlbGYu
X3BvcnQgPSBwb3J0Ci0gICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9wYXRoCi0gICAg
ICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZQogICAgICAgICBzZWxmLl9kcml2ZXJfdGVt
cGRpciA9IHRlbXBmaWxlLm1rZHRlbXAocHJlZml4PSdEdW1wUmVuZGVyVHJlZS0nKQogCiAgICAg
ZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5fZHJpdmVyX3Rl
bXBkaXIpCiAKLSAgICBkZWYgX2RyaXZlcl9hcmdzKHNlbGYpOgotICAgICAgICBkcml2ZXJfYXJn
cyA9IFtdCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAgICAgICBjbWQgPSBzZWxmLl9jb21t
YW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCisgICAgICAgIGNt
ZCArPSBbc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIoKSwgJy0nXQogCi0gICAgICAgIGlmIHNl
bGYuX2ltYWdlX3BhdGg6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tcGl4ZWwt
dGVzdHMnKQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyk6
CisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXBpeGVsLXRlc3RzJykKIAogICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ3VzZV9kcnQnKToKICAgICAgICAgICAgIGlmIHNlbGYuX3Bv
cnQuZ2V0X29wdGlvbignYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcnKToKLSAgICAgICAgICAgICAg
ICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nJykK
KyAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3Np
dGluZycpCiAKICAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignYWNjZWxlcmF0
ZWRfMmRfY2FudmFzJyk6Ci0gICAgICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWVu
YWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnKQorICAgICAgICAgICAgICAgIGNtZC5hcHBlbmQo
Jy0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcycpCiAKLSAgICAgICAgcmV0dXJuIGRyaXZl
cl9hcmdzCisgICAgICAgIHJldHVybiBjbWQKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAg
ICAgY29tbWFuZCA9IHNlbGYuX2NvbW1hbmRfd3JhcHBlcihzZWxmLl9wb3J0LmdldF9vcHRpb24o
J3dyYXBwZXInKSkKLSAgICAgICAgY29tbWFuZCArPSBbc2VsZi5fcG9ydC5fcGF0aF90b19kcml2
ZXIoKSwgJy0nXQotICAgICAgICBjb21tYW5kICs9IHNlbGYuX2RyaXZlcl9hcmdzKCkKLQogICAg
ICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3BvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKCkK
ICAgICAgICAgZW52aXJvbm1lbnRbJ0RZTERfRlJBTUVXT1JLX1BBVEgnXSA9IHNlbGYuX3BvcnQu
X2J1aWxkX3BhdGgoKQogICAgICAgICBlbnZpcm9ubWVudFsnRFVNUFJFTkRFUlRSRUVfVEVNUCdd
ID0gc2VsZi5fZHJpdmVyX3RlbXBkaXIKICAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nlc3MgPSBz
ZXJ2ZXJfcHJvY2Vzcy5TZXJ2ZXJQcm9jZXNzKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICAiRHVt
cFJlbmRlclRyZWUiLCBjb21tYW5kLCBlbnZpcm9ubWVudCkKKyAgICAgICAgICAgICJEdW1wUmVu
ZGVyVHJlZSIsIHNlbGYuY21kX2xpbmUoKSwgZW52aXJvbm1lbnQpCiAKICAgICBkZWYgcG9sbChz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3NlcnZlcl9wcm9jZXNzLnBvbGwoKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKaW5kZXggZDc4ZTQ1Mjk5ZmQ0ZWQyZjEzYzE1YzRlZTA5YzNhZTIz
NGQ3MzlmZS4uY2QxZDFkY2MyYWVkNjY1Yzk5MTIzMjFlMmYyMTk3ZjNlYzgwZmYxMiAxMDA3NTUK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC04OTcsNiArODk3LDggQEAgY2xhc3MgVGVzdFJ1bm5l
cjoKICAgICAgICAgICAgIHAucHJpbnRfY29uZmlnKCJSdW5uaW5nICVzICVzcyBpbiBwYXJhbGxl
bCIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMuY2hpbGRfcHJv
Y2Vzc2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQuZHJpdmVyX25h
bWUoKSkpCisgICAgICAgIHAucHJpbnRfY29uZmlnKCdDb21tYW5kIGxpbmU6ICcgKworICAgICAg
ICAgICAgICAgICAgICAgICAnICcuam9pbihzZWxmLl9wb3J0LmRyaXZlcl9jbWRfbGluZSgpKSkK
ICAgICAgICAgcC5wcmludF9jb25maWcoIldvcmtlciBtb2RlbDogJXMiICUgc2VsZi5fb3B0aW9u
cy53b3JrZXJfbW9kZWwpCiAgICAgICAgIHAucHJpbnRfY29uZmlnKCIiKQogCkBAIC0xMjk0LDYg
KzEyOTYsOSBAQCBkZWYgcnVuKHBvcnQsIG9wdGlvbnMsIGFyZ3MsIHJlZ3VsYXJfb3V0cHV0PXN5
cy5zdGRlcnIsCiAgICAgdHJ5OgogICAgICAgICB0ZXN0X3J1bm5lciA9IFRlc3RSdW5uZXIocG9y
dCwgb3B0aW9ucywgcHJpbnRlciwgYnJva2VyKQogICAgICAgICB0ZXN0X3J1bm5lci5fcHJpbnRf
Y29uZmlnKCkKKyAgICAgICAgaWYgb3B0aW9ucy5wcmludF9jb25maWc6CisgICAgICAgICAgICBw
cmludGVyLmNsZWFudXAoKQorICAgICAgICAgICAgcmV0dXJuIDAKIAogICAgICAgICBwcmludGVy
LnByaW50X3VwZGF0ZSgiQ29sbGVjdGluZyB0ZXN0cyAuLi4iKQogICAgICAgICB0cnk6CkBAIC0x
NTcxLDcgKzE1NzYsNyBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgICAgICAjICAg
ICAgTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgc2V0IG9mIHRlc3RzIChlLmcuIEFCQ0FCQ0FC
QykKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQtbGFzdC1mYWlsdXJlcyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJQ
cmludCB0aGUgdGVzdHMgaW4gdGhlIGxhc3QgcnVuIHRoYXQgIgotICAgICAgICAgICAgImhhZCB1
bmV4cGVjdGVkIGZhaWx1cmVzIChvciBwYXNzZXMpLiIpLAorICAgICAgICAgICAgImhhZCB1bmV4
cGVjdGVkIGZhaWx1cmVzIChvciBwYXNzZXMpIGFuZCB0aGVuIGV4aXQuIiksCiAgICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJldGVzdC1sYXN0LWZhaWx1cmVzIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwKICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9InJlLXRlc3QgdGhlIHRl
c3RzIGluIHRoZSBsYXN0IHJ1biB0aGF0ICIKICAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCBm
YWlsdXJlcyAob3IgcGFzc2VzKS4iKSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3Vu
aXR0ZXN0LnB5CmluZGV4IGIzYzg4NjEwM2M4YWI3MTViMzc2OTViZGI2NTA2MWY5ZGE5ZDZkNDgu
LjIwYTRhYzBlYWRhNzk1NjUwNTk5ZjkxMDBiMWEzMGYxM2ZlYTYyNzAgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtMTM5LDggKzEzOSw4IEBAIGRlZiBn
ZXRfdGVzdHNfcnVuKGV4dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIGZsYXR0
ZW5fYmF0Y2hlcz1GYWxzZSk6CiAgICAgdGVzdF9iYXRjaGVzID0gW10KIAogICAgIGNsYXNzIFJl
Y29yZGluZ1Rlc3REcml2ZXIoVGVzdERyaXZlcik6Ci0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwb3J0LCBpbWFnZV9wYXRoLCBvcHRpb25zKToKLSAgICAgICAgICAgIFRlc3REcml2ZXIuX19p
bml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucywgZXhlY3V0aXZlPU5vbmUpCisg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAg
ICAgIFRlc3REcml2ZXIuX19pbml0X18oc2VsZiwgcG9ydCwgd29ya2VyX251bWJlcikKICAgICAg
ICAgICAgIHNlbGYuX2N1cnJlbnRfdGVzdF9iYXRjaCA9IE5vbmUKIAogICAgICAgICBkZWYgcG9s
bChzZWxmKToKQEAgLTE1OSw4ICsxNTksOCBAQCBkZWYgZ2V0X3Rlc3RzX3J1bihleHRyYV9hcmdz
PU5vbmUsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVuX2JhdGNoZXM9RmFsc2UpOgogICAg
ICAgICAgICAgcmV0dXJuIFRlc3REcml2ZXIucnVuX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCkKIAog
ICAgIGNsYXNzIFJlY29yZGluZ1Rlc3RQb3J0KFRlc3RQb3J0KToKLSAgICAgICAgZGVmIGNyZWF0
ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Ci0gICAgICAgICAgICByZXR1cm4g
UmVjb3JkaW5nVGVzdERyaXZlcihzZWxmLCBpbWFnZV9wYXRoLCBvcHRpb25zKQorICAgICAgICBk
ZWYgY3JlYXRlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgICAgIHJldHVy
biBSZWNvcmRpbmdUZXN0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKICAgICByZWNvcmRp
bmdfcG9ydCA9IFJlY29yZGluZ1Rlc3RQb3J0KG9wdGlvbnM9b3B0aW9ucywgdXNlcj11c2VyKQog
ICAgIGxvZ2dpbmdfcnVuKGV4dHJhX2FyZ3M9YXJncywgcG9ydF9vYmo9cmVjb3JkaW5nX3BvcnQs
IHRlc3RzX2luY2x1ZGVkPVRydWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74806</attachid>
            <date>2010-11-24 16:19:23 -0800</date>
            <delta_ts>2010-11-24 16:27:30 -0800</delta_ts>
            <desc>remove --print-config; we&apos;ll add a separate --dry-run flag instead</desc>
            <filename>bug-49934-20101124161922.patch</filename>
            <type>text/plain</type>
            <size>27986</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTg5ZjMzYzk5MDY3ZDJmZmQ4MWZjNDhlMjU5ODg2NjAxYmIzYWQwLi4yOWJkNDQ5
NGRmNTg1MjI1ZTAzY2M2MzZmN2QzMjE3OTQ3YWIyZjM1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTAtMTEtMjIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCAtIGNsZWFuIHVw
IGNyZWF0ZV9kcml2ZXIgaW50ZXJmYWNlIGFuZCBwcmludCBvdXQgdGhlCisgICAgICAgIGNvbW1h
bmQgbGluZSB1c2VkIGZvciBEdW1wUmVuZGVyVHJlZS9UZXN0U2hlbGwuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIGEgZHJpdmVyX2NtZF9saW5lKCkgY2FsbCB0byB0aGUgUG9ydCBjbGFzcyBp
bgorICAgICAgICBvcmRlciB0byByZXRyaXZlIHRoZSBjb21tYW5kIGxpbmUgdG8gcHJpbnQgaXQg
b3V0IChhcyBwYXJ0IG9mCisgICAgICAgIC0tcHJpbnQgY29uZmlnKS4KKworICAgICAgICBJbiBh
ZGRpdGlvbiwgdGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIFBvcnQuY3JlYXRlX2RyaXZlcigpCisg
ICAgICAgIHNpZ25hdHVyZSBhbmQgdGhlIERyaXZlciBjb25zdHJ1Y3RvciBpbnRlcmZhY2UgdG8g
dGFrZSBhIHdvcmtlcgorICAgICAgICBudW1iZXIgYW5kIG5vIGxvbmdlciByZXF1aXJlIHRoZSBp
bWFnZV9wYXRoIGFyZ3VtZW50IChDaHJvbWl1bSdzCisgICAgICAgIGRyaXZlcnMgbm93IHN5bnRo
ZXNpemUgdGhlIGltYWdlX3BhdGggZnJvbSB0aGUgd29ya2VyIG51bWJlcgorICAgICAgICBpbnRl
cm5hbGx5KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDk5MzQKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5n
X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5Ogor
CiAyMDEwLTExLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVl
X3RocmVhZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CmluZGV4IDM4Y2Y2YzM1MjM3
N2IzOTZjMGM5NTkxZTdhNWI1Yjk3NDVkN2E4N2EuLjUxNmU4NDI4MjgwNDNjYWI2ZDg3YmY4OWFk
OTQzZjUzMGRjNTFkOTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CkBAIC0xNzEsNyArMTcxLDYgQEAgY2xhc3Mg
U2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICBwb3J0OiBvYmpl
Y3QgaW1wbGVtZW50aW5nIHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAgICAgICBvcHRpb25zOiBj
b21tYW5kIGxpbmUgYXJndW1lbnQgb2JqZWN0IGZyb20gb3B0cGFyc2UKICAgICAgICAgICB3b3Jr
ZXJfbnVtYmVyOiB3b3JrZXIgbnVtYmVyIGZvciB0ZXN0cwotICAgICAgICAgICAgICAoRklYTUU6
IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byBwb3J0LmNyZWF0ZV9kcml2ZXIoKSkuCiAgICAgICAg
ICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCiAgICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0
IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQKICAgICAgICAgICB0ZXN0
X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4gdGhlIHRlc3Qgb3V0cHV0
CkBAIC0xOTUsOCArMTk0LDcgQEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhy
ZWFkKToKICAgICBkZWYgX2NvdmVyZWRfcnVuKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiB0aGlz
IGlzIGEgc2VwYXJhdGUgcm91dGluZSB0byB3b3JrIGFyb3VuZCBhIGJ1ZwogICAgICAgICAjIGlu
IGNvdmVyYWdlOiBzZWUgaHR0cDovL2JpdGJ1Y2tldC5vcmcvbmVkL2NvdmVyYWdlcHkvaXNzdWUv
ODUuCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxm
Ll90ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zKQorICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxm
Ll9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fd29ya2VyX251bWJlcikKICAgICAgICAgc2VsZi5f
ZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHQgPSBfcnVuX3NpbmdsZV90
ZXN0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lucHV0LCBzZWxmLl90ZXN0X3R5cGVzLApA
QCAtMjkyLDEyICsyOTAsNiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFk
KToKICAgICBkZWYgX2dldF90ZXN0X2FyZ3Moc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAg
ICIiIlJldHVybnMgdGhlIHR1cGxlIG9mIGFyZ3VtZW50cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1w
UmVuZGVyVHJlZS4iIiIKICAgICAgICAgdGVzdF9hcmdzID0gdGVzdF90eXBlX2Jhc2UuVGVzdEFy
Z3VtZW50cygpCi0gICAgICAgIHRlc3RfYXJncy5wbmdfcGF0aCA9IE5vbmUKLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKLSAgICAgICAgICAgIHBuZ19wYXRoID0gb3MucGF0
aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicG5nX3Jlc3VsdCVzLnBuZyIgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlcikKLSAgICAgICAgICAgIHRl
c3RfYXJncy5wbmdfcGF0aCA9IHBuZ19wYXRoCiAgICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxp
bmUgPSBzZWxmLl9vcHRpb25zLm5ld19iYXNlbGluZQogICAgICAgICB0ZXN0X2FyZ3MucmVzZXRf
cmVzdWx0cyA9IHNlbGYuX29wdGlvbnMucmVzZXRfcmVzdWx0cwogCkBAIC01NDQsOCArNTM2LDcg
QEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgICAgICMgcG9s
bCgpIGlzIG5vdCB0aHJlYWRzYWZlIGFuZCBjYW4gdGhyb3cgT1NFcnJvciBkdWUgdG86CiAgICAg
ICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE3MzE3MTcKICAgICAgICAgaWYgKG5v
dCBzZWxmLl9kcml2ZXIgb3Igc2VsZi5fZHJpdmVyLnBvbGwoKSBpcyBub3QgTm9uZSk6Ci0gICAg
ICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxmLl9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fdGVz
dF9hcmdzLnBuZ19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMpCisgICAgICAgICAgICBzZWxmLl9kcml2ZXIgPSBz
ZWxmLl9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fd29ya2VyX251bWJlcikKICAgICAgICAgICAg
IHNlbGYuX2RyaXZlci5zdGFydCgpCiAKICAgICBkZWYgX3N0YXJ0X3NlcnZlcnNfd2l0aF9sb2Nr
KHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmcucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weQppbmRleCAzNDg2
YzM0N2EyOTg1N2U2M2VkMmUyYzMzZDU3NTU2M2VmODZhNjAxLi43YTZhYWQxYTQzMTg5YWEwMGQy
ZTJkYjYxYTBkZjA0OWU3MTlmMGY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmlu
dGluZy5weQpAQCAtMTI2LDcgKzEyNiw2IEBAIGRlZiBwcmludF9vcHRpb25zKCk6CiAgICAgXQog
CiAKLQogZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJpbnRfb3B0aW9ucywgdmVyYm9zZSwgY2hp
bGRfcHJvY2Vzc2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgaXNfZnVsbHlfcGFyYWxsZWwp
OgogICAgICIiIlBhcnNlIHRoZSBvcHRpb25zIHByb3ZpZGVkIHRvIC0tcHJpbnQgYW5kIGRlZHVw
IGFuZCByYW5rIHRoZW0uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50
aW5nX3VuaXR0ZXN0LnB5CmluZGV4IDlhMGY0ZWVhMjA4ZDIxY2Y4OGVmOGQ1ZWVhZjE0ODNhNTEx
NjE4ZTMuLjI3YTZhMjliZTVjOWE3YTNmMDczZjAwZTYzMGM1YjA0NTI3NmRiYzAgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC03
OCw4ICs3OCw5IEBAIGNsYXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25zKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlvbnMgaXMgbm90IE5vbmUpCiAKICAgICBk
ZWYgdGVzdF9wYXJzZV9wcmludF9vcHRpb25zKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9zd2l0
Y2hlcyhhcmdzLCB2ZXJib3NlLCBjaGlsZF9wcm9jZXNzZXMsIGlzX2Z1bGx5X3BhcmFsbGVsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9zd2l0Y2hlc19zdHIpOgorICAgICAg
ICBkZWYgdGVzdF9zd2l0Y2hlcyhhcmdzLCBleHBlY3RlZF9zd2l0Y2hlc19zdHIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UsIGNoaWxkX3Byb2Nlc3Nlcz0xLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpc19mdWxseV9wYXJhbGxlbD1GYWxzZSk6CiAgICAgICAg
ICAgICBvcHRpb25zLCBhcmdzID0gZ2V0X29wdGlvbnMoYXJncykKICAgICAgICAgICAgIGlmIGV4
cGVjdGVkX3N3aXRjaGVzX3N0cjoKICAgICAgICAgICAgICAgICBleHBlY3RlZF9zd2l0Y2hlcyA9
IHNldChleHBlY3RlZF9zd2l0Y2hlc19zdHIuc3BsaXQoJywnKSkKQEAgLTkyLDI4ICs5MywyMyBA
QCBjbGFzcyBUZXN0VXRpbGl0eUZ1bmN0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3N3aXRjaGVzLCBzd2l0Y2hlcykKIAogICAg
ICAgICAjIHRlc3QgdGhhdCB3ZSBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNldCBvZiBzd2l0Y2hl
cwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFtdLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKKyAgICAgICAgdGVzdF9zd2l0Y2hl
cyhbXSwgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKIAogICAgICAgICAjIHRlc3QgdGhhdCB2ZXJi
b3NlIGRlZmF1bHRzIHRvIGV2ZXJ5dGhpbmcKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgVHJ1
ZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgcHJpbnRpbmcuUFJJTlRfRVZFUllU
SElORykKKyAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElO
RywgdmVyYm9zZT1UcnVlKQogCiAgICAgICAgICMgdGVzdCB0aGF0IC0tcHJpbnQgZGVmYXVsdCBk
b2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmlu
dCcsICdkZWZhdWx0J10sIEZhbHNlLCAxLCBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBw
cmludGluZy5QUklOVF9ERUZBVUxUKQorICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcs
ICdkZWZhdWx0J10sIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCiAKICAgICAgICAgIyB0ZXN0IHRo
YXQgLS1wcmludCBub3RoaW5nIGRvZXMgd2hhdCBpdCdzIHN1cHBvc2VkIHRvCi0gICAgICAgIHRl
c3Rfc3dpdGNoZXMoWyctLXByaW50JywgJ25vdGhpbmcnXSwgRmFsc2UsIDEsIEZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMoWyctLXByaW50
JywgJ25vdGhpbmcnXSwgTm9uZSkKIAogICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50IGV2ZXJ5
dGhpbmcgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhb
Jy0tcHJpbnQnLCAnZXZlcnl0aGluZyddLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElORykKKyAgICAgICAgdGVzdF9zd2l0Y2hl
cyhbJy0tcHJpbnQnLCAnZXZlcnl0aGluZyddLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HKQog
CiAgICAgICAgICMgdGhpcyB0ZXN0cyB0aGF0ICctLXByaW50IFgnIG92ZXJyaWRlcyAnLS12ZXJi
b3NlJwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgVHJ1ZSwg
MSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgJ2FjdHVhbCcpCisgICAgICAgIHRlc3Rf
c3dpdGNoZXMoWyctLXByaW50JywgJ2FjdHVhbCddLCAnYWN0dWFsJywgdmVyYm9zZT1UcnVlKQor
CiAKIAogY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpp
bmRleCAzZmIwZDhlYzc2NzdmYzUzYmRhYWQxY2YzMTRlMzc2YTgyYmVmNGYyLi43NTczMThkMTM4
MDViYzdkYTlhNzdmMzgzMDJjNTUwMThlMGEyYmI2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zODQsNiAr
Mzg0LDExIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIyB2YWxpZCB0ZXN0IGFuZCBi
eSBwcmludGluZy5weSB0byBkZXRlcm1pbmUgaWYgYmFzZWxpbmVzIGV4aXN0LgogICAgICAgICBy
ZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMocGF0aCkKIAorICAgIGRlZiBkcml2ZXJfY21k
X2xpbmUoc2VsZik6CisgICAgICAgICIiIlByaW50cyB0aGUgRFJUIGNvbW1hbmQgbGluZSB0aGF0
IHdpbGwgYmUgdXNlZC4iIiIKKyAgICAgICAgZHJpdmVyID0gc2VsZi5jcmVhdGVfZHJpdmVyKDAp
CisgICAgICAgIHJldHVybiBkcml2ZXIuY21kX2xpbmUoKQorCiAgICAgZGVmIHVwZGF0ZV9iYXNl
bGluZShzZWxmLCBwYXRoLCBkYXRhLCBlbmNvZGluZyk6CiAgICAgICAgICIiIlVwZGF0ZXMgdGhl
IGJhc2VsaW5lIGZvciBhIHRlc3QuCiAKQEAgLTUxMSw3ICs1MTYsNyBAQCBjbGFzcyBQb3J0KG9i
amVjdCk6CiAgICAgICAgIHJlc3VsdHNfZmlsZW5hbWUgaW4gYSB1c2VycycgYnJvd3Nlci4iIiIK
ICAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXIub3Blbl91cmwocmVzdWx0c19maWxlbmFtZSkKIAot
ICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgorICAgIGRl
ZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgogICAgICAgICAiIiJSZXR1cm4g
YSBuZXdseSBjcmVhdGVkIGJhc2UuRHJpdmVyIHN1YmNsYXNzIGZvciBzdGFydGluZy9zdG9wcGlu
ZwogICAgICAgICB0aGUgdGVzdCBkcml2ZXIuIiIiCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IoJ1BvcnQuY3JlYXRlX2RyaXZlcicpCkBAIC03NDEsNyArNzQ2LDcgQEAgY2xhc3Mg
UG9ydChvYmplY3QpOgogCiAgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmLCBjb25maWd1cmF0
aW9uPU5vbmUpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gdGhlIHRlc3Qg
ZHJpdmVyIChEdW1wUmVuZGVyVHJlZSkuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IoJ1BvcnQucGF0aF90b19kcml2ZXInKQorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yKCdQb3J0Ll9wYXRoX3RvX2RyaXZlcicpCiAKICAgICBkZWYgX3BhdGhfdG9fd2ViY29y
ZV9saWJyYXJ5KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gYSBi
dWlsdCBjb3B5IG9mIFdlYkNvcmUuIiIiCkBAIC04MDQsMTkgKzgwOSwxNCBAQCBjbGFzcyBQb3J0
KG9iamVjdCk6CiBjbGFzcyBEcml2ZXI6CiAgICAgIiIiQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0
aGUgRHVtcFJlbmRlclRyZWUgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIHBuZ19wYXRoLCBvcHRpb25zLCBleGVjdXRpdmUpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKICAgICAgICAgIiIiSW5pdGlhbGl6ZSBhIERyaXZl
ciB0byBzdWJzZXF1ZW50bHkgcnVuIHRlc3RzLgogCiAgICAgICAgIFR5cGljYWxseSB0aGlzIHJv
dXRpbmUgd2lsbCBzcGF3biBEdW1wUmVuZGVyVHJlZSBpbiBhIGNvbmZpZwogICAgICAgICByZWFk
eSBmb3Igc3Vic2VxdWVudCBpbnB1dC4KIAogICAgICAgICBwb3J0IC0gcmVmZXJlbmNlIGJhY2sg
dG8gdGhlIHBvcnQgb2JqZWN0LgotICAgICAgICBwbmdfcGF0aCAtIGFuIGFic29sdXRlIHBhdGgg
Zm9yIHRoZSBkcml2ZXIgdG8gd3JpdGUgYW55IGltYWdlCi0gICAgICAgICAgICBkYXRhIGZvciBh
IHRlc3QgKGFzIGEgUE5HKS4gSWYgbm8gcGF0aCBpcyBwcm92aWRlZCwgdGhhdAotICAgICAgICAg
ICAgaW5kaWNhdGVzIHRoYXQgcGl4ZWwgdGVzdCByZXN1bHRzIHdpbGwgbm90IGJlIGNoZWNrZWQu
Ci0gICAgICAgIG9wdGlvbnMgLSBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9w
dHBhcnNlCi0gICAgICAgIGV4ZWN1dGl2ZSAtIHJlZmVyZW5jZSB0byB0aGUgcHJvY2Vzcy13aWRl
IEV4ZWN1dGl2ZSBvYmplY3QKLQorICAgICAgICB3b3JrZXJfbnVtYmVyIC0gaWRlbnRpZmllciBm
b3IgYSBwYXJ0aWN1bGFyIHdvcmtlci9kcml2ZXIgaW5zdGFuY2UKICAgICAgICAgIiIiCiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ0RyaXZlci5fX2luaXRfXycpCiAKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFz
ZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZV91bml0dGVzdC5weQppbmRleCAyMjcwOWVhYmRmODJmYjg4NDk1NGZkYjlhZDVm
NjNmOTdhOGM2ZDAwLi44ZDU4NmUzNTRlNDJmMDM5M2M2Yzk2ZmJiZTEwNzYwYmQzNzE4NWVlIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2VfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CkBAIC0yNTgsNyArMjU4LDcgQEAgY2xhc3Mg
VmlydHVhbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFZpcnR1
YWwocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFs
KHBvcnQuY2hlY2tfYnVpbGQsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0
LmNoZWNrX2ltYWdlX2RpZmYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmNyZWF0
ZV9kcml2ZXIsIE5vbmUsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmNy
ZWF0ZV9kcml2ZXIsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmRpZmZfaW1h
Z2UsIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnBhdGhfdG9f
dGVzdF9leHBlY3RhdGlvbnNfZmlsZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQu
dGVzdF9wbGF0Zm9ybV9uYW1lKQpAQCAtMjgyLDcgKzI4Miw3IEBAIGNsYXNzIFZpcnR1YWxUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3ZpcnR1YWxfZHJpdmVyX21ldGhv
ZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwg
YmFzZS5Ecml2ZXIsIGJhc2UuUG9ydCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwg
Tm9uZSwgTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCkKIAogICAgIGRlZiB0ZXN0
X3ZpcnR1YWxfZHJpdmVyX21ldGhvZHMoc2VsZik6CiAgICAgICAgIGNsYXNzIFZpcnR1YWxEcml2
ZXIoYmFzZS5Ecml2ZXIpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggMjVjMThjYjIxNmY3M2Q2
YTYzYmRjOWNkMzhkODI0NDlhZGJiYTA4Yy4uOGZlNjg1YWYwNjY5ZWIzNGFmZThmOTRjNTZmZTNm
ZjNjZDk1MzZjNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC00NCw3ICs0NCw2IEBAIGltcG9y
dCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUKIGltcG9ydCB3ZWJicm93c2VyCiAKLWZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLnBhdGggaW1wb3J0IGN5Z3BhdGgKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rfb3V0cHV0CkBAIC0x
NzYsNiArMTc1LDggQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJl
dHVybiByZXN1bHQKIAogICAgIGRlZiBkcml2ZXJfbmFtZShzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy51c2VfZHJ0OgorICAgICAgICAgICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIK
ICAgICAgICAgcmV0dXJuICJ0ZXN0X3NoZWxsIgogCiAgICAgZGVmIHBhdGhfZnJvbV9jaHJvbWl1
bV9iYXNlKHNlbGYsICpjb21wcyk6CkBAIC0yMTMsMTMgKzIxNCwxMSBAQCBjbGFzcyBDaHJvbWl1
bVBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoY2FjaGVkaXIpOgog
ICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShjYWNoZWRpcikKIAotICAgIGRlZiBjcmVhdGVfZHJp
dmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgorICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNl
bGYsIHdvcmtlcl9udW1iZXIpOgogICAgICAgICAiIiJTdGFydHMgYSBuZXcgRHJpdmVyIGFuZCBy
ZXR1cm5zIGEgaGFuZGxlIHRvIGl0LiIiIgotICAgICAgICBpZiBvcHRpb25zLnVzZV9kcnQgYW5k
IHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKLSAgICAgICAgICAgIHJldHVybiB3ZWJraXQuV2Vi
S2l0RHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleGVjdXRpdmU9c2VsZi5fZXhlY3V0aXZlKQotICAgICAgICBy
ZXR1cm4gQ2hyb21pdW1Ecml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGl2ZT1zZWxmLl9leGVjdXRpdmUpCisgICAgICAg
IGlmIHNlbGYuZ2V0X29wdGlvbigndXNlX2RydCcpIGFuZCBzeXMucGxhdGZvcm0gPT0gJ2Rhcndp
bic6CisgICAgICAgICAgICByZXR1cm4gd2Via2l0LldlYktpdERyaXZlcihzZWxmLCB3b3JrZXJf
bnVtYmVyKQorICAgICAgICByZXR1cm4gQ2hyb21pdW1Ecml2ZXIoc2VsZiwgd29ya2VyX251bWJl
cikKIAogICAgIGRlZiBzdGFydF9oZWxwZXIoc2VsZik6CiAgICAgICAgIGhlbHBlcl9wYXRoID0g
c2VsZi5fcGF0aF90b19oZWxwZXIoKQpAQCAtMzYwLDQ4ICszNTksNTAgQEAgY2xhc3MgQ2hyb21p
dW1Qb3J0KGJhc2UuUG9ydCk6CiBjbGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAg
ICAgIiIiQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0ZXN0X3NoZWxsLiIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnQsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1FeGVjdXRp
dmUoKSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgogICAg
ICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwot
ICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAotICAgICAgICBzZWxmLl9leGVj
dXRpdmUgPSBleGVjdXRpdmUKLQotICAgIGRlZiBfZHJpdmVyX2FyZ3Moc2VsZik6Ci0gICAgICAg
IGRyaXZlcl9hcmdzID0gW10KLSAgICAgICAgaWYgc2VsZi5faW1hZ2VfcGF0aDoKKyAgICAgICAg
c2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5faW1hZ2Vf
cGF0aCA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0
cycpOgorICAgICAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IG9zLnBhdGguam9pbigKKyAgICAg
ICAgICAgICAgICBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3Jlc3VsdHNfZGlyZWN0b3J5JyksCisg
ICAgICAgICAgICAgICAgJ3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5fd29ya2VyX251bWJlcikK
KworICAgIGRlZiBjbWRfbGluZShzZWxmKToKKyAgICAgICAgY21kID0gc2VsZi5fY29tbWFuZF93
cmFwcGVyKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd3JhcHBlcicpKQorICAgICAgICBjbWQuYXBw
ZW5kKHNlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCkpCisgICAgICAgIGlmIHNlbGYuX3BvcnQu
Z2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKICAgICAgICAgICAgICMgU2VlIG5vdGUgYWJvdmUg
aW4gZGlmZl9pbWFnZSgpIGZvciB3aHkgd2UgbmVlZCBfY29udmVydF9wYXRoKCkuCi0gICAgICAg
ICAgICBkcml2ZXJfYXJncy5hcHBlbmQoIi0tcGl4ZWwtdGVzdHM9IiArCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5fY29udmVydF9wYXRoKHNlbGYuX2ltYWdlX3Bh
dGgpKQorICAgICAgICAgICAgY21kLmFwcGVuZCgiLS1waXhlbC10ZXN0cz0iICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5fY29udmVydF9wYXRoKHNlbGYuX2ltYWdlX3BhdGgp
KQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigndXNlX2RydCcpOgotICAgICAg
ICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLXRlc3Qtc2hlbGwnKQorICAgICAgICAgICAgY21k
LmFwcGVuZCgnLS10ZXN0LXNoZWxsJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRyaXZl
cl9hcmdzLmFwcGVuZCgnLS1sYXlvdXQtdGVzdHMnKQorICAgICAgICAgICAgY21kLmFwcGVuZCgn
LS1sYXlvdXQtdGVzdHMnKQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc3Rh
cnR1cF9kaWFsb2cnKToKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS10ZXN0c2hl
bGwtc3RhcnR1cC1kaWFsb2cnKQorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS10ZXN0c2hlbGwt
c3RhcnR1cC1kaWFsb2cnKQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignZ3Bf
ZmF1bHRfZXJyb3JfYm94Jyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tZ3At
ZmF1bHQtZXJyb3ItYm94JykKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZ3AtZmF1bHQtZXJy
b3ItYm94JykKIAotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmpzX2ZsYWdzIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWpzLWZsYWdzPSInICsgc2VsZi5f
b3B0aW9ucy5qc19mbGFncyArICciJykKKyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9u
KCdqc19mbGFncycpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1qcy1m
bGFncz0iJyArIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignanNfZmxhZ3MnKSArICciJykKIAotICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLm11bHRpcGxlX2xvYWRzIGlzIG5vdCBOb25lIGFuZCBzZWxm
Ll9vcHRpb25zLm11bHRpcGxlX2xvYWRzID4gMDoKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFw
cGVuZCgnLS1tdWx0aXBsZS1sb2Fkcz0nICsgc3RyKHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9h
ZHMpKQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ211bHRpcGxlX2xvYWRzJykg
PiAwOgorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1tdWx0aXBsZS1sb2Fkcz0nICsgc3RyKHNl
bGYuX3BvcnQuZ2V0X29wdGlvbignbXVsdGlwbGVfbG9hZHMnKSkpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGluZycpOgotICAgICAgICAg
ICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycp
CisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGlu
ZycpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9j
YW52YXMnKToKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS1lbmFibGUtYWNjZWxl
cmF0ZWQtMmQtY2FudmFzJykKLSAgICAgICAgcmV0dXJuIGRyaXZlcl9hcmdzCisgICAgICAgICAg
ICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnKQorICAgICAgICBy
ZXR1cm4gY21kCiAKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFNob3Vs
ZCBiZSBhbiBlcnJvciB0byBjYWxsIHRoaXMgbWV0aG9kIHR3aWNlLgotICAgICAgICBjbWQgPSBz
ZWxmLl9jb21tYW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCi0g
ICAgICAgIGNtZC5hcHBlbmQoc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIoKSkKLSAgICAgICAg
Y21kICs9IHNlbGYuX2RyaXZlcl9hcmdzKCkKKyAgICAgICAgY21kID0gc2VsZi5jbWRfbGluZSgp
CiAKICAgICAgICAgIyBXZSBuZWVkIHRvIHBhc3MgY2xvc2VfZmRzPVRydWUgdG8gd29yayBhcm91
bmQgUHl0aG9uIGJ1ZyAjMjMyMAogICAgICAgICAjIChvdGhlcndpc2Ugd2UgY2FuIGhhbmcgd2hl
biB3ZSBraWxsIER1bXBSZW5kZXJUcmVlIHdoZW4gd2UgYXJlIHJ1bm5pbmcKQEAgLTU1MSw0ICs1
NTIsNCBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgX2xv
Zy53YXJuaW5nKCdzdG9wcGluZyB0ZXN0IGRyaXZlciB0aW1lZCBvdXQsICcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdraWxsaW5nIGl0JykKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl9wcm9jLnBpZCkKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcG9ydC5fZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl9wcm9jLnBp
ZCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDkyYTMxZmJlNDYy
OTNhOWJjNTJjNWM1OTQzNzE0MGFkZjczMGY4YTAuLjUzOTY1MjIwZmYyYTNhZDk0MGQxZmMxOTAz
MmEzY2E5YzA4OTRmNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpA
QCAtNDIsNyArNDIsOCBAQCBjbGFzcyBDaHJvbWl1bURyaXZlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBtb2NrX3BvcnQgPSBNb2NrKCkK
LSAgICAgICAgc2VsZi5kcml2ZXIgPSBjaHJvbWl1bS5DaHJvbWl1bURyaXZlcihtb2NrX3BvcnQs
IGltYWdlX3BhdGg9Tm9uZSwgb3B0aW9ucz1Ob25lKQorICAgICAgICBtb2NrX3BvcnQuZ2V0X29w
dGlvbiA9IGxhbWJkYSBvcHRpb25fbmFtZTogJycKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBjaHJv
bWl1bS5DaHJvbWl1bURyaXZlcihtb2NrX3BvcnQsIHdvcmtlcl9udW1iZXI9MCkKIAogICAgIGRl
ZiB0ZXN0X3Rlc3Rfc2hlbGxfY29tbWFuZChzZWxmKToKICAgICAgICAgZXhwZWN0ZWRfY29tbWFu
ZCA9ICJ0ZXN0Lmh0bWwgMiBjaGVja3N1bVxuIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQppbmRleCBkNDQ0ZGFi
MTIzMTQyZGRlMTNkZTBhNzExZjYzMzE5ZGQ2MTY1MDMyLi40ZWQzNGU2NDg4ZWYyODQ3NTBjNjlm
ZDA1NGQwMzEwMGJlZWQ1YjZmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQpAQCAtOTUsMTggKzk1LDE5IEBA
IGNsYXNzIERyeVJ1blBvcnQob2JqZWN0KToKICAgICBkZWYgc3RvcF93ZWJzb2NrZXRfc2VydmVy
KHNlbGYpOgogICAgICAgICBwYXNzCiAKLSAgICBkZWYgY3JlYXRlX2RyaXZlcihzZWxmLCBpbWFn
ZV9wYXRoLCBvcHRpb25zKToKLSAgICAgICAgcmV0dXJuIERyeXJ1bkRyaXZlcihzZWxmLCBpbWFn
ZV9wYXRoLCBvcHRpb25zLCBleGVjdXRpdmU9Tm9uZSkKKyAgICBkZWYgY3JlYXRlX2RyaXZlcihz
ZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgcmV0dXJuIERyeXJ1bkRyaXZlcihzZWxmLCB3
b3JrZXJfbnVtYmVyKQogCiAKIGNsYXNzIERyeXJ1bkRyaXZlcihiYXNlLkRyaXZlcik6CiAgICAg
IiIiRHJ5cnVuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEdW1wUmVuZGVyVHJlZSAvIERyaXZlciBp
bnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwg
b3B0aW9ucywgZXhlY3V0aXZlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgd29ya2Vy
X251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAgICAgIHNlbGYuX2ltYWdl
X3BhdGggPSBpbWFnZV9wYXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZQot
ICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdHNfZGlyID0gTm9uZQorICAgICAgICBzZWxmLl93b3Jr
ZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAg
ICAgICByZXR1cm4gWydOb25lJ10KIAogICAgIGRlZiBwb2xsKHNlbGYpOgogICAgICAgICByZXR1
cm4gTm9uZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IDA0YWRhNTAwMGUzYjM1
MzgyYzNjOTYwOTIyZTI4YzU1M2MzZjQwNGUuLmM0YjM2YWNkOTA3OWZkMmZiZTkwOTAxMjAyZDVm
OWMwMjVlMzg3ZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTM3LDYgKzM3
LDggQEAgbW9ja19vcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMocmVzdWx0c19kaXJlY3Rv
cnk9J2xheW91dC10ZXN0LXJlc3VsdHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlX2FwYWNoZT1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uZmlndXJhdGlvbj0nUmVsZWFzZScpCiAKKyMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVz
ZWQgZm9yIGFsbCBwb3J0cywgbm90IGp1c3QgV2ViS2l0IE1hYy4gU2VlCisjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA0MyAuCiAKIGNsYXNzIFBvcnRUZXN0Q2Fz
ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdHMgdGhlIFdlYktpdCBwb3J0IGltcGxl
bWVudGF0aW9uLiIiIgpAQCAtNDQsNiArNDYsMTIgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiT3ZlcnJpZGUgaW4gc3ViY2xhc3MuIiIiCiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCisgICAgZGVmIHRlc3RfZHJpdmVyX2Nt
ZF9saW5lKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBp
ZiBub3QgcG9ydDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLmFzc2VydFRydWUo
bGVuKHBvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQorCiAgICAgZGVmIHRlc3RfaHR0cF9zZXJ2ZXIo
c2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGlmIG5vdCBw
b3J0OgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CmluZGV4IGRkOGY2MThhOGVhOWVjZGQyZjYxNTE0YWUwYzAzYTE2YzFh
NjZjNTIuLjhlMjdmMzVjMWMxYWQ4YWQ3YjMwOTQxZDFjYjI0NjNmYWRlOWQ2ZjggMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKQEAgLTIyNiw4ICsyMjYsOCBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAg
IGRlZiBzZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGNyZWF0
ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Ci0gICAgICAgIHJldHVybiBUZXN0
RHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQorICAgIGRl
ZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICByZXR1cm4gVGVz
dERyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgZGVmIHN0YXJ0X2h0dHBfc2VydmVy
KHNlbGYpOgogICAgICAgICBwYXNzCkBAIC0yODEsMTEgKzI4MSwxMSBAQCBXT05URklYIFNLSVAg
OiBmYWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRtbCA9IENSQVNICiBjbGFzcyBUZXN0RHJp
dmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucywgZXhlY3V0aXZlKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcG9ydCwgd29ya2VyX251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0g
ICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9wYXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1
dGl2ZSA9IGV4ZWN1dGl2ZQotICAgICAgICBzZWxmLl9pbWFnZV93cml0dGVuID0gRmFsc2UKKwor
ICAgIGRlZiBjbWRfbGluZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFsnTm9uZSddCiAKICAgICBk
ZWYgcG9sbChzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXgg
ZjVmOTI1MjY3MDMxY2VjYjM5NDA1NWY4MmQ1OTBjMDU0YTkwODMzZC4uMDliZTgzM2Q3NTJmMDJm
ZGI3OTQ0NjYzYjkwZTU1ZWE3MzBjZTFhMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQ2LDggKzQ2
LDYgQEAgaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCBzaHV0aWwKIAot
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCi0K
IGltcG9ydCB3ZWJraXRweS5jb21tb24uc3lzdGVtLm9zcGF0aCBhcyBvc3BhdGgKIGltcG9ydCB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UudGVzdF9vdXRwdXQgYXMgdGVzdF9v
dXRwdXQKIGltcG9ydCB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5iYXNlIGFzIGJhc2UKQEAg
LTE4NSw5ICsxODMsOCBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICMg
VGhpcyBwb3J0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbi4KICAg
ICAgICAgcGFzcwogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0
aW9ucyk6Ci0gICAgICAgIHJldHVybiBXZWJLaXREcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0
aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpdmU9c2VsZi5fZXhlY3V0
aXZlKQorICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICByZXR1cm4gV2ViS2l0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKICAgICBkZWYgdGVz
dF9iYXNlX3BsYXRmb3JtX25hbWVzKHNlbGYpOgogICAgICAgICAjIEF0IHRoZSBtb21lbnQgd2Ug
ZG9uJ3QgdXNlIHRlc3QgcGxhdGZvcm0gbmFtZXMsIGJ1dCB3ZSBoYXZlCkBAIC0zODksNDAgKzM4
NiwzNiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiBjbGFzcyBXZWJLaXREcml2ZXIo
YmFzZS5Ecml2ZXIpOgogICAgICIiIldlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJl
bmRlclRyZWUgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGlt
YWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1FeGVjdXRpdmUoKSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBz
ZWxmLl9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAotICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBl
eGVjdXRpdmUKICAgICAgICAgc2VsZi5fZHJpdmVyX3RlbXBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1w
KHByZWZpeD0nRHVtcFJlbmRlclRyZWUtJykKIAogICAgIGRlZiBfX2RlbF9fKHNlbGYpOgogICAg
ICAgICBzaHV0aWwucm10cmVlKHNlbGYuX2RyaXZlcl90ZW1wZGlyKQogCi0gICAgZGVmIF9kcml2
ZXJfYXJncyhzZWxmKToKLSAgICAgICAgZHJpdmVyX2FyZ3MgPSBbXQorICAgIGRlZiBjbWRfbGlu
ZShzZWxmKToKKyAgICAgICAgY21kID0gc2VsZi5fY29tbWFuZF93cmFwcGVyKHNlbGYuX3BvcnQu
Z2V0X29wdGlvbignd3JhcHBlcicpKQorICAgICAgICBjbWQgKz0gW3NlbGYuX3BvcnQuX3BhdGhf
dG9fZHJpdmVyKCksICctJ10KIAotICAgICAgICBpZiBzZWxmLl9pbWFnZV9wYXRoOgotICAgICAg
ICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLXBpeGVsLXRlc3RzJykKKyAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgorICAgICAgICAgICAgY21kLmFwcGVu
ZCgnLS1waXhlbC10ZXN0cycpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd1
c2VfZHJ0Jyk6CiAgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nJyk6Ci0gICAgICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCct
LWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycpCisgICAgICAgICAgICAgICAgY21kLmFw
cGVuZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcnKQogCiAgICAgICAgICAgICBp
ZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpOgotICAgICAg
ICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtMmQtY2Fu
dmFzJykKKyAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0y
ZC1jYW52YXMnKQogCi0gICAgICAgIHJldHVybiBkcml2ZXJfYXJncworICAgICAgICByZXR1cm4g
Y21kCiAKICAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBzZWxmLl9jb21t
YW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCi0gICAgICAgIGNv
bW1hbmQgKz0gW3NlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCksICctJ10KLSAgICAgICAgY29t
bWFuZCArPSBzZWxmLl9kcml2ZXJfYXJncygpCi0KICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxm
Ll9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCiAgICAgICAgIGVudmlyb25tZW50WydE
WUxEX0ZSQU1FV09SS19QQVRIJ10gPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKICAgICAgICAg
ZW52aXJvbm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAnXSA9IHNlbGYuX2RyaXZlcl90ZW1wZGly
CiAgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0gc2VydmVyX3Byb2Nlc3MuU2VydmVyUHJv
Y2VzcyhzZWxmLl9wb3J0LAotICAgICAgICAgICAgIkR1bXBSZW5kZXJUcmVlIiwgY29tbWFuZCwg
ZW52aXJvbm1lbnQpCisgICAgICAgICAgICAiRHVtcFJlbmRlclRyZWUiLCBzZWxmLmNtZF9saW5l
KCksIGVudmlyb25tZW50KQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLl9zZXJ2ZXJfcHJvY2Vzcy5wb2xsKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4
IGQ3OGU0NTI5OWZkNGVkMmYxM2MxNWM0ZWUwOWMzYWUyMzRkNzM5ZmUuLmNkMWQxZGNjMmFlZDY2
NWM5OTEyMzIxZTJmMjE5N2YzZWM4MGZmMTIgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpA
QCAtODk3LDYgKzg5Nyw4IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICBwLnByaW50
X2NvbmZpZygiUnVubmluZyAlcyAlc3MgaW4gcGFyYWxsZWwiICUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkpKQorICAgICAgICBwLnByaW50
X2NvbmZpZygnQ29tbWFuZCBsaW5lOiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgJyAnLmpv
aW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCiAgICAgICAgIHAucHJpbnRfY29uZmln
KCJXb3JrZXIgbW9kZWw6ICVzIiAlIHNlbGYuX29wdGlvbnMud29ya2VyX21vZGVsKQogICAgICAg
ICBwLnByaW50X2NvbmZpZygiIikKIApAQCAtMTI5NCw2ICsxMjk2LDkgQEAgZGVmIHJ1bihwb3J0
LCBvcHRpb25zLCBhcmdzLCByZWd1bGFyX291dHB1dD1zeXMuc3RkZXJyLAogICAgIHRyeToKICAg
ICAgICAgdGVzdF9ydW5uZXIgPSBUZXN0UnVubmVyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIsIGJy
b2tlcikKICAgICAgICAgdGVzdF9ydW5uZXIuX3ByaW50X2NvbmZpZygpCisgICAgICAgIGlmIG9w
dGlvbnMucHJpbnRfY29uZmlnOgorICAgICAgICAgICAgcHJpbnRlci5jbGVhbnVwKCkKKyAgICAg
ICAgICAgIHJldHVybiAwCiAKICAgICAgICAgcHJpbnRlci5wcmludF91cGRhdGUoIkNvbGxlY3Rp
bmcgdGVzdHMgLi4uIikKICAgICAgICAgdHJ5OgpAQCAtMTU3MSw3ICsxNTc2LDcgQEAgZGVmIHBh
cnNlX2FyZ3MoYXJncz1Ob25lKToKICAgICAgICAgIyAgICAgIE51bWJlciBvZiB0aW1lcyB0byBy
dW4gdGhlIHNldCBvZiB0ZXN0cyAoZS5nLiBBQkNBQkNBQkMpCiAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItLXByaW50LWxhc3QtZmFpbHVyZXMiLCBhY3Rpb249InN0b3JlX3RydWUiLAog
ICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iUHJpbnQgdGhlIHRlc3RzIGluIHRoZSBs
YXN0IHJ1biB0aGF0ICIKLSAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3Ig
cGFzc2VzKS4iKSwKKyAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3IgcGFz
c2VzKSBhbmQgdGhlbiBleGl0LiIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1y
ZXRlc3QtbGFzdC1mYWlsdXJlcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICBk
ZWZhdWx0PUZhbHNlLCBoZWxwPSJyZS10ZXN0IHRoZSB0ZXN0cyBpbiB0aGUgbGFzdCBydW4gdGhh
dCAiCiAgICAgICAgICAgICAiaGFkIHVuZXhwZWN0ZWQgZmFpbHVyZXMgKG9yIHBhc3NlcykuIiks
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCBiM2M4ODYx
MDNjOGFiNzE1YjM3Njk1YmRiNjUwNjFmOWRhOWQ2ZDQ4Li4yMGE0YWMwZWFkYTc5NTY1MDU5OWY5
MTAwYjFhMzBmMTNmZWE2MjcwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5p
dHRlc3QucHkKQEAgLTEzOSw4ICsxMzksOCBAQCBkZWYgZ2V0X3Rlc3RzX3J1bihleHRyYV9hcmdz
PU5vbmUsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVuX2JhdGNoZXM9RmFsc2UpOgogICAg
IHRlc3RfYmF0Y2hlcyA9IFtdCiAKICAgICBjbGFzcyBSZWNvcmRpbmdUZXN0RHJpdmVyKFRlc3RE
cml2ZXIpOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0
aW9ucyk6Ci0gICAgICAgICAgICBUZXN0RHJpdmVyLl9faW5pdF9fKHNlbGYsIHBvcnQsIGltYWdl
X3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQorICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgd29ya2VyX251bWJlcik6CisgICAgICAgICAgICBUZXN0RHJpdmVyLl9faW5pdF9f
KHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpCiAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X3Rl
c3RfYmF0Y2ggPSBOb25lCiAKICAgICAgICAgZGVmIHBvbGwoc2VsZik6CkBAIC0xNTksOCArMTU5
LDggQEAgZGVmIGdldF90ZXN0c19ydW4oZXh0cmFfYXJncz1Ob25lLCB0ZXN0c19pbmNsdWRlZD1G
YWxzZSwgZmxhdHRlbl9iYXRjaGVzPUZhbHNlKToKICAgICAgICAgICAgIHJldHVybiBUZXN0RHJp
dmVyLnJ1bl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpCiAKICAgICBjbGFzcyBSZWNvcmRpbmdUZXN0
UG9ydChUZXN0UG9ydCk6Ci0gICAgICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3Bh
dGgsIG9wdGlvbnMpOgotICAgICAgICAgICAgcmV0dXJuIFJlY29yZGluZ1Rlc3REcml2ZXIoc2Vs
ZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucykKKyAgICAgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwg
d29ya2VyX251bWJlcik6CisgICAgICAgICAgICByZXR1cm4gUmVjb3JkaW5nVGVzdERyaXZlcihz
ZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgcmVjb3JkaW5nX3BvcnQgPSBSZWNvcmRpbmdUZXN0
UG9ydChvcHRpb25zPW9wdGlvbnMsIHVzZXI9dXNlcikKICAgICBsb2dnaW5nX3J1bihleHRyYV9h
cmdzPWFyZ3MsIHBvcnRfb2JqPXJlY29yZGluZ19wb3J0LCB0ZXN0c19pbmNsdWRlZD1UcnVlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74807</attachid>
            <date>2010-11-24 16:27:34 -0800</date>
            <delta_ts>2010-11-24 16:31:08 -0800</delta_ts>
            <desc>actually pass the tests</desc>
            <filename>bug-49934-20101124162733.patch</filename>
            <type>text/plain</type>
            <size>27638</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTg5ZjMzYzk5MDY3ZDJmZmQ4MWZjNDhlMjU5ODg2NjAxYmIzYWQwLi4yOWJkNDQ5
NGRmNTg1MjI1ZTAzY2M2MzZmN2QzMjE3OTQ3YWIyZjM1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTAtMTEtMjIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dCAtIGNsZWFuIHVw
IGNyZWF0ZV9kcml2ZXIgaW50ZXJmYWNlIGFuZCBwcmludCBvdXQgdGhlCisgICAgICAgIGNvbW1h
bmQgbGluZSB1c2VkIGZvciBEdW1wUmVuZGVyVHJlZS9UZXN0U2hlbGwuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIGEgZHJpdmVyX2NtZF9saW5lKCkgY2FsbCB0byB0aGUgUG9ydCBjbGFzcyBp
bgorICAgICAgICBvcmRlciB0byByZXRyaXZlIHRoZSBjb21tYW5kIGxpbmUgdG8gcHJpbnQgaXQg
b3V0IChhcyBwYXJ0IG9mCisgICAgICAgIC0tcHJpbnQgY29uZmlnKS4KKworICAgICAgICBJbiBh
ZGRpdGlvbiwgdGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIFBvcnQuY3JlYXRlX2RyaXZlcigpCisg
ICAgICAgIHNpZ25hdHVyZSBhbmQgdGhlIERyaXZlciBjb25zdHJ1Y3RvciBpbnRlcmZhY2UgdG8g
dGFrZSBhIHdvcmtlcgorICAgICAgICBudW1iZXIgYW5kIG5vIGxvbmdlciByZXF1aXJlIHRoZSBp
bWFnZV9wYXRoIGFyZ3VtZW50IChDaHJvbWl1bSdzCisgICAgICAgIGRyaXZlcnMgbm93IHN5bnRo
ZXNpemUgdGhlIGltYWdlX3BhdGggZnJvbSB0aGUgd29ya2VyIG51bWJlcgorICAgICAgICBpbnRl
cm5hbGx5KS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDk5MzQKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5n
X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5Ogor
CiAyMDEwLTExLTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVl
X3RocmVhZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CmluZGV4IDM4Y2Y2YzM1MjM3
N2IzOTZjMGM5NTkxZTdhNWI1Yjk3NDVkN2E4N2EuLjUxNmU4NDI4MjgwNDNjYWI2ZDg3YmY4OWFk
OTQzZjUzMGRjNTFkOTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5CkBAIC0xNzEsNyArMTcxLDYgQEAgY2xhc3Mg
U2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICBwb3J0OiBvYmpl
Y3QgaW1wbGVtZW50aW5nIHBvcnQtc3BlY2lmaWMgaG9va3MKICAgICAgICAgICBvcHRpb25zOiBj
b21tYW5kIGxpbmUgYXJndW1lbnQgb2JqZWN0IGZyb20gb3B0cGFyc2UKICAgICAgICAgICB3b3Jr
ZXJfbnVtYmVyOiB3b3JrZXIgbnVtYmVyIGZvciB0ZXN0cwotICAgICAgICAgICAgICAoRklYTUU6
IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byBwb3J0LmNyZWF0ZV9kcml2ZXIoKSkuCiAgICAgICAg
ICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCiAgICAgICAgICAgdGVzdF9pbnB1dDogT2JqZWN0
IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQKICAgICAgICAgICB0ZXN0
X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0byBydW4gdGhlIHRlc3Qgb3V0cHV0
CkBAIC0xOTUsOCArMTk0LDcgQEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhy
ZWFkKToKICAgICBkZWYgX2NvdmVyZWRfcnVuKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiB0aGlz
IGlzIGEgc2VwYXJhdGUgcm91dGluZSB0byB3b3JrIGFyb3VuZCBhIGJ1ZwogICAgICAgICAjIGlu
IGNvdmVyYWdlOiBzZWUgaHR0cDovL2JpdGJ1Y2tldC5vcmcvbmVkL2NvdmVyYWdlcHkvaXNzdWUv
ODUuCi0gICAgICAgIHNlbGYuX2RyaXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxm
Ll90ZXN0X2FyZ3MucG5nX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zKQorICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxm
Ll9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fd29ya2VyX251bWJlcikKICAgICAgICAgc2VsZi5f
ZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHQgPSBfcnVuX3NpbmdsZV90
ZXN0KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lucHV0LCBzZWxmLl90ZXN0X3R5cGVzLApA
QCAtMjkyLDEyICsyOTAsNiBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFk
KToKICAgICBkZWYgX2dldF90ZXN0X2FyZ3Moc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAg
ICIiIlJldHVybnMgdGhlIHR1cGxlIG9mIGFyZ3VtZW50cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1w
UmVuZGVyVHJlZS4iIiIKICAgICAgICAgdGVzdF9hcmdzID0gdGVzdF90eXBlX2Jhc2UuVGVzdEFy
Z3VtZW50cygpCi0gICAgICAgIHRlc3RfYXJncy5wbmdfcGF0aCA9IE5vbmUKLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKLSAgICAgICAgICAgIHBuZ19wYXRoID0gb3MucGF0
aC5qb2luKHNlbGYuX29wdGlvbnMucmVzdWx0c19kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicG5nX3Jlc3VsdCVzLnBuZyIgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlcikKLSAgICAgICAgICAgIHRl
c3RfYXJncy5wbmdfcGF0aCA9IHBuZ19wYXRoCiAgICAgICAgIHRlc3RfYXJncy5uZXdfYmFzZWxp
bmUgPSBzZWxmLl9vcHRpb25zLm5ld19iYXNlbGluZQogICAgICAgICB0ZXN0X2FyZ3MucmVzZXRf
cmVzdWx0cyA9IHNlbGYuX29wdGlvbnMucmVzZXRfcmVzdWx0cwogCkBAIC01NDQsOCArNTM2LDcg
QEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgICAgICMgcG9s
bCgpIGlzIG5vdCB0aHJlYWRzYWZlIGFuZCBjYW4gdGhyb3cgT1NFcnJvciBkdWUgdG86CiAgICAg
ICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE3MzE3MTcKICAgICAgICAgaWYgKG5v
dCBzZWxmLl9kcml2ZXIgb3Igc2VsZi5fZHJpdmVyLnBvbGwoKSBpcyBub3QgTm9uZSk6Ci0gICAg
ICAgICAgICBzZWxmLl9kcml2ZXIgPSBzZWxmLl9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fdGVz
dF9hcmdzLnBuZ19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMpCisgICAgICAgICAgICBzZWxmLl9kcml2ZXIgPSBz
ZWxmLl9wb3J0LmNyZWF0ZV9kcml2ZXIoc2VsZi5fd29ya2VyX251bWJlcikKICAgICAgICAgICAg
IHNlbGYuX2RyaXZlci5zdGFydCgpCiAKICAgICBkZWYgX3N0YXJ0X3NlcnZlcnNfd2l0aF9sb2Nr
KHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmcucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weQppbmRleCAzNDg2
YzM0N2EyOTg1N2U2M2VkMmUyYzMzZDU3NTU2M2VmODZhNjAxLi43YTZhYWQxYTQzMTg5YWEwMGQy
ZTJkYjYxYTBkZjA0OWU3MTlmMGY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmlu
dGluZy5weQpAQCAtMTI2LDcgKzEyNiw2IEBAIGRlZiBwcmludF9vcHRpb25zKCk6CiAgICAgXQog
CiAKLQogZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJpbnRfb3B0aW9ucywgdmVyYm9zZSwgY2hp
bGRfcHJvY2Vzc2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgaXNfZnVsbHlfcGFyYWxsZWwp
OgogICAgICIiIlBhcnNlIHRoZSBvcHRpb25zIHByb3ZpZGVkIHRvIC0tcHJpbnQgYW5kIGRlZHVw
IGFuZCByYW5rIHRoZW0uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50
aW5nX3VuaXR0ZXN0LnB5CmluZGV4IDlhMGY0ZWVhMjA4ZDIxY2Y4OGVmOGQ1ZWVhZjE0ODNhNTEx
NjE4ZTMuLjI3YTZhMjliZTVjOWE3YTNmMDczZjAwZTYzMGM1YjA0NTI3NmRiYzAgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC03
OCw4ICs3OCw5IEBAIGNsYXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25zKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wdGlvbnMgaXMgbm90IE5vbmUpCiAKICAgICBk
ZWYgdGVzdF9wYXJzZV9wcmludF9vcHRpb25zKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9zd2l0
Y2hlcyhhcmdzLCB2ZXJib3NlLCBjaGlsZF9wcm9jZXNzZXMsIGlzX2Z1bGx5X3BhcmFsbGVsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9zd2l0Y2hlc19zdHIpOgorICAgICAg
ICBkZWYgdGVzdF9zd2l0Y2hlcyhhcmdzLCBleHBlY3RlZF9zd2l0Y2hlc19zdHIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UsIGNoaWxkX3Byb2Nlc3Nlcz0xLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpc19mdWxseV9wYXJhbGxlbD1GYWxzZSk6CiAgICAgICAg
ICAgICBvcHRpb25zLCBhcmdzID0gZ2V0X29wdGlvbnMoYXJncykKICAgICAgICAgICAgIGlmIGV4
cGVjdGVkX3N3aXRjaGVzX3N0cjoKICAgICAgICAgICAgICAgICBleHBlY3RlZF9zd2l0Y2hlcyA9
IHNldChleHBlY3RlZF9zd2l0Y2hlc19zdHIuc3BsaXQoJywnKSkKQEAgLTkyLDI4ICs5MywyMyBA
QCBjbGFzcyBUZXN0VXRpbGl0eUZ1bmN0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3N3aXRjaGVzLCBzd2l0Y2hlcykKIAogICAg
ICAgICAjIHRlc3QgdGhhdCB3ZSBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNldCBvZiBzd2l0Y2hl
cwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFtdLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKKyAgICAgICAgdGVzdF9zd2l0Y2hl
cyhbXSwgcHJpbnRpbmcuUFJJTlRfREVGQVVMVCkKIAogICAgICAgICAjIHRlc3QgdGhhdCB2ZXJi
b3NlIGRlZmF1bHRzIHRvIGV2ZXJ5dGhpbmcKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgVHJ1
ZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgcHJpbnRpbmcuUFJJTlRfRVZFUllU
SElORykKKyAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElO
RywgdmVyYm9zZT1UcnVlKQogCiAgICAgICAgICMgdGVzdCB0aGF0IC0tcHJpbnQgZGVmYXVsdCBk
b2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmlu
dCcsICdkZWZhdWx0J10sIEZhbHNlLCAxLCBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBw
cmludGluZy5QUklOVF9ERUZBVUxUKQorICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcs
ICdkZWZhdWx0J10sIHByaW50aW5nLlBSSU5UX0RFRkFVTFQpCiAKICAgICAgICAgIyB0ZXN0IHRo
YXQgLS1wcmludCBub3RoaW5nIGRvZXMgd2hhdCBpdCdzIHN1cHBvc2VkIHRvCi0gICAgICAgIHRl
c3Rfc3dpdGNoZXMoWyctLXByaW50JywgJ25vdGhpbmcnXSwgRmFsc2UsIDEsIEZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMoWyctLXByaW50
JywgJ25vdGhpbmcnXSwgTm9uZSkKIAogICAgICAgICAjIHRlc3QgdGhhdCAtLXByaW50IGV2ZXJ5
dGhpbmcgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhb
Jy0tcHJpbnQnLCAnZXZlcnl0aGluZyddLCBGYWxzZSwgMSwgRmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgcHJpbnRpbmcuUFJJTlRfRVZFUllUSElORykKKyAgICAgICAgdGVzdF9zd2l0Y2hl
cyhbJy0tcHJpbnQnLCAnZXZlcnl0aGluZyddLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HKQog
CiAgICAgICAgICMgdGhpcyB0ZXN0cyB0aGF0ICctLXByaW50IFgnIG92ZXJyaWRlcyAnLS12ZXJi
b3NlJwotICAgICAgICB0ZXN0X3N3aXRjaGVzKFsnLS1wcmludCcsICdhY3R1YWwnXSwgVHJ1ZSwg
MSwgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgJ2FjdHVhbCcpCisgICAgICAgIHRlc3Rf
c3dpdGNoZXMoWyctLXByaW50JywgJ2FjdHVhbCddLCAnYWN0dWFsJywgdmVyYm9zZT1UcnVlKQor
CiAKIAogY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpp
bmRleCAzZmIwZDhlYzc2NzdmYzUzYmRhYWQxY2YzMTRlMzc2YTgyYmVmNGYyLi43NTczMThkMTM4
MDViYzdkYTlhNzdmMzgzMDJjNTUwMThlMGEyYmI2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0zODQsNiAr
Mzg0LDExIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIyB2YWxpZCB0ZXN0IGFuZCBi
eSBwcmludGluZy5weSB0byBkZXRlcm1pbmUgaWYgYmFzZWxpbmVzIGV4aXN0LgogICAgICAgICBy
ZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMocGF0aCkKIAorICAgIGRlZiBkcml2ZXJfY21k
X2xpbmUoc2VsZik6CisgICAgICAgICIiIlByaW50cyB0aGUgRFJUIGNvbW1hbmQgbGluZSB0aGF0
IHdpbGwgYmUgdXNlZC4iIiIKKyAgICAgICAgZHJpdmVyID0gc2VsZi5jcmVhdGVfZHJpdmVyKDAp
CisgICAgICAgIHJldHVybiBkcml2ZXIuY21kX2xpbmUoKQorCiAgICAgZGVmIHVwZGF0ZV9iYXNl
bGluZShzZWxmLCBwYXRoLCBkYXRhLCBlbmNvZGluZyk6CiAgICAgICAgICIiIlVwZGF0ZXMgdGhl
IGJhc2VsaW5lIGZvciBhIHRlc3QuCiAKQEAgLTUxMSw3ICs1MTYsNyBAQCBjbGFzcyBQb3J0KG9i
amVjdCk6CiAgICAgICAgIHJlc3VsdHNfZmlsZW5hbWUgaW4gYSB1c2VycycgYnJvd3Nlci4iIiIK
ICAgICAgICAgcmV0dXJuIHNlbGYuX3VzZXIub3Blbl91cmwocmVzdWx0c19maWxlbmFtZSkKIAot
ICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgorICAgIGRl
ZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgogICAgICAgICAiIiJSZXR1cm4g
YSBuZXdseSBjcmVhdGVkIGJhc2UuRHJpdmVyIHN1YmNsYXNzIGZvciBzdGFydGluZy9zdG9wcGlu
ZwogICAgICAgICB0aGUgdGVzdCBkcml2ZXIuIiIiCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IoJ1BvcnQuY3JlYXRlX2RyaXZlcicpCkBAIC03NDEsNyArNzQ2LDcgQEAgY2xhc3Mg
UG9ydChvYmplY3QpOgogCiAgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmLCBjb25maWd1cmF0
aW9uPU5vbmUpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gdGhlIHRlc3Qg
ZHJpdmVyIChEdW1wUmVuZGVyVHJlZSkuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IoJ1BvcnQucGF0aF90b19kcml2ZXInKQorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yKCdQb3J0Ll9wYXRoX3RvX2RyaXZlcicpCiAKICAgICBkZWYgX3BhdGhfdG9fd2ViY29y
ZV9saWJyYXJ5KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gYSBi
dWlsdCBjb3B5IG9mIFdlYkNvcmUuIiIiCkBAIC04MDQsMTkgKzgwOSwxNCBAQCBjbGFzcyBQb3J0
KG9iamVjdCk6CiBjbGFzcyBEcml2ZXI6CiAgICAgIiIiQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0
aGUgRHVtcFJlbmRlclRyZWUgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIHBuZ19wYXRoLCBvcHRpb25zLCBleGVjdXRpdmUpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0LCB3b3JrZXJfbnVtYmVyKToKICAgICAgICAgIiIiSW5pdGlhbGl6ZSBhIERyaXZl
ciB0byBzdWJzZXF1ZW50bHkgcnVuIHRlc3RzLgogCiAgICAgICAgIFR5cGljYWxseSB0aGlzIHJv
dXRpbmUgd2lsbCBzcGF3biBEdW1wUmVuZGVyVHJlZSBpbiBhIGNvbmZpZwogICAgICAgICByZWFk
eSBmb3Igc3Vic2VxdWVudCBpbnB1dC4KIAogICAgICAgICBwb3J0IC0gcmVmZXJlbmNlIGJhY2sg
dG8gdGhlIHBvcnQgb2JqZWN0LgotICAgICAgICBwbmdfcGF0aCAtIGFuIGFic29sdXRlIHBhdGgg
Zm9yIHRoZSBkcml2ZXIgdG8gd3JpdGUgYW55IGltYWdlCi0gICAgICAgICAgICBkYXRhIGZvciBh
IHRlc3QgKGFzIGEgUE5HKS4gSWYgbm8gcGF0aCBpcyBwcm92aWRlZCwgdGhhdAotICAgICAgICAg
ICAgaW5kaWNhdGVzIHRoYXQgcGl4ZWwgdGVzdCByZXN1bHRzIHdpbGwgbm90IGJlIGNoZWNrZWQu
Ci0gICAgICAgIG9wdGlvbnMgLSBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9w
dHBhcnNlCi0gICAgICAgIGV4ZWN1dGl2ZSAtIHJlZmVyZW5jZSB0byB0aGUgcHJvY2Vzcy13aWRl
IEV4ZWN1dGl2ZSBvYmplY3QKLQorICAgICAgICB3b3JrZXJfbnVtYmVyIC0gaWRlbnRpZmllciBm
b3IgYSBwYXJ0aWN1bGFyIHdvcmtlci9kcml2ZXIgaW5zdGFuY2UKICAgICAgICAgIiIiCiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ0RyaXZlci5fX2luaXRfXycpCiAKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFz
ZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZV91bml0dGVzdC5weQppbmRleCAyMjcwOWVhYmRmODJmYjg4NDk1NGZkYjlhZDVm
NjNmOTdhOGM2ZDAwLi44ZDU4NmUzNTRlNDJmMDM5M2M2Yzk2ZmJiZTEwNzYwYmQzNzE4NWVlIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Jhc2VfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CkBAIC0yNTgsNyArMjU4LDcgQEAgY2xhc3Mg
VmlydHVhbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFZpcnR1
YWwocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFs
KHBvcnQuY2hlY2tfYnVpbGQsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0
LmNoZWNrX2ltYWdlX2RpZmYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmNyZWF0
ZV9kcml2ZXIsIE5vbmUsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmNy
ZWF0ZV9kcml2ZXIsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LmRpZmZfaW1h
Z2UsIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnBhdGhfdG9f
dGVzdF9leHBlY3RhdGlvbnNfZmlsZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQu
dGVzdF9wbGF0Zm9ybV9uYW1lKQpAQCAtMjgyLDcgKzI4Miw3IEBAIGNsYXNzIFZpcnR1YWxUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3ZpcnR1YWxfZHJpdmVyX21ldGhv
ZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwg
YmFzZS5Ecml2ZXIsIGJhc2UuUG9ydCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwg
Tm9uZSwgTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCkKIAogICAgIGRlZiB0ZXN0
X3ZpcnR1YWxfZHJpdmVyX21ldGhvZHMoc2VsZik6CiAgICAgICAgIGNsYXNzIFZpcnR1YWxEcml2
ZXIoYmFzZS5Ecml2ZXIpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggMjVjMThjYjIxNmY3M2Q2
YTYzYmRjOWNkMzhkODI0NDlhZGJiYTA4Yy4uOGZlNjg1YWYwNjY5ZWIzNGFmZThmOTRjNTZmZTNm
ZjNjZDk1MzZjNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC00NCw3ICs0NCw2IEBAIGltcG9y
dCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUKIGltcG9ydCB3ZWJicm93c2VyCiAKLWZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZQogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLnBhdGggaW1wb3J0IGN5Z3BhdGgKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rfb3V0cHV0CkBAIC0x
NzYsNiArMTc1LDggQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJl
dHVybiByZXN1bHQKIAogICAgIGRlZiBkcml2ZXJfbmFtZShzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy51c2VfZHJ0OgorICAgICAgICAgICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIK
ICAgICAgICAgcmV0dXJuICJ0ZXN0X3NoZWxsIgogCiAgICAgZGVmIHBhdGhfZnJvbV9jaHJvbWl1
bV9iYXNlKHNlbGYsICpjb21wcyk6CkBAIC0yMTMsMTMgKzIxNCwxMSBAQCBjbGFzcyBDaHJvbWl1
bVBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoY2FjaGVkaXIpOgog
ICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShjYWNoZWRpcikKIAotICAgIGRlZiBjcmVhdGVfZHJp
dmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpOgorICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNl
bGYsIHdvcmtlcl9udW1iZXIpOgogICAgICAgICAiIiJTdGFydHMgYSBuZXcgRHJpdmVyIGFuZCBy
ZXR1cm5zIGEgaGFuZGxlIHRvIGl0LiIiIgotICAgICAgICBpZiBvcHRpb25zLnVzZV9kcnQgYW5k
IHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKLSAgICAgICAgICAgIHJldHVybiB3ZWJraXQuV2Vi
S2l0RHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleGVjdXRpdmU9c2VsZi5fZXhlY3V0aXZlKQotICAgICAgICBy
ZXR1cm4gQ2hyb21pdW1Ecml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGl2ZT1zZWxmLl9leGVjdXRpdmUpCisgICAgICAg
IGlmIHNlbGYuZ2V0X29wdGlvbigndXNlX2RydCcpIGFuZCBzeXMucGxhdGZvcm0gPT0gJ2Rhcndp
bic6CisgICAgICAgICAgICByZXR1cm4gd2Via2l0LldlYktpdERyaXZlcihzZWxmLCB3b3JrZXJf
bnVtYmVyKQorICAgICAgICByZXR1cm4gQ2hyb21pdW1Ecml2ZXIoc2VsZiwgd29ya2VyX251bWJl
cikKIAogICAgIGRlZiBzdGFydF9oZWxwZXIoc2VsZik6CiAgICAgICAgIGhlbHBlcl9wYXRoID0g
c2VsZi5fcGF0aF90b19oZWxwZXIoKQpAQCAtMzYwLDQ4ICszNTksNTAgQEAgY2xhc3MgQ2hyb21p
dW1Qb3J0KGJhc2UuUG9ydCk6CiBjbGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAg
ICAgIiIiQWJzdHJhY3QgaW50ZXJmYWNlIGZvciB0ZXN0X3NoZWxsLiIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnQsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1FeGVjdXRp
dmUoKSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgogICAg
ICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwot
ICAgICAgICBzZWxmLl9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAotICAgICAgICBzZWxmLl9leGVj
dXRpdmUgPSBleGVjdXRpdmUKLQotICAgIGRlZiBfZHJpdmVyX2FyZ3Moc2VsZik6Ci0gICAgICAg
IGRyaXZlcl9hcmdzID0gW10KLSAgICAgICAgaWYgc2VsZi5faW1hZ2VfcGF0aDoKKyAgICAgICAg
c2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKKyAgICAgICAgc2VsZi5faW1hZ2Vf
cGF0aCA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0
cycpOgorICAgICAgICAgICAgc2VsZi5faW1hZ2VfcGF0aCA9IG9zLnBhdGguam9pbigKKyAgICAg
ICAgICAgICAgICBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3Jlc3VsdHNfZGlyZWN0b3J5JyksCisg
ICAgICAgICAgICAgICAgJ3BuZ19yZXN1bHQlcy5wbmcnICUgc2VsZi5fd29ya2VyX251bWJlcikK
KworICAgIGRlZiBjbWRfbGluZShzZWxmKToKKyAgICAgICAgY21kID0gc2VsZi5fY29tbWFuZF93
cmFwcGVyKHNlbGYuX3BvcnQuZ2V0X29wdGlvbignd3JhcHBlcicpKQorICAgICAgICBjbWQuYXBw
ZW5kKHNlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCkpCisgICAgICAgIGlmIHNlbGYuX3BvcnQu
Z2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKToKICAgICAgICAgICAgICMgU2VlIG5vdGUgYWJvdmUg
aW4gZGlmZl9pbWFnZSgpIGZvciB3aHkgd2UgbmVlZCBfY29udmVydF9wYXRoKCkuCi0gICAgICAg
ICAgICBkcml2ZXJfYXJncy5hcHBlbmQoIi0tcGl4ZWwtdGVzdHM9IiArCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5fY29udmVydF9wYXRoKHNlbGYuX2ltYWdlX3Bh
dGgpKQorICAgICAgICAgICAgY21kLmFwcGVuZCgiLS1waXhlbC10ZXN0cz0iICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcG9ydC5fY29udmVydF9wYXRoKHNlbGYuX2ltYWdlX3BhdGgp
KQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigndXNlX2RydCcpOgotICAgICAg
ICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLXRlc3Qtc2hlbGwnKQorICAgICAgICAgICAgY21k
LmFwcGVuZCgnLS10ZXN0LXNoZWxsJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRyaXZl
cl9hcmdzLmFwcGVuZCgnLS1sYXlvdXQtdGVzdHMnKQorICAgICAgICAgICAgY21kLmFwcGVuZCgn
LS1sYXlvdXQtdGVzdHMnKQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignc3Rh
cnR1cF9kaWFsb2cnKToKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS10ZXN0c2hl
bGwtc3RhcnR1cC1kaWFsb2cnKQorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS10ZXN0c2hlbGwt
c3RhcnR1cC1kaWFsb2cnKQogCiAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignZ3Bf
ZmF1bHRfZXJyb3JfYm94Jyk6Ci0gICAgICAgICAgICBkcml2ZXJfYXJncy5hcHBlbmQoJy0tZ3At
ZmF1bHQtZXJyb3ItYm94JykKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tZ3AtZmF1bHQtZXJy
b3ItYm94JykKIAotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmpzX2ZsYWdzIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWpzLWZsYWdzPSInICsgc2VsZi5f
b3B0aW9ucy5qc19mbGFncyArICciJykKKyAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9u
KCdqc19mbGFncycpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1qcy1m
bGFncz0iJyArIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignanNfZmxhZ3MnKSArICciJykKIAotICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLm11bHRpcGxlX2xvYWRzIGlzIG5vdCBOb25lIGFuZCBzZWxm
Ll9vcHRpb25zLm11bHRpcGxlX2xvYWRzID4gMDoKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFw
cGVuZCgnLS1tdWx0aXBsZS1sb2Fkcz0nICsgc3RyKHNlbGYuX29wdGlvbnMubXVsdGlwbGVfbG9h
ZHMpKQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ211bHRpcGxlX2xvYWRzJykg
PiAwOgorICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1tdWx0aXBsZS1sb2Fkcz0nICsgc3RyKHNl
bGYuX3BvcnQuZ2V0X29wdGlvbignbXVsdGlwbGVfbG9hZHMnKSkpCiAKICAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGluZycpOgotICAgICAgICAg
ICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycp
CisgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGlu
ZycpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9j
YW52YXMnKToKLSAgICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS1lbmFibGUtYWNjZWxl
cmF0ZWQtMmQtY2FudmFzJykKLSAgICAgICAgcmV0dXJuIGRyaXZlcl9hcmdzCisgICAgICAgICAg
ICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnKQorICAgICAgICBy
ZXR1cm4gY21kCiAKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFNob3Vs
ZCBiZSBhbiBlcnJvciB0byBjYWxsIHRoaXMgbWV0aG9kIHR3aWNlLgotICAgICAgICBjbWQgPSBz
ZWxmLl9jb21tYW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCi0g
ICAgICAgIGNtZC5hcHBlbmQoc2VsZi5fcG9ydC5fcGF0aF90b19kcml2ZXIoKSkKLSAgICAgICAg
Y21kICs9IHNlbGYuX2RyaXZlcl9hcmdzKCkKKyAgICAgICAgY21kID0gc2VsZi5jbWRfbGluZSgp
CiAKICAgICAgICAgIyBXZSBuZWVkIHRvIHBhc3MgY2xvc2VfZmRzPVRydWUgdG8gd29yayBhcm91
bmQgUHl0aG9uIGJ1ZyAjMjMyMAogICAgICAgICAjIChvdGhlcndpc2Ugd2UgY2FuIGhhbmcgd2hl
biB3ZSBraWxsIER1bXBSZW5kZXJUcmVlIHdoZW4gd2UgYXJlIHJ1bm5pbmcKQEAgLTU1MSw0ICs1
NTIsNCBAQCBjbGFzcyBDaHJvbWl1bURyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgX2xv
Zy53YXJuaW5nKCdzdG9wcGluZyB0ZXN0IGRyaXZlciB0aW1lZCBvdXQsICcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdraWxsaW5nIGl0JykKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl9wcm9jLnBpZCkKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcG9ydC5fZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyhzZWxmLl9wcm9jLnBp
ZCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CmluZGV4IDkyYTMxZmJlNDYy
OTNhOWJjNTJjNWM1OTQzNzE0MGFkZjczMGY4YTAuLjUzOTY1MjIwZmYyYTNhZDk0MGQxZmMxOTAz
MmEzY2E5YzA4OTRmNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5weQpA
QCAtNDIsNyArNDIsOCBAQCBjbGFzcyBDaHJvbWl1bURyaXZlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBtb2NrX3BvcnQgPSBNb2NrKCkK
LSAgICAgICAgc2VsZi5kcml2ZXIgPSBjaHJvbWl1bS5DaHJvbWl1bURyaXZlcihtb2NrX3BvcnQs
IGltYWdlX3BhdGg9Tm9uZSwgb3B0aW9ucz1Ob25lKQorICAgICAgICBtb2NrX3BvcnQuZ2V0X29w
dGlvbiA9IGxhbWJkYSBvcHRpb25fbmFtZTogJycKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBjaHJv
bWl1bS5DaHJvbWl1bURyaXZlcihtb2NrX3BvcnQsIHdvcmtlcl9udW1iZXI9MCkKIAogICAgIGRl
ZiB0ZXN0X3Rlc3Rfc2hlbGxfY29tbWFuZChzZWxmKToKICAgICAgICAgZXhwZWN0ZWRfY29tbWFu
ZCA9ICJ0ZXN0Lmh0bWwgMiBjaGVja3N1bVxuIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcnlydW4ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQppbmRleCBkNDQ0ZGFi
MTIzMTQyZGRlMTNkZTBhNzExZjYzMzE5ZGQ2MTY1MDMyLi40ZWQzNGU2NDg4ZWYyODQ3NTBjNjlm
ZDA1NGQwMzEwMGJlZWQ1YjZmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQpAQCAtOTUsMTggKzk1LDE5IEBA
IGNsYXNzIERyeVJ1blBvcnQob2JqZWN0KToKICAgICBkZWYgc3RvcF93ZWJzb2NrZXRfc2VydmVy
KHNlbGYpOgogICAgICAgICBwYXNzCiAKLSAgICBkZWYgY3JlYXRlX2RyaXZlcihzZWxmLCBpbWFn
ZV9wYXRoLCBvcHRpb25zKToKLSAgICAgICAgcmV0dXJuIERyeXJ1bkRyaXZlcihzZWxmLCBpbWFn
ZV9wYXRoLCBvcHRpb25zLCBleGVjdXRpdmU9Tm9uZSkKKyAgICBkZWYgY3JlYXRlX2RyaXZlcihz
ZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgcmV0dXJuIERyeXJ1bkRyaXZlcihzZWxmLCB3
b3JrZXJfbnVtYmVyKQogCiAKIGNsYXNzIERyeXJ1bkRyaXZlcihiYXNlLkRyaXZlcik6CiAgICAg
IiIiRHJ5cnVuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEdW1wUmVuZGVyVHJlZSAvIERyaXZlciBp
bnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwg
b3B0aW9ucywgZXhlY3V0aXZlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgd29ya2Vy
X251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0gICAgICAgIHNlbGYuX2ltYWdl
X3BhdGggPSBpbWFnZV9wYXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZQot
ICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdHNfZGlyID0gTm9uZQorICAgICAgICBzZWxmLl93b3Jr
ZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgorCisgICAgZGVmIGNtZF9saW5lKHNlbGYpOgorICAg
ICAgICByZXR1cm4gWydOb25lJ10KIAogICAgIGRlZiBwb2xsKHNlbGYpOgogICAgICAgICByZXR1
cm4gTm9uZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IDA0YWRhNTAwMGUzYjM1
MzgyYzNjOTYwOTIyZTI4YzU1M2MzZjQwNGUuLmM0YjM2YWNkOTA3OWZkMmZiZTkwOTAxMjAyZDVm
OWMwMjVlMzg3ZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTM3LDYgKzM3
LDggQEAgbW9ja19vcHRpb25zID0gbW9ja3Rvb2wuTW9ja09wdGlvbnMocmVzdWx0c19kaXJlY3Rv
cnk9J2xheW91dC10ZXN0LXJlc3VsdHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlX2FwYWNoZT1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uZmlndXJhdGlvbj0nUmVsZWFzZScpCiAKKyMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVz
ZWQgZm9yIGFsbCBwb3J0cywgbm90IGp1c3QgV2ViS2l0IE1hYy4gU2VlCisjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA0MyAuCiAKIGNsYXNzIFBvcnRUZXN0Q2Fz
ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdHMgdGhlIFdlYktpdCBwb3J0IGltcGxl
bWVudGF0aW9uLiIiIgpAQCAtNDQsNiArNDYsMTIgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIiIiT3ZlcnJpZGUgaW4gc3ViY2xhc3MuIiIiCiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCisgICAgZGVmIHRlc3RfZHJpdmVyX2Nt
ZF9saW5lKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBp
ZiBub3QgcG9ydDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLmFzc2VydFRydWUo
bGVuKHBvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQorCiAgICAgZGVmIHRlc3RfaHR0cF9zZXJ2ZXIo
c2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIGlmIG5vdCBw
b3J0OgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CmluZGV4IGRkOGY2MThhOGVhOWVjZGQyZjYxNTE0YWUwYzAzYTE2YzFh
NjZjNTIuLjhlMjdmMzVjMWMxYWQ4YWQ3YjMwOTQxZDFjYjI0NjNmYWRlOWQ2ZjggMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKQEAgLTIyNiw4ICsyMjYsOCBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAg
IGRlZiBzZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGNyZWF0
ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6Ci0gICAgICAgIHJldHVybiBUZXN0
RHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQorICAgIGRl
ZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICByZXR1cm4gVGVz
dERyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCiAgICAgZGVmIHN0YXJ0X2h0dHBfc2VydmVy
KHNlbGYpOgogICAgICAgICBwYXNzCkBAIC0yODEsMTEgKzI4MSwxMSBAQCBXT05URklYIFNLSVAg
OiBmYWlsdXJlcy9leHBlY3RlZC9leGNlcHRpb24uaHRtbCA9IENSQVNICiBjbGFzcyBUZXN0RHJp
dmVyKGJhc2UuRHJpdmVyKToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucywgZXhlY3V0aXZlKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcG9ydCwgd29ya2VyX251bWJlcik6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0g
ICAgICAgIHNlbGYuX2ltYWdlX3BhdGggPSBpbWFnZV9wYXRoCi0gICAgICAgIHNlbGYuX2V4ZWN1
dGl2ZSA9IGV4ZWN1dGl2ZQotICAgICAgICBzZWxmLl9pbWFnZV93cml0dGVuID0gRmFsc2UKKwor
ICAgIGRlZiBjbWRfbGluZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFsnTm9uZSddCiAKICAgICBk
ZWYgcG9sbChzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXgg
ZjVmOTI1MjY3MDMxY2VjYjM5NDA1NWY4MmQ1OTBjMDU0YTkwODMzZC4uMDliZTgzM2Q3NTJmMDJm
ZGI3OTQ0NjYzYjkwZTU1ZWE3MzBjZTFhMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQ2LDggKzQ2
LDYgQEAgaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCBzaHV0aWwKIAot
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCi0K
IGltcG9ydCB3ZWJraXRweS5jb21tb24uc3lzdGVtLm9zcGF0aCBhcyBvc3BhdGgKIGltcG9ydCB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UudGVzdF9vdXRwdXQgYXMgdGVzdF9v
dXRwdXQKIGltcG9ydCB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5iYXNlIGFzIGJhc2UKQEAg
LTE4NSw5ICsxODMsOCBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICMg
VGhpcyBwb3J0IGRvZXNuJ3QgcmVxdWlyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbi4KICAg
ICAgICAgcGFzcwogCi0gICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0
aW9ucyk6Ci0gICAgICAgIHJldHVybiBXZWJLaXREcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0
aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpdmU9c2VsZi5fZXhlY3V0
aXZlKQorICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICByZXR1cm4gV2ViS2l0RHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXIpCiAKICAgICBkZWYgdGVz
dF9iYXNlX3BsYXRmb3JtX25hbWVzKHNlbGYpOgogICAgICAgICAjIEF0IHRoZSBtb21lbnQgd2Ug
ZG9uJ3QgdXNlIHRlc3QgcGxhdGZvcm0gbmFtZXMsIGJ1dCB3ZSBoYXZlCkBAIC0zODksNDAgKzM4
NiwzNiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiBjbGFzcyBXZWJLaXREcml2ZXIo
YmFzZS5Ecml2ZXIpOgogICAgICIiIldlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJl
bmRlclRyZWUgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGlt
YWdlX3BhdGgsIG9wdGlvbnMsIGV4ZWN1dGl2ZT1FeGVjdXRpdmUoKSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnQsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyID0gd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBz
ZWxmLl9pbWFnZV9wYXRoID0gaW1hZ2VfcGF0aAotICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBl
eGVjdXRpdmUKICAgICAgICAgc2VsZi5fZHJpdmVyX3RlbXBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1w
KHByZWZpeD0nRHVtcFJlbmRlclRyZWUtJykKIAogICAgIGRlZiBfX2RlbF9fKHNlbGYpOgogICAg
ICAgICBzaHV0aWwucm10cmVlKHNlbGYuX2RyaXZlcl90ZW1wZGlyKQogCi0gICAgZGVmIF9kcml2
ZXJfYXJncyhzZWxmKToKLSAgICAgICAgZHJpdmVyX2FyZ3MgPSBbXQorICAgIGRlZiBjbWRfbGlu
ZShzZWxmKToKKyAgICAgICAgY21kID0gc2VsZi5fY29tbWFuZF93cmFwcGVyKHNlbGYuX3BvcnQu
Z2V0X29wdGlvbignd3JhcHBlcicpKQorICAgICAgICBjbWQgKz0gW3NlbGYuX3BvcnQuX3BhdGhf
dG9fZHJpdmVyKCksICctJ10KIAotICAgICAgICBpZiBzZWxmLl9pbWFnZV9wYXRoOgotICAgICAg
ICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCctLXBpeGVsLXRlc3RzJykKKyAgICAgICAgaWYgc2Vs
Zi5fcG9ydC5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpOgorICAgICAgICAgICAgY21kLmFwcGVu
ZCgnLS1waXhlbC10ZXN0cycpCiAKICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd1
c2VfZHJ0Jyk6CiAgICAgICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJh
dGVkX2NvbXBvc2l0aW5nJyk6Ci0gICAgICAgICAgICAgICAgZHJpdmVyX2FyZ3MuYXBwZW5kKCct
LWVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycpCisgICAgICAgICAgICAgICAgY21kLmFw
cGVuZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcnKQogCiAgICAgICAgICAgICBp
ZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpOgotICAgICAg
ICAgICAgICAgIGRyaXZlcl9hcmdzLmFwcGVuZCgnLS1lbmFibGUtYWNjZWxlcmF0ZWQtMmQtY2Fu
dmFzJykKKyAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLWVuYWJsZS1hY2NlbGVyYXRlZC0y
ZC1jYW52YXMnKQogCi0gICAgICAgIHJldHVybiBkcml2ZXJfYXJncworICAgICAgICByZXR1cm4g
Y21kCiAKICAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBzZWxmLl9jb21t
YW5kX3dyYXBwZXIoc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCd3cmFwcGVyJykpCi0gICAgICAgIGNv
bW1hbmQgKz0gW3NlbGYuX3BvcnQuX3BhdGhfdG9fZHJpdmVyKCksICctJ10KLSAgICAgICAgY29t
bWFuZCArPSBzZWxmLl9kcml2ZXJfYXJncygpCi0KICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxm
Ll9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcigpCiAgICAgICAgIGVudmlyb25tZW50WydE
WUxEX0ZSQU1FV09SS19QQVRIJ10gPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKICAgICAgICAg
ZW52aXJvbm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAnXSA9IHNlbGYuX2RyaXZlcl90ZW1wZGly
CiAgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0gc2VydmVyX3Byb2Nlc3MuU2VydmVyUHJv
Y2VzcyhzZWxmLl9wb3J0LAotICAgICAgICAgICAgIkR1bXBSZW5kZXJUcmVlIiwgY29tbWFuZCwg
ZW52aXJvbm1lbnQpCisgICAgICAgICAgICAiRHVtcFJlbmRlclRyZWUiLCBzZWxmLmNtZF9saW5l
KCksIGVudmlyb25tZW50KQogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLl9zZXJ2ZXJfcHJvY2Vzcy5wb2xsKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4
IGQ3OGU0NTI5OWZkNGVkMmYxM2MxNWM0ZWUwOWMzYWUyMzRkNzM5ZmUuLjY0M2UyMDQ5M2M4YTNi
ZjQwYWIwOGVmNDRiOWRlNzA5MTFiNDNlNzkgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpA
QCAtODk3LDYgKzg5Nyw4IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICBwLnByaW50
X2NvbmZpZygiUnVubmluZyAlcyAlc3MgaW4gcGFyYWxsZWwiICUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkpKQorICAgICAgICBwLnByaW50
X2NvbmZpZygnQ29tbWFuZCBsaW5lOiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgJyAnLmpv
aW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCiAgICAgICAgIHAucHJpbnRfY29uZmln
KCJXb3JrZXIgbW9kZWw6ICVzIiAlIHNlbGYuX29wdGlvbnMud29ya2VyX21vZGVsKQogICAgICAg
ICBwLnByaW50X2NvbmZpZygiIikKIApAQCAtMTU3MSw3ICsxNTczLDcgQEAgZGVmIHBhcnNlX2Fy
Z3MoYXJncz1Ob25lKToKICAgICAgICAgIyAgICAgIE51bWJlciBvZiB0aW1lcyB0byBydW4gdGhl
IHNldCBvZiB0ZXN0cyAoZS5nLiBBQkNBQkNBQkMpCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCItLXByaW50LWxhc3QtZmFpbHVyZXMiLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAg
ICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0iUHJpbnQgdGhlIHRlc3RzIGluIHRoZSBsYXN0IHJ1
biB0aGF0ICIKLSAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3IgcGFzc2Vz
KS4iKSwKKyAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCBmYWlsdXJlcyAob3IgcGFzc2VzKSBh
bmQgdGhlbiBleGl0LiIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1yZXRlc3Qt
bGFzdC1mYWlsdXJlcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICBkZWZhdWx0
PUZhbHNlLCBoZWxwPSJyZS10ZXN0IHRoZSB0ZXN0cyBpbiB0aGUgbGFzdCBydW4gdGhhdCAiCiAg
ICAgICAgICAgICAiaGFkIHVuZXhwZWN0ZWQgZmFpbHVyZXMgKG9yIHBhc3NlcykuIiksCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCBiM2M4ODYxMDNjOGFi
NzE1YjM3Njk1YmRiNjUwNjFmOWRhOWQ2ZDQ4Li4yMGE0YWMwZWFkYTc5NTY1MDU5OWY5MTAwYjFh
MzBmMTNmZWE2MjcwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3Qu
cHkKQEAgLTEzOSw4ICsxMzksOCBAQCBkZWYgZ2V0X3Rlc3RzX3J1bihleHRyYV9hcmdzPU5vbmUs
IHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVuX2JhdGNoZXM9RmFsc2UpOgogICAgIHRlc3Rf
YmF0Y2hlcyA9IFtdCiAKICAgICBjbGFzcyBSZWNvcmRpbmdUZXN0RHJpdmVyKFRlc3REcml2ZXIp
OgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6
Ci0gICAgICAgICAgICBUZXN0RHJpdmVyLl9faW5pdF9fKHNlbGYsIHBvcnQsIGltYWdlX3BhdGgs
IG9wdGlvbnMsIGV4ZWN1dGl2ZT1Ob25lKQorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCwgd29ya2VyX251bWJlcik6CisgICAgICAgICAgICBUZXN0RHJpdmVyLl9faW5pdF9fKHNlbGYs
IHBvcnQsIHdvcmtlcl9udW1iZXIpCiAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X3Rlc3RfYmF0
Y2ggPSBOb25lCiAKICAgICAgICAgZGVmIHBvbGwoc2VsZik6CkBAIC0xNTksOCArMTU5LDggQEAg
ZGVmIGdldF90ZXN0c19ydW4oZXh0cmFfYXJncz1Ob25lLCB0ZXN0c19pbmNsdWRlZD1GYWxzZSwg
ZmxhdHRlbl9iYXRjaGVzPUZhbHNlKToKICAgICAgICAgICAgIHJldHVybiBUZXN0RHJpdmVyLnJ1
bl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpCiAKICAgICBjbGFzcyBSZWNvcmRpbmdUZXN0UG9ydChU
ZXN0UG9ydCk6Ci0gICAgICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9w
dGlvbnMpOgotICAgICAgICAgICAgcmV0dXJuIFJlY29yZGluZ1Rlc3REcml2ZXIoc2VsZiwgaW1h
Z2VfcGF0aCwgb3B0aW9ucykKKyAgICAgICAgZGVmIGNyZWF0ZV9kcml2ZXIoc2VsZiwgd29ya2Vy
X251bWJlcik6CisgICAgICAgICAgICByZXR1cm4gUmVjb3JkaW5nVGVzdERyaXZlcihzZWxmLCB3
b3JrZXJfbnVtYmVyKQogCiAgICAgcmVjb3JkaW5nX3BvcnQgPSBSZWNvcmRpbmdUZXN0UG9ydChv
cHRpb25zPW9wdGlvbnMsIHVzZXI9dXNlcikKICAgICBsb2dnaW5nX3J1bihleHRyYV9hcmdzPWFy
Z3MsIHBvcnRfb2JqPXJlY29yZGluZ19wb3J0LCB0ZXN0c19pbmNsdWRlZD1UcnVlKQo=
</data>
<flag name="review"
          id="65504"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>