<?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>55608</bug_id>
          
          <creation_ts>2011-03-02 13:26:40 -0800</creation_ts>
          <short_desc>rebaseline-chromium-webkit-tests doesn&apos;t work correctly with version-specific baselines</short_desc>
          <delta_ts>2011-04-01 12:30:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          <blocked>55191</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>koz</cc>
    
    <cc>levin</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>361033</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-02 13:26:40 -0800</bug_when>
    <thetext>Right now RCWT will put all of the baselines in chromium-mac, chromium-win, or chromium-linux. It may slightly screw up any baselines for Vista and Win7 as well, and doesn&apos;t handle Snow Leopard or Linux-x86_64 at all.

This should be fixed ASAP, otherwise not only can we not rebaseline the new bots, but even rebaselining the existing bots on Mac may be problematic due to the fallback path including a bunch of baselines in SL.

I should have a patch for this within 24 hours.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368006</commentid>
    <comment_count>1</comment_count>
      <attachid>85866</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-15 15:55:08 -0700</bug_when>
    <thetext>Created attachment 85866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368017</commentid>
    <comment_count>2</comment_count>
      <attachid>85869</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-15 16:10:29 -0700</bug_when>
    <thetext>Created attachment 85869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368026</commentid>
    <comment_count>3</comment_count>
      <attachid>85871</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-15 16:19:57 -0700</bug_when>
    <thetext>Created attachment 85871
fix missing s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368028</commentid>
    <comment_count>4</comment_count>
      <attachid>85872</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-15 16:29:35 -0700</bug_when>
    <thetext>Created attachment 85872
make all_platforms actually be a list</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376014</commentid>
    <comment_count>5</comment_count>
      <attachid>87458</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-29 21:05:01 -0700</bug_when>
    <thetext>Created attachment 87458
clean up mechanism for updating expectations file, make tests pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376016</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-29 21:06:04 -0700</bug_when>
    <thetext>Okay, this patch is now in the neighborhood of being right, but it&apos;s not all the way there yet. It still needs some more tests and I need to think through the logic of deleting the lines marked &quot;REBASELINE&quot; from the file a little better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376050</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-29 23:06:36 -0700</bug_when>
    <thetext>I don&apos;t understand why I need to write &quot;REBASELINE&quot; in the file at all.  Why can&apos;t it just look at the bots and give me a menu to choose from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376066</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-29 23:33:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I don&apos;t understand why I need to write &quot;REBASELINE&quot; in the file at all.  Why can&apos;t it just look at the bots and give me a menu to choose from?

The chromium bots run failing tests and mark them as failing in test_expectations.txt. So, there would be ~1000 tests to choose from. I agree we need a better syntax, but I think that&apos;s orthogonal to this patch. This patch is about making the current tool work right with fallback orders.

Perhaps in a separate patch we could add a flag for whether to look at the failing bots or test_expectations.txt.

The plan James and I had sketched out for &quot;webkit-patch rebaseline&quot; was that it would take either a list of tests as arguments or JSON if you wanted something more specific (e.g. rebaseline foo/bar.html on linux and foo/baz.html on win and linux). If no arguments are supplied, then it could look at the bots. Then we could have a GUI on the layout test dashboard that would generate this JSON and call out to a rebaseline bot, which would call webkit-patch rebaseline and post a patch to bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376074</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-29 23:47:55 -0700</bug_when>
    <thetext>&gt; The chromium bots run failing tests and mark them as failing in test_expectations.txt. So, there would be ~1000 tests to choose from. I agree we need a better syntax, but I think that&apos;s orthogonal to this patch. This patch is about making the current tool work right with fallback orders.

Yeah, of course.

&gt; Perhaps in a separate patch we could add a flag for whether to look at the failing bots or test_expectations.txt.

Sure.  I don&apos;t care about the 1000 tests that are in there.  I care about the ones that are making the bots red right now.

&gt; The plan James and I had sketched out for &quot;webkit-patch rebaseline&quot; was that it would take either a list of tests as arguments or JSON if you wanted something more specific (e.g. rebaseline foo/bar.html on linux and foo/baz.html on win and linux). If no arguments are supplied, then it could look at the bots. Then we could have a GUI on the layout test dashboard that would generate this JSON and call out to a rebaseline bot, which would call webkit-patch rebaseline and post a patch to bugzilla.

That could work.  Ideally, I want a screen with all the diffs (like the flakiness dashboard) and a big button that says &quot;these are all fine, please make this green with these expectations.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376842</commentid>
    <comment_count>10</comment_count>
      <attachid>87652</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 18:40:59 -0700</bug_when>
    <thetext>Created attachment 87652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376847</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-30 18:44:49 -0700</bug_when>
    <thetext>Okay, this patch should work &quot;correctly&quot; insofar as it will attempt to rebaseline all of the results on the canaries and update the baselines as specified in the file.

There are two gotchas:

1) The tool will no longer delete anything from the test_expectations.txt file.

2) The tool will not yet run all of the possible test configurations; in particular, it won&apos;t rebaseline both the GPU- and non-GPU results at once, which it probably should do to be safe.

The main problem is that without actually working through all of the different configurations, the tool can&apos;t easily know whether it is safe to delete lines in the file or not. The previous logic took a stab at it, but got it wrong at least as often at it got it right. 

These two gotchas should be fixed by the patch in bug 55191, which will depend on this fix and attempt to do a better, more comprehensive job. 

We likely will not want to land this patch without also landing that one, but I&apos;m splitting them into two to make the patches easier to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377592</commentid>
    <comment_count>12</comment_count>
      <attachid>87814</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 18:49:35 -0700</bug_when>
    <thetext>Created attachment 87814
ignore - wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377618</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-31 20:08:01 -0700</bug_when>
    <thetext>This bug made me sad today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377619</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-31 20:08:44 -0700</bug_when>
    <thetext>Is attachment 87652 meant to be marked obsolete, or does it need review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377622</commentid>
    <comment_count>15</comment_count>
      <attachid>87652</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 20:22:53 -0700</bug_when>
    <thetext>Comment on attachment 87652
Patch

it needs review. R+ this and the 55191 and happiness will be yours (hopefully!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377623</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 20:23:44 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 87652 [details])
&gt; it needs review. R+ this and the 55191 and happiness will be yours (hopefully!)

Or better, try the patches locally and let me know if you have any issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377624</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-03-31 20:24:10 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 87652 [details] [details])
&gt; &gt; it needs review. R+ this and the 55191 and happiness will be yours (hopefully!)
&gt; 
&gt; Or better, try the patches locally and let me know if you have any issues.

I haven&apos;t actually tried them with real-world rebaselines yet, but will be doing so tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377635</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-31 20:45:20 -0700</bug_when>
    <thetext>&gt; it needs review. R+ this and the 55191 and happiness will be yours (hopefully!)

Oh how you lure me with your siren song.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377638</commentid>
    <comment_count>19</comment_count>
      <attachid>87652</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-31 20:47:23 -0700</bug_when>
    <thetext>Comment on attachment 87652
Patch

So magical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377978</commentid>
    <comment_count>20</comment_count>
      <attachid>87894</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:15:45 -0700</bug_when>
    <thetext>Created attachment 87894
rebase to HEAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377980</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:18:55 -0700</bug_when>
    <thetext>Committed r82704: &lt;http://trac.webkit.org/changeset/82704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377984</commentid>
    <comment_count>22</comment_count>
      <attachid>87894</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-01 12:23:29 -0700</bug_when>
    <thetext>Comment on attachment 87894
rebase to HEAD

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

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests_unittest.py:258
&gt; +        #self.assertEqual(filesystem.files[&apos;/test.checkout/LayoutTests/platform/test/test_expectations.txt&apos;], &apos;&apos;)

Did you mean to check in with this line commented out?  Can we update it to the actual result?

&gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests_unittest.py:277
&gt; +        #self.assertEqual(filesystem.files[&apos;/test.checkout/LayoutTests/platform/test/test_expectations.txt&apos;], &apos;&apos;)

This too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377986</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-01 12:30:09 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 87894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87894&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests_unittest.py:258
&gt; &gt; +        #self.assertEqual(filesystem.files[&apos;/test.checkout/LayoutTests/platform/test/test_expectations.txt&apos;], &apos;&apos;)
&gt; 
&gt; Did you mean to check in with this line commented out?  Can we update it to the actual result?
&gt; 

Yes. In 55608 we stopped updating the test_expectations file altogether, but we resumed updating it in 55191. So I commented this out temporarily with the intent to uncomment in the next patch.

Then, when testing 55191, I realized that I had moved the updating of the test_expectations class out of Rebaseliner.run() altogether (it&apos;s now done in realMain), so this assert would never pass. So I deleted these lines completely prior to actually landing that patch.

The other unit tests do test that we update the file correctly, so I didn&apos;t think this particular assert was needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85866</attachid>
            <date>2011-03-15 15:55:08 -0700</date>
            <delta_ts>2011-03-15 16:10:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55608-20110315155507.patch</filename>
            <type>text/plain</type>
            <size>6976</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0OTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOWZmZDdiZmIzNjgzYzI3M2ZhNDdiMTY3NzgxZWVhMmQz
MjBjYTlmLi4wMjcyMjY5ZDI2ZWZhMTU4NzFlY2NiZGM0MjE0ZDU2M2Y3ZjlkNmQ1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCB2ZXJzaW9u
LXNwZWNpZmljIGJhc2VsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MDgKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDExLTAzLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAxMzJjY2MyMGY1ZDRiZDdiMDcxYTEyYjk0MWFjZWU0
M2E4MmM3NWQyLi5lMTZkZjZlZjAyN2RmNTUzNzFmOThhNGNhNTYzYzU4OGMzNmE2NGJiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNDg4LDEzICs0
ODgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJyAgb2xkOiAlcycsIGxpbmUpCiAgICAgICAgICAgICAgICAgZm9yIHAgaW4gc2VsZi5f
cG9ydC50ZXN0X3BsYXRmb3JtX25hbWVzKCk6CiAgICAgICAgICAgICAgICAgICAgIHAgPSBwLnVw
cGVyKCkKLSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgdGVtcCBzb2x1dGlvbiBmb3Ig
cmViYXNlbGluaW5nIHRvb2wuCi0gICAgICAgICAgICAgICAgICAgICMgRG8gbm90IGFkZCB0YWdz
IFdJTi03IGFuZCBXSU4tVklTVEEgdG8gdGVzdCBleHBlY3RhdGlvbnMKLSAgICAgICAgICAgICAg
ICAgICAgIyBpZiB0aGUgb3JpZ2luYWwgbGluZSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBwbGF0Zm9y
bQotICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgIyBU
T0RPKHZpY3RvcncpOiBSZW1vdmUgV0lOLVZJU1RBIGFuZCBXSU4tV0lONyBvbmNlIHdlIGhhdmUK
LSAgICAgICAgICAgICAgICAgICAgIyByZWxpYWJsZSBXaW4gNyBhbmQgV2luIFZpc3RhIGJ1aWxk
Ym90cyBzZXR1cC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHAgaW4gKHBsYXRmb3JtLnVw
cGVyKCksICdXSU4tVklTVEEnLCAnV0lOLVdJTjcnKToKKyAgICAgICAgICAgICAgICAgICAgaWYg
cCAhPSBwbGF0Zm9ybS51cHBlcigpOgogICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlv
bnMgPSBwYXJ0c1swXSArIHAgKyAnICcKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19saW5l
ID0gKCclczolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGZfbmV3LmFwcGVuZChuZXdfbGluZSkKQEAgLTkyOSw3ICs5MjMsNyBAQCBjbGFzcyBN
b2RpZmllck1hdGNoZXIob2JqZWN0KToKICAgICAgICAgJ21hYy1sZW9wYXJkJzogWydtYWMnLCAn
bGVvcGFyZCddLAogICAgICAgICAnd2luLXhwJzogWyd3aW4nLCAneHAnXSwKICAgICAgICAgJ3dp
bi12aXN0YSc6IFsnd2luJywgJ3Zpc3RhJ10sCi0gICAgICAgICd3aW4tNyc6IFsnd2luJywgJ3dp
bjcnXSwKKyAgICAgICAgJ3dpbi13aW43JzogWyd3aW4nLCAnd2luNyddLAogICAgIH0KIAogICAg
ICMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3Qg
YWN0dWFsbHkgbGVnYWwuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCA3ZDU2ZmEyMzM0ZjM2MzUxNmU3ZGM1YzQ3MDA3
NmMwNDdiMzg2MmRmLi4wMDQxZjY5YmQ3YWZiMzM1NmUxMzk1ZTQxYTQxMDdkMDFmMjMyOGU1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkKQEAgLTI2Niw3ICsyNjYsOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dp
dGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKICAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51
eCcsICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi03JykKKyAgICAgICAgcmV0dXJuICgnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgJ2xpbnV4JykKIAogICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUp
OgogICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25h
bWVzKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKaW5kZXggZDMyM2VkNWVhY2FhZjlmMTQ1Yjc0MWQzYzY5YThkZWFlNzE4MmE3YS4uMzAz
M2M2MTJmZDhhNTAwNTU0MjZmOWVmMjk4NjhkNWQxOTBiZGIxNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjcyLDE4ICsyNzIs
MTggQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9u
YW1lKHNlbGYpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICd0ZXN0LW1hYyc6
ICdtYWMnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbicsCisgICAgICAgICAgICAndGVz
dC13aW4td2luNyc6ICd3aW4nLAogICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3dpbi14cCcs
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVdCiAKICAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dp
bicsICd3aW4teHAnKQorICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luLXdpbjcnLCAnd2luLXhw
JykKIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRm
b3JtX25hbWUpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICdtYWMnOiAndGVz
dC1tYWMnLAotICAgICAgICAgICAgJ3dpbic6ICd0ZXN0LXdpbicsCisgICAgICAgICAgICAnd2lu
LXdpbjcnOiAndGVzdC13aW4td2luNycsCiAgICAgICAgICAgICAnd2luLXhwJzogJ3Rlc3Qtd2lu
LXhwJywKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmFtZV9tYXBbdGVzdF9wbGF0Zm9ybV9u
YW1lXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAy
NGI4Yzk3NmVkN2Q2MzFhN2U2MTU1M2E3MWExMDlhMTFmZDUxNDNlLi41MThlNDBlZDhiMDY1ZTNm
NjI1OWZkYThlMmJiZjBiZGZiNDMyM2U2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQpAQCAtNjAsMTcgKzYwLDI1IEBAIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhFUyA9IFsnLnR4dCcs
ICcucG5nJywgJy5jaGVja3N1bSddCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMn
LCAnd2luJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnbGludXgnXQorCisjIE9ubHkgdGhlIFdl
YktpdCBjYW5hcmllcyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMg
Ym90cyBkb24ndCBoYXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBo
YXZlIHRoZSB0aHJlZQorIyBtYWluIERlcHMgYm90cy4KK1JFQkFTRUxJTkVfR1BVX09SREVSID0g
WydtYWMnLCAnd2luJywgJ2xpbnV4J10KK1JFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9
IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4J10KK1JFQkFTRUxJTkVfUExBVEZPUk1f
T1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQorCiBBUkNISVZFX0RJUl9OQU1FX0RJQ1Qg
PSB7J3dpbic6ICdXZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi12aXN0YSc6ICd3ZWJraXQtZGJnLXZpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXhwJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81X19kZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51eF9fZGVwc18nLAogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dpbi1jYW5hcnknOiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnd2Via2l0LWRiZy12aXN0YScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dpbi13aW43LWNhbmFyeSc6ICdXZWJraXRfV2luNycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnd2luLXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ21hYy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBf
NScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAn
V2Via2l0X01hYzEwXzYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnkn
OiAnV2Via2l0X0xpbnV4JywKIAogICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNh
bmFyeSc6ICdXZWJraXRfTWFjMTBfNV8tX0dQVScsCkBAIC04NjIsOSArODcwLDExIEBAIGRlZiBw
YXJzZV9vcHRpb25zKGFyZ3MpOgogICAgIG9wdGlvbnMgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2Fy
Z3MoYXJncylbMF0KICAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25lOgogICAgICAgICBp
ZiBvcHRpb25zLmdwdToKLSAgICAgICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJ21hYyx3aW4s
bGludXgnCisgICAgICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKFJFQkFTRUxJ
TkVfR1BVX09SREVSKQorICAgICAgICBlbGlmIG9wdGlvbnMud2Via2l0X2NhbmFyeToKKyAgICAg
ICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJywnLmpvaW4oUkVCQVNFTElORV9XRUJLSVRfQ0FO
QVJZX09SREVSKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMg
PSAnbWFjLHdpbix3aW4teHAsd2luLXZpc3RhLGxpbnV4JworICAgICAgICAgICAgb3B0aW9ucy5w
bGF0Zm9ybSA9ICcsJy5qb2luKFJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVIpCiAKICAgICB0YXJn
ZXRfb3B0aW9ucyA9IGNvcHkuY29weShvcHRpb25zKQogICAgIGlmIG9wdGlvbnMudGFyZ2V0X3Bs
YXRmb3JtID09ICdjaHJvbWl1bSc6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85869</attachid>
            <date>2011-03-15 16:10:29 -0700</date>
            <delta_ts>2011-03-15 16:19:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55608-20110315161028.patch</filename>
            <type>text/plain</type>
            <size>8928</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0OTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOWZmZDdiZmIzNjgzYzI3M2ZhNDdiMTY3NzgxZWVhMmQz
MjBjYTlmLi4wMjcyMjY5ZDI2ZWZhMTU4NzFlY2NiZGM0MjE0ZDU2M2Y3ZjlkNmQ1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCB2ZXJzaW9u
LXNwZWNpZmljIGJhc2VsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MDgKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDExLTAzLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAxMzJjY2MyMGY1ZDRiZDdiMDcxYTEyYjk0MWFjZWU0
M2E4MmM3NWQyLi5lMTZkZjZlZjAyN2RmNTUzNzFmOThhNGNhNTYzYzU4OGMzNmE2NGJiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNDg4LDEzICs0
ODgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJyAgb2xkOiAlcycsIGxpbmUpCiAgICAgICAgICAgICAgICAgZm9yIHAgaW4gc2VsZi5f
cG9ydC50ZXN0X3BsYXRmb3JtX25hbWVzKCk6CiAgICAgICAgICAgICAgICAgICAgIHAgPSBwLnVw
cGVyKCkKLSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgdGVtcCBzb2x1dGlvbiBmb3Ig
cmViYXNlbGluaW5nIHRvb2wuCi0gICAgICAgICAgICAgICAgICAgICMgRG8gbm90IGFkZCB0YWdz
IFdJTi03IGFuZCBXSU4tVklTVEEgdG8gdGVzdCBleHBlY3RhdGlvbnMKLSAgICAgICAgICAgICAg
ICAgICAgIyBpZiB0aGUgb3JpZ2luYWwgbGluZSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBwbGF0Zm9y
bQotICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgIyBU
T0RPKHZpY3RvcncpOiBSZW1vdmUgV0lOLVZJU1RBIGFuZCBXSU4tV0lONyBvbmNlIHdlIGhhdmUK
LSAgICAgICAgICAgICAgICAgICAgIyByZWxpYWJsZSBXaW4gNyBhbmQgV2luIFZpc3RhIGJ1aWxk
Ym90cyBzZXR1cC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHAgaW4gKHBsYXRmb3JtLnVw
cGVyKCksICdXSU4tVklTVEEnLCAnV0lOLVdJTjcnKToKKyAgICAgICAgICAgICAgICAgICAgaWYg
cCAhPSBwbGF0Zm9ybS51cHBlcigpOgogICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlv
bnMgPSBwYXJ0c1swXSArIHAgKyAnICcKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19saW5l
ID0gKCclczolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGZfbmV3LmFwcGVuZChuZXdfbGluZSkKQEAgLTkyOSw3ICs5MjMsNyBAQCBjbGFzcyBN
b2RpZmllck1hdGNoZXIob2JqZWN0KToKICAgICAgICAgJ21hYy1sZW9wYXJkJzogWydtYWMnLCAn
bGVvcGFyZCddLAogICAgICAgICAnd2luLXhwJzogWyd3aW4nLCAneHAnXSwKICAgICAgICAgJ3dp
bi12aXN0YSc6IFsnd2luJywgJ3Zpc3RhJ10sCi0gICAgICAgICd3aW4tNyc6IFsnd2luJywgJ3dp
bjcnXSwKKyAgICAgICAgJ3dpbi13aW43JzogWyd3aW4nLCAnd2luNyddLAogICAgIH0KIAogICAg
ICMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3Qg
YWN0dWFsbHkgbGVnYWwuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCA3ZDU2ZmEyMzM0ZjM2MzUxNmU3ZGM1YzQ3MDA3
NmMwNDdiMzg2MmRmLi4wMDQxZjY5YmQ3YWZiMzM1NmUxMzk1ZTQxYTQxMDdkMDFmMjMyOGU1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkKQEAgLTI2Niw3ICsyNjYsOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dp
dGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKICAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51
eCcsICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi03JykKKyAgICAgICAgcmV0dXJuICgnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgJ2xpbnV4JykKIAogICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUp
OgogICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25h
bWVzKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKaW5kZXggZDMyM2VkNWVhY2FhZjlmMTQ1Yjc0MWQzYzY5YThkZWFlNzE4MmE3YS4uMzAz
M2M2MTJmZDhhNTAwNTU0MjZmOWVmMjk4NjhkNWQxOTBiZGIxNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjcyLDE4ICsyNzIs
MTggQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9u
YW1lKHNlbGYpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICd0ZXN0LW1hYyc6
ICdtYWMnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbicsCisgICAgICAgICAgICAndGVz
dC13aW4td2luNyc6ICd3aW4nLAogICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3dpbi14cCcs
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVdCiAKICAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dp
bicsICd3aW4teHAnKQorICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luLXdpbjcnLCAnd2luLXhw
JykKIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRm
b3JtX25hbWUpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICdtYWMnOiAndGVz
dC1tYWMnLAotICAgICAgICAgICAgJ3dpbic6ICd0ZXN0LXdpbicsCisgICAgICAgICAgICAnd2lu
LXdpbjcnOiAndGVzdC13aW4td2luNycsCiAgICAgICAgICAgICAnd2luLXhwJzogJ3Rlc3Qtd2lu
LXhwJywKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmFtZV9tYXBbdGVzdF9wbGF0Zm9ybV9u
YW1lXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAy
NGI4Yzk3NmVkN2Q2MzFhN2U2MTU1M2E3MWExMDlhMTFmZDUxNDNlLi40ZTdlYTg4OWFjODA3YjY4
NTVmZTE2ZjZjZjBmNDZiMjc1ZWFkN2QwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQpAQCAtNjAsMTcgKzYwLDI1IEBAIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhFUyA9IFsnLnR4dCcs
ICcucG5nJywgJy5jaGVja3N1bSddCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMn
LCAnd2luJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnbGludXgnXQorCisjIE9ubHkgdGhlIFdl
YktpdCBjYW5hcmllcyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMg
Ym90cyBkb24ndCBoYXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBo
YXZlIHRoZSB0aHJlZQorIyBtYWluIERlcHMgYm90cy4KK1JFQkFTRUxJTkVfR1BVX09SREVSID0g
WydtYWMnLCAnd2luJywgJ2xpbnV4J10KK1JFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9
IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4J10KK1JFQkFTRUxJTkVfUExBVEZPUk1f
T1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQorCiBBUkNISVZFX0RJUl9OQU1FX0RJQ1Qg
PSB7J3dpbic6ICdXZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi12aXN0YSc6ICd3ZWJraXQtZGJnLXZpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXhwJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81X19kZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51eF9fZGVwc18nLAogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dpbi1jYW5hcnknOiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnd2Via2l0LWRiZy12aXN0YScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dpbi13aW43LWNhbmFyeSc6ICdXZWJraXRfV2luNycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnd2luLXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ21hYy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBf
NScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAn
V2Via2l0X01hYzEwXzYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnkn
OiAnV2Via2l0X0xpbnV4JywKIAogICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNh
bmFyeSc6ICdXZWJraXRfTWFjMTBfNV8tX0dQVScsCkBAIC04NjAsMTEgKzg2OCwxNSBAQCBkZWYg
cGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygibWFjIiwgImNocm9taXVtIiwgInF0IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3RvICJjaHJvbWl1bSIuJykpCiAgICAgb3B0aW9ucyA9
IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKVswXQorICAgIGlmIG9wdGlvbnMuZ3B1Ogor
ICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSAnLCcuam9pbihSRUJBU0VMSU5FX0dQVV9P
UkRFUikKKyAgICBlbGlmIG9wdGlvbnMud2Via2l0X2NhbmFyeToKKyAgICAgICAgb3B0aW9ucy5h
bGxfcGxhdGZvcm1zID0gJywnLmpvaW4oUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZX09SREVSKQor
ICAgIGVsc2U6CisgICAgICAgIG9wdGlvbnMuYWxsX3BsYXRmb3JtcyA9ICcsJy5qb2luKFJFQkFT
RUxJTkVfUExBVEZPUk1fT1JERVIpCisKICAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25l
OgotICAgICAgICBpZiBvcHRpb25zLmdwdToKLSAgICAgICAgICAgIG9wdGlvbnMucGxhdGZvcm1z
ID0gJ21hYyx3aW4sbGludXgnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcHRpb25zLnBs
YXRmb3JtcyA9ICdtYWMsd2luLHdpbi14cCx3aW4tdmlzdGEsbGludXgnCisgICAgICAgIG9wdGlv
bnMucGxhdGZvcm0gPSBvcHRpb25zLmFsbF9wbGF0Zm9ybXMKIAogICAgIHRhcmdldF9vcHRpb25z
ID0gY29weS5jb3B5KG9wdGlvbnMpCiAgICAgaWYgb3B0aW9ucy50YXJnZXRfcGxhdGZvcm0gPT0g
J2Nocm9taXVtJzoKQEAgLTkzNCw3ICs5NDYsNyBAQCBkZWYgcmVhbF9tYWluKG9wdGlvbnMsIHRh
cmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmosIHVybF9mZXRjaAog
ICAgICAgICByZXR1cm4gMQogICAgIHBsYXRmb3JtcyA9IFtwLnN0cmlwKCkubG93ZXIoKSBmb3Ig
cCBpbiBvcHRpb25zLnBsYXRmb3Jtcy5zcGxpdCgnLCcpXQogICAgIGZvciBwbGF0Zm9ybSBpbiBw
bGF0Zm9ybXM6Ci0gICAgICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBSRUJBU0VMSU5FX1BMQVRGT1JN
X09SREVSOgorICAgICAgICBpZiBub3QgcGxhdGZvcm0gaW4gb3B0aW9ucy5hbGxfcGxhdGZvcm1z
OgogICAgICAgICAgICAgX2xvZy5lcnJvcignSW52YWxpZCBwbGF0Zm9ybTogIiVzIicgJSAocGxh
dGZvcm0pKQogICAgICAgICAgICAgcmV0dXJuIDEKIApAQCAtOTQzLDcgKzk1NSw3IEBAIGRlZiBy
ZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9w
b3J0X29iaiwgdXJsX2ZldGNoCiAgICAgIyBzZWFyY2ggcGF0aHMuIEl0IHNpbXBsaWZpZXMgaG93
IHRoZSByZWJhc2VsaW5lIHRvb2wgZGV0ZWN0cyBkdXBsaWNhdGUKICAgICAjIGJhc2VsaW5lcy4g
Q2hlY2sgX0lzRHVwQmFzZWxpbmUgbWV0aG9kIGZvciBkZXRhaWxzLgogICAgIHJlYmFzZWxpbmVf
cGxhdGZvcm1zID0gW10KLSAgICBmb3IgcGxhdGZvcm0gaW4gUkVCQVNFTElORV9QTEFURk9STV9P
UkRFUjoKKyAgICBmb3IgcGxhdGZvcm0gaW4gb3B0aW9ucy5hbGxfcGxhdGZvcm1zOgogICAgICAg
ICBpZiBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6CiAgICAgICAgICAgICByZWJhc2VsaW5lX3BsYXRm
b3Jtcy5hcHBlbmQocGxhdGZvcm0pCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggYzUwZTFjNDZkNTYwYjI3OWIxZTM2
MzM4NDRjNjc1MjJlOWJjMjIwMy4uYzA0N2U1MDIyNWFmZjUwOTRmN2E5NzM1Y2ZiMmFmOTE3Njc4
N2ZkOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHNfdW5pdHRlc3QucHkKQEAgLTcwLDcgKzcwLDggQEAgZGVmIHRlc3Rfb3B0aW9ucygpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGxhdGZvcm09J2Nocm9taXVtJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1GYWxzZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcXVpZXQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBsYXRmb3Jtcz0nbWFjLHdpbix3aW4teHAnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwbGF0Zm9ybXM9J21hYyx3aW4nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbGxfcGxhdGZvcm1zPSdtYWMsd2luLGxpbnV4JywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3B1PUZhbHNlKQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85871</attachid>
            <date>2011-03-15 16:19:57 -0700</date>
            <delta_ts>2011-03-15 16:29:33 -0700</delta_ts>
            <desc>fix missing s</desc>
            <filename>bug-55608-20110315161956.patch</filename>
            <type>text/plain</type>
            <size>8929</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0OTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOWZmZDdiZmIzNjgzYzI3M2ZhNDdiMTY3NzgxZWVhMmQz
MjBjYTlmLi4wMjcyMjY5ZDI2ZWZhMTU4NzFlY2NiZGM0MjE0ZDU2M2Y3ZjlkNmQ1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCB2ZXJzaW9u
LXNwZWNpZmljIGJhc2VsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MDgKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDExLTAzLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAxMzJjY2MyMGY1ZDRiZDdiMDcxYTEyYjk0MWFjZWU0
M2E4MmM3NWQyLi5lMTZkZjZlZjAyN2RmNTUzNzFmOThhNGNhNTYzYzU4OGMzNmE2NGJiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNDg4LDEzICs0
ODgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJyAgb2xkOiAlcycsIGxpbmUpCiAgICAgICAgICAgICAgICAgZm9yIHAgaW4gc2VsZi5f
cG9ydC50ZXN0X3BsYXRmb3JtX25hbWVzKCk6CiAgICAgICAgICAgICAgICAgICAgIHAgPSBwLnVw
cGVyKCkKLSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgdGVtcCBzb2x1dGlvbiBmb3Ig
cmViYXNlbGluaW5nIHRvb2wuCi0gICAgICAgICAgICAgICAgICAgICMgRG8gbm90IGFkZCB0YWdz
IFdJTi03IGFuZCBXSU4tVklTVEEgdG8gdGVzdCBleHBlY3RhdGlvbnMKLSAgICAgICAgICAgICAg
ICAgICAgIyBpZiB0aGUgb3JpZ2luYWwgbGluZSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBwbGF0Zm9y
bQotICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgIyBU
T0RPKHZpY3RvcncpOiBSZW1vdmUgV0lOLVZJU1RBIGFuZCBXSU4tV0lONyBvbmNlIHdlIGhhdmUK
LSAgICAgICAgICAgICAgICAgICAgIyByZWxpYWJsZSBXaW4gNyBhbmQgV2luIFZpc3RhIGJ1aWxk
Ym90cyBzZXR1cC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHAgaW4gKHBsYXRmb3JtLnVw
cGVyKCksICdXSU4tVklTVEEnLCAnV0lOLVdJTjcnKToKKyAgICAgICAgICAgICAgICAgICAgaWYg
cCAhPSBwbGF0Zm9ybS51cHBlcigpOgogICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlv
bnMgPSBwYXJ0c1swXSArIHAgKyAnICcKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19saW5l
ID0gKCclczolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGZfbmV3LmFwcGVuZChuZXdfbGluZSkKQEAgLTkyOSw3ICs5MjMsNyBAQCBjbGFzcyBN
b2RpZmllck1hdGNoZXIob2JqZWN0KToKICAgICAgICAgJ21hYy1sZW9wYXJkJzogWydtYWMnLCAn
bGVvcGFyZCddLAogICAgICAgICAnd2luLXhwJzogWyd3aW4nLCAneHAnXSwKICAgICAgICAgJ3dp
bi12aXN0YSc6IFsnd2luJywgJ3Zpc3RhJ10sCi0gICAgICAgICd3aW4tNyc6IFsnd2luJywgJ3dp
bjcnXSwKKyAgICAgICAgJ3dpbi13aW43JzogWyd3aW4nLCAnd2luNyddLAogICAgIH0KIAogICAg
ICMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3Qg
YWN0dWFsbHkgbGVnYWwuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCA3ZDU2ZmEyMzM0ZjM2MzUxNmU3ZGM1YzQ3MDA3
NmMwNDdiMzg2MmRmLi4wMDQxZjY5YmQ3YWZiMzM1NmUxMzk1ZTQxYTQxMDdkMDFmMjMyOGU1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkKQEAgLTI2Niw3ICsyNjYsOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dp
dGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKICAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51
eCcsICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi03JykKKyAgICAgICAgcmV0dXJuICgnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgJ2xpbnV4JykKIAogICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUp
OgogICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25h
bWVzKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKaW5kZXggZDMyM2VkNWVhY2FhZjlmMTQ1Yjc0MWQzYzY5YThkZWFlNzE4MmE3YS4uMzAz
M2M2MTJmZDhhNTAwNTU0MjZmOWVmMjk4NjhkNWQxOTBiZGIxNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjcyLDE4ICsyNzIs
MTggQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9u
YW1lKHNlbGYpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICd0ZXN0LW1hYyc6
ICdtYWMnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbicsCisgICAgICAgICAgICAndGVz
dC13aW4td2luNyc6ICd3aW4nLAogICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3dpbi14cCcs
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVdCiAKICAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dp
bicsICd3aW4teHAnKQorICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luLXdpbjcnLCAnd2luLXhw
JykKIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRm
b3JtX25hbWUpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICdtYWMnOiAndGVz
dC1tYWMnLAotICAgICAgICAgICAgJ3dpbic6ICd0ZXN0LXdpbicsCisgICAgICAgICAgICAnd2lu
LXdpbjcnOiAndGVzdC13aW4td2luNycsCiAgICAgICAgICAgICAnd2luLXhwJzogJ3Rlc3Qtd2lu
LXhwJywKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmFtZV9tYXBbdGVzdF9wbGF0Zm9ybV9u
YW1lXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAy
NGI4Yzk3NmVkN2Q2MzFhN2U2MTU1M2E3MWExMDlhMTFmZDUxNDNlLi43MjhlYzUyOGIyNjYzNTUz
MTQwMjdkZmMyZGI2OWRlNjQ2YWViMWZjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQpAQCAtNjAsMTcgKzYwLDI1IEBAIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhFUyA9IFsnLnR4dCcs
ICcucG5nJywgJy5jaGVja3N1bSddCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMn
LCAnd2luJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnbGludXgnXQorCisjIE9ubHkgdGhlIFdl
YktpdCBjYW5hcmllcyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMg
Ym90cyBkb24ndCBoYXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBo
YXZlIHRoZSB0aHJlZQorIyBtYWluIERlcHMgYm90cy4KK1JFQkFTRUxJTkVfR1BVX09SREVSID0g
WydtYWMnLCAnd2luJywgJ2xpbnV4J10KK1JFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9
IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4J10KK1JFQkFTRUxJTkVfUExBVEZPUk1f
T1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQorCiBBUkNISVZFX0RJUl9OQU1FX0RJQ1Qg
PSB7J3dpbic6ICdXZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi12aXN0YSc6ICd3ZWJraXQtZGJnLXZpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXhwJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81X19kZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51eF9fZGVwc18nLAogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dpbi1jYW5hcnknOiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnd2Via2l0LWRiZy12aXN0YScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dpbi13aW43LWNhbmFyeSc6ICdXZWJraXRfV2luNycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnd2luLXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ21hYy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBf
NScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAn
V2Via2l0X01hYzEwXzYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnkn
OiAnV2Via2l0X0xpbnV4JywKIAogICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNh
bmFyeSc6ICdXZWJraXRfTWFjMTBfNV8tX0dQVScsCkBAIC04NjAsMTEgKzg2OCwxNSBAQCBkZWYg
cGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygibWFjIiwgImNocm9taXVtIiwgInF0IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3RvICJjaHJvbWl1bSIuJykpCiAgICAgb3B0aW9ucyA9
IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKVswXQorICAgIGlmIG9wdGlvbnMuZ3B1Ogor
ICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSAnLCcuam9pbihSRUJBU0VMSU5FX0dQVV9P
UkRFUikKKyAgICBlbGlmIG9wdGlvbnMud2Via2l0X2NhbmFyeToKKyAgICAgICAgb3B0aW9ucy5h
bGxfcGxhdGZvcm1zID0gJywnLmpvaW4oUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZX09SREVSKQor
ICAgIGVsc2U6CisgICAgICAgIG9wdGlvbnMuYWxsX3BsYXRmb3JtcyA9ICcsJy5qb2luKFJFQkFT
RUxJTkVfUExBVEZPUk1fT1JERVIpCisKICAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25l
OgotICAgICAgICBpZiBvcHRpb25zLmdwdToKLSAgICAgICAgICAgIG9wdGlvbnMucGxhdGZvcm1z
ID0gJ21hYyx3aW4sbGludXgnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcHRpb25zLnBs
YXRmb3JtcyA9ICdtYWMsd2luLHdpbi14cCx3aW4tdmlzdGEsbGludXgnCisgICAgICAgIG9wdGlv
bnMucGxhdGZvcm1zID0gb3B0aW9ucy5hbGxfcGxhdGZvcm1zCiAKICAgICB0YXJnZXRfb3B0aW9u
cyA9IGNvcHkuY29weShvcHRpb25zKQogICAgIGlmIG9wdGlvbnMudGFyZ2V0X3BsYXRmb3JtID09
ICdjaHJvbWl1bSc6CkBAIC05MzQsNyArOTQ2LDcgQEAgZGVmIHJlYWxfbWFpbihvcHRpb25zLCB0
YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLCB1cmxfZmV0Y2gK
ICAgICAgICAgcmV0dXJuIDEKICAgICBwbGF0Zm9ybXMgPSBbcC5zdHJpcCgpLmxvd2VyKCkgZm9y
IHAgaW4gb3B0aW9ucy5wbGF0Zm9ybXMuc3BsaXQoJywnKV0KICAgICBmb3IgcGxhdGZvcm0gaW4g
cGxhdGZvcm1zOgotICAgICAgICBpZiBub3QgcGxhdGZvcm0gaW4gUkVCQVNFTElORV9QTEFURk9S
TV9PUkRFUjoKKyAgICAgICAgaWYgbm90IHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3Jt
czoKICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ludmFsaWQgcGxhdGZvcm06ICIlcyInICUgKHBs
YXRmb3JtKSkKICAgICAgICAgICAgIHJldHVybiAxCiAKQEAgLTk0Myw3ICs5NTUsNyBAQCBkZWYg
cmVhbF9tYWluKG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRf
cG9ydF9vYmosIHVybF9mZXRjaAogICAgICMgc2VhcmNoIHBhdGhzLiBJdCBzaW1wbGlmaWVzIGhv
dyB0aGUgcmViYXNlbGluZSB0b29sIGRldGVjdHMgZHVwbGljYXRlCiAgICAgIyBiYXNlbGluZXMu
IENoZWNrIF9Jc0R1cEJhc2VsaW5lIG1ldGhvZCBmb3IgZGV0YWlscy4KICAgICByZWJhc2VsaW5l
X3BsYXRmb3JtcyA9IFtdCi0gICAgZm9yIHBsYXRmb3JtIGluIFJFQkFTRUxJTkVfUExBVEZPUk1f
T1JERVI6CisgICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKICAgICAg
ICAgaWYgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgogICAgICAgICAgICAgcmViYXNlbGluZV9wbGF0
Zm9ybXMuYXBwZW5kKHBsYXRmb3JtKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hy
b21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IGM1MGUxYzQ2ZDU2MGIyNzliMWUz
NjMzODQ0YzY3NTIyZTliYzIyMDMuLmMwNDdlNTAyMjVhZmY1MDk0ZjdhOTczNWNmYjJhZjkxNzY3
ODdmZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Jl
YmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rl
c3RzX3VuaXR0ZXN0LnB5CkBAIC03MCw3ICs3MCw4IEBAIGRlZiB0ZXN0X29wdGlvbnMoKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BsYXRmb3JtPSdjaHJvbWl1bScs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwbGF0Zm9ybXM9J21hYyx3aW4sd2luLXhwJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGxhdGZvcm1zPSdtYWMsd2luJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWxsX3BsYXRmb3Jtcz0nbWFjLHdpbixsaW51eCcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdwdT1GYWxzZSkKIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85872</attachid>
            <date>2011-03-15 16:29:35 -0700</date>
            <delta_ts>2011-03-29 21:04:58 -0700</delta_ts>
            <desc>make all_platforms actually be a list</desc>
            <filename>bug-55608-20110315162934.patch</filename>
            <type>text/plain</type>
            <size>8909</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0OTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOWZmZDdiZmIzNjgzYzI3M2ZhNDdiMTY3NzgxZWVhMmQz
MjBjYTlmLi4wMjcyMjY5ZDI2ZWZhMTU4NzFlY2NiZGM0MjE0ZDU2M2Y3ZjlkNmQ1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDMtMTUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCB2ZXJzaW9u
LXNwZWNpZmljIGJhc2VsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MDgKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5OgorCiAyMDExLTAzLTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAxMzJjY2MyMGY1ZDRiZDdiMDcxYTEyYjk0MWFjZWU0
M2E4MmM3NWQyLi5lMTZkZjZlZjAyN2RmNTUzNzFmOThhNGNhNTYzYzU4OGMzNmE2NGJiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNDg4LDEzICs0
ODgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJyAgb2xkOiAlcycsIGxpbmUpCiAgICAgICAgICAgICAgICAgZm9yIHAgaW4gc2VsZi5f
cG9ydC50ZXN0X3BsYXRmb3JtX25hbWVzKCk6CiAgICAgICAgICAgICAgICAgICAgIHAgPSBwLnVw
cGVyKCkKLSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgdGVtcCBzb2x1dGlvbiBmb3Ig
cmViYXNlbGluaW5nIHRvb2wuCi0gICAgICAgICAgICAgICAgICAgICMgRG8gbm90IGFkZCB0YWdz
IFdJTi03IGFuZCBXSU4tVklTVEEgdG8gdGVzdCBleHBlY3RhdGlvbnMKLSAgICAgICAgICAgICAg
ICAgICAgIyBpZiB0aGUgb3JpZ2luYWwgbGluZSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBwbGF0Zm9y
bQotICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgIyBU
T0RPKHZpY3RvcncpOiBSZW1vdmUgV0lOLVZJU1RBIGFuZCBXSU4tV0lONyBvbmNlIHdlIGhhdmUK
LSAgICAgICAgICAgICAgICAgICAgIyByZWxpYWJsZSBXaW4gNyBhbmQgV2luIFZpc3RhIGJ1aWxk
Ym90cyBzZXR1cC4KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHAgaW4gKHBsYXRmb3JtLnVw
cGVyKCksICdXSU4tVklTVEEnLCAnV0lOLVdJTjcnKToKKyAgICAgICAgICAgICAgICAgICAgaWYg
cCAhPSBwbGF0Zm9ybS51cHBlcigpOgogICAgICAgICAgICAgICAgICAgICAgICAgbmV3X29wdGlv
bnMgPSBwYXJ0c1swXSArIHAgKyAnICcKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19saW5l
ID0gKCclczolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGZfbmV3LmFwcGVuZChuZXdfbGluZSkKQEAgLTkyOSw3ICs5MjMsNyBAQCBjbGFzcyBN
b2RpZmllck1hdGNoZXIob2JqZWN0KToKICAgICAgICAgJ21hYy1sZW9wYXJkJzogWydtYWMnLCAn
bGVvcGFyZCddLAogICAgICAgICAnd2luLXhwJzogWyd3aW4nLCAneHAnXSwKICAgICAgICAgJ3dp
bi12aXN0YSc6IFsnd2luJywgJ3Zpc3RhJ10sCi0gICAgICAgICd3aW4tNyc6IFsnd2luJywgJ3dp
bjcnXSwKKyAgICAgICAgJ3dpbi13aW43JzogWyd3aW4nLCAnd2luNyddLAogICAgIH0KIAogICAg
ICMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3Qg
YWN0dWFsbHkgbGVnYWwuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCA3ZDU2ZmEyMzM0ZjM2MzUxNmU3ZGM1YzQ3MDA3
NmMwNDdiMzg2MmRmLi4wMDQxZjY5YmQ3YWZiMzM1NmUxMzk1ZTQxYTQxMDdkMDFmMjMyOGU1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkKQEAgLTI2Niw3ICsyNjYsOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0
KToKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rlc3RzX3dp
dGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKICAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51
eCcsICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi03JykKKyAgICAgICAgcmV0dXJuICgnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgJ2xpbnV4JykKIAogICAg
IGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUp
OgogICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25h
bWVzKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rl
c3QucHkKaW5kZXggZDMyM2VkNWVhY2FhZjlmMTQ1Yjc0MWQzYzY5YThkZWFlNzE4MmE3YS4uMzAz
M2M2MTJmZDhhNTAwNTU0MjZmOWVmMjk4NjhkNWQxOTBiZGIxNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjcyLDE4ICsyNzIs
MTggQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9u
YW1lKHNlbGYpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICd0ZXN0LW1hYyc6
ICdtYWMnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbicsCisgICAgICAgICAgICAndGVz
dC13aW4td2luNyc6ICd3aW4nLAogICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3dpbi14cCcs
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVdCiAKICAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dp
bicsICd3aW4teHAnKQorICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luLXdpbjcnLCAnd2luLXhw
JykKIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRm
b3JtX25hbWUpOgogICAgICAgICBuYW1lX21hcCA9IHsKICAgICAgICAgICAgICdtYWMnOiAndGVz
dC1tYWMnLAotICAgICAgICAgICAgJ3dpbic6ICd0ZXN0LXdpbicsCisgICAgICAgICAgICAnd2lu
LXdpbjcnOiAndGVzdC13aW4td2luNycsCiAgICAgICAgICAgICAnd2luLXhwJzogJ3Rlc3Qtd2lu
LXhwJywKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbmFtZV9tYXBbdGVzdF9wbGF0Zm9ybV9u
YW1lXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCAy
NGI4Yzk3NmVkN2Q2MzFhN2U2MTU1M2E3MWExMDlhMTFmZDUxNDNlLi4xM2U5MzM4NzlmYWViYzVk
NWNjNjYwZTZhNTU3YmNlNWE2N2NiNDQ1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weQpAQCAtNjAsMTcgKzYwLDI1IEBAIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhFUyA9IFsnLnR4dCcs
ICcucG5nJywgJy5jaGVja3N1bSddCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMn
LCAnd2luJywgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnbGludXgnXQorCisjIE9ubHkgdGhlIFdl
YktpdCBjYW5hcmllcyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMg
Ym90cyBkb24ndCBoYXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBo
YXZlIHRoZSB0aHJlZQorIyBtYWluIERlcHMgYm90cy4KK1JFQkFTRUxJTkVfR1BVX09SREVSID0g
WydtYWMnLCAnd2luJywgJ2xpbnV4J10KK1JFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9
IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4J10KK1JFQkFTRUxJTkVfUExBVEZPUk1f
T1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQorCiBBUkNISVZFX0RJUl9OQU1FX0RJQ1Qg
PSB7J3dpbic6ICdXZWJraXRfV2luX19kZXBzXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
J3dpbi12aXN0YSc6ICd3ZWJraXQtZGJnLXZpc3RhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2luLXhwJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81X19kZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51eF9fZGVwc18nLAogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dpbi1jYW5hcnknOiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnd2Via2l0LWRiZy12aXN0YScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dpbi13aW43LWNhbmFyeSc6ICdXZWJraXRfV2luNycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnd2luLXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ21hYy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBf
NScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAn
V2Via2l0X01hYzEwXzYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnkn
OiAnV2Via2l0X0xpbnV4JywKIAogICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNh
bmFyeSc6ICdXZWJraXRfTWFjMTBfNV8tX0dQVScsCkBAIC04NjAsMTEgKzg2OCwxNSBAQCBkZWYg
cGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygibWFjIiwgImNocm9taXVtIiwgInF0IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3RvICJjaHJvbWl1bSIuJykpCiAgICAgb3B0aW9ucyA9
IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhhcmdzKVswXQorICAgIGlmIG9wdGlvbnMuZ3B1Ogor
ICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX0dQVV9PUkRFUgorICAg
IGVsaWYgb3B0aW9ucy53ZWJraXRfY2FuYXJ5OgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9y
bXMgPSBSRUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIKKyAgICBlbHNlOgorICAgICAgICBv
cHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSCisKICAgICBp
ZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25lOgotICAgICAgICBpZiBvcHRpb25zLmdwdToKLSAg
ICAgICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJ21hYyx3aW4sbGludXgnCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICdtYWMsd2luLHdpbi14cCx3aW4t
dmlzdGEsbGludXgnCisgICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJywnLmpvaW4ob3B0aW9u
cy5hbGxfcGxhdGZvcm1zKQogCiAgICAgdGFyZ2V0X29wdGlvbnMgPSBjb3B5LmNvcHkob3B0aW9u
cykKICAgICBpZiBvcHRpb25zLnRhcmdldF9wbGF0Zm9ybSA9PSAnY2hyb21pdW0nOgpAQCAtOTM0
LDcgKzk0Niw3IEBAIGRlZiByZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3Rf
cG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwgdXJsX2ZldGNoCiAgICAgICAgIHJldHVybiAxCiAg
ICAgcGxhdGZvcm1zID0gW3Auc3RyaXAoKS5sb3dlcigpIGZvciBwIGluIG9wdGlvbnMucGxhdGZv
cm1zLnNwbGl0KCcsJyldCiAgICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3JtczoKLSAgICAgICAg
aWYgbm90IHBsYXRmb3JtIGluIFJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVI6CisgICAgICAgIGlm
IG5vdCBwbGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9ybXM6CiAgICAgICAgICAgICBfbG9n
LmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkpCiAgICAgICAgICAg
ICByZXR1cm4gMQogCkBAIC05NDMsNyArOTU1LDcgQEAgZGVmIHJlYWxfbWFpbihvcHRpb25zLCB0
YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLCB1cmxfZmV0Y2gK
ICAgICAjIHNlYXJjaCBwYXRocy4gSXQgc2ltcGxpZmllcyBob3cgdGhlIHJlYmFzZWxpbmUgdG9v
bCBkZXRlY3RzIGR1cGxpY2F0ZQogICAgICMgYmFzZWxpbmVzLiBDaGVjayBfSXNEdXBCYXNlbGlu
ZSBtZXRob2QgZm9yIGRldGFpbHMuCiAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMgPSBbXQotICAg
IGZvciBwbGF0Zm9ybSBpbiBSRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSOgorICAgIGZvciBwbGF0
Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9ybXM6CiAgICAgICAgIGlmIHBsYXRmb3JtIGluIHBs
YXRmb3JtczoKICAgICAgICAgICAgIHJlYmFzZWxpbmVfcGxhdGZvcm1zLmFwcGVuZChwbGF0Zm9y
bSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191
bml0dGVzdC5weQppbmRleCBjNTBlMWM0NmQ1NjBiMjc5YjFlMzYzMzg0NGM2NzUyMmU5YmMyMjAz
Li5jMDQ3ZTUwMjI1YWZmNTA5NGY3YTk3MzVjZmIyYWY5MTc2Nzg3ZmQ5IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAt
NzAsNyArNzAsOCBAQCBkZWYgdGVzdF9vcHRpb25zKCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldF9wbGF0Zm9ybT0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJib3NlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBxdWlldD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZv
cm1zPSdtYWMsd2luLHdpbi14cCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YXRmb3Jtcz0nbWFjLHdpbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9w
bGF0Zm9ybXM9J21hYyx3aW4sbGludXgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncHU9RmFsc2UpCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87458</attachid>
            <date>2011-03-29 21:05:01 -0700</date>
            <delta_ts>2011-03-30 18:40:56 -0700</delta_ts>
            <desc>clean up mechanism for updating expectations file, make tests pass</desc>
            <filename>bug-55608-20110329210500.patch</filename>
            <type>text/plain</type>
            <size>29334</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIzODIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0Mjc2YjgyNjFiYzllMjRjNGUxZWNmYzIzMTVlM2NlMDdh
NzUyOGIyLi4zNDA5ZmVmOTkzZDIyZWZhNzFhMmU5N2FjOTdiNzcwYTNjMGI0ZGVmIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aAorICAgICAg
ICB2ZXJzaW9uLXNwZWNpZmljIGJhc2VsaW5lcy4gVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSB0b29s
IHRvIHVzZQorICAgICAgICBhbGwgb2YgdGhlIHZlcnNpb24tc3BlY2lmaWMgYm90cyBvbiB0aGUg
Y2FuYXJpZXMsIGFuZCB3aWxsIG5vdworICAgICAgICBhdHRlbXB0IHRvIHJlYmFzZWxpbmUgYWxs
IG9mIHRoZSB2ZXJzaW9ucyBieSBkZWZhdWx0LCBhbmQgd2lsbAorICAgICAgICBkZWxldGUgYW55
IFJFQkFTRUxJTkUgbGluZXMgZnJvbSB0aGUgdGVzdCBmaWxlIHdoZW4gZG9uZSAocmF0aGVyCisg
ICAgICAgIHRoYW4gdHJ5aW5nIHRvIHRyYWNrIHNvbWUgb2YgdGhlIHBsYXRmb3JtcyBhdCBhIHRp
bWUpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NTYwOAorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHk6CisKIDIw
MTEtMDMtMjkgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0
X2V4cGVjdGF0aW9ucy5weQppbmRleCAxMzJjY2MyMGY1ZDRiZDdiMDcxYTEyYjk0MWFjZWU0M2E4
MmM3NWQyLi4yMWE2MWEzZDZhOGRiYzA5NTI2MTJhMTdkZjlhMTk0ODMzNjIwNDg5IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtMTY2LDkgKzE2Niw4
IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnM6CiAgICAgZGVmIGhhc19tb2RpZmllcihzZWxmLCB0
ZXN0LCBtb2RpZmllcik6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5o
YXNfbW9kaWZpZXIodGVzdCwgbW9kaWZpZXIpCiAKLSAgICBkZWYgcmVtb3ZlX3BsYXRmb3JtX2Zy
b21fZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBwbGF0Zm9ybSk6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5yZW1vdmVfcGxhdGZvcm1fZnJvbV9leHBlY3RhdGlvbnMo
Ci0gICAgICAgICAgICB0ZXN0cywgcGxhdGZvcm0pCisgICAgZGVmIHJlbW92ZV90ZXN0c19mcm9t
X2V4cGVjdGF0aW9ucyhzZWxmLCB0ZXN0cyk6CisgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3Rl
ZF9mYWlsdXJlcy5yZW1vdmVfdGVzdHNfZnJvbV9leHBlY3RhdGlvbnModGVzdHMpCiAKIAogZGVm
IHN0cmlwX2NvbW1lbnRzKGxpbmUpOgpAQCAtNDM2LDI0ICs0MzUsOCBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zRmlsZToKICAgICBkZWYgZ2V0X25vbl9mYXRhbF9lcnJvcnMoc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9ub25fZmF0YWxfZXJyb3JzCiAKLSAgICBkZWYgcmVtb3ZlX3BsYXRm
b3JtX2Zyb21fZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBwbGF0Zm9ybSk6Ci0gICAgICAgICIi
IlJldHVybnMgYSBjb3B5IG9mIHRoZSBleHBlY3RhdGlvbnMgd2l0aCB0aGUgdGVzdHMgbWF0Y2hp
bmcgdGhlCi0gICAgICAgIHBsYXRmb3JtIHJlbW92ZWQuCi0KLSAgICAgICAgSWYgYSB0ZXN0IGlz
IGluIHRoZSB0ZXN0IGxpc3QgYW5kIGhhcyBhbiBvcHRpb24gdGhhdCBtYXRjaGVzIHRoZSBnaXZl
bgotICAgICAgICBwbGF0Zm9ybSwgcmVtb3ZlIHRoZSBtYXRjaGluZyBwbGF0Zm9ybSBhbmQgc2F2
ZSB0aGUgdXBkYXRlZCB0ZXN0IGJhY2sKLSAgICAgICAgdG8gdGhlIGZpbGUuIElmIG5vIG90aGVy
IHBsYXRmb3JtcyByZW1haW5pbmcgYWZ0ZXIgcmVtb3ZhbCwgZGVsZXRlIHRoZQotICAgICAgICB0
ZXN0IGZyb20gdGhlIGZpbGUuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0ZXN0czogbGlz
dCBvZiB0ZXN0cyB0aGF0IG5lZWQgdG8gdXBkYXRlLi4KLSAgICAgICAgICBwbGF0Zm9ybTogd2hp
Y2ggcGxhdGZvcm0gb3B0aW9uIHRvIHJlbW92ZS4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAg
ICAgIHRoZSB1cGRhdGVkIHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgYXNzZXJ0KHBs
YXRmb3JtKQorICAgIGRlZiByZW1vdmVfdGVzdHNfZnJvbV9leHBlY3RhdGlvbnMoc2VsZiwgdGVz
dHMpOgorICAgICAgICAiIiJSZXR1cm5zIGEgY29weSBvZiB0aGUgZXhwZWN0YXRpb25zIHdpdGgg
dGhlIHRlc3RzIHJlbW92ZWQuIiIiCiAgICAgICAgIGZfb3JpZyA9IHNlbGYuX2dldF9pdGVyYWJs
ZV9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zKQogICAgICAgICBmX25ldyA9IFtdCiAK
QEAgLTQ2Miw0NSArNDQ1LDE0IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogICAgICAg
ICBsaW5lbm8gPSAwCiAgICAgICAgIGZvciBsaW5lIGluIGZfb3JpZzoKICAgICAgICAgICAgIGxp
bmVubyArPSAxCi0gICAgICAgICAgICBhY3Rpb24gPSBzZWxmLl9nZXRfcGxhdGZvcm1fdXBkYXRl
X2FjdGlvbihsaW5lLCBsaW5lbm8sIHRlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0pCi0gICAgICAgICAgICBhc3NlcnQo
YWN0aW9uIGluIChOT19DSEFOR0UsIFJFTU9WRV9URVNULCBSRU1PVkVfUExBVEZPUk0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBRERfUExBVEZPUk1TX0VYQ0VQVF9USElTKSkKLSAg
ICAgICAgICAgIGlmIGFjdGlvbiA9PSBOT19DSEFOR0U6CisgICAgICAgICAgICB0ZXN0LCBvcHRp
b25zLCBleHBlY3RhdGlvbnMgPSBzZWxmLnBhcnNlX2V4cGVjdGF0aW9uc19saW5lKGxpbmUsIGxp
bmVubykKKyAgICAgICAgICAgIGlmIG5vdCB0ZXN0IG9yIHRlc3Qgbm90IGluIHRlc3RzOgogICAg
ICAgICAgICAgICAgICMgU2F2ZSB0aGUgb3JpZ2luYWwgbGluZSBiYWNrIHRvIHRoZSBmaWxlCiAg
ICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnTm8gY2hhbmdlIHRvIHRlc3Q6ICVzJywgbGluZSkK
ICAgICAgICAgICAgICAgICBmX25ldy5hcHBlbmQobGluZSkKLSAgICAgICAgICAgIGVsaWYgYWN0
aW9uID09IFJFTU9WRV9URVNUOgorICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICB0
ZXN0c19yZW1vdmVkICs9IDEKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ1Rlc3QgcmVtb3Zl
ZDogJXMnLCBsaW5lKQotICAgICAgICAgICAgZWxpZiBhY3Rpb24gPT0gUkVNT1ZFX1BMQVRGT1JN
OgotICAgICAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgnOicpCi0gICAgICAgICAgICAg
ICAgbmV3X29wdGlvbnMgPSBwYXJ0c1swXS5yZXBsYWNlKHBsYXRmb3JtLnVwcGVyKCkgKyAnICcs
ICcnLCAxKQotICAgICAgICAgICAgICAgIG5ld19saW5lID0gKCclczolcycgJSAobmV3X29wdGlv
bnMsIHBhcnRzWzFdKSkKLSAgICAgICAgICAgICAgICBmX25ldy5hcHBlbmQobmV3X2xpbmUpCi0g
ICAgICAgICAgICAgICAgdGVzdHNfdXBkYXRlZCArPSAxCi0gICAgICAgICAgICAgICAgX2xvZy5p
bmZvKCdUZXN0IHVwZGF0ZWQ6ICcpCi0gICAgICAgICAgICAgICAgX2xvZy5pbmZvKCcgIG9sZDog
JXMnLCBsaW5lKQotICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnICBuZXc6ICVzJywgbmV3X2xp
bmUpCi0gICAgICAgICAgICBlbGlmIGFjdGlvbiA9PSBBRERfUExBVEZPUk1TX0VYQ0VQVF9USElT
OgotICAgICAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgnOicpCi0gICAgICAgICAgICAg
ICAgX2xvZy5pbmZvKCdUZXN0IHVwZGF0ZWQ6ICcpCi0gICAgICAgICAgICAgICAgX2xvZy5pbmZv
KCcgIG9sZDogJXMnLCBsaW5lKQotICAgICAgICAgICAgICAgIGZvciBwIGluIHNlbGYuX3BvcnQu
dGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAgICAgICAgICAgICAgICBwID0gcC51cHBlcigp
Ci0gICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHRlbXAgc29sdXRpb24gZm9yIHJlYmFz
ZWxpbmluZyB0b29sLgotICAgICAgICAgICAgICAgICAgICAjIERvIG5vdCBhZGQgdGFncyBXSU4t
NyBhbmQgV0lOLVZJU1RBIHRvIHRlc3QgZXhwZWN0YXRpb25zCi0gICAgICAgICAgICAgICAgICAg
ICMgaWYgdGhlIG9yaWdpbmFsIGxpbmUgZG9lcyBub3Qgc3BlY2lmeSB0aGUgcGxhdGZvcm0KLSAg
ICAgICAgICAgICAgICAgICAgIyBvcHRpb24uCi0gICAgICAgICAgICAgICAgICAgICMgVE9ETyh2
aWN0b3J3KTogUmVtb3ZlIFdJTi1WSVNUQSBhbmQgV0lOLVdJTjcgb25jZSB3ZSBoYXZlCi0gICAg
ICAgICAgICAgICAgICAgICMgcmVsaWFibGUgV2luIDcgYW5kIFdpbiBWaXN0YSBidWlsZGJvdHMg
c2V0dXAuCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwIGluIChwbGF0Zm9ybS51cHBlcigp
LCAnV0lOLVZJU1RBJywgJ1dJTi1XSU43Jyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdf
b3B0aW9ucyA9IHBhcnRzWzBdICsgcCArICcgJwotICAgICAgICAgICAgICAgICAgICAgICAgbmV3
X2xpbmUgPSAoJyVzOiVzJyAlIChuZXdfb3B0aW9ucywgcGFydHNbMV0pKQotICAgICAgICAgICAg
ICAgICAgICAgICAgZl9uZXcuYXBwZW5kKG5ld19saW5lKQotICAgICAgICAgICAgICAgICAgICAg
ICAgX2xvZy5pbmZvKCcgIG5ldzogJXMnLCBuZXdfbGluZSkKLSAgICAgICAgICAgICAgICB0ZXN0
c191cGRhdGVkICs9IDEKLQogICAgICAgICBfbG9nLmluZm8oJ1RvdGFsIHRlc3RzIHJlbW92ZWQ6
ICVkJywgdGVzdHNfcmVtb3ZlZCkKICAgICAgICAgX2xvZy5pbmZvKCdUb3RhbCB0ZXN0cyB1cGRh
dGVkOiAlZCcsIHRlc3RzX3VwZGF0ZWQpCiAKQEAgLTU0OSwyNiArNTAxLDYgQEAgY2xhc3MgVGVz
dEV4cGVjdGF0aW9uc0ZpbGU6CiAgICAgICAgICAgUkVNT1ZFX1BMQVRGT1JNOiByZW1vdmUgdGhp
cyBwbGF0Zm9ybSBvcHRpb24gZnJvbSB0aGUgdGVzdC4KICAgICAgICAgICBBRERfUExBVEZPUk1T
X0VYQ0VQVF9USElTOiBhZGQgYWxsIHRoZSBwbGF0Zm9ybXMgZXhjZXB0IHRoaXMgb25lLgogICAg
ICAgICAiIiIKLSAgICAgICAgdGVzdCwgb3B0aW9ucywgZXhwZWN0YXRpb25zID0gc2VsZi5wYXJz
ZV9leHBlY3RhdGlvbnNfbGluZShsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubykKLSAgICAgICAgaWYg
bm90IHRlc3Qgb3IgdGVzdCBub3QgaW4gdGVzdHM6Ci0gICAgICAgICAgICByZXR1cm4gTk9fQ0hB
TkdFCi0KLSAgICAgICAgaGFzX2FueV9wbGF0Zm9ybSA9IEZhbHNlCi0gICAgICAgIGZvciBvcHRp
b24gaW4gb3B0aW9uczoKLSAgICAgICAgICAgIGlmIG9wdGlvbiBpbiBzZWxmLl9wb3J0LnRlc3Rf
cGxhdGZvcm1fbmFtZXMoKToKLSAgICAgICAgICAgICAgICBoYXNfYW55X3BsYXRmb3JtID0gVHJ1
ZQotICAgICAgICAgICAgICAgIGlmIG5vdCBvcHRpb24gPT0gcGxhdGZvcm06Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBSRU1PVkVfUExBVEZPUk0KLQotICAgICAgICAjIElmIHRoZXJlIGlz
IG5vIHBsYXRmb3JtIHNwZWNpZmllZCwgdGhlbiBpdCBtZWFucyBhcHBseSB0byBhbGwKLSAgICAg
ICAgIyBwbGF0Zm9ybXMuIFJldHVybiB0aGUgYWN0aW9uIHRvIGFkZCBhbGwgdGhlIHBsYXRmb3Jt
cyBleGNlcHQgdGhpcwotICAgICAgICAjIG9uZS4KLSAgICAgICAgaWYgbm90IGhhc19hbnlfcGxh
dGZvcm06Ci0gICAgICAgICAgICByZXR1cm4gQUREX1BMQVRGT1JNU19FWENFUFRfVEhJUwotCi0g
ICAgICAgIHJldHVybiBSRU1PVkVfVEVTVAotCiAgICAgZGVmIF9hZGRfdG9fYWxsX2V4cGVjdGF0
aW9ucyhzZWxmLCB0ZXN0LCBvcHRpb25zLCBleHBlY3RhdGlvbnMpOgogICAgICAgICAjIE1ha2Ug
YWxsIHBhdGhzIHVuaXgtc3R5bGUgc28gdGhlIGRhc2hib2FyZCBkb2Vzbid0IG5lZWQgdG8uCiAg
ICAgICAgIHRlc3QgPSB0ZXN0LnJlcGxhY2UoJ1xcJywgJy8nKQpAQCAtOTI5LDcgKzg2MSw3IEBA
IGNsYXNzIE1vZGlmaWVyTWF0Y2hlcihvYmplY3QpOgogICAgICAgICAnbWFjLWxlb3BhcmQnOiBb
J21hYycsICdsZW9wYXJkJ10sCiAgICAgICAgICd3aW4teHAnOiBbJ3dpbicsICd4cCddLAogICAg
ICAgICAnd2luLXZpc3RhJzogWyd3aW4nLCAndmlzdGEnXSwKLSAgICAgICAgJ3dpbi03JzogWyd3
aW4nLCAnd2luNyddLAorICAgICAgICAnd2luLXdpbjcnOiBbJ3dpbicsICd3aW43J10sCiAgICAg
fQogCiAgICAgIyBXZSBkb24ndCBpbmNsdWRlIHRoZSAibm9uZSIgbW9kaWZpZXIgYmVjYXVzZSBp
dCBpc24ndCBhY3R1YWxseSBsZWdhbC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
dGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggMDVkODA1ZGNiNjJhYjZiYzUxYWY3
MzQ1OTQyZTQ2ZDdhMDI2YzFhNS4uMzQwMWQ3YjkxNWQyOTg3MTJkYWY2YWQ4ZTNiOTFkZGVlZjQ3
NjAwOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlv
bnNfdW5pdHRlc3QucHkKQEAgLTM3Nyw0NCArMzc3LDE1IEBAIEJVR19URVNUIFdJTi1YUCA6IHBh
c3Nlcy90ZXh0Lmh0bWwgPSBURVhUCiAKIGNsYXNzIFJlYmFzZWxpbmluZ1Rlc3QoQmFzZSk6CiAg
ICAgIiIiVGVzdCByZWJhc2VsaW5pbmctc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4iIiIKLSAgICBk
ZWYgYXNzZXJ0UmVtb3ZlKHNlbGYsIHBsYXRmb3JtLCBpbnB1dF9leHBlY3RhdGlvbnMsIGV4cGVj
dGVkX2V4cGVjdGF0aW9ucyk6Ci0gICAgICAgIHNlbGYucGFyc2VfZXhwKGlucHV0X2V4cGVjdGF0
aW9ucykKLSAgICAgICAgdGVzdCA9IHNlbGYuZ2V0X3Rlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rl
eHQuaHRtbCcpCi0gICAgICAgIGFjdHVhbF9leHBlY3RhdGlvbnMgPSBzZWxmLl9leHAucmVtb3Zl
X3BsYXRmb3JtX2Zyb21fZXhwZWN0YXRpb25zKAotICAgICAgICAgICAgdGVzdCwgcGxhdGZvcm0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfZXhwZWN0YXRpb25zLCBhY3R1YWxf
ZXhwZWN0YXRpb25zKQorICAgIGRlZiB0ZXN0X3JlbW92ZShzZWxmKToKKyAgICAgICAgc2VsZi5w
YXJzZV9leHAoJ0JVR1ggUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9
IFRFWFQnKQorICAgICAgICBhY3R1YWxfZXhwZWN0YXRpb25zID0gc2VsZi5fZXhwLnJlbW92ZV90
ZXN0c19mcm9tX2V4cGVjdGF0aW9ucyhbJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCddKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBhY3R1YWxfZXhwZWN0YXRpb25zKQogCiAgICAg
ZGVmIHRlc3Rfbm9fZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcyhzZWxmKToKICAgICAgICAgc2Vs
Zi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlbGYuX2V4cC5nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKCkpLCAw
KQogCi0gICAgZGVmIHRlc3RfZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlc19leHBhbmQoc2VsZik6
Ci0gICAgICAgIHNlbGYucGFyc2VfZXhwKCIiIgotQlVHX1RFU1QgUkVCQVNFTElORSA6IGZhaWx1
cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFQKLSIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSksIDEpCi0KLSAg
ICBkZWYgdGVzdF9yZW1vdmVfZXhwYW5kKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJlbW92
ZSgnbWFjJywKLSAgICAgICAgICAgICdCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3Rl
ZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSBXSU4g
OiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nCi0gICAgICAgICAgICAnQlVH
WCBSRUJBU0VMSU5FIFdJTi1YUCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRc
bicpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfbWFjX3dpbihzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRSZW1vdmUoJ21hYycsCi0gICAgICAgICAgICAnQlVHWCBSRUJBU0VMSU5FIE1BQyBXSU4g
OiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAgICAgICAgJ0JV
R1ggUkVCQVNFTElORSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4n
KQotCi0gICAgZGVmIHRlc3RfcmVtb3ZlX21hY19tYWMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0UmVtb3ZlKCdtYWMnLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSBNQUMgOiBmYWls
dXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAgICAgICAgJycpCi0KLSAg
ICBkZWYgdGVzdF9yZW1vdmVfbm90aGluZyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSZW1v
dmUoJ21hYycsCi0gICAgICAgICAgICAnXG5cbicsCi0gICAgICAgICAgICAnXG5cbicpCi0KIAog
Y2xhc3MgTW9kaWZpZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNl
bGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW0ucHkKaW5kZXggYmFmMTg5MzNiNDRjYzJiZjc0YTJkNTFhMTRlY2UzNjFiMWQ0NjEy
My4uZDA4YzBiZGI1OTRkYzYxMTA2ZjIwNGUwZWYxYmJlZThkNmEzNTA1OCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBA
IC0yNjYsNyArMjY2LDkgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6CiAgICAgICAg
ICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRpb25zLmdldF90ZXN0c193aXRoX3Jlc3VsdF90
eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFt
ZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21hYycsICd3aW4nLCAnbGludXgnLCAnd2luLXhw
JywgJ3dpbi12aXN0YScsICd3aW4tNycpCisgICAgICAgIHJldHVybiAoJ21hYy1sZW9wYXJkJywg
J21hYy1zbm93bGVvcGFyZCcsCisgICAgICAgICAgICAgICAgJ3dpbi14cCcsICd3aW4tdmlzdGEn
LCAnd2luLXdpbjcnLAorICAgICAgICAgICAgICAgICdsaW51eCcpCiAKICAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1lKToKICAgICAgICAg
aWYgdGVzdF9wbGF0Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4
IDM5MjgxOGRkZjE1YzBkZjk0MTlhNzdmMTBkYjA3ZWRlYjY1ODFlYTQuLjRiYzE0NGZkYmRkMTY4
ODhmMjc1OTgwMmM1OWZiNDg0YWQzYTY4MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTIzMiw3ICsyMzIsNyBAQCBjbGFzcyBU
ZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgdXNlciA9IG1vY2t0b29sLk1vY2tVc2Vy
KCkKIAogICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBvcnRfbmFtZSA9PSAndGVzdCc6Ci0g
ICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMnCisgICAgICAgICAgICBwb3J0X25hbWUg
PSAndGVzdC1tYWMtbGVvcGFyZCcKIAogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNfcGF0aCA9
IExBWU9VVF9URVNUX0RJUiArICcvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQn
CiAgICAgICAgIGJhc2UuUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCBm
aWxlc3lzdGVtPWZpbGVzeXN0ZW0sIHVzZXI9dXNlciwKQEAgLTMwNCwyMyArMzA0LDE4IEBAIGNs
YXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RhdGlv
bnNfcGF0aAogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgbmFt
ZV9tYXAgPSB7Ci0gICAgICAgICAgICAndGVzdC1tYWMnOiAnbWFjJywKLSAgICAgICAgICAgICd0
ZXN0LXdpbic6ICd3aW4nLAotICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3dpbi14cCcsCi0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVdCisgICAgICAgIHJl
dHVybiBzZWxmLm5hbWUoKVs1Ol0KIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYp
OgotICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luJywgJ3dpbi14cCcpCisgICAgICAgIHJldHVy
biAoJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsCisgICAgICAgICAgICAgICAgJ3dp
bi14cCcsICd3aW4tdmlzdGEnLCAnd2luLXdpbjcnLAorICAgICAgICAgICAgICAgICdsaW51eCcp
CiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9y
bV9uYW1lKToKLSAgICAgICAgbmFtZV9tYXAgPSB7Ci0gICAgICAgICAgICAnbWFjJzogJ3Rlc3Qt
bWFjJywKLSAgICAgICAgICAgICd3aW4nOiAndGVzdC13aW4nLAotICAgICAgICAgICAgJ3dpbi14
cCc6ICd0ZXN0LXdpbi14cCcsCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3Rl
c3RfcGxhdGZvcm1fbmFtZV0KKyAgICAgICAgaWYgdGVzdF9wbGF0Zm9ybV9uYW1lIGluIHNlbGYu
dGVzdF9wbGF0Zm9ybV9uYW1lcygpOgorICAgICAgICAgICAgcmV0dXJuICd0ZXN0LScgKyB0ZXN0
X3BsYXRmb3JtX25hbWUKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVW5zdXBwb3J0ZWQgdGVz
dF9wbGF0Zm9ybV9uYW1lOiAlcycgJQorICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGxh
dGZvcm1fbmFtZSkKIAogICAgICMgRklYTUU6IFRoZXNlIG5leHQgdHdvIHJvdXRpbmVzIGFyZSBj
b3BpZWQgZnJvbSBiYXNlLnB5IHdpdGgKICAgICAjIHRoZSBjYWxscyB0byBwYXRoLmFic3BhdGhf
dG9fdXJpKCkgcmVtb3ZlZC4gV2Ugc2hvdWxkbid0IGhhdmUKQEAgLTM4Myw4ICszNzgsMTEgQEAg
Y2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdmVyc2lvbihzZWxmKToKICAgICAg
ICAgdmVyc2lvbl9tYXAgPSB7CiAgICAgICAgICAgICAndGVzdC13aW4teHAnOiAneHAnLAotICAg
ICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbjcnLAotICAgICAgICAgICAgJ3Rlc3QtbWFjJzogJ2xl
b3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnOiAnd2luNycsCisgICAgICAgICAg
ICAndGVzdC13aW4tdmlzdGEnOiAndmlzdGEnLAorICAgICAgICAgICAgJ3Rlc3QtbWFjLWxlb3Bh
cmQnOiAnbGVvcGFyZCcsCisgICAgICAgICAgICAndGVzdC1tYWMtc25vd2xlb3BhcmQnOiAnc25v
d2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiAnJywKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdmVyc2lvbl9tYXBbc2VsZi5fbmFtZV0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRf
dGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCA5ZjFkMzQ3NjhiNWI1NGU0MjBmOWVhNmVj
MDcwZWViZDg5YWYzZTJkLi4zM2MxNDY5ZDE5ODlkY2M4NGQ4YWYwNzYwNDdiZDNiNjc2ZjUzYTFh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2Vs
aW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQpAQCAtNjAs
MTcgKzYwLDI3IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGlt
cG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiBCQVNFTElORV9TVUZGSVhFUyA9ICgnLnR4dCcsICcucG5nJywgJy5jaGVja3N1bScpCi1S
RUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gKCdtYWMnLCAnd2luJywgJ3dpbi14cCcsICd3aW4t
dmlzdGEnLCAnbGludXgnKQorCisjIE9ubHkgdGhlIFdlYktpdCBjYW5hcmllcyBoYXZlIGEgZnVs
bCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMgYm90cyBkb24ndCBoYXZlIHZlcnNpb24t
c3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBoYXZlIHRoZSB0aHJlZQorIyBtYWluIERl
cHMgYm90cy4KK1JFQkFTRUxJTkVfR1BVX09SREVSID0gWydtYWMnLCAnd2luJywgJ2xpbnV4J10K
K1JFQkFTRUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUiA9IFsnbWFjLWxlb3BhcmQnLCAnbWFjLXNu
b3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXhwJywg
J3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xpbnV4J10KK1JFQkFTRUxJTkVfUExBVEZPUk1fT1JERVIgPSBbJ21hYycsICd3aW4nLCAn
bGludXgnXQorCiBBUkNISVZFX0RJUl9OQU1FX0RJQ1QgPSB7J3dpbic6ICdXZWJraXRfV2luX19k
ZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0YSc6ICd3ZWJraXQtZGJn
LXZpc3RhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXhwJzogJ1dlYmtpdF9XaW5f
X2RlcHNfJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjJzogJ1dlYmtpdF9NYWMxMF81
X19kZXBzXycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbnV4JzogJ1dlYmtpdF9MaW51
eF9fZGVwc18nLAogCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi1jYW5hcnknOiAnV2Vi
a2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0YS1jYW5hcnknOiAn
d2Via2l0LWRiZy12aXN0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi13aW43LWNh
bmFyeSc6ICdXZWJraXRfV2luNycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi12aXN0
YS1jYW5hcnknOiAnV2Via2l0X1Zpc3RhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lu
LXhwLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbWFj
LWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21h
Yy1sZW9wYXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgJ21hYy1zbm93bGVvcGFyZC1jYW5hcnknOiAnV2Via2l0X01hYzEwXzYnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICdsaW51eC1jYW5hcnknOiAnV2Via2l0X0xpbnV4JywKIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICdncHUtbWFjLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNV8t
X0dQVScsCkBAIC0yMDksOCArMjE5LDYgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAg
ICAgICAgYXJjaGl2ZV9maWxlLmNsb3NlKCkKIAogICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygn
VXBkYXRpbmcgcmViYXNlbGluZWQgdGVzdHMgaW4gZmlsZScsIHNlbGYuX3BsYXRmb3JtKQotICAg
ICAgICBzZWxmLl91cGRhdGVfcmViYXNlbGluZWRfdGVzdHNfaW5fZmlsZShiYWNrdXApCi0gICAg
ICAgIF9sb2cuaW5mbygnJykKIAogICAgICAgICBpZiBsZW4oc2VsZi5fcmViYXNlbGluaW5nX3Rl
c3RzKSAhPSBsZW4oc2VsZi5fcmViYXNlbGluZWRfdGVzdHMpOgogICAgICAgICAgICAgX2xvZy53
YXJuaW5nKCdOT1QgQUxMIFRFU1RTIFRIQVQgTkVFRCBSRUJBU0VMSU5JTkcgSEFWRSBCRUVOIFJF
QkFTRUxJTkVELicpCkBAIC0yMjIsNiArMjMwLDM1IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVj
dCk6CiAKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBfdXBkYXRlX3JlYmFzZWxpbmVk
X3Rlc3RzX2luX2ZpbGUoc2VsZiwgYmFja3VwKToKKyAgICAgICAgIiIiVXBkYXRlIHRoZSByZWJh
c2VsaW5lZCB0ZXN0cyBpbiB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlLgorCisgICAgICAgIEFyZ3M6
CisgICAgICAgICAgYmFja3VwOiBpZiBUcnVlLCBiYWNrdXAgdGhlIG9yaWdpbmFsIHRlc3QgZXhw
ZWN0YXRpb25zIGZpbGUuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICBubworICAgICAg
ICAiIiIKKworICAgICAgICBpZiBzZWxmLl9yZWJhc2VsaW5lZF90ZXN0czoKKyAgICAgICAgICAg
IG5ld19leHBlY3RhdGlvbnMgPSBzZWxmLl90ZXN0X2V4cGVjdGF0aW9ucy5yZW1vdmVfdGVzdHNf
ZnJvbV9leHBlY3RhdGlvbnMoCisgICAgICAgICAgICAgICAgc2VsZi5fcmViYXNlbGluZWRfdGVz
dHMpCisgICAgICAgICAgICBwYXRoID0gc2VsZi5fdGFyZ2V0X3BvcnQucGF0aF90b190ZXN0X2V4
cGVjdGF0aW9uc19maWxlKCkKKyAgICAgICAgICAgIGlmIGJhY2t1cDoKKyAgICAgICAgICAgICAg
ICBkYXRlX3N1ZmZpeCA9IHRpbWUuc3RyZnRpbWUoJyVZJW0lZCVIJU0lUycsIHRpbWUubG9jYWx0
aW1lKHRpbWUudGltZSgpKSkKKyAgICAgICAgICAgICAgICBiYWNrdXBfZmlsZSA9ICclcy5vcmln
LiVzJyAlIChwYXRoLCBkYXRlX3N1ZmZpeCkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9maWxl
c3lzdGVtLmV4aXN0cyhiYWNrdXBfZmlsZSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Zp
bGVzeXN0ZW0ucmVtb3ZlKGJhY2t1cF9maWxlKQorICAgICAgICAgICAgICAgIF9sb2cuaW5mbygn
U2F2aW5nIG9yaWdpbmFsIGZpbGUgdG8gIiVzIicsIGJhY2t1cF9maWxlKQorICAgICAgICAgICAg
ICAgIHNlbGYuX2ZpbGVzeXN0ZW0ubW92ZShwYXRoLCBiYWNrdXBfZmlsZSkKKworICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocGF0aCwgbmV3X2V4cGVjdGF0aW9u
cykKKyAgICAgICAgICAgICMgc2VsZi5fc2NtLmFkZChwYXRoKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgX2xvZy5pbmZvKCdObyB0ZXN0IHdhcyByZWJhc2VsaW5lZCBzbyBub3RoaW5nIHRv
IHJlbW92ZS4nKQorCisKKwogICAgIGRlZiBnZXRfcmViYXNlbGluaW5nX3Rlc3RzKHNlbGYpOgog
ICAgICAgICByZXR1cm4gc2VsZi5fcmViYXNlbGluaW5nX3Rlc3RzCiAKQEAgLTQ4NywzMyArNTI0
LDYgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybgogICAg
ICAgICBzZWxmLl9zY20uZGVsZXRlKGZpbGVuYW1lKQogCi0gICAgZGVmIF91cGRhdGVfcmViYXNl
bGluZWRfdGVzdHNfaW5fZmlsZShzZWxmLCBiYWNrdXApOgotICAgICAgICAiIiJVcGRhdGUgdGhl
IHJlYmFzZWxpbmVkIHRlc3RzIGluIHRlc3QgZXhwZWN0YXRpb25zIGZpbGUuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICBiYWNrdXA6IGlmIFRydWUsIGJhY2t1cCB0aGUgb3JpZ2luYWwgdGVz
dCBleHBlY3RhdGlvbnMgZmlsZS4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgIG5vCi0g
ICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3RzOgotICAgICAg
ICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25zLnJlbW92ZV9w
bGF0Zm9ybV9mcm9tX2V4cGVjdGF0aW9ucygKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWJhc2Vs
aW5lZF90ZXN0cywgc2VsZi5fcGxhdGZvcm0pCi0gICAgICAgICAgICBwYXRoID0gc2VsZi5fdGFy
Z2V0X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKLSAgICAgICAgICAgIGlm
IGJhY2t1cDoKLSAgICAgICAgICAgICAgICBkYXRlX3N1ZmZpeCA9IHRpbWUuc3RyZnRpbWUoJyVZ
JW0lZCVIJU0lUycsIHRpbWUubG9jYWx0aW1lKHRpbWUudGltZSgpKSkKLSAgICAgICAgICAgICAg
ICBiYWNrdXBfZmlsZSA9ICclcy5vcmlnLiVzJyAlIChwYXRoLCBkYXRlX3N1ZmZpeCkKLSAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhiYWNrdXBfZmlsZSk6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3ZlKGJhY2t1cF9maWxlKQotICAg
ICAgICAgICAgICAgIF9sb2cuaW5mbygnU2F2aW5nIG9yaWdpbmFsIGZpbGUgdG8gIiVzIicsIGJh
Y2t1cF9maWxlKQotICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ubW92ZShwYXRoLCBi
YWNrdXBfZmlsZSkKLQotICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUocGF0aCwgbmV3X2V4cGVjdGF0aW9ucykKLSAgICAgICAgICAgICMgc2VsZi5fc2NtLmFkZChw
YXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgX2xvZy5pbmZvKCdObyB0ZXN0IHdhcyBy
ZWJhc2VsaW5lZCBzbyBub3RoaW5nIHRvIHJlbW92ZS4nKQotCiAgICAgZGVmIF9jcmVhdGVfaHRt
bF9iYXNlbGluZV9maWxlcyhzZWxmLCBiYXNlbGluZV9mdWxscGF0aCk6CiAgICAgICAgICIiIkNy
ZWF0ZSBiYXNlbGluZSBmaWxlcyAob2xkLCBuZXcgYW5kIGRpZmYpIGluIGh0bWwgZGlyZWN0b3J5
LgogCkBAIC04MzksMTEgKzg0OSwxNSBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygibWFjIiwgImNocm9taXVtIiwgInF0Iiwg
ZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rv
ICJjaHJvbWl1bSIuJykpCiAgICAgb3B0aW9ucyA9IG9wdGlvbl9wYXJzZXIucGFyc2VfYXJncyhh
cmdzKVswXQorICAgIGlmIG9wdGlvbnMuZ3B1OgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9y
bXMgPSBSRUJBU0VMSU5FX0dQVV9PUkRFUgorICAgIGVsaWYgb3B0aW9ucy53ZWJraXRfY2FuYXJ5
OgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1dFQktJVF9DQU5B
UllfT1JERVIKKyAgICBlbHNlOgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJB
U0VMSU5FX1BMQVRGT1JNX09SREVSCisKICAgICBpZiBvcHRpb25zLnBsYXRmb3JtcyA9PSBOb25l
OgotICAgICAgICBpZiBvcHRpb25zLmdwdToKLSAgICAgICAgICAgIG9wdGlvbnMucGxhdGZvcm1z
ID0gJ21hYyx3aW4sbGludXgnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcHRpb25zLnBs
YXRmb3JtcyA9ICdtYWMsd2luLHdpbi14cCx3aW4tdmlzdGEsbGludXgnCisgICAgICAgIG9wdGlv
bnMucGxhdGZvcm1zID0gJywnLmpvaW4ob3B0aW9ucy5hbGxfcGxhdGZvcm1zKQogCiAgICAgdGFy
Z2V0X29wdGlvbnMgPSBjb3B5LmNvcHkob3B0aW9ucykKICAgICBpZiBvcHRpb25zLnRhcmdldF9w
bGF0Zm9ybSA9PSAnY2hyb21pdW0nOgpAQCAtOTEzLDcgKzkyNyw3IEBAIGRlZiByZWFsX21haW4o
b3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwg
dXJsX2ZldGNoCiAgICAgICAgIHJldHVybiAxCiAgICAgcGxhdGZvcm1zID0gW3Auc3RyaXAoKS5s
b3dlcigpIGZvciBwIGluIG9wdGlvbnMucGxhdGZvcm1zLnNwbGl0KCcsJyldCiAgICAgZm9yIHBs
YXRmb3JtIGluIHBsYXRmb3JtczoKLSAgICAgICAgaWYgbm90IHBsYXRmb3JtIGluIFJFQkFTRUxJ
TkVfUExBVEZPUk1fT1JERVI6CisgICAgICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBvcHRpb25zLmFs
bF9wbGF0Zm9ybXM6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAi
JXMiJyAlIChwbGF0Zm9ybSkpCiAgICAgICAgICAgICByZXR1cm4gMQogCkBAIC05MjIsNyArOTM2
LDcgQEAgZGVmIHJlYWxfbWFpbihvcHRpb25zLCB0YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29i
aiwgdGFyZ2V0X3BvcnRfb2JqLCB1cmxfZmV0Y2gKICAgICAjIHNlYXJjaCBwYXRocy4gSXQgc2lt
cGxpZmllcyBob3cgdGhlIHJlYmFzZWxpbmUgdG9vbCBkZXRlY3RzIGR1cGxpY2F0ZQogICAgICMg
YmFzZWxpbmVzLiBDaGVjayBfSXNEdXBCYXNlbGluZSBtZXRob2QgZm9yIGRldGFpbHMuCiAgICAg
cmViYXNlbGluZV9wbGF0Zm9ybXMgPSBbXQotICAgIGZvciBwbGF0Zm9ybSBpbiBSRUJBU0VMSU5F
X1BMQVRGT1JNX09SREVSOgorICAgIGZvciBwbGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9y
bXM6CiAgICAgICAgIGlmIHBsYXRmb3JtIGluIHBsYXRmb3JtczoKICAgICAgICAgICAgIHJlYmFz
ZWxpbmVfcGxhdGZvcm1zLmFwcGVuZChwbGF0Zm9ybSkKIApAQCAtOTM5LDEzICs5NTMsMTQgQEAg
ZGVmIHJlYWxfbWFpbihvcHRpb25zLCB0YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29iaiwgdGFy
Z2V0X3BvcnRfb2JqLCB1cmxfZmV0Y2gKICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFz
ZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3JtKQogICAgICAgICBpZiByZWJhc2VsaW5lci5ydW4oYmFj
a3VwKToKICAgICAgICAgICAgICMgT25seSBuZWVkIHRvIGJhY2t1cCBvbmUgb3JpZ2luYWwgY29w
eSBvZiB0ZXN0IGV4cGVjdGF0aW9uIGZpbGUuCi0gICAgICAgICAgICBiYWNrdXAgPSBGYWxzZQog
ICAgICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFzZWxpbmUgZG9uZScsIHBsYXRmb3Jt
KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFzZWxp
bmUgZmFpbGVkJywgcGxhdGZvcm0sIGxvZ2dpbmcuRVJST1IpCiAKICAgICAgICAgcmViYXNlbGlu
aW5nX3Rlc3RzIHw9IHNldChyZWJhc2VsaW5lci5nZXRfcmViYXNlbGluaW5nX3Rlc3RzKCkpCiAK
KyAgICByZWJhc2VsaW5lci5fdXBkYXRlX3JlYmFzZWxpbmVkX3Rlc3RzX2luX2ZpbGUoYmFja3Vw
KQorCiAgICAgX2xvZy5pbmZvKCcnKQogICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5p
bmcgcmVzdWx0IGNvbXBhcmlzb24gc3RhcnRlZCcsIE5vbmUpCiAgICAgaHRtbF9nZW5lcmF0b3Ig
PSBIdG1sR2VuZXJhdG9yKGhvc3RfcG9ydF9vYmosCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxp
bmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IDcxNzliYjdmYjU1NDZi
YmJkMTUyODlmZDAxODc4ZWQ5MTNiZjk4YmMuLmQ3ZjUzY2RhNzM5NzZmMWYwM2Y4ZGI4NDFhMWU0
Y2E4MWUzNWM5N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Vi
a2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC03MCw3ICs3MCw4IEBAIGRlZiB0ZXN0X29wdGlvbnMo
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BsYXRmb3JtPSdjaHJv
bWl1bScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXM9J21hYyx3aW4sd2luLXhwJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3BsYXRmb3Jtcz1yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5SRUJBU0VMSU5FX1dFQktJVF9DQU5BUllfT1JERVIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncHU9RmFsc2UpCiAKIApAQCAtODYsOCArODcsMTIgQEAgZGVmIHRlc3Rf
aG9zdF9wb3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4cGVjdGF0aW9ucyk6CiAKIGRlZiB0
ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0ZW0pOgogICAgIHVybHMgPSB7CisgICAgICAgIEFSQ0hJ
VkVfVVJMICsgJy9XZWJraXRfTWFjMTBfNi8nOiAnPGEgaHJlZj0iNC8iPicsCiAgICAgICAgIEFS
Q0hJVkVfVVJMICsgJy9XZWJraXRfTWFjMTBfNS8nOiAnPGEgaHJlZj0iMS8iPjxhIGhyZWY9IjIv
Ij4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1dpbjcvJzogJzxhIGhyZWY9IjEv
Ij4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1Zpc3RhLyc6ICc8YSBocmVmPSIx
LyI+JywKICAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9XaW4vJzogJzxhIGhyZWY9IjEv
Ij4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X0xpbnV4Lyc6ICc8YSBocmVmPSIx
LyI+JywKICAgICB9CiAgICAgcmV0dXJuIHVybGZldGNoZXJfbW9jay5tYWtlX2ZldGNoZXJfY2xz
KHVybHMpKGZpbGVzeXN0ZW0pCiAKQEAgLTk5LDcgKzEwNCwyNyBAQCBkZWYgdGVzdF96aXBfZmFj
dG9yeSgpOgogICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ25ldy1pbWFnZS1jaGVja3N1bScsCiAgICAgICAg
ICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwu
cG5nJzogJ25ldy1pbWFnZS1wbmcnLAogICAgICAgICB9LAotICAgICAgICBBUkNISVZFX1VSTCAr
ICcvV2Via2l0X1dpbi8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogeworICAgICAgICBBUkNI
SVZFX1VSTCArICcvV2Via2l0X01hYzEwXzYvNC9sYXlvdXQtdGVzdC1yZXN1bHRzLnppcCc6IHsK
KyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
LWFjdHVhbC50eHQnOiAnbmV3LWltYWdlLXR4dCcsCisgICAgICAgICAgICAnbGF5b3V0LXRlc3Qt
cmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwuY2hlY2tzdW0nOiAnbmV3LWlt
YWdlLWNoZWNrc3VtJywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVz
L2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5wbmcnOiAnbmV3LWltYWdlLXBuZycsCisgICAgICAgIH0s
CisgICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1Zpc3RhLzEvbGF5b3V0LXRlc3QtcmVz
dWx0cy56aXAnOiB7CisgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS1hY3R1YWwudHh0JzogJ3dpbi1pbWFnZS10eHQnLAorICAgICAgICAgICAg
J2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLmNoZWNr
c3VtJzogJ3dpbi1pbWFnZS1jaGVja3N1bScsCisgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVz
dWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwucG5nJzogJ3dpbi1pbWFnZS1wbmcn
LAorICAgICAgICB9LAorICAgICAgICAgIEFSQ0hJVkVfVVJMICsgJy9XZWJraXRfV2luNy8xL2xh
eW91dC10ZXN0LXJlc3VsdHMuemlwJzogeworICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnR4dCc6ICd3aW4taW1hZ2UtdHh0JywK
KyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
LWFjdHVhbC5jaGVja3N1bSc6ICd3aW4taW1hZ2UtY2hlY2tzdW0nLAorICAgICAgICAgICAgJ2xh
eW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnBuZyc6ICd3
aW4taW1hZ2UtcG5nJywKKyAgICAgICAgfSwKKyAgICAgICAgICBBUkNISVZFX1VSTCArICcvV2Vi
a2l0X1dpbi8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogeworICAgICAgICAgICAgJ2xheW91
dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnR4dCc6ICd3aW4t
aW1hZ2UtdHh0JywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLWFjdHVhbC5jaGVja3N1bSc6ICd3aW4taW1hZ2UtY2hlY2tzdW0nLAorICAg
ICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0
dWFsLnBuZyc6ICd3aW4taW1hZ2UtcG5nJywKKyAgICAgICAgfSwKKyAgICAgICAgICBBUkNISVZF
X1VSTCArICcvV2Via2l0X0xpbnV4LzEvbGF5b3V0LXRlc3QtcmVzdWx0cy56aXAnOiB7CiAgICAg
ICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1
YWwudHh0JzogJ3dpbi1pbWFnZS10eHQnLAogICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ3dpbi1pbWFnZS1j
aGVja3N1bScsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS1hY3R1YWwucG5nJzogJ3dpbi1pbWFnZS1wbmcnLApAQCAtMjAxLDEwICsyMjYs
OSBAQCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAj
ICAgIGNyZWF0ZSBpbWFnZSBkaWZmcyAoRklYTUU/KSBhbmQgZG9uJ3QgZGlzcGxheSB0aGUgY2hl
Y2tzdW1zLgogICAgICAgICAjICopIDEgdXBkYXRlZCB0ZXN0X2V4cGVjdGF0aW9ucyBmaWxlCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcyksIDEy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNr
b3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0J10sICcn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNr
b3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
LWV4cGVjdGVkLmNoZWNrc3VtJ10sICduZXctaW1hZ2UtY2hlY2tzdW0nKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3Rz
L3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnBuZydd
LCAnbmV3LWltYWdlLXBuZycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5m
aWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQudHh0J10sICduZXctaW1hZ2UtdHh0JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
LWV4cGVjdGVkLmNoZWNrc3VtJ10sICduZXctaW1hZ2UtY2hlY2tzdW0nKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3Rz
L3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0
ZWQucG5nJ10sICduZXctaW1hZ2UtcG5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxl
c3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1h
Yy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4dCddLCAnbmV3LWlt
YWdlLXR4dCcpCiAKICAgICBkZWYgdGVzdF9hbGxfcGxhdGZvcm1zKHNlbGYpOgogICAgICAgICBy
ZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJhc2VsaW5lcigKQEAgLTIxNCwx
MiArMjM4LDkgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgIyBOb3RlIHRoYXQgZXZlbiB0aG91Z2ggdGhlIHJlYmFzZWxpbmUgaXMgbWFya2VkIGZv
ciBhbGwgcGxhdGZvcm1zLCBlYWNoCiAgICAgICAgICMgcmViYXNlbGluZXIgb25seSBldmVyIGRv
ZXMgb25lLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlc3lzdGVtLndyaXR0ZW5f
ZmlsZXMpLCAxMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycv
dGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25z
LnR4dCddLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSBXSU4gOiBmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS5odG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICdCVUdYIFJFQkFTRUxJTkUg
V0lOLVhQIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91
dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVk
LmNoZWNrc3VtJ10sICduZXctaW1hZ2UtY2hlY2tzdW0nKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3Jt
L3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnBuZyddLCAnbmV3LWlt
YWdlLXBuZycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rl
c3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UtZXhwZWN0ZWQudHh0J10sICduZXctaW1hZ2UtdHh0JykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVk
LmNoZWNrc3VtJ10sICduZXctaW1hZ2UtY2hlY2tzdW0nKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3Jt
L3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQucG5nJ10s
ICduZXctaW1hZ2UtcG5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZp
bGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJk
L2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4dCddLCAnbmV3LWltYWdlLXR4dCcp
CiAKICAgICBkZWYgdGVzdF9kaWZmX2Jhc2VsaW5lc190eHQoc2VsZik6CiAgICAgICAgIHJlYmFz
ZWxpbmVyLCBmaWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKCIiKQpAQCAtMjQzLDIz
ICsyNjQsMjYgQEAgY2xhc3MgVGVzdFJlYWxNYWluKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgZXhwZWN0YXRpb25zID0gIkJVR1ggUkVCQVNFTElORSA6IGZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwgPSBJTUFHRSIKIAogICAgICAgICBvcHRpb25zID0gdGVzdF9vcHRpb25zKCkKKyAg
ICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSAnLCcuam9pbihvcHRpb25zLmFsbF9wbGF0Zm9ybXMp
CiAKICAgICAgICAgaG9zdF9wb3J0X29iaiwgZmlsZXN5c3RlbSA9IHRlc3RfaG9zdF9wb3J0X2Fu
ZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4cGVjdGF0aW9ucykKICAgICAgICAgdXJsX2ZldGNoZXIg
PSB0ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0ZW0pCiAgICAgICAgIHppcF9mYWN0b3J5ID0gdGVz
dF96aXBfZmFjdG9yeSgpCiAgICAgICAgIG1vY2tfc2NtID0gbW9ja3Rvb2wuTW9ja1NDTSgpCiAg
ICAgICAgIG9jID0gb3V0cHV0Y2FwdHVyZS5PdXRwdXRDYXB0dXJlKCkKLSAgICAgICAgb2MuY2Fw
dHVyZV9vdXRwdXQoKQotICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5y
ZWFsX21haW4ob3B0aW9ucywgb3B0aW9ucywgaG9zdF9wb3J0X29iaiwKLSAgICAgICAgICAgIGhv
c3RfcG9ydF9vYmosIHVybF9mZXRjaGVyLCB6aXBfZmFjdG9yeSwgbW9ja19zY20pCi0gICAgICAg
IG9jLnJlc3RvcmVfb3V0cHV0KCkKKyAgICAgICAgIyBvYy5jYXB0dXJlX291dHB1dCgpCisgICAg
ICAgIHJlcyA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnJlYWxfbWFpbihvcHRp
b25zLCBvcHRpb25zLAorICAgICAgICAgICAgaG9zdF9wb3J0X29iaiwgaG9zdF9wb3J0X29iaiwg
dXJsX2ZldGNoZXIsIHppcF9mYWN0b3J5LCBtb2NrX3NjbSkKKyAgICAgICAgIyBvYy5yZXN0b3Jl
X291dHB1dCgpCiAKICAgICAgICAgIyBXZSBleHBlY3QgdG8gaGF2ZSB3cml0dGVuIDM1IGZpbGVz
IG92ZXIgdGhlIGNvdXJzZSBvZiB0aGlzIHJlYmFzZWxpbmU6CiAgICAgICAgICMgKikgMTEgZmls
ZXMgKiAzIHBvcnRzIGZvciB0aGUgbmV3IGJhc2VsaW5lcyBhbmQgdGhlIGRpZmZzIChzZWUgYnJl
YWtkb3duCiAgICAgICAgICMgICAgdW5kZXIgdGVzdF9vbmVfcGxhdGZvcm0sIGFib3ZlKQogICAg
ICAgICAjICopIHRoZSB1cGRhdGVkIHRlc3RfZXhwZWN0YXRpb25zIGZpbGUKICAgICAgICAgIyAq
KSB0aGUgcmViYXNlbGluZSByZXN1bHRzIGh0bWwgZmlsZQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihmaWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAzNSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXMsIDApCisgICAgICAgICMgRklYTUU6IGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBu
dW1iZXIgaGVyZS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0
dGVuX2ZpbGVzKSwgNjgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxl
c1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0
aW9ucy50eHQnXSwgJycpCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXgg
NzA3NmVmMmU1YWYzMmUyMDRhYTVhNzk4MTY4NjY5MzNhYzZlYmZlZi4uMTlkNmRhMTE1ZTE0ZWYx
NGVkNWYzYzA3NGQ1NTRhZmQxYWZhNjFjYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0
LnB5CkBAIC02MTYsOSArNjE2LDkgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvdGVzdHNfcnVuMC50eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xp
c3QpLCA2KQogICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCi0gICAgICAg
ICAgICAiL3BsYXRmb3JtL3Rlc3QtbWFjL3Bhc3Nlcy9pbWFnZSIpCisgICAgICAgICAgICAiL3Bs
YXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvcGFzc2VzL2ltYWdlIikKICAgICAgICAgc2VsZi5hc3Nl
cnRCYXNlbGluZXMoZmlsZV9saXN0LAotICAgICAgICAgICAgIi9wbGF0Zm9ybS90ZXN0LW1hYy9m
YWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlIikKKyAgICAgICAgICAgICIvcGxhdGZvcm0v
dGVzdC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlIikKIAogCiBj
bGFzcyBEcnlydW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87652</attachid>
            <date>2011-03-30 18:40:59 -0700</date>
            <delta_ts>2011-04-01 12:15:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55608-20110330184058.patch</filename>
            <type>text/plain</type>
            <size>33486</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZGM1MzU1MGFkNjJlMTU1ZDEzNWMyZGQwMTI0OGE1ZTFk
ODFjZGY5Li45MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYyZTZmMTUzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aAorICAgICAg
ICB2ZXJzaW9uLXNwZWNpZmljIGJhc2VsaW5lcy4gVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSB0b29s
IHRvIHVzZQorICAgICAgICBhbGwgb2YgdGhlIHZlcnNpb24tc3BlY2lmaWMgYm90cyBvbiB0aGUg
Y2FuYXJpZXMsIGFuZCB3aWxsIG5vdworICAgICAgICBhdHRlbXB0IHRvIHJlYmFzZWxpbmUgYWxs
IG9mIHRoZSB2ZXJzaW9ucyBieSBkZWZhdWx0LCBhbHRob3VnaAorICAgICAgICBpdCB3aWxsIG5v
dCB1cGRhdGUgYm90aCBHUFUgYW5kIENQVSB2ZXJzaW9ucy4KKyAgICAgICAgCisgICAgICAgIEFs
c28sIGl0IHdpbGwgbm8gbG9uZ2VyIG1vZGlmeSB0aGUgdGVzdF9leHBlY3RhdGlvbnMudHh0IGZp
bGUKKyAgICAgICAgKmF0IGFsbCouIFlvdSB3aWxsIGhhdmUgdG8gbWFudWFsbHkgZGVsZXRlIHRo
ZSBSRUJBU0VMSU5FIGxpbmVzCisgICAgICAgIGFmdGVyIHJ1bm5pbmcgdGhlIHRvb2wgYW5kIGRl
dGVybWluaW5nIHRoYXQgaXQgZGlkIHdoYXQgeW91CisgICAgICAgIHdhbnRlZCBpdCB0byBkby4g
VGhpcyBzaG91bGQgYmUgZml4ZWQgaW4gYSBzZXBhcmF0ZSBidWcgLSBzZWUKKyAgICAgICAgd2Vi
a2l0IGJ1ZyAjNTUxOTEuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU1NjA4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191
bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJh
c2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weToKKwogMjAxMS0wMy0zMCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IENocmlzIE1hcnJpbi4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0
YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggMTMyY2NjMjBmNWQ0YmQ3YjA3MWExMmI5
NDFhY2VlNDNhODJjNzVkMi4uN2QyYzkxYmI2ODI3OTAxMGE1MjQ5ZTE0OTA5NGViNjgzNjhiNzVk
MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0
X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTE2
NiwxMCArMTY2LDYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICBkZWYgaGFzX21vZGlm
aWVyKHNlbGYsIHRlc3QsIG1vZGlmaWVyKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVk
X2ZhaWx1cmVzLmhhc19tb2RpZmllcih0ZXN0LCBtb2RpZmllcikKIAotICAgIGRlZiByZW1vdmVf
cGxhdGZvcm1fZnJvbV9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdHMsIHBsYXRmb3JtKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLnJlbW92ZV9wbGF0Zm9ybV9mcm9tX2V4
cGVjdGF0aW9ucygKLSAgICAgICAgICAgIHRlc3RzLCBwbGF0Zm9ybSkKLQogCiBkZWYgc3RyaXBf
Y29tbWVudHMobGluZSk6CiAgICAgIiIiU3RyaXBzIGNvbW1lbnRzIGZyb20gYSBsaW5lIGFuZCBy
ZXR1cm4gTm9uZSBpZiB0aGUgbGluZSBpcyBlbXB0eQpAQCAtNDM2LDc2ICs0MzIsNiBAQCBjbGFz
cyBUZXN0RXhwZWN0YXRpb25zRmlsZToKICAgICBkZWYgZ2V0X25vbl9mYXRhbF9lcnJvcnMoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBzZWxmLl9ub25fZmF0YWxfZXJyb3JzCiAKLSAgICBkZWYgcmVt
b3ZlX3BsYXRmb3JtX2Zyb21fZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBwbGF0Zm9ybSk6Ci0g
ICAgICAgICIiIlJldHVybnMgYSBjb3B5IG9mIHRoZSBleHBlY3RhdGlvbnMgd2l0aCB0aGUgdGVz
dHMgbWF0Y2hpbmcgdGhlCi0gICAgICAgIHBsYXRmb3JtIHJlbW92ZWQuCi0KLSAgICAgICAgSWYg
YSB0ZXN0IGlzIGluIHRoZSB0ZXN0IGxpc3QgYW5kIGhhcyBhbiBvcHRpb24gdGhhdCBtYXRjaGVz
IHRoZSBnaXZlbgotICAgICAgICBwbGF0Zm9ybSwgcmVtb3ZlIHRoZSBtYXRjaGluZyBwbGF0Zm9y
bSBhbmQgc2F2ZSB0aGUgdXBkYXRlZCB0ZXN0IGJhY2sKLSAgICAgICAgdG8gdGhlIGZpbGUuIElm
IG5vIG90aGVyIHBsYXRmb3JtcyByZW1haW5pbmcgYWZ0ZXIgcmVtb3ZhbCwgZGVsZXRlIHRoZQot
ICAgICAgICB0ZXN0IGZyb20gdGhlIGZpbGUuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICB0
ZXN0czogbGlzdCBvZiB0ZXN0cyB0aGF0IG5lZWQgdG8gdXBkYXRlLi4KLSAgICAgICAgICBwbGF0
Zm9ybTogd2hpY2ggcGxhdGZvcm0gb3B0aW9uIHRvIHJlbW92ZS4KLQotICAgICAgICBSZXR1cm5z
OgotICAgICAgICAgIHRoZSB1cGRhdGVkIHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
YXNzZXJ0KHBsYXRmb3JtKQotICAgICAgICBmX29yaWcgPSBzZWxmLl9nZXRfaXRlcmFibGVfZXhw
ZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucykKLSAgICAgICAgZl9uZXcgPSBbXQotCi0gICAg
ICAgIHRlc3RzX3JlbW92ZWQgPSAwCi0gICAgICAgIHRlc3RzX3VwZGF0ZWQgPSAwCi0gICAgICAg
IGxpbmVubyA9IDAKLSAgICAgICAgZm9yIGxpbmUgaW4gZl9vcmlnOgotICAgICAgICAgICAgbGlu
ZW5vICs9IDEKLSAgICAgICAgICAgIGFjdGlvbiA9IHNlbGYuX2dldF9wbGF0Zm9ybV91cGRhdGVf
YWN0aW9uKGxpbmUsIGxpbmVubywgdGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSkKLSAgICAgICAgICAgIGFzc2VydChh
Y3Rpb24gaW4gKE5PX0NIQU5HRSwgUkVNT1ZFX1RFU1QsIFJFTU9WRV9QTEFURk9STSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFERF9QTEFURk9STVNfRVhDRVBUX1RISVMpKQotICAg
ICAgICAgICAgaWYgYWN0aW9uID09IE5PX0NIQU5HRToKLSAgICAgICAgICAgICAgICAjIFNhdmUg
dGhlIG9yaWdpbmFsIGxpbmUgYmFjayB0byB0aGUgZmlsZQotICAgICAgICAgICAgICAgIF9sb2cu
ZGVidWcoJ05vIGNoYW5nZSB0byB0ZXN0OiAlcycsIGxpbmUpCi0gICAgICAgICAgICAgICAgZl9u
ZXcuYXBwZW5kKGxpbmUpCi0gICAgICAgICAgICBlbGlmIGFjdGlvbiA9PSBSRU1PVkVfVEVTVDoK
LSAgICAgICAgICAgICAgICB0ZXN0c19yZW1vdmVkICs9IDEKLSAgICAgICAgICAgICAgICBfbG9n
LmluZm8oJ1Rlc3QgcmVtb3ZlZDogJXMnLCBsaW5lKQotICAgICAgICAgICAgZWxpZiBhY3Rpb24g
PT0gUkVNT1ZFX1BMQVRGT1JNOgotICAgICAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgn
OicpCi0gICAgICAgICAgICAgICAgbmV3X29wdGlvbnMgPSBwYXJ0c1swXS5yZXBsYWNlKHBsYXRm
b3JtLnVwcGVyKCkgKyAnICcsICcnLCAxKQotICAgICAgICAgICAgICAgIG5ld19saW5lID0gKCcl
czolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKLSAgICAgICAgICAgICAgICBmX25ldy5h
cHBlbmQobmV3X2xpbmUpCi0gICAgICAgICAgICAgICAgdGVzdHNfdXBkYXRlZCArPSAxCi0gICAg
ICAgICAgICAgICAgX2xvZy5pbmZvKCdUZXN0IHVwZGF0ZWQ6ICcpCi0gICAgICAgICAgICAgICAg
X2xvZy5pbmZvKCcgIG9sZDogJXMnLCBsaW5lKQotICAgICAgICAgICAgICAgIF9sb2cuaW5mbygn
ICBuZXc6ICVzJywgbmV3X2xpbmUpCi0gICAgICAgICAgICBlbGlmIGFjdGlvbiA9PSBBRERfUExB
VEZPUk1TX0VYQ0VQVF9USElTOgotICAgICAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgn
OicpCi0gICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdUZXN0IHVwZGF0ZWQ6ICcpCi0gICAgICAg
ICAgICAgICAgX2xvZy5pbmZvKCcgIG9sZDogJXMnLCBsaW5lKQotICAgICAgICAgICAgICAgIGZv
ciBwIGluIHNlbGYuX3BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAgICAgICAgICAg
ICAgICBwID0gcC51cHBlcigpCi0gICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHRlbXAg
c29sdXRpb24gZm9yIHJlYmFzZWxpbmluZyB0b29sLgotICAgICAgICAgICAgICAgICAgICAjIERv
IG5vdCBhZGQgdGFncyBXSU4tNyBhbmQgV0lOLVZJU1RBIHRvIHRlc3QgZXhwZWN0YXRpb25zCi0g
ICAgICAgICAgICAgICAgICAgICMgaWYgdGhlIG9yaWdpbmFsIGxpbmUgZG9lcyBub3Qgc3BlY2lm
eSB0aGUgcGxhdGZvcm0KLSAgICAgICAgICAgICAgICAgICAgIyBvcHRpb24uCi0gICAgICAgICAg
ICAgICAgICAgICMgVE9ETyh2aWN0b3J3KTogUmVtb3ZlIFdJTi1WSVNUQSBhbmQgV0lOLVdJTjcg
b25jZSB3ZSBoYXZlCi0gICAgICAgICAgICAgICAgICAgICMgcmVsaWFibGUgV2luIDcgYW5kIFdp
biBWaXN0YSBidWlsZGJvdHMgc2V0dXAuCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwIGlu
IChwbGF0Zm9ybS51cHBlcigpLCAnV0lOLVZJU1RBJywgJ1dJTi1XSU43Jyk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBuZXdfb3B0aW9ucyA9IHBhcnRzWzBdICsgcCArICcgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3X2xpbmUgPSAoJyVzOiVzJyAlIChuZXdfb3B0aW9ucywgcGFydHNb
MV0pKQotICAgICAgICAgICAgICAgICAgICAgICAgZl9uZXcuYXBwZW5kKG5ld19saW5lKQotICAg
ICAgICAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCcgIG5ldzogJXMnLCBuZXdfbGluZSkKLSAg
ICAgICAgICAgICAgICB0ZXN0c191cGRhdGVkICs9IDEKLQotICAgICAgICBfbG9nLmluZm8oJ1Rv
dGFsIHRlc3RzIHJlbW92ZWQ6ICVkJywgdGVzdHNfcmVtb3ZlZCkKLSAgICAgICAgX2xvZy5pbmZv
KCdUb3RhbCB0ZXN0cyB1cGRhdGVkOiAlZCcsIHRlc3RzX3VwZGF0ZWQpCi0KLSAgICAgICAgcmV0
dXJuICIiLmpvaW4oZl9uZXcpCi0KICAgICBkZWYgcGFyc2VfZXhwZWN0YXRpb25zX2xpbmUoc2Vs
ZiwgbGluZSwgbGluZW5vKToKICAgICAgICAgIiIiUGFyc2VzIGEgbGluZSBmcm9tIHRlc3RfZXhw
ZWN0YXRpb25zLnR4dCBhbmQgcmV0dXJucyBhIHR1cGxlCiAgICAgICAgIHdpdGggdGhlIHRlc3Qg
cGF0aCwgb3B0aW9ucyBhcyBhIGxpc3QsIGV4cGVjdGF0aW9ucyBhcyBhIGxpc3QuIiIiCkBAIC01
MzQsNDEgKzQ2MCw2IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogCiAgICAgICAgIHJl
dHVybiAodGVzdCwgb3B0aW9ucywgZXhwZWN0YXRpb25zKQogCi0gICAgZGVmIF9nZXRfcGxhdGZv
cm1fdXBkYXRlX2FjdGlvbihzZWxmLCBsaW5lLCBsaW5lbm8sIHRlc3RzLCBwbGF0Zm9ybSk6Ci0g
ICAgICAgICIiIkNoZWNrIHRoZSBwbGF0Zm9ybSBvcHRpb24gYW5kIHJldHVybiB0aGUgYWN0aW9u
IG5lZWRzIHRvIGJlIHRha2VuLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgbGluZTogY3Vy
cmVudCBsaW5lIGluIHRlc3QgZXhwZWN0YXRpb25zIGZpbGUuCi0gICAgICAgICAgbGluZW5vOiBj
dXJyZW50IGxpbmUgbnVtYmVyIG9mIGxpbmUKLSAgICAgICAgICB0ZXN0czogbGlzdCBvZiB0ZXN0
cyB0aGF0IG5lZWQgdG8gdXBkYXRlLi4KLSAgICAgICAgICBwbGF0Zm9ybTogd2hpY2ggcGxhdGZv
cm0gb3B0aW9uIHRvIHJlbW92ZS4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgIE5PX0NI
QU5HRTogbm8gY2hhbmdlIHRvIHRoZSBsaW5lIChjb21tZW50cywgdGVzdCBub3QgaW4gdGhlIGxp
c3QgZXRjKQotICAgICAgICAgIFJFTU9WRV9URVNUOiByZW1vdmUgdGhlIHRlc3QgZnJvbSBmaWxl
LgotICAgICAgICAgIFJFTU9WRV9QTEFURk9STTogcmVtb3ZlIHRoaXMgcGxhdGZvcm0gb3B0aW9u
IGZyb20gdGhlIHRlc3QuCi0gICAgICAgICAgQUREX1BMQVRGT1JNU19FWENFUFRfVEhJUzogYWRk
IGFsbCB0aGUgcGxhdGZvcm1zIGV4Y2VwdCB0aGlzIG9uZS4KLSAgICAgICAgIiIiCi0gICAgICAg
IHRlc3QsIG9wdGlvbnMsIGV4cGVjdGF0aW9ucyA9IHNlbGYucGFyc2VfZXhwZWN0YXRpb25zX2xp
bmUobGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsaW5lbm8pCi0gICAgICAgIGlmIG5vdCB0ZXN0IG9yIHRlc3Qg
bm90IGluIHRlc3RzOgotICAgICAgICAgICAgcmV0dXJuIE5PX0NIQU5HRQotCi0gICAgICAgIGhh
c19hbnlfcGxhdGZvcm0gPSBGYWxzZQotICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0g
ICAgICAgICAgICBpZiBvcHRpb24gaW4gc2VsZi5fcG9ydC50ZXN0X3BsYXRmb3JtX25hbWVzKCk6
Ci0gICAgICAgICAgICAgICAgaGFzX2FueV9wbGF0Zm9ybSA9IFRydWUKLSAgICAgICAgICAgICAg
ICBpZiBub3Qgb3B0aW9uID09IHBsYXRmb3JtOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
UkVNT1ZFX1BMQVRGT1JNCi0KLSAgICAgICAgIyBJZiB0aGVyZSBpcyBubyBwbGF0Zm9ybSBzcGVj
aWZpZWQsIHRoZW4gaXQgbWVhbnMgYXBwbHkgdG8gYWxsCi0gICAgICAgICMgcGxhdGZvcm1zLiBS
ZXR1cm4gdGhlIGFjdGlvbiB0byBhZGQgYWxsIHRoZSBwbGF0Zm9ybXMgZXhjZXB0IHRoaXMKLSAg
ICAgICAgIyBvbmUuCi0gICAgICAgIGlmIG5vdCBoYXNfYW55X3BsYXRmb3JtOgotICAgICAgICAg
ICAgcmV0dXJuIEFERF9QTEFURk9STVNfRVhDRVBUX1RISVMKLQotICAgICAgICByZXR1cm4gUkVN
T1ZFX1RFU1QKLQogICAgIGRlZiBfYWRkX3RvX2FsbF9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdCwg
b3B0aW9ucywgZXhwZWN0YXRpb25zKToKICAgICAgICAgIyBNYWtlIGFsbCBwYXRocyB1bml4LXN0
eWxlIHNvIHRoZSBkYXNoYm9hcmQgZG9lc24ndCBuZWVkIHRvLgogICAgICAgICB0ZXN0ID0gdGVz
dC5yZXBsYWNlKCdcXCcsICcvJykKQEAgLTkyOSw3ICs4MjAsNyBAQCBjbGFzcyBNb2RpZmllck1h
dGNoZXIob2JqZWN0KToKICAgICAgICAgJ21hYy1sZW9wYXJkJzogWydtYWMnLCAnbGVvcGFyZCdd
LAogICAgICAgICAnd2luLXhwJzogWyd3aW4nLCAneHAnXSwKICAgICAgICAgJ3dpbi12aXN0YSc6
IFsnd2luJywgJ3Zpc3RhJ10sCi0gICAgICAgICd3aW4tNyc6IFsnd2luJywgJ3dpbjcnXSwKKyAg
ICAgICAgJ3dpbi13aW43JzogWyd3aW4nLCAnd2luNyddLAogICAgIH0KIAogICAgICMgV2UgZG9u
J3QgaW5jbHVkZSB0aGUgIm5vbmUiIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXNuJ3QgYWN0dWFsbHkg
bGVnYWwuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25z
X3VuaXR0ZXN0LnB5CmluZGV4IDA1ZDgwNWRjYjYyYWI2YmM1MWFmNzM0NTk0MmU0NmQ3YTAyNmMx
YTUuLmRmMzY0YTBlZjg5YzVjNDEwNzc4YzVjN2UyNmZmNzFhOTY2NTdjYmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3Rf
ZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBA
IC0zNzcsNDQgKzM3NywxMSBAQCBCVUdfVEVTVCBXSU4tWFAgOiBwYXNzZXMvdGV4dC5odG1sID0g
VEVYVAogCiBjbGFzcyBSZWJhc2VsaW5pbmdUZXN0KEJhc2UpOgogICAgICIiIlRlc3QgcmViYXNl
bGluaW5nLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIiIiCi0gICAgZGVmIGFzc2VydFJlbW92ZShz
ZWxmLCBwbGF0Zm9ybSwgaW5wdXRfZXhwZWN0YXRpb25zLCBleHBlY3RlZF9leHBlY3RhdGlvbnMp
OgotICAgICAgICBzZWxmLnBhcnNlX2V4cChpbnB1dF9leHBlY3RhdGlvbnMpCi0gICAgICAgIHRl
c3QgPSBzZWxmLmdldF90ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnKQotICAgICAg
ICBhY3R1YWxfZXhwZWN0YXRpb25zID0gc2VsZi5fZXhwLnJlbW92ZV9wbGF0Zm9ybV9mcm9tX2V4
cGVjdGF0aW9ucygKLSAgICAgICAgICAgIHRlc3QsIHBsYXRmb3JtKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkX2V4cGVjdGF0aW9ucywgYWN0dWFsX2V4cGVjdGF0aW9ucykKLQor
ICAgICMgRklYTUU6IGFkZCBpbiB0ZXN0cyBvbmNlIHdlIGFyZSBhY3R1YWxseSBkZWxldGluZyBs
aW5lcyBhZ2Fpbi4KICAgICBkZWYgdGVzdF9ub19nZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKHNl
bGYpOgogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMo
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2VsaW5p
bmdfZmFpbHVyZXMoKSksIDApCiAKLSAgICBkZWYgdGVzdF9nZXRfcmViYXNlbGluaW5nX2ZhaWx1
cmVzX2V4cGFuZChzZWxmKToKLSAgICAgICAgc2VsZi5wYXJzZV9leHAoIiIiCi1CVUdfVEVTVCBS
RUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sID0gVEVYVAotIiIiKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLl9leHAuZ2V0X3JlYmFzZWxpbmluZ19mYWls
dXJlcygpKSwgMSkKLQotICAgIGRlZiB0ZXN0X3JlbW92ZV9leHBhbmQoc2VsZik6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0UmVtb3ZlKCdtYWMnLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSA6
IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbicsCi0gICAgICAgICAgICAnQlVH
WCBSRUJBU0VMSU5FIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbicK
LSAgICAgICAgICAgICdCVUdYIFJFQkFTRUxJTkUgV0lOLVhQIDogZmFpbHVyZXMvZXhwZWN0ZWQv
dGV4dC5odG1sID0gVEVYVFxuJykKLQotICAgIGRlZiB0ZXN0X3JlbW92ZV9tYWNfd2luKHNlbGYp
OgotICAgICAgICBzZWxmLmFzc2VydFJlbW92ZSgnbWFjJywKLSAgICAgICAgICAgICdCVUdYIFJF
QkFTRUxJTkUgTUFDIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbics
Ci0gICAgICAgICAgICAnQlVHWCBSRUJBU0VMSU5FIFdJTiA6IGZhaWx1cmVzL2V4cGVjdGVkL3Rl
eHQuaHRtbCA9IFRFWFRcbicpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfbWFjX21hYyhzZWxmKToK
LSAgICAgICAgc2VsZi5hc3NlcnRSZW1vdmUoJ21hYycsCi0gICAgICAgICAgICAnQlVHWCBSRUJB
U0VMSU5FIE1BQyA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFRcbicsCi0gICAg
ICAgICAgICAnJykKLQotICAgIGRlZiB0ZXN0X3JlbW92ZV9ub3RoaW5nKHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydFJlbW92ZSgnbWFjJywKLSAgICAgICAgICAgICdcblxuJywKLSAgICAgICAg
ICAgICdcblxuJykKLQogCiBjbGFzcyBNb2RpZmllclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICBkZWYgc2V0VXAoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBiYWYxODkzM2I0NGNjMmJmNzRhMmQ1
MWExNGVjZTM2MWIxZDQ2MTIzLi5kMDhjMGJkYjU5NGRjNjExMDZmMjA0ZTBlZjFiYmVlOGQ2YTM1
MDU4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHkKQEAgLTI2Niw3ICsyNjYsOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFz
ZS5Qb3J0KToKICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBleHBlY3RhdGlvbnMuZ2V0X3Rl
c3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuU0tJUCldCiAKICAgICBkZWYg
dGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbics
ICdsaW51eCcsICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi03JykKKyAgICAgICAgcmV0dXJu
ICgnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywKKyAgICAgICAgICAgICAgICAnd2lu
LXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCisgICAgICAgICAgICAgICAgJ2xpbnV4JykK
IAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3Jt
X25hbWUpOgogICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25hbWUgaW4gc2VsZi50ZXN0X3BsYXRm
b3JtX25hbWVzKCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkKaW5kZXggMzkyODE4ZGRmMTVjMGRmOTQxOWE3N2YxMGRiMDdlZGViNjU4MWVh
NC4uMDk3ZmVlMjYzMmRjMWNmYTNhYjcyMmZkZjk5N2M1ODU5MWFlZWMwNSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMjMyLDcg
KzIzMiw3IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICB1c2VyID0g
bW9ja3Rvb2wuTW9ja1VzZXIoKQogCiAgICAgICAgIGlmIG5vdCBwb3J0X25hbWUgb3IgcG9ydF9u
YW1lID09ICd0ZXN0JzoKLSAgICAgICAgICAgIHBvcnRfbmFtZSA9ICd0ZXN0LW1hYycKKyAgICAg
ICAgICAgIHBvcnRfbmFtZSA9ICd0ZXN0LW1hYy1sZW9wYXJkJwogCiAgICAgICAgIHNlbGYuX2V4
cGVjdGF0aW9uc19wYXRoID0gTEFZT1VUX1RFU1RfRElSICsgJy9wbGF0Zm9ybS90ZXN0L3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCcKICAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRf
bmFtZT1wb3J0X25hbWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwgdXNlcj11c2VyLApAQCAtMjQ4
LDcgKzI0OCwxNSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICByZXR1cm4g
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCAncGxhdGZvcm0n
LCBzZWxmLm5hbWUoKSkKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIFtzZWxmLmJhc2VsaW5lX3BhdGgoKV0KKyAgICAgICAgc2VhcmNoX3BhdGhz
ID0geworICAgICAgICAgICAgJ3Rlc3QtbWFjLXNub3dsZW9wYXJkJzogWyd0ZXN0LW1hYy1zbm93
bGVvcGFyZCddLAorICAgICAgICAgICAgJ3Rlc3QtbWFjLWxlb3BhcmQnOiBbJ3Rlc3QtbWFjLWxl
b3BhcmQnLCAndGVzdC1tYWMtc25vd2xlb3BhcmQnXSwKKyAgICAgICAgICAgICd0ZXN0LXdpbi13
aW43JzogWyd0ZXN0LXdpbi13aW43J10sCisgICAgICAgICAgICAndGVzdC13aW4tdmlzdGEnOiBb
J3Rlc3Qtd2luLXZpc3RhJywgJ3Rlc3Qtd2luLXdpbjcnXSwKKyAgICAgICAgICAgICd0ZXN0LXdp
bi14cCc6IFsndGVzdC13aW4teHAnLCAndGVzdC13aW4tdmlzdGEnLCAndGVzdC13aW4td2luNydd
LAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiBbJ3Rlc3QtbGludXgnLCAndGVzdC13aW4td2lu
NyddLAorICAgICAgICB9CisgICAgICAgIHJldHVybiBbc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoZCkgZm9yIGQgaW4gc2VhcmNoX3BhdGhzW3NlbGYubmFtZSgpXV0KIAogICAgIGRlZiBkZWZh
dWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKQEAgLTMwNCwyMyAr
MzEyLDE4IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIHJldHVybiBzZWxm
Ll9leHBlY3RhdGlvbnNfcGF0aAogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToK
LSAgICAgICAgbmFtZV9tYXAgPSB7Ci0gICAgICAgICAgICAndGVzdC1tYWMnOiAnbWFjJywKLSAg
ICAgICAgICAgICd0ZXN0LXdpbic6ICd3aW4nLAotICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzog
J3dpbi14cCcsCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5hbWVfbWFwW3NlbGYuX25hbWVd
CisgICAgICAgIHJldHVybiBzZWxmLm5hbWUoKVs1Ol0KIAogICAgIGRlZiB0ZXN0X3BsYXRmb3Jt
X25hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4gKCdtYWMnLCAnd2luJywgJ3dpbi14cCcpCisg
ICAgICAgIHJldHVybiAoJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsCisgICAgICAg
ICAgICAgICAgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2luLXdpbjcnLAorICAgICAgICAgICAg
ICAgICdsaW51eCcpCiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwg
dGVzdF9wbGF0Zm9ybV9uYW1lKToKLSAgICAgICAgbmFtZV9tYXAgPSB7Ci0gICAgICAgICAgICAn
bWFjJzogJ3Rlc3QtbWFjJywKLSAgICAgICAgICAgICd3aW4nOiAndGVzdC13aW4nLAotICAgICAg
ICAgICAgJ3dpbi14cCc6ICd0ZXN0LXdpbi14cCcsCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IG5hbWVfbWFwW3Rlc3RfcGxhdGZvcm1fbmFtZV0KKyAgICAgICAgaWYgdGVzdF9wbGF0Zm9ybV9u
YW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgorICAgICAgICAgICAgcmV0dXJuICd0
ZXN0LScgKyB0ZXN0X3BsYXRmb3JtX25hbWUKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVW5z
dXBwb3J0ZWQgdGVzdF9wbGF0Zm9ybV9uYW1lOiAlcycgJQorICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfcGxhdGZvcm1fbmFtZSkKIAogICAgICMgRklYTUU6IFRoZXNlIG5leHQgdHdvIHJv
dXRpbmVzIGFyZSBjb3BpZWQgZnJvbSBiYXNlLnB5IHdpdGgKICAgICAjIHRoZSBjYWxscyB0byBw
YXRoLmFic3BhdGhfdG9fdXJpKCkgcmVtb3ZlZC4gV2Ugc2hvdWxkbid0IGhhdmUKQEAgLTM4Myw4
ICszODYsMTEgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgdmVyc2lvbihz
ZWxmKToKICAgICAgICAgdmVyc2lvbl9tYXAgPSB7CiAgICAgICAgICAgICAndGVzdC13aW4teHAn
OiAneHAnLAotICAgICAgICAgICAgJ3Rlc3Qtd2luJzogJ3dpbjcnLAotICAgICAgICAgICAgJ3Rl
c3QtbWFjJzogJ2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnOiAnd2luNycs
CisgICAgICAgICAgICAndGVzdC13aW4tdmlzdGEnOiAndmlzdGEnLAorICAgICAgICAgICAgJ3Rl
c3QtbWFjLWxlb3BhcmQnOiAnbGVvcGFyZCcsCisgICAgICAgICAgICAndGVzdC1tYWMtc25vd2xl
b3BhcmQnOiAnc25vd2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiAnJywKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gdmVyc2lvbl9tYXBbc2VsZi5fbmFtZV0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJv
bWl1bV93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQppbmRleCA5ZjFkMzQ3NjhiNWI1
NGU0MjBmOWVhNmVjMDcwZWViZDg5YWYzZTJkLi5jZThjN2Q2OGJiOTBkYzE5OGEwODAwMWQxZWM5
ZWU1OTNkNmExNTIyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0
cy5weQpAQCAtNjAsMTcgKzYwLDMwIEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91
dF9wYWNrYWdlIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQogCiBCQVNFTElORV9TVUZGSVhFUyA9ICgnLnR4dCcsICcucG5nJywgJy5j
aGVja3N1bScpCi1SRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gKCdtYWMnLCAnd2luJywgJ3dp
bi14cCcsICd3aW4tdmlzdGEnLCAnbGludXgnKQorCisjIE9ubHkgdGhlIFdlYktpdCBjYW5hcmll
cyBoYXZlIGEgZnVsbCBjb21wbGVtZW50IG9mIGJvdHMuIFRoZSBHUFUKKyMgYm90cyBkb24ndCBo
YXZlIHZlcnNpb24tc3BlY2lmaWMgYmFzZWxpbmVzIHlldC4gV2Ugb25seSBoYXZlIHRoZSB0aHJl
ZQorIyBtYWluIERlcHMgYm90cy4KKworIyBCeSBydW5uaW5nIHRoZSB0ZXN0IGluIHRoaXMgb3Jk
ZXIgd2UgZW5zdXJlIHRoYXQgaWYgYSBsYXRlciB0ZXN0IGlzIGEKKyMgZHVwbGljYXRlIG9mIGFu
eSBlYXJsaWVyIG9uZSwgd2UnbGwgbm90aWNlIGl0IGFuZCBvbmx5IGtlZXAgb25lIGNvcHkuCitS
RUJBU0VMSU5FX0dQVV9PUkRFUiA9IFsnbWFjJywgJ3dpbicsICdsaW51eCddCitSRUJBU0VMSU5F
X1dFQktJVF9DQU5BUllfT1JERVIgPSBbJ21hYy1zbm93bGVvcGFyZCcsICdtYWMtbGVvcGFyZCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi13aW43JywgJ3dpbi12aXN0
YScsICd3aW4teHAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eCdd
CitSRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSID0gWydtYWMnLCAnd2luJywgJ2xpbnV4J10KKwog
QVJDSElWRV9ESVJfTkFNRV9ESUNUID0geyd3aW4nOiAnV2Via2l0X1dpbl9fZGVwc18nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICd3aW4tdmlzdGEnOiAnd2Via2l0LWRiZy12aXN0YScsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi14cCc6ICdXZWJraXRfV2luX19kZXBzXycsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ21hYyc6ICdXZWJraXRfTWFjMTBfNV9fZGVwc18nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICdsaW51eCc6ICdXZWJraXRfTGludXhfX2RlcHNfJywK
IAotICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4tY2FuYXJ5JzogJ1dlYmtpdF9XaW4nLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4tdmlzdGEtY2FuYXJ5JzogJ3dlYmtpdC1kYmct
dmlzdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4td2luNy1jYW5hcnknOiAnV2Vi
a2l0X1dpbjcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4tdmlzdGEtY2FuYXJ5Jzog
J1dlYmtpdF9WaXN0YScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpbi14cC1jYW5hcnkn
OiAnV2Via2l0X1dpbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ21hYy1jYW5hcnknOiAn
V2Via2l0X01hYzEwXzUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMtbGVvcGFyZC1j
YW5hcnknOiAnV2Via2l0X01hYzEwXzUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMt
c25vd2xlb3BhcmQtY2FuYXJ5JzogJ1dlYmtpdF9NYWMxMF82JywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAnbGludXgtY2FuYXJ5JzogJ1dlYmtpdF9MaW51eCcsCiAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZ3B1LW1hYy1jYW5hcnknOiAnV2Via2l0X01hYzEwXzVfLV9HUFUnLApAQCAt
MTkxLDcgKzIwNCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIGxvZ19k
YXNoZWRfc3RyaW5nKCdDb21waWxpbmcgcmViYXNlbGluaW5nIHRlc3RzJywgc2VsZi5fcGxhdGZv
cm0pCiAgICAgICAgIGlmIG5vdCBzZWxmLl9jb21waWxlX3JlYmFzZWxpbmluZ190ZXN0cygpOgog
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIG5vdCBzZWxmLmdldF9yZWJhc2Vs
aW5pbmdfdGVzdHMoKToKKyAgICAgICAgaWYgbm90IHNlbGYuX3JlYmFzZWxpbmluZ190ZXN0czoK
ICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ0Rv
d25sb2FkaW5nIGFyY2hpdmUnLCBzZWxmLl9wbGF0Zm9ybSkKQEAgLTIwOSw4ICsyMjIsNiBAQCBj
bGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBhcmNoaXZlX2ZpbGUuY2xvc2UoKQog
CiAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdVcGRhdGluZyByZWJhc2VsaW5lZCB0ZXN0cyBp
biBmaWxlJywgc2VsZi5fcGxhdGZvcm0pCi0gICAgICAgIHNlbGYuX3VwZGF0ZV9yZWJhc2VsaW5l
ZF90ZXN0c19pbl9maWxlKGJhY2t1cCkKLSAgICAgICAgX2xvZy5pbmZvKCcnKQogCiAgICAgICAg
IGlmIGxlbihzZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMpICE9IGxlbihzZWxmLl9yZWJhc2VsaW5l
ZF90ZXN0cyk6CiAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ05PVCBBTEwgVEVTVFMgVEhBVCBO
RUVEIFJFQkFTRUxJTklORyBIQVZFIEJFRU4gUkVCQVNFTElORUQuJykKQEAgLTIyMiw4ICsyMzMs
MjMgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gVHJ1ZQog
Ci0gICAgZGVmIGdldF9yZWJhc2VsaW5pbmdfdGVzdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHMKKyAgICBkZWYgcmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3Rz
X2Zyb21fZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBiYWNrdXApOgorICAgICAgICAiIiJpZiBi
YWNrdXAgaXMgVHJ1ZSwgd2UgYmFja3VwIHRoZSBvcmlnaW5hbCB0ZXN0IGV4cGVjdGF0aW9ucyBm
aWxlLiIiIgorICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0gc2VsZi5fdGVzdF9leHBlY3RhdGlv
bnMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQorICAgICAgICBwYXRoID0gc2VsZi5f
dGFyZ2V0X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKKyAgICAgICAgaWYg
YmFja3VwOgorICAgICAgICAgICAgZGF0ZV9zdWZmaXggPSB0aW1lLnN0cmZ0aW1lKCclWSVtJWQl
SCVNJVMnLCB0aW1lLmxvY2FsdGltZSh0aW1lLnRpbWUoKSkpCisgICAgICAgICAgICBiYWNrdXBf
ZmlsZSA9ICclcy5vcmlnLiVzJyAlIChwYXRoLCBkYXRlX3N1ZmZpeCkKKyAgICAgICAgICAgIGlm
IHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKGJhY2t1cF9maWxlKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtLnJlbW92ZShiYWNrdXBfZmlsZSkKKyAgICAgICAgICAgIF9sb2cuaW5m
bygnU2F2aW5nIG9yaWdpbmFsIGZpbGUgdG8gIiVzIicsIGJhY2t1cF9maWxlKQorICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS5tb3ZlKHBhdGgsIGJhY2t1cF9maWxlKQorCisgICAgICAgIHNl
bGYuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBhdGgsIG5ld19leHBlY3RhdGlvbnMpCisg
ICAgICAgICMgc2VsZi5fc2NtLmFkZChwYXRoKQorCisgICAgZGVmIGdldF9yZWJhc2VsaW5lZF90
ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3RzCiAKICAg
ICBkZWYgX2NvbXBpbGVfcmViYXNlbGluaW5nX3Rlc3RzKHNlbGYpOgogICAgICAgICAiIiJDb21w
aWxlIGxpc3Qgb2YgdGVzdHMgdGhhdCBuZWVkIHJlYmFzZWxpbmluZyBmb3IgdGhlIHBsYXRmb3Jt
LgpAQCAtNDg3LDMzICs1MTMsNiBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAg
ICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuX3NjbS5kZWxldGUoZmlsZW5hbWUpCiAKLSAgICBk
ZWYgX3VwZGF0ZV9yZWJhc2VsaW5lZF90ZXN0c19pbl9maWxlKHNlbGYsIGJhY2t1cCk6Ci0gICAg
ICAgICIiIlVwZGF0ZSB0aGUgcmViYXNlbGluZWQgdGVzdHMgaW4gdGVzdCBleHBlY3RhdGlvbnMg
ZmlsZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIGJhY2t1cDogaWYgVHJ1ZSwgYmFja3Vw
IHRoZSBvcmlnaW5hbCB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlLgotCi0gICAgICAgIFJldHVybnM6
Ci0gICAgICAgICAgbm8KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmViYXNlbGlu
ZWRfdGVzdHM6Ci0gICAgICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0gc2VsZi5fdGVzdF9leHBl
Y3RhdGlvbnMucmVtb3ZlX3BsYXRmb3JtX2Zyb21fZXhwZWN0YXRpb25zKAotICAgICAgICAgICAg
ICAgIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3RzLCBzZWxmLl9wbGF0Zm9ybSkKLSAgICAgICAgICAg
IHBhdGggPSBzZWxmLl90YXJnZXRfcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUo
KQotICAgICAgICAgICAgaWYgYmFja3VwOgotICAgICAgICAgICAgICAgIGRhdGVfc3VmZml4ID0g
dGltZS5zdHJmdGltZSgnJVklbSVkJUglTSVTJywgdGltZS5sb2NhbHRpbWUodGltZS50aW1lKCkp
KQotICAgICAgICAgICAgICAgIGJhY2t1cF9maWxlID0gJyVzLm9yaWcuJXMnICUgKHBhdGgsIGRh
dGVfc3VmZml4KQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKGJh
Y2t1cF9maWxlKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUo
YmFja3VwX2ZpbGUpCi0gICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdTYXZpbmcgb3JpZ2luYWwg
ZmlsZSB0byAiJXMiJywgYmFja3VwX2ZpbGUpCi0gICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5
c3RlbS5tb3ZlKHBhdGgsIGJhY2t1cF9maWxlKQotCi0gICAgICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLndyaXRlX3RleHRfZmlsZShwYXRoLCBuZXdfZXhwZWN0YXRpb25zKQotICAgICAgICAgICAg
IyBzZWxmLl9zY20uYWRkKHBhdGgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBfbG9nLmlu
Zm8oJ05vIHRlc3Qgd2FzIHJlYmFzZWxpbmVkIHNvIG5vdGhpbmcgdG8gcmVtb3ZlLicpCi0KICAg
ICBkZWYgX2NyZWF0ZV9odG1sX2Jhc2VsaW5lX2ZpbGVzKHNlbGYsIGJhc2VsaW5lX2Z1bGxwYXRo
KToKICAgICAgICAgIiIiQ3JlYXRlIGJhc2VsaW5lIGZpbGVzIChvbGQsIG5ldyBhbmQgZGlmZikg
aW4gaHRtbCBkaXJlY3RvcnkuCiAKQEAgLTgzOSwxMSArODM4LDE1IEBAIGRlZiBwYXJzZV9vcHRp
b25zKGFyZ3MpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJtYWMiLCAi
Y2hyb21pdW0iLCAicXQiLCBldGMuKS4gRGVmYXVsdHMgJwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAndG8gImNocm9taXVtIi4nKSkKICAgICBvcHRpb25zID0gb3B0aW9uX3Bh
cnNlci5wYXJzZV9hcmdzKGFyZ3MpWzBdCisgICAgaWYgb3B0aW9ucy5ncHU6CisgICAgICAgIG9w
dGlvbnMuYWxsX3BsYXRmb3JtcyA9IFJFQkFTRUxJTkVfR1BVX09SREVSCisgICAgZWxpZiBvcHRp
b25zLndlYmtpdF9jYW5hcnk6CisgICAgICAgIG9wdGlvbnMuYWxsX3BsYXRmb3JtcyA9IFJFQkFT
RUxJTkVfV0VCS0lUX0NBTkFSWV9PUkRFUgorICAgIGVsc2U6CisgICAgICAgIG9wdGlvbnMuYWxs
X3BsYXRmb3JtcyA9IFJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVIKKwogICAgIGlmIG9wdGlvbnMu
cGxhdGZvcm1zID09IE5vbmU6Ci0gICAgICAgIGlmIG9wdGlvbnMuZ3B1OgotICAgICAgICAgICAg
b3B0aW9ucy5wbGF0Zm9ybXMgPSAnbWFjLHdpbixsaW51eCcKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJ21hYyx3aW4sd2luLXhwLHdpbi12aXN0YSxsaW51
eCcKKyAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSAnLCcuam9pbihvcHRpb25zLmFsbF9wbGF0
Zm9ybXMpCiAKICAgICB0YXJnZXRfb3B0aW9ucyA9IGNvcHkuY29weShvcHRpb25zKQogICAgIGlm
IG9wdGlvbnMudGFyZ2V0X3BsYXRmb3JtID09ICdjaHJvbWl1bSc6CkBAIC05MTMsNyArOTE2LDcg
QEAgZGVmIHJlYWxfbWFpbihvcHRpb25zLCB0YXJnZXRfb3B0aW9ucywgaG9zdF9wb3J0X29iaiwg
dGFyZ2V0X3BvcnRfb2JqLCB1cmxfZmV0Y2gKICAgICAgICAgcmV0dXJuIDEKICAgICBwbGF0Zm9y
bXMgPSBbcC5zdHJpcCgpLmxvd2VyKCkgZm9yIHAgaW4gb3B0aW9ucy5wbGF0Zm9ybXMuc3BsaXQo
JywnKV0KICAgICBmb3IgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgotICAgICAgICBpZiBub3QgcGxh
dGZvcm0gaW4gUkVCQVNFTElORV9QTEFURk9STV9PUkRFUjoKKyAgICAgICAgaWYgbm90IHBsYXRm
b3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0lu
dmFsaWQgcGxhdGZvcm06ICIlcyInICUgKHBsYXRmb3JtKSkKICAgICAgICAgICAgIHJldHVybiAx
CiAKQEAgLTkyMiwxMyArOTI1LDEzIEBAIGRlZiByZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29w
dGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwgdXJsX2ZldGNoCiAgICAgIyBz
ZWFyY2ggcGF0aHMuIEl0IHNpbXBsaWZpZXMgaG93IHRoZSByZWJhc2VsaW5lIHRvb2wgZGV0ZWN0
cyBkdXBsaWNhdGUKICAgICAjIGJhc2VsaW5lcy4gQ2hlY2sgX0lzRHVwQmFzZWxpbmUgbWV0aG9k
IGZvciBkZXRhaWxzLgogICAgIHJlYmFzZWxpbmVfcGxhdGZvcm1zID0gW10KLSAgICBmb3IgcGxh
dGZvcm0gaW4gUkVCQVNFTElORV9QTEFURk9STV9PUkRFUjoKKyAgICBmb3IgcGxhdGZvcm0gaW4g
b3B0aW9ucy5hbGxfcGxhdGZvcm1zOgogICAgICAgICBpZiBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6
CiAgICAgICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3Jtcy5hcHBlbmQocGxhdGZvcm0pCiAKICAg
ICBvcHRpb25zLmh0bWxfZGlyZWN0b3J5ID0gc2V0dXBfaHRtbF9kaXJlY3RvcnkoaG9zdF9wb3J0
X29iai5fZmlsZXN5c3RlbSwgb3B0aW9ucy5odG1sX2RpcmVjdG9yeSkKIAotICAgIHJlYmFzZWxp
bmluZ190ZXN0cyA9IHNldCgpCisgICAgcmViYXNlbGluZWRfdGVzdHMgPSBzZXQoKQogICAgIGJh
Y2t1cCA9IG9wdGlvbnMuYmFja3VwCiAgICAgZm9yIHBsYXRmb3JtIGluIHJlYmFzZWxpbmVfcGxh
dGZvcm1zOgogICAgICAgICByZWJhc2VsaW5lciA9IFJlYmFzZWxpbmVyKGhvc3RfcG9ydF9vYmos
IHRhcmdldF9wb3J0X29iaiwKQEAgLTkzOCwxMyArOTQxLDE2IEBAIGRlZiByZWFsX21haW4ob3B0
aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwgdXJs
X2ZldGNoCiAgICAgICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmco
J1JlYmFzZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3JtKQogICAgICAgICBpZiByZWJhc2VsaW5lci5y
dW4oYmFja3VwKToKLSAgICAgICAgICAgICMgT25seSBuZWVkIHRvIGJhY2t1cCBvbmUgb3JpZ2lu
YWwgY29weSBvZiB0ZXN0IGV4cGVjdGF0aW9uIGZpbGUuCi0gICAgICAgICAgICBiYWNrdXAgPSBG
YWxzZQogICAgICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFzZWxpbmUgZG9uZScsIHBs
YXRmb3JtKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1Jl
YmFzZWxpbmUgZmFpbGVkJywgcGxhdGZvcm0sIGxvZ2dpbmcuRVJST1IpCiAKLSAgICAgICAgcmVi
YXNlbGluaW5nX3Rlc3RzIHw9IHNldChyZWJhc2VsaW5lci5nZXRfcmViYXNlbGluaW5nX3Rlc3Rz
KCkpCisgICAgICAgIHJlYmFzZWxpbmVkX3Rlc3RzIHw9IHNldChyZWJhc2VsaW5lci5nZXRfcmVi
YXNlbGluZWRfdGVzdHMoKSkKKworICAgICMgRklYTUU6IG5lZWQgdG8gcmVlbmFibGUgdGhpcyBh
ZnRlciB3ZSBhcmUgY29ycmVjdGx5IHJ1bm5pbmcgYWxsCisgICAgIyBjb25maWd1cmF0aW9ucy4K
KyAgICAjaWYgcmViYXNlbGluZWRfdGVzdHM6CisgICAgIyAgICByZWJhc2VsaW5lci5yZW1vdmVf
cmViYXNlbGluZWRfdGVzdHNfZnJvbV9leHBlY3RhdGlvbnMocmViYXNlbGluZWRfdGVzdHMsIGJh
Y2t1cCkKIAogICAgIF9sb2cuaW5mbygnJykKICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNl
bGluaW5nIHJlc3VsdCBjb21wYXJpc29uIHN0YXJ0ZWQnLCBOb25lKQpAQCAtOTUyLDcgKzk1OCw3
IEBAIGRlZiByZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmos
IHRhcmdldF9wb3J0X29iaiwgdXJsX2ZldGNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRhcmdldF9wb3J0X29iaiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmViYXNlbGlu
ZV9wbGF0Zm9ybXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYmFzZWxp
bmluZ190ZXN0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmViYXNlbGlu
ZWRfdGVzdHMpCiAgICAgaHRtbF9nZW5lcmF0b3IuZ2VuZXJhdGVfaHRtbCgpCiAgICAgaWYgbm90
IG9wdGlvbnMucXVpZXQ6CiAgICAgICAgIGh0bWxfZ2VuZXJhdG9yLnNob3dfaHRtbCgpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2No
cm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5
CmluZGV4IDcxNzliYjdmYjU1NDZiYmJkMTUyODlmZDAxODc4ZWQ5MTNiZjk4YmMuLjAzYTVkMWJm
MDVjNmQ4OWRjYTA3NTZkYTAyODMwZTJlYWM3MDExYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Jl
YmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC03MCw3ICs3MCw4
IEBAIGRlZiB0ZXN0X29wdGlvbnMoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGFyZ2V0X3BsYXRmb3JtPSdjaHJvbWl1bScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZlcmJvc2U9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXM9J21hYyx3
aW4sd2luLXhwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3BsYXRmb3Jt
cz1yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5SRUJBU0VMSU5FX1dFQktJVF9DQU5B
UllfT1JERVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHU9RmFsc2UpCiAKIApAQCAtODYs
OCArODcsMTIgQEAgZGVmIHRlc3RfaG9zdF9wb3J0X2FuZF9maWxlc3lzdGVtKG9wdGlvbnMsIGV4
cGVjdGF0aW9ucyk6CiAKIGRlZiB0ZXN0X3VybF9mZXRjaGVyKGZpbGVzeXN0ZW0pOgogICAgIHVy
bHMgPSB7CisgICAgICAgIEFSQ0hJVkVfVVJMICsgJy9XZWJraXRfTWFjMTBfNi8nOiAnPGEgaHJl
Zj0iNC8iPicsCiAgICAgICAgIEFSQ0hJVkVfVVJMICsgJy9XZWJraXRfTWFjMTBfNS8nOiAnPGEg
aHJlZj0iMS8iPjxhIGhyZWY9IjIvIj4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0
X1dpbjcvJzogJzxhIGhyZWY9IjEvIj4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0
X1Zpc3RhLyc6ICc8YSBocmVmPSIxLyI+JywKICAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtp
dF9XaW4vJzogJzxhIGhyZWY9IjEvIj4nLAorICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0
X0xpbnV4Lyc6ICc8YSBocmVmPSIxLyI+JywKICAgICB9CiAgICAgcmV0dXJuIHVybGZldGNoZXJf
bW9jay5tYWtlX2ZldGNoZXJfY2xzKHVybHMpKGZpbGVzeXN0ZW0pCiAKQEAgLTk5LDcgKzEwNCwy
NyBAQCBkZWYgdGVzdF96aXBfZmFjdG9yeSgpOgogICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJl
c3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ25ldy1pbWFn
ZS1jaGVja3N1bScsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS1hY3R1YWwucG5nJzogJ25ldy1pbWFnZS1wbmcnLAogICAgICAgICB9LAot
ICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1dpbi8xL2xheW91dC10ZXN0LXJlc3VsdHMu
emlwJzogeworICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X01hYzEwXzYvNC9sYXlvdXQt
dGVzdC1yZXN1bHRzLnppcCc6IHsKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC50eHQnOiAnbmV3LWltYWdlLXR4dCcsCisgICAg
ICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1
YWwuY2hlY2tzdW0nOiAnbmV3LWltYWdlLWNoZWNrc3VtJywKKyAgICAgICAgICAgICdsYXlvdXQt
dGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5wbmcnOiAnbmV3LWlt
YWdlLXBuZycsCisgICAgICAgIH0sCisgICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1Zp
c3RhLzEvbGF5b3V0LXRlc3QtcmVzdWx0cy56aXAnOiB7CisgICAgICAgICAgICAnbGF5b3V0LXRl
c3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwudHh0JzogJ3dpbi1pbWFn
ZS10eHQnLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ3dpbi1pbWFnZS1jaGVja3N1bScsCisgICAgICAg
ICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwu
cG5nJzogJ3dpbi1pbWFnZS1wbmcnLAorICAgICAgICB9LAorICAgICAgICAgIEFSQ0hJVkVfVVJM
ICsgJy9XZWJraXRfV2luNy8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogeworICAgICAgICAg
ICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnR4
dCc6ICd3aW4taW1hZ2UtdHh0JywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5jaGVja3N1bSc6ICd3aW4taW1hZ2UtY2hlY2tz
dW0nLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQv
aW1hZ2UtYWN0dWFsLnBuZyc6ICd3aW4taW1hZ2UtcG5nJywKKyAgICAgICAgfSwKKyAgICAgICAg
ICBBUkNISVZFX1VSTCArICcvV2Via2l0X1dpbi8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzog
eworICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1h
Z2UtYWN0dWFsLnR4dCc6ICd3aW4taW1hZ2UtdHh0JywKKyAgICAgICAgICAgICdsYXlvdXQtdGVz
dC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5jaGVja3N1bSc6ICd3aW4t
aW1hZ2UtY2hlY2tzdW0nLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnBuZyc6ICd3aW4taW1hZ2UtcG5nJywKKyAgICAgICAg
fSwKKyAgICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X0xpbnV4LzEvbGF5b3V0LXRlc3Qt
cmVzdWx0cy56aXAnOiB7CiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJl
cy9leHBlY3RlZC9pbWFnZS1hY3R1YWwudHh0JzogJ3dpbi1pbWFnZS10eHQnLAogICAgICAgICAg
ICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLmNo
ZWNrc3VtJzogJ3dpbi1pbWFnZS1jaGVja3N1bScsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3Qt
cmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwucG5nJzogJ3dpbi1pbWFnZS1w
bmcnLApAQCAtMTc5LDE0ICsyMDQsMTQgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUgTUFDIDogZmFpbHVyZXMv
ZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIikKICAgICAgICAgY29tcGlsZV9zdWNjZXNzID0g
cmViYXNlbGluZXIuX2NvbXBpbGVfcmViYXNlbGluaW5nX3Rlc3RzKCkKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNvbXBpbGVfc3VjY2VzcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQo
WydmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sJ10pLCByZWJhc2VsaW5lci5nZXRfcmViYXNl
bGluaW5nX3Rlc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KFsnZmFpbHVyZXMv
ZXhwZWN0ZWQvaW1hZ2UuaHRtbCddKSwgcmViYXNlbGluZXIuX3JlYmFzZWxpbmluZ190ZXN0cykK
IAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmluZ190ZXN0c19zaG91bGRfaWdub3JlX3JlZnRlc3Rz
KHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJh
c2VsaW5lcigKICAgICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3Rl
ZC9yZWZ0ZXN0Lmh0bWwgPSBJTUFHRSIpCiAgICAgICAgIGNvbXBpbGVfc3VjY2VzcyA9IHJlYmFz
ZWxpbmVyLl9jb21waWxlX3JlYmFzZWxpbmluZ190ZXN0cygpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoY29tcGlsZV9zdWNjZXNzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlYmFzZWxp
bmVyLmdldF9yZWJhc2VsaW5pbmdfdGVzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShy
ZWJhc2VsaW5lci5fcmViYXNlbGluaW5nX3Rlc3RzKQogCiAgICAgZGVmIHRlc3Rfb25lX3BsYXRm
b3JtKHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9y
ZWJhc2VsaW5lcigKQEAgLTIwMSwxMCArMjI2LDkgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyAgICBjcmVhdGUgaW1hZ2UgZGlmZnMgKEZJWE1F
PykgYW5kIGRvbid0IGRpc3BsYXkgdGhlIGNoZWNrc3Vtcy4KICAgICAgICAgIyAqKSAxIHVwZGF0
ZWQgdGVzdF9leHBlY3RhdGlvbnMgZmlsZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihm
aWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAxMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
aWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCddLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
aWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0
LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5jaGVja3N1bSddLCAnbmV3LWlt
YWdlLWNoZWNrc3VtJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVz
WycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9l
eHBlY3RlZC9pbWFnZS1leHBlY3RlZC5wbmcnXSwgJ25ldy1pbWFnZS1wbmcnKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRl
c3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4
dCddLCAnbmV3LWltYWdlLXR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3Rl
bS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMtbGVv
cGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5jaGVja3N1bSddLCAnbmV3LWlt
YWdlLWNoZWNrc3VtJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVz
WycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnBuZyddLCAnbmV3LWltYWdlLXBuZycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS1leHBlY3RlZC50eHQnXSwgJ25ldy1pbWFnZS10eHQnKQogCiAgICAgZGVmIHRlc3RfYWxs
X3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBzZWxm
Lm1ha2VfcmViYXNlbGluZXIoCkBAIC0yMTQsMTIgKzIzOCw5IEBAIGNsYXNzIFRlc3RSZWJhc2Vs
aW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMgTm90ZSB0aGF0IGV2ZW4gdGhvdWdo
IHRoZSByZWJhc2VsaW5lIGlzIG1hcmtlZCBmb3IgYWxsIHBsYXRmb3JtcywgZWFjaAogICAgICAg
ICAjIHJlYmFzZWxpbmVyIG9ubHkgZXZlciBkb2VzIG9uZS4KICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzKSwgMTIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnXSwKLSAgICAgICAgICAgICdCVUdYIFJF
QkFTRUxJTkUgV0lOIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCi0g
ICAgICAgICAgICAnQlVHWCBSRUJBU0VMSU5FIFdJTi1YUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwgPSBJTUFHRVxuJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVt
LmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWls
dXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5jaGVja3N1bSddLCAnbmV3LWltYWdlLWNoZWNr
c3VtJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5j
aGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS1leHBlY3RlZC5wbmcnXSwgJ25ldy1pbWFnZS1wbmcnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4dCddLCAnbmV3
LWltYWdlLXR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1sn
L3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9mYWls
dXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5jaGVja3N1bSddLCAnbmV3LWltYWdlLWNoZWNr
c3VtJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5j
aGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnBuZyddLCAnbmV3LWltYWdlLXBuZycpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBl
Y3RlZC50eHQnXSwgJ25ldy1pbWFnZS10eHQnKQogCiAgICAgZGVmIHRlc3RfZGlmZl9iYXNlbGlu
ZXNfdHh0KHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFr
ZV9yZWJhc2VsaW5lcigiIikKQEAgLTI0Myw2ICsyNjQsNyBAQCBjbGFzcyBUZXN0UmVhbE1haW4o
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RhdGlvbnMgPSAiQlVHWCBSRUJBU0VM
SU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIgogCiAgICAgICAgIG9w
dGlvbnMgPSB0ZXN0X29wdGlvbnMoKQorICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5q
b2luKG9wdGlvbnMuYWxsX3BsYXRmb3JtcykKIAogICAgICAgICBob3N0X3BvcnRfb2JqLCBmaWxl
c3lzdGVtID0gdGVzdF9ob3N0X3BvcnRfYW5kX2ZpbGVzeXN0ZW0ob3B0aW9ucywgZXhwZWN0YXRp
b25zKQogICAgICAgICB1cmxfZmV0Y2hlciA9IHRlc3RfdXJsX2ZldGNoZXIoZmlsZXN5c3RlbSkK
QEAgLTI1MCwxNyArMjcyLDE5IEBAIGNsYXNzIFRlc3RSZWFsTWFpbih1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIG1vY2tfc2NtID0gbW9ja3Rvb2wuTW9ja1NDTSgpCiAgICAgICAgIG9jID0g
b3V0cHV0Y2FwdHVyZS5PdXRwdXRDYXB0dXJlKCkKICAgICAgICAgb2MuY2FwdHVyZV9vdXRwdXQo
KQotICAgICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5yZWFsX21haW4ob3B0
aW9ucywgb3B0aW9ucywgaG9zdF9wb3J0X29iaiwKLSAgICAgICAgICAgIGhvc3RfcG9ydF9vYmos
IHVybF9mZXRjaGVyLCB6aXBfZmFjdG9yeSwgbW9ja19zY20pCisgICAgICAgIHJlcyA9IHJlYmFz
ZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnJlYWxfbWFpbihvcHRpb25zLCBvcHRpb25zLAor
ICAgICAgICAgICAgaG9zdF9wb3J0X29iaiwgaG9zdF9wb3J0X29iaiwgdXJsX2ZldGNoZXIsIHpp
cF9mYWN0b3J5LCBtb2NrX3NjbSkKICAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQogCi0gICAg
ICAgICMgV2UgZXhwZWN0IHRvIGhhdmUgd3JpdHRlbiAzNSBmaWxlcyBvdmVyIHRoZSBjb3Vyc2Ug
b2YgdGhpcyByZWJhc2VsaW5lOgotICAgICAgICAjICopIDExIGZpbGVzICogMyBwb3J0cyBmb3Ig
dGhlIG5ldyBiYXNlbGluZXMgYW5kIHRoZSBkaWZmcyAoc2VlIGJyZWFrZG93bgotICAgICAgICAj
ICAgIHVuZGVyIHRlc3Rfb25lX3BsYXRmb3JtLCBhYm92ZSkKLSAgICAgICAgIyAqKSB0aGUgdXBk
YXRlZCB0ZXN0X2V4cGVjdGF0aW9ucyBmaWxlCi0gICAgICAgICMgKikgdGhlIHJlYmFzZWxpbmUg
cmVzdWx0cyBodG1sIGZpbGUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3Rl
bS53cml0dGVuX2ZpbGVzKSwgMzUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3Rl
bS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC90ZXN0X2V4
cGVjdGF0aW9ucy50eHQnXSwgJycpCisgICAgICAgICMgV2UgZXhwZWN0IHRvIGhhdmUgd3JpdHRl
biAzNiBmaWxlcyBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyByZWJhc2VsaW5lOgorICAgICAgICAj
ICopIDYqMyBmaWxlcyBpbiAvX19pbV90bXAvIGZvciB0aGUgYXJjaGl2ZWQgbWVtYmVycyBvZiB0
aGUgNiBwb3J0cworICAgICAgICAjICopIDIqMyBmaWxlcyBpbiAvdGVzdC5jaGVja291dCBmb3Ig
YWN0dWFsbHkgZGlmZmVyaW5nIGJhc2VsaW5lcworICAgICAgICAjICopIDEgZmlsZSBpbiAvdGVz
dC5jaGVja291dCBmb3IgdGhlIHVwZGF0ZWQgdGVzdF9leHBlY3RhdGlvbnMgZmlsZQorICAgICAg
ICAjICopIDIqNCBmaWxlcyBpbiAvdG1wIGZvciB0aGUgb2xkL25ldyBiYXNlbGluZXMgZm9yIHRo
ZSB0d28gYWN0dWFsIHBvcnRzCisgICAgICAgICMgKikgMiBmaWxlcyBpbiAvdG1wIGZvciB0aGUg
dGV4dCBkaWZmcyBmb3IgdGhlIHR3byBwb3J0cworICAgICAgICAjICopIDEgZmlsZSBpbiAvdG1w
IGZvciB0aGUgcmViYXNlbGluZSByZXN1bHRzIGh0bWwgZmlsZQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlcywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53
cml0dGVuX2ZpbGVzKSwgMzYpCiAKIAogY2xhc3MgVGVzdEh0bWxHZW5lcmF0b3IodW5pdHRlc3Qu
VGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNzA3NmVmMmU1
YWYzMmUyMDRhYTVhNzk4MTY4NjY5MzNhYzZlYmZlZi4uMTlkNmRhMTE1ZTE0ZWYxNGVkNWYzYzA3
NGQ1NTRhZmQxYWZhNjFjYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC02
MTYsOSArNjE2LDkgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNf
cnVuMC50eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA2KQog
ICAgICAgICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCi0gICAgICAgICAgICAiL3Bs
YXRmb3JtL3Rlc3QtbWFjL3Bhc3Nlcy9pbWFnZSIpCisgICAgICAgICAgICAiL3BsYXRmb3JtL3Rl
c3QtbWFjLWxlb3BhcmQvcGFzc2VzL2ltYWdlIikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGlu
ZXMoZmlsZV9saXN0LAotICAgICAgICAgICAgIi9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9l
eHBlY3RlZC9taXNzaW5nX2ltYWdlIikKKyAgICAgICAgICAgICIvcGxhdGZvcm0vdGVzdC1tYWMt
bGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlIikKIAogCiBjbGFzcyBEcnly
dW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87814</attachid>
            <date>2011-03-31 18:49:35 -0700</date>
            <delta_ts>2011-03-31 18:53:16 -0700</delta_ts>
            <desc>ignore - wrong bug.</desc>
            <filename>bug-55608-20110331184934.patch</filename>
            <type>text/plain</type>
            <size>50068</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI1MjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MzJhYmI0NDJiZTdlMjlkMWYyMDgzMWMyYzE3MjczNjYy
ZTZmMTUzLi4xNjkyMmQ3M2YwYTgyYzA2YmMxMWRiYmNjMDc0ZWM2NDUyNmJkZmNiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTEtMDMtMzEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b21wbGV0ZXMgdGhlIGNsZWFudXAgb2YKKyAgICAgICAgcmViYXNlbGluZS1jaHJvbWl1bS13ZWJr
aXQtdGVzdHMgdG8gd29yayB3aXRoIGFsbCBvZiB0aGUKKyAgICAgICAgdmFyaWFudHMgb2YgYSBw
bGF0Zm9ybSAod2UgY2FuIG5vdyByZWJhc2VsaW5lIGdwdS0gYW5kIG5vbi1ncHUKKyAgICAgICAg
ZmlsZXMgYXQgdGhlIHNhbWUgdGltZSkuCisKKyAgICAgICAgV2hlbiB0aGUgcmViYXNlbGluaW5n
IGlzIGNvbXBsZXRlLCBhbnkgbGluZXMgZGVjbGFyZWQgYXMgCisgICAgICAgIFJFQkFTRUxJTkUg
aW4gdGhlIGV4cGVjdGF0aW9ucyBmaWxlIHRoYXQgbWF0Y2hlcyBhIHRlc3QgdGhhdCB3YXMKKyAg
ICAgICAgYWN0dWFsbHkgcmViYXNlbGluZWQgd2lsbCBiZSBkZWxldGVkLCBldmVuIGlmIG9ubHkg
b25lIG9mIHRoZQorICAgICAgICB2YXJpYW50cyB3YXMgYWN0dWFsbHkgcmViYXNlbGluZWQuIFRo
aXMgbWF5IGNhdXNlIG9kZCBwcm9ibGVtcywKKyAgICAgICAgYnV0IGlzIGJldHRlciB0aGFuIHdo
ZXJlIHdlJ3JlIGF0IHRvZGF5LgorCisgICAgICAgIEFsc28sIHRoaXMgcGF0Y2ggZGVsZXRlcyBh
IGxvdCBvZiBjcnVmdCB0aGF0IGlzIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaW4gdGhlIHRl
c3RfZXhwZWN0YXRpb25zIGNvZGUgYW5kIHRoZSBwb3J0LXNwZWNpZmljIGNvZGUuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NjA4CisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4
cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9s
aW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2No
cm9taXVtX21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX3dpbl91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHk6CisKIDIwMTEtMDMtMjkgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5
CmluZGV4IDdkMmM5MWJiNjgyNzkwMTBhNTI0OWUxNDkwOTRlYjY4MzY4Yjc1ZDAuLjdhZTkwMjA3
YTE0OTExNzBiMjExNDVmZmNiOTI3YjYwNDE3YmRlY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25z
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xNjYsNiArMTY2LDkgQEAgY2xhc3MgVGVzdEV4
cGVjdGF0aW9uczoKICAgICBkZWYgaGFzX21vZGlmaWVyKHNlbGYsIHRlc3QsIG1vZGlmaWVyKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGVkX2ZhaWx1cmVzLmhhc19tb2RpZmllcih0ZXN0
LCBtb2RpZmllcikKIAorICAgIGRlZiByZW1vdmVfcmViYXNlbGluZWRfdGVzdHMoc2VsZiwgdGVz
dHMpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0ZWRfZmFpbHVyZXMucmVtb3ZlX3JlYmFz
ZWxpbmVkX3Rlc3RzKHRlc3RzKQorCiAKIGRlZiBzdHJpcF9jb21tZW50cyhsaW5lKToKICAgICAi
IiJTdHJpcHMgY29tbWVudHMgZnJvbSBhIGxpbmUgYW5kIHJldHVybiBOb25lIGlmIHRoZSBsaW5l
IGlzIGVtcHR5CkBAIC00MzIsNiArNDM1LDE3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnNGaWxl
OgogICAgIGRlZiBnZXRfbm9uX2ZhdGFsX2Vycm9ycyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuX25vbl9mYXRhbF9lcnJvcnMKIAorICAgIGRlZiByZW1vdmVfcmViYXNlbGluZWRfdGVzdHMo
c2VsZiwgdGVzdHMpOgorICAgICAgICAiIiJSZXR1cm5zIGEgY29weSBvZiB0aGUgZXhwZWN0YXRp
b25zIHdpdGggdGhlIHRlc3RzIHJlbW92ZWQuIiIiCisgICAgICAgIGxpbmVubyA9IDAKKyAgICAg
ICAgbGluZXMgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9nZXRfaXRlcmFibGVfZXhw
ZWN0YXRpb25zKHNlbGYuX2V4cGVjdGF0aW9ucyk6CisgICAgICAgICAgICBsaW5lbm8gKz0gMQor
ICAgICAgICAgICAgdGVzdCwgb3B0aW9ucywgXyA9IHNlbGYucGFyc2VfZXhwZWN0YXRpb25zX2xp
bmUobGluZSwgbGluZW5vKQorICAgICAgICAgICAgaWYgbm90ICh0ZXN0IGFuZCB0ZXN0IGluIHRl
c3RzIGFuZCAncmViYXNlbGluZScgaW4gb3B0aW9ucyk6CisgICAgICAgICAgICAgICAgbGluZXMu
YXBwZW5kKGxpbmUpCisgICAgICAgIHJldHVybiAnJy5qb2luKGxpbmVzKQorCiAgICAgZGVmIHBh
cnNlX2V4cGVjdGF0aW9uc19saW5lKHNlbGYsIGxpbmUsIGxpbmVubyk6CiAgICAgICAgICIiIlBh
cnNlcyBhIGxpbmUgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQgYW5kIHJldHVybnMgYSB0dXBs
ZQogICAgICAgICB3aXRoIHRoZSB0ZXN0IHBhdGgsIG9wdGlvbnMgYXMgYSBsaXN0LCBleHBlY3Rh
dGlvbnMgYXMgYSBsaXN0LiIiIgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0
X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQppbmRleCBkZjM2NGEwZWY4OWM1YzQxMDc3OGM1Yzdl
MjZmZjcxYTk2NjU3Y2JmLi4wODMzMDc5M2IxN2Y3NzBkZmU3MmUyOWRiODczYTVmZGI3YzQ0YzZm
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191
bml0dGVzdC5weQpAQCAtMzc3LDcgKzM3NywxOSBAQCBCVUdfVEVTVCBXSU4tWFAgOiBwYXNzZXMv
dGV4dC5odG1sID0gVEVYVAogCiBjbGFzcyBSZWJhc2VsaW5pbmdUZXN0KEJhc2UpOgogICAgICIi
IlRlc3QgcmViYXNlbGluaW5nLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIiIiCi0gICAgIyBGSVhN
RTogYWRkIGluIHRlc3RzIG9uY2Ugd2UgYXJlIGFjdHVhbGx5IGRlbGV0aW5nIGxpbmVzIGFnYWlu
LgorICAgIGRlZiBhc3NlcnRSZW1vdmUoc2VsZiwgaW5wdXRfZXhwZWN0YXRpb25zLCB0ZXN0cywg
ZXhwZWN0ZWRfZXhwZWN0YXRpb25zKToKKyAgICAgICAgc2VsZi5wYXJzZV9leHAoaW5wdXRfZXhw
ZWN0YXRpb25zKQorICAgICAgICBhY3R1YWxfZXhwZWN0YXRpb25zID0gc2VsZi5fZXhwLnJlbW92
ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZF9leHBlY3RhdGlvbnMsIGFjdHVhbF9leHBlY3RhdGlvbnMpCisKKyAgICBkZWYgdGVzdF9y
ZW1vdmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmVtb3ZlKCdCVUdYIFJFQkFTRUxJTkUg
OiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4n
CisgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9l
eHBlY3RlZC9jcmFzaC5odG1sID0gQ1JBU0hcbicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJ10sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICdCVUdZIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICdCVUdaIFJFQkFTRUxJTkUgOiBmYWlsdXJlcy9leHBlY3Rl
ZC9jcmFzaC5odG1sID0gQ1JBU0hcbicpCisKICAgICBkZWYgdGVzdF9ub19nZXRfcmViYXNlbGlu
aW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNp
Y19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZXhw
LmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSksIDApCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggZGVhMTI2Zjg1YjU3YzA3Y2Zl
Mjk0NDBlM2EwODE2ZDZiOWU5ZjBhOS4uMDlhZTZjNDk3MDdiZjQwNzZlNzJhOTk5MGZmMGE1MWU5
NzVjNGVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZS5weQpAQCAtOTAsNyArOTAsMTYgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAg
ICAgICAgICAgICBjb25maWc9Tm9uZSwKICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAg
ICAgICBzZWxmLl9uYW1lID0gcG9ydF9uYW1lCi0gICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9
ICd4ODYnCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb3BlcmF0aW5nX3N5c3RlbScp
OgorICAgICAgICAgICAgIyBXZSBkb24ndCBsb29rIGF0IHN5cy5wbGF0Zm9ybSBiZWNhdXNlIHRo
ZSByZXN1bHRzIHNob3VsZCBiZQorICAgICAgICAgICAgIyBkZXRlcm1pbmlzdGljLiBUaGlzIGlz
IGEgZGVmYXVsdCB2YWx1ZSwgb2J2aW91c2x5LgorICAgICAgICAgICAgc2VsZi5fb3BlcmF0aW5n
X3N5c3RlbSA9ICdtYWMnCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfdmVyc2lvbicp
OgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICcnCisgICAgICAgIGlmIG5vdCBoYXNhdHRy
KHNlbGYsICdfYXJjaGl0ZWN0dXJlJyk6CisgICAgICAgICAgICBzZWxmLl9hcmNoaXRlY3R1cmUg
PSAneDg2JworICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnX2dyYXBoaWNzX3R5cGUnKToK
KyAgICAgICAgICAgIHNlbGYuX2dyYXBoaWNzX3R5cGUgPSAnY3B1JwogICAgICAgICBzZWxmLl9v
cHRpb25zID0gb3B0aW9ucwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zIGlzIE5vbmU6CiAgICAg
ICAgICAgICAjIEZJWE1FOiBJZGVhbGx5IHdlJ2QgaGF2ZSBhIHBhY2thZ2Utd2lkZSB3YXkgdG8g
Z2V0IGEKQEAgLTQ4MSwxNiArNDkwLDI3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAg
c2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeSgqcGF0aCkKIAogICAgIGRlZiBu
YW1lKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHBvcnQgKGUuZy4s
ICdtYWMnLCAnY2hyb21pdW0td2luLXhwJykuCi0KLSAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMg
ZGlmZmVyZW50IGZyb20gdGhlIHRlc3RfcGxhdGZvcm1fbmFtZSgpLCB3aGljaAotICAgICAgICBt
YXkgYmUgZGlmZmVyZW50IChlLmcuLCAnd2luLXhwJyBpbnN0ZWFkIG9mICdjaHJvbWl1bS13aW4t
eHAnLiIiIgorICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHBvcnQgKGUuZy4sICdt
YWMnLCAnY2hyb21pdW0td2luLXhwJykuIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9uYW1lCiAK
KyAgICBkZWYgb3BlcmF0aW5nX3N5c3RlbShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX29w
ZXJhdGluZ19zeXN0ZW0KKworICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgorICAgICAgICAiIiJSZXR1
cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIHZlcnNpb24gb2YgYSBnaXZlbiBwbGF0Zm9ybSwg
ZS5nLgorICAgICAgICAnbGVvcGFyZCcgb3IgJ3hwJy4KKworICAgICAgICBUaGlzIGlzIHVzZWQg
dG8gaGVscCBpZGVudGlmeSB0aGUgZXhhY3QgcG9ydCB3aGVuIHBhcnNpbmcgdGVzdAorICAgICAg
ICBleHBlY3RhdGlvbnMsIGRldGVybWluaW5nIHNlYXJjaCBwYXRocywgYW5kIGxvZ2dpbmcgaW5m
b3JtYXRpb24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisKICAgICBkZWYgZ3Jh
cGhpY3NfdHlwZShzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyB3aGV0aGVyIHRoZSBwb3J0IHVz
ZXMgYWNjZWxlcmF0ZWQgZ3JhcGhpY3MgKCdncHUnKSBvciBub3QKICAgICAgICAgKCdjcHUnKS4i
IiIKLSAgICAgICAgcmV0dXJuICdjcHUnCisgICAgICAgIHJldHVybiBzZWxmLl9ncmFwaGljc190
eXBlCisKKyAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
YXJjaGl0ZWN0dXJlCiAKICAgICBkZWYgcmVhbF9uYW1lKHNlbGYpOgogICAgICAgICAiIiJSZXR1
cm5zIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgcG9ydCwgbm90IHRoZSBkZWxlZ2F0ZSdzLiIiIgpA
QCAtNjMxLDYgKzY1MSwxNCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIGFsbF90ZXN0
X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZXN0X2NvbmZpZ3Vy
YXRpb24oKS5hbGxfdGVzdF9jb25maWd1cmF0aW9ucygpCiAKKyAgICBkZWYgYWxsX2Jhc2VsaW5l
X3ZhcmlhbnRzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBwbGF0Zm9ybSBu
YW1lcyBzdWZmaWNpZW50IHRvIGNvdmVyIGFsbCB0aGUgYmFzZWxpbmVzLgorCisgICAgICAgIFRo
ZSBsaXN0IHNob3VsZCBiZSBzb3J0ZWQgc28gdGhhdCBhIGxhdGVyIHBsYXRmb3JtICB3aWxsIHJl
dXNlCisgICAgICAgIGFuIGVhcmxpZXIgcGxhdGZvcm0ncyBiYXNlbGluZXMgaWYgdGhleSBhcmUg
dGhlIHNhbWUgKGUuZy4sCisgICAgICAgICdzbm93bGVvcGFyZCcgc2hvdWxkIHByZWNlZGUgJ2xl
b3BhcmQnKS4iIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCiAgICAgZGVm
IHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSB0ZXN0IGV4
cGVjdGF0aW9ucyBmb3IgdGhpcyBwb3J0LgogCkBAIC02NDcsMzkgKzY3NSw2IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICAgICAgc3luYyB1cCB0aGUgdHdvIHJlcG9zLiIiIgogICAgICAgICBy
ZXR1cm4gTm9uZQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAg
IiIiUmV0dXJucyB0aGUgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGdpdmVuIHBsYXRm
b3JtIG5hbWUKLSAgICAgICAgaW4gdGhlIHRlc3QgZXhwZWN0YXRpb25zLiBUaGlzIG1heSBiZSB0
aGUgc2FtZSBhcyBuYW1lKCksIG9yIGl0Ci0gICAgICAgIG1heSBiZSBkaWZmZXJlbnQuIEZvciBl
eGFtcGxlLCBjaHJvbWl1bSByZXR1cm5zICdtYWMnIGZvcgotICAgICAgICAnY2hyb21pdW0tbWFj
Jy4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC50ZXN0X3BsYXRm
b3JtX25hbWUnKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1zKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm5zIHRoZSBsaXN0IG9mIHRlc3QgcGxhdGZvcm0gaWRlbnRpZmllcnMgYXMgdXNlZCBpbiB0
aGUKLSAgICAgICAgdGVzdF9leHBlY3RhdGlvbnMgYW5kIG9uIGRhc2hib2FyZHMsIHRoZSByZWJh
c2VsaW5pbmcgdG9vbCwgZXRjLgotCi0gICAgICAgIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBuZWNl
c3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgbGlzdCBvZiBwb3J0cywKLSAgICAgICAgd2hpY2ggbXVz
dCBiZSBnbG9iYWxseSB1bmlxdWUgKGUuZy4sIGJvdGggJ2Nocm9taXVtLW1hYycgYW5kICdtYWMn
Ci0gICAgICAgIG1pZ2h0IHJldHVybiAnbWFjJyBhcyBhIHRlc3RfcGxhdGZvcm0gbmFtZScuIiIi
Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQucGxhdGZvcm1zJykKLQot
ICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25h
bWUpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBQb3J0IHBsYXRmb3JtIG5hbWUgdGhhdCBjb3Jy
ZXNwb25kcyB0byB0aGUgbmFtZSBhcwotICAgICAgICByZWZlcmVuY2VkIGluIHRoZSBleHBlY3Rh
dGlvbnMgZmlsZS4gRS5nLiwgIm1hYyIgcmV0dXJucwotICAgICAgICAiY2hyb21pdW0tbWFjIiBv
biB0aGUgQ2hyb21pdW0gcG9ydHMuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IoJ1BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUnKQotCi0gICAgZGVmIGFyY2hpdGVj
dHVyZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2FyY2hpdGVjdHVyZQotCi0gICAgZGVm
IHZlcnNpb24oc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgYSBzdHJpbmcgaW5kaWNhdGluZyB0
aGUgdmVyc2lvbiBvZiBhIGdpdmVuIHBsYXRmb3JtLCBlLmcuCi0gICAgICAgICdsZW9wYXJkJyBv
ciAneHAnLgotCi0gICAgICAgIFRoaXMgaXMgdXNlZCB0byBoZWxwIGlkZW50aWZ5IHRoZSBleGFj
dCBwb3J0IHdoZW4gcGFyc2luZyB0ZXN0Ci0gICAgICAgIGV4cGVjdGF0aW9ucywgZGV0ZXJtaW5p
bmcgc2VhcmNoIHBhdGhzLCBhbmQgbG9nZ2luZyBpbmZvcm1hdGlvbi4iIiIKLSAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC52ZXJzaW9uJykKLQogICAgIGRlZiB0ZXN0X3Jl
cG9zaXRvcnlfcGF0aHMoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9mIChyZXBv
c2l0b3J5X25hbWUsIHJlcG9zaXRvcnlfcGF0aCkgdHVwbGVzCiAgICAgICAgIG9mIGl0cyBkZXBl
bmRpbmcgY29kZSBiYXNlLiAgQnkgZGVmYXVsdCBpdCByZXR1cm5zIGEgbGlzdCB0aGF0IG9ubHkK
QEAgLTk1NiwxNSArOTUxLDggQEAgY2xhc3MgRHJpdmVyOgogY2xhc3MgVGVzdENvbmZpZ3VyYXRp
b24ob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydD1Ob25lLCBvcz1Ob25lLCB2
ZXJzaW9uPU5vbmUsIGFyY2hpdGVjdHVyZT1Ob25lLAogICAgICAgICAgICAgICAgICBidWlsZF90
eXBlPU5vbmUsIGdyYXBoaWNzX3R5cGU9Tm9uZSk6Ci0KLSAgICAgICAgIyBGSVhNRTogV2UgY2Fu
IGdldCB0aGUgTy9TIGFuZCB2ZXJzaW9uIGZyb20gdGVzdF9wbGF0Zm9ybV9uYW1lKCkKLSAgICAg
ICAgIyBhbmQgdmVyc2lvbigpIGZvciBub3csIGJ1dCB0aG9zZSBzaG91bGQgZ28gYXdheSBhbmQg
YmUgY2xlYW5lZCB1cAotICAgICAgICAjIHdpdGggbW9yZSBnZW5lcmljIG1ldGhvZHMgbGlrZSBv
cGVyYXRpb25fc3lzdGVtKCkgYW5kIG9zX3ZlcnNpb24oKQotICAgICAgICAjIG9yIHNvbWV0aGlu
Zy4KLSAgICAgICAgaWYgcG9ydDoKLSAgICAgICAgICAgIHBvcnRfdmVyc2lvbiA9IHBvcnQudmVy
c2lvbigpCi0gICAgICAgIHNlbGYub3MgPSBvcyBvciBwb3J0LnRlc3RfcGxhdGZvcm1fbmFtZSgp
LnJlcGxhY2UoJy0nICsgcG9ydF92ZXJzaW9uLCAnJykKLSAgICAgICAgc2VsZi52ZXJzaW9uID0g
dmVyc2lvbiBvciBwb3J0X3ZlcnNpb24KKyAgICAgICAgc2VsZi5vcyA9IG9zIG9yIHBvcnQub3Bl
cmF0aW5nX3N5c3RlbSgpCisgICAgICAgIHNlbGYudmVyc2lvbiA9IHZlcnNpb24gb3IgcG9ydC52
ZXJzaW9uKCkKICAgICAgICAgc2VsZi5hcmNoaXRlY3R1cmUgPSBhcmNoaXRlY3R1cmUgb3IgcG9y
dC5hcmNoaXRlY3R1cmUoKQogICAgICAgICBzZWxmLmJ1aWxkX3R5cGUgPSBidWlsZF90eXBlIG9y
IHBvcnQuX29wdGlvbnMuY29uZmlndXJhdGlvbi5sb3dlcigpCiAgICAgICAgIHNlbGYuZ3JhcGhp
Y3NfdHlwZSA9IGdyYXBoaWNzX3R5cGUgb3IgcG9ydC5ncmFwaGljc190eXBlKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0
dGVzdC5weQppbmRleCBlZjkwNDg0Y2E4M2IxNzE3OTQzMDIwYjFkNDNjOTJkNzE2ODAzMDgyLi40
MWU3NWVhZmUxMjEzNGM4YjI2ODYzNDY0MTUyY2I3YTJiNjcyMTc1IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0
LnB5CkBAIC0yNDcsMTMgKzI0Nyw4IEBAIGNsYXNzIFZpcnR1YWxUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuY3JlYXRlX2RyaXZlciwgMCkK
ICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuZGlmZl9pbWFnZSwgTm9uZSwgTm9uZSkK
ICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9u
c19maWxlKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtX25h
bWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnJlc3VsdHNfZGlyZWN0b3J5KQog
ICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X2V4cGVjdGF0aW9ucykKLSAgICAg
ICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lKQotICAgICAgICBz
ZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X3BsYXRmb3JtcykKLSAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUsIE5vbmUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnZlcnNpb24pCiAgICAgICAgIHNlbGYuYXNzZXJ0Vmly
dHVhbChwb3J0Ll9wYXRoX3RvX2FwYWNoZSkKICAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBv
cnQuX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKQogICAgICAgICBzZWxmLmFzc2VydFZpcnR1
YWwocG9ydC5fcGF0aF90b19kcml2ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCBkMDhjMGJkYjU5NGRjNjExMDZm
MjA0ZTBlZjFiYmVlOGQ2YTM1MDU4Li4xYWFlMjY5MjZlNjcwMDZmMWIxZmQ4OWU3ZTRlYzQ2OThl
ZjEzYWZkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW0ucHkKQEAgLTUxLDYgKzUxLDEyIEBAIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuY2hyb21pdW0iKQogIyBGSVhNRTogVGhp
cyBmdW5jdGlvbiBkb2Vzbid0IGJlbG9uZyBpbiB0aGlzIHBhY2thZ2UuCiBjbGFzcyBDaHJvbWl1
bVBvcnQoYmFzZS5Qb3J0KToKICAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBDaHJvbWl1
bSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFBvcnQgY2xhc3MuIiIiCisgICAgQUxMX0JBU0VMSU5F
X1ZBUklBTlRTID0gWworICAgICAgICAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJywgJ2Nocm9t
aXVtLW1hYy1sZW9wYXJkJywKKyAgICAgICAgJ2Nocm9taXVtLXdpbi13aW43JywgJ2Nocm9taXVt
LXdpbi12aXN0YScsICdjaHJvbWl1bS13aW4teHAnLAorICAgICAgICAnY2hyb21pdW0tbGludXgn
LCAnY2hyb21pdW0tbGludXgteDg2XzY0JywKKyAgICAgICAgJ2Nocm9taXVtLWdwdS1tYWMtbGVv
cGFyZCcsICdjaHJvbWl1bS1ncHUtd2luLXhwJywgJ2Nocm9taXVtLWdwdS1saW51eCcsCisgICAg
XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgYmFzZS5Qb3J0
Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQpAQCAtMjMwLDYgKzIzNiw5IEBAIGNsYXNzIENocm9t
aXVtUG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3Jn
L2lzc3VlMTczMTcxNwogICAgICAgICAgICAgc2VsZi5faGVscGVyLndhaXQoKQogCisgICAgZGVm
IGFsbF9iYXNlbGluZV92YXJpYW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuQUxMX0JB
U0VMSU5FX1ZBUklBTlRTCisKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAg
ICAgICIiIlJldHVybnMgdGhlIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0aGlzIHBvcnQuCiAKQEAg
LTI1MSw3ICsyNjAsNiBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYg
c2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZiwgZXh0cmFfdGVzdF9maWxlcz1Ob25lKToKICAgICAg
ICAgZXhwZWN0YXRpb25zX3N0ciA9IHNlbGYudGVzdF9leHBlY3RhdGlvbnMoKQogICAgICAgICBv
dmVycmlkZXNfc3RyID0gc2VsZi50ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoKQotICAgICAg
ICB0ZXN0X3BsYXRmb3JtX25hbWUgPSBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZSgpCiAgICAgICAg
IGlzX2RlYnVnX21vZGUgPSBGYWxzZQogCiAgICAgICAgIGFsbF90ZXN0X2ZpbGVzID0gc2VsZi50
ZXN0cyhbXSkKQEAgLTI2NSwxNyArMjczLDYgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9y
dCk6CiAgICAgICAgIHJldHVybiBbc2VsZi5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3QpCiAg
ICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRpb25zLmdldF90ZXN0c193aXRoX3Jl
c3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQogCi0gICAgZGVmIHRlc3RfcGxhdGZv
cm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21hYy1sZW9wYXJkJywgJ21hYy1zbm93
bGVvcGFyZCcsCi0gICAgICAgICAgICAgICAgJ3dpbi14cCcsICd3aW4tdmlzdGEnLCAnd2luLXdp
bjcnLAotICAgICAgICAgICAgICAgICdsaW51eCcpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9u
YW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1lKToKLSAgICAgICAgaWYgdGVzdF9w
bGF0Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAgICAgICAg
cmV0dXJuICdjaHJvbWl1bS0nICsgdGVzdF9wbGF0Zm9ybV9uYW1lCi0gICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X3BsYXRmb3JtX25hbWUpCi0KICAgICBkZWYgdGVzdF9yZXBv
c2l0b3J5X3BhdGhzKHNlbGYpOgogICAgICAgICAjIE5vdGU6IGZvciBKU09OIGZpbGUncyBiYWNr
d2FyZC1jb21wYXRpYmlsaXR5IHdlIHVzZSAnY2hyb21lJyByYXRoZXIKICAgICAgICAgIyB0aGFu
ICdjaHJvbWl1bScgaGVyZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKaW5kZXggMTY3ZjIzZWM0YmZhMTQyMDJl
NmZkNzk2ZmUxMTJiZjU0MGJkZjcwOS4uZmZjMmNmNzRjYzc1NDY3M2Y3MTc3NGJjODRlMjliNjQz
MmM2NWZkZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9ncHUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkKQEAgLTYwLDYgKzYwLDcgQEAgZGVmIGdldChwbGF0
Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScsICoqa3dhcmdzKToKICMgRklYTUU6
IFRoZXNlIHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFzcy4KIAogZGVmIF9zZXRfZ3B1X29w
dGlvbnMocG9ydCk6CisgICAgcG9ydC5fZ3JhcGhpY3NfdHlwZSA9ICdncHUnCiAgICAgaWYgcG9y
dC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF9jb21wb3NpdGluZycpIGlzIE5vbmU6CiAgICAgICAg
IHBvcnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcgPSBUcnVlCiAgICAgaWYgcG9y
dC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF8yZF9jYW52YXMnKSBpcyBOb25lOgpAQCAtODQsMTcg
Kzg1LDYgQEAgZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6CiAgICAgcmV0dXJuIHRlc3RfZmlsZXMu
ZmluZChwb3J0LCBwYXRocykKIAogCi1kZWYgX3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0g
ICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdsaW51eCcpCi0KLQotZGVmIF90ZXN0X3BsYXRmb3Jt
X25hbWVfdG9fbmFtZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgIGlmIHRlc3RfcGxh
dGZvcm1fbmFtZSBpbiBzZWxmLnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKLSAgICAgICAgcmV0dXJu
ICdjaHJvbWl1bS1ncHUtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQotICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ1Vuc3VwcG9ydGVkIHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKLSAgICAgICAgICAgICAg
ICAgICAgIHRlc3RfcGxhdGZvcm1fbmFtZSkKLQotCiBjbGFzcyBDaHJvbWl1bUdwdUxpbnV4UG9y
dChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LWxpbnV4JywgKiprd2FyZ3MpOgogICAgICAgICBj
aHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9
cG9ydF9uYW1lLCAqKmt3YXJncykKQEAgLTExMiwyMSArMTAyLDkgQEAgY2xhc3MgQ2hyb21pdW1H
cHVMaW51eFBvcnQoY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpOgogICAgIGRlZiBk
ZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKIAotICAgIGRl
ZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScKLQogICAgIGRlZiB0
ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2VsZiwgcGF0aHMpCiAK
LSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2xpbnV4
JwotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBf
dGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKQotCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90
b19uYW1lKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX3Rlc3RfcGxhdGZvcm1fbmFtZV90
b19uYW1lKHNlbGYsIG5hbWUpCi0KIAogY2xhc3MgQ2hyb21pdW1HcHVNYWNQb3J0KGNocm9taXVt
X21hYy5DaHJvbWl1bU1hY1BvcnQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9
J2Nocm9taXVtLWdwdS1tYWMnLCAqKmt3YXJncyk6CkBAIC0xNDQsMjEgKzEyMiw5IEBAIGNsYXNz
IENocm9taXVtR3B1TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KToKICAgICBk
ZWYgZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgIHJldHVybiAxCiAKLSAg
ICBkZWYgZ3JhcGhpY3NfdHlwZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdncHUnCi0KICAgICBk
ZWYgdGVzdHMoc2VsZiwgcGF0aHMpOgogICAgICAgICByZXR1cm4gX3Rlc3RzKHNlbGYsIHBhdGhz
KQogCi0gICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdt
YWMnCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJu
IF90ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1l
X3RvX25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBfdGVzdF9wbGF0Zm9ybV9uYW1l
X3RvX25hbWUoc2VsZiwgbmFtZSkKLQogCiBjbGFzcyBDaHJvbWl1bUdwdVdpblBvcnQoY2hyb21p
dW1fd2luLkNocm9taXVtV2luUG9ydCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFt
ZT0nY2hyb21pdW0tZ3B1LXdpbicsICoqa3dhcmdzKToKQEAgLTE3NiwxNyArMTQyLDUgQEAgY2xh
c3MgQ2hyb21pdW1HcHVXaW5Qb3J0KGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQpOgogICAg
IGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIDEKIAot
ICAgIGRlZiBncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2dwdScKLQogICAg
IGRlZiB0ZXN0cyhzZWxmLCBwYXRocyk6CiAgICAgICAgIHJldHVybiBfdGVzdHMoc2VsZiwgcGF0
aHMpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4g
J3dpbicKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNlbGYpOgotICAgICAgICByZXR1
cm4gX3Rlc3RfcGxhdGZvcm1fbmFtZXMoc2VsZikKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25h
bWVfdG9fbmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIF90ZXN0X3BsYXRmb3JtX25h
bWVfdG9fbmFtZShzZWxmLCBuYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKaW5kZXggMmNkMjQzNTE1
Mzc2ZjkyNzYwZWQyY2MzYTEzYjIyZmZlMGIxNzk3Ni4uMDZhZjVlZTk4ZThmOWQwODczMGE2YTBl
NzU3N2ZiZTkwODc4N2JlZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CkBAIC00NywxOSArNDcsMjAg
QEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAg
ICAgJ3g4Nic6IFsnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0td2luJywgJ2Nocm9taXVtJywg
J3dpbicsICdtYWMnXSwKICAgICB9CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1l
PU5vbmUsIHJlYmFzZWxpbmluZz1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwb3J0X25hbWU9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0
X25hbWUgb3IgJ2Nocm9taXVtLWxpbnV4JworICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVt
ID0gJ2xpbnV4JworICAgICAgICAjIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgJ2x1Y2lkJworICAg
ICAgICBzZWxmLl92ZXJzaW9uID0gJ2hhcmR5JwogICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBv
cnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAgICAg
ICAgIyBXZSByZS1zZXQgdGhlIHBvcnQgbmFtZSBvbmNlIHRoZSBiYXNlIG9iamVjdCBpcyBmdWxs
eSBpbml0aWFsaXplZAogICAgICAgICAjIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZmluZCB0aGUg
RFJUIGJpbmFyeSBwcm9wZXJseS4KLSAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbGlu
dXgnKSBhbmQgbm90IHJlYmFzZWxpbmluZzoKKyAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRo
KCctbGludXgnKToKICAgICAgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9IHNlbGYuX2RldGVy
bWluZV9hcmNoaXRlY3R1cmUoKQogICAgICAgICAgICAgIyBGSVhNRTogdGhpcyBpcyBhbiB1Z2x5
IGhhY2sgdG8gYXZvaWQgcmVuYW1pbmcgdGhlIEdQVSBwb3J0LgogICAgICAgICAgICAgaWYgcG9y
dF9uYW1lID09ICdjaHJvbWl1bS1saW51eCc6CiAgICAgICAgICAgICAgICAgcG9ydF9uYW1lID0g
cG9ydF9uYW1lICsgJy0nICsgc2VsZi5fYXJjaGl0ZWN0dXJlCi0gICAgICAgIGVsaWYgcmViYXNl
bGluaW5nOgotICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gJ3g4NicKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIGJhc2UsIGFyY2ggPSBwb3J0X25hbWUucnNwbGl0KCctJywgMSkK
ICAgICAgICAgICAgIGFzc2VydCBiYXNlIGluICgnY2hyb21pdW0tbGludXgnLCAnY2hyb21pdW0t
Z3B1LWxpbnV4JykKQEAgLTExNCwxNCArMTE1LDYgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQo
Y2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbnV4QnVp
bGRJbnN0cnVjdGlvbnMnKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAgICBkZWYgdGVzdF9w
bGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICAjIFdlIHVzZSAnbGludXgnIGluc3RlYWQgb2Yg
J2Nocm9taXVtLWxpbnV4JyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy50eHQuCi0gICAgICAgIHJldHVy
biAnbGludXgnCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgIyBGSVhNRTogYWRk
IHN1cHBvcnQgZm9yIEx1Y2lkLgotICAgICAgICByZXR1cm4gJ2hhcmR5JwotCiAgICAgIwogICAg
ICMgUFJPVEVDVEVEIE1FVEhPRFMKICAgICAjCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hYy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CmluZGV4IDE0MWI1ODc5
YzhiNDcyZTJhMzhkZDc1NzRkMjM1ZTM4YWU0MjEzOWYuLmYzMTc1Y2IxYTQzMGU2ZjlkN2Y4Mjk3
YmFkNTU3ZjA1NzliOGUzNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5CkBAIC02MCwzNyArNjAsMjEgQEAg
Y2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgICAg
ICAnbWFjLXNub3dsZW9wYXJkJywKICAgICAgICAgICAgICdtYWMnLAogICAgICAgICBdLAotICAg
ICAgICAnJzogWwotICAgICAgICAgICAgJ2Nocm9taXVtLW1hYycsCi0gICAgICAgICAgICAnY2hy
b21pdW0nLAotICAgICAgICAgICAgJ21hYycsCi0gICAgICAgIF0sCiAgICAgfQogCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCBy
ZWJhc2VsaW5pbmc9RmFsc2UsICoqa3dhcmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dF9uYW1lPU5vbmUsIG9zX3ZlcnNpb25fc3RyaW5nPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAg
IyBXZSdyZSBhIGxpdHRsZSBnZW5lcmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2Vk
IGJ5IHRoZQogICAgICAgICAjICdnb29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdt
b2NrLScgYW5kICdkcnlydW4tJyBwb3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1l
IG9yICdjaHJvbWl1bS1tYWMnCiAKICAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctbWFj
Jyk6Ci0gICAgICAgICAgICAjIEZJWE1FOiBUaGUgcmViYXNlbGluaW5nIGZsYWcgaXMgYW4gdWds
eSBoYWNrIHRoYXQgbGV0cyB1cyBjcmVhdGUgYW4KLSAgICAgICAgICAgICMgImNocm9taXVtLW1h
YyIgcG9ydCB0aGF0IGlzIG5vdCB2ZXJzaW9uLXNwZWNpZmljLiBJdCBzaG91bGQgb25seSBiZQot
ICAgICAgICAgICAgIyB1c2VkIGJ5IHJlYmFzZWxpbmUtY2hyb21pdW0td2Via2l0LXRlc3RzIHRv
IGV4cGxpY2l0bHkgcHV0IGZpbGVzIGludG8KLSAgICAgICAgICAgICMgdGhlIGdlbmVyaWMgZGly
ZWN0b3J5LiBJbiB0aGVvcnkgd2Ugc2hvdWxkbid0IG5lZWQgdGhpcywgYmVjYXVzZQotICAgICAg
ICAgICAgIyB0aGUgbmV3ZXN0IG1hYyBwb3J0IHNob3VsZCBiZSB1c2luZyAnY2hyb21pdW0tbWFj
JyBhcyB0aGUgYmFzZWxpbmUKLSAgICAgICAgICAgICMgZGlyZWN0b3J5LiBIb3dldmVyLCB3ZSBh
bHNvIGRvbid0IGhhdmUgc3RhYmxlIFNMIGJvdHMgOigKLSAgICAgICAgICAgICMKLSAgICAgICAg
ICAgICMgV2hlbiB3ZSByZW1vdmUgdGhpcyBGSVhNRSwgd2UgYWxzbyBuZWVkIHRvIHJlbW92ZSAn
JyBhcyBhIHZhbGlkCi0gICAgICAgICAgICAjIGZhbGxiYWNrIGtleSBpbiBzZWxmLkZBTExCQUNL
X1BBVEhTLgotICAgICAgICAgICAgaWYgcmViYXNlbGluaW5nOgotICAgICAgICAgICAgICAgIHNl
bGYuX3ZlcnNpb24gPSAnJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gbWFjLm9zX3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmcsIHNlbGYuU1VQUE9S
VEVEX09TX1ZFUlNJT05TKQotICAgICAgICAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSAr
ICctJyArIHNlbGYuX3ZlcnNpb24KKyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBtYWMub3Nf
dmVyc2lvbihvc192ZXJzaW9uX3N0cmluZywgc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMpCisg
ICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCiAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gcG9ydF9uYW1lW3BvcnRf
bmFtZS5pbmRleCgnLW1hYy0nKSArIDU6XQogICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX3ZlcnNp
b24gaW4gc2VsZi5TVVBQT1JURURfT1NfVkVSU0lPTlMKIAorICAgICAgICBzZWxmLl9vcGVyYXRp
bmdfc3lzdGVtID0gJ21hYycKICAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9f
KHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIGJhc2VsaW5l
X3BhdGgoc2VsZik6CkBAIC0xMjMsMTUgKzEwNyw2IEBAIGNsYXNzIENocm9taXVtTWFjUG9ydChj
aHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgIGRlZiBkcml2ZXJfbmFtZShzZWxmKToKICAgICAg
ICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIKIAotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUo
c2VsZik6Ci0gICAgICAgICMgV2UgdXNlICdtYWMnIGluc3RlYWQgb2YgJ2Nocm9taXVtLW1hYycK
LQotICAgICAgICAjIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgbWV0aG9kIGFmdGVyIHJlYmFzZWxp
bmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzIGRpZXMuCi0gICAgICAgIHJldHVybiAnbWFjJwotCi0g
ICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCi0KICAg
ICAjCiAgICAgIyBQUk9URUNURUQgTUVUSE9EUwogICAgICMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNf
dW5pdHRlc3QucHkKaW5kZXggMTIwMTFjNmNkNGZmMjFmN2ExODFmZGIyMGE0NWM3YzA0MjdkMGI5
My4uYjFiYmFjOGQyMzhkY2VjYmJmMzM0ZTZiNTYxOWUzYTBjYzI5ZDU5YiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWNfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9tYWNfdW5pdHRlc3QucHkKQEAgLTY4LDE2ICs2OCw2IEBAIGNsYXNzIENocm9taXVt
TWFjUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhLZXlFcnJvciwgc2VsZi5hc3NlcnRfbmFtZSwgTm9uZSwgJzEwLjcuMScsICdj
aHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlv
bkVycm9yLCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAnMTAuNC4xJywgJ2Nocm9taXVtLW1hYy1s
ZW9wYXJkJykKIAotICAgIGRlZiB0ZXN0X2dlbmVyaWNfcmViYXNlbGluaW5nX3BvcnQoc2VsZik6
Ci0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KHJlYmFzZWxpbmlu
Zz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0Lm5hbWUoKSwgJ2Nocm9taXVt
LW1hYycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQudmVyc2lvbigpLCAnJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtp
dF9iYXNlbGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQotICAgICAgICBwb3J0ID0gY2hyb21pdW1f
bWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1sZW9wYXJkJywgcmVi
YXNlbGluaW5nPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAn
Y2hyb21pdW0tbWFjLWxlb3BhcmQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJh
c2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocG9ydC5uYW1lKCkpKQot
CiAgICAgZGVmIHRlc3RfYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAgcG9ydCA9IGNocm9t
aXVtX21hYy5DaHJvbWl1bU1hY1BvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS1tYWMtbGVvcGFyZCcp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93
ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjLWxlb3BhcmQnKSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4u
cHkKaW5kZXggZDA5MDhkZjJiOTM0Yjk1YmViNGEyOTVlOTczYzFjNGRkY2Q4NjE4Mi4uY2Q1MTRk
NGFlMzViMzk2OTljZTEwNmQxZDI5NWMzODQwMmNlNDM1MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAg
LTYzLDMzICs2MywyMSBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21pdW0uQ2hyb21pdW1Q
b3J0KToKICAgICAgICAgJ3hwJzogWydjaHJvbWl1bS13aW4teHAnLCAnY2hyb21pdW0td2luLXZp
c3RhJywgJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1bScsICd3aW4nLCAnbWFjJ10sCiAgICAgICAg
ICd2aXN0YSc6IFsnY2hyb21pdW0td2luLXZpc3RhJywgJ2Nocm9taXVtLXdpbicsICdjaHJvbWl1
bScsICd3aW4nLCAnbWFjJ10sCiAgICAgICAgICd3aW43JzogWydjaHJvbWl1bS13aW4nLCAnY2hy
b21pdW0nLCAnd2luJywgJ21hYyddLAotICAgICAgICAnJzogWydjaHJvbWl1bS13aW4nLCAnY2hy
b21pdW0nLCAnd2luJywgJ21hYyddLAogICAgIH0KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
b3J0X25hbWU9Tm9uZSwgd2luZG93c192ZXJzaW9uPU5vbmUsIHJlYmFzZWxpbmluZz1GYWxzZSwg
Kiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgd2luZG93
c192ZXJzaW9uPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgIyBXZSdyZSBhIGxpdHRsZSBnZW5l
cmljIGhlcmUgYmVjYXVzZSB0aGlzIGNvZGUgaXMgcmV1c2VkIGJ5IHRoZQogICAgICAgICAjICdn
b29nbGUtY2hyb21lJyBwb3J0IGFzIHdlbGwgYXMgdGhlICdtb2NrLScgYW5kICdkcnlydW4tJyBw
b3J0cy4KICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS13aW4nCiAK
ICAgICAgICAgaWYgcG9ydF9uYW1lLmVuZHN3aXRoKCctd2luJyk6Ci0gICAgICAgICAgICAjIEZJ
WE1FOiBUaGUgcmViYXNlbGluaW5nIGZsYWcgaXMgYW4gdWdseSBoYWNrIHRoYXQgbGV0cyB1cyBj
cmVhdGUgYW4KLSAgICAgICAgICAgICMgImNocm9taXVtLXdpbiIgcG9ydCB0aGF0IGlzIG5vdCB2
ZXJzaW9uLXNwZWNpZmljLiBJdCBzaG91bGQgb25seSBiZQotICAgICAgICAgICAgIyB1c2VkIGJ5
IHJlYmFzZWxpbmUtY2hyb21pdW0td2Via2l0LXRlc3RzIHRvIGV4cGxpY2l0bHkgcHV0IGZpbGVz
IGludG8KLSAgICAgICAgICAgICMgdGhlIGdlbmVyaWMgZGlyZWN0b3J5LiBJbiB0aGVvcnkgd2Ug
c2hvdWxkbid0IG5lZWQgdGhpcywgYmVjYXVzZQotICAgICAgICAgICAgIyB0aGUgbmV3ZXN0IHdp
biBwb3J0IHNob3VsZCBiZSB1c2luZyAnY2hyb21pdW0td2luJyBhcyB0aGUgYmFzZWxpbmUKLSAg
ICAgICAgICAgICMgZGlyZWN0b3J5LiBIb3dldmVyLCB3ZSBhbHNvIGRvbid0IGhhdmUgc3RhYmxl
IFdpbiA3IGJvdHMgOigKLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgV2hlbiB3ZSByZW1v
dmUgdGhpcyBGSVhNRSwgd2UgYWxzbyBuZWVkIHRvIHJlbW92ZSAnJyBhcyBhIHZhbGlkCi0gICAg
ICAgICAgICAjIGZhbGxiYWNrIGtleSBpbiBzZWxmLkZBTExCQUNLX1BBVEhTLgotICAgICAgICAg
ICAgaWYgcmViYXNlbGluaW5nOgotICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAnJwot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3NfdmVy
c2lvbih3aW5kb3dzX3ZlcnNpb24pCi0gICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9u
YW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG9z
X3ZlcnNpb24od2luZG93c192ZXJzaW9uKQorICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9u
YW1lICsgJy0nICsgc2VsZi5fdmVyc2lvbgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2Vs
Zi5fdmVyc2lvbiA9IHBvcnRfbmFtZVtwb3J0X25hbWUuaW5kZXgoJy13aW4tJykgKyA1Ol0KICAg
ICAgICAgICAgIGFzc2VydCBzZWxmLl92ZXJzaW9uIGluIHNlbGYuU1VQUE9SVEVEX1ZFUlNJT05T
CiAKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCiAgICAgICAgIGNocm9t
aXVtLkNocm9taXVtUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3
YXJncykKIAogICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZik6CkBAIC0xMzcs
MTcgKzEyNSw2IEBAIGNsYXNzIENocm9taXVtV2luUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQp
OgogICAgICAgICBwYXRoID0gZmlsZW5hbWVbbGVuKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpKSAr
IDE6XQogICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKIAotICAgIGRlZiB0
ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgICMgV2UgcmV0dXJuICd3aW4teHAnLCBu
b3QgJ2Nocm9taXVtLXdpbi14cCcgaGVyZSwgZm9yIGNvbnZlbmllbmNlLgotCi0gICAgICAgICMg
RklYTUU6IEdldCByaWQgb2YgdGhpcyBtZXRob2QgYWZ0ZXIgcmViYXNlbGluZV9jaHJvbWl1bV93
ZWJraXRfdGVzdHMgZGllcy4KLSAgICAgICAgaWYgc2VsZi52ZXJzaW9uKCkgPT0gJyc6Ci0gICAg
ICAgICAgICByZXR1cm4gJ3dpbicKLSAgICAgICAgcmV0dXJuICd3aW4tJyArIHNlbGYudmVyc2lv
bigpCi0KLSAgICBkZWYgdmVyc2lvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNp
b24KLQogICAgICMKICAgICAjIFBST1RFQ1RFRCBST1VUSU5FUwogICAgICMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV93aW5fdW5pdHRlc3QucHkKaW5kZXggOGVhNzA2MGM1M2FiNjAzYWQ4YzAyNTdiOTY4NGUw
NzUzOTBiNzdhMy4uMzE5YWFjZGM0NzBhM2Q2MTE2ZjQwNDgxYTgyNzQzYjliMDEzMTg0MyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV93aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKQEAgLTEyNywxNiArMTI3LDYgQEAgY2xh
c3MgQ2hyb21pdW1XaW5UZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICg1LCAy
KSwgJ2Nocm9taXVtLXdpbi14cCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9y
LCBzZWxmLmFzc2VydF9uYW1lLCBOb25lLCAoNywgMSksICdjaHJvbWl1bS13aW4teHAnKQogCi0g
ICAgZGVmIHRlc3RfZ2VuZXJpY19yZWJhc2VsaW5pbmdfcG9ydChzZWxmKToKLSAgICAgICAgcG9y
dCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocmViYXNlbGluaW5nPVRydWUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAnY2hyb21pdW0td2luJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC52ZXJzaW9uKCksICcnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgocG9ydC5uYW1lKCkpKQotCi0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1X
aW5Qb3J0KHBvcnRfbmFtZT0nY2hyb21pdW0td2luLXhwJywgcmViYXNlbGluaW5nPVRydWUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQubmFtZSgpLCAnY2hyb21pdW0td2luLXhwJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dl
YmtpdF9iYXNlbGluZV9wYXRoKHBvcnQubmFtZSgpKSkKLQogICAgIGRlZiB0ZXN0X2Jhc2VsaW5l
X3BhdGgoc2VsZik6CiAgICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0
KHBvcnRfbmFtZT0nY2hyb21pdW0td2luLXhwJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
cG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJvbWl1
bS13aW4teHAnKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9tYWMucHkKaW5kZXggNDMxNTU0MzIwMzliNGFjNjkzNzFkZjc4NzEwNzBjODdmNzUyYWI3ZC4u
ZDZmZjZiZmUxNzA2YWMwZGUyMGE2MmQ5ZDFhOGY4MjIxM2NiNTFhMSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKQEAgLTczLDcgKzczLDYg
QEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQb3J0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
b3J0X25hbWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAg
ICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ21hYycKLQogICAgICAgICBpZiBwb3J0X25hbWUg
PT0gJ21hYyc6CiAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gb3NfdmVyc2lvbihvc192ZXJz
aW9uX3N0cmluZykKICAgICAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRfbmFtZSArICctJyArIHNl
bGYuX3ZlcnNpb24KQEAgLTgxLDYgKzgwLDcgQEAgY2xhc3MgTWFjUG9ydChXZWJLaXRQb3J0KToK
ICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBwb3J0X25hbWVbNDpdCiAgICAgICAgICAgICBh
c3NlcnQgc2VsZi5fdmVyc2lvbiBpbiBzZWxmLlNVUFBPUlRFRF9WRVJTSU9OUwogCisgICAgICAg
IHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnbWFjJwogICAgICAgICBXZWJLaXRQb3J0Ll9faW5p
dF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIGRlZmF1
bHRfY2hpbGRfcHJvY2Vzc2VzKHNlbGYpOgpAQCAtMTE1LDEyICsxMTUsNiBAQCBjbGFzcyBNYWNQ
b3J0KFdlYktpdFBvcnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ1NraXBwZWQnKSkKICAgICAgICAgcmV0dXJuIHNraXBwZWRfZmlsZXMKIAotICAgIGRlZiB0
ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnbWFjLScgKyBzZWxmLnZl
cnNpb24oKQotCi0gICAgZGVmIHZlcnNpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl92
ZXJzaW9uCi0KICAgICBkZWYgX2J1aWxkX2phdmFfdGVzdF9zdXBwb3J0KHNlbGYpOgogICAgICAg
ICBqYXZhX3Rlc3RzX3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVz
dHNfZGlyKCksICJqYXZhIikKICAgICAgICAgYnVpbGRfamF2YSA9IFsiL3Vzci9iaW4vbWFrZSIs
ICItQyIsIGphdmFfdGVzdHNfcGF0aF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQppbmRleCAwOTdmZWUyNjMyZGMxY2ZhM2FiNzIyZmRmOTk3
YzU4NTkxYWVlYzA1Li5mOWMyMjgyZGI2Mjc4NTM0NGM5YzcwMWI3NjFiYTUyZTI0ZWI0ZDA1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5
CkBAIC0yMjAsNiArMjIwLDExIEBAIFdPTlRGSVggU0tJUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2V4
Y2VwdGlvbi5odG1sID0gQ1JBU0gKIAogY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAi
IiJUZXN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFjZS4iIiIKKyAgICBBTExf
QkFTRUxJTkVfVkFSSUFOVFMgPSAoCisgICAgICAgICd0ZXN0LW1hYy1zbm93bGVvcGFyZCcsICd0
ZXN0LW1hYy1sZW9wYXJkJywKKyAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnLCAndGVzdC13aW4tdmlz
dGEnLCAndGVzdC13aW4teHAnLAorICAgICAgICAndGVzdC1saW51eCcsCisgICAgKQogCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCB1c2VyPU5vbmUsIGZpbGVzeXN0ZW09
Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBpZiBub3QgZmlsZXN5c3RlbToKQEAgLTIzNCw2ICsy
MzksMjIgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgaWYgbm90IHBvcnRf
bmFtZSBvciBwb3J0X25hbWUgPT0gJ3Rlc3QnOgogICAgICAgICAgICAgcG9ydF9uYW1lID0gJ3Rl
c3QtbWFjLWxlb3BhcmQnCiAKKyAgICAgICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICdtYWMn
CisgICAgICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCd0ZXN0LXdpbicpOgorICAgICAgICAg
ICAgc2VsZi5fb3BlcmF0aW5nX3N5c3RlbSA9ICd3aW4nCisgICAgICAgIGVsaWYgcG9ydF9uYW1l
LnN0YXJ0c3dpdGgoJ3Rlc3QtbGludXgnKToKKyAgICAgICAgICAgIHNlbGYuX29wZXJhdGluZ19z
eXN0ZW0gPSAnbGludXgnCisKKyAgICAgICAgdmVyc2lvbl9tYXAgPSB7CisgICAgICAgICAgICAn
dGVzdC13aW4teHAnOiAneHAnLAorICAgICAgICAgICAgJ3Rlc3Qtd2luLXdpbjcnOiAnd2luNycs
CisgICAgICAgICAgICAndGVzdC13aW4tdmlzdGEnOiAndmlzdGEnLAorICAgICAgICAgICAgJ3Rl
c3QtbWFjLWxlb3BhcmQnOiAnbGVvcGFyZCcsCisgICAgICAgICAgICAndGVzdC1tYWMtc25vd2xl
b3BhcmQnOiAnc25vd2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3QtbGludXgnOiAnJywKKyAg
ICAgICAgfQorICAgICAgICBzZWxmLl92ZXJzaW9uID0gdmVyc2lvbl9tYXBbcG9ydF9uYW1lXQor
CiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc19wYXRoID0gTEFZT1VUX1RFU1RfRElSICsgJy9w
bGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCcKICAgICAgICAgYmFzZS5Qb3J0Ll9f
aW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSwg
dXNlcj11c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCkBAIC0zMTEs
MTkgKzMzMiw4IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIHBhdGhfdG9f
dGVzdF9leHBlY3RhdGlvbnNfZmlsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVj
dGF0aW9uc19wYXRoCiAKLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc2VsZi5uYW1lKClbNTpdCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywK
LSAgICAgICAgICAgICAgICAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4td2luNycsCi0gICAg
ICAgICAgICAgICAgJ2xpbnV4JykKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVfdG9fbmFt
ZShzZWxmLCB0ZXN0X3BsYXRmb3JtX25hbWUpOgotICAgICAgICBpZiB0ZXN0X3BsYXRmb3JtX25h
bWUgaW4gc2VsZi50ZXN0X3BsYXRmb3JtX25hbWVzKCk6Ci0gICAgICAgICAgICByZXR1cm4gJ3Rl
c3QtJyArIHRlc3RfcGxhdGZvcm1fbmFtZQotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVbnN1
cHBvcnRlZCB0ZXN0X3BsYXRmb3JtX25hbWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9wbGF0Zm9ybV9uYW1lKQorICAgIGRlZiBhbGxfYmFzZWxpbmVfdmFyaWFudHMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLkFMTF9CQVNFTElORV9WQVJJQU5UUwogCiAgICAgIyBG
SVhNRTogVGhlc2UgbmV4dCB0d28gcm91dGluZXMgYXJlIGNvcGllZCBmcm9tIGJhc2UucHkgd2l0
aAogICAgICMgdGhlIGNhbGxzIHRvIHBhdGguYWJzcGF0aF90b191cmkoKSByZW1vdmVkLiBXZSBz
aG91bGRuJ3QgaGF2ZQpAQCAtMzgzLDIyICszOTMsNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBv
cnQpOgogCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vua25vd24gdXJsIHR5
cGU6ICVzJyAlIHVyaSkKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgotICAgICAgICB2ZXJzaW9u
X21hcCA9IHsKLSAgICAgICAgICAgICd0ZXN0LXdpbi14cCc6ICd4cCcsCi0gICAgICAgICAgICAn
dGVzdC13aW4td2luNyc6ICd3aW43JywKLSAgICAgICAgICAgICd0ZXN0LXdpbi12aXN0YSc6ICd2
aXN0YScsCi0gICAgICAgICAgICAndGVzdC1tYWMtbGVvcGFyZCc6ICdsZW9wYXJkJywKLSAgICAg
ICAgICAgICd0ZXN0LW1hYy1zbm93bGVvcGFyZCc6ICdzbm93bGVvcGFyZCcsCi0gICAgICAgICAg
ICAndGVzdC1saW51eCc6ICcnLAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB2ZXJzaW9uX21h
cFtzZWxmLl9uYW1lXQotCi0gICAgZGVmIHRlc3RfY29uZmlndXJhdGlvbihzZWxmKToKLSAgICAg
ICAgaWYgbm90IHNlbGYuX3Rlc3RfY29uZmlndXJhdGlvbjoKLSAgICAgICAgICAgIHNlbGYuX3Rl
c3RfY29uZmlndXJhdGlvbiA9IFRlc3RUZXN0Q29uZmlndXJhdGlvbihzZWxmKQotICAgICAgICBy
ZXR1cm4gc2VsZi5fdGVzdF9jb25maWd1cmF0aW9uCi0KIAogY2xhc3MgVGVzdERyaXZlcihiYXNl
LkRyaXZlcik6CiAgICAgIiIiVGVzdC9EdW1teSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRHVtcFJl
bmRlclRyZWUgaW50ZXJmYWNlLiIiIgpAQCAtNDMyLDEwICs0MjYsMyBAQCBjbGFzcyBUZXN0RHJp
dmVyKGJhc2UuRHJpdmVyKToKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBwYXNzCi0K
LQotY2xhc3MgVGVzdFRlc3RDb25maWd1cmF0aW9uKGJhc2UuVGVzdENvbmZpZ3VyYXRpb24pOgot
ICAgIGRlZiBhbGxfc3lzdGVtcyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgoJ21hYycsICdsZW9w
YXJkJywgJ3g4NicpLAotICAgICAgICAgICAgICAgICgnd2luJywgJ3hwJywgJ3g4NicpLAotICAg
ICAgICAgICAgICAgICgnd2luJywgJ3dpbjcnLCAneDg2JykpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IDY1YTA0N2Q5ZDVh
ODNkMjllYWM4YjBmMzAxYWEyOTIxY2EzOTUxMTcuLjczZjQ1ZGJlZjQzM2VhODBmMTAxMjJjMmEz
MzVkNGE3NzhhZDZhNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2Via2l0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2Via2l0LnB5CkBAIC0zMjcsMTIgKzMyNyw2IEBAIGNsYXNzIFdlYktpdFBv
cnQoYmFzZS5Qb3J0KToKICAgICAgICAgdGVzdHNfdG9fc2tpcC51cGRhdGUoc2VsZi5fdGVzdHNf
Zm9yX2Rpc2FibGVkX2ZlYXR1cmVzKCkpCiAgICAgICAgIHJldHVybiB0ZXN0c190b19za2lwCiAK
LSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
bmFtZSArIHNlbGYudmVyc2lvbigpCi0KLSAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhzZWxm
KToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICdtYWMtdGlnZXInLCAnbWFjLWxlb3Bh
cmQnLCAnbWFjLXNub3dsZW9wYXJkJykKLQogICAgIGRlZiBfYnVpbGRfcGF0aChzZWxmLCAqY29t
cHMpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2NvbmZpZy5i
dWlsZF9kaXJlY3RvcnkoCiAgICAgICAgICAgICBzZWxmLmdldF9vcHRpb24oJ2NvbmZpZ3VyYXRp
b24nKSksICpjb21wcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93aW4ucHkKaW5kZXggZTdkMjAwNGJhYjM1ZTdkM2Q4ZGRmMmI4YmUwNjE1YTE2YTk0MDVh
My4uMTA2ZjM2NDgwOTczZjlkYzA1N2UzNjE3MzM2ZjE1MDFiN2UyYzY3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKQEAgLTQwLDYgKzQw
LDggQEAgY2xhc3MgV2luUG9ydChXZWJLaXRQb3J0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCAqKmt3YXJncyk6CiAgICAgICAgIGt3YXJncy5zZXRkZWZhdWx0KCdwb3J0X25hbWUnLCAnd2lu
JykKKyAgICAgICAgc2VsZi5fdmVyc2lvbiA9ICd3aW43JworICAgICAgICBzZWxmLl9vcGVyYXRp
bmdfc3lzdGVtID0gJ3dpbicKICAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3
YXJncykKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1f
d2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5kZXggY2U4YzdkNjhiYjkwZGMxOThh
MDgwMDFkMWVjOWVlNTkzZDZhMTUyMi4uMmRjN2QwYTAyNmRjMGU1YzNjODU3NWI2MDE3M2Q5ZDY1
M2IzOTBlNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkK
QEAgLTYxLDM0ICs2MSwxNiBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAK
IEJBU0VMSU5FX1NVRkZJWEVTID0gKCcudHh0JywgJy5wbmcnLCAnLmNoZWNrc3VtJykKIAotIyBP
bmx5IHRoZSBXZWJLaXQgY2FuYXJpZXMgaGF2ZSBhIGZ1bGwgY29tcGxlbWVudCBvZiBib3RzLiBU
aGUgR1BVCi0jIGJvdHMgZG9uJ3QgaGF2ZSB2ZXJzaW9uLXNwZWNpZmljIGJhc2VsaW5lcyB5ZXQu
IFdlIG9ubHkgaGF2ZSB0aGUgdGhyZWUKLSMgbWFpbiBEZXBzIGJvdHMuCi0KLSMgQnkgcnVubmlu
ZyB0aGUgdGVzdCBpbiB0aGlzIG9yZGVyIHdlIGVuc3VyZSB0aGF0IGlmIGEgbGF0ZXIgdGVzdCBp
cyBhCi0jIGR1cGxpY2F0ZSBvZiBhbnkgZWFybGllciBvbmUsIHdlJ2xsIG5vdGljZSBpdCBhbmQg
b25seSBrZWVwIG9uZSBjb3B5LgotUkVCQVNFTElORV9HUFVfT1JERVIgPSBbJ21hYycsICd3aW4n
LCAnbGludXgnXQotUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZX09SREVSID0gWydtYWMtc25vd2xl
b3BhcmQnLCAnbWFjLWxlb3BhcmQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd3aW4td2luNycsICd3aW4tdmlzdGEnLCAnd2luLXhwJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnbGludXgnXQotUkVCQVNFTElORV9QTEFURk9STV9PUkRFUiA9IFsnbWFj
JywgJ3dpbicsICdsaW51eCddCi0KLUFSQ0hJVkVfRElSX05BTUVfRElDVCA9IHsnd2luJzogJ1dl
YmtpdF9XaW5fX2RlcHNfJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXZpc3RhJzog
J3dlYmtpdC1kYmctdmlzdGEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4teHAnOiAn
V2Via2l0X1dpbl9fZGVwc18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnOiAnV2Vi
a2l0X01hYzEwXzVfX2RlcHNfJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbGludXgnOiAn
V2Via2l0X0xpbnV4X19kZXBzXycsCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXdp
bjctY2FuYXJ5JzogJ1dlYmtpdF9XaW43JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnd2lu
LXZpc3RhLWNhbmFyeSc6ICdXZWJraXRfVmlzdGEnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICd3aW4teHAtY2FuYXJ5JzogJ1dlYmtpdF9XaW4nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICdtYWMtbGVvcGFyZC1jYW5hcnknOiAnV2Via2l0X01hYzEwXzUnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICdtYWMtc25vd2xlb3BhcmQtY2FuYXJ5JzogJ1dlYmtpdF9NYWMxMF82JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAnbGludXgtY2FuYXJ5JzogJ1dlYmtpdF9MaW51eCcsCi0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1LW1hYy1jYW5hcnknOiAnV2Via2l0X01hYzEw
XzVfLV9HUFUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICdncHUtd2luLWNhbmFyeSc6ICdX
ZWJraXRfV2luXy1fR1BVJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnZ3B1LWxpbnV4LWNh
bmFyeSc6ICdXZWJraXRfTGludXhfLV9HUFUnLAorQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gewor
ICAgICdjaHJvbWl1bS13aW4td2luNyc6ICdXZWJraXRfV2luNycsCisgICAgJ2Nocm9taXVtLXdp
bi12aXN0YSc6ICdXZWJraXRfVmlzdGEnLAorICAgICdjaHJvbWl1bS13aW4teHAnOiAnV2Via2l0
X1dpbicsCisgICAgJ2Nocm9taXVtLW1hYy1sZW9wYXJkJzogJ1dlYmtpdF9NYWMxMF81JywKKyAg
ICAnY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJzogJ1dlYmtpdF9NYWMxMF82JywKKyAgICAnY2hy
b21pdW0tbGludXgnOiAnV2Via2l0X0xpbnV4JywKKyAgICAnY2hyb21pdW0tZ3B1LW1hYy1sZW9w
YXJkJzogJ1dlYmtpdF9NYWMxMF81Xy1fR1BVJywKKyAgICAnY2hyb21pdW0tZ3B1LXdpbi14cCc6
ICdXZWJraXRfV2luXy1fR1BVJywKKyAgICAnY2hyb21pdW0tZ3B1LWxpbnV4JzogJ1dlYmtpdF9M
aW51eF8tX0dQVScsCiB9CiAKIApAQCAtMTc5LDExICsxNjEsNyBAQCBjbGFzcyBSZWJhc2VsaW5l
cihvYmplY3QpOgogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gcnVubmluZ19wb3J0Ll9maWxl
c3lzdGVtCiAgICAgICAgIHNlbGYuX3RhcmdldF9wb3J0ID0gdGFyZ2V0X3BvcnQKIAotICAgICAg
ICAjIEZJWE1FOiBTZWUgdGhlIGNvbW1lbnRzIGluIGNocm9taXVtX3t3aW4sbWFjfS5weSBhYm91
dCB3aHkgd2UgbmVlZAotICAgICAgICAjIHRoZSAncmViYXNlbGluaW5nJyBrZXl3b3JkLgotICAg
ICAgICBzZWxmLl9yZWJhc2VsaW5lX3BvcnQgPSBwb3J0LmdldCgKLSAgICAgICAgICAgIHNlbGYu
X3RhcmdldF9wb3J0LnRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHBsYXRmb3JtKSwgb3B0aW9u
cywKLSAgICAgICAgICAgIGZpbGVzeXN0ZW09c2VsZi5fZmlsZXN5c3RlbSwgcmViYXNlbGluaW5n
PVRydWUpCisgICAgICAgIHNlbGYuX3JlYmFzZWxpbmVfcG9ydCA9IHBvcnQuZ2V0KHBsYXRmb3Jt
LCBvcHRpb25zLCBmaWxlc3lzdGVtPXNlbGYuX2ZpbGVzeXN0ZW0pCiAgICAgICAgIHNlbGYuX3Jl
YmFzZWxpbmluZ190ZXN0cyA9IHNldCgpCiAgICAgICAgIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3Rz
ID0gW10KIApAQCAtMTk4LDcgKzE3Niw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYuX3ppcF9mYWN0b3J5ID0gemlwX2ZhY3RvcnkKICAgICAgICAgc2VsZi5fc2Nt
ID0gc2NtCiAKLSAgICBkZWYgcnVuKHNlbGYsIGJhY2t1cCk6CisgICAgZGVmIHJ1bihzZWxmKToK
ICAgICAgICAgIiIiUnVuIHJlYmFzZWxpbmUgcHJvY2Vzcy4iIiIKIAogICAgICAgICBsb2dfZGFz
aGVkX3N0cmluZygnQ29tcGlsaW5nIHJlYmFzZWxpbmluZyB0ZXN0cycsIHNlbGYuX3BsYXRmb3Jt
KQpAQCAtMjMzLDcgKzIxMSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAKICAgICAg
ICAgcmV0dXJuIFRydWUKIAotICAgIGRlZiByZW1vdmVfcmViYXNlbGluZWRfdGVzdHNfZnJvbV9l
eHBlY3RhdGlvbnMoc2VsZiwgdGVzdHMsIGJhY2t1cCk6CisgICAgZGVmIHJlbW92ZV9yZWJhc2Vs
aW5pbmdfZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBiYWNrdXApOgogICAgICAgICAiIiJpZiBi
YWNrdXAgaXMgVHJ1ZSwgd2UgYmFja3VwIHRoZSBvcmlnaW5hbCB0ZXN0IGV4cGVjdGF0aW9ucyBm
aWxlLiIiIgogICAgICAgICBuZXdfZXhwZWN0YXRpb25zID0gc2VsZi5fdGVzdF9leHBlY3RhdGlv
bnMucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzKHRlc3RzKQogICAgICAgICBwYXRoID0gc2VsZi5f
dGFyZ2V0X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKQEAgLTMzMywxMyAr
MzExLDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5mb3JjZV9hcmNoaXZlX3VybDoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9vcHRpb25z
LmZvcmNlX2FyY2hpdmVfdXJsCiAKLSAgICAgICAgcGxhdGZvcm0gPSBzZWxmLl9wbGF0Zm9ybQot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLndlYmtpdF9jYW5hcnk6Ci0gICAgICAgICAgICBwbGF0
Zm9ybSArPSAnLWNhbmFyeScKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncHU6Ci0gICAgICAg
ICAgICBwbGF0Zm9ybSA9ICdncHUtJyArIHBsYXRmb3JtCi0KLSAgICAgICAgZGlyX25hbWUgPSBz
ZWxmLl9nZXRfYXJjaGl2ZV9kaXJfbmFtZShwbGF0Zm9ybSkKKyAgICAgICAgZGlyX25hbWUgPSBz
ZWxmLl9nZXRfYXJjaGl2ZV9kaXJfbmFtZShzZWxmLl9wbGF0Zm9ybSkKICAgICAgICAgaWYgbm90
IGRpcl9uYW1lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIApAQCAtMzc1LDggKzM0Nyw3IEBA
IGNsYXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAgICAgICAgIGZvciBuYW1lIGluIHppcF9uYW1l
bGlzdDoKICAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgJyArIG5hbWUpCiAKLSAgICAgICAgcGxh
dGZvcm0gPSBzZWxmLl9yZWJhc2VsaW5lX3BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUo
c2VsZi5fcGxhdGZvcm0pCi0gICAgICAgIF9sb2cuZGVidWcoJ1BsYXRmb3JtIGRpcjogIiVzIics
IHBsYXRmb3JtKQorICAgICAgICBfbG9nLmRlYnVnKCdQbGF0Zm9ybSBkaXI6ICIlcyInLCBzZWxm
Ll9wbGF0Zm9ybSkKIAogICAgICAgICBzZWxmLl9yZWJhc2VsaW5lZF90ZXN0cyA9IFtdCiAgICAg
ICAgIGZvciB0ZXN0X25vLCB0ZXN0IGluIGVudW1lcmF0ZShzZWxmLl9yZWJhc2VsaW5pbmdfdGVz
dHMpOgpAQCAtNzkxLDEwICs3NjIsNiBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0nU3VwcHJlc3MgcmVzdWx0IEhUTUwgdmlld2luZycpCiAK
LSAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1nJywgJy0tZ3B1JywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlYmFzZWxpbmUgdGhlIEdQVSB2ZXJzaW9u
cycpCi0KICAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcGxhdGZvcm1zJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSgnQ29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGxhdGZvcm1z
ICcKQEAgLTgwOSwxMiArNzc2LDYgQEAgZGVmIHBhcnNlX29wdGlvbnMoYXJncyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdVcmwgb2YgcmVzdWx0IHppcCBmaWxlLiBUaGlz
IG9wdGlvbiBpcyBmb3IgZGVidWdnaW5nICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3B1cnBvc2VzJykpCiAKLSAgICBvcHRpb25fcGFyc2VyLmFkZF9vcHRpb24oJy13Jywg
Jy0td2Via2l0X2NhbmFyeScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0n
c3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdJZiBUcnVlLCBwdWxsIGJhc2Vs
aW5lcyBmcm9tIHdlYmtpdC5vcmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnY2FuYXJ5IGJvdC4nKSkKLQogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29wdGlvbignLWInLCAn
LS1iYWNrdXAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3Ry
dWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLApAQCAtODM3
LDE3ICs3OTgsOCBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdzKToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0oJ1RoZSB0YXJnZXQgcGxhdGZvcm0gdG8gcmViYXNlbGluZSAnCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoIm1hYyIsICJjaHJvbWl1bSIsICJx
dCIsIGV0Yy4pLiBEZWZhdWx0cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd0byAiY2hyb21pdW0iLicpKQotICAgIG9wdGlvbnMgPSBvcHRpb25fcGFyc2VyLnBhcnNlX2Fy
Z3MoYXJncylbMF0KLSAgICBpZiBvcHRpb25zLmdwdToKLSAgICAgICAgb3B0aW9ucy5hbGxfcGxh
dGZvcm1zID0gUkVCQVNFTElORV9HUFVfT1JERVIKLSAgICBlbGlmIG9wdGlvbnMud2Via2l0X2Nh
bmFyeToKLSAgICAgICAgb3B0aW9ucy5hbGxfcGxhdGZvcm1zID0gUkVCQVNFTElORV9XRUJLSVRf
Q0FOQVJZX09SREVSCi0gICAgZWxzZToKLSAgICAgICAgb3B0aW9ucy5hbGxfcGxhdGZvcm1zID0g
UkVCQVNFTElORV9QTEFURk9STV9PUkRFUgotCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybXMgPT0g
Tm9uZToKLSAgICAgICAgb3B0aW9ucy5wbGF0Zm9ybXMgPSAnLCcuam9pbihvcHRpb25zLmFsbF9w
bGF0Zm9ybXMpCiAKKyAgICBvcHRpb25zID0gb3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3Mp
WzBdCiAgICAgdGFyZ2V0X29wdGlvbnMgPSBjb3B5LmNvcHkob3B0aW9ucykKICAgICBpZiBvcHRp
b25zLnRhcmdldF9wbGF0Zm9ybSA9PSAnY2hyb21pdW0nOgogICAgICAgICB0YXJnZXRfb3B0aW9u
cy5jaHJvbWl1bSA9IFRydWUKQEAgLTkwOSwzMCArODYxLDIxIEBAIGRlZiByZWFsX21haW4ob3B0
aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9wb3J0X29iaiwgdXJs
X2ZldGNoCiAgICAgICAgICAgICB0aGUgYXJjaGl2ZXMuCiAgICAgICAgIHNjbV9vYmo6IG9iamVj
dCB1c2VkIHRvIGFkZCBuZXcgYmFzZWxpbmVzIHRvIHRoZSBzb3VyY2UgY29udHJvbCBzeXN0ZW0u
CiAgICAgIiIiCi0gICAgIyBWZXJpZnkgJ3BsYXRmb3Jtcycgb3B0aW9uIGlzIHZhbGlkLgotICAg
IGlmIG5vdCBvcHRpb25zLnBsYXRmb3JtczoKLSAgICAgICAgX2xvZy5lcnJvcignSW52YWxpZCAi
cGxhdGZvcm1zIiBvcHRpb24uIC0tcGxhdGZvcm1zIG11c3QgYmUgJwotICAgICAgICAgICAgICAg
ICAgICdzcGVjaWZpZWQgaW4gb3JkZXIgdG8gcmViYXNlbGluZS4nKQotICAgICAgICByZXR1cm4g
MQotICAgIHBsYXRmb3JtcyA9IFtwLnN0cmlwKCkubG93ZXIoKSBmb3IgcCBpbiBvcHRpb25zLnBs
YXRmb3Jtcy5zcGxpdCgnLCcpXQotICAgIGZvciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXM6Ci0gICAg
ICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBvcHRpb25zLmFsbF9wbGF0Zm9ybXM6Ci0gICAgICAgICAg
ICBfbG9nLmVycm9yKCdJbnZhbGlkIHBsYXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkpCi0gICAg
ICAgICAgICByZXR1cm4gMQotCi0gICAgIyBBZGp1c3QgdGhlIHBsYXRmb3JtIG9yZGVyIHNvIHJl
YmFzZWxpbmUgdG9vbCBpcyBydW5uaW5nIGF0IHRoZSBvcmRlciBvZgotICAgICMgJ21hYycsICd3
aW4nIGFuZCAnbGludXgnLiBUaGlzIGlzIGluIHNhbWUgb3JkZXIgd2l0aCBsYXlvdXQgdGVzdCBi
YXNlbGluZQotICAgICMgc2VhcmNoIHBhdGhzLiBJdCBzaW1wbGlmaWVzIGhvdyB0aGUgcmViYXNl
bGluZSB0b29sIGRldGVjdHMgZHVwbGljYXRlCi0gICAgIyBiYXNlbGluZXMuIENoZWNrIF9Jc0R1
cEJhc2VsaW5lIG1ldGhvZCBmb3IgZGV0YWlscy4KLSAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9
IFtdCi0gICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMuYWxsX3BsYXRmb3JtczoKLSAgICAgICAg
aWYgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgotICAgICAgICAgICAgcmViYXNlbGluZV9wbGF0Zm9y
bXMuYXBwZW5kKHBsYXRmb3JtKQotCiAgICAgb3B0aW9ucy5odG1sX2RpcmVjdG9yeSA9IHNldHVw
X2h0bWxfZGlyZWN0b3J5KGhvc3RfcG9ydF9vYmouX2ZpbGVzeXN0ZW0sIG9wdGlvbnMuaHRtbF9k
aXJlY3RvcnkpCisgICAgYWxsX3BsYXRmb3JtcyA9IHRhcmdldF9wb3J0X29iai5hbGxfYmFzZWxp
bmVfdmFyaWFudHMoKQorICAgIGlmIG9wdGlvbnMucGxhdGZvcm1zOgorICAgICAgICBiYWlsID0g
RmFsc2UKKyAgICAgICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMucGxhdGZvcm1zOgorICAgICAg
ICAgICAgaWYgbm90IHBsYXRmb3JtIGluIGFsbF9wbGF0Zm9ybXM6CisgICAgICAgICAgICAgICAg
X2xvZy5lcnJvcignSW52YWxpZCBwbGF0Zm9ybTogIiVzIicgJSAocGxhdGZvcm0pKQorICAgICAg
ICAgICAgICAgIGJhaWwgPSBUcnVlCisgICAgICAgIGlmIGJhaWw6CisgICAgICAgICAgICByZXR1
cm4gMQorICAgICAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IG9wdGlvbnMucGxhdGZvcm1zCisg
ICAgZWxzZToKKyAgICAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMgPSBhbGxfcGxhdGZvcm1zCiAK
ICAgICByZWJhc2VsaW5lZF90ZXN0cyA9IHNldCgpCi0gICAgYmFja3VwID0gb3B0aW9ucy5iYWNr
dXAKICAgICBmb3IgcGxhdGZvcm0gaW4gcmViYXNlbGluZV9wbGF0Zm9ybXM6CiAgICAgICAgIHJl
YmFzZWxpbmVyID0gUmViYXNlbGluZXIoaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtLCBvcHRpb25zLCB1cmxf
ZmV0Y2hlciwgemlwX2ZhY3RvcnksCkBAIC05NDAsMTcgKzg4MywxNiBAQCBkZWYgcmVhbF9tYWlu
KG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmos
IHVybF9mZXRjaAogCiAgICAgICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgbG9nX2Rhc2hlZF9z
dHJpbmcoJ1JlYmFzZWxpbmUgc3RhcnRlZCcsIHBsYXRmb3JtKQotICAgICAgICBpZiByZWJhc2Vs
aW5lci5ydW4oYmFja3VwKToKKyAgICAgICAgaWYgcmViYXNlbGluZXIucnVuKCk6CiAgICAgICAg
ICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluZSBkb25lJywgcGxhdGZvcm0pCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluZSBmYWls
ZWQnLCBwbGF0Zm9ybSwgbG9nZ2luZy5FUlJPUikKIAogICAgICAgICByZWJhc2VsaW5lZF90ZXN0
cyB8PSBzZXQocmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmVkX3Rlc3RzKCkpCiAKLSAgICAjIEZJ
WE1FOiBuZWVkIHRvIHJlZW5hYmxlIHRoaXMgYWZ0ZXIgd2UgYXJlIGNvcnJlY3RseSBydW5uaW5n
IGFsbAotICAgICMgY29uZmlndXJhdGlvbnMuCi0gICAgI2lmIHJlYmFzZWxpbmVkX3Rlc3RzOgot
ICAgICMgICAgcmViYXNlbGluZXIucmVtb3ZlX3JlYmFzZWxpbmVkX3Rlc3RzX2Zyb21fZXhwZWN0
YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLCBiYWNrdXApCisgICAgaWYgcmViYXNlbGluZWRfdGVz
dHM6CisgICAgICAgIHJlYmFzZWxpbmVyLnJlbW92ZV9yZWJhc2VsaW5pbmdfZXhwZWN0YXRpb25z
KHJlYmFzZWxpbmVkX3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25zLmJhY2t1cCkKIAogICAgIF9sb2cuaW5mbygnJykKICAg
ICBsb2dfZGFzaGVkX3N0cmluZygnUmViYXNlbGluaW5nIHJlc3VsdCBjb21wYXJpc29uIHN0YXJ0
ZWQnLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90
ZXN0c191bml0dGVzdC5weQppbmRleCAwM2E1ZDFiZjA1YzZkODlkY2EwNzU2ZGEwMjgzMGUyZWFj
NzAxMWFmLi4xYTFjZDEwNTM3NmY0OWUxOGRlNTFmMDZjMjMwOGJiNmEzYzU0YmU1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9t
aXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5w
eQpAQCAtNjUsMTQgKzY1LDkgQEAgZGVmIHRlc3Rfb3B0aW9ucygpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBodG1sX2RpcmVjdG9yeT0nL3RtcCcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyY2hpdmVfdXJsPUFSQ0hJVkVfVVJMLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3JjZV9hcmNoaXZlX3VybD1Ob25lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3ZWJraXRfY2FuYXJ5PVRydWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVzZV9kcnQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhcmdldF9wbGF0Zm9ybT0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJib3NlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBx
dWlldD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3BsYXRmb3Jt
cz1yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5SRUJBU0VMSU5FX1dFQktJVF9DQU5B
UllfT1JERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHU9RmFsc2UpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3Jtcz1Ob25lKQogCiAKIGRlZiB0ZXN0X2hvc3Rf
cG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlvbnMpOgpAQCAtMTMzLDYgKzEy
OCwxNCBAQCBkZWYgdGVzdF96aXBfZmFjdG9yeSgpOgogICAgIHJldHVybiB6aXBmaWxlc2V0X21v
Y2subWFrZV9mYWN0b3J5KHppcGhhc2hlcykKIAogCitkZWYgdGVzdF9hcmNoaXZlKG9yaWdfYXJj
aGl2ZSk6CisgICAgZCA9IHt9CisgICAgZm9yIHBsYXRmb3JtLCBkaXJuYW1lIGluIG9yaWdfYXJj
aGl2ZS5pdGVyaXRlbXMoKToKKyAgICAgICAgcGxhdGZvcm0gPSBwbGF0Zm9ybS5yZXBsYWNlKCdj
aHJvbWl1bScsICd0ZXN0JykKKyAgICAgICAgZFtwbGF0Zm9ybV0gPSBkaXJuYW1lCisgICAgcmV0
dXJuIGQKKworCiBjbGFzcyBUZXN0R2V0SG9zdFBvcnRPYmplY3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgIGRlZiBhc3NlcnRfcmVzdWx0KHNlbGYsIHJlbGVhc2VfcHJlc2VudCwgZGVidWdfcHJl
c2VudCwgdmFsaWRfcG9ydF9vYmopOgogICAgICAgICAjIFRlc3RzIHdoZXRoZXIgd2UgZ2V0IGEg
dmFsaWQgcG9ydCBvYmplY3QgcmV0dXJuZWQgd2hlbiB3ZSBjbGFpbQpAQCAtMTc1LDYgKzE3OCwx
NCBAQCBjbGFzcyBUZXN0T3B0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIAogY2xhc3MgVGVz
dFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg
ICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb3JpZ19hcmNoaXZlJyk6CisgICAgICAgICAg
ICBzZWxmLl9vcmlnX2FyY2hpdmUgPSByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5B
UkNISVZFX0RJUl9OQU1FX0RJQ1QKKyAgICAgICAgICAgIHJlYmFzZWxpbmVfY2hyb21pdW1fd2Vi
a2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElDVCA9IHRlc3RfYXJjaGl2ZShzZWxmLl9vcmln
X2FyY2hpdmUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHJlYmFzZWxpbmVf
Y2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElDVCA9IHNlbGYuX29yaWdf
YXJjaGl2ZQorCiAgICAgZGVmIG1ha2VfcmViYXNlbGluZXIoc2VsZiwgZXhwZWN0YXRpb25zKToK
ICAgICAgICAgb3B0aW9ucyA9IHRlc3Rfb3B0aW9ucygpCiAgICAgICAgIGhvc3RfcG9ydF9vYmos
IGZpbGVzeXN0ZW0gPSB0ZXN0X2hvc3RfcG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBl
Y3RhdGlvbnMpCkBAIC0xODMsNyArMTk0LDcgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGFyZ2V0X3BvcnRfb2JqID0gcG9ydC5nZXQoJ3Rlc3Qn
LCB0YXJnZXRfb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmls
ZXN5c3RlbT1maWxlc3lzdGVtKQogICAgICAgICB0YXJnZXRfcG9ydF9vYmouX2V4cGVjdGF0aW9u
cyA9IGV4cGVjdGF0aW9ucwotICAgICAgICBwbGF0Zm9ybSA9IHRhcmdldF9wb3J0X29iai50ZXN0
X3BsYXRmb3JtX25hbWUoKQorICAgICAgICBwbGF0Zm9ybSA9IHRhcmdldF9wb3J0X29iai5uYW1l
KCkKIAogICAgICAgICB1cmxfZmV0Y2hlciA9IHRlc3RfdXJsX2ZldGNoZXIoZmlsZXN5c3RlbSkK
ICAgICAgICAgemlwX2ZhY3RvcnkgPSB0ZXN0X3ppcF9mYWN0b3J5KCkKQEAgLTE5Niw3ICsyMDcs
NyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAj
IHRoaXMgbWV0aG9kIHRlc3RzIHRoYXQgd2FzIGNhbiBhdCBsZWFzdCBpbnN0YW50aWF0ZSBhbiBv
YmplY3QsIGV2ZW4KICAgICAgICAgIyBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLgogICAgICAg
ICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJhc2VsaW5lcigiIikKLSAg
ICAgICAgcmViYXNlbGluZXIucnVuKEZhbHNlKQorICAgICAgICByZWJhc2VsaW5lci5ydW4oKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAx
KQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluaW5nX3Rlc3RzKHNlbGYpOgpAQCAtMjE2LDcgKzIy
Nyw3IEBAIGNsYXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVm
IHRlc3Rfb25lX3BsYXRmb3JtKHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3Rl
bSA9IHNlbGYubWFrZV9yZWJhc2VsaW5lcigKICAgICAgICAgICAgICJCVUdYIFJFQkFTRUxJTkUg
TUFDIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIikKLSAgICAgICAgcmVi
YXNlbGluZXIucnVuKEZhbHNlKQorICAgICAgICByZWJhc2VsaW5lci5ydW4oKQogICAgICAgICAj
IFdlIGV4cGVjdCB0byBoYXZlIHdyaXR0ZW4gMTIgZmlsZXMgb3ZlciB0aGUgY291cnNlIG9mIHRo
aXMgcmViYXNlbGluZToKICAgICAgICAgIyAqKSAzIGZpbGVzIGluIC9fX2ltX3RtcCBmb3IgdGhl
IGV4dHJhY3RlZCBhcmNoaXZlIG1lbWJlcnMKICAgICAgICAgIyAqKSAzIG5ldyBiYXNlbGluZXMg
dW5kZXIgJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzJwpAQCAtMjMzLDcgKzI0NCw3IEBAIGNs
YXNzIFRlc3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfYWxs
X3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBzZWxm
Lm1ha2VfcmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VMSU5FIDogZmFpbHVy
ZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIikKLSAgICAgICAgcmViYXNlbGluZXIucnVu
KEZhbHNlKQorICAgICAgICByZWJhc2VsaW5lci5ydW4oKQogICAgICAgICAjIFNlZSBjb21tZW50
IGluIHRlc3Rfb25lX3BsYXRmb3JtIGZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgMTIgd3JpdHRl
biB0ZXN0cy4KICAgICAgICAgIyBOb3RlIHRoYXQgZXZlbiB0aG91Z2ggdGhlIHJlYmFzZWxpbmUg
aXMgbWFya2VkIGZvciBhbGwgcGxhdGZvcm1zLCBlYWNoCiAgICAgICAgICMgcmViYXNlbGluZXIg
b25seSBldmVyIGRvZXMgb25lLgpAQCAtMjYwLDEyICsyNzEsMTggQEAgY2xhc3MgVGVzdFJlYmFz
ZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFzcyBUZXN0UmVhbE1haW4odW5pdHRl
c3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgaWYgbm90IGhhc2F0
dHIoc2VsZiwgJ19vcmlnX2FyY2hpdmUnKToKKyAgICAgICAgICAgIHNlbGYuX29yaWdfYXJjaGl2
ZSA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLkFSQ0hJVkVfRElSX05BTUVfRElD
VAorICAgICAgICAgICAgcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuQVJDSElWRV9E
SVJfTkFNRV9ESUNUID0gdGVzdF9hcmNoaXZlKHNlbGYuX29yaWdfYXJjaGl2ZSkKKworICAgIGRl
ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVz
dHMuQVJDSElWRV9ESVJfTkFNRV9ESUNUID0gc2VsZi5fb3JpZ19hcmNoaXZlCisKICAgICBkZWYg
dGVzdF9hbGxfcGxhdGZvcm1zKHNlbGYpOgogICAgICAgICBleHBlY3RhdGlvbnMgPSAiQlVHWCBS
RUJBU0VMSU5FIDogZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIgogCiAgICAg
ICAgIG9wdGlvbnMgPSB0ZXN0X29wdGlvbnMoKQotICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9
ICcsJy5qb2luKG9wdGlvbnMuYWxsX3BsYXRmb3JtcykKLQogICAgICAgICBob3N0X3BvcnRfb2Jq
LCBmaWxlc3lzdGVtID0gdGVzdF9ob3N0X3BvcnRfYW5kX2ZpbGVzeXN0ZW0ob3B0aW9ucywgZXhw
ZWN0YXRpb25zKQogICAgICAgICB1cmxfZmV0Y2hlciA9IHRlc3RfdXJsX2ZldGNoZXIoZmlsZXN5
c3RlbSkKICAgICAgICAgemlwX2ZhY3RvcnkgPSB0ZXN0X3ppcF9mYWN0b3J5KCkKQEAgLTI5Miw3
ICszMDksNyBAQCBjbGFzcyBUZXN0SHRtbEdlbmVyYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIG9wdGlvbnMgPSBtb2NrdG9vbC5Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPU5vbmUs
IGh0bWxfZGlyZWN0b3J5PScvdG1wJykKICAgICAgICAgaG9zdF9wb3J0ID0gcG9ydC5nZXQoJ3Rl
c3QnLCBvcHRpb25zLCBmaWxlc3lzdGVtPXBvcnQudW5pdF90ZXN0X2ZpbGVzeXN0ZW0oZmlsZXMp
KQogICAgICAgICBnZW5lcmF0b3IgPSByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5I
dG1sR2VuZXJhdG9yKGhvc3RfcG9ydCwKLSAgICAgICAgICAgIHRhcmdldF9wb3J0PU5vbmUsIG9w
dGlvbnM9b3B0aW9ucywgcGxhdGZvcm1zPVsnbWFjJ10sIHJlYmFzZWxpbmluZ190ZXN0cz10ZXN0
cykKKyAgICAgICAgICAgIHRhcmdldF9wb3J0PU5vbmUsIG9wdGlvbnM9b3B0aW9ucywgcGxhdGZv
cm1zPVsndGVzdC1tYWMtbGVvcGFyZCddLCByZWJhc2VsaW5pbmdfdGVzdHM9dGVzdHMpCiAgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IsIGhvc3RfcG9ydAogCiAgICAgZGVmIHRlc3RfZ2VuZXJhdGVf
YmFzZWxpbmVfbGlua3Moc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87894</attachid>
            <date>2011-04-01 12:15:45 -0700</date>
            <delta_ts>2011-04-01 12:23:29 -0700</delta_ts>
            <desc>rebase to HEAD</desc>
            <filename>bug-55608-20110401121544.patch</filename>
            <type>text/plain</type>
            <size>38268</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI3MDIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YjgzNGEwMDQ5ZWY5NTY4ZjRhYzhhZmUxZWZlZWJhNDIz
N2RiNTgwLi45ODc5NGUwMDRhMzk4NDFmZTQ4NDQ5ZDc1NTFlMmM3NmQzMDZjYjI2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTEtMDMtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmViYXNlbGluZS1j
aHJvbWl1bS13ZWJraXQtdGVzdHMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2l0aAorICAgICAg
ICB2ZXJzaW9uLXNwZWNpZmljIGJhc2VsaW5lcy4gVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSB0b29s
IHRvIHVzZQorICAgICAgICBhbGwgb2YgdGhlIHZlcnNpb24tc3BlY2lmaWMgYm90cyBvbiB0aGUg
Y2FuYXJpZXMsIGFuZCB3aWxsIG5vdworICAgICAgICBhdHRlbXB0IHRvIHJlYmFzZWxpbmUgYWxs
IG9mIHRoZSB2ZXJzaW9ucyBieSBkZWZhdWx0LCBhbHRob3VnaAorICAgICAgICBpdCB3aWxsIG5v
dCB1cGRhdGUgYm90aCBHUFUgYW5kIENQVSB2ZXJzaW9ucy4KKyAgICAgICAgCisgICAgICAgIEFs
c28sIGl0IHdpbGwgbm8gbG9uZ2VyIG1vZGlmeSB0aGUgdGVzdF9leHBlY3RhdGlvbnMudHh0IGZp
bGUKKyAgICAgICAgKmF0IGFsbCouIFlvdSB3aWxsIGhhdmUgdG8gbWFudWFsbHkgZGVsZXRlIHRo
ZSBSRUJBU0VMSU5FIGxpbmVzCisgICAgICAgIGFmdGVyIHJ1bm5pbmcgdGhlIHRvb2wgYW5kIGRl
dGVybWluaW5nIHRoYXQgaXQgZGlkIHdoYXQgeW91CisgICAgICAgIHdhbnRlZCBpdCB0byBkby4g
VGhpcyBzaG91bGQgYmUgZml4ZWQgaW4gYSBzZXBhcmF0ZSBidWcgLSBzZWUKKyAgICAgICAgd2Vi
a2l0IGJ1ZyAjNTUxOTEuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU1NjA4CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191
bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJh
c2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weToKKwogMjAxMS0wMy0zMSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rl
c3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IDEzMmNjYzIwZjVkNGJkN2IwNzFhMTJiOTQxYWNlZTQz
YTgyYzc1ZDIuLjdkMmM5MWJiNjgyNzkwMTBhNTI0OWUxNDkwOTRlYjY4MzY4Yjc1ZDAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0xNjYsMTAgKzE2
Niw2IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnM6CiAgICAgZGVmIGhhc19tb2RpZmllcihzZWxm
LCB0ZXN0LCBtb2RpZmllcik6CiAgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RlZF9mYWlsdXJl
cy5oYXNfbW9kaWZpZXIodGVzdCwgbW9kaWZpZXIpCiAKLSAgICBkZWYgcmVtb3ZlX3BsYXRmb3Jt
X2Zyb21fZXhwZWN0YXRpb25zKHNlbGYsIHRlc3RzLCBwbGF0Zm9ybSk6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9leHBlY3RlZF9mYWlsdXJlcy5yZW1vdmVfcGxhdGZvcm1fZnJvbV9leHBlY3RhdGlv
bnMoCi0gICAgICAgICAgICB0ZXN0cywgcGxhdGZvcm0pCi0KIAogZGVmIHN0cmlwX2NvbW1lbnRz
KGxpbmUpOgogICAgICIiIlN0cmlwcyBjb21tZW50cyBmcm9tIGEgbGluZSBhbmQgcmV0dXJuIE5v
bmUgaWYgdGhlIGxpbmUgaXMgZW1wdHkKQEAgLTQzNiw3NiArNDMyLDYgQEAgY2xhc3MgVGVzdEV4
cGVjdGF0aW9uc0ZpbGU6CiAgICAgZGVmIGdldF9ub25fZmF0YWxfZXJyb3JzKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fbm9uX2ZhdGFsX2Vycm9ycwogCi0gICAgZGVmIHJlbW92ZV9wbGF0
Zm9ybV9mcm9tX2V4cGVjdGF0aW9ucyhzZWxmLCB0ZXN0cywgcGxhdGZvcm0pOgotICAgICAgICAi
IiJSZXR1cm5zIGEgY29weSBvZiB0aGUgZXhwZWN0YXRpb25zIHdpdGggdGhlIHRlc3RzIG1hdGNo
aW5nIHRoZQotICAgICAgICBwbGF0Zm9ybSByZW1vdmVkLgotCi0gICAgICAgIElmIGEgdGVzdCBp
cyBpbiB0aGUgdGVzdCBsaXN0IGFuZCBoYXMgYW4gb3B0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2
ZW4KLSAgICAgICAgcGxhdGZvcm0sIHJlbW92ZSB0aGUgbWF0Y2hpbmcgcGxhdGZvcm0gYW5kIHNh
dmUgdGhlIHVwZGF0ZWQgdGVzdCBiYWNrCi0gICAgICAgIHRvIHRoZSBmaWxlLiBJZiBubyBvdGhl
ciBwbGF0Zm9ybXMgcmVtYWluaW5nIGFmdGVyIHJlbW92YWwsIGRlbGV0ZSB0aGUKLSAgICAgICAg
dGVzdCBmcm9tIHRoZSBmaWxlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGVzdHM6IGxp
c3Qgb2YgdGVzdHMgdGhhdCBuZWVkIHRvIHVwZGF0ZS4uCi0gICAgICAgICAgcGxhdGZvcm06IHdo
aWNoIHBsYXRmb3JtIG9wdGlvbiB0byByZW1vdmUuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAg
ICAgICB0aGUgdXBkYXRlZCBzdHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIGFzc2VydChw
bGF0Zm9ybSkKLSAgICAgICAgZl9vcmlnID0gc2VsZi5fZ2V0X2l0ZXJhYmxlX2V4cGVjdGF0aW9u
cyhzZWxmLl9leHBlY3RhdGlvbnMpCi0gICAgICAgIGZfbmV3ID0gW10KLQotICAgICAgICB0ZXN0
c19yZW1vdmVkID0gMAotICAgICAgICB0ZXN0c191cGRhdGVkID0gMAotICAgICAgICBsaW5lbm8g
PSAwCi0gICAgICAgIGZvciBsaW5lIGluIGZfb3JpZzoKLSAgICAgICAgICAgIGxpbmVubyArPSAx
Ci0gICAgICAgICAgICBhY3Rpb24gPSBzZWxmLl9nZXRfcGxhdGZvcm1fdXBkYXRlX2FjdGlvbihs
aW5lLCBsaW5lbm8sIHRlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGxhdGZvcm0pCi0gICAgICAgICAgICBhc3NlcnQoYWN0aW9uIGlu
IChOT19DSEFOR0UsIFJFTU9WRV9URVNULCBSRU1PVkVfUExBVEZPUk0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBBRERfUExBVEZPUk1TX0VYQ0VQVF9USElTKSkKLSAgICAgICAgICAg
IGlmIGFjdGlvbiA9PSBOT19DSEFOR0U6Ci0gICAgICAgICAgICAgICAgIyBTYXZlIHRoZSBvcmln
aW5hbCBsaW5lIGJhY2sgdG8gdGhlIGZpbGUKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdO
byBjaGFuZ2UgdG8gdGVzdDogJXMnLCBsaW5lKQotICAgICAgICAgICAgICAgIGZfbmV3LmFwcGVu
ZChsaW5lKQotICAgICAgICAgICAgZWxpZiBhY3Rpb24gPT0gUkVNT1ZFX1RFU1Q6Ci0gICAgICAg
ICAgICAgICAgdGVzdHNfcmVtb3ZlZCArPSAxCi0gICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdU
ZXN0IHJlbW92ZWQ6ICVzJywgbGluZSkKLSAgICAgICAgICAgIGVsaWYgYWN0aW9uID09IFJFTU9W
RV9QTEFURk9STToKLSAgICAgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoJzonKQotICAg
ICAgICAgICAgICAgIG5ld19vcHRpb25zID0gcGFydHNbMF0ucmVwbGFjZShwbGF0Zm9ybS51cHBl
cigpICsgJyAnLCAnJywgMSkKLSAgICAgICAgICAgICAgICBuZXdfbGluZSA9ICgnJXM6JXMnICUg
KG5ld19vcHRpb25zLCBwYXJ0c1sxXSkpCi0gICAgICAgICAgICAgICAgZl9uZXcuYXBwZW5kKG5l
d19saW5lKQotICAgICAgICAgICAgICAgIHRlc3RzX3VwZGF0ZWQgKz0gMQotICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygnVGVzdCB1cGRhdGVkOiAnKQotICAgICAgICAgICAgICAgIF9sb2cuaW5m
bygnICBvbGQ6ICVzJywgbGluZSkKLSAgICAgICAgICAgICAgICBfbG9nLmluZm8oJyAgbmV3OiAl
cycsIG5ld19saW5lKQotICAgICAgICAgICAgZWxpZiBhY3Rpb24gPT0gQUREX1BMQVRGT1JNU19F
WENFUFRfVEhJUzoKLSAgICAgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoJzonKQotICAg
ICAgICAgICAgICAgIF9sb2cuaW5mbygnVGVzdCB1cGRhdGVkOiAnKQotICAgICAgICAgICAgICAg
IF9sb2cuaW5mbygnICBvbGQ6ICVzJywgbGluZSkKLSAgICAgICAgICAgICAgICBmb3IgcCBpbiBz
ZWxmLl9wb3J0LnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKLSAgICAgICAgICAgICAgICAgICAgcCA9
IHAudXBwZXIoKQotICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYSB0ZW1wIHNvbHV0aW9u
IGZvciByZWJhc2VsaW5pbmcgdG9vbC4KLSAgICAgICAgICAgICAgICAgICAgIyBEbyBub3QgYWRk
IHRhZ3MgV0lOLTcgYW5kIFdJTi1WSVNUQSB0byB0ZXN0IGV4cGVjdGF0aW9ucwotICAgICAgICAg
ICAgICAgICAgICAjIGlmIHRoZSBvcmlnaW5hbCBsaW5lIGRvZXMgbm90IHNwZWNpZnkgdGhlIHBs
YXRmb3JtCi0gICAgICAgICAgICAgICAgICAgICMgb3B0aW9uLgotICAgICAgICAgICAgICAgICAg
ICAjIFRPRE8odmljdG9ydyk6IFJlbW92ZSBXSU4tVklTVEEgYW5kIFdJTi1XSU43IG9uY2Ugd2Ug
aGF2ZQotICAgICAgICAgICAgICAgICAgICAjIHJlbGlhYmxlIFdpbiA3IGFuZCBXaW4gVmlzdGEg
YnVpbGRib3RzIHNldHVwLgotICAgICAgICAgICAgICAgICAgICBpZiBub3QgcCBpbiAocGxhdGZv
cm0udXBwZXIoKSwgJ1dJTi1WSVNUQScsICdXSU4tV0lONycpOgotICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3X29wdGlvbnMgPSBwYXJ0c1swXSArIHAgKyAnICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld19saW5lID0gKCclczolcycgJSAobmV3X29wdGlvbnMsIHBhcnRzWzFdKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZfbmV3LmFwcGVuZChuZXdfbGluZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIF9sb2cuaW5mbygnICBuZXc6ICVzJywgbmV3X2xpbmUpCi0gICAgICAgICAg
ICAgICAgdGVzdHNfdXBkYXRlZCArPSAxCi0KLSAgICAgICAgX2xvZy5pbmZvKCdUb3RhbCB0ZXN0
cyByZW1vdmVkOiAlZCcsIHRlc3RzX3JlbW92ZWQpCi0gICAgICAgIF9sb2cuaW5mbygnVG90YWwg
dGVzdHMgdXBkYXRlZDogJWQnLCB0ZXN0c191cGRhdGVkKQotCi0gICAgICAgIHJldHVybiAiIi5q
b2luKGZfbmV3KQotCiAgICAgZGVmIHBhcnNlX2V4cGVjdGF0aW9uc19saW5lKHNlbGYsIGxpbmUs
IGxpbmVubyk6CiAgICAgICAgICIiIlBhcnNlcyBhIGxpbmUgZnJvbSB0ZXN0X2V4cGVjdGF0aW9u
cy50eHQgYW5kIHJldHVybnMgYSB0dXBsZQogICAgICAgICB3aXRoIHRoZSB0ZXN0IHBhdGgsIG9w
dGlvbnMgYXMgYSBsaXN0LCBleHBlY3RhdGlvbnMgYXMgYSBsaXN0LiIiIgpAQCAtNTM0LDQxICs0
NjAsNiBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zRmlsZToKIAogICAgICAgICByZXR1cm4gKHRl
c3QsIG9wdGlvbnMsIGV4cGVjdGF0aW9ucykKIAotICAgIGRlZiBfZ2V0X3BsYXRmb3JtX3VwZGF0
ZV9hY3Rpb24oc2VsZiwgbGluZSwgbGluZW5vLCB0ZXN0cywgcGxhdGZvcm0pOgotICAgICAgICAi
IiJDaGVjayB0aGUgcGxhdGZvcm0gb3B0aW9uIGFuZCByZXR1cm4gdGhlIGFjdGlvbiBuZWVkcyB0
byBiZSB0YWtlbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIGxpbmU6IGN1cnJlbnQgbGlu
ZSBpbiB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlLgotICAgICAgICAgIGxpbmVubzogY3VycmVudCBs
aW5lIG51bWJlciBvZiBsaW5lCi0gICAgICAgICAgdGVzdHM6IGxpc3Qgb2YgdGVzdHMgdGhhdCBu
ZWVkIHRvIHVwZGF0ZS4uCi0gICAgICAgICAgcGxhdGZvcm06IHdoaWNoIHBsYXRmb3JtIG9wdGlv
biB0byByZW1vdmUuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICBOT19DSEFOR0U6IG5v
IGNoYW5nZSB0byB0aGUgbGluZSAoY29tbWVudHMsIHRlc3Qgbm90IGluIHRoZSBsaXN0IGV0YykK
LSAgICAgICAgICBSRU1PVkVfVEVTVDogcmVtb3ZlIHRoZSB0ZXN0IGZyb20gZmlsZS4KLSAgICAg
ICAgICBSRU1PVkVfUExBVEZPUk06IHJlbW92ZSB0aGlzIHBsYXRmb3JtIG9wdGlvbiBmcm9tIHRo
ZSB0ZXN0LgotICAgICAgICAgIEFERF9QTEFURk9STVNfRVhDRVBUX1RISVM6IGFkZCBhbGwgdGhl
IHBsYXRmb3JtcyBleGNlcHQgdGhpcyBvbmUuCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0LCBv
cHRpb25zLCBleHBlY3RhdGlvbnMgPSBzZWxmLnBhcnNlX2V4cGVjdGF0aW9uc19saW5lKGxpbmUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGluZW5vKQotICAgICAgICBpZiBub3QgdGVzdCBvciB0ZXN0IG5vdCBpbiB0
ZXN0czoKLSAgICAgICAgICAgIHJldHVybiBOT19DSEFOR0UKLQotICAgICAgICBoYXNfYW55X3Bs
YXRmb3JtID0gRmFsc2UKLSAgICAgICAgZm9yIG9wdGlvbiBpbiBvcHRpb25zOgotICAgICAgICAg
ICAgaWYgb3B0aW9uIGluIHNlbGYuX3BvcnQudGVzdF9wbGF0Zm9ybV9uYW1lcygpOgotICAgICAg
ICAgICAgICAgIGhhc19hbnlfcGxhdGZvcm0gPSBUcnVlCi0gICAgICAgICAgICAgICAgaWYgbm90
IG9wdGlvbiA9PSBwbGF0Zm9ybToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJFTU9WRV9Q
TEFURk9STQotCi0gICAgICAgICMgSWYgdGhlcmUgaXMgbm8gcGxhdGZvcm0gc3BlY2lmaWVkLCB0
aGVuIGl0IG1lYW5zIGFwcGx5IHRvIGFsbAotICAgICAgICAjIHBsYXRmb3Jtcy4gUmV0dXJuIHRo
ZSBhY3Rpb24gdG8gYWRkIGFsbCB0aGUgcGxhdGZvcm1zIGV4Y2VwdCB0aGlzCi0gICAgICAgICMg
b25lLgotICAgICAgICBpZiBub3QgaGFzX2FueV9wbGF0Zm9ybToKLSAgICAgICAgICAgIHJldHVy
biBBRERfUExBVEZPUk1TX0VYQ0VQVF9USElTCi0KLSAgICAgICAgcmV0dXJuIFJFTU9WRV9URVNU
Ci0KICAgICBkZWYgX2FkZF90b19hbGxfZXhwZWN0YXRpb25zKHNlbGYsIHRlc3QsIG9wdGlvbnMs
IGV4cGVjdGF0aW9ucyk6CiAgICAgICAgICMgTWFrZSBhbGwgcGF0aHMgdW5peC1zdHlsZSBzbyB0
aGUgZGFzaGJvYXJkIGRvZXNuJ3QgbmVlZCB0by4KICAgICAgICAgdGVzdCA9IHRlc3QucmVwbGFj
ZSgnXFwnLCAnLycpCkBAIC05MjksNyArODIwLDcgQEAgY2xhc3MgTW9kaWZpZXJNYXRjaGVyKG9i
amVjdCk6CiAgICAgICAgICdtYWMtbGVvcGFyZCc6IFsnbWFjJywgJ2xlb3BhcmQnXSwKICAgICAg
ICAgJ3dpbi14cCc6IFsnd2luJywgJ3hwJ10sCiAgICAgICAgICd3aW4tdmlzdGEnOiBbJ3dpbics
ICd2aXN0YSddLAotICAgICAgICAnd2luLTcnOiBbJ3dpbicsICd3aW43J10sCisgICAgICAgICd3
aW4td2luNyc6IFsnd2luJywgJ3dpbjcnXSwKICAgICB9CiAKICAgICAjIFdlIGRvbid0IGluY2x1
ZGUgdGhlICJub25lIiBtb2RpZmllciBiZWNhdXNlIGl0IGlzbid0IGFjdHVhbGx5IGxlZ2FsLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVz
dC5weQppbmRleCAwNWQ4MDVkY2I2MmFiNmJjNTFhZjczNDU5NDJlNDZkN2EwMjZjMWE1Li5kZjM2
NGEwZWY4OWM1YzQxMDc3OGM1YzdlMjZmZjcxYTk2NjU3Y2JmIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQpAQCAtMzc3LDQ0
ICszNzcsMTEgQEAgQlVHX1RFU1QgV0lOLVhQIDogcGFzc2VzL3RleHQuaHRtbCA9IFRFWFQKIAog
Y2xhc3MgUmViYXNlbGluaW5nVGVzdChCYXNlKToKICAgICAiIiJUZXN0IHJlYmFzZWxpbmluZy1z
cGVjaWZpYyBmdW5jdGlvbmFsaXR5LiIiIgotICAgIGRlZiBhc3NlcnRSZW1vdmUoc2VsZiwgcGxh
dGZvcm0sIGlucHV0X2V4cGVjdGF0aW9ucywgZXhwZWN0ZWRfZXhwZWN0YXRpb25zKToKLSAgICAg
ICAgc2VsZi5wYXJzZV9leHAoaW5wdXRfZXhwZWN0YXRpb25zKQotICAgICAgICB0ZXN0ID0gc2Vs
Zi5nZXRfdGVzdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJykKLSAgICAgICAgYWN0dWFs
X2V4cGVjdGF0aW9ucyA9IHNlbGYuX2V4cC5yZW1vdmVfcGxhdGZvcm1fZnJvbV9leHBlY3RhdGlv
bnMoCi0gICAgICAgICAgICB0ZXN0LCBwbGF0Zm9ybSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZF9leHBlY3RhdGlvbnMsIGFjdHVhbF9leHBlY3RhdGlvbnMpCi0KKyAgICAjIEZJ
WE1FOiBhZGQgaW4gdGVzdHMgb25jZSB3ZSBhcmUgYWN0dWFsbHkgZGVsZXRpbmcgbGluZXMgYWdh
aW4uCiAgICAgZGVmIHRlc3Rfbm9fZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcyhzZWxmKToKICAg
ICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuX2V4cC5nZXRfcmViYXNlbGluaW5nX2ZhaWx1
cmVzKCkpLCAwKQogCi0gICAgZGVmIHRlc3RfZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlc19leHBh
bmQoc2VsZik6Ci0gICAgICAgIHNlbGYucGFyc2VfZXhwKCIiIgotQlVHX1RFU1QgUkVCQVNFTElO
RSA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCA9IFRFWFQKLSIiIikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fZXhwLmdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoKSks
IDEpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfZXhwYW5kKHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydFJlbW92ZSgnbWFjJywKLSAgICAgICAgICAgICdCVUdYIFJFQkFTRUxJTkUgOiBmYWlsdXJl
cy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNF
TElORSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nCi0gICAgICAg
ICAgICAnQlVHWCBSRUJBU0VMSU5FIFdJTi1YUCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRt
bCA9IFRFWFRcbicpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfbWFjX3dpbihzZWxmKToKLSAgICAg
ICAgc2VsZi5hc3NlcnRSZW1vdmUoJ21hYycsCi0gICAgICAgICAgICAnQlVHWCBSRUJBU0VMSU5F
IE1BQyBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAg
ICAgICAgJ0JVR1ggUkVCQVNFTElORSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwg
PSBURVhUXG4nKQotCi0gICAgZGVmIHRlc3RfcmVtb3ZlX21hY19tYWMoc2VsZik6Ci0gICAgICAg
IHNlbGYuYXNzZXJ0UmVtb3ZlKCdtYWMnLAotICAgICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSBN
QUMgOiBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgPSBURVhUXG4nLAotICAgICAgICAgICAg
JycpCi0KLSAgICBkZWYgdGVzdF9yZW1vdmVfbm90aGluZyhzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRSZW1vdmUoJ21hYycsCi0gICAgICAgICAgICAnXG5cbicsCi0gICAgICAgICAgICAnXG5c
bicpCi0KIAogY2xhc3MgTW9kaWZpZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVm
IHNldFVwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggYmFmMTg5MzNiNDRjYzJiZjc0YTJkNTFhMTRlY2Uz
NjFiMWQ0NjEyMy4uZDA4YzBiZGI1OTRkYzYxMTA2ZjIwNGUwZWYxYmJlZThkNmEzNTA1OCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CkBAIC0yNjYsNyArMjY2LDkgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KGJhc2UuUG9ydCk6
CiAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0YXRpb25zLmdldF90ZXN0c193aXRo
X3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLlNLSVApXQogCiAgICAgZGVmIHRlc3RfcGxh
dGZvcm1fbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiAoJ21hYycsICd3aW4nLCAnbGludXgn
LCAnd2luLXhwJywgJ3dpbi12aXN0YScsICd3aW4tNycpCisgICAgICAgIHJldHVybiAoJ21hYy1s
ZW9wYXJkJywgJ21hYy1zbm93bGVvcGFyZCcsCisgICAgICAgICAgICAgICAgJ3dpbi14cCcsICd3
aW4tdmlzdGEnLCAnd2luLXdpbjcnLAorICAgICAgICAgICAgICAgICdsaW51eCcpCiAKICAgICBk
ZWYgdGVzdF9wbGF0Zm9ybV9uYW1lX3RvX25hbWUoc2VsZiwgdGVzdF9wbGF0Zm9ybV9uYW1lKToK
ICAgICAgICAgaWYgdGVzdF9wbGF0Zm9ybV9uYW1lIGluIHNlbGYudGVzdF9wbGF0Zm9ybV9uYW1l
cygpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0
LnB5CmluZGV4IDM5MjgxOGRkZjE1YzBkZjk0MTlhNzdmMTBkYjA3ZWRlYjY1ODFlYTQuLjA5N2Zl
ZTI2MzJkYzFjZmEzYWI3MjJmZGY5OTdjNTg1OTFhZWVjMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTIzMiw3ICsyMzIsNyBA
QCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgdXNlciA9IG1vY2t0b29s
Lk1vY2tVc2VyKCkKIAogICAgICAgICBpZiBub3QgcG9ydF9uYW1lIG9yIHBvcnRfbmFtZSA9PSAn
dGVzdCc6Ci0gICAgICAgICAgICBwb3J0X25hbWUgPSAndGVzdC1tYWMnCisgICAgICAgICAgICBw
b3J0X25hbWUgPSAndGVzdC1tYWMtbGVvcGFyZCcKIAogICAgICAgICBzZWxmLl9leHBlY3RhdGlv
bnNfcGF0aCA9IExBWU9VVF9URVNUX0RJUiArICcvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0
aW9ucy50eHQnCiAgICAgICAgIGJhc2UuUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9y
dF9uYW1lLCBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0sIHVzZXI9dXNlciwKQEAgLTI0OCw3ICsyNDgs
MTUgQEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2Zp
bGVzeXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwgJ3BsYXRmb3JtJywgc2VsZi5u
YW1lKCkpCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBbc2VsZi5iYXNlbGluZV9wYXRoKCldCisgICAgICAgIHNlYXJjaF9wYXRocyA9IHsKKyAg
ICAgICAgICAgICd0ZXN0LW1hYy1zbm93bGVvcGFyZCc6IFsndGVzdC1tYWMtc25vd2xlb3BhcmQn
XSwKKyAgICAgICAgICAgICd0ZXN0LW1hYy1sZW9wYXJkJzogWyd0ZXN0LW1hYy1sZW9wYXJkJywg
J3Rlc3QtbWFjLXNub3dsZW9wYXJkJ10sCisgICAgICAgICAgICAndGVzdC13aW4td2luNyc6IFsn
dGVzdC13aW4td2luNyddLAorICAgICAgICAgICAgJ3Rlc3Qtd2luLXZpc3RhJzogWyd0ZXN0LXdp
bi12aXN0YScsICd0ZXN0LXdpbi13aW43J10sCisgICAgICAgICAgICAndGVzdC13aW4teHAnOiBb
J3Rlc3Qtd2luLXhwJywgJ3Rlc3Qtd2luLXZpc3RhJywgJ3Rlc3Qtd2luLXdpbjcnXSwKKyAgICAg
ICAgICAgICd0ZXN0LWxpbnV4JzogWyd0ZXN0LWxpbnV4JywgJ3Rlc3Qtd2luLXdpbjcnXSwKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gW3NlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKGQpIGZv
ciBkIGluIHNlYXJjaF9wYXRoc1tzZWxmLm5hbWUoKV1dCiAKICAgICBkZWYgZGVmYXVsdF9jaGls
ZF9wcm9jZXNzZXMoc2VsZik6CiAgICAgICAgIHJldHVybiAxCkBAIC0zMDQsMjMgKzMxMiwxOCBA
QCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0
YXRpb25zX3BhdGgKIAogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2VsZik6Ci0gICAgICAg
IG5hbWVfbWFwID0gewotICAgICAgICAgICAgJ3Rlc3QtbWFjJzogJ21hYycsCi0gICAgICAgICAg
ICAndGVzdC13aW4nOiAnd2luJywKLSAgICAgICAgICAgICd0ZXN0LXdpbi14cCc6ICd3aW4teHAn
LAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBuYW1lX21hcFtzZWxmLl9uYW1lXQorICAgICAg
ICByZXR1cm4gc2VsZi5uYW1lKClbNTpdCiAKICAgICBkZWYgdGVzdF9wbGF0Zm9ybV9uYW1lcyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuICgnbWFjJywgJ3dpbicsICd3aW4teHAnKQorICAgICAgICBy
ZXR1cm4gKCdtYWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLAorICAgICAgICAgICAgICAg
ICd3aW4teHAnLCAnd2luLXZpc3RhJywgJ3dpbi13aW43JywKKyAgICAgICAgICAgICAgICAnbGlu
dXgnKQogCiAgICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIHRlc3RfcGxh
dGZvcm1fbmFtZSk6Ci0gICAgICAgIG5hbWVfbWFwID0gewotICAgICAgICAgICAgJ21hYyc6ICd0
ZXN0LW1hYycsCi0gICAgICAgICAgICAnd2luJzogJ3Rlc3Qtd2luJywKLSAgICAgICAgICAgICd3
aW4teHAnOiAndGVzdC13aW4teHAnLAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBuYW1lX21h
cFt0ZXN0X3BsYXRmb3JtX25hbWVdCisgICAgICAgIGlmIHRlc3RfcGxhdGZvcm1fbmFtZSBpbiBz
ZWxmLnRlc3RfcGxhdGZvcm1fbmFtZXMoKToKKyAgICAgICAgICAgIHJldHVybiAndGVzdC0nICsg
dGVzdF9wbGF0Zm9ybV9uYW1lCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1Vuc3VwcG9ydGVk
IHRlc3RfcGxhdGZvcm1fbmFtZTogJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3BsYXRmb3JtX25hbWUpCiAKICAgICAjIEZJWE1FOiBUaGVzZSBuZXh0IHR3byByb3V0aW5lcyBh
cmUgY29waWVkIGZyb20gYmFzZS5weSB3aXRoCiAgICAgIyB0aGUgY2FsbHMgdG8gcGF0aC5hYnNw
YXRoX3RvX3VyaSgpIHJlbW92ZWQuIFdlIHNob3VsZG4ndCBoYXZlCkBAIC0zODMsOCArMzg2LDEx
IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIHZlcnNpb24oc2VsZik6CiAg
ICAgICAgIHZlcnNpb25fbWFwID0gewogICAgICAgICAgICAgJ3Rlc3Qtd2luLXhwJzogJ3hwJywK
LSAgICAgICAgICAgICd0ZXN0LXdpbic6ICd3aW43JywKLSAgICAgICAgICAgICd0ZXN0LW1hYyc6
ICdsZW9wYXJkJywKKyAgICAgICAgICAgICd0ZXN0LXdpbi13aW43JzogJ3dpbjcnLAorICAgICAg
ICAgICAgJ3Rlc3Qtd2luLXZpc3RhJzogJ3Zpc3RhJywKKyAgICAgICAgICAgICd0ZXN0LW1hYy1s
ZW9wYXJkJzogJ2xlb3BhcmQnLAorICAgICAgICAgICAgJ3Rlc3QtbWFjLXNub3dsZW9wYXJkJzog
J3Nub3dsZW9wYXJkJywKKyAgICAgICAgICAgICd0ZXN0LWxpbnV4JzogJycsCiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIHZlcnNpb25fbWFwW3NlbGYuX25hbWVdCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Vi
a2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNl
bGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKaW5kZXggOWRkOTc4OWI2OGMzYmIxODk5NDM5
YjcyNmNjNTU3OTQ0MGIxNzA3ZC4uMmZmN2FhMGU1MWMzMjMxODRmYzk4ZWM5NjQ3NGE4YzdmYmRk
Y2JhZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmVi
YXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKQEAg
LTYzLDE3ICs2MywzMCBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2Fn
ZSBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKIAogQkFTRUxJTkVfU1VGRklYRVMgPSAoJy50eHQnLCAnLnBuZycsICcuY2hlY2tzdW0n
KQotUkVCQVNFTElORV9QTEFURk9STV9PUkRFUiA9ICgnbWFjJywgJ3dpbicsICd3aW4teHAnLCAn
d2luLXZpc3RhJywgJ2xpbnV4JykKKworIyBPbmx5IHRoZSBXZWJLaXQgY2FuYXJpZXMgaGF2ZSBh
IGZ1bGwgY29tcGxlbWVudCBvZiBib3RzLiBUaGUgR1BVCisjIGJvdHMgZG9uJ3QgaGF2ZSB2ZXJz
aW9uLXNwZWNpZmljIGJhc2VsaW5lcyB5ZXQuIFdlIG9ubHkgaGF2ZSB0aGUgdGhyZWUKKyMgbWFp
biBEZXBzIGJvdHMuCisKKyMgQnkgcnVubmluZyB0aGUgdGVzdCBpbiB0aGlzIG9yZGVyIHdlIGVu
c3VyZSB0aGF0IGlmIGEgbGF0ZXIgdGVzdCBpcyBhCisjIGR1cGxpY2F0ZSBvZiBhbnkgZWFybGll
ciBvbmUsIHdlJ2xsIG5vdGljZSBpdCBhbmQgb25seSBrZWVwIG9uZSBjb3B5LgorUkVCQVNFTElO
RV9HUFVfT1JERVIgPSBbJ21hYycsICd3aW4nLCAnbGludXgnXQorUkVCQVNFTElORV9XRUJLSVRf
Q0FOQVJZX09SREVSID0gWydtYWMtc25vd2xlb3BhcmQnLCAnbWFjLWxlb3BhcmQnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4td2luNycsICd3aW4tdmlzdGEnLCAnd2lu
LXhwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGludXgnXQorUkVCQVNF
TElORV9QTEFURk9STV9PUkRFUiA9IFsnbWFjJywgJ3dpbicsICdsaW51eCddCisKIEFSQ0hJVkVf
RElSX05BTUVfRElDVCA9IHsnd2luJzogJ1dlYmtpdF9XaW5fX2RlcHNfJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2luLXZpc3RhJzogJ3dlYmtpdC1kYmctdmlzdGEnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICd3aW4teHAnOiAnV2Via2l0X1dpbl9fZGVwc18nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICdtYWMnOiAnV2Via2l0X01hYzEwXzVfX2RlcHNfJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbGludXgnOiAnV2Via2l0X0xpbnV4X19kZXBzXycsCiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnd2luLWNhbmFyeSc6ICdXZWJraXRfV2luJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAnd2luLXZpc3RhLWNhbmFyeSc6ICd3ZWJraXQtZGJnLXZpc3RhJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXdpbjctY2FuYXJ5JzogJ1dlYmtpdF9XaW43
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnd2luLXZpc3RhLWNhbmFyeSc6ICdXZWJraXRf
VmlzdGEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICd3aW4teHAtY2FuYXJ5JzogJ1dlYmtp
dF9XaW4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMtY2FuYXJ5JzogJ1dlYmtpdF9N
YWMxMF81JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjLWxlb3BhcmQtY2FuYXJ5Jzog
J1dlYmtpdF9NYWMxMF81JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjLXNub3dsZW9w
YXJkLWNhbmFyeSc6ICdXZWJraXRfTWFjMTBfNicsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
J2xpbnV4LWNhbmFyeSc6ICdXZWJraXRfTGludXgnLAogCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2dwdS1tYWMtY2FuYXJ5JzogJ1dlYmtpdF9NYWMxMF81Xy1fR1BVJywKQEAgLTE5NCw3ICsy
MDcsNyBAQCBjbGFzcyBSZWJhc2VsaW5lcihvYmplY3QpOgogICAgICAgICBsb2dfZGFzaGVkX3N0
cmluZygnQ29tcGlsaW5nIHJlYmFzZWxpbmluZyB0ZXN0cycsIHNlbGYuX3BsYXRmb3JtKQogICAg
ICAgICBpZiBub3Qgc2VsZi5fY29tcGlsZV9yZWJhc2VsaW5pbmdfdGVzdHMoKToKICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiBub3Qgc2VsZi5nZXRfcmViYXNlbGluaW5nX3Rl
c3RzKCk6CisgICAgICAgIGlmIG5vdCBzZWxmLl9yZWJhc2VsaW5pbmdfdGVzdHM6CiAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQogCiAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdEb3dubG9hZGlu
ZyBhcmNoaXZlJywgc2VsZi5fcGxhdGZvcm0pCkBAIC0yMTIsOCArMjI1LDYgQEAgY2xhc3MgUmVi
YXNlbGluZXIob2JqZWN0KToKICAgICAgICAgYXJjaGl2ZV9maWxlLmNsb3NlKCkKIAogICAgICAg
ICBsb2dfZGFzaGVkX3N0cmluZygnVXBkYXRpbmcgcmViYXNlbGluZWQgdGVzdHMgaW4gZmlsZScs
IHNlbGYuX3BsYXRmb3JtKQotICAgICAgICBzZWxmLl91cGRhdGVfcmViYXNlbGluZWRfdGVzdHNf
aW5fZmlsZShiYWNrdXApCi0gICAgICAgIF9sb2cuaW5mbygnJykKIAogICAgICAgICBpZiBsZW4o
c2VsZi5fcmViYXNlbGluaW5nX3Rlc3RzKSAhPSBsZW4oc2VsZi5fcmViYXNlbGluZWRfdGVzdHMp
OgogICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdOT1QgQUxMIFRFU1RTIFRIQVQgTkVFRCBSRUJB
U0VMSU5JTkcgSEFWRSBCRUVOIFJFQkFTRUxJTkVELicpCkBAIC0yMjUsOCArMjM2LDIzIEBAIGNs
YXNzIFJlYmFzZWxpbmVyKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRl
ZiBnZXRfcmViYXNlbGluaW5nX3Rlc3RzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcmVi
YXNlbGluaW5nX3Rlc3RzCisgICAgZGVmIHJlbW92ZV9yZWJhc2VsaW5lZF90ZXN0c19mcm9tX2V4
cGVjdGF0aW9ucyhzZWxmLCB0ZXN0cywgYmFja3VwKToKKyAgICAgICAgIiIiaWYgYmFja3VwIGlz
IFRydWUsIHdlIGJhY2t1cCB0aGUgb3JpZ2luYWwgdGVzdCBleHBlY3RhdGlvbnMgZmlsZS4iIiIK
KyAgICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25zLnJlbW92
ZV9yZWJhc2VsaW5lZF90ZXN0cyh0ZXN0cykKKyAgICAgICAgcGF0aCA9IHNlbGYuX3RhcmdldF9w
b3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpCisgICAgICAgIGlmIGJhY2t1cDoK
KyAgICAgICAgICAgIGRhdGVfc3VmZml4ID0gdGltZS5zdHJmdGltZSgnJVklbSVkJUglTSVTJywg
dGltZS5sb2NhbHRpbWUodGltZS50aW1lKCkpKQorICAgICAgICAgICAgYmFja3VwX2ZpbGUgPSAn
JXMub3JpZy4lcycgJSAocGF0aCwgZGF0ZV9zdWZmaXgpCisgICAgICAgICAgICBpZiBzZWxmLl9m
aWxlc3lzdGVtLmV4aXN0cyhiYWNrdXBfZmlsZSk6CisgICAgICAgICAgICAgICAgc2VsZi5fZmls
ZXN5c3RlbS5yZW1vdmUoYmFja3VwX2ZpbGUpCisgICAgICAgICAgICBfbG9nLmluZm8oJ1Nhdmlu
ZyBvcmlnaW5hbCBmaWxlIHRvICIlcyInLCBiYWNrdXBfZmlsZSkKKyAgICAgICAgICAgIHNlbGYu
X2ZpbGVzeXN0ZW0ubW92ZShwYXRoLCBiYWNrdXBfZmlsZSkKKworICAgICAgICBzZWxmLl9maWxl
c3lzdGVtLndyaXRlX3RleHRfZmlsZShwYXRoLCBuZXdfZXhwZWN0YXRpb25zKQorICAgICAgICAj
IHNlbGYuX3NjbS5hZGQocGF0aCkKKworICAgIGRlZiBnZXRfcmViYXNlbGluZWRfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZWJhc2VsaW5lZF90ZXN0cwogCiAgICAgZGVmIF9j
b21waWxlX3JlYmFzZWxpbmluZ190ZXN0cyhzZWxmKToKICAgICAgICAgIiIiQ29tcGlsZSBsaXN0
IG9mIHRlc3RzIHRoYXQgbmVlZCByZWJhc2VsaW5pbmcgZm9yIHRoZSBwbGF0Zm9ybS4KQEAgLTUx
MSwzMyArNTM3LDYgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0KToKICAgICAgICAgICAgIHJl
dHVybgogICAgICAgICBzZWxmLl9zY20uZGVsZXRlKGZpbGVuYW1lKQogCi0gICAgZGVmIF91cGRh
dGVfcmViYXNlbGluZWRfdGVzdHNfaW5fZmlsZShzZWxmLCBiYWNrdXApOgotICAgICAgICAiIiJV
cGRhdGUgdGhlIHJlYmFzZWxpbmVkIHRlc3RzIGluIHRlc3QgZXhwZWN0YXRpb25zIGZpbGUuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICBiYWNrdXA6IGlmIFRydWUsIGJhY2t1cCB0aGUgb3Jp
Z2luYWwgdGVzdCBleHBlY3RhdGlvbnMgZmlsZS4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAg
ICAgIG5vCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYmFzZWxpbmVkX3Rlc3Rz
OgotICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucyA9IHNlbGYuX3Rlc3RfZXhwZWN0YXRpb25z
LnJlbW92ZV9wbGF0Zm9ybV9mcm9tX2V4cGVjdGF0aW9ucygKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZWJhc2VsaW5lZF90ZXN0cywgc2VsZi5fcGxhdGZvcm0pCi0gICAgICAgICAgICBwYXRoID0g
c2VsZi5fdGFyZ2V0X3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkKLSAgICAg
ICAgICAgIGlmIGJhY2t1cDoKLSAgICAgICAgICAgICAgICBkYXRlX3N1ZmZpeCA9IHRpbWUuc3Ry
ZnRpbWUoJyVZJW0lZCVIJU0lUycsIHRpbWUubG9jYWx0aW1lKHRpbWUudGltZSgpKSkKLSAgICAg
ICAgICAgICAgICBiYWNrdXBfZmlsZSA9ICclcy5vcmlnLiVzJyAlIChwYXRoLCBkYXRlX3N1ZmZp
eCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhiYWNrdXBfZmls
ZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3ZlKGJhY2t1cF9m
aWxlKQotICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnU2F2aW5nIG9yaWdpbmFsIGZpbGUgdG8g
IiVzIicsIGJhY2t1cF9maWxlKQotICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ubW92
ZShwYXRoLCBiYWNrdXBfZmlsZSkKLQotICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0
ZV90ZXh0X2ZpbGUocGF0aCwgbmV3X2V4cGVjdGF0aW9ucykKLSAgICAgICAgICAgICMgc2VsZi5f
c2NtLmFkZChwYXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgX2xvZy5pbmZvKCdObyB0
ZXN0IHdhcyByZWJhc2VsaW5lZCBzbyBub3RoaW5nIHRvIHJlbW92ZS4nKQotCiAgICAgZGVmIF9j
cmVhdGVfaHRtbF9iYXNlbGluZV9maWxlcyhzZWxmLCBiYXNlbGluZV9mdWxscGF0aCk6CiAgICAg
ICAgICIiIkNyZWF0ZSBiYXNlbGluZSBmaWxlcyAob2xkLCBuZXcgYW5kIGRpZmYpIGluIGh0bWwg
ZGlyZWN0b3J5LgogCkBAIC04NjMsMTEgKzg2MiwxNSBAQCBkZWYgcGFyc2Vfb3B0aW9ucyhhcmdz
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygibWFjIiwgImNocm9taXVt
IiwgInF0IiwgZXRjLikuIERlZmF1bHRzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3RvICJjaHJvbWl1bSIuJykpCiAgICAgb3B0aW9ucyA9IG9wdGlvbl9wYXJzZXIucGFy
c2VfYXJncyhhcmdzKVswXQorICAgIGlmIG9wdGlvbnMuZ3B1OgorICAgICAgICBvcHRpb25zLmFs
bF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX0dQVV9PUkRFUgorICAgIGVsaWYgb3B0aW9ucy53ZWJr
aXRfY2FuYXJ5OgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9ybXMgPSBSRUJBU0VMSU5FX1dF
QktJVF9DQU5BUllfT1JERVIKKyAgICBlbHNlOgorICAgICAgICBvcHRpb25zLmFsbF9wbGF0Zm9y
bXMgPSBSRUJBU0VMSU5FX1BMQVRGT1JNX09SREVSCisKICAgICBpZiBvcHRpb25zLnBsYXRmb3Jt
cyA9PSBOb25lOgotICAgICAgICBpZiBvcHRpb25zLmdwdToKLSAgICAgICAgICAgIG9wdGlvbnMu
cGxhdGZvcm1zID0gJ21hYyx3aW4sbGludXgnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBv
cHRpb25zLnBsYXRmb3JtcyA9ICdtYWMsd2luLHdpbi14cCx3aW4tdmlzdGEsbGludXgnCisgICAg
ICAgIG9wdGlvbnMucGxhdGZvcm1zID0gJywnLmpvaW4ob3B0aW9ucy5hbGxfcGxhdGZvcm1zKQog
CiAgICAgdGFyZ2V0X29wdGlvbnMgPSBjb3B5LmNvcHkob3B0aW9ucykKICAgICBpZiBvcHRpb25z
LnRhcmdldF9wbGF0Zm9ybSA9PSAnY2hyb21pdW0nOgpAQCAtOTM3LDcgKzk0MCw3IEBAIGRlZiBy
ZWFsX21haW4ob3B0aW9ucywgdGFyZ2V0X29wdGlvbnMsIGhvc3RfcG9ydF9vYmosIHRhcmdldF9w
b3J0X29iaiwgdXJsX2ZldGNoCiAgICAgICAgIHJldHVybiAxCiAgICAgcGxhdGZvcm1zID0gW3Au
c3RyaXAoKS5sb3dlcigpIGZvciBwIGluIG9wdGlvbnMucGxhdGZvcm1zLnNwbGl0KCcsJyldCiAg
ICAgZm9yIHBsYXRmb3JtIGluIHBsYXRmb3JtczoKLSAgICAgICAgaWYgbm90IHBsYXRmb3JtIGlu
IFJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVI6CisgICAgICAgIGlmIG5vdCBwbGF0Zm9ybSBpbiBv
cHRpb25zLmFsbF9wbGF0Zm9ybXM6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIHBs
YXRmb3JtOiAiJXMiJyAlIChwbGF0Zm9ybSkpCiAgICAgICAgICAgICByZXR1cm4gMQogCkBAIC05
NDYsMTMgKzk0OSwxMyBAQCBkZWYgcmVhbF9tYWluKG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBo
b3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmosIHVybF9mZXRjaAogICAgICMgc2VhcmNoIHBh
dGhzLiBJdCBzaW1wbGlmaWVzIGhvdyB0aGUgcmViYXNlbGluZSB0b29sIGRldGVjdHMgZHVwbGlj
YXRlCiAgICAgIyBiYXNlbGluZXMuIENoZWNrIF9Jc0R1cEJhc2VsaW5lIG1ldGhvZCBmb3IgZGV0
YWlscy4KICAgICByZWJhc2VsaW5lX3BsYXRmb3JtcyA9IFtdCi0gICAgZm9yIHBsYXRmb3JtIGlu
IFJFQkFTRUxJTkVfUExBVEZPUk1fT1JERVI6CisgICAgZm9yIHBsYXRmb3JtIGluIG9wdGlvbnMu
YWxsX3BsYXRmb3JtczoKICAgICAgICAgaWYgcGxhdGZvcm0gaW4gcGxhdGZvcm1zOgogICAgICAg
ICAgICAgcmViYXNlbGluZV9wbGF0Zm9ybXMuYXBwZW5kKHBsYXRmb3JtKQogCiAgICAgb3B0aW9u
cy5odG1sX2RpcmVjdG9yeSA9IHNldHVwX2h0bWxfZGlyZWN0b3J5KGhvc3RfcG9ydF9vYmouX2Zp
bGVzeXN0ZW0sIG9wdGlvbnMuaHRtbF9kaXJlY3RvcnkpCiAKLSAgICByZWJhc2VsaW5pbmdfdGVz
dHMgPSBzZXQoKQorICAgIHJlYmFzZWxpbmVkX3Rlc3RzID0gc2V0KCkKICAgICBiYWNrdXAgPSBv
cHRpb25zLmJhY2t1cAogICAgIGZvciBwbGF0Zm9ybSBpbiByZWJhc2VsaW5lX3BsYXRmb3JtczoK
ICAgICAgICAgcmViYXNlbGluZXIgPSBSZWJhc2VsaW5lcihob3N0X3BvcnRfb2JqLCB0YXJnZXRf
cG9ydF9vYmosCkBAIC05NjIsMTMgKzk2NSwxNiBAQCBkZWYgcmVhbF9tYWluKG9wdGlvbnMsIHRh
cmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRfcG9ydF9vYmosIHVybF9mZXRjaAog
ICAgICAgICBfbG9nLmluZm8oJycpCiAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2Vs
aW5lIHN0YXJ0ZWQnLCBwbGF0Zm9ybSkKICAgICAgICAgaWYgcmViYXNlbGluZXIucnVuKGJhY2t1
cCk6Ci0gICAgICAgICAgICAjIE9ubHkgbmVlZCB0byBiYWNrdXAgb25lIG9yaWdpbmFsIGNvcHkg
b2YgdGVzdCBleHBlY3RhdGlvbiBmaWxlLgotICAgICAgICAgICAgYmFja3VwID0gRmFsc2UKICAg
ICAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5lIGRvbmUnLCBwbGF0Zm9ybSkK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGxvZ19kYXNoZWRfc3RyaW5nKCdSZWJhc2VsaW5l
IGZhaWxlZCcsIHBsYXRmb3JtLCBsb2dnaW5nLkVSUk9SKQogCi0gICAgICAgIHJlYmFzZWxpbmlu
Z190ZXN0cyB8PSBzZXQocmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmluZ190ZXN0cygpKQorICAg
ICAgICByZWJhc2VsaW5lZF90ZXN0cyB8PSBzZXQocmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmVk
X3Rlc3RzKCkpCisKKyAgICAjIEZJWE1FOiBuZWVkIHRvIHJlZW5hYmxlIHRoaXMgYWZ0ZXIgd2Ug
YXJlIGNvcnJlY3RseSBydW5uaW5nIGFsbAorICAgICMgY29uZmlndXJhdGlvbnMuCisgICAgI2lm
IHJlYmFzZWxpbmVkX3Rlc3RzOgorICAgICMgICAgcmViYXNlbGluZXIucmVtb3ZlX3JlYmFzZWxp
bmVkX3Rlc3RzX2Zyb21fZXhwZWN0YXRpb25zKHJlYmFzZWxpbmVkX3Rlc3RzLCBiYWNrdXApCiAK
ICAgICBfbG9nLmluZm8oJycpCiAgICAgbG9nX2Rhc2hlZF9zdHJpbmcoJ1JlYmFzZWxpbmluZyBy
ZXN1bHQgY29tcGFyaXNvbiBzdGFydGVkJywgTm9uZSkKQEAgLTk3Niw3ICs5ODIsNyBAQCBkZWYg
cmVhbF9tYWluKG9wdGlvbnMsIHRhcmdldF9vcHRpb25zLCBob3N0X3BvcnRfb2JqLCB0YXJnZXRf
cG9ydF9vYmosIHVybF9mZXRjaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
YXJnZXRfcG9ydF9vYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYmFzZWxpbmVfcGxhdGZv
cm1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWJhc2VsaW5pbmdfdGVz
dHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYmFzZWxpbmVkX3Rlc3Rz
KQogICAgIGh0bWxfZ2VuZXJhdG9yLmdlbmVyYXRlX2h0bWwoKQogICAgIGlmIG5vdCBvcHRpb25z
LnF1aWV0OgogICAgICAgICBodG1sX2dlbmVyYXRvci5zaG93X2h0bWwoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93
ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCAz
Yjg1MjQxYmFjMjU5MjFkYTI0NzIyZTJiMmE3MjBmYjA4YTI4OTA3Li4yODEzNzY4YzM3YzA2ZGIx
ODExZDY1NGQ5Zjk2NTk0YmY3N2JjMzliIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5l
X2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtNzAsNyArNzAsOCBAQCBkZWYg
dGVzdF9vcHRpb25zKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9w
bGF0Zm9ybT0nY2hyb21pdW0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi
b3NlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWlldD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1zPSdtYWMsd2luLHdpbi14
cCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9wbGF0Zm9ybXM9cmViYXNl
bGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMuUkVCQVNFTElORV9XRUJLSVRfQ0FOQVJZX09SREVS
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXM9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3B1PUZhbHNlKQogCiAKQEAgLTg2LDggKzg3LDEy
IEBAIGRlZiB0ZXN0X2hvc3RfcG9ydF9hbmRfZmlsZXN5c3RlbShvcHRpb25zLCBleHBlY3RhdGlv
bnMpOgogCiBkZWYgdGVzdF91cmxfZmV0Y2hlcihmaWxlc3lzdGVtKToKICAgICB1cmxzID0gewor
ICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X01hYzEwXzYvJzogJzxhIGhyZWY9IjQvIj4n
LAogICAgICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X01hYzEwXzUvJzogJzxhIGhyZWY9IjEv
Ij48YSBocmVmPSIyLyI+JywKKyAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9XaW43Lyc6
ICc8YSBocmVmPSIxLyI+JywKKyAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9WaXN0YS8n
OiAnPGEgaHJlZj0iMS8iPicsCiAgICAgICAgIEFSQ0hJVkVfVVJMICsgJy9XZWJraXRfV2luLyc6
ICc8YSBocmVmPSIxLyI+JywKKyAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9MaW51eC8n
OiAnPGEgaHJlZj0iMS8iPicsCiAgICAgfQogICAgIHJldHVybiB1cmxmZXRjaGVyX21vY2subWFr
ZV9mZXRjaGVyX2Nscyh1cmxzKShmaWxlc3lzdGVtKQogCkBAIC0xMDIsNyArMTA3LDI3IEBAIGRl
ZiB0ZXN0X3ppcF9mYWN0b3J5KCk6CiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9m
YWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1hY3R1YWwuY2hlY2tzdW0nOiAnMDEyMzQ1
Njc4OScsCiAgICAgICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3Rl
ZC9pbWFnZV9jaGVja3N1bS1hY3R1YWwucG5nJzogJ3RFWHRjaGVja3N1bVx4MDAwMTIzNDU2Nzg5
JywKICAgICAgICAgfSwKLSAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9XaW4vMS9sYXlv
dXQtdGVzdC1yZXN1bHRzLnppcCc6IHsKKyAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9N
YWMxMF82LzQvbGF5b3V0LXRlc3QtcmVzdWx0cy56aXAnOiB7CisgICAgICAgICAgICAnbGF5b3V0
LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwudHh0JzogJ25ldy1p
bWFnZS10eHQnLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UtYWN0dWFsLmNoZWNrc3VtJzogJ25ldy1pbWFnZS1jaGVja3N1bScsCisgICAg
ICAgICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1
YWwucG5nJzogJ25ldy1pbWFnZS1wbmcnLAorICAgICAgICB9LAorICAgICAgICAgQVJDSElWRV9V
UkwgKyAnL1dlYmtpdF9WaXN0YS8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogeworICAgICAg
ICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFs
LnR4dCc6ICd3aW4taW1hZ2UtdHh0JywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRz
L2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5jaGVja3N1bSc6ICd3aW4taW1hZ2UtY2hl
Y2tzdW0nLAorICAgICAgICAgICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UtYWN0dWFsLnBuZyc6ICd3aW4taW1hZ2UtcG5nJywKKyAgICAgICAgfSwKKyAgICAg
ICAgICBBUkNISVZFX1VSTCArICcvV2Via2l0X1dpbjcvMS9sYXlvdXQtdGVzdC1yZXN1bHRzLnpp
cCc6IHsKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVk
L2ltYWdlLWFjdHVhbC50eHQnOiAnd2luLWltYWdlLXR4dCcsCisgICAgICAgICAgICAnbGF5b3V0
LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwuY2hlY2tzdW0nOiAn
d2luLWltYWdlLWNoZWNrc3VtJywKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5wbmcnOiAnd2luLWltYWdlLXBuZycsCisgICAg
ICAgIH0sCisgICAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9XaW4vMS9sYXlvdXQtdGVz
dC1yZXN1bHRzLnppcCc6IHsKKyAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1
cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC50eHQnOiAnd2luLWltYWdlLXR4dCcsCisgICAgICAg
ICAgICAnbGF5b3V0LXRlc3QtcmVzdWx0cy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1hY3R1YWwu
Y2hlY2tzdW0nOiAnd2luLWltYWdlLWNoZWNrc3VtJywKKyAgICAgICAgICAgICdsYXlvdXQtdGVz
dC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWFjdHVhbC5wbmcnOiAnd2luLWltYWdl
LXBuZycsCisgICAgICAgIH0sCisgICAgICAgICAgQVJDSElWRV9VUkwgKyAnL1dlYmtpdF9MaW51
eC8xL2xheW91dC10ZXN0LXJlc3VsdHMuemlwJzogewogICAgICAgICAgICAgJ2xheW91dC10ZXN0
LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnR4dCc6ICd3aW4taW1hZ2Ut
dHh0JywKICAgICAgICAgICAgICdsYXlvdXQtdGVzdC1yZXN1bHRzL2ZhaWx1cmVzL2V4cGVjdGVk
L2ltYWdlLWFjdHVhbC5jaGVja3N1bSc6ICd3aW4taW1hZ2UtY2hlY2tzdW0nLAogICAgICAgICAg
ICAgJ2xheW91dC10ZXN0LXJlc3VsdHMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtYWN0dWFsLnBu
Zyc6ICd3aW4taW1hZ2UtcG5nJywKQEAgLTE4MiwxNCArMjA3LDE0IEBAIGNsYXNzIFRlc3RSZWJh
c2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VMSU5F
IE1BQyA6IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwgPSBJTUFHRSIpCiAgICAgICAgIGNv
bXBpbGVfc3VjY2VzcyA9IHJlYmFzZWxpbmVyLl9jb21waWxlX3JlYmFzZWxpbmluZ190ZXN0cygp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21waWxlX3N1Y2Nlc3MpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2V0KFsnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCddKSwgcmViYXNl
bGluZXIuZ2V0X3JlYmFzZWxpbmluZ190ZXN0cygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNldChbJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwnXSksIHJlYmFzZWxpbmVyLl9yZWJh
c2VsaW5pbmdfdGVzdHMpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5pbmdfdGVzdHNfc2hvdWxk
X2lnbm9yZV9yZWZ0ZXN0cyhzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0g
PSBzZWxmLm1ha2VfcmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VMSU5FIDog
ZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5odG1sID0gSU1BR0UiKQogICAgICAgICBjb21waWxl
X3N1Y2Nlc3MgPSByZWJhc2VsaW5lci5fY29tcGlsZV9yZWJhc2VsaW5pbmdfdGVzdHMoKQogICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGNvbXBpbGVfc3VjY2VzcykKLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShyZWJhc2VsaW5lci5nZXRfcmViYXNlbGluaW5nX3Rlc3RzKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UocmViYXNlbGluZXIuX3JlYmFzZWxpbmluZ190ZXN0cykKIAogICAgIGRl
ZiB0ZXN0X29uZV9wbGF0Zm9ybShzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0
ZW0gPSBzZWxmLm1ha2VfcmViYXNlbGluZXIoCkBAIC0yMDQsMTAgKzIyOSw5IEBAIGNsYXNzIFRl
c3RSZWJhc2VsaW5lcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMgICAgY3JlYXRlIGlt
YWdlIGRpZmZzIChGSVhNRT8pIGFuZCBkb24ndCBkaXNwbGF5IHRoZSBjaGVja3N1bXMuCiAgICAg
ICAgICMgKikgMSB1cGRhdGVkIHRlc3RfZXhwZWN0YXRpb25zIGZpbGUKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzKSwgMTIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnXSwgJycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQuY2hl
Y2tzdW0nXSwgJ25ldy1pbWFnZS1jaGVja3N1bScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVz
dC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQucG5nJ10sICduZXctaW1hZ2Ut
cG5nJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5j
aGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS1leHBlY3RlZC50eHQnXSwgJ25ldy1pbWFnZS10eHQnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQuY2hl
Y2tzdW0nXSwgJ25ldy1pbWFnZS1jaGVja3N1bScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVz
dC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZS1leHBlY3RlZC5wbmcnXSwgJ25l
dy1pbWFnZS1wbmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNb
Jy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQudHh0J10sICduZXctaW1hZ2UtdHh0JykKIAog
ICAgIGRlZiB0ZXN0X2FsbF9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBm
aWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKApAQCAtMjE3LDQ2ICsyNDEsNDMgQEAg
Y2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBOb3Rl
IHRoYXQgZXZlbiB0aG91Z2ggdGhlIHJlYmFzZWxpbmUgaXMgbWFya2VkIGZvciBhbGwgcGxhdGZv
cm1zLCBlYWNoCiAgICAgICAgICMgcmViYXNlbGluZXIgb25seSBldmVyIGRvZXMgb25lLgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMpLCAxMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291
dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dCddLAotICAg
ICAgICAgICAgJ0JVR1ggUkVCQVNFTElORSBXSU4gOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5o
dG1sID0gSU1BR0VcbicKLSAgICAgICAgICAgICdCVUdYIFJFQkFTRUxJTkUgV0lOLVhQIDogZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFXG4nKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLmNoZWNrc3VtJ10s
ICduZXctaW1hZ2UtY2hlY2tzdW0nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0
ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2Zh
aWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnBuZyddLCAnbmV3LWltYWdlLXBuZycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhw
ZWN0ZWQudHh0J10sICduZXctaW1hZ2UtdHh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
aWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0
LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLWV4cGVjdGVkLmNoZWNrc3VtJ10s
ICduZXctaW1hZ2UtY2hlY2tzdW0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0
ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjLWxl
b3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UtZXhwZWN0ZWQucG5nJ10sICduZXctaW1hZ2Ut
cG5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5j
aGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlLWV4cGVjdGVkLnR4dCddLCAnbmV3LWltYWdlLXR4dCcpCiAKICAgICBkZWYg
dGVzdF9wbmdfZmlsZV93aXRoX2NvbW1lbnQoc2VsZik6CiAgICAgICAgIHJlYmFzZWxpbmVyLCBm
aWxlc3lzdGVtID0gc2VsZi5tYWtlX3JlYmFzZWxpbmVyKAogICAgICAgICAgICAgIkJVR1ggUkVC
QVNFTElORSBNQUMgOiBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sID0gSU1B
R0UiKQogICAgICAgICBjb21waWxlX3N1Y2Nlc3MgPSByZWJhc2VsaW5lci5fY29tcGlsZV9yZWJh
c2VsaW5pbmdfdGVzdHMoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tcGlsZV9zdWNjZXNz
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChbJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
X2NoZWNrc3VtLmh0bWwnXSksIHJlYmFzZWxpbmVyLmdldF9yZWJhc2VsaW5pbmdfdGVzdHMoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoWydmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9j
aGVja3N1bS5odG1sJ10pLCByZWJhc2VsaW5lci5fcmViYXNlbGluaW5nX3Rlc3RzKQogICAgICAg
ICByZWJhc2VsaW5lci5ydW4oRmFsc2UpCiAgICAgICAgICMgVGhlcmUgaXMgb25lIGxlc3MgZmls
ZSB3cml0dGVuIHRoYW4gfHRlc3Rfb25lX3BsYXRmb3JtfCBiZWNhdXNlIHdlIG9ubHkKICAgICAg
ICAgIyB3cml0ZSAyIGV4cGVjdGF0aW9ucyAodGhlIHBuZyBhbmQgdGhlIHR4dCBmaWxlKS4KICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVuX2ZpbGVzKSwgMTEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQnXSwgJycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2Vf
Y2hlY2tzdW0tZXhwZWN0ZWQucG5nJ10sICd0RVh0Y2hlY2tzdW1ceDAwMDEyMzQ1Njc4OScpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hl
Y2tzdW0tZXhwZWN0ZWQudHh0J10sICdwbmctY29tbWVudC10eHQnKQotICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGZpbGVzeXN0ZW0uZmlsZXMuZ2V0KCcvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBl
Y3RlZC5jaGVja3N1bScsIE5vbmUpKQorICAgICAgICAjc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lz
dGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0L3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCddLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lz
dGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1hYy1s
ZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLnBuZyddLCAn
dEVYdGNoZWNrc3VtXHgwMDAxMjM0NTY3ODknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZp
bGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3Qt
bWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0ZWQudHh0
J10sICdwbmctY29tbWVudC10eHQnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZpbGVzeXN0
ZW0uZmlsZXMuZ2V0KCcvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90ZXN0LW1h
Yy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLmNoZWNr
c3VtJywgTm9uZSkpCiAKICAgICBkZWYgdGVzdF9wbmdfZmlsZV93aXRoX2NvbW1lbnRfcmVtb3Zl
X29sZF9jaGVja3N1bShzZWxmKToKICAgICAgICAgcmViYXNlbGluZXIsIGZpbGVzeXN0ZW0gPSBz
ZWxmLm1ha2VfcmViYXNlbGluZXIoCiAgICAgICAgICAgICAiQlVHWCBSRUJBU0VMSU5FIE1BQyA6
IGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwgPSBJTUFHRSIpCi0gICAgICAg
IGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rl
c3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLnBuZyddID0g
J29sZCcKLSAgICAgICAgZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhw
ZWN0ZWQuY2hlY2tzdW0nXSA9ICdvbGQnCi0gICAgICAgIGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0
LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVk
L2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVkLnR4dCddID0gJ29sZCcKKyAgICAgICAgZmlsZXN5c3Rl
bS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1tYWMtbGVv
cGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC5wbmcnXSA9ICdv
bGQnCisgICAgICAgIGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3Rz
L3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tz
dW0tZXhwZWN0ZWQuY2hlY2tzdW0nXSA9ICdvbGQnCisgICAgICAgIGZpbGVzeXN0ZW0uZmlsZXNb
Jy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvZmFp
bHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0ZWQudHh0J10gPSAnb2xkJwogCiAg
ICAgICAgIGNvbXBpbGVfc3VjY2VzcyA9IHJlYmFzZWxpbmVyLl9jb21waWxlX3JlYmFzZWxpbmlu
Z190ZXN0cygpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21waWxlX3N1Y2Nlc3MpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KFsnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tz
dW0uaHRtbCddKSwgcmViYXNlbGluZXIuZ2V0X3JlYmFzZWxpbmluZ190ZXN0cygpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNldChbJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3Vt
Lmh0bWwnXSksIHJlYmFzZWxpbmVyLl9yZWJhc2VsaW5pbmdfdGVzdHMpCiAgICAgICAgIHJlYmFz
ZWxpbmVyLnJ1bihGYWxzZSkKICAgICAgICAgIyBUaGVyZSBpcyBvbmUgbW9yZSBmaWxlIHdyaXR0
ZW4gdGhhbiB8dGVzdF9wbmdfZmlsZV93aXRoX2NvbW1lbnRfcmVtb3ZlX29sZF9jaGVja3N1bXwK
ICAgICAgICAgIyBiZWNhdXNlIHdlIGFsc28gZGVsZXRlIHRoZSBvbGQgY2hlY2tzdW0uCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZpbGVzeXN0ZW0ud3JpdHRlbl9maWxlcyksIDEyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlvbnMudHh0J10sICcnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0
L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2No
ZWNrc3VtLWV4cGVjdGVkLnBuZyddLCAndEVYdGNoZWNrc3VtXHgwMDAxMjM0NTY3ODknKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L0xh
eW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNr
c3VtLWV4cGVjdGVkLnR4dCddLCAncG5nLWNvbW1lbnQtdHh0JykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmaWxlc3lzdGVtLmZpbGVzLmdldCgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vdGVzdC1tYWMvZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0tZXhwZWN0
ZWQuY2hlY2tzdW0nLCBOb25lKSwgTm9uZSkKKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoZmls
ZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC90
ZXN0X2V4cGVjdGF0aW9ucy50eHQnXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmls
ZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC1t
YWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC5wbmcn
XSwgJ3RFWHRjaGVja3N1bVx4MDAwMTIzNDU2Nzg5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmaWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS90
ZXN0LW1hYy1sZW9wYXJkL2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLWV4cGVjdGVk
LnR4dCddLCAncG5nLWNvbW1lbnQtdHh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxl
c3lzdGVtLmZpbGVzLmdldCgnL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVz
dC1tYWMtbGVvcGFyZC9mYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS1leHBlY3RlZC5j
aGVja3N1bScsIE5vbmUpLCBOb25lKQogCiAgICAgZGVmIHRlc3RfZGlmZl9iYXNlbGluZXNfdHh0
KHNlbGYpOgogICAgICAgICByZWJhc2VsaW5lciwgZmlsZXN5c3RlbSA9IHNlbGYubWFrZV9yZWJh
c2VsaW5lcigiIikKQEAgLTI4MCw2ICszMDEsNyBAQCBjbGFzcyBUZXN0UmVhbE1haW4odW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBleHBlY3RhdGlvbnMgPSAiQlVHWCBSRUJBU0VMSU5FIDog
ZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCA9IElNQUdFIgogCiAgICAgICAgIG9wdGlvbnMg
PSB0ZXN0X29wdGlvbnMoKQorICAgICAgICBvcHRpb25zLnBsYXRmb3JtcyA9ICcsJy5qb2luKG9w
dGlvbnMuYWxsX3BsYXRmb3JtcykKIAogICAgICAgICBob3N0X3BvcnRfb2JqLCBmaWxlc3lzdGVt
ID0gdGVzdF9ob3N0X3BvcnRfYW5kX2ZpbGVzeXN0ZW0ob3B0aW9ucywgZXhwZWN0YXRpb25zKQog
ICAgICAgICB1cmxfZmV0Y2hlciA9IHRlc3RfdXJsX2ZldGNoZXIoZmlsZXN5c3RlbSkKQEAgLTI4
NywxNyArMzA5LDE5IEBAIGNsYXNzIFRlc3RSZWFsTWFpbih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIG1vY2tfc2NtID0gbW9ja3Rvb2wuTW9ja1NDTSgpCiAgICAgICAgIG9jID0gb3V0cHV0
Y2FwdHVyZS5PdXRwdXRDYXB0dXJlKCkKICAgICAgICAgb2MuY2FwdHVyZV9vdXRwdXQoKQotICAg
ICAgICByZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5yZWFsX21haW4ob3B0aW9ucywg
b3B0aW9ucywgaG9zdF9wb3J0X29iaiwKLSAgICAgICAgICAgIGhvc3RfcG9ydF9vYmosIHVybF9m
ZXRjaGVyLCB6aXBfZmFjdG9yeSwgbW9ja19zY20pCisgICAgICAgIHJlcyA9IHJlYmFzZWxpbmVf
Y2hyb21pdW1fd2Via2l0X3Rlc3RzLnJlYWxfbWFpbihvcHRpb25zLCBvcHRpb25zLAorICAgICAg
ICAgICAgaG9zdF9wb3J0X29iaiwgaG9zdF9wb3J0X29iaiwgdXJsX2ZldGNoZXIsIHppcF9mYWN0
b3J5LCBtb2NrX3NjbSkKICAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQogCi0gICAgICAgICMg
V2UgZXhwZWN0IHRvIGhhdmUgd3JpdHRlbiAzNSBmaWxlcyBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhp
cyByZWJhc2VsaW5lOgotICAgICAgICAjICopIDExIGZpbGVzICogMyBwb3J0cyBmb3IgdGhlIG5l
dyBiYXNlbGluZXMgYW5kIHRoZSBkaWZmcyAoc2VlIGJyZWFrZG93bgotICAgICAgICAjICAgIHVu
ZGVyIHRlc3Rfb25lX3BsYXRmb3JtLCBhYm92ZSkKLSAgICAgICAgIyAqKSB0aGUgdXBkYXRlZCB0
ZXN0X2V4cGVjdGF0aW9ucyBmaWxlCi0gICAgICAgICMgKikgdGhlIHJlYmFzZWxpbmUgcmVzdWx0
cyBodG1sIGZpbGUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0
dGVuX2ZpbGVzKSwgMzUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXN5c3RlbS5maWxl
c1snL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0
aW9ucy50eHQnXSwgJycpCisgICAgICAgICMgV2UgZXhwZWN0IHRvIGhhdmUgd3JpdHRlbiAzNiBm
aWxlcyBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyByZWJhc2VsaW5lOgorICAgICAgICAjICopIDYq
MyBmaWxlcyBpbiAvX19pbV90bXAvIGZvciB0aGUgYXJjaGl2ZWQgbWVtYmVycyBvZiB0aGUgNiBw
b3J0cworICAgICAgICAjICopIDIqMyBmaWxlcyBpbiAvdGVzdC5jaGVja291dCBmb3IgYWN0dWFs
bHkgZGlmZmVyaW5nIGJhc2VsaW5lcworICAgICAgICAjICopIDEgZmlsZSBpbiAvdGVzdC5jaGVj
a291dCBmb3IgdGhlIHVwZGF0ZWQgdGVzdF9leHBlY3RhdGlvbnMgZmlsZQorICAgICAgICAjICop
IDIqNCBmaWxlcyBpbiAvdG1wIGZvciB0aGUgb2xkL25ldyBiYXNlbGluZXMgZm9yIHRoZSB0d28g
YWN0dWFsIHBvcnRzCisgICAgICAgICMgKikgMiBmaWxlcyBpbiAvdG1wIGZvciB0aGUgdGV4dCBk
aWZmcyBmb3IgdGhlIHR3byBwb3J0cworICAgICAgICAjICopIDEgZmlsZSBpbiAvdG1wIGZvciB0
aGUgcmViYXNlbGluZSByZXN1bHRzIGh0bWwgZmlsZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJlcywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZmlsZXN5c3RlbS53cml0dGVu
X2ZpbGVzKSwgMzYpCiAKIAogY2xhc3MgVGVzdEh0bWxHZW5lcmF0b3IodW5pdHRlc3QuVGVzdENh
c2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNzA3NmVmMmU1YWYzMmUy
MDRhYTVhNzk4MTY4NjY5MzNhYzZlYmZlZi4uMTlkNmRhMTE1ZTE0ZWYxNGVkNWYzYzA3NGQ1NTRh
ZmQxYWZhNjFjYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC02MTYsOSAr
NjE2LDkgQEAgY2xhc3MgUmViYXNlbGluZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBmaWxlX2xpc3QucmVtb3ZlKCcvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50
eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihmaWxlX2xpc3QpLCA2KQogICAgICAg
ICBzZWxmLmFzc2VydEJhc2VsaW5lcyhmaWxlX2xpc3QsCi0gICAgICAgICAgICAiL3BsYXRmb3Jt
L3Rlc3QtbWFjL3Bhc3Nlcy9pbWFnZSIpCisgICAgICAgICAgICAiL3BsYXRmb3JtL3Rlc3QtbWFj
LWxlb3BhcmQvcGFzc2VzL2ltYWdlIikKICAgICAgICAgc2VsZi5hc3NlcnRCYXNlbGluZXMoZmls
ZV9saXN0LAotICAgICAgICAgICAgIi9wbGF0Zm9ybS90ZXN0LW1hYy9mYWlsdXJlcy9leHBlY3Rl
ZC9taXNzaW5nX2ltYWdlIikKKyAgICAgICAgICAgICIvcGxhdGZvcm0vdGVzdC1tYWMtbGVvcGFy
ZC9mYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlIikKIAogCiBjbGFzcyBEcnlydW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToK
</data>

          </attachment>
      

    </bug>

</bugzilla>