<?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>169308</bug_id>
          
          <creation_ts>2017-03-07 14:26:48 -0800</creation_ts>
          <short_desc>Add support for Bindings EWS</short_desc>
          <delta_ts>2017-10-18 12:41:24 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169307</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=168979</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>169305</dependson>
          <blocked>169307</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Srinivasan Vijayaraghavan">webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284562</commentid>
    <comment_count>0</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-07 14:26:48 -0800</bug_when>
    <thetext>Add support for Bindings EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284641</commentid>
    <comment_count>1</comment_count>
      <attachid>303743</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-07 17:09:01 -0800</bug_when>
    <thetext>Created attachment 303743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284643</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-07 17:11:13 -0800</bug_when>
    <thetext>Attachment 303743 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284646</commentid>
    <comment_count>3</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-07 17:14:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 303743 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94: 
&gt; [AbstractEarlyWarningSystem._create_task] Instance of
&gt; &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
&gt; Total errors found: 1 in 11 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

This is a false positive, similar to the error for &apos;_group&apos; on 162458 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284652</commentid>
    <comment_count>4</comment_count>
      <attachid>303745</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-07 17:19:50 -0800</bug_when>
    <thetext>Created attachment 303745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284657</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-07 17:22:49 -0800</bug_when>
    <thetext>Attachment 303745 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285433</commentid>
    <comment_count>6</comment_count>
      <attachid>303745</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-03-09 12:06:17 -0800</bug_when>
    <thetext>Comment on attachment 303745
Patch

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

overall looks good to me. Few comments inline.

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:223
&gt; +class MockBindingsEarlyWarningSystem(AbstractEarlyWarningSystem):

The filename is jscews_unittest.py, should either rename the file or move the binding test code to a new file.

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:260
&gt; +        with self.assertRaises(ScriptError):

why do we need this? If it is required, shouldn&apos;t it be required in all the similar failure test cases below (e.g.: test_ineffective_patch)?

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:194
&gt; +        if hasattr(self._delegate, &apos;group&apos;) and self._delegate.should_build:

do we need to check for &apos;group&apos; here. 
Also does all the delegates have should_build? I think it should be fine, but please verify for CommitQueueTaskDelegate and StyleQueueTaskDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285464</commentid>
    <comment_count>7</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-09 12:38:14 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 303745 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303745&amp;action=review
&gt; 
&gt; overall looks good to me. Few comments inline.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:223
&gt; &gt; +class MockBindingsEarlyWarningSystem(AbstractEarlyWarningSystem):
&gt; 
&gt; The filename is jscews_unittest.py, should either rename the file or move
&gt; the binding test code to a new file.
Haha yes, I&apos;ll rename this to retrylogic_unittest.py

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:260
&gt; &gt; +        with self.assertRaises(ScriptError):
&gt; 
&gt; why do we need this? If it is required, shouldn&apos;t it be required in all the
&gt; similar failure test cases below (e.g.: test_ineffective_patch)?
Patches that have the same failures as the clean tree are not considered to be EWS failures.

On Line 53 of this file, a ScriptError object is created (note: not raised!). This mimicks the behavior in patchanalysistask.py.

It is only raised later if the patch introduces new test failures that weren&apos;t present in the tree (not if the failures in the patch already existed in the tree).

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:194
&gt; &gt; +        if hasattr(self._delegate, &apos;group&apos;) and self._delegate.should_build:
&gt; 
&gt; do we need to check for &apos;group&apos; here. 
&gt; Also does all the delegates have should_build? I think it should be fine,
&gt; but please verify for CommitQueueTaskDelegate and StyleQueueTaskDelegate.
My bad, I actually meant to check for hasattr(self._delegate, &apos;should_build&apos;) here. I&apos;ll change this conditional to always append the --build flag, unless a should_build attribute is present and valued False.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285641</commentid>
    <comment_count>8</comment_count>
      <attachid>304001</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-09 15:29:43 -0800</bug_when>
    <thetext>Created attachment 304001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285645</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-09 15:32:15 -0800</bug_when>
    <thetext>Attachment 304001 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285665</commentid>
    <comment_count>10</comment_count>
      <attachid>304005</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-09 16:23:05 -0800</bug_when>
    <thetext>Created attachment 304005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285667</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-09 16:25:49 -0800</bug_when>
    <thetext>Attachment 304005 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285680</commentid>
    <comment_count>12</comment_count>
      <attachid>304005</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-03-09 16:40:38 -0800</bug_when>
    <thetext>Comment on attachment 304005
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:194
&gt; +        if not hasattr(self._delegate, &apos;should_build&apos;) or self._delegate.should_build:

Can you use getattr with a default value here?

&gt; Tools/Scripts/webkitpy/tool/bot/retrylogic_unittest.py:1
&gt; +# Copyright (C) 2017 Apple Inc. All rights reserved.

Looks like the file was not moved, but re-added, thus breaking source history. Please re-do the same change, but using a move.

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94
&gt; +        return EarlyWarningSystemTask(self, patch, self._options.run_tests, self.should_build)

Whenever we use multiple boolean arguments, we should really use named arguments instead.

In WebKit C++ code, we do a similar thing by creating distinct types for boolean arguments, that way it&apos;s impossible to mix up the order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285710</commentid>
    <comment_count>13</comment_count>
      <attachid>304015</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-09 17:29:36 -0800</bug_when>
    <thetext>Created attachment 304015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285711</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-09 17:31:56 -0800</bug_when>
    <thetext>Attachment 304015 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285846</commentid>
    <comment_count>15</comment_count>
      <attachid>304054</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-03-10 10:42:47 -0800</bug_when>
    <thetext>Created attachment 304054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285847</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:45:03 -0800</bug_when>
    <thetext>Attachment 304054 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:94:  [AbstractEarlyWarningSystem._create_task] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;should_build&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285861</commentid>
    <comment_count>17</comment_count>
      <attachid>304054</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 11:24:50 -0800</bug_when>
    <thetext>Comment on attachment 304054
Patch

Clearing flags on attachment: 304054

Committed r213722: &lt;http://trac.webkit.org/changeset/213722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285862</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 11:24:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303743</attachid>
            <date>2017-03-07 17:09:01 -0800</date>
            <delta_ts>2017-03-07 17:19:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170307170900.patch</filename>
            <type>text/plain</type>
            <size>25548</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWQzMDYxMTBlYWI2YTRlOGU5YjNiNjA0N2NhYTljMjdl
YWQyOTAzMi4uNTY0NzEyN2NmZWY3NjAyNWQ3YmUyNjFhMmY3YmYxZDhlZDhlMTczOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE3LTAzLTA3ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3MgRVdTCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGJpbmRpbmdzLWV3cy4gQ2FuIHRl
c3Qgd2l0aG91dCBidWlsZGluZzsgc2hvdWxkX2J1aWxkID0gRmFsc2UuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHk6CisgICAgICAg
IChCaW5kaW5nc1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAg
ICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6IERpdHRvLgorICAg
ICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5pc19zdWJzZXQpOiBEaXR0by4KKyAgICAgICAgKEJp
bmRpbmdzVGVzdFJlc3VsdHMuZXF1YWxzKTogRGl0dG8uCisgICAgICAgIChCaW5kaW5nc1Rlc3RS
ZXN1bHRzLmFsbF9wYXNzZWQpOiBEaXR0by4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMu
ZmFpbGluZ190ZXN0cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQmluZGluZ3NU
ZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogUmVtb3ZlZCAnZXJyb3Jz
Jy4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0
cmluZ19zdWNjZXNzKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrLl9faW5pdF9fKTogQWRkIHNob3VsZF9idWlsZCBwYXJhbWV0ZXIuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IENoZWNrIHNob3VsZF9idWlsZCBi
ZWZvcmUgY2FsbGluZyBzZWxmLl9idWlsZCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0JpbmRpbmdzRWFybHlX
YXJuaW5nU3lzdGVtKTogQmFzZWQgb2YgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbS4gTW9ja2Vk
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tCaW5kaW5nc0Vh
cmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1v
Y2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBSZXR1cm5zIHRlc3Qg
cmVzdWx0cyBwcm92aWRlZCBieSB1cywgaW5zdGVhZCBvZiBKU09OIG91dHB1dC4KKyAgICAgICAg
KEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IENsYXNzIHRvIHRlc3QgcmV0cnkgbG9n
aWMgaW4gYmVsb3cgc2l0dWF0aW9ucy4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lz
dGVtVGVzdC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgTm9uZSBvciBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24uCisgICAgICAgIChCaW5k
aW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRj
aCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChC
aW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVhbiBwYXRjaCBvbiBy
ZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2lu
ZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAoQmluZGlu
Z3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6
IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVl
KTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlmIHNob3VsZF9idWls
ZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgQmluZGluZ3MgdGVz
dHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6IElmIHRlc3RzIGZh
aWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5nc190ZXN0cy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
LnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1
ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdzIEVXUy4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IFBhc3Mgc2hvdWxk
X2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9h
ZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRydWUgYnkgZGVmYXVs
dCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VXUyk6IEJpbmRpbmdz
IEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ19iaW5kaW5n
c190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRvIEJ1Z3ppbGxhLgor
ICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBlY3RlZF9sb2dzKTog
Tm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxkIGxpbmUgb3B0aW9u
YWwuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxl
dmFuY2UucHk6CisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRkIGJpbmRpbmdzIHBh
dGhzLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5fY2hhbmdlc19hcmVfcmVsZXZhbnQp
OiBDbGVhbmVyIHdheSB0byBjaGVjayBpZiB3ZSBzaG91bGQgcGVyZm9ybSB0aGlzIHN0ZXAuIAor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTog
QWRkIHVuaXQgdGVzdHMgZm9yIEJpbmRpbmdzIEVXUyBwYXRjaCByZWxldmFuY2UuCisgICAgICAg
ICh0ZXN0X3BhdGNoX3JlbGV2YW50X2JpbmRpbmdzKTogVGVzdCBmb3IgcGF0Y2ggcmVsZXZhbnQg
dG8gYmluZGluZ3MuCisgICAgICAgICh0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9iaW5kaW5ncyk6
IFRlc3QgZm9yIHBhdGNoIG5vdCByZWxldmFudCB0byBiaW5kaW5ncy4KKwogMjAxNy0wMy0wNyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
b250ZW50IEV4dGVuc2lvbnNdIFJlbmFtZSAiRG9tYWluIiB0byAiQ29uZGl0aW9uIiB3aGVyZSBh
cHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5q
c29uCmluZGV4IDlmZGNjZTA4ZGY4OTM1MmNiNjFmMDQ1Y2Y3ODZiNmVlZDNmYzdlMDUuLjM3ZGVk
NDM4MmMxMjE3OWRjNTgzYmExNTlkMmIwOGRmMjUyZjM2ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDEyIEBACiAgICAg
ICAgICJuYW1lIjogImpzYy1ld3MiLAogICAgICAgICAiZ3JvdXAiOiAianNjIiwKICAgICAgICAg
InJ1blRlc3RzIjogdHJ1ZQorICAgIH0sCisgICAgIkJpbmRpbmdzIEVXUyI6IHsKKyAgICAgICAg
InBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAiYmluZGluZ3MtZXdzIiwKKyAgICAgICAg
Imdyb3VwIjogImJpbmRpbmdzIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZSwKKyAgICAgICAg
InNob3VsZEJ1aWxkIjogZmFsc2UKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CmluZGV4IDkzOTA0
NTQ3ZGM5YWQyYTYwY2E4NjI0MGE2YWU2NzBlZDUzNjIwY2UuLmUwZjg1Mjc3MzkwYWMwMDA1Yjg2
ZmM5MDZhOTZjOTU4ZGJiYWUzMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CkBAIC0yOCwxMSArMjgsOCBA
QCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgQmluZGluZ3NU
ZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
ZmFpbHVyZXMsIGVycm9ycyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhaWx1cmVzKToKICAg
ICAgICAgc2VsZi5fZmFpbHVyZXMgPSBmYWlsdXJlcwotICAgICAgICBzZWxmLl9lcnJvcnMgPSBl
cnJvcnMKLQotICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMgPSBmYWlsdXJlcyArIGVy
cm9ycwogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xz
LCBzdHJpbmcpOgpAQCAtNDAsMjIgKzM3LDIyIEBAIGNsYXNzIEJpbmRpbmdzVGVzdFJlc3VsdHMo
QWJzdHJhY3RUZXN0UmVzdWx0cyk6CiAgICAgICAgIGlmIG5vdCBwYXJzZWRfcmVzdWx0czoKICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgaWYgJ2ZhaWx1cmVzJyBub3QgaW4gcGFy
c2VkX3Jlc3VsdHMgb3IgJ2Vycm9ycycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICBp
ZiAnZmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0czoKICAgICAgICAgICAgIHJldHVybiBO
b25lCiAKLSAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snZmFpbHVyZXMnXSwgcGFy
c2VkX3Jlc3VsdHNbJ2Vycm9ycyddKQorICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRz
WydmYWlsdXJlcyddKQogCiAgICAgZGVmIGlzX3N1YnNldChzZWxmLCBvdGhlcik6Ci0gICAgICAg
IHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpIDw9IHNldChvdGhlci5fZmFpbHVyZXMpIGFuZCBz
ZXQoc2VsZi5fZXJyb3JzKSA8PSBzZXQob3RoZXIuX2Vycm9ycykKKyAgICAgICAgcmV0dXJuIHNl
dChzZWxmLl9mYWlsdXJlcykgPD0gc2V0KG90aGVyLl9mYWlsdXJlcykKIAogICAgIGRlZiBlcXVh
bHMoc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA9PSBz
ZXQob3RoZXIuX2ZhaWx1cmVzKSBhbmQgc2V0KHNlbGYuX2Vycm9ycykgPT0gc2V0KG90aGVyLl9l
cnJvcnMpCisgICAgICAgIHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpID09IHNldChvdGhlci5f
ZmFpbHVyZXMpCiAKICAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIG5v
dCBzZWxmLl9mYWlsdXJlcyBhbmQgbm90IHNlbGYuX2Vycm9ycworICAgICAgICByZXR1cm4gbm90
IHNlbGYuX2ZhaWx1cmVzCiAKICAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2ZhaWxpbmdfdGVzdF9uYW1lcworICAgICAgICByZXR1cm4gc2VsZi5fZmFp
bHVyZXMKIAogICAgICMgTm8gZGVmaW5lZCBmYWlsdXJlIGxpbWl0IGZvciBiaW5kaW5ncyB0ZXN0
cy4KICAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0
c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5n
c3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4IDNkYWUzZmQyMmE2OThmZjU1NmUzOTNmYzQy
ODViNDMwMzMzODVhN2IuLmNiMTY4MDUyYzYyZmU5OTlkN2NhMTExYmRjNjU3ODMyN2UxYTM3ZTgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rl
c3RyZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0yNywxNyArMjcsMTUgQEAg
ZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRp
bmdzVGVzdFJlc3VsdHMKIAogY2xhc3MgQmluZGluZ3NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6Ci0gICAg
ICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImZhaWx1cmVzIjogW119JwotICAgICAgICBpbmNv
bXBsZXRlX2pzb25fdjIgPSAneyJlcnJvcnMiOltdfScKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0
ZV9qc29uX3YxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBCaW5kaW5nc1Rlc3RS
ZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKyAgICAgICAg
aW5jb21wbGV0ZV9qc29uID0gJ3sia2V5MiI6IFtdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0
ZV9qc29uKSkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmdfc3VjY2VzcyhzZWxm
KToKLSAgICAgICAgbm9fZmFpbHVyZXNfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbXSwgImVycm9y
cyI6W119JwotICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0
cyhbXSwgW10pCisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImZhaWx1cmVzIjogW119
JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEJpbmRp
bmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuYWxsX3Bhc3NlZCgp
KQogCi0gICAgICAgIHRlc3Rfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbImZhaWx1cmUxIl0sICJl
cnJvcnMiOiBbImVycm9yMSIsICJlcnJvcjIiXX0nCi0gICAgICAgIHRlc3RfcmVzdWx0cyA9IEJp
bmRpbmdzVGVzdFJlc3VsdHMoWyJmYWlsdXJlMSJdLCBbImVycm9yMSIsICJlcnJvcjIiXSkKKyAg
ICAgICAgdGVzdF9zdHJpbmcgPSAneyJmYWlsdXJlcyI6IFsiZmFpbHVyZTEiXX0nCisgICAgICAg
IHRlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWyJmYWlsdXJlMSJdKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUodGVzdF9yZXN1bHRzLmVxdWFscyhCaW5kaW5nc1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcodGVzdF9zdHJpbmcpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRl
eCBlY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1Li41YWU1MzAwMTNjODQ2
OTQwNjI0M2I4MGFjN2ExN2ZkNTUxMzFkYmY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0zNSw5
ICszNSwxMCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUoUGF0Y2hBbmFs
eXNpc1Rhc2tEZWxlZ2F0ZSk6CiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRj
aEFuYWx5c2lzVGFzayk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwg
c2hvdWxkX3J1bl90ZXN0cz1UcnVlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUs
IHBhdGNoLCBzaG91bGRfcnVuX3Rlc3RzPVRydWUsIHNob3VsZF9idWlsZD1UcnVlKToKICAgICAg
ICAgUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoKQogICAg
ICAgICBzZWxmLl9zaG91bGRfcnVuX3Rlc3RzID0gc2hvdWxkX3J1bl90ZXN0cworICAgICAgICBz
ZWxmLl9zaG91bGRfYnVpbGQgPSBzaG91bGRfYnVpbGQKIAogICAgIGRlZiB2YWxpZGF0ZShzZWxm
KToKICAgICAgICAgc2VsZi5fcGF0Y2ggPSBzZWxmLl9kZWxlZ2F0ZS5yZWZldGNoX3BhdGNoKHNl
bGYuX3BhdGNoKQpAQCAtNjEsMTAgKzYyLDExIEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRh
c2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmFpc2UgVW5hYmxlVG9BcHBseVBh
dGNoKHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcGF0Y2hfcmVsZXZh
bmNlKCk6CiAgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBwbGljYWJsZShzZWxmLl9wYXRj
aCkKLSAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6Ci0gICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoKQorICAgICAgICBpZiBzZWxm
Ll9zaG91bGRfYnVpbGQ6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKKyAgICAg
ICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBv
cnRfZmFpbHVyZSgpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfcnVuX3Rlc3RzOgogICAg
ICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcGF0Y2goKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eQppbmRleCBhNmFlZjNkYWU4MDExZmFiNTc1ZjJjNTQzMTEwMDE0ZTk3YTZiMjBhLi5hYTE5MmFm
N2ZkYjhlNzcwZjI5MjFiNTkxYWI2MjRkNTZlNGIwNGNlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMjMsNiArMjMsNyBA
QAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuYmluZGluZ3N0ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKQEAg
LTIxNiwzICsyMTcsODIgQEAgY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQog
ICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworCisjIFRoaXMgaXMgdGhlIGRlbGVn
YXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3Mg
TW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyhz
ZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICdiaW5kaW5ncycKKyAgICAgICAgc2VsZi5fcmVz
dWx0c19pbl9vcmRlciA9IFtjbGVhbl90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10K
KworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1
bHRzX2luX29yZGVyLnBvcCgpCisKKworY2xhc3MgQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bh
c3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQor
CisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lz
dGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVn
cy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMgPSBbc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKGZpcnN0X3Rlc3RfcmVzdWx0
cyldCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBw
YXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10pCisg
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0
X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVz
dFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRz
ID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZml4KHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10p
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9p
bmVmZmVjdGl2ZV9wYXRjaChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmlu
ZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0
X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFs
bHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBC
aW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJywgJ1Rlc3ROb2RlLmlkbCddKQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1h
cExpa2UuaWRsJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAg
ICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rl
c3ROb2RlLmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RS
ZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVf
dGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IGFjYTgyZmRlMjY4YzkyMjQ0NjhiM2Q0
NjM4ZDFlZmE1NDZlYWEzZjAuLjI1MzNjMDkzMGYxNmQyMGFmZTEyOTc5NGM4YTBlMjY5MWYyNzFj
ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQpAQCAtMTg2LDEyICsxODYsMTQgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAi
LS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAotICAgICAgICAgICAg
Ii0tYnVpbGQiLAogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50
ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdh
dGUuYnVpbGRfc3R5bGUoKSwKICAgICAgICAgXQogCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5f
ZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5zaG91bGRfYnVpbGQ6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1idWlsZCIpCisKICAgICAgICAgaWYgaGFzYXR0cihzZWxm
Ll9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0l
cyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQogCkBAIC0yMzUsNiArMjM3LDI0IEBAIGNsYXNz
IFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICMgYWxzbyBwcmVzZW50IHdpdGhv
dXQgdGhlIHBhdGNoLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRlZmVyLgogICAgICAgICByZXR1cm4g
RmFsc2UKIAorICAgIGRlZiBfcmV0cnlfYmluZGluZ3NfdGVzdHMoc2VsZik6CisgICAgICAgIGZp
cnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBmaXJz
dF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAgZmlyc3RfZmFpbHVy
ZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisgICAgICAgIGlmIGZpcnN0X3Jl
c3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHNlbGYu
X2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVlX3Jlc3Vs
dHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVhbl90cmVl
X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlm
IGZpcnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25l
LCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKICAgICAjIEZJWE1FOiBBYnN0
cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KICAgICBkZWYgX3JldHJ5
X2pzY190ZXN0cyhzZWxmKToKICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRl
LnRlc3RfcmVzdWx0cygpCkBAIC0zMzgsNiArMzU4LDggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKIAogICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAn
KSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKICAgICAgICAgICAgIHJldHVy
biBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbGlmIGhhc2F0dHIoc2VsZi5fZGVs
ZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJiaW5kaW5ncyI6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfYmluZGluZ3NfdGVzdHMoKQogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdh
cm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDY4ZjFkODAzMjBjYjI1N2UyNmJhZjg0MDFmYjdhYTUx
MjA0MTlkYzEuLjA5ODNhODc3ZTg5MmFkYTAxN2JkZDdkMjkzYzNmZmY2NDAxNTE1NDIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdz
eXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbS5weQpAQCAtMzcsNiArMzcsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
b25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5nU3lzdGVtVGFzaywg
RWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmJp
bmRpbmdzdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IEJpbmRpbmdzVGVzdFJlc3VsdHNSZWFkZXIK
IGZyb20gd2Via2l0cHkudG9vbC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExh
eW91dFRlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1
bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElz
Tm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCkBAIC01OSw2ICs2MCw4IEBAIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2tEZWxlCiAKICAgICAgICAgaWYgc2VsZi5ncm91cCgpID09ICJqc2MiOgogICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQuanNjX3Jlc3VsdHNfZGlyZWN0b3J5KCkpCisgICAgICAg
IGVsaWYgc2VsZi5ncm91cCgpID09ICJiaW5kaW5ncyI6CisgICAgICAgICAgICBzZWxmLl90ZXN0
X3Jlc3VsdHNfcmVhZGVyID0gQmluZGluZ3NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBz
ZWxmLl9wb3J0LmpzY19yZXN1bHRzX2RpcmVjdG9yeSgpKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2Rp
cmVjdG9yeSgpKQogCkBAIC04OCw3ICs5MSw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAK
ICAgICAjIFRoaXMgZXhpc3RzIGZvciBtb2NraW5nCiAgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxm
LCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBh
dGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKyAgICAgICAgcmV0dXJuIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzLCBzZWxmLnNo
b3VsZF9idWlsZCkKIAogICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2socGF0Y2gpCkBAIC0xNzQsNSArMTc3LDYgQEAgY2xh
c3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlX
YXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcu
Z2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmln
LmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKICAgICAgICAgICAgICAgICAnX2dyb3Vw
JzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKKyAgICAgICAgICAgICAgICAnc2hvdWxkX2J1
aWxkJzogY29uZmlnLmdldCgnc2hvdWxkQnVpbGQnLCBUcnVlKSwKICAgICAgICAgICAgIH0pKQog
ICAgICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3Qu
cHkKaW5kZXggZjhiZWRkYzQ5YWU4ZWFmY2FjMGZlZDY5OGQzZmRhZWUwYzhhZWM1Yi4uNTE4YWJh
YTc1ZjVhNjgyY2M0NzJjOWJlM2Y5NGY5NjIzODMwNzYwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5n
c3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC0zMCw2ICszMCw3IEBACiBmcm9tIHdlYmtpdHB5LnRoaXJk
cGFydHkubW9jayBpbXBvcnQgTW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQg
SG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAorZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRpbmdz
VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBv
cnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVz
dWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC01Niw2ICs1NywxMiBAQCBj
bGFzcyBUZXN0SlNDRVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKICAgICBfZ3JvdXAg
PSAianNjIgogCiAKK2NsYXNzIFRlc3RCaW5kaW5nc0VXUyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbSk6CisgICAgcG9ydF9uYW1lID0gIm1hYyIKKyAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisg
ICAgX2dyb3VwID0gImJpbmRpbmdzIgorCisKIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lz
dGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICBkZWYgX3Rlc3RfbWVzc2FnZShzZWxmLCBld3MsIHJl
c3VsdHMsIG1lc3NhZ2UpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCkBA
IC04MSw2ICs4OCwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVl
dWVzVGVzdCk6CiAgICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFt
bC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlw
ZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiCiAgICAgICAgIHNlbGYu
X3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCiAKKyAgICBkZWYgdGVzdF9mYWls
aW5nX2JpbmRpbmdzX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV3cyA9IFRlc3RCaW5k
aW5nc0VXUygpCisgICAgICAgIHJlc3VsdHMgPSBsYW1iZGEgYTogQmluZGluZ3NUZXN0UmVzdWx0
cyhbIihKUykgVGVzdE1hcExpa2UuaWRsIiwgIihKUykgVGVzdE5vZGUuaWRsIl0pCisgICAgICAg
IG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG4oSlMpIFRlc3RNYXBMaWtlLmlkbFxuKEpT
KSBUZXN0Tm9kZS5pZGwiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMs
IG1lc3NhZ2UpCisKIAogY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJbmNvbmNs
dXNpdmVKU0NSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgogICAgIGRlZiBfdGVzdF9w
YXRjaChzZWxmKToKQEAgLTEwNCw2ICsxMTcsMTMgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVt
VGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgICAgICJidWlsZF9zdHlsZSI6IGV3cy5idWlsZF9z
dHlsZSgpLAogICAgICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCksCiAgICAgICAgIH0KKwor
ICAgICAgICBpZiBld3Muc2hvdWxkX2J1aWxkOgorICAgICAgICAgICAgYnVpbGRfbGluZSA9ICJS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5v
LWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9
JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9saW5lID0gIiIKKyAg
ICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1snYnVpbGRfbGluZSddID0gYnVpbGRfbGluZQorCiAg
ICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQt
dGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1
aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cwogICAgICAgICBlbHNl
OgpAQCAtMTIzLDggKzE0Myw3IEBAIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0CiBSdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9y
dClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2
ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1n
cm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzog
d2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAt
LW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXAp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi0lKHJ1bl90ZXN0c19saW5lKXMlKHJl
c3VsdF9saW5lcylzIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKKyUoYnVpbGRfbGluZSlzJShy
dW5fdGVzdHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMs
CiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNz
YWdlXG4iLAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0RXJyb3Ig
ZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5w
eQppbmRleCBmZjY5NjQxYTEzNTA2MWZkMWU2N2ExMDYzZjBlYWZlYmYwYmRiZjJkLi5hNmMwOWUx
Yzk0YjU1OTFiY2Q2OWQwZDFjODQ2NTdiNjZjNDM0NGEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQpAQCAt
MzcsNiArMzcsMTEgQEAgY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgog
ICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCisgICAgYmluZGluZ3NfcGF0
aHMgPSBbCisgICAgICAgICJTb3VyY2UvV2ViQ29yZSIsCisgICAgICAgICJUb29scyIsCisgICAg
XQorCiAgICAganNjX3BhdGhzID0gWwogICAgICAgICAiSlNUZXN0cy8iLAogICAgICAgICAiU291
cmNlL0phdmFTY3JpcHRDb3JlLyIsCkBAIC01MiwxMiArNTcsMTMgQEAgY2xhc3MgQ2hlY2tQYXRj
aFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgogICAgIF0KIAogICAgIGdyb3VwX3RvX3BhdGhzX21h
cHBpbmcgPSB7CisgICAgICAgICdiaW5kaW5ncyc6IGJpbmRpbmdzX3BhdGhzLAogICAgICAgICAn
anNjJzoganNjX3BhdGhzLAogICAgIH0KIAogICAgIGRlZiBfY2hhbmdlc19hcmVfcmVsZXZhbnQo
c2VsZiwgY2hhbmdlZF9maWxlcyk6CiAgICAgICAgICMgSW4gdGhlIGRlZmF1bHQgY2FzZSwgYWxs
IHBhdGNoZXMgYXJlIHJlbGV2YW50Ci0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgIT0g
J2pzYyc6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgbm90IGluIHNlbGYuZ3JvdXBf
dG9fcGF0aHNfbWFwcGluZzoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgcGF0
dGVybnMgPSBzZWxmLmdyb3VwX3RvX3BhdGhzX21hcHBpbmdbc2VsZi5fb3B0aW9ucy5ncm91cF0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVz
dC5weQppbmRleCA0OTMwYWFiNzQxODRiNGY3M2NkMzI4YjA0NzYxMzM2YWNlNmEyMDhlLi42YzA2
NjY4NzVlZDE1ZjcyMTdiYzkyMWEzY2FjMDkzMGMwZTg2ZGI5IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0yNTYsMyAr
MjU2LDI5IEBAIFRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgogICAg
ICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9v
bHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnLCAnLS1qc29uLW91dHB1dD0vdG1wL2JpbmRp
bmdzX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhw
ZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRf
YmluZGluZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9j
a19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdy
b3VwID0gImJpbmRpbmdzIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1U
cnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJTb3VyY2UvV2Vi
Q29yZS9mZWF0dXJlcy5qc29uIiwgIlNvdXJjZS9DaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1F
OiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMg
dG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVk
X3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNo
UmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIi
IkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUo
KS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBl
Y3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2JpbmRpbmdzKHNl
bGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9
IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJiaW5k
aW5ncyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAg
ICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiU291cmNlL0phdmFTY3JpcHRDb3Jl
L01ha2VmaWxlIiwgIlNvdXJjZS9DaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2gg
dG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBE
ZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNl
KHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5n
IHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNo
YW5nZXMuCisiIiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303745</attachid>
            <date>2017-03-07 17:19:50 -0800</date>
            <delta_ts>2017-03-09 15:29:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170307171950.patch</filename>
            <type>text/plain</type>
            <size>25548</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWQzMDYxMTBlYWI2YTRlOGU5YjNiNjA0N2NhYTljMjdl
YWQyOTAzMi4uNTY0NzEyN2NmZWY3NjAyNWQ3YmUyNjFhMmY3YmYxZDhlZDhlMTczOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE3LTAzLTA3ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3MgRVdTCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGJpbmRpbmdzLWV3cy4gQ2FuIHRl
c3Qgd2l0aG91dCBidWlsZGluZzsgc2hvdWxkX2J1aWxkID0gRmFsc2UuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHk6CisgICAgICAg
IChCaW5kaW5nc1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAg
ICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6IERpdHRvLgorICAg
ICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5pc19zdWJzZXQpOiBEaXR0by4KKyAgICAgICAgKEJp
bmRpbmdzVGVzdFJlc3VsdHMuZXF1YWxzKTogRGl0dG8uCisgICAgICAgIChCaW5kaW5nc1Rlc3RS
ZXN1bHRzLmFsbF9wYXNzZWQpOiBEaXR0by4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMu
ZmFpbGluZ190ZXN0cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQmluZGluZ3NU
ZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogUmVtb3ZlZCAnZXJyb3Jz
Jy4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0
cmluZ19zdWNjZXNzKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrLl9faW5pdF9fKTogQWRkIHNob3VsZF9idWlsZCBwYXJhbWV0ZXIuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IENoZWNrIHNob3VsZF9idWlsZCBi
ZWZvcmUgY2FsbGluZyBzZWxmLl9idWlsZCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0JpbmRpbmdzRWFybHlX
YXJuaW5nU3lzdGVtKTogQmFzZWQgb2YgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbS4gTW9ja2Vk
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tCaW5kaW5nc0Vh
cmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1v
Y2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBSZXR1cm5zIHRlc3Qg
cmVzdWx0cyBwcm92aWRlZCBieSB1cywgaW5zdGVhZCBvZiBKU09OIG91dHB1dC4KKyAgICAgICAg
KEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IENsYXNzIHRvIHRlc3QgcmV0cnkgbG9n
aWMgaW4gYmVsb3cgc2l0dWF0aW9ucy4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lz
dGVtVGVzdC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgTm9uZSBvciBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24uCisgICAgICAgIChCaW5k
aW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRj
aCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChC
aW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVhbiBwYXRjaCBvbiBy
ZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2lu
ZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAoQmluZGlu
Z3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6
IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVl
KTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlmIHNob3VsZF9idWls
ZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgQmluZGluZ3MgdGVz
dHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6IElmIHRlc3RzIGZh
aWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5nc190ZXN0cy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
LnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1
ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdzIEVXUy4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IFBhc3Mgc2hvdWxk
X2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9h
ZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRydWUgYnkgZGVmYXVs
dCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VXUyk6IEJpbmRpbmdz
IEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ19iaW5kaW5n
c190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRvIEJ1Z3ppbGxhLgor
ICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBlY3RlZF9sb2dzKTog
Tm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxkIGxpbmUgb3B0aW9u
YWwuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxl
dmFuY2UucHk6CisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRkIGJpbmRpbmdzIHBh
dGhzLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5fY2hhbmdlc19hcmVfcmVsZXZhbnQp
OiBDbGVhbmVyIHdheSB0byBjaGVjayBpZiB3ZSBzaG91bGQgcGVyZm9ybSB0aGlzIHN0ZXAuIAor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTog
QWRkIHVuaXQgdGVzdHMgZm9yIEJpbmRpbmdzIEVXUyBwYXRjaCByZWxldmFuY2UuCisgICAgICAg
ICh0ZXN0X3BhdGNoX3JlbGV2YW50X2JpbmRpbmdzKTogVGVzdCBmb3IgcGF0Y2ggcmVsZXZhbnQg
dG8gYmluZGluZ3MuCisgICAgICAgICh0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9iaW5kaW5ncyk6
IFRlc3QgZm9yIHBhdGNoIG5vdCByZWxldmFudCB0byBiaW5kaW5ncy4KKwogMjAxNy0wMy0wNyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
b250ZW50IEV4dGVuc2lvbnNdIFJlbmFtZSAiRG9tYWluIiB0byAiQ29uZGl0aW9uIiB3aGVyZSBh
cHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5q
c29uCmluZGV4IDlmZGNjZTA4ZGY4OTM1MmNiNjFmMDQ1Y2Y3ODZiNmVlZDNmYzdlMDUuLjM3ZGVk
NDM4MmMxMjE3OWRjNTgzYmExNTlkMmIwOGRmMjUyZjM2ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDEyIEBACiAgICAg
ICAgICJuYW1lIjogImpzYy1ld3MiLAogICAgICAgICAiZ3JvdXAiOiAianNjIiwKICAgICAgICAg
InJ1blRlc3RzIjogdHJ1ZQorICAgIH0sCisgICAgIkJpbmRpbmdzIEVXUyI6IHsKKyAgICAgICAg
InBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAiYmluZGluZ3MtZXdzIiwKKyAgICAgICAg
Imdyb3VwIjogImJpbmRpbmdzIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZSwKKyAgICAgICAg
InNob3VsZEJ1aWxkIjogZmFsc2UKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CmluZGV4IDkzOTA0
NTQ3ZGM5YWQyYTYwY2E4NjI0MGE2YWU2NzBlZDUzNjIwY2UuLmUwZjg1Mjc3MzkwYWMwMDA1Yjg2
ZmM5MDZhOTZjOTU4ZGJiYWUzMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CkBAIC0yOCwxMSArMjgsOCBA
QCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgQmluZGluZ3NU
ZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
ZmFpbHVyZXMsIGVycm9ycyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhaWx1cmVzKToKICAg
ICAgICAgc2VsZi5fZmFpbHVyZXMgPSBmYWlsdXJlcwotICAgICAgICBzZWxmLl9lcnJvcnMgPSBl
cnJvcnMKLQotICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMgPSBmYWlsdXJlcyArIGVy
cm9ycwogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xz
LCBzdHJpbmcpOgpAQCAtNDAsMjIgKzM3LDIyIEBAIGNsYXNzIEJpbmRpbmdzVGVzdFJlc3VsdHMo
QWJzdHJhY3RUZXN0UmVzdWx0cyk6CiAgICAgICAgIGlmIG5vdCBwYXJzZWRfcmVzdWx0czoKICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgaWYgJ2ZhaWx1cmVzJyBub3QgaW4gcGFy
c2VkX3Jlc3VsdHMgb3IgJ2Vycm9ycycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICBp
ZiAnZmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0czoKICAgICAgICAgICAgIHJldHVybiBO
b25lCiAKLSAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snZmFpbHVyZXMnXSwgcGFy
c2VkX3Jlc3VsdHNbJ2Vycm9ycyddKQorICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRz
WydmYWlsdXJlcyddKQogCiAgICAgZGVmIGlzX3N1YnNldChzZWxmLCBvdGhlcik6Ci0gICAgICAg
IHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpIDw9IHNldChvdGhlci5fZmFpbHVyZXMpIGFuZCBz
ZXQoc2VsZi5fZXJyb3JzKSA8PSBzZXQob3RoZXIuX2Vycm9ycykKKyAgICAgICAgcmV0dXJuIHNl
dChzZWxmLl9mYWlsdXJlcykgPD0gc2V0KG90aGVyLl9mYWlsdXJlcykKIAogICAgIGRlZiBlcXVh
bHMoc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA9PSBz
ZXQob3RoZXIuX2ZhaWx1cmVzKSBhbmQgc2V0KHNlbGYuX2Vycm9ycykgPT0gc2V0KG90aGVyLl9l
cnJvcnMpCisgICAgICAgIHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpID09IHNldChvdGhlci5f
ZmFpbHVyZXMpCiAKICAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIG5v
dCBzZWxmLl9mYWlsdXJlcyBhbmQgbm90IHNlbGYuX2Vycm9ycworICAgICAgICByZXR1cm4gbm90
IHNlbGYuX2ZhaWx1cmVzCiAKICAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2ZhaWxpbmdfdGVzdF9uYW1lcworICAgICAgICByZXR1cm4gc2VsZi5fZmFp
bHVyZXMKIAogICAgICMgTm8gZGVmaW5lZCBmYWlsdXJlIGxpbWl0IGZvciBiaW5kaW5ncyB0ZXN0
cy4KICAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0
c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5n
c3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4IDNkYWUzZmQyMmE2OThmZjU1NmUzOTNmYzQy
ODViNDMwMzMzODVhN2IuLmNiMTY4MDUyYzYyZmU5OTlkN2NhMTExYmRjNjU3ODMyN2UxYTM3ZTgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rl
c3RyZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0yNywxNyArMjcsMTUgQEAg
ZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRp
bmdzVGVzdFJlc3VsdHMKIAogY2xhc3MgQmluZGluZ3NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6Ci0gICAg
ICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImZhaWx1cmVzIjogW119JwotICAgICAgICBpbmNv
bXBsZXRlX2pzb25fdjIgPSAneyJlcnJvcnMiOltdfScKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0
ZV9qc29uX3YxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBCaW5kaW5nc1Rlc3RS
ZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKyAgICAgICAg
aW5jb21wbGV0ZV9qc29uID0gJ3sia2V5MiI6IFtdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0
ZV9qc29uKSkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmdfc3VjY2VzcyhzZWxm
KToKLSAgICAgICAgbm9fZmFpbHVyZXNfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbXSwgImVycm9y
cyI6W119JwotICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0
cyhbXSwgW10pCisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImZhaWx1cmVzIjogW119
JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEJpbmRp
bmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuYWxsX3Bhc3NlZCgp
KQogCi0gICAgICAgIHRlc3Rfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbImZhaWx1cmUxIl0sICJl
cnJvcnMiOiBbImVycm9yMSIsICJlcnJvcjIiXX0nCi0gICAgICAgIHRlc3RfcmVzdWx0cyA9IEJp
bmRpbmdzVGVzdFJlc3VsdHMoWyJmYWlsdXJlMSJdLCBbImVycm9yMSIsICJlcnJvcjIiXSkKKyAg
ICAgICAgdGVzdF9zdHJpbmcgPSAneyJmYWlsdXJlcyI6IFsiZmFpbHVyZTEiXX0nCisgICAgICAg
IHRlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWyJmYWlsdXJlMSJdKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUodGVzdF9yZXN1bHRzLmVxdWFscyhCaW5kaW5nc1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcodGVzdF9zdHJpbmcpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRl
eCBlY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1Li41YWU1MzAwMTNjODQ2
OTQwNjI0M2I4MGFjN2ExN2ZkNTUxMzFkYmY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0zNSw5
ICszNSwxMCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUoUGF0Y2hBbmFs
eXNpc1Rhc2tEZWxlZ2F0ZSk6CiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRj
aEFuYWx5c2lzVGFzayk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwg
c2hvdWxkX3J1bl90ZXN0cz1UcnVlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUs
IHBhdGNoLCBzaG91bGRfcnVuX3Rlc3RzPVRydWUsIHNob3VsZF9idWlsZD1UcnVlKToKICAgICAg
ICAgUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoKQogICAg
ICAgICBzZWxmLl9zaG91bGRfcnVuX3Rlc3RzID0gc2hvdWxkX3J1bl90ZXN0cworICAgICAgICBz
ZWxmLl9zaG91bGRfYnVpbGQgPSBzaG91bGRfYnVpbGQKIAogICAgIGRlZiB2YWxpZGF0ZShzZWxm
KToKICAgICAgICAgc2VsZi5fcGF0Y2ggPSBzZWxmLl9kZWxlZ2F0ZS5yZWZldGNoX3BhdGNoKHNl
bGYuX3BhdGNoKQpAQCAtNjEsMTAgKzYyLDExIEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRh
c2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmFpc2UgVW5hYmxlVG9BcHBseVBh
dGNoKHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcGF0Y2hfcmVsZXZh
bmNlKCk6CiAgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBwbGljYWJsZShzZWxmLl9wYXRj
aCkKLSAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6Ci0gICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoKQorICAgICAgICBpZiBzZWxm
Ll9zaG91bGRfYnVpbGQ6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKKyAgICAg
ICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBv
cnRfZmFpbHVyZSgpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfcnVuX3Rlc3RzOgogICAg
ICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcGF0Y2goKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eQppbmRleCBhNmFlZjNkYWU4MDExZmFiNTc1ZjJjNTQzMTEwMDE0ZTk3YTZiMjBhLi5jYTg5ZDNh
NDhkZjQ2NzM4MTNjODFkMzg5NjhkMDM1NDZkYjg2NDkyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMjMsNiArMjMsNyBA
QAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuYmluZGluZ3N0ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKQEAg
LTIxNiwzICsyMTcsODIgQEAgY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQog
ICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworCisjIFRoaXMgaXMgdGhlIGRlbGVn
YXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3Mg
TW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyhz
ZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICdiaW5kaW5ncycKKyAgICAgICAgc2VsZi5fcmVz
dWx0c19pbl9vcmRlciA9IFtjbGVhbl90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10K
KworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1
bHRzX2luX29yZGVyLnBvcCgpCisKKworY2xhc3MgQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bh
c3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQor
CisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lz
dGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVn
cy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMgPSBbc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKGZpcnN0X3Rlc3RfcmVzdWx0
cyldCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBw
YXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10pCisg
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0
X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVz
dFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRz
ID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZml4KHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10p
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9p
bmVmZmVjdGl2ZV9wYXRjaChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmlu
ZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0
X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFs
bHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBC
aW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnLCAnVGVz
dE5vZGUuaWRsJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAg
ICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rl
c3ROb2RlLmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RS
ZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVf
dGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IGFjYTgyZmRlMjY4YzkyMjQ0NjhiM2Q0
NjM4ZDFlZmE1NDZlYWEzZjAuLjI1MzNjMDkzMGYxNmQyMGFmZTEyOTc5NGM4YTBlMjY5MWYyNzFj
ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQpAQCAtMTg2LDEyICsxODYsMTQgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAi
LS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAotICAgICAgICAgICAg
Ii0tYnVpbGQiLAogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50
ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdh
dGUuYnVpbGRfc3R5bGUoKSwKICAgICAgICAgXQogCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5f
ZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5zaG91bGRfYnVpbGQ6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1idWlsZCIpCisKICAgICAgICAgaWYgaGFzYXR0cihzZWxm
Ll9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0l
cyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQogCkBAIC0yMzUsNiArMjM3LDI0IEBAIGNsYXNz
IFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICMgYWxzbyBwcmVzZW50IHdpdGhv
dXQgdGhlIHBhdGNoLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRlZmVyLgogICAgICAgICByZXR1cm4g
RmFsc2UKIAorICAgIGRlZiBfcmV0cnlfYmluZGluZ3NfdGVzdHMoc2VsZik6CisgICAgICAgIGZp
cnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBmaXJz
dF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAgZmlyc3RfZmFpbHVy
ZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisgICAgICAgIGlmIGZpcnN0X3Jl
c3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHNlbGYu
X2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVlX3Jlc3Vs
dHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVhbl90cmVl
X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlm
IGZpcnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25l
LCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKICAgICAjIEZJWE1FOiBBYnN0
cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KICAgICBkZWYgX3JldHJ5
X2pzY190ZXN0cyhzZWxmKToKICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRl
LnRlc3RfcmVzdWx0cygpCkBAIC0zMzgsNiArMzU4LDggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKIAogICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAn
KSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKICAgICAgICAgICAgIHJldHVy
biBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbGlmIGhhc2F0dHIoc2VsZi5fZGVs
ZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJiaW5kaW5ncyI6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfYmluZGluZ3NfdGVzdHMoKQogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdh
cm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDY4ZjFkODAzMjBjYjI1N2UyNmJhZjg0MDFmYjdhYTUx
MjA0MTlkYzEuLjA5ODNhODc3ZTg5MmFkYTAxN2JkZDdkMjkzYzNmZmY2NDAxNTE1NDIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdz
eXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbS5weQpAQCAtMzcsNiArMzcsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
b25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5nU3lzdGVtVGFzaywg
RWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmJp
bmRpbmdzdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IEJpbmRpbmdzVGVzdFJlc3VsdHNSZWFkZXIK
IGZyb20gd2Via2l0cHkudG9vbC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExh
eW91dFRlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1
bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElz
Tm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCkBAIC01OSw2ICs2MCw4IEBAIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2tEZWxlCiAKICAgICAgICAgaWYgc2VsZi5ncm91cCgpID09ICJqc2MiOgogICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQuanNjX3Jlc3VsdHNfZGlyZWN0b3J5KCkpCisgICAgICAg
IGVsaWYgc2VsZi5ncm91cCgpID09ICJiaW5kaW5ncyI6CisgICAgICAgICAgICBzZWxmLl90ZXN0
X3Jlc3VsdHNfcmVhZGVyID0gQmluZGluZ3NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBz
ZWxmLl9wb3J0LmpzY19yZXN1bHRzX2RpcmVjdG9yeSgpKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2Rp
cmVjdG9yeSgpKQogCkBAIC04OCw3ICs5MSw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAK
ICAgICAjIFRoaXMgZXhpc3RzIGZvciBtb2NraW5nCiAgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxm
LCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBh
dGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKyAgICAgICAgcmV0dXJuIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzLCBzZWxmLnNo
b3VsZF9idWlsZCkKIAogICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2socGF0Y2gpCkBAIC0xNzQsNSArMTc3LDYgQEAgY2xh
c3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlX
YXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcu
Z2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmln
LmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKICAgICAgICAgICAgICAgICAnX2dyb3Vw
JzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKKyAgICAgICAgICAgICAgICAnc2hvdWxkX2J1
aWxkJzogY29uZmlnLmdldCgnc2hvdWxkQnVpbGQnLCBUcnVlKSwKICAgICAgICAgICAgIH0pKQog
ICAgICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3Qu
cHkKaW5kZXggZjhiZWRkYzQ5YWU4ZWFmY2FjMGZlZDY5OGQzZmRhZWUwYzhhZWM1Yi4uNTE4YWJh
YTc1ZjVhNjgyY2M0NzJjOWJlM2Y5NGY5NjIzODMwNzYwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5n
c3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC0zMCw2ICszMCw3IEBACiBmcm9tIHdlYmtpdHB5LnRoaXJk
cGFydHkubW9jayBpbXBvcnQgTW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQg
SG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAorZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRpbmdz
VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBv
cnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVz
dWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC01Niw2ICs1NywxMiBAQCBj
bGFzcyBUZXN0SlNDRVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKICAgICBfZ3JvdXAg
PSAianNjIgogCiAKK2NsYXNzIFRlc3RCaW5kaW5nc0VXUyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbSk6CisgICAgcG9ydF9uYW1lID0gIm1hYyIKKyAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisg
ICAgX2dyb3VwID0gImJpbmRpbmdzIgorCisKIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lz
dGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICBkZWYgX3Rlc3RfbWVzc2FnZShzZWxmLCBld3MsIHJl
c3VsdHMsIG1lc3NhZ2UpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCkBA
IC04MSw2ICs4OCwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVl
dWVzVGVzdCk6CiAgICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFt
bC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlw
ZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiCiAgICAgICAgIHNlbGYu
X3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCiAKKyAgICBkZWYgdGVzdF9mYWls
aW5nX2JpbmRpbmdzX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV3cyA9IFRlc3RCaW5k
aW5nc0VXUygpCisgICAgICAgIHJlc3VsdHMgPSBsYW1iZGEgYTogQmluZGluZ3NUZXN0UmVzdWx0
cyhbIihKUykgVGVzdE1hcExpa2UuaWRsIiwgIihKUykgVGVzdE5vZGUuaWRsIl0pCisgICAgICAg
IG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG4oSlMpIFRlc3RNYXBMaWtlLmlkbFxuKEpT
KSBUZXN0Tm9kZS5pZGwiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMs
IG1lc3NhZ2UpCisKIAogY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJbmNvbmNs
dXNpdmVKU0NSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgogICAgIGRlZiBfdGVzdF9w
YXRjaChzZWxmKToKQEAgLTEwNCw2ICsxMTcsMTMgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVt
VGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgICAgICJidWlsZF9zdHlsZSI6IGV3cy5idWlsZF9z
dHlsZSgpLAogICAgICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCksCiAgICAgICAgIH0KKwor
ICAgICAgICBpZiBld3Muc2hvdWxkX2J1aWxkOgorICAgICAgICAgICAgYnVpbGRfbGluZSA9ICJS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5v
LWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9
JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9saW5lID0gIiIKKyAg
ICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1snYnVpbGRfbGluZSddID0gYnVpbGRfbGluZQorCiAg
ICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQt
dGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1
aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cwogICAgICAgICBlbHNl
OgpAQCAtMTIzLDggKzE0Myw3IEBAIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0CiBSdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9y
dClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2
ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1n
cm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzog
d2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAt
LW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXAp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi0lKHJ1bl90ZXN0c19saW5lKXMlKHJl
c3VsdF9saW5lcylzIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKKyUoYnVpbGRfbGluZSlzJShy
dW5fdGVzdHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMs
CiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNz
YWdlXG4iLAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0RXJyb3Ig
ZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5w
eQppbmRleCBmZjY5NjQxYTEzNTA2MWZkMWU2N2ExMDYzZjBlYWZlYmYwYmRiZjJkLi5hNmMwOWUx
Yzk0YjU1OTFiY2Q2OWQwZDFjODQ2NTdiNjZjNDM0NGEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQpAQCAt
MzcsNiArMzcsMTEgQEAgY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgog
ICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCisgICAgYmluZGluZ3NfcGF0
aHMgPSBbCisgICAgICAgICJTb3VyY2UvV2ViQ29yZSIsCisgICAgICAgICJUb29scyIsCisgICAg
XQorCiAgICAganNjX3BhdGhzID0gWwogICAgICAgICAiSlNUZXN0cy8iLAogICAgICAgICAiU291
cmNlL0phdmFTY3JpcHRDb3JlLyIsCkBAIC01MiwxMiArNTcsMTMgQEAgY2xhc3MgQ2hlY2tQYXRj
aFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgogICAgIF0KIAogICAgIGdyb3VwX3RvX3BhdGhzX21h
cHBpbmcgPSB7CisgICAgICAgICdiaW5kaW5ncyc6IGJpbmRpbmdzX3BhdGhzLAogICAgICAgICAn
anNjJzoganNjX3BhdGhzLAogICAgIH0KIAogICAgIGRlZiBfY2hhbmdlc19hcmVfcmVsZXZhbnQo
c2VsZiwgY2hhbmdlZF9maWxlcyk6CiAgICAgICAgICMgSW4gdGhlIGRlZmF1bHQgY2FzZSwgYWxs
IHBhdGNoZXMgYXJlIHJlbGV2YW50Ci0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgIT0g
J2pzYyc6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgbm90IGluIHNlbGYuZ3JvdXBf
dG9fcGF0aHNfbWFwcGluZzoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgcGF0
dGVybnMgPSBzZWxmLmdyb3VwX3RvX3BhdGhzX21hcHBpbmdbc2VsZi5fb3B0aW9ucy5ncm91cF0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVz
dC5weQppbmRleCA0OTMwYWFiNzQxODRiNGY3M2NkMzI4YjA0NzYxMzM2YWNlNmEyMDhlLi42YzA2
NjY4NzVlZDE1ZjcyMTdiYzkyMWEzY2FjMDkzMGMwZTg2ZGI5IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0yNTYsMyAr
MjU2LDI5IEBAIFRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgogICAg
ICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9v
bHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnLCAnLS1qc29uLW91dHB1dD0vdG1wL2JpbmRp
bmdzX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhw
ZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRf
YmluZGluZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9j
a19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdy
b3VwID0gImJpbmRpbmdzIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1U
cnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJTb3VyY2UvV2Vi
Q29yZS9mZWF0dXJlcy5qc29uIiwgIlNvdXJjZS9DaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1F
OiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMg
dG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVk
X3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNo
UmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIi
IkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUo
KS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBl
Y3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2JpbmRpbmdzKHNl
bGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9
IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJiaW5k
aW5ncyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAg
ICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiU291cmNlL0phdmFTY3JpcHRDb3Jl
L01ha2VmaWxlIiwgIlNvdXJjZS9DaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2gg
dG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBE
ZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNl
KHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5n
IHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNo
YW5nZXMuCisiIiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304001</attachid>
            <date>2017-03-09 15:29:43 -0800</date>
            <delta_ts>2017-03-09 16:23:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170309152942.patch</filename>
            <type>text/plain</type>
            <size>45746</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzUxNzg4OWEzM2Y4YmMzYzQyNDc3NTM2ZWIyZTI0ZTM2
NmI1ZDQ0OC4uZTkzYjQyZmQ5ZWI5MmQ0NzhjYWFiYTY3ZTcwNDQ2NDE1NjBmZjNkZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE3LTAzLTA5ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3MgRVdTCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGJpbmRpbmdzLWV3cy4gQ2FuIHRl
c3Qgd2l0aG91dCBidWlsZGluZzsgc2hvdWxkX2J1aWxkID0gRmFsc2UuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHk6CisgICAgICAg
IChCaW5kaW5nc1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAg
ICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6IERpdHRvLgorICAg
ICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5pc19zdWJzZXQpOiBEaXR0by4KKyAgICAgICAgKEJp
bmRpbmdzVGVzdFJlc3VsdHMuZXF1YWxzKTogRGl0dG8uCisgICAgICAgIChCaW5kaW5nc1Rlc3RS
ZXN1bHRzLmFsbF9wYXNzZWQpOiBEaXR0by4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMu
ZmFpbGluZ190ZXN0cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQmluZGluZ3NU
ZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogUmVtb3ZlZCAnZXJyb3Jz
Jy4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0
cmluZ19zdWNjZXNzKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrLl9faW5pdF9fKTogQWRkIHNob3VsZF9idWlsZCBwYXJhbWV0ZXIuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IENoZWNrIHNob3VsZF9idWlsZCBi
ZWZvcmUgY2FsbGluZyBzZWxmLl9idWlsZCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weTogUmVuYW1lZCBmcm9tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5LgorICAgICAgICAoTW9ja0Jp
bmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtKTogQmFzZWQgb2YgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS4gTW9ja2VkIHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1v
Y2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4K
KyAgICAgICAgKE1vY2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBS
ZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1cywgaW5zdGVhZCBvZiBKU09OIG91dHB1
dC4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IENsYXNzIHRvIHRl
c3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0aW9ucy4KKyAgICAgICAgKEJpbmRpbmdzRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2Ug
aWYgTm9uZSBvciBvciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEJpbmRpbmdz
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24uCisg
ICAgICAgIChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2Up
OiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUu
CisgICAgICAgIChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVh
biBwYXRjaCBvbiByZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVt
VGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAg
ICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVj
dGl2ZV9wYXRjaCk6IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdz
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3Bh
dGNoX2FuZF90cmVlKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlm
IHNob3VsZF9idWlsZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQ
YXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3Ig
QmluZGluZ3MgdGVzdHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6
IElmIHRlc3RzIGZhaWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5n
c190ZXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVn
aW5fd29ya19xdWV1ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdz
IEVXUy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6
IFBhc3Mgc2hvdWxkX2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRy
dWUgYnkgZGVmYXVsdCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VX
Uyk6IEJpbmRpbmdzIEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFp
bGluZ19iaW5kaW5nc190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRv
IEJ1Z3ppbGxhLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKTogTm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxk
IGxpbmUgb3B0aW9uYWwuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2No
ZWNrcGF0Y2hyZWxldmFuY2UucHk6CisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRk
IGJpbmRpbmdzIHBhdGhzLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5fY2hhbmdlc19h
cmVfcmVsZXZhbnQpOiBDbGVhbmVyIHdheSB0byBjaGVjayBpZiB3ZSBzaG91bGQgcGVyZm9ybSB0
aGlzIHN0ZXAuIAorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191
bml0dGVzdC5weTogQWRkIHVuaXQgdGVzdHMgZm9yIEJpbmRpbmdzIEVXUyBwYXRjaCByZWxldmFu
Y2UuCisgICAgICAgICh0ZXN0X3BhdGNoX3JlbGV2YW50X2JpbmRpbmdzKTogVGVzdCBmb3IgcGF0
Y2ggcmVsZXZhbnQgdG8gYmluZGluZ3MuCisgICAgICAgICh0ZXN0X3BhdGNoX25vdF9yZWxldmFu
dF9iaW5kaW5ncyk6IFRlc3QgZm9yIHBhdGNoIG5vdCByZWxldmFudCB0byBiaW5kaW5ncy4KKwog
MjAxNy0wMy0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
R3VhcmQgQ3JlZGVudGlhbCBNYW5hZ2VtZW50IGltcGxlbWVudGF0aW9uIGJlaGluZCBhIHJ1bnRp
bWUgZW5hYmxlZCBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9ld3MuanNvbgppbmRleCBiNmE1YmM3ODdlOWZmYTQ4OGY4OTFkYTliOWU3YjY4OTFl
NTc4YThiLi4xMWQ4NmU1MjBjZmUxMmQ1NzkxNjQ4NGYwM2Y2M2Y0NmE2NmVkYTM0IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MSw1ICs1
MSwxMiBAQAogICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKICAgICAgICAgImdyb3VwIjogImpz
YyIsCiAgICAgICAgICJydW5UZXN0cyI6IHRydWUKKyAgICB9LAorICAgICJCaW5kaW5ncyBFV1Mi
OiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImJpbmRpbmdzLWV3
cyIsCisgICAgICAgICJncm91cCI6ICJiaW5kaW5ncyIsCisgICAgICAgICJydW5UZXN0cyI6IHRy
dWUsCisgICAgICAgICJzaG91bGRCdWlsZCI6IGZhbHNlCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5w
eQppbmRleCA5MzkwNDU0N2RjOWFkMmE2MGNhODYyNDBhNmFlNjcwZWQ1MzYyMGNlLi5lMGY4NTI3
NzM5MGFjMDAwNWI4NmZjOTA2YTk2Yzk1OGRiYmFlMzE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weQpAQCAt
MjgsMTEgKzI4LDggQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNs
YXNzIEJpbmRpbmdzVGVzdFJlc3VsdHMoQWJzdHJhY3RUZXN0UmVzdWx0cyk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZhaWx1cmVzLCBlcnJvcnMpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
YWlsdXJlcyk6CiAgICAgICAgIHNlbGYuX2ZhaWx1cmVzID0gZmFpbHVyZXMKLSAgICAgICAgc2Vs
Zi5fZXJyb3JzID0gZXJyb3JzCi0KLSAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzID0g
ZmFpbHVyZXMgKyBlcnJvcnMKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiByZXN1bHRzX2Zy
b21fc3RyaW5nKGNscywgc3RyaW5nKToKQEAgLTQwLDIyICszNywyMiBAQCBjbGFzcyBCaW5kaW5n
c1Rlc3RSZXN1bHRzKEFic3RyYWN0VGVzdFJlc3VsdHMpOgogICAgICAgICBpZiBub3QgcGFyc2Vk
X3Jlc3VsdHM6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIGlmICdmYWlsdXJl
cycgbm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdlcnJvcnMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0
czoKKyAgICAgICAgaWYgJ2ZhaWx1cmVzJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHM6CiAgICAgICAg
ICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIHJldHVybiBjbHMocGFyc2VkX3Jlc3VsdHNbJ2Zh
aWx1cmVzJ10sIHBhcnNlZF9yZXN1bHRzWydlcnJvcnMnXSkKKyAgICAgICAgcmV0dXJuIGNscyhw
YXJzZWRfcmVzdWx0c1snZmFpbHVyZXMnXSkKIAogICAgIGRlZiBpc19zdWJzZXQoc2VsZiwgb3Ro
ZXIpOgotICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA8PSBzZXQob3RoZXIuX2Zh
aWx1cmVzKSBhbmQgc2V0KHNlbGYuX2Vycm9ycykgPD0gc2V0KG90aGVyLl9lcnJvcnMpCisgICAg
ICAgIHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpIDw9IHNldChvdGhlci5fZmFpbHVyZXMpCiAK
ICAgICBkZWYgZXF1YWxzKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNldChzZWxmLl9m
YWlsdXJlcykgPT0gc2V0KG90aGVyLl9mYWlsdXJlcykgYW5kIHNldChzZWxmLl9lcnJvcnMpID09
IHNldChvdGhlci5fZXJyb3JzKQorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA9
PSBzZXQob3RoZXIuX2ZhaWx1cmVzKQogCiAgICAgZGVmIGFsbF9wYXNzZWQoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBub3Qgc2VsZi5fZmFpbHVyZXMgYW5kIG5vdCBzZWxmLl9lcnJvcnMKKyAgICAg
ICAgcmV0dXJuIG5vdCBzZWxmLl9mYWlsdXJlcwogCiAgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2ZhaWx1cmVzCiAKICAgICAjIE5vIGRlZmluZWQgZmFpbHVyZSBsaW1pdCBmb3Ig
YmluZGluZ3MgdGVzdHMuCiAgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNl
bGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRp
bmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCAzZGFlM2ZkMjJhNjk4
ZmY1NTZlMzkzZmM0Mjg1YjQzMDMzMzg1YTdiLi5jYjE2ODA1MmM2MmZlOTk5ZDdjYTExMWJkYzY1
NzgzMjdlMWEzN2U4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpAQCAtMjcs
MTcgKzI3LDE1IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5iaW5kaW5nc3Rlc3RyZXN1bHRz
IGltcG9ydCBCaW5kaW5nc1Rlc3RSZXN1bHRzCiAKIGNsYXNzIEJpbmRpbmdzVGVzdFJlc3VsdHNU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5n
KHNlbGYpOgotICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJmYWlsdXJlcyI6IFtdfScK
LSAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YyID0gJ3siZXJyb3JzIjpbXX0nCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3Ry
aW5nKGluY29tcGxldGVfanNvbl92MSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
QmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92
MikpCisgICAgICAgIGluY29tcGxldGVfanNvbiA9ICd7ImtleTIiOiBbXX0nCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3Ry
aW5nKGluY29tcGxldGVfanNvbikpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5n
X3N1Y2Nlc3Moc2VsZik6Ci0gICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImZhaWx1cmVz
IjogW10sICJlcnJvcnMiOltdfScKLSAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEJpbmRp
bmdzVGVzdFJlc3VsdHMoW10sIFtdKQorICAgICAgICBub19mYWlsdXJlc19zdHJpbmcgPSAneyJm
YWlsdXJlcyI6IFtdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEJpbmRpbmdzVGVz
dFJlc3VsdHMoW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRz
LmVxdWFscyhCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVy
ZXNfc3RyaW5nKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRz
LmFsbF9wYXNzZWQoKSkKIAotICAgICAgICB0ZXN0X3N0cmluZyA9ICd7ImZhaWx1cmVzIjogWyJm
YWlsdXJlMSJdLCAiZXJyb3JzIjogWyJlcnJvcjEiLCAiZXJyb3IyIl19JwotICAgICAgICB0ZXN0
X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiZmFpbHVyZTEiXSwgWyJlcnJvcjEiLCAi
ZXJyb3IyIl0pCisgICAgICAgIHRlc3Rfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbImZhaWx1cmUx
Il19JworICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiZmFpbHVy
ZTEiXSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRlc3RfcmVzdWx0cy5lcXVhbHMoQmluZGlu
Z3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKHRlc3Rfc3RyaW5nKSkpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRh
c2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHkKaW5kZXggZWNmYWNkMDExYmU4ODNiNGJiMWU1YzdkN2RmZmRiZGNiNDU5ZGUzNS4u
NWFlNTMwMDEzYzg0Njk0MDYyNDNiODBhYzdhMTdmZDU1MTMxZGJmNiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFz
ay5weQpAQCAtMzUsOSArMzUsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVn
YXRlKFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUpOgogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5
c3RlbVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWxl
Z2F0ZSwgcGF0Y2gsIHNob3VsZF9ydW5fdGVzdHM9VHJ1ZSk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGRlbGVnYXRlLCBwYXRjaCwgc2hvdWxkX3J1bl90ZXN0cz1UcnVlLCBzaG91bGRfYnVpbGQ9
VHJ1ZSk6CiAgICAgICAgIFBhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKHNlbGYsIGRlbGVnYXRl
LCBwYXRjaCkKICAgICAgICAgc2VsZi5fc2hvdWxkX3J1bl90ZXN0cyA9IHNob3VsZF9ydW5fdGVz
dHMKKyAgICAgICAgc2VsZi5fc2hvdWxkX2J1aWxkID0gc2hvdWxkX2J1aWxkCiAKICAgICBkZWYg
dmFsaWRhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdhdGUucmVm
ZXRjaF9wYXRjaChzZWxmLl9wYXRjaCkKQEAgLTYxLDEwICs2MiwxMSBAQCBjbGFzcyBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAgICAgIHJhaXNlIFVu
YWJsZVRvQXBwbHlQYXRjaChzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNr
X3BhdGNoX3JlbGV2YW5jZSgpOgogICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdEFwcGxpY2Fi
bGUoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgotICAgICAgICAg
ICAgaWYgbm90IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2goKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKCkKKyAg
ICAgICAgaWYgc2VsZi5fc2hvdWxkX2J1aWxkOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX2J1
aWxkKCk6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2go
KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmV0
dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoKQogICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX3J1
bl90ZXN0czoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBzZWxmLl90
ZXN0X3BhdGNoKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
anNjZXdzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nl
d3NfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YWVmM2RhZTgw
MTFmYWI1NzVmMmM1NDMxMTAwMTRlOTdhNmIyMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nl
d3NfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQg
SlNDVGVzdFJlc3VsdHMKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IFNjcmlwdEVycm9yCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNr
IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVt
IGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQotZnJvbSB3ZWJraXRweS50b29sLm1v
Y2t0b29sIGltcG9ydCBNb2NrVG9vbAotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCi0KLQotY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9h
bGxfdGVzdHMpOgotICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCi0gICAgICAgIHNl
bGYuX3BhdGNoID0gcGF0Y2gKLSAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQotICAg
ICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKLSAg
ICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQotICAgICAgICBz
ZWxmLmVycm9yID0gTm9uZQotICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMg
PSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKLSAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQg
PSAwCi0gICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCi0KLSAgICBkZWYgX3Rlc3Qo
c2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKLQotICAgICAgICBpZiBz
ZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKLSAgICAgICAgICAg
IHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCdS
ZWdyZXNzaW9uIHRlc3QnKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBfYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291
bnQgKz0gMQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHZhbGlkYXRlKHNlbGYpOgot
ICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKLQotCi0jIFRoaXMgaXMgdGhlIGRlbGVn
YXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgotY2xhc3Mg
TW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKLSAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0uX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fZ3JvdXAgPSAnanNjJwotICAgICAg
ICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQotCi0gICAgZGVmIHRlc3RfcmVzdWx0cyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKLQotCi1j
bGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBk
ZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKLSAgICAgICAg
aWYgcmVzdWx0cyA9PSBOb25lOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJl
dHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQotCi0gICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cyk6Ci0gICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90ZXN0
X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLSAgICAg
ICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKLSAgICAgICAgcGF0Y2ggPSB0
b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3NlY29u
ZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCi0gICAgICAgIHJldHVybiBNb2Nr
UGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMp
Ci0KLSAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotCi0gICAgZGVmIHRlc3RfdGVzdF9m
YWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgot
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQotCi0gICAgZGVmIHRlc3Rf
Zml4KHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYp
OgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydm
YWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
LSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9l
ZmZlY3RpdmVfcGF0Y2goc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgY2xl
YW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAn
ZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVz
X2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQotCi0gICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChz
ZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQotICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAx
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0
X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWls
dXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQotICAgICAgICBj
bGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0KLSAgICBk
ZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10p
Ci0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKLSAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0KLSAg
ICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToKLSAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5q
cyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQotICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAyKQotCi0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIo
c2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydmYWlsdXJlMi5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUocmV0dXJuX3ZhbHVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMSkKLQotICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5f
dHJlZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBz
ZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
LSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgdGFzay5fdGVzdF9wYXRj
aCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQot
Ci0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgotICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
LmpzJ10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKLSAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5Cmlu
ZGV4IGFjYTgyZmRlMjY4YzkyMjQ0NjhiM2Q0NjM4ZDFlZmE1NDZlYWEzZjAuLjZlMmIzOTZjNDVl
YThmMDU1N2Y1NzlmYWUyNzYyNmYwOWM4YTVlMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMTg2LDEyICsxODYs
MTQgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICJidWls
ZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAi
LS1uby11cGRhdGUiLAotICAgICAgICAgICAgIi0tYnVpbGQiLAogICAgICAgICAgICAgIi0tdGVz
dCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVp
bGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKICAgICAgICAgXQog
CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnc2hvdWxkX2J1aWxkJykg
b3Igc2VsZi5fZGVsZWdhdGUuc2hvdWxkX2J1aWxkOgorICAgICAgICAgICAgYXJncy5hcHBlbmQo
Ii0tYnVpbGQiKQorCiAgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcp
OgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUu
Z3JvdXAoKSkKIApAQCAtMjM1LDYgKzIzNywzMCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhv
YmplY3QpOgogICAgICAgICAjIGFsc28gcHJlc2VudCB3aXRob3V0IHRoZSBwYXRjaCwgc28gd2Ug
ZG9uJ3QgbmVlZCB0byBkZWZlci4KICAgICAgICAgcmV0dXJuIEZhbHNlCiAKKyAgICBkZWYgX3Jl
dHJ5X2JpbmRpbmdzX3Rlc3RzKHNlbGYpOgorICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5f
ZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5m
YWlsdXJlX3N0YXR1c19pZAorICAgICAgICBpZiBmaXJzdF9yZXN1bHRzIGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIFNvbWUgZXJyb3JzIGFyZSBub3QgY29y
cmVjdGx5IHJlcG9ydGVkIGJ5IHRoZSBydW4tYmluZGluZ3MtdGVzdHMgc2NyaXB0CisgICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTQ0OQorICAgICAg
ICAjIEluIGFmZmVjdGVkIGNhc2VzLCBhZGQgYSBtZXNzYWdlIHJlcXVlc3RpbmcgdG8gbG9vayBh
dCB0ZXN0IG91dHB1dCBpbnN0ZWFkLgorICAgICAgICBpZiBub3QgZmlyc3RfcmVzdWx0cy5mYWls
dXJlczoKKyAgICAgICAgICAgIGZpcnN0X3Jlc3VsdHMuZmFpbHVyZXMgPSBbIlBsZWFzZSBzZWUg
dGVzdCBvdXRwdXQgZm9yIHJlc3VsdHMiXQorCisgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0
X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxl
Z2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVhbl90cmVlX3Jlc3VsdHMgaXMgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMu
aXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
CisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRz
LCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9u
IHBhcnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KICAgICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxm
KToKICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CkBAIC0zMzgsNiArMzY0LDggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKIAog
ICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVs
ZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXRyeV9q
c2NfdGVzdHMoKQorICAgICAgICBlbGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcp
IGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJiaW5kaW5ncyI6CisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5fcmV0cnlfYmluZGluZ3NfdGVzdHMoKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YzFiNDQwZGYyYjhkZGE0YTNhYTM5OWI3OGM2YzEzYTFiNjE2NDU4Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3Vu
aXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjk3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRpbmdzVGVzdFJl
c3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlND
VGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGlt
cG9ydCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGlt
cG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0
b29sIGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CisKKworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYu
X3BhdGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAg
ICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxm
LmVycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBw
YXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAw
CisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCisKKyAgICBkZWYgX3Rlc3Qoc2Vs
Zik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKworICAgICAgICBpZiBzZWxm
Ll9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKKyAgICAgICAgICAgIHJl
dHVybiBUcnVlCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCdSZWdy
ZXNzaW9uIHRlc3QnKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVpbGRfYW5k
X3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQg
Kz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgorICAg
ICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRlbGVnYXRl
IHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3MgTW9j
a0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAnanNjJworICAgICAgICBz
ZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFz
cyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
X3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAgICAgaWYg
cmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVy
biByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6
CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90ZXN0X3Jl
c3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKyAgICAgICAg
dG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2ggPSB0b29s
LmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0Y2hlc19wYXNzZWRfYWxs
X3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3NlY29uZF90
ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAgIHJldHVybiBNb2NrUGF0
Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpCisK
KyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRl
X3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9mYWls
dXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAg
ICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZml4
KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J0ZhaWwuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWls
dXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVy
ZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZl
Y3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5f
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2lu
X3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAzKQorCisgICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Nl
Y29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJl
Mi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYg
dGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToKKyAgICAgICAg
Zmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQor
ICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNv
bmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5f
dmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAy
KQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIoc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9y
dW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJl
ZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNv
bmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisg
ICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpz
J10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworCitjbGFzcyBN
b2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0p
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3Rf
cmVzdWx0cyk6CisgICAgICAgIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNl
bGYpCisgICAgICAgIHNlbGYuX2dyb3VwID0gJ2JpbmRpbmdzJworICAgICAgICBzZWxmLl9yZXN1
bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQor
CisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3Vs
dHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFzcyBCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFz
c2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1bHRzID09IE5vbmU6CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMuYWxsX3Bhc3NlZCgpCisK
KyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVz
dF9yZXN1bHRzKToKKyAgICAgICAgcXVldWUgPSBNb2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0
ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdz
LmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0
cyA9IFtzZWxmLl9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQoZmlyc3RfdGVzdF9yZXN1bHRz
KV0KKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhxdWV1ZSwgcGF0Y2gsIHBh
dGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3Rf
ZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0
UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rh
c2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFs
dWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRl
c3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2lu
ZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5k
aW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVz
dF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxs
eV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJp
bmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCcsICdUZXN0
Tm9kZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAg
IGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVz
dE5vZGUuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJl
c3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXggNjhmMWQ4MDMyMGNi
MjU3ZTI2YmFmODQwMWZiN2FhNTEyMDQxOWRjMS4uMDk4M2E4NzdlODkyYWRhMDE3YmRkN2QyOTNj
M2ZmZjY0MDE1MTU0MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0zNyw2ICszNyw3IEBAIGZy
b20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgog
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKK2Zyb20g
d2Via2l0cHkudG9vbC5ib3QuYmluZGluZ3N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgQmluZGlu
Z3NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHku
dG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKQEAgLTU5
LDYgKzYwLDggQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZp
ZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgICAgICBpZiBzZWxmLmdy
b3VwKCkgPT0gImpzYyI6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0g
SlNDVGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5qc2NfcmVzdWx0c19k
aXJlY3RvcnkoKSkKKyAgICAgICAgZWxpZiBzZWxmLmdyb3VwKCkgPT0gImJpbmRpbmdzIjoKKyAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBCaW5kaW5nc1Rlc3RSZXN1bHRz
UmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQuanNjX3Jlc3VsdHNfZGlyZWN0b3J5KCkpCiAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVj
dG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKQEAgLTg4LDcgKzkxLDcgQEAgY2xhc3Mg
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJu
aW5nU3lzdGVtVGFza0RlbGUKIAogICAgICMgVGhpcyBleGlzdHMgZm9yIG1vY2tpbmcKICAgICBk
ZWYgX2NyZWF0ZV90YXNrKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0dXJuIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAg
ICByZXR1cm4gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9u
cy5ydW5fdGVzdHMsIHNlbGYuc2hvdWxkX2J1aWxkKQogCiAgICAgZGVmIHJldmlld19wYXRjaChz
ZWxmLCBwYXRjaCk6CiAgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhwYXRjaCkKQEAg
LTE3NCw1ICsxNzcsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFj
dFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICAgICAgICAg
ICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAgICAg
ICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAogICAg
ICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAorICAgICAg
ICAgICAgICAgICdzaG91bGRfYnVpbGQnOiBjb25maWcuZ2V0KCdzaG91bGRCdWlsZCcsIFRydWUp
LAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fy
bmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCA2MTQwMzVhZThlY2ZhMmViNzAyZGMwNmFjNGVl
OGU5ZGQxNGM1Yjc0Li40ZGU2ZTkyY2MyMzE3YzdjYjA1OTUwOGVlMDM3Y2Q0ODY2OGFjY2JkIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTMwLDYgKzMwLDcgQEAK
IGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sg
aW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYmluZGluZ3N0ZXN0cmVz
dWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUK
QEAgLTU2LDYgKzU3LDEyIEBAIGNsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0pOgogICAgIF9ncm91cCA9ICJqc2MiCiAKIAorY2xhc3MgVGVzdEJpbmRpbmdzRVdTKEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBwb3J0X25hbWUgPSAibWFjIgorICAgIF9i
dWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3JvdXAgPSAiYmluZGluZ3MiCisKKwogY2xhc3MgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiBfdGVzdF9t
ZXNzYWdlKHNlbGYsIGV3cywgcmVzdWx0cywgbWVzc2FnZSk6CiAgICAgICAgIGV3cy5iaW5kX3Rv
X3Rvb2woTW9ja1Rvb2woKSkKQEAgLTgxLDYgKzg4LDEyIEBAIGNsYXNzIEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFp
bGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1
bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0XG5hcGlU
ZXN0cyIKICAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkK
IAorICAgIGRlZiB0ZXN0X2ZhaWxpbmdfYmluZGluZ3NfdGVzdHNfbWVzc2FnZShzZWxmKToKKyAg
ICAgICAgZXdzID0gVGVzdEJpbmRpbmdzRVdTKCkKKyAgICAgICAgcmVzdWx0cyA9IGxhbWJkYSBh
OiBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiKEpTKSBUZXN0TWFwTGlrZS5pZGwiLCAiKEpTKSBUZXN0
Tm9kZS5pZGwiXSkKKyAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbihKUykg
VGVzdE1hcExpa2UuaWRsXG4oSlMpIFRlc3ROb2RlLmlkbCIKKyAgICAgICAgc2VsZi5fdGVzdF9t
ZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKwogCiBjbGFzcyBNb2NrRWFybHlXYXJuaW5n
U3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMoRWFybHlXYXJuaW5nU3lzdGVtVGFz
ayk6CiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgpAQCAtMTA0LDYgKzExNywxMyBAQCBjbGFz
cyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICAgICAgImJ1aWxk
X3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCiAgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3Jv
dXAoKSwKICAgICAgICAgfQorCisgICAgICAgIGlmIGV3cy5zaG91bGRfYnVpbGQ6CisgICAgICAg
ICAgICBidWlsZF9saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1
aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1
cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGJ1aWxkX2xpbmUgPSAiIgorICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydidWlsZF9saW5l
J10gPSBidWlsZF9saW5lCisKICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKICAgICAgICAgICAg
IHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0t
bm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShn
cm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFj
ZW1lbnRzCiAgICAgICAgIGVsc2U6CkBAIC0xMjMsOCArMTQzLDcgQEAgUnVubmluZzogd2Via2l0
LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShh
cmNoaXRlY3QKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBk
YXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJl
KXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNoZWNr
LXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hp
dGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNv
bSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHls
ZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLSUo
cnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRz
LAorJShidWlsZF9saW5lKXMlKHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9saW5lcylzIiIiICUg
c3RyaW5nX3JlcGxhY2VtZW50cywKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9lcnJv
ciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9l
cnJvciI6ICJTY3JpcHRFcnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hl
Y2twYXRjaHJlbGV2YW5jZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9j
aGVja3BhdGNocmVsZXZhbmNlLnB5CmluZGV4IGI1YjYzZTg3MmFjZTBmOTdmNTUwYjIxZWQ3ZTVi
ZGFkZjgyMmQzMDEuLmUxMzZkNWUwYTc1YjZlZmM1ZGE4Mzk0MTQ2MzEzOTUxNTg2M2MwYjAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVs
ZXZhbmNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3Bh
dGNocmVsZXZhbmNlLnB5CkBAIC0zNyw2ICszNywxMSBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZh
bmNlKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBd
CiAKKyAgICBiaW5kaW5nc19wYXRocyA9IFsKKyAgICAgICAgIlNvdXJjZS9XZWJDb3JlIiwKKyAg
ICAgICAgIlRvb2xzIiwKKyAgICBdCisKICAgICBqc2NfcGF0aHMgPSBbCiAgICAgICAgICJKU1Rl
c3RzLyIsCiAgICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKQEAgLTUyLDEyICs1Nywx
MyBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3RlcCk6CiAgICAgXQogCiAg
ICAgZ3JvdXBfdG9fcGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2JpbmRpbmdzJzogYmluZGlu
Z3NfcGF0aHMsCiAgICAgICAgICdqc2MnOiBqc2NfcGF0aHMsCiAgICAgfQogCiAgICAgZGVmIF9j
aGFuZ2VzX2FyZV9yZWxldmFudChzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKICAgICAgICAgIyBJbiB0
aGUgZGVmYXVsdCBjYXNlLCBhbGwgcGF0Y2hlcyBhcmUgcmVsZXZhbnQKLSAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy5ncm91cCAhPSAnanNjJzoKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91
cCBub3QgaW4gc2VsZi5ncm91cF90b19wYXRoc19tYXBwaW5nOgogICAgICAgICAgICAgcmV0dXJu
IFRydWUKIAogICAgICAgICBwYXR0ZXJucyA9IHNlbGYuZ3JvdXBfdG9fcGF0aHNfbWFwcGluZ1tz
ZWxmLl9vcHRpb25zLmdyb3VwXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDQ5MzBhYWI3NDE4NGI0ZjczY2QzMjhiMDQ3
NjEzMzZhY2U2YTIwOGUuLjZjMDY2Njg3NWVkMTVmNzIxN2JjOTIxYTNjYWMwOTMwYzBlODZkYjkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHkKQEAgLTI1NiwzICsyNTYsMjkgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJl
bGV2YW50IGNoYW5nZXMuCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cycsICctLWpz
b24tb3V0cHV0PS90bXAvYmluZGluZ3NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CiAiIiIKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYg
dGVzdF9wYXRjaF9yZWxldmFudF9iaW5kaW5ncyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZm
ID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAiYmluZGluZ3MiCisgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2Vk
RmlsZXMgPSBbIlNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24iLCAiU291cmNlL0NoYW5nZUxv
ZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0
IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAg
ICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3Rl
cCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAg
ICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCisiIiIKKyAg
ICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31d
LCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9ub3Rf
cmVsZXZhbnRfYmluZGluZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAg
ICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19v
cHRpb25zLmdyb3VwID0gImJpbmRpbmdzIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4
ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJT
b3VyY2UvSmF2YVNjcmlwdENvcmUvTWFrZWZpbGUiLCAiU291cmNlL0NoYW5nZUxvZyJdCisgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1
dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wu
X2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBz
LkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRvZXMg
bm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304005</attachid>
            <date>2017-03-09 16:23:05 -0800</date>
            <delta_ts>2017-03-09 17:29:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170309162304.patch</filename>
            <type>text/plain</type>
            <size>46133</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzUxNzg4OWEzM2Y4YmMzYzQyNDc3NTM2ZWIyZTI0ZTM2
NmI1ZDQ0OC4uN2Q0ZDU3ODk1ZDEyMTJhZjUyMWRjM2VmMzI0NDI4YWM3Mzg0NGJhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE3LTAzLTA5ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3MgRVdTCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGJpbmRpbmdzLWV3cy4gQ2FuIHRl
c3Qgd2l0aG91dCBidWlsZGluZzsgc2hvdWxkX2J1aWxkID0gRmFsc2UuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHk6CisgICAgICAg
IChCaW5kaW5nc1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAg
ICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6IERpdHRvLgorICAg
ICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5pc19zdWJzZXQpOiBEaXR0by4KKyAgICAgICAgKEJp
bmRpbmdzVGVzdFJlc3VsdHMuZXF1YWxzKTogRGl0dG8uCisgICAgICAgIChCaW5kaW5nc1Rlc3RS
ZXN1bHRzLmFsbF9wYXNzZWQpOiBEaXR0by4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMu
ZmFpbGluZ190ZXN0cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQmluZGluZ3NU
ZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogUmVtb3ZlZCAnZXJyb3Jz
Jy4KKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0
cmluZ19zdWNjZXNzKTogUmVtb3ZlZCAnZXJyb3JzJy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrLl9faW5pdF9fKTogQWRkIHNob3VsZF9idWlsZCBwYXJhbWV0ZXIuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IENoZWNrIHNob3VsZF9idWlsZCBi
ZWZvcmUgY2FsbGluZyBzZWxmLl9idWlsZCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weTogUmVuYW1lZCBmcm9tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5LgorICAgICAgICAoTW9ja0Jp
bmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtKTogQmFzZWQgb2YgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS4gTW9ja2VkIHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1v
Y2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4K
KyAgICAgICAgKE1vY2tCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBS
ZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1cywgaW5zdGVhZCBvZiBKU09OIG91dHB1
dC4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IENsYXNzIHRvIHRl
c3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0aW9ucy4KKyAgICAgICAgKEJpbmRpbmdzRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2Ug
aWYgTm9uZSBvciBvciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEJpbmRpbmdz
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24uCisg
ICAgICAgIChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2Up
OiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUu
CisgICAgICAgIChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVh
biBwYXRjaCBvbiByZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVt
VGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAg
ICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVj
dGl2ZV9wYXRjaCk6IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdz
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3Bh
dGNoX2FuZF90cmVlKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlm
IHNob3VsZF9idWlsZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQ
YXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3Ig
QmluZGluZ3MgdGVzdHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6
IElmIHRlc3RzIGZhaWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5n
c190ZXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVn
aW5fd29ya19xdWV1ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdz
IEVXUy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6
IFBhc3Mgc2hvdWxkX2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRy
dWUgYnkgZGVmYXVsdCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VX
Uyk6IEJpbmRpbmdzIEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFp
bGluZ19iaW5kaW5nc190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRv
IEJ1Z3ppbGxhLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKTogTm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxk
IGxpbmUgb3B0aW9uYWwuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZXdz
X25hbWUpOiBBZGQgYmluZGluZ3MtZXdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2
YW5jZSk6IEFkZCBiaW5kaW5ncyBwYXRocy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2Uu
X2NoYW5nZXNfYXJlX3JlbGV2YW50KTogQ2xlYW5lciB3YXkgdG8gY2hlY2sgaWYgd2Ugc2hvdWxk
IHBlcmZvcm0gdGhpcyBzdGVwLiAKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3RlcHNfdW5pdHRlc3QucHk6IEFkZCB1bml0IHRlc3RzIGZvciBCaW5kaW5ncyBFV1MgcGF0
Y2ggcmVsZXZhbmNlLgorICAgICAgICAodGVzdF9wYXRjaF9yZWxldmFudF9iaW5kaW5ncyk6IFRl
c3QgZm9yIHBhdGNoIHJlbGV2YW50IHRvIGJpbmRpbmdzLgorICAgICAgICAodGVzdF9wYXRjaF9u
b3RfcmVsZXZhbnRfYmluZGluZ3MpOiBUZXN0IGZvciBwYXRjaCBub3QgcmVsZXZhbnQgdG8gYmlu
ZGluZ3MuCisKIDIwMTctMDMtMDkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIEd1YXJkIENyZWRlbnRpYWwgTWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbiBiZWhp
bmQgYSBydW50aW1lIGVuYWJsZWQgZmVhdHVyZSBmbGFnCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXggYjZhNWJjNzg3ZTlmZmE0ODhmODkxZGE5
YjllN2I2ODkxZTU3OGE4Yi4uMTFkODZlNTIwY2ZlMTJkNTc5MTY0ODRmMDNmNjNmNDZhNjZlZGEz
NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5q
c29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgpA
QCAtNTEsNSArNTEsMTIgQEAKICAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCiAgICAgICAgICJn
cm91cCI6ICJqc2MiLAogICAgICAgICAicnVuVGVzdHMiOiB0cnVlCisgICAgfSwKKyAgICAiQmlu
ZGluZ3MgRVdTIjogeworICAgICAgICAicG9ydCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJi
aW5kaW5ncy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAiYmluZGluZ3MiLAorICAgICAgICAicnVu
VGVzdHMiOiB0cnVlLAorICAgICAgICAic2hvdWxkQnVpbGQiOiBmYWxzZQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3Ry
ZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVz
dHJlc3VsdHMucHkKaW5kZXggOTM5MDQ1NDdkYzlhZDJhNjBjYTg2MjQwYTZhZTY3MGVkNTM2MjBj
ZS4uZTBmODUyNzczOTBhYzAwMDViODZmYzkwNmE5NmM5NThkYmJhZTMxOSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3Vs
dHMucHkKQEAgLTI4LDExICsyOCw4IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIAogCiBjbGFzcyBCaW5kaW5nc1Rlc3RSZXN1bHRzKEFic3RyYWN0VGVzdFJlc3VsdHMpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsdXJlcywgZXJyb3JzKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZmFpbHVyZXMpOgogICAgICAgICBzZWxmLl9mYWlsdXJlcyA9IGZhaWx1cmVzCi0g
ICAgICAgIHNlbGYuX2Vycm9ycyA9IGVycm9ycwotCi0gICAgICAgIHNlbGYuX2ZhaWxpbmdfdGVz
dF9uYW1lcyA9IGZhaWx1cmVzICsgZXJyb3JzCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYg
cmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CkBAIC00MCwyMiArMzcsMjIgQEAgY2xh
c3MgQmluZGluZ3NUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKICAgICAgICAgaWYg
bm90IHBhcnNlZF9yZXN1bHRzOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICBp
ZiAnZmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0cyBvciAnZXJyb3JzJyBub3QgaW4gcGFy
c2VkX3Jlc3VsdHM6CisgICAgICAgIGlmICdmYWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRz
OgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9y
ZXN1bHRzWydmYWlsdXJlcyddLCBwYXJzZWRfcmVzdWx0c1snZXJyb3JzJ10pCisgICAgICAgIHJl
dHVybiBjbHMocGFyc2VkX3Jlc3VsdHNbJ2ZhaWx1cmVzJ10pCiAKICAgICBkZWYgaXNfc3Vic2V0
KHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNldChzZWxmLl9mYWlsdXJlcykgPD0gc2V0
KG90aGVyLl9mYWlsdXJlcykgYW5kIHNldChzZWxmLl9lcnJvcnMpIDw9IHNldChvdGhlci5fZXJy
b3JzKQorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA8PSBzZXQob3RoZXIuX2Zh
aWx1cmVzKQogCiAgICAgZGVmIGVxdWFscyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiBz
ZXQoc2VsZi5fZmFpbHVyZXMpID09IHNldChvdGhlci5fZmFpbHVyZXMpIGFuZCBzZXQoc2VsZi5f
ZXJyb3JzKSA9PSBzZXQob3RoZXIuX2Vycm9ycykKKyAgICAgICAgcmV0dXJuIHNldChzZWxmLl9m
YWlsdXJlcykgPT0gc2V0KG90aGVyLl9mYWlsdXJlcykKIAogICAgIGRlZiBhbGxfcGFzc2VkKHNl
bGYpOgotICAgICAgICByZXR1cm4gbm90IHNlbGYuX2ZhaWx1cmVzIGFuZCBub3Qgc2VsZi5fZXJy
b3JzCisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fZmFpbHVyZXMKIAogICAgIGRlZiBmYWlsaW5n
X3Rlc3RzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzCisg
ICAgICAgIHJldHVybiBzZWxmLl9mYWlsdXJlcwogCiAgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUg
bGltaXQgZm9yIGJpbmRpbmdzIHRlc3RzLgogICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggM2Rh
ZTNmZDIyYTY5OGZmNTU2ZTM5M2ZjNDI4NWI0MzAzMzM4NWE3Yi4uY2IxNjgwNTJjNjJmZTk5OWQ3
Y2ExMTFiZGM2NTc4MzI3ZTFhMzdlOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3Qu
cHkKQEAgLTI3LDE3ICsyNywxNSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYmluZGluZ3N0
ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogCiBjbGFzcyBCaW5kaW5nc1Rl
c3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcmVzdWx0c19m
cm9tX3N0cmluZyhzZWxmKToKLSAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YxID0gJ3siZmFpbHVy
ZXMiOiBbXX0nCi0gICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7ImVycm9ycyI6W119Jwot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0
c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjEpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBs
ZXRlX2pzb25fdjIpKQorICAgICAgICBpbmNvbXBsZXRlX2pzb24gPSAneyJrZXkyIjogW119Jwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0
c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb24pKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19m
cm9tX3N0cmluZ19zdWNjZXNzKHNlbGYpOgotICAgICAgICBub19mYWlsdXJlc19zdHJpbmcgPSAn
eyJmYWlsdXJlcyI6IFtdLCAiZXJyb3JzIjpbXX0nCi0gICAgICAgIG5vX2ZhaWx1cmVzX3Jlc3Vs
dHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdLCBbXSkKKyAgICAgICAgbm9fZmFpbHVyZXNfc3Ry
aW5nID0gJ3siZmFpbHVyZXMiOiBbXX0nCisgICAgICAgIG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBC
aW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVy
ZXNfcmVzdWx0cy5lcXVhbHMoQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5n
KG5vX2ZhaWx1cmVzX3N0cmluZykpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVy
ZXNfcmVzdWx0cy5hbGxfcGFzc2VkKCkpCiAKLSAgICAgICAgdGVzdF9zdHJpbmcgPSAneyJmYWls
dXJlcyI6IFsiZmFpbHVyZTEiXSwgImVycm9ycyI6IFsiZXJyb3IxIiwgImVycm9yMiJdfScKLSAg
ICAgICAgdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbImZhaWx1cmUxIl0sIFsi
ZXJyb3IxIiwgImVycm9yMiJdKQorICAgICAgICB0ZXN0X3N0cmluZyA9ICd7ImZhaWx1cmVzIjog
WyJmYWlsdXJlMSJdfScKKyAgICAgICAgdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0
cyhbImZhaWx1cmUxIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0X3Jlc3VsdHMuZXF1
YWxzKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyh0ZXN0X3N0cmluZykp
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5p
bmdzeXN0ZW10YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdh
cm5pbmdzeXN0ZW10YXNrLnB5CmluZGV4IGVjZmFjZDAxMWJlODgzYjRiYjFlNWM3ZDdkZmZkYmRj
YjQ1OWRlMzUuLjVhZTUzMDAxM2M4NDY5NDA2MjQzYjgwYWM3YTE3ZmQ1NTEzMWRiZjYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVt
dGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2Fybmlu
Z3N5c3RlbXRhc2sucHkKQEAgLTM1LDkgKzM1LDEwIEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2tEZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKToKIAogCiBjbGFzcyBFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBzaG91bGRfcnVuX3Rlc3RzPVRydWUpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHNob3VsZF9ydW5fdGVzdHM9VHJ1ZSwgc2hv
dWxkX2J1aWxkPVRydWUpOgogICAgICAgICBQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyhzZWxm
LCBkZWxlZ2F0ZSwgcGF0Y2gpCiAgICAgICAgIHNlbGYuX3Nob3VsZF9ydW5fdGVzdHMgPSBzaG91
bGRfcnVuX3Rlc3RzCisgICAgICAgIHNlbGYuX3Nob3VsZF9idWlsZCA9IHNob3VsZF9idWlsZAog
CiAgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgogICAgICAgICBzZWxmLl9wYXRjaCA9IHNlbGYuX2Rl
bGVnYXRlLnJlZmV0Y2hfcGF0Y2goc2VsZi5fcGF0Y2gpCkBAIC02MSwxMCArNjIsMTEgQEAgY2xh
c3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAg
ICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2goc2VsZi5fcGF0Y2gpCiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2UoKToKICAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNO
b3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQotICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToK
LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFp
bHVyZSgpCisgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9idWlsZDoKKyAgICAgICAgICAgIGlmIG5v
dCBzZWxmLl9idWlsZCgpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93aXRo
b3V0X3BhdGNoKCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKCkKICAgICAgICAgaWYgbm90IHNlbGYu
X3Nob3VsZF9ydW5fdGVzdHM6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1
cm4gc2VsZi5fdGVzdF9wYXRjaCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
NmFlZjNkYWU4MDExZmFiNTc1ZjJjNTQzMTEwMDE0ZTk3YTZiMjBhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjE4ICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dpbmcK
LWltcG9ydCB1bml0dGVzdAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3Vs
dHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhl
Y3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgotZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFu
YWx5c2lzdGFzayBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2Fy
bmluZ3N5c3RlbSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KLWZyb20gd2Via2l0
cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQotCi0KLWNsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5
c2lzVGFzayk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgcGF0Y2hl
c19wYXNzZWRfYWxsX3Rlc3RzKToKLSAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQot
ICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoCi0gICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9
IE5vbmUKLSAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4g
PSBOb25lCi0gICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUK
LSAgICAgICAgc2VsZi5lcnJvciA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzID0gcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzCi0gICAgICAgIHNlbGYuX3Rlc3Rf
cnVuX2NvdW50ID0gMAotICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gMAotCi0gICAg
ZGVmIF90ZXN0KHNlbGYpOgotICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCi0KLSAg
ICAgICAgaWYgc2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzLnBvcCgpID09IFRydWU6Ci0g
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBTY3Jp
cHRFcnJvcignUmVncmVzc2lvbiB0ZXN0JykKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBk
ZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHNlbGYuX3Rl
c3RfcnVuX2NvdW50ICs9IDEKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiB2YWxpZGF0
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiB0ZXN0X3J1bl9jb3VudChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcnVuX2NvdW50Ci0KLQotIyBUaGlzIGlz
IHRoZSBkZWxlZ2F0ZSB0byBiZSB1c2VkIHdpdGggTW9ja1BhdGNoQW5hbHlzaXNUYXNrLCBhYm92
ZS4KLWNsYXNzIE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29u
ZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6Ci0gICAgICAgIEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2dyb3VwID0gJ2pz
YycKLSAgICAgICAgc2VsZi5fcmVzdWx0c19pbl9vcmRlciA9IFtjbGVhbl90ZXN0X3Jlc3VsdHMs
IHNlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10KLQotICAgIGRlZiB0ZXN0
X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2luX29yZGVyLnBv
cCgpCi0KLQotY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6Ci0gICAgZGVmIF9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQoc2VsZiwgcmVzdWx0cyk6
Ci0gICAgICAgIGlmIHJlc3VsdHMgPT0gTm9uZToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQot
ICAgICAgICByZXR1cm4gcmVzdWx0cy5hbGxfcGFzc2VkKCkKLQotICAgIGRlZiBfY3JlYXRlX3Rh
c2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpOgotICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0o
Zmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3Vs
dHMpCi0gICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCi0gICAgICAg
IHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCi0gICAgICAgIHBhdGNo
ZXNfcGFzc2VkX2FsbF90ZXN0cyA9IG1hcChzZWxmLl9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNz
ZWQsIFtzZWNvbmRfdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdKQotICAgICAgICBy
ZXR1cm4gTW9ja1BhdGNoQW5hbHlzaXNUYXNrKHF1ZXVlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzKQotCi0gICAgZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgotICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgc2Vj
b25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0
ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIHRhc2sgPSBzZWxm
Ll9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlw
dEVycm9yKToKLSAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLQotICAg
IGRlZiB0ZXN0X2ZpeChzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCi0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKLQotICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCi0KLSAgICBkZWYgdGVzdF9pbmVmZmVjdGl2ZV9w
YXRjaChzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZh
bHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIHRhc2sgPSBzZWxm
Ll9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCi0KLSAgICBkZWYgdGVzdF9w
YXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIHNlY29u
ZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCi0g
ICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKLQotICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCi0KLSAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVz
dF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQotICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCi0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMs
IHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKLSAgICAgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMykKLQotICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90
X2JlX3JlYWQoc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKLSAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAg
ICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0KLSAg
ICBkZWYgdGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKLSAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IE5vbmUK
LSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0g
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29u
ZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICByZXR1cm5fdmFs
dWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRl
c3RfcnVuX2NvdW50KCksIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVl
KQotCi0gICAgZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToK
LSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMi5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBOb25l
Ci0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNl
Y29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3Zh
bHVlKQotCi0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Moc2Vs
Zik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocmV0dXJuX3ZhbHVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9y
dW5fY291bnQoKSwgMikKLQotICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJl
ZV9wYXNzX3YyKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKLQotICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCi0KLSAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRz
X29uX2NsZWFuX3RyZWVfZmFpbHVyZShzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
LSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTIuanMnXSkKLSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgW10pCi0gICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jl
c3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKLSAgICAgICAgICAgIHRhc2su
X3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKLQotICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyhz
ZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydmYWlsdXJlMS5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCi0g
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29u
ZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLQotICAgICAgICByZXR1cm5fdmFs
dWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92
YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlz
aXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lz
dGFzay5weQppbmRleCBhY2E4MmZkZTI2OGM5MjI0NDY4YjNkNDYzOGQxZWZhNTQ2ZWFhM2YwLi4y
MGM4M2EyOGZmMjgwOWQ0OTg3OGIzNGEzNDU2YzQ5MmFjZjE0MDg2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAgLTE4
NiwxMiArMTg2LDE0IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAg
ICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAg
ICAgICAgICAgIi0tbm8tdXBkYXRlIiwKLSAgICAgICAgICAgICItLWJ1aWxkIiwKICAgICAgICAg
ICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAg
ICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCiAg
ICAgICAgIF0KIAorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ3Nob3Vs
ZF9idWlsZCcpIG9yIHNlbGYuX2RlbGVnYXRlLnNob3VsZF9idWlsZDoKKyAgICAgICAgICAgIGFy
Z3MuYXBwZW5kKCItLWJ1aWxkIikKKwogICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRl
LCAnZ3JvdXAnKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYu
X2RlbGVnYXRlLmdyb3VwKCkpCiAKQEAgLTIzNSw2ICsyMzcsMzAgQEAgY2xhc3MgUGF0Y2hBbmFs
eXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIyBhbHNvIHByZXNlbnQgd2l0aG91dCB0aGUgcGF0
Y2gsIHNvIHdlIGRvbid0IG5lZWQgdG8gZGVmZXIuCiAgICAgICAgIHJldHVybiBGYWxzZQogCisg
ICAgZGVmIF9yZXRyeV9iaW5kaW5nc190ZXN0cyhzZWxmKToKKyAgICAgICAgZmlyc3RfcmVzdWx0
cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIGZpcnN0X3NjcmlwdF9l
cnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBO
b25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyBTb21lIGVycm9ycyBh
cmUgbm90IGNvcnJlY3RseSByZXBvcnRlZCBieSB0aGUgcnVuLWJpbmRpbmdzLXRlc3RzIHNjcmlw
dAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0
NDkKKyAgICAgICAgIyBJbiBhZmZlY3RlZCBjYXNlcywgYWRkIGEgbWVzc2FnZSByZXF1ZXN0aW5n
IHRvIGxvb2sgYXQgdGVzdCBvdXRwdXQgaW5zdGVhZC4KKyAgICAgICAgaWYgbm90IGZpcnN0X3Jl
c3VsdHMuX2ZhaWx1cmVzOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cy5fZmFpbHVyZXMgPSBb
IlBsZWFzZSBzZWUgdGVzdCBvdXRwdXQgZm9yIHJlc3VsdHMiXQorCisgICAgICAgIHNlbGYuX2J1
aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMg
PSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVhbl90cmVlX3Jl
c3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIGZp
cnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBm
aXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKICAgICAjIEZJWE1FOiBBYnN0cmFj
dCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KICAgICBkZWYgX3JldHJ5X2pz
Y190ZXN0cyhzZWxmKToKICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRl
c3RfcmVzdWx0cygpCkBAIC0zMzgsNiArMzY0LDggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2so
b2JqZWN0KToKIAogICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBh
bmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKICAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJiaW5kaW5ncyI6Cisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfYmluZGluZ3NfdGVzdHMoKQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnlsb2dpY191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnlsb2dpY191bml0
dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDQwZGYyYjhkZGE0YTNhYTM5OWI3OGM2YzEzYTFiNjE2
NDU4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9y
ZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjk3IEBACisjIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QK
KworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRpbmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJp
bmRpbmdzVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0
cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVj
dXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5h
bHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJu
aW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRw
eS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlz
aXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVz
X3Bhc3NlZF9hbGxfdGVzdHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisg
ICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0g
Tm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9
IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQor
ICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9h
bGxfdGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9y
dW5fY291bnQgPSAwCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCisKKyAgICBk
ZWYgX3Rlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKworICAg
ICAgICBpZiBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKKyAg
ICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlw
dEVycm9yKCdSZWdyZXNzaW9uIHRlc3QnKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVz
dF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRl
KHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMg
dGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3Zl
LgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAnanNj
JworICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3Rf
cmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9w
KCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToK
KyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVfdGFz
ayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAg
cGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0Y2hl
c19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3Nl
ZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAgIHJl
dHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9h
bGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNv
bmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRl
c3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBjbGVhbl90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0
RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAg
ZGVmIHRlc3RfZml4KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3Bh
dGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhG
YWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFs
c2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Bh
cnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25k
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVy
ZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0
X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMn
XSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVl
ID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0
X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3Rf
YmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAg
ICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAg
IGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0
YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9y
ZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFz
ay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9j
b3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAg
IGRlZiB0ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5q
cycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUp
CisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFs
dWUpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9y
ZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAg
ICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVl
X3Bhc3NfdjIoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNf
b25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQor
ICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVz
dWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgdGFzay5f
dGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNl
bGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykK
KworCitjbGFzcyBNb2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
Ll9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX2dyb3VwID0gJ2JpbmRpbmdzJworICAgICAg
ICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVz
dF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFzcyBCaW5kaW5nc0Vhcmx5V2Fy
bmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVzdWx0c19pbmRp
Y2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1bHRzID09IE5v
bmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMuYWxs
X3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgcXVldWUgPSBNb2NrQmluZGluZ3NFYXJs
eVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisg
ICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNo
ID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHBhdGNoZXNfcGFz
c2VkX2FsbF90ZXN0cyA9IFtzZWxmLl9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQoZmlyc3Rf
dGVzdF9yZXN1bHRzKV0KKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhxdWV1
ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRlZiB0ZXN0X3N1Y2Nl
c3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0
UmVzdWx0cyhbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVz
dWx0cyhbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRl
ZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0g
QmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCddKQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAg
ICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6
CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10pCisg
ICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFw
TGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAg
IGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jl
c3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRsJ10pCisgICAgICAg
IGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5p
ZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0
ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAg
ICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtl
LmlkbCcsICdUZXN0Tm9kZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVy
bl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92
YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2Fu
ZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RS
ZXN1bHRzKFsnVGVzdE5vZGUuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJp
bmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQor
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAg
ICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXgg
NjhmMWQ4MDMyMGNiMjU3ZTI2YmFmODQwMWZiN2FhNTEyMDQxOWRjMS4uMDk4M2E4NzdlODkyYWRh
MDE3YmRkN2QyOTNjM2ZmZjY0MDE1MTU0MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0zNyw2
ICszNyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVj
YXRlZFBvcnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBG
aWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBT
Y3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNr
IGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVs
ZWdhdGUKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuYmluZGluZ3N0ZXN0cmVzdWx0c3JlYWRlciBp
bXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5s
YXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZy
b20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IEpTQ1Rlc3RS
ZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGlt
cG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxp
Y2FibGUKQEAgLTU5LDYgKzYwLDggQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0o
QWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgICAg
ICBpZiBzZWxmLmdyb3VwKCkgPT0gImpzYyI6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHNfcmVhZGVyID0gSlNDVGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5q
c2NfcmVzdWx0c19kaXJlY3RvcnkoKSkKKyAgICAgICAgZWxpZiBzZWxmLmdyb3VwKCkgPT0gImJp
bmRpbmdzIjoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBCaW5kaW5n
c1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQuanNjX3Jlc3VsdHNfZGly
ZWN0b3J5KCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNf
cmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5y
ZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKQEAgLTg4LDcgKzkx
LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1
ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgICMgVGhpcyBleGlzdHMgZm9yIG1v
Y2tpbmcKICAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0dXJu
IEVhcmx5V2FybmluZ1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rl
c3RzKQorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBwYXRjaCwg
c2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMsIHNlbGYuc2hvdWxkX2J1aWxkKQogCiAgICAgZGVmIHJl
dmlld19wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhwYXRjaCkKQEAgLTE3NCw1ICsxNzcsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAg
ICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAg
ICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5f
dGVzdHMpLAogICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5v
bmUpLAorICAgICAgICAgICAgICAgICdzaG91bGRfYnVpbGQnOiBjb25maWcuZ2V0KCdzaG91bGRC
dWlsZCcsIFRydWUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCA2MTQwMzVhZThlY2ZhMmVi
NzAyZGMwNmFjNGVlOGU5ZGQxNGM1Yjc0Li45Y2IwOWYyMGEwMzJjMmEzNWViMjIxMGFiMTUyOWQ1
YTg5ODI5NzkyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTMw
LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYmlu
ZGluZ3N0ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVz
dWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91
dHB1dENhcHR1cmUKQEAgLTU2LDYgKzU3LDEyIEBAIGNsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0pOgogICAgIF9ncm91cCA9ICJqc2MiCiAKIAorY2xhc3MgVGVzdEJp
bmRpbmdzRVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBwb3J0X25hbWUgPSAi
bWFjIgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3JvdXAgPSAiYmluZGluZ3MiCisK
KwogY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAg
IGRlZiBfdGVzdF9tZXNzYWdlKHNlbGYsIGV3cywgcmVzdWx0cywgbWVzc2FnZSk6CiAgICAgICAg
IGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTgxLDYgKzg4LDEyIEBAIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgbWVzc2Fn
ZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFy
cmF5LmpzLmRlZmF1bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5k
ZWZhdWx0XG5hcGlUZXN0cyIKICAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0
cywgbWVzc2FnZSkKIAorICAgIGRlZiB0ZXN0X2ZhaWxpbmdfYmluZGluZ3NfdGVzdHNfbWVzc2Fn
ZShzZWxmKToKKyAgICAgICAgZXdzID0gVGVzdEJpbmRpbmdzRVdTKCkKKyAgICAgICAgcmVzdWx0
cyA9IGxhbWJkYSBhOiBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiKEpTKSBUZXN0TWFwTGlrZS5pZGwi
LCAiKEpTKSBUZXN0Tm9kZS5pZGwiXSkKKyAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0
ZXN0czpcbihKUykgVGVzdE1hcExpa2UuaWRsXG4oSlMpIFRlc3ROb2RlLmlkbCIKKyAgICAgICAg
c2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKwogCiBjbGFzcyBNb2Nr
RWFybHlXYXJuaW5nU3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMoRWFybHlXYXJu
aW5nU3lzdGVtVGFzayk6CiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgpAQCAtMTA0LDYgKzEx
NywxMyBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAg
ICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCiAgICAgICAgICAgICAiZ3Jv
dXAiOiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQorCisgICAgICAgIGlmIGV3cy5zaG91bGRfYnVp
bGQ6CisgICAgICAgICAgICBidWlsZF9saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0
YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWls
ZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGJ1aWxkX2xpbmUgPSAiIgorICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRz
WydidWlsZF9saW5lJ10gPSBidWlsZF9saW5lCisKICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoK
ICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0
YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRh
dGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlz
IC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBz
dHJpbmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CkBAIC0xMjMsOCArMTQzLDcgQEAgUnVu
bmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0
PSUocG9ydClzJShhcmNoaXRlY3QKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5u
aW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2ht
ZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUo
YXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1w
bGUuY29tIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShw
b3J0KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9z
dD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9
JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXMKLSUocnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzLAorJShidWlsZF9saW5lKXMlKHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9s
aW5lcylzIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKICAgICAgICAgICAgICJoYW5kbGVfdW5l
eHBlY3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFu
ZGxlX3NjcmlwdF9lcnJvciI6ICJTY3JpcHRFcnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0
cHV0XG4iLAogICAgICAgICB9CkBAIC0xNjQsNiArMTgzLDcgQEAgUnVubmluZzogd2Via2l0LXBh
dGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0
ZSAtLWIKICAgICAgICAgICAgICdtYWMtd2syLWV3cycsCiAgICAgICAgICAgICAnbWFjLWRlYnVn
LWV3cycsCiAgICAgICAgICAgICAnbWFjLTMyYml0LWV3cycsCisgICAgICAgICAgICAnYmluZGlu
Z3MtZXdzJywKICAgICAgICAgICAgICdqc2MtZXdzJywKICAgICAgICAgfQogICAgICAgICBjbGFz
c2VzID0gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2
YW5jZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVs
ZXZhbmNlLnB5CmluZGV4IGI1YjYzZTg3MmFjZTBmOTdmNTUwYjIxZWQ3ZTViZGFkZjgyMmQzMDEu
LmUxMzZkNWUwYTc1YjZlZmM1ZGE4Mzk0MTQ2MzEzOTUxNTg2M2MwYjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNl
LnB5CkBAIC0zNyw2ICszNywxMSBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0
U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKKyAgICBiaW5k
aW5nc19wYXRocyA9IFsKKyAgICAgICAgIlNvdXJjZS9XZWJDb3JlIiwKKyAgICAgICAgIlRvb2xz
IiwKKyAgICBdCisKICAgICBqc2NfcGF0aHMgPSBbCiAgICAgICAgICJKU1Rlc3RzLyIsCiAgICAg
ICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKQEAgLTUyLDEyICs1NywxMyBAQCBjbGFzcyBD
aGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3RlcCk6CiAgICAgXQogCiAgICAgZ3JvdXBfdG9f
cGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2JpbmRpbmdzJzogYmluZGluZ3NfcGF0aHMsCiAg
ICAgICAgICdqc2MnOiBqc2NfcGF0aHMsCiAgICAgfQogCiAgICAgZGVmIF9jaGFuZ2VzX2FyZV9y
ZWxldmFudChzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKICAgICAgICAgIyBJbiB0aGUgZGVmYXVsdCBj
YXNlLCBhbGwgcGF0Y2hlcyBhcmUgcmVsZXZhbnQKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5n
cm91cCAhPSAnanNjJzoKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91cCBub3QgaW4gc2Vs
Zi5ncm91cF90b19wYXRoc19tYXBwaW5nOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAg
ICAgICBwYXR0ZXJucyA9IHNlbGYuZ3JvdXBfdG9fcGF0aHNfbWFwcGluZ1tzZWxmLl9vcHRpb25z
Lmdyb3VwXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0
ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBz
X3VuaXR0ZXN0LnB5CmluZGV4IDQ5MzBhYWI3NDE4NGI0ZjczY2QzMjhiMDQ3NjEzMzZhY2U2YTIw
OGUuLjZjMDY2Njg3NWVkMTVmNzIxN2JjOTIxYTNjYWMwOTMwYzBlODZkYjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAg
LTI1NiwzICsyNTYsMjkgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5n
ZXMuCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cycsICctLWpzb24tb3V0cHV0PS90
bXAvYmluZGluZ3NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIK
ICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBb
e31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9y
ZWxldmFudF9iaW5kaW5ncyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29w
dGlvbnMuZ3JvdXAgPSAiYmluZGluZ3MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhl
Y3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIlNv
dXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24iLCAiU291cmNlL0NoYW5nZUxvZyJdCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0
aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2Rl
cHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNo
ZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9s
b2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCisiIiIKKyAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfYmlu
ZGluZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19v
cHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3Vw
ID0gImJpbmRpbmdzIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVl
KQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJTb3VyY2UvSmF2YVNj
cmlwdENvcmUvTWFrZWZpbGUiLCAiU291cmNlL0NoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6
IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0
b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRf
cG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hS
ZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIi
Q2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVs
ZXZhbnQgY2hhbmdlcy4KKyIiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304015</attachid>
            <date>2017-03-09 17:29:36 -0800</date>
            <delta_ts>2017-03-10 10:42:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170309172934.patch</filename>
            <type>text/plain</type>
            <size>46130</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzVjNTlmMDZiMTVmYjRjYzE2ODg5YWY2ZjE0NzFiYWVm
MGVlZjRkOC4uNjEyMjVkZmY5YWI2OWRlNWVmYjljNzM5YjgxM2JiNzQyMmFlY2U0NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE3LTAzLTA5ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3MgRVdTCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uOiBBZGQgYmluZGluZ3MtZXdzLiBD
YW4gdGVzdCB3aXRob3V0IGJ1aWxkaW5nOyBzaG91bGRfYnVpbGQgPSBGYWxzZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weToKKyAg
ICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMuX19pbml0X18pOiBSZW1vdmVkICdlcnJvcnMnLgor
ICAgICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogRGl0dG8u
CisgICAgICAgIChCaW5kaW5nc1Rlc3RSZXN1bHRzLmlzX3N1YnNldCk6IERpdHRvLgorICAgICAg
ICAoQmluZGluZ3NUZXN0UmVzdWx0cy5lcXVhbHMpOiBEaXR0by4KKyAgICAgICAgKEJpbmRpbmdz
VGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IERpdHRvLgorICAgICAgICAoQmluZGluZ3NUZXN0UmVz
dWx0cy5mYWlsaW5nX3Rlc3RzKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgIChCaW5k
aW5nc1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBSZW1vdmVkICdl
cnJvcnMnLgorICAgICAgICAoQmluZGluZ3NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zy
b21fc3RyaW5nX3N1Y2Nlc3MpOiBSZW1vdmVkICdlcnJvcnMnLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVh
cmx5V2FybmluZ1N5c3RlbVRhc2suX19pbml0X18pOiBBZGQgc2hvdWxkX2J1aWxkIHBhcmFtZXRl
ci4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKTogQ2hlY2sgc2hvdWxkX2J1
aWxkIGJlZm9yZSBjYWxsaW5nIHNlbGYuX2J1aWxkKCkuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5OiBSZW5hbWVkIGZyb20gVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkuCisgICAgICAgIChN
b2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0pOiBCYXNlZCBvZiBNb2NrSlNDRWFybHlXYXJu
aW5nU3lzdGVtLiBNb2NrZWQgc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAg
ICAoTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLgorICAgICAgICAoTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0
cyk6IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIEpTT04g
b3V0cHV0LgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3Mg
dG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoQmluZGlu
Z3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQpOiBG
YWxzZSBpZiBOb25lIG9yIG9yIGhhcyBmYWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAgICAoQmlu
ZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6CisgICAgICAgIChCaW5k
aW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRj
aCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChC
aW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVhbiBwYXRjaCBvbiBy
ZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2lu
ZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAoQmluZGlu
Z3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6
IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVl
KTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlmIHNob3VsZF9idWls
ZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgQmluZGluZ3MgdGVz
dHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6IElmIHRlc3RzIGZh
aWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5nc190ZXN0cy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
LnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1
ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdzIEVXUy4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IFBhc3Mgc2hvdWxk
X2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9h
ZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRydWUgYnkgZGVmYXVs
dCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VXUyk6IEJpbmRpbmdz
IEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ19iaW5kaW5n
c190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRvIEJ1Z3ppbGxhLgor
ICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBlY3RlZF9sb2dzKTog
Tm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxkIGxpbmUgb3B0aW9u
YWwuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZXdzX25hbWUpOiBBZGQg
YmluZGluZ3MtZXdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVj
a3BhdGNocmVsZXZhbmNlLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZCBi
aW5kaW5ncyBwYXRocy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UuX2NoYW5nZXNfYXJl
X3JlbGV2YW50KTogQ2xlYW5lciB3YXkgdG8gY2hlY2sgaWYgd2Ugc2hvdWxkIHBlcmZvcm0gdGhp
cyBzdGVwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weTogQWRkIHVuaXQgdGVzdHMgZm9yIEJpbmRpbmdzIEVXUyBwYXRjaCByZWxldmFuY2Uu
CisgICAgICAgICh0ZXN0X3BhdGNoX3JlbGV2YW50X2JpbmRpbmdzKTogVGVzdCBmb3IgcGF0Y2gg
cmVsZXZhbnQgdG8gYmluZGluZ3MuCisgICAgICAgICh0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9i
aW5kaW5ncyk6IFRlc3QgZm9yIHBhdGNoIG5vdCByZWxldmFudCB0byBiaW5kaW5ncy4KKwogMjAx
Ny0wMy0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQXR0
ZW1wdCB0byBmaXggdGhlIFdlYktpdDIgdGVzdCBib3RzIGZvbGxvd2luZyA8aHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxMzY3Nj4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCBiNmE1YmM3ODdlOWZmYTQ4OGY4OTFkYTliOWU3
YjY4OTFlNTc4YThiLi4xMWQ4NmU1MjBjZmUxMmQ1NzkxNjQ4NGYwM2Y2M2Y0NmE2NmVkYTM0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01
MSw1ICs1MSwxMiBAQAogICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKICAgICAgICAgImdyb3Vw
IjogImpzYyIsCiAgICAgICAgICJydW5UZXN0cyI6IHRydWUKKyAgICB9LAorICAgICJCaW5kaW5n
cyBFV1MiOiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImJpbmRp
bmdzLWV3cyIsCisgICAgICAgICJncm91cCI6ICJiaW5kaW5ncyIsCisgICAgICAgICJydW5UZXN0
cyI6IHRydWUsCisgICAgICAgICJzaG91bGRCdWlsZCI6IGZhbHNlCiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3Vs
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVz
dWx0cy5weQppbmRleCA5MzkwNDU0N2RjOWFkMmE2MGNhODYyNDBhNmFlNjcwZWQ1MzYyMGNlLi5l
MGY4NTI3NzM5MGFjMDAwNWI4NmZjOTA2YTk2Yzk1OGRiYmFlMzE5IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5w
eQpAQCAtMjgsMTEgKzI4LDggQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQog
CiAKIGNsYXNzIEJpbmRpbmdzVGVzdFJlc3VsdHMoQWJzdHJhY3RUZXN0UmVzdWx0cyk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGZhaWx1cmVzLCBlcnJvcnMpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBmYWlsdXJlcyk6CiAgICAgICAgIHNlbGYuX2ZhaWx1cmVzID0gZmFpbHVyZXMKLSAgICAg
ICAgc2VsZi5fZXJyb3JzID0gZXJyb3JzCi0KLSAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25h
bWVzID0gZmFpbHVyZXMgKyBlcnJvcnMKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiByZXN1
bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKQEAgLTQwLDIyICszNywyMiBAQCBjbGFzcyBC
aW5kaW5nc1Rlc3RSZXN1bHRzKEFic3RyYWN0VGVzdFJlc3VsdHMpOgogICAgICAgICBpZiBub3Qg
cGFyc2VkX3Jlc3VsdHM6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIGlmICdm
YWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdlcnJvcnMnIG5vdCBpbiBwYXJzZWRf
cmVzdWx0czoKKyAgICAgICAgaWYgJ2ZhaWx1cmVzJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHM6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIHJldHVybiBjbHMocGFyc2VkX3Jlc3Vs
dHNbJ2ZhaWx1cmVzJ10sIHBhcnNlZF9yZXN1bHRzWydlcnJvcnMnXSkKKyAgICAgICAgcmV0dXJu
IGNscyhwYXJzZWRfcmVzdWx0c1snZmFpbHVyZXMnXSkKIAogICAgIGRlZiBpc19zdWJzZXQoc2Vs
Ziwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA8PSBzZXQob3Ro
ZXIuX2ZhaWx1cmVzKSBhbmQgc2V0KHNlbGYuX2Vycm9ycykgPD0gc2V0KG90aGVyLl9lcnJvcnMp
CisgICAgICAgIHJldHVybiBzZXQoc2VsZi5fZmFpbHVyZXMpIDw9IHNldChvdGhlci5fZmFpbHVy
ZXMpCiAKICAgICBkZWYgZXF1YWxzKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNldChz
ZWxmLl9mYWlsdXJlcykgPT0gc2V0KG90aGVyLl9mYWlsdXJlcykgYW5kIHNldChzZWxmLl9lcnJv
cnMpID09IHNldChvdGhlci5fZXJyb3JzKQorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1
cmVzKSA9PSBzZXQob3RoZXIuX2ZhaWx1cmVzKQogCiAgICAgZGVmIGFsbF9wYXNzZWQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBub3Qgc2VsZi5fZmFpbHVyZXMgYW5kIG5vdCBzZWxmLl9lcnJvcnMK
KyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9mYWlsdXJlcwogCiAgICAgZGVmIGZhaWxpbmdfdGVz
dHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVzCiAKICAgICAjIE5vIGRlZmluZWQgZmFpbHVyZSBsaW1p
dCBmb3IgYmluZGluZ3MgdGVzdHMuCiAgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCAzZGFlM2Zk
MjJhNjk4ZmY1NTZlMzkzZmM0Mjg1YjQzMDMzMzg1YTdiLi5jYjE2ODA1MmM2MmZlOTk5ZDdjYTEx
MWJkYzY1NzgzMjdlMWEzN2U4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpA
QCAtMjcsMTcgKzI3LDE1IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5iaW5kaW5nc3Rlc3Ry
ZXN1bHRzIGltcG9ydCBCaW5kaW5nc1Rlc3RSZXN1bHRzCiAKIGNsYXNzIEJpbmRpbmdzVGVzdFJl
c3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21f
c3RyaW5nKHNlbGYpOgotICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJmYWlsdXJlcyI6
IFtdfScKLSAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YyID0gJ3siZXJyb3JzIjpbXX0nCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zy
b21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVf
anNvbl92MikpCisgICAgICAgIGluY29tcGxldGVfanNvbiA9ICd7ImtleTIiOiBbXX0nCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zy
b21fc3RyaW5nKGluY29tcGxldGVfanNvbikpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21f
c3RyaW5nX3N1Y2Nlc3Moc2VsZik6Ci0gICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImZh
aWx1cmVzIjogW10sICJlcnJvcnMiOltdfScKLSAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9
IEJpbmRpbmdzVGVzdFJlc3VsdHMoW10sIFtdKQorICAgICAgICBub19mYWlsdXJlc19zdHJpbmcg
PSAneyJmYWlsdXJlcyI6IFtdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEJpbmRp
bmdzVGVzdFJlc3VsdHMoW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19y
ZXN1bHRzLmVxdWFscyhCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9f
ZmFpbHVyZXNfc3RyaW5nKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19y
ZXN1bHRzLmFsbF9wYXNzZWQoKSkKIAotICAgICAgICB0ZXN0X3N0cmluZyA9ICd7ImZhaWx1cmVz
IjogWyJmYWlsdXJlMSJdLCAiZXJyb3JzIjogWyJlcnJvcjEiLCAiZXJyb3IyIl19JwotICAgICAg
ICB0ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiZmFpbHVyZTEiXSwgWyJlcnJv
cjEiLCAiZXJyb3IyIl0pCisgICAgICAgIHRlc3Rfc3RyaW5nID0gJ3siZmFpbHVyZXMiOiBbImZh
aWx1cmUxIl19JworICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsi
ZmFpbHVyZTEiXSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRlc3RfcmVzdWx0cy5lcXVhbHMo
QmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKHRlc3Rfc3RyaW5nKSkpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5
c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2Fybmlu
Z3N5c3RlbXRhc2sucHkKaW5kZXggZWNmYWNkMDExYmU4ODNiNGJiMWU1YzdkN2RmZmRiZGNiNDU5
ZGUzNS4uNWFlNTMwMDEzYzg0Njk0MDYyNDNiODBhYzdhMTdmZDU1MTMxZGJmNiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNr
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lz
dGVtdGFzay5weQpAQCAtMzUsOSArMzUsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFz
a0RlbGVnYXRlKFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUpOgogCiAKIGNsYXNzIEVhcmx5V2Fy
bmluZ1N5c3RlbVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBkZWxlZ2F0ZSwgcGF0Y2gsIHNob3VsZF9ydW5fdGVzdHM9VHJ1ZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgc2hvdWxkX3J1bl90ZXN0cz1UcnVlLCBzaG91bGRf
YnVpbGQ9VHJ1ZSk6CiAgICAgICAgIFBhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKHNlbGYsIGRl
bGVnYXRlLCBwYXRjaCkKICAgICAgICAgc2VsZi5fc2hvdWxkX3J1bl90ZXN0cyA9IHNob3VsZF9y
dW5fdGVzdHMKKyAgICAgICAgc2VsZi5fc2hvdWxkX2J1aWxkID0gc2hvdWxkX2J1aWxkCiAKICAg
ICBkZWYgdmFsaWRhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdh
dGUucmVmZXRjaF9wYXRjaChzZWxmLl9wYXRjaCkKQEAgLTYxLDEwICs2MiwxMSBAQCBjbGFzcyBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAgICAgIHJh
aXNlIFVuYWJsZVRvQXBwbHlQYXRjaChzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgbm90IHNlbGYu
X2NoZWNrX3BhdGNoX3JlbGV2YW5jZSgpOgogICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdEFw
cGxpY2FibGUoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgotICAg
ICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2goKToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJl
KCkKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2J1aWxkOgorICAgICAgICAgICAgaWYgbm90IHNl
bGYuX2J1aWxkKCk6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkX3dpdGhvdXRf
cGF0Y2goKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoKQogICAgICAgICBpZiBub3Qgc2VsZi5fc2hv
dWxkX3J1bl90ZXN0czoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3BhdGNoKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2Nld3NfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YWVm
M2RhZTgwMTFmYWI1NzVmMmM1NDMxMTAwMTRlOTdhNmIyMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2Nld3NfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgbG9nZ2luZwotaW1w
b3J0IHVuaXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBp
bXBvcnQgSlNDVGVzdFJlc3VsdHMKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRp
dmUgaW1wb3J0IFNjcmlwdEVycm9yCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlz
aXN0YXNrIGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5n
c3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQotZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCi0KLQotY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNU
YXNrKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bh
c3NlZF9hbGxfdGVzdHMpOgotICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCi0gICAg
ICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKLSAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9u
ZQotICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5v
bmUKLSAgICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQotICAg
ICAgICBzZWxmLmVycm9yID0gTm9uZQotICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKLSAgICAgICAgc2VsZi5fdGVzdF9ydW5f
Y291bnQgPSAwCi0gICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCi0KLSAgICBkZWYg
X3Rlc3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKLQotICAgICAg
ICBpZiBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKLSAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVy
cm9yKCdSZWdyZXNzaW9uIHRlc3QnKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBf
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgc2VsZi5fdGVzdF9y
dW5fY291bnQgKz0gMQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHZhbGlkYXRlKHNl
bGYpOgotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKLQotCi0jIFRoaXMgaXMgdGhl
IGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgot
Y2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3Rl
bSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKLSAgICAgICAgQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fZ3JvdXAgPSAnanNjJwot
ICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQotCi0gICAgZGVmIHRlc3RfcmVz
dWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkK
LQotCi1jbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKLSAg
ICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQotCi0gICAgZGVmIF9jcmVhdGVfdGFzayhz
ZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3Rf
cmVzdWx0cyk6Ci0gICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
LSAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKLSAgICAgICAgcGF0
Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAgcGF0Y2hlc19w
YXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwg
W3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCi0gICAgICAgIHJldHVy
biBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMpCi0KLSAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Ci0gICAgICAgIGZpcnN0
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAx
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotCi0gICAgZGVmIHRlc3Rf
dGVzdF9mYWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IpOgotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQotCi0gICAgZGVm
IHRlc3RfZml4KHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNo
KHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxz
ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIu
anMnXSkKLSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2Us
IFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X3BhcnRp
YWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAg
ICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2Zh
aWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
LSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAzKQotCi0gICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVf
cmVhZChzZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQotICAgICAgICBz
ZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKLQotICAgIGRl
ZiB0ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycs
ICdmYWlsdXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQotICAg
ICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9
IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9y
dW5fY291bnQoKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0K
LSAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUy
LmpzJ10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKLSAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUp
Ci0KLSAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToK
LSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQotICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAg
cmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShyZXR1cm5fdmFsdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9j
b3VudCgpLCAyKQotCi0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bh
c3NfdjIoc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMi5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMSkKLQotICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25f
Y2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJl
Mi5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgdGFzay5fdGVz
dF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAzKQotCi0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYp
OgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUxLmpzJ10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKLSAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9
IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rh
c2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNr
LnB5CmluZGV4IGFjYTgyZmRlMjY4YzkyMjQ0NjhiM2Q0NjM4ZDFlZmE1NDZlYWEzZjAuLjQyYjI0
ZTNjNWU5N2NiNzE4OTgwOGYwYjE1NmNmYjljODI4MGZhOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMTg2LDEy
ICsxODYsMTQgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAg
ICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAg
ICAgICAiLS1uby11cGRhdGUiLAotICAgICAgICAgICAgIi0tYnVpbGQiLAogICAgICAgICAgICAg
Ii0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAg
Ii0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKICAgICAg
ICAgXQogCisgICAgICAgIGlmIGdldGF0dHIoc2VsZi5fZGVsZWdhdGUsICdzaG91bGRfYnVpbGQn
LCBUcnVlKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWJ1aWxkIikKKwogICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCiAKQEAgLTIzNSw2ICsy
MzcsMzAgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIyBhbHNv
IHByZXNlbnQgd2l0aG91dCB0aGUgcGF0Y2gsIHNvIHdlIGRvbid0IG5lZWQgdG8gZGVmZXIuCiAg
ICAgICAgIHJldHVybiBGYWxzZQogCisgICAgZGVmIF9yZXRyeV9iaW5kaW5nc190ZXN0cyhzZWxm
KToKKyAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CisgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAg
ICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAg
ICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgIyBTb21lIGVycm9ycyBhcmUgbm90IGNvcnJlY3RseSByZXBvcnRlZCBieSB0aGUg
cnVuLWJpbmRpbmdzLXRlc3RzIHNjcmlwdAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0NDkKKyAgICAgICAgIyBJbiBhZmZlY3RlZCBjYXNlcywg
YWRkIGEgbWVzc2FnZSByZXF1ZXN0aW5nIHRvIGxvb2sgYXQgdGVzdCBvdXRwdXQgaW5zdGVhZC4K
KyAgICAgICAgaWYgbm90IGZpcnN0X3Jlc3VsdHMuX2ZhaWx1cmVzOgorICAgICAgICAgICAgZmly
c3RfcmVzdWx0cy5fZmFpbHVyZXMgPSBbIlBsZWFzZSBzZWUgdGVzdCBvdXRwdXQgZm9yIHJlc3Vs
dHMiXQorCisgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAg
ICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQor
ICAgICAgICBpZiBjbGVhbl90cmVlX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVf
cmVzdWx0cyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2Vs
Zi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3Ip
CisKICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBs
b2dpYy4KICAgICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxmKToKICAgICAgICAgZmlyc3RfcmVz
dWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCkBAIC0zMzgsNiArMzY0LDggQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKIAogICAgICAgICBpZiBoYXNhdHRyKHNl
bGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNj
IjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBl
bGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpID09ICJiaW5kaW5ncyI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfYmlu
ZGluZ3NfdGVzdHMoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
dHJ5X2xheW91dF90ZXN0cygpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDQwZGYyYjhk
ZGE0YTNhYTM5OWI3OGM2YzEzYTFiNjE2NDU4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEs
Mjk3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJpbmRp
bmdzdGVzdHJlc3VsdHMgaW1wb3J0IEJpbmRpbmdzVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdl
YmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5
LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1BhdGNo
QW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpOgorICAgICAgICBzZWxm
Ll9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAgICAg
ICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hp
dmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19mcm9t
X3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAgICAg
ICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisgICAgICAgIHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQgPSAwCisKKyAgICBkZWYgX3Rlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuX3Rl
c3RfcnVuX2NvdW50ICs9IDEKKworICAgICAgICBpZiBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMucG9wKCkgPT0gVHJ1ZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHNl
bGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCdSZWdyZXNzaW9uIHRlc3QnKQorICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChz
ZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4g
VHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisg
ICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9y
dW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2Nr
UGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3Rl
bShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAg
ICAgICAgc2VsZi5fZ3JvdXAgPSAnanNjJworICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVy
ID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9y
ZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxs
X3Bhc3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQo
KQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29u
ZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9j
a0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVu
dCgxMDAwMCkKKyAgICAgICAgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jl
c3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rl
c3RfcmVzdWx0c10pCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUs
IHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNz
X2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAg
cmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0
dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5q
cyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
XSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVl
ID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0
X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZml4KHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2Vjb25k
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAg
IGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5q
cyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2Us
IFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMn
XSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVy
bl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92
YWx1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAg
IGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10p
CisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3Rf
Zmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gTm9uZQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25v
dF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNv
bmRfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2Nv
dWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRz
X29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZmxh
a3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAg
ICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAg
IGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IpOgorICAgICAgICAgICAgdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVz
dWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHNlY29uZF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMykKKworCitjbGFzcyBNb2NrQmluZGluZ3NFYXJseVdhcm5p
bmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX2dy
b3VwID0gJ2JpbmRpbmdzJworICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFu
X3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKwor
CitjbGFzcyBCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgorICAgIGRlZiBfcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgor
ICAgICAgICBpZiByZXN1bHRzID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdHMuYWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNr
KHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAg
cXVldWUgPSBNb2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0
aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAw
MDApCisgICAgICAgIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IFtzZWxmLl9yZXN1bHRzX2lu
ZGljYXRlX2FsbF9wYXNzZWQoZmlyc3RfdGVzdF9yZXN1bHRzKV0KKyAgICAgICAgcmV0dXJuIE1v
Y2tQYXRjaEFuYWx5c2lzVGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0
cykKKworICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9y
ZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtl
LmlkbCddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRz
KFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhT
Y3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisK
KyAgICBkZWYgdGVzdF9maXgoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJp
bmRpbmdzVGVzdFJlc3VsdHMoW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRp
bmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVz
dE1hcExpa2UuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVz
dFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0
ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAg
IHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJl
dHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydU
ZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmluZGluZ3NU
ZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCcsICdUZXN0Tm9kZS5pZGwnXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90
ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE5vZGUuaWRsJ10pCisgICAgICAg
IGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5p
ZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fy
bmluZ3N5c3RlbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJs
eXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXggNjhmMWQ4MDMyMGNiMjU3ZTI2YmFmODQwMWZiN2FhNTEy
MDQxOWRjMS4uMmY0MWE3MjE0NWIzZTNjMmE5MTNjYzE0ZmYzN2YyOGI5YTFkMDlkMSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtLnB5CkBAIC0zNyw2ICszNyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNv
bmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJv
dC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuYmlu
ZGluZ3N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0c1JlYWRlcgog
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5
b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3Vs
dHNyZWFkZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wu
Ym90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNO
b3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKQEAgLTU5LDYgKzYwLDggQEAgY2xhc3MgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5n
U3lzdGVtVGFza0RlbGUKIAogICAgICAgICBpZiBzZWxmLmdyb3VwKCkgPT0gImpzYyI6CiAgICAg
ICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJlc3VsdHNSZWFkZXIo
c2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5qc2NfcmVzdWx0c19kaXJlY3RvcnkoKSkKKyAgICAgICAg
ZWxpZiBzZWxmLmdyb3VwKCkgPT0gImJpbmRpbmdzIjoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNl
bGYuX3BvcnQuanNjX3Jlc3VsdHNfZGlyZWN0b3J5KCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIo
c2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGly
ZWN0b3J5KCkpCiAKQEAgLTg4LDcgKzkxLDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAog
ICAgICMgVGhpcyBleGlzdHMgZm9yIG1vY2tpbmcKICAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYs
IHBhdGNoKToKLSAgICAgICAgcmV0dXJuIEVhcmx5V2FybmluZ1N5c3RlbVRhc2soc2VsZiwgcGF0
Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5n
U3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2hvdWxkX3J1bl90ZXN0cz1zZWxmLl9vcHRpb25zLnJ1
bl90ZXN0cywgc2hvdWxkX2J1aWxkPXNlbGYuc2hvdWxkX2J1aWxkKQogCiAgICAgZGVmIHJldmll
d19wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhw
YXRjaCkKQEAgLTE3NCw1ICsxNzcsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3Rl
bShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAg
ICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAg
ICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVz
dHMpLAogICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUp
LAorICAgICAgICAgICAgICAgICdzaG91bGRfYnVpbGQnOiBjb25maWcuZ2V0KCdzaG91bGRCdWls
ZCcsIFRydWUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5n
c3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCA2MTQwMzVhZThlY2ZhMmViNzAy
ZGMwNmFjNGVlOGU5ZGQxNGM1Yjc0Li45Y2IwOWYyMGEwMzJjMmEzNWViMjIxMGFiMTUyOWQ1YTg5
ODI5NzkyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTMwLDYg
KzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5o
b3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYmluZGlu
Z3N0ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5j
b21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0
cwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1
dENhcHR1cmUKQEAgLTU2LDYgKzU3LDEyIEBAIGNsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW0pOgogICAgIF9ncm91cCA9ICJqc2MiCiAKIAorY2xhc3MgVGVzdEJpbmRp
bmdzRVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBwb3J0X25hbWUgPSAibWFj
IgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3JvdXAgPSAiYmluZGluZ3MiCisKKwog
Y2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRl
ZiBfdGVzdF9tZXNzYWdlKHNlbGYsIGV3cywgcmVzdWx0cywgbWVzc2FnZSk6CiAgICAgICAgIGV3
cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTgxLDYgKzg4LDEyIEBAIGNsYXNzIEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgbWVzc2FnZSA9
ICJOZXcgZmFpbGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5
LmpzLmRlZmF1bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZh
dWx0XG5hcGlUZXN0cyIKICAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywg
bWVzc2FnZSkKIAorICAgIGRlZiB0ZXN0X2ZhaWxpbmdfYmluZGluZ3NfdGVzdHNfbWVzc2FnZShz
ZWxmKToKKyAgICAgICAgZXdzID0gVGVzdEJpbmRpbmdzRVdTKCkKKyAgICAgICAgcmVzdWx0cyA9
IGxhbWJkYSBhOiBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsiKEpTKSBUZXN0TWFwTGlrZS5pZGwiLCAi
KEpTKSBUZXN0Tm9kZS5pZGwiXSkKKyAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0
czpcbihKUykgVGVzdE1hcExpa2UuaWRsXG4oSlMpIFRlc3ROb2RlLmlkbCIKKyAgICAgICAgc2Vs
Zi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKwogCiBjbGFzcyBNb2NrRWFy
bHlXYXJuaW5nU3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMoRWFybHlXYXJuaW5n
U3lzdGVtVGFzayk6CiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgpAQCAtMTA0LDYgKzExNywx
MyBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICAg
ICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCiAgICAgICAgICAgICAiZ3JvdXAi
OiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQorCisgICAgICAgIGlmIGV3cy5zaG91bGRfYnVpbGQ6
CisgICAgICAgICAgICBidWlsZF9saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1
cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1z
dHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShh
cmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGJ1aWxkX2xpbmUgPSAiIgorICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydi
dWlsZF9saW5lJ10gPSBidWlsZF9saW5lCisKICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKICAg
ICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1
cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUg
LS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0t
Z3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJp
bmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CkBAIC0xMjMsOCArMTQzLDcgQEAgUnVubmlu
Zzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUo
cG9ydClzJShhcmNoaXRlY3QKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5n
OiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50
IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJj
aGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShi
dWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKLSUocnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzLAorJShidWlsZF9saW5lKXMlKHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9saW5l
cylzIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBl
Y3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFuZGxl
X3NjcmlwdF9lcnJvciI6ICJTY3JpcHRFcnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0
XG4iLAogICAgICAgICB9CkBAIC0xNjQsNiArMTgzLDcgQEAgUnVubmluZzogd2Via2l0LXBhdGNo
IC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAt
LWIKICAgICAgICAgICAgICdtYWMtd2syLWV3cycsCiAgICAgICAgICAgICAnbWFjLWRlYnVnLWV3
cycsCiAgICAgICAgICAgICAnbWFjLTMyYml0LWV3cycsCisgICAgICAgICAgICAnYmluZGluZ3Mt
ZXdzJywKICAgICAgICAgICAgICdqc2MtZXdzJywKICAgICAgICAgfQogICAgICAgICBjbGFzc2Vz
ID0gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5j
ZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZh
bmNlLnB5CmluZGV4IGI1YjYzZTg3MmFjZTBmOTdmNTUwYjIxZWQ3ZTViZGFkZjgyMmQzMDEuLmUx
MzZkNWUwYTc1YjZlZmM1ZGE4Mzk0MTQ2MzEzOTUxNTg2M2MwYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5
CkBAIC0zNyw2ICszNywxMSBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3Rl
cCk6CiAgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKKyAgICBiaW5kaW5n
c19wYXRocyA9IFsKKyAgICAgICAgIlNvdXJjZS9XZWJDb3JlIiwKKyAgICAgICAgIlRvb2xzIiwK
KyAgICBdCisKICAgICBqc2NfcGF0aHMgPSBbCiAgICAgICAgICJKU1Rlc3RzLyIsCiAgICAgICAg
ICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKQEAgLTUyLDEyICs1NywxMyBAQCBjbGFzcyBDaGVj
a1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3RlcCk6CiAgICAgXQogCiAgICAgZ3JvdXBfdG9fcGF0
aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2JpbmRpbmdzJzogYmluZGluZ3NfcGF0aHMsCiAgICAg
ICAgICdqc2MnOiBqc2NfcGF0aHMsCiAgICAgfQogCiAgICAgZGVmIF9jaGFuZ2VzX2FyZV9yZWxl
dmFudChzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKICAgICAgICAgIyBJbiB0aGUgZGVmYXVsdCBjYXNl
LCBhbGwgcGF0Y2hlcyBhcmUgcmVsZXZhbnQKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91
cCAhPSAnanNjJzoKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91cCBub3QgaW4gc2VsZi5n
cm91cF90b19wYXRoc19tYXBwaW5nOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAg
ICBwYXR0ZXJucyA9IHNlbGYuZ3JvdXBfdG9fcGF0aHNfbWFwcGluZ1tzZWxmLl9vcHRpb25zLmdy
b3VwXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5CmluZGV4IDQ5MzBhYWI3NDE4NGI0ZjczY2QzMjhiMDQ3NjEzMzZhY2U2YTIwOGUu
LjZjMDY2Njg3NWVkMTVmNzIxN2JjOTIxYTNjYWMwOTMwYzBlODZkYjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTI1
NiwzICsyNTYsMjkgQEAgVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMu
CiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cycsICctLWpzb24tb3V0cHV0PS90bXAv
YmluZGluZ3NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKICAg
ICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31d
LCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxl
dmFudF9iaW5kaW5ncyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAg
ICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlv
bnMuZ3JvdXAgPSAiYmluZGluZ3MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0
aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIlNvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24iLCAiU291cmNlL0NoYW5nZUxvZyJdCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNr
UGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCisiIiIKKyAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dz
PWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfYmluZGlu
Z3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0g
ImJpbmRpbmdzIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQor
ICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJTb3VyY2UvSmF2YVNjcmlw
dENvcmUvTWFrZWZpbGUiLCAiU291cmNlL0NoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28g
bXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxl
dmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hl
Y2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZh
bnQgY2hhbmdlcy4KKyIiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304054</attachid>
            <date>2017-03-10 10:42:47 -0800</date>
            <delta_ts>2017-03-10 11:24:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169308-20170310104246.patch</filename>
            <type>text/plain</type>
            <size>45907</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMzcxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDU3IEBACisyMDE3LTAzLTEwICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5
YXJhZ2hhdmFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQmluZGluZ3Mg
RVdTCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkz
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uOiBBZGQgYmluZGluZ3Mt
ZXdzLiBDYW4gdGVzdCB3aXRob3V0IGJ1aWxkaW5nOyBzaG91bGRfYnVpbGQgPSBGYWxzZS4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGluZ3N0ZXN0cmVzdWx0cy5w
eToKKyAgICAgICAgKEJpbmRpbmdzVGVzdFJlc3VsdHMuX19pbml0X18pOiBSZW1vdmVkICdlcnJv
cnMnLgorICAgICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTog
RGl0dG8uCisgICAgICAgIChCaW5kaW5nc1Rlc3RSZXN1bHRzLmlzX3N1YnNldCk6IERpdHRvLgor
ICAgICAgICAoQmluZGluZ3NUZXN0UmVzdWx0cy5lcXVhbHMpOiBEaXR0by4KKyAgICAgICAgKEJp
bmRpbmdzVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IERpdHRvLgorICAgICAgICAoQmluZGluZ3NU
ZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAg
IChCaW5kaW5nc1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBSZW1v
dmVkICdlcnJvcnMnLgorICAgICAgICAoQmluZGluZ3NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1
bHRzX2Zyb21fc3RyaW5nX3N1Y2Nlc3MpOiBSZW1vdmVkICdlcnJvcnMnLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAg
ICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2suX19pbml0X18pOiBBZGQgc2hvdWxkX2J1aWxkIHBh
cmFtZXRlci4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKTogQ2hlY2sgc2hv
dWxkX2J1aWxkIGJlZm9yZSBjYWxsaW5nIHNlbGYuX2J1aWxkKCkuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5OiBSZW5hbWVkIGZyb20g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkuCisgICAg
ICAgIChNb2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0pOiBCYXNlZCBvZiBNb2NrSlNDRWFy
bHlXYXJuaW5nU3lzdGVtLiBNb2NrZWQgc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgor
ICAgICAgICAoTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBh
dHRyaWJ1dGVzLgorICAgICAgICAoTW9ja0JpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtLnRlc3Rf
cmVzdWx0cyk6IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9m
IEpTT04gb3V0cHV0LgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTog
Q2xhc3MgdG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAo
QmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNz
ZWQpOiBGYWxzZSBpZiBOb25lIG9yIG9yIGhhcyBmYWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAg
ICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6CisgICAgICAg
IChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVh
biBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogUmVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAg
ICAgIChCaW5kaW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXgpOiBDbGVhbiBwYXRj
aCBvbiByZWQgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAo
QmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9w
YXRjaCk6IFJlZCBwYXRjaCBvbiByZWRkZXIgdHJlZS4KKyAgICAgICAgKEJpbmRpbmdzRWFybHlX
YXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2Fu
ZF90cmVlKTogUmVkIHBhdGNoIG9uIHJlZCB0cmVlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IERvbid0IGJ1aWxkIGlmIHNob3Vs
ZF9idWlsZCBpcyBGYWxzZSAoZWcuIG9uIEJpbmRpbmdzIEVXUykuCisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fcmV0cnlfYmluZGluZ3NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgQmluZGlu
Z3MgdGVzdHMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6IElmIHRl
c3RzIGZhaWxlZCBvbiBCaW5kaW5ncyBFV1MsIGFuZCBjYWxsIF9yZXRyeV9iaW5kaW5nc190ZXN0
cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5n
c3lzdGVtLnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29y
a19xdWV1ZSk6IFVzZSBCaW5kaW5nc1Rlc3RSZXN1bHRzUmVhZGVyIG9uIEJpbmRpbmdzIEVXUy4K
KyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IFBhc3Mg
c2hvdWxkX2J1aWxkIGFyZ3VtZW50LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBzaG91bGRfYnVpbGQgYXJndW1lbnQgKFRydWUgYnkg
ZGVmYXVsdCkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RCaW5kaW5nc0VXUyk6IEJp
bmRpbmdzIEVXUyBjbGFzcywgZGVyaXZlZCBmcm9tIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ19i
aW5kaW5nc190ZXN0c19tZXNzYWdlKTogVW5pdCB0ZXN0IG1lc3NhZ2UgcG9zdGVkIHRvIEJ1Z3pp
bGxhLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBlY3RlZF9s
b2dzKTogTm90IGJ1aWxkaW5nIG9uIGFsbCBld3NlcyBhbnltb3JlOyBtYWtlIGJ1aWxkIGxpbmUg
b3B0aW9uYWwuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZXdzX25hbWUp
OiBBZGQgYmluZGluZ3MtZXdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6
IEFkZCBiaW5kaW5ncyBwYXRocy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UuX2NoYW5n
ZXNfYXJlX3JlbGV2YW50KTogQ2xlYW5lciB3YXkgdG8gY2hlY2sgaWYgd2Ugc2hvdWxkIHBlcmZv
cm0gdGhpcyBzdGVwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weTogQWRkIHVuaXQgdGVzdHMgZm9yIEJpbmRpbmdzIEVXUyBwYXRjaCByZWxl
dmFuY2UuCisgICAgICAgICh0ZXN0X3BhdGNoX3JlbGV2YW50X2JpbmRpbmdzKTogVGVzdCBmb3Ig
cGF0Y2ggcmVsZXZhbnQgdG8gYmluZGluZ3MuCisgICAgICAgICh0ZXN0X3BhdGNoX25vdF9yZWxl
dmFudF9iaW5kaW5ncyk6IFRlc3QgZm9yIHBhdGNoIG5vdCByZWxldmFudCB0byBiaW5kaW5ncy4K
KwogMjAxNy0wMy0wOSAgQnJpYW4gTmljaG9sc29uICA8Ym5pY2hvbHNvbkBtb3ppbGxhLmNvbT4g
YW5kIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBFeHBvc2UgcHVibGljIEFQSXMgZm9yIGNvbnRlbnQgZmlsdGVycwpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgkocmV2aXNpb24gMjEzNzEz
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MSw1ICs1MSwxMiBAQAogICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwK
ICAgICAgICAgImdyb3VwIjogImpzYyIsCiAgICAgICAgICJydW5UZXN0cyI6IHRydWUKKyAgICB9
LAorICAgICJCaW5kaW5ncyBFV1MiOiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAgICAg
ICJuYW1lIjogImJpbmRpbmdzLWV3cyIsCisgICAgICAgICJncm91cCI6ICJiaW5kaW5ncyIsCisg
ICAgICAgICJydW5UZXN0cyI6IHRydWUsCisgICAgICAgICJzaG91bGRCdWlsZCI6IGZhbHNlCiAg
ICAgfQogfQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2JpbmRpbmdz
dGVzdHJlc3VsdHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2JpbmRpbmdzdGVzdHJlc3VsdHMucHkJKHJldmlzaW9uIDIxMzcxMykKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxMSArMjgsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCiAKIAogY2xhc3MgQmluZGluZ3NUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRz
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmFpbHVyZXMsIGVycm9ycyk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZhaWx1cmVzKToKICAgICAgICAgc2VsZi5fZmFpbHVyZXMgPSBmYWlsdXJl
cwotICAgICAgICBzZWxmLl9lcnJvcnMgPSBlcnJvcnMKLQotICAgICAgICBzZWxmLl9mYWlsaW5n
X3Rlc3RfbmFtZXMgPSBmYWlsdXJlcyArIGVycm9ycwogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgpAQCAtNDAsMjIgKzM3LDIyIEBA
IGNsYXNzIEJpbmRpbmdzVGVzdFJlc3VsdHMoQWJzdHJhY3RUZXN0UmUKICAgICAgICAgaWYgbm90
IHBhcnNlZF9yZXN1bHRzOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICBpZiAn
ZmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0cyBvciAnZXJyb3JzJyBub3QgaW4gcGFyc2Vk
X3Jlc3VsdHM6CisgICAgICAgIGlmICdmYWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgog
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1
bHRzWydmYWlsdXJlcyddLCBwYXJzZWRfcmVzdWx0c1snZXJyb3JzJ10pCisgICAgICAgIHJldHVy
biBjbHMocGFyc2VkX3Jlc3VsdHNbJ2ZhaWx1cmVzJ10pCiAKICAgICBkZWYgaXNfc3Vic2V0KHNl
bGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNldChzZWxmLl9mYWlsdXJlcykgPD0gc2V0KG90
aGVyLl9mYWlsdXJlcykgYW5kIHNldChzZWxmLl9lcnJvcnMpIDw9IHNldChvdGhlci5fZXJyb3Jz
KQorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWx1cmVzKSA8PSBzZXQob3RoZXIuX2ZhaWx1
cmVzKQogCiAgICAgZGVmIGVxdWFscyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiBzZXQo
c2VsZi5fZmFpbHVyZXMpID09IHNldChvdGhlci5fZmFpbHVyZXMpIGFuZCBzZXQoc2VsZi5fZXJy
b3JzKSA9PSBzZXQob3RoZXIuX2Vycm9ycykKKyAgICAgICAgcmV0dXJuIHNldChzZWxmLl9mYWls
dXJlcykgPT0gc2V0KG90aGVyLl9mYWlsdXJlcykKIAogICAgIGRlZiBhbGxfcGFzc2VkKHNlbGYp
OgotICAgICAgICByZXR1cm4gbm90IHNlbGYuX2ZhaWx1cmVzIGFuZCBub3Qgc2VsZi5fZXJyb3Jz
CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fZmFpbHVyZXMKIAogICAgIGRlZiBmYWlsaW5nX3Rl
c3RzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzCisgICAg
ICAgIHJldHVybiBzZWxmLl9mYWlsdXJlcwogCiAgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGlt
aXQgZm9yIGJpbmRpbmdzIHRlc3RzLgogICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdChzZWxmKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9iaW5k
aW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9iaW5kaW5nc3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CShyZXZp
c2lvbiAyMTM3MTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYmluZGlu
Z3N0ZXN0cmVzdWx0c191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjcsMTcgKzI3LDE1
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5iaW5kaW5nc3Rlc3RyZXMKIAogY2xhc3MgQmlu
ZGluZ3NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jl
c3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6Ci0gICAgICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7
ImZhaWx1cmVzIjogW119JwotICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJlcnJvcnMi
OltdfScKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YxKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmco
aW5jb21wbGV0ZV9qc29uX3YyKSkKKyAgICAgICAgaW5jb21wbGV0ZV9qc29uID0gJ3sia2V5MiI6
IFtdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBCaW5kaW5nc1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uKSkKIAogICAgIGRlZiB0ZXN0X3Jl
c3VsdHNfZnJvbV9zdHJpbmdfc3VjY2VzcyhzZWxmKToKLSAgICAgICAgbm9fZmFpbHVyZXNfc3Ry
aW5nID0gJ3siZmFpbHVyZXMiOiBbXSwgImVycm9ycyI6W119JwotICAgICAgICBub19mYWlsdXJl
c19yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSwgW10pCisgICAgICAgIG5vX2ZhaWx1
cmVzX3N0cmluZyA9ICd7ImZhaWx1cmVzIjogW119JworICAgICAgICBub19mYWlsdXJlc19yZXN1
bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5v
X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEJpbmRpbmdzVGVzdFJlc3VsdHMucmVzdWx0c19mcm9t
X3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5v
X2ZhaWx1cmVzX3Jlc3VsdHMuYWxsX3Bhc3NlZCgpKQogCi0gICAgICAgIHRlc3Rfc3RyaW5nID0g
J3siZmFpbHVyZXMiOiBbImZhaWx1cmUxIl0sICJlcnJvcnMiOiBbImVycm9yMSIsICJlcnJvcjIi
XX0nCi0gICAgICAgIHRlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWyJmYWlsdXJl
MSJdLCBbImVycm9yMSIsICJlcnJvcjIiXSkKKyAgICAgICAgdGVzdF9zdHJpbmcgPSAneyJmYWls
dXJlcyI6IFsiZmFpbHVyZTEiXX0nCisgICAgICAgIHRlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVz
dFJlc3VsdHMoWyJmYWlsdXJlMSJdKQogICAgICAgICBzZWxmLmFzc2VydFRydWUodGVzdF9yZXN1
bHRzLmVxdWFscyhCaW5kaW5nc1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcodGVzdF9z
dHJpbmcpKSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJu
aW5nc3lzdGVtdGFzay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkJKHJldmlzaW9uIDIxMzcxMykKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQko
d29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVt
VGFza0RlbGVnYXRlKFBhdAogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hB
bmFseXNpc1Rhc2spOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHNo
b3VsZF9ydW5fdGVzdHM9VHJ1ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBw
YXRjaCwgc2hvdWxkX3J1bl90ZXN0cz1UcnVlLCBzaG91bGRfYnVpbGQ9VHJ1ZSk6CiAgICAgICAg
IFBhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCkKICAgICAg
ICAgc2VsZi5fc2hvdWxkX3J1bl90ZXN0cyA9IHNob3VsZF9ydW5fdGVzdHMKKyAgICAgICAgc2Vs
Zi5fc2hvdWxkX2J1aWxkID0gc2hvdWxkX2J1aWxkCiAKICAgICBkZWYgdmFsaWRhdGUoc2VsZik6
CiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdhdGUucmVmZXRjaF9wYXRjaChzZWxm
Ll9wYXRjaCkKQEAgLTYxLDEwICs2MiwxMSBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNr
KFBhdGNoQW5hbHlzCiAgICAgICAgICAgICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2goc2VsZi5f
cGF0Y2gpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2UoKToKICAg
ICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQotICAgICAg
ICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93
aXRob3V0X3BhdGNoKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAg
ICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZSgpCisgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9i
dWlsZDoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgorICAgICAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJl
KCkKICAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9ydW5fdGVzdHM6CiAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9wYXRjaCgpCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQko
cmV2aXNpb24gMjEzNzEzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nl
d3NfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMTggKzAsMCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQg
SlNDVGVzdFJlc3VsdHMKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IFNjcmlwdEVycm9yCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNr
IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVt
IGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQotZnJvbSB3ZWJraXRweS50b29sLm1v
Y2t0b29sIGltcG9ydCBNb2NrVG9vbAotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCi0KLQotY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9h
bGxfdGVzdHMpOgotICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCi0gICAgICAgIHNl
bGYuX3BhdGNoID0gcGF0Y2gKLSAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQotICAg
ICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKLSAg
ICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQotICAgICAgICBz
ZWxmLmVycm9yID0gTm9uZQotICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMg
PSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKLSAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQg
PSAwCi0gICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCi0KLSAgICBkZWYgX3Rlc3Qo
c2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKLQotICAgICAgICBpZiBz
ZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKLSAgICAgICAgICAg
IHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCdS
ZWdyZXNzaW9uIHRlc3QnKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBfYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291
bnQgKz0gMQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHZhbGlkYXRlKHNlbGYpOgot
ICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKLQotCi0jIFRoaXMgaXMgdGhlIGRlbGVn
YXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgotY2xhc3Mg
TW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKLSAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0uX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fZ3JvdXAgPSAnanNjJwotICAgICAg
ICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQotCi0gICAgZGVmIHRlc3RfcmVzdWx0cyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKLQotCi1j
bGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBk
ZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKLSAgICAgICAg
aWYgcmVzdWx0cyA9PSBOb25lOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJl
dHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQotCi0gICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cyk6Ci0gICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90ZXN0
X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKLSAgICAg
ICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKLSAgICAgICAgcGF0Y2ggPSB0
b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3NlY29u
ZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCi0gICAgICAgIHJldHVybiBNb2Nr
UGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMp
Ci0KLSAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotCi0gICAgZGVmIHRlc3RfdGVzdF9m
YWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgot
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQotCi0gICAgZGVmIHRlc3Rf
Zml4KHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ0ZhaWwuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYp
OgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydm
YWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
LSAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9l
ZmZlY3RpdmVfcGF0Y2goc2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgc2Vjb25kX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKLSAgICAgICAgY2xl
YW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAn
ZmFpbHVyZTIuanMnXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVz
X2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKLSAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQotCi0gICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChz
ZWxmKToKLSAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQotICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCi0gICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQotICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAx
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKLQotICAgIGRlZiB0ZXN0
X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWls
dXJlMi5qcyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQotICAgICAgICBj
bGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0KLSAgICBk
ZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgotICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10p
Ci0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKLSAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCi0KLSAg
ICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToKLSAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5q
cyddKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQotICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCi0KLSAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAyKQotCi0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIo
c2VsZik6Ci0gICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFtdKQotICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydmYWlsdXJlMi5qcyddKQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKLSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0g
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUocmV0dXJuX3ZhbHVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMSkKLQotICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5f
dHJlZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQotICAgICAgICBz
ZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQotICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
LSAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgotICAgICAgICAgICAgdGFzay5fdGVzdF9wYXRj
aCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQot
Ci0gICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgotICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
LmpzJ10pCi0gICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCi0gICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKLSAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQotCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFz
ay5weQkocmV2aXNpb24gMjEzNzEzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9wYXRjaGFuYWx5c2lzdGFzay5weQkod29ya2luZyBjb3B5KQpAQCAtMTg2LDEyICsxODYsMTQg
QEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICJidWlsZC1h
bmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1u
by11cGRhdGUiLAotICAgICAgICAgICAgIi0tYnVpbGQiLAogICAgICAgICAgICAgIi0tdGVzdCIs
CiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQt
c3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKICAgICAgICAgXQogCisg
ICAgICAgIGlmIGdldGF0dHIoc2VsZi5fZGVsZWdhdGUsICdzaG91bGRfYnVpbGQnLCBUcnVlKToK
KyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWJ1aWxkIikKKwogICAgICAgICBpZiBoYXNhdHRy
KHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdy
b3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCiAKQEAgLTIzNSw2ICsyMzcsMzAgQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIyBhbHNvIHByZXNlbnQg
d2l0aG91dCB0aGUgcGF0Y2gsIHNvIHdlIGRvbid0IG5lZWQgdG8gZGVmZXIuCiAgICAgICAgIHJl
dHVybiBGYWxzZQogCisgICAgZGVmIF9yZXRyeV9iaW5kaW5nc190ZXN0cyhzZWxmKToKKyAgICAg
ICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAg
IGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgaWYgZmly
c3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAg
IyBTb21lIGVycm9ycyBhcmUgbm90IGNvcnJlY3RseSByZXBvcnRlZCBieSB0aGUgcnVuLWJpbmRp
bmdzLXRlc3RzIHNjcmlwdAorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjk0NDkKKyAgICAgICAgIyBJbiBhZmZlY3RlZCBjYXNlcywgYWRkIGEgbWVz
c2FnZSByZXF1ZXN0aW5nIHRvIGxvb2sgYXQgdGVzdCBvdXRwdXQgaW5zdGVhZC4KKyAgICAgICAg
aWYgbm90IGZpcnN0X3Jlc3VsdHMuX2ZhaWx1cmVzOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0
cy5fZmFpbHVyZXMgPSBbIlBsZWFzZSBzZWUgdGVzdCBvdXRwdXQgZm9yIHJlc3VsdHMiXQorCisg
ICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVh
bl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBp
ZiBjbGVhbl90cmVlX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
CisgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6
CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRf
ZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKICAgICAj
IEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KICAg
ICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxmKToKICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNl
bGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCkBAIC0zMzgsNiArMzY0LDggQEAgY2xhc3MgUGF0
Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKIAogICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVn
YXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKICAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09
ICJiaW5kaW5ncyI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfYmluZGluZ3NfdGVz
dHMoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91
dF90ZXN0cygpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnls
b2dpY191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3JldHJ5bG9naWNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDIxMzcxMykJKGZyb20gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHk6MjEzNzEzKQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjE4IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKK2Zy
b20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJseXdhcm5pbmdzeXN0ZW0gaW1wb3J0IEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0
IE1vY2tUb29sCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFz
cyBNb2NrUGF0Y2hBbmFseXNpc1Rhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyk6Cisg
ICAgICAgIHNlbGYuX2RlbGVnYXRlID0gZGVsZWdhdGUKKyAgICAgICAgc2VsZi5fcGF0Y2ggPSBw
YXRjaAorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBOb25lCisgICAgICAgIHNlbGYuX3Jl
c3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLl9y
ZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuZXJyb3IgPSBO
b25lCisgICAgICAgIHNlbGYuX3BhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IHBhdGNoZXNfcGFz
c2VkX2FsbF90ZXN0cworICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCA9IDAKKyAgICAgICAg
c2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IDAKKworICAgIGRlZiBfdGVzdChzZWxmKToKKyAgICAg
ICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX3BhdGNoZXNf
cGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoJ1JlZ3Jlc3Npb24gdGVz
dCcpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAgIHJldHVy
biBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8gYmUgdXNl
ZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlNDRWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRf
XyhzZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICdqc2MnCisgICAgICAgIHNlbGYuX3Jlc3Vs
dHNfaW5fb3JkZXIgPSBbY2xlYW5fdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBm
aXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQorCisKK2NsYXNzIEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVzdWx0c19p
bmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1bHRzID09
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMu
YWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVz
dWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAg
cXVldWUgPSBNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29sID0gTW9j
a1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRj
aF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBt
YXAoc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkLCBbc2Vjb25kX3Rlc3RfcmVzdWx0
cywgZmlyc3RfdGVzdF9yZXN1bHRzXSkKKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lz
VGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRlZiB0
ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6
CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFp
bC5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICBy
ZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywg
J2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdm
YWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRj
aChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5k
X3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3Jp
cHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAg
ICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX3Jlc3Vs
dHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2NsZWFu
X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vj
b25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2Zs
YWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
Y2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAxKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVz
dF9mbGFreV9yZXN1bHRzX29uX3JlZF90cmVlX3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9yZXRyeWxvZ2ljX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcmV0cnlsb2dpY191bml0dGVzdC5weQkocmV2
aXNpb24gMjEzNzEzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9yZXRyeWxv
Z2ljX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiBpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IHVuaXR0ZXN0CiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5iaW5k
aW5nc3Rlc3RyZXN1bHRzIGltcG9ydCBCaW5kaW5nc1Rlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgKgpAQCAtMjE2LDMgKzIx
Nyw4MSBAQCBjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0CiAgICAgICAg
IHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmV0dXJuX3ZhbHVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMykKKworCitjbGFzcyBNb2NrQmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0oQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX2dyb3VwID0gJ2JpbmRp
bmdzJworICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0
cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFzcyBCaW5k
aW5nc0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBf
cmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiBy
ZXN1bHRzID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJu
IHJlc3VsdHMuYWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgcXVldWUgPSBNb2Nr
QmluZGluZ3NFYXJseVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisg
ICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAg
IHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IFtzZWxmLl9yZXN1bHRzX2luZGljYXRlX2FsbF9w
YXNzZWQoZmlyc3RfdGVzdF9yZXN1bHRzKV0KKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5
c2lzVGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRl
ZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0g
QmluZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmlu
ZGluZ3NUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1
ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhbJ1Rlc3RNYXBMaWtlLmlkbCddKQorICAg
ICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVz
dF9maXgoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJl
c3VsdHMoW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3Vs
dHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNr
KGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVy
bl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92
YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBCaW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE1hcExpa2UuaWRs
J10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydU
ZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkK
KworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAg
IGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5p
ZGwnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gQmluZGluZ3NUZXN0UmVzdWx0cyhb
J1Rlc3RNYXBMaWtlLmlkbCcsICdUZXN0Tm9kZS5pZGwnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVz
X2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBC
aW5kaW5nc1Rlc3RSZXN1bHRzKFsnVGVzdE5vZGUuaWRsJ10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEJpbmRpbmdzVGVzdFJlc3VsdHMoWydUZXN0TWFwTGlrZS5pZGwnXSkKKyAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVz
dF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3Ip
OgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtLnB5CShyZXZpc2lvbiAyMTM3MTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNyw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgog
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKK2Zyb20g
d2Via2l0cHkudG9vbC5ib3QuYmluZGluZ3N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgQmluZGlu
Z3NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHku
dG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKQEAgLTU5
LDYgKzYwLDggQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhYwogCiAg
ICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoKICAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9w
b3J0LmpzY19yZXN1bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICBlbGlmIHNlbGYuZ3JvdXAoKSA9
PSAiYmluZGluZ3MiOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEJp
bmRpbmdzVGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5qc2NfcmVzdWx0
c19kaXJlY3RvcnkoKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVz
dWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9w
b3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIApAQCAtODgs
NyArOTEsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjCiAKICAg
ICAjIFRoaXMgZXhpc3RzIGZvciBtb2NraW5nCiAgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBw
YXRjaCk6Ci0gICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBhdGNo
LCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKyAgICAgICAgcmV0dXJuIEVhcmx5V2FybmluZ1N5
c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNob3VsZF9ydW5fdGVzdHM9c2VsZi5fb3B0aW9ucy5ydW5f
dGVzdHMsIHNob3VsZF9idWlsZD1zZWxmLnNob3VsZF9idWlsZCkKIAogICAgIGRlZiByZXZpZXdf
cGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2socGF0
Y2gpCkBAIC0xNzQsNSArMTc3LDYgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0o
QWJzdHJhYwogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJz
JywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0
cycsIGNscy5ydW5fdGVzdHMpLAogICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0
KCdncm91cCcsIE5vbmUpLAorICAgICAgICAgICAgICAgICdzaG91bGRfYnVpbGQnOiBjb25maWcu
Z2V0KCdzaG91bGRCdWlsZCcsIFRydWUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVy
biBjbGFzc2VzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDIxMzcxMykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9l
YXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0
X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYmluZGluZ3N0
ZXN0cmVzdWx0cyBpbXBvcnQgQmluZGluZ3NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENh
cHR1cmUKQEAgLTU2LDYgKzU3LDEyIEBAIGNsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXMKICAgICBfZ3JvdXAgPSAianNjIgogCiAKK2NsYXNzIFRlc3RCaW5kaW5nc0VXUyhB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgcG9ydF9uYW1lID0gIm1hYyIKKyAgICBf
YnVpbGRfc3R5bGUgPSBOb25lCisgICAgX2dyb3VwID0gImJpbmRpbmdzIgorCisKIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICBkZWYgX3Rlc3Rf
bWVzc2FnZShzZWxmLCBld3MsIHJlc3VsdHMsIG1lc3NhZ2UpOgogICAgICAgICBld3MuYmluZF90
b190b29sKE1vY2tUb29sKCkpCkBAIC04MSw2ICs4OCwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbVRlc3QoUXVlCiAgICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVz
dHM6XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYu
eWFtbC9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiCiAg
ICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCiAKKyAgICBk
ZWYgdGVzdF9mYWlsaW5nX2JpbmRpbmdzX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV3
cyA9IFRlc3RCaW5kaW5nc0VXUygpCisgICAgICAgIHJlc3VsdHMgPSBsYW1iZGEgYTogQmluZGlu
Z3NUZXN0UmVzdWx0cyhbIihKUykgVGVzdE1hcExpa2UuaWRsIiwgIihKUykgVGVzdE5vZGUuaWRs
Il0pCisgICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG4oSlMpIFRlc3RNYXBM
aWtlLmlkbFxuKEpTKSBUZXN0Tm9kZS5pZGwiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShl
d3MsIHJlc3VsdHMsIG1lc3NhZ2UpCisKIAogY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRh
c2tGb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgogICAg
IGRlZiBfdGVzdF9wYXRjaChzZWxmKToKQEAgLTEwNCw2ICsxMTcsMTMgQEAgY2xhc3MgRWFybHlX
YXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KQogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjog
ZXdzLmJ1aWxkX3N0eWxlKCksCiAgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAoKSwKICAg
ICAgICAgfQorCisgICAgICAgIGlmIGV3cy5zaG91bGRfYnVpbGQ6CisgICAgICAgICAgICBidWls
ZF9saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxl
KXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAl
IHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxkX2xp
bmUgPSAiIgorICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydidWlsZF9saW5lJ10gPSBidWls
ZF9saW5lCisKICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKICAgICAgICAgICAgIHJ1bl90ZXN0
c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVy
YWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0t
cG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAg
ICAgICAgIGVsc2U6CkBAIC0xMjMsOCArMTQzLDcgQEAgUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbQogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6
IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQg
LS1uby11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNo
aXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5j
b20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQp
cyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1
aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1
cmUpcwotJShydW5fdGVzdHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19yZXBs
YWNlbWVudHMsCislKGJ1aWxkX2xpbmUpcyUocnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVz
KXMiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVj
dGVkX2Vycm9yIjogIk1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAgICAgICJoYW5kbGVf
c2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRc
biIsCiAgICAgICAgIH0KQEAgLTE2NCw2ICsxODMsNyBAQCBSdW5uaW5nOiB3ZWJraXQtcGF0Y2gg
LS1zdGF0dXMtaG9zdD1leGFtCiAgICAgICAgICAgICAnbWFjLXdrMi1ld3MnLAogICAgICAgICAg
ICAgJ21hYy1kZWJ1Zy1ld3MnLAogICAgICAgICAgICAgJ21hYy0zMmJpdC1ld3MnLAorICAgICAg
ICAgICAgJ2JpbmRpbmdzLWV3cycsCiAgICAgICAgICAgICAnanNjLWV3cycsCiAgICAgICAgIH0K
ICAgICAgICAgY2xhc3NlcyA9IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2Ns
YXNzZXMoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0
Y2hyZWxldmFuY2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkJKHJldmlzaW9uIDIxMzcxMykKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNywxMSBAQCBjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFi
c3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKKyAg
ICBiaW5kaW5nc19wYXRocyA9IFsKKyAgICAgICAgIlNvdXJjZS9XZWJDb3JlIiwKKyAgICAgICAg
IlRvb2xzIiwKKyAgICBdCisKICAgICBqc2NfcGF0aHMgPSBbCiAgICAgICAgICJKU1Rlc3RzLyIs
CiAgICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKQEAgLTUyLDEyICs1NywxMyBAQCBj
bGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3RlcCk6CiAgICAgXQogCiAgICAgZ3Jv
dXBfdG9fcGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2JpbmRpbmdzJzogYmluZGluZ3NfcGF0
aHMsCiAgICAgICAgICdqc2MnOiBqc2NfcGF0aHMsCiAgICAgfQogCiAgICAgZGVmIF9jaGFuZ2Vz
X2FyZV9yZWxldmFudChzZWxmLCBjaGFuZ2VkX2ZpbGVzKToKICAgICAgICAgIyBJbiB0aGUgZGVm
YXVsdCBjYXNlLCBhbGwgcGF0Y2hlcyBhcmUgcmVsZXZhbnQKLSAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5ncm91cCAhPSAnanNjJzoKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91cCBub3Qg
aW4gc2VsZi5ncm91cF90b19wYXRoc19tYXBwaW5nOgogICAgICAgICAgICAgcmV0dXJuIFRydWUK
IAogICAgICAgICBwYXR0ZXJucyA9IHNlbGYuZ3JvdXBfdG9fcGF0aHNfbWFwcGluZ1tzZWxmLl9v
cHRpb25zLmdyb3VwXQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0
ZXBzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9zdGVwc191bml0dGVzdC5weQkocmV2aXNpb24gMjEzNzEzKQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0yNTYsMyArMjU2LDI5IEBAIFRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBj
aGFuZ2UKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9m
YWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJywgJy0tanNvbi1vdXRwdXQ9
L3RtcC9iaW5kaW5nc190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKICIi
IgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4s
IFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNo
X3JlbGV2YW50X2JpbmRpbmdzKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisg
ICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tf
b3B0aW9ucy5ncm91cCA9ICJiaW5kaW5ncyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsi
U291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbiIsICJTb3VyY2UvQ2hhbmdlTG9nIl0KKyAgICAg
ICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0
IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5f
ZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMu
Q2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVk
X2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKKyIiIgorICAgICAgICBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVk
X2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9i
aW5kaW5ncyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2Nr
X29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3Jv
dXAgPSAiYmluZGluZ3MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRy
dWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIlNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9NYWtlZmlsZSIsICJTb3VyY2UvQ2hhbmdlTG9nIl0KKyAgICAgICAgIyBGSVhN
RTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlz
IHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRl
ZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRj
aFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAi
IiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSBy
ZWxldmFudCBjaGFuZ2VzLgorIiIiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>