<?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>121030</bug_id>
          
          <creation_ts>2013-09-09 09:01:45 -0700</creation_ts>
          <short_desc>[webkitpy] Remove the DeprecatedPort class</short_desc>
          <delta_ts>2013-10-19 11:54:18 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>926721</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-09-09 09:01:45 -0700</bug_when>
    <thetext>[webkitpy] Remove the DeprecatedPort class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926744</commentid>
    <comment_count>1</comment_count>
      <attachid>211051</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-09-09 09:47:11 -0700</bug_when>
    <thetext>Created attachment 211051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926745</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-09 09:49:16 -0700</bug_when>
    <thetext>Attachment 211051 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/webkitpy/common/config/ports.py&apos;, u&apos;Tools/Scripts/webkitpy/common/config/ports_mock.py&apos;, u&apos;Tools/Scripts/webkitpy/common/config/ports_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/base.py&apos;, u&apos;Tools/Scripts/webkitpy/port/base_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/efl.py&apos;, u&apos;Tools/Scripts/webkitpy/port/efl_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/gtk.py&apos;, u&apos;Tools/Scripts/webkitpy/port/gtk_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/mac_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/qt.py&apos;, u&apos;Tools/Scripts/webkitpy/port/qt_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/port/test.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/bot/flakytestreporter.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/bot/irc_command.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/commands/download_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/commands/queues.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/main.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/mocktool.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/build.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/checkstyle.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/commit.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/preparechangelog.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/preparechangelogforrevert.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/runtests.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/runtests_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/steps_unittest.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/update.py&apos;, u&apos;Tools/Scripts/webkitpy/tool/steps/update_unittest.py&apos;]&quot; exit_code: 1
Tools/Scripts/webkitpy/port/test.py:555:  [TestPort.run_python_unittests_command] An attribute affected in webkitpy.tool.steps.runtests_unittest line 40 hide this method  [pylint/E0202] [5]
Tools/Scripts/webkitpy/port/test.py:558:  [TestPort.run_perl_unittests_command] An attribute affected in webkitpy.tool.steps.runtests_unittest line 41 hide this method  [pylint/E0202] [5]
Total errors found: 2 in 28 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>926850</commentid>
    <comment_count>3</comment_count>
      <attachid>211051</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-09-09 12:41:53 -0700</bug_when>
    <thetext>Comment on attachment 211051
Patch

Clearing flags on attachment: 211051

Committed r155373: &lt;http://trac.webkit.org/changeset/155373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926851</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-09-09 12:41:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941529</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-19 11:54:18 -0700</bug_when>
    <thetext>This regressed EWS. Now all EWS bots are using the default port in the environment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211051</attachid>
            <date>2013-09-09 09:47:11 -0700</date>
            <delta_ts>2013-09-09 12:41:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121030-20130909184709.patch</filename>
            <type>text/plain</type>
            <size>68652</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MzIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzODEyNjIyMTM0OWQyNzE0OWM2ZDAzMGYxMWIxOWMz
YjY0NWRiZC4uZGQwODVjOTE4YzE1ZjJlZGMwZTUwMDQwZjFkMTZmNjQ0OTM1ZTdjMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
OCBAQAorMjAxMy0wOS0wOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW3dlYmtpdHB5XSBSZW1vdmUgdGhlIERlcHJlY2F0ZWRQb3J0IGNsYXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwMzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIHJl
bWFpbmluZyB1c2VzIG9mIERlcHJlY2F0ZWRQb3J0LCBmb2xkaW5nIGl0cyBmdW5jdGlvbmFsaXR5
IGludG8gdGhlIFBvcnQgY2xhc3MuCisKKyAgICAgICAgVGhlIHZhcmlvdXMgbWV0aG9kcyByZXR1
cm5pbmcgY29tbWFuZHMgYXJlIG1vdmVkIGZyb20gdGhlIERlcHJlY2F0ZWRQb3J0IGNsYXNzIGlu
dG8gdGhlIFBvcnQgY2xhc3MsCisgICAgICAgIHdpdGggdGhlIFBvcnQgc3ViY2xhc3NlcyBvdmVy
cmlkaW5nIHNwZWNpZmljIG1ldGhvZHMgYXMgcmVxdWlyZWQuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IFJlbW92ZWQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21vY2sucHk6IFJlbW92ZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OiBS
ZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAg
ICAoUG9ydC50b29saW5nX2ZsYWcpOiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjb21tYW5kIGxp
bmUgYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgdHlwZSBvZiB0aGUgcG9ydC4KKyAg
ICAgICAgSXQncyBmb3JtYXR0ZWQgYXMgJy0tcG9ydD1wb3J0X25hbWUnLCB3aGVyZSBwb3J0X25h
bWUgaXMgdGhlIHBvcnQncyBuYW1lIHRoYXQncyBhZGRpdGlvbmFsbHkgYXBwZW5kZWQgdGhlICct
d2syJworICAgICAgICBzdHJpbmcgaWYgdGhlIHBvcnQgaW5zdGFuY2UgcmVwcmVzZW50cyB0aGUg
V0syIHZhcmlhdGlvbiBvZiB0aGUgcG9ydC4KKyAgICAgICAgKFBvcnQuc2NyaXB0X3NoZWxsX2Nv
bW1hbmQpOiBNb3ZlZCBoZXJlIGZyb20gdGhlIERlcHJlY2F0ZWRQb3J0IGludGVyZmFjZS4KKyAg
ICAgICAgKFBvcnQubWFrZV9hcmdzKTogRGl0dG8uCisgICAgICAgIChQb3J0LnVwZGF0ZV93ZWJr
aXRfY29tbWFuZCk6IERpdHRvLgorICAgICAgICAoUG9ydC5jaGVja193ZWJraXRfc3R5bGVfY29t
bWFuZCk6IERpdHRvLgorICAgICAgICAoUG9ydC5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKTog
RGl0dG8uCisgICAgICAgIChQb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKTogRGl0dG8uCisgICAg
ICAgIChQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogRGl0dG8uCisgICAg
ICAgIChQb3J0LnJ1bl93ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kKTogRGl0dG8uCisgICAgICAg
IChQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IERpdHRvLgorICAgICAgICAoUG9ydC5y
dW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKTogRGl0dG8uCisgICAgICAgIChQb3J0LnJ1bl9w
ZXJsX3VuaXR0ZXN0c19jb21tYW5kKTogRGl0dG8uCisgICAgICAgIChQb3J0LnJ1bl9iaW5kaW5n
c190ZXN0c19jb21tYW5kKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2VfdW5pdHRlc3QucHk6CisgICAgICAgIChQb3J0VGVzdC50ZXN0X2J1aWxkX3dlYmtpdF9j
b21tYW5kKTogQWRkIGEgdGVzdCBmb3IgdGhlIFBvcnQuYnVpbGRfd2Via2l0X2NvbW1hbmQoKSBt
ZXRob2QgdGhhdCB0ZXN0cyBjb3JyZWN0CisgICAgICAgIHJldHVybiB2YWx1ZSB3aXRoIGRpZmZl
cmVudCBidWlsZCB0eXBlcyBwYXNzZWQgdG8gdGhlIG1ldGhvZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZWZsLnB5OgorICAgICAgICAoRWZsUG9ydC5idWlsZF93ZWJraXRfY29t
bWFuZCk6IE92ZXJyaWRlIHRoZSBQb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKCkgbWV0aG9kLCBh
cHBlbmRpbmcgdGhlIG5lY2Vzc2FyeSBvcHRpb25zCisgICAgICAgIHRvIHRoZSBjb21tYW5kIGxp
bmUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbF91bml0dGVzdC5weToKKyAg
ICAgICAgKEVmbFBvcnRUZXN0LnRlc3RfY29tbWFuZHMpOiBBIHRob3JvdWdoIHRlc3Qgb2YgcmV0
dXJuIHZhbHVlcyBmb3IgYWxsIHRoZSBuZXcgbWV0aG9kcywgZm9yIGJvdGggdGhlIFdLMSBhbmQg
V0syCisgICAgICAgIHZhcmlhdGlvbnMgb2YgdGhlIEVmbFBvcnQgY2xhc3MuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weToKKyAgICAgICAgKEd0a1BvcnQuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQpOiBPdmVycmlkZSB0aGUgUG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCgpIG1l
dGhvZCwgYXBwZW5kaW5nIHRoZSBuZWNlc3Nhcnkgb3B0aW9ucworICAgICAgICB0byB0aGUgY29t
bWFuZCBsaW5lLgorICAgICAgICAoR3RrUG9ydC5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQpOiBE
aXR0byBmb3IgUG9ydC5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoKS4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZ3RrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoR3RrUG9ydFRlc3Qu
dGVzdF9jb21tYW5kcyk6IEEgdGhvcm91Z2ggdGVzdCBvZiByZXR1cm4gdmFsdWVzIGZvciBhbGwg
dGhlIG5ldyBtZXRob2RzLCBmb3IgYm90aCB0aGUgV0sxCisgICAgICAgIGFuZCBXSzIgdmFyaWF0
aW9ucyBvZiB0aGUgR3RrUG9ydCBjbGFzcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTWFjVGVzdC50ZXN0X2NvbW1hbmRzKTogQSB0
aG9yb3VnaCB0ZXN0IG9mIHJldHVybiB2YWx1ZXMgZm9yIGFsbCB0aGUgbmV3IG1ldGhvZHMsIGZv
ciBib3RoIHRoZSBXSzEgYW5kIFdLMgorICAgICAgICB2YXJpYXRpb25zIG9mIHRoZSBNYWNQb3J0
IGNsYXNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9xdC5weToKKyAgICAgICAg
KFF0UG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6IE92ZXJyaWRlIHRoZSBQb3J0LmJ1aWxkX3dl
YmtpdF9jb21tYW5kKCkgbWV0aG9kLCBhcHBlbmRpbmcgdGhlIG5lY2Vzc2FyeSBvcHRpb25zCisg
ICAgICAgIHRvIHRoZSBjb21tYW5kIGxpbmUuCisgICAgICAgIChRdFBvcnQucnVuX3dlYmtpdF90
ZXN0c19jb21tYW5kKTogRGl0dG8gZm9yIFBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3F0X3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoUXRQb3J0VGVzdC50ZXN0X2NvbW1hbmRzKTogQSB0aG9yb3VnaCB0ZXN0IG9mIHJldHVybiB2
YWx1ZXMgZm9yIGFsbCB0aGUgbmV3IG1ldGhvZHMsIGZvciBib3RoIHRoZSBXSzEgYW5kIFdLMgor
ICAgICAgICB2YXJpYXRpb25zIG9mIHRoZSBRdFBvcnQgY2xhc3MuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L3Rlc3QucHk6CisgICAgICAgIChUZXN0UG9ydC5tYWtlX2FyZ3MpOiBS
ZXR1cm4gYSBtb2NrIHZhbHVlIHRoYXQncyBpbnRlbmRlZCBmb3IgdGVzdGluZy4KKyAgICAgICAg
KFRlc3RQb3J0LmNoZWNrX3dlYmtpdF9zdHlsZV9jb21tYW5kKTogUmV0dXJuIHRoZSBzY3JpcHQn
cyBuYW1lIHByZXBlbmRlZCB3aXRoICdtb2NrLScuCisgICAgICAgIChUZXN0UG9ydC51cGRhdGVf
d2Via2l0X2NvbW1hbmQpOiBEaXR0by4KKyAgICAgICAgKFRlc3RQb3J0LmJ1aWxkX3dlYmtpdF9j
b21tYW5kKTogRGl0dG8uCisgICAgICAgIChUZXN0UG9ydC5wcmVwYXJlX2NoYW5nZWxvZ19jb21t
YW5kKTogRGl0dG8uCisgICAgICAgIChUZXN0UG9ydC5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21t
YW5kKTogRGl0dG8uCisgICAgICAgIChUZXN0UG9ydC5ydW5fcGVybF91bml0dGVzdHNfY29tbWFu
ZCk6IERpdHRvLgorICAgICAgICAoVGVzdFBvcnQucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQpOiBEaXR0by4KKyAgICAgICAgKFRlc3RQb3J0LnJ1bl93ZWJraXRfdW5pdF90ZXN0c19j
b21tYW5kKTogRGl0dG8uCisgICAgICAgIChUZXN0UG9ydC5ydW5fd2Via2l0X3Rlc3RzX2NvbW1h
bmQpOiBEaXR0by4KKyAgICAgICAgKFRlc3RQb3J0LnJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5k
KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3Ry
ZXBvcnRlci5weToKKyAgICAgICAgKEZsYWt5VGVzdFJlcG9ydGVyLl9faW5pdF9fKTogV2ViS2l0
UGF0Y2gucG9ydCgpIHNob3VsZCBiZSBjYWxsZWQgbm93LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHk6CisgICAgICAgIChSb2xsb3V0Ll91cGRhdGVf
d29ya2luZ19jb3B5KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICAoRG93bmxvYWRDb21tYW5kc1Rl
c3QudGVzdF9sYW5kX2Nvd2hhbmQpOiBGaXggYSB0eXBvLCBqYXZhY3JpcHRjb3JlIC0+IGphdmFz
Y3JpcHRjb3JlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJs
eXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5y
dW5fY29tbWFuZCk6IFVzZSB0aGUgdG9vbGluZyBmbGFnIGFzIHByb3ZpZGVkIGJ5IHRoZSBQb3J0
IGludGVyZmFjZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzLnB5OgorICAgICAgICAoUGF0Y2hQcm9jZXNzaW5nUXVldWUuYmVnaW5fd29ya19xdWV1ZSk6
IFJlbW92ZSB0aGUgdXNlIG9mIHRoZSBEZXByZWNhdGVkUG9ydC4gQ3JlYXRlIHRoZSBwb3J0IHRo
YXQgd2lsbCBiZSB1c2VkCisgICAgICAgIGJ5IHRoZSBQYXRjaFByb2Nlc3NpbmdRdWV1ZSB0aHJv
dWdoIHRoZSB0b29sJ3MgcG9ydCBmYWN0b3J5LCBhbmQgYWxzbyBwYXNzIGl0IHRvIHRoZSB0b29s
LCBrZWVwaW5nIHRoZSBuYXN0eQorICAgICAgICBhYnN0cmFjdGlvbiB2aW9sYXRpb24uCisgICAg
ICAgIChDb21taXRRdWV1ZS5ydW5fY29tbWFuZCk6IFVzZSB0aGUgdG9vbGluZyBmbGFnIGFzIHBy
b3ZpZGVkIGJ5IHRoZSBQb3J0IGludGVyZmFjZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvbWFpbi5weToKKyAgICAgICAgKFdlYktpdFBhdGNoLl9faW5pdF9fKTogc2VsZi5fZGVw
cmVjYXRlZF9wb3J0IC0+IHNlbGYuX3BvcnQuCisgICAgICAgIChXZWJLaXRQYXRjaC5wb3J0KTog
UmVwbGFjZXMgdGhlIFdlYktpdFBhdGNoLmRlcHJlY2F0ZWRfcG9ydCgpIG1ldGhvZCwgcmV0dXJu
cyBzZWxmLl9wb3J0LgorICAgICAgICAoV2ViS2l0UGF0Y2guaGFuZGxlX2dsb2JhbF9vcHRpb25z
KTogQ3JlYXRlIHRoZSBQb3J0IG9iamVjdCB0aHJvdWdoIHRoZSBQb3J0RmFjdG9yeS4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisgICAgICAgIChNb2NrVG9v
bC5fX2luaXRfXyk6IHNlbGYuX2RlcHJlY2F0ZWRfcG9ydCAtPiBzZWxmLl9wb3J0LiBUaGUgVGVz
dFBvcnQgb2JqZWN0IGFsc28gaGFzIGl0cyBuYW1lIG1ldGhvZCBvdmVycmlkZGVuCisgICAgICAg
IHRvIHJldHVybiAnTW9ja1BvcnQnLCBhcyBtYW55IG91dHB1dCBjb21wYXJpc29ucyByZWx5IG9u
IHRoZSBNb2NrUG9ydCBuYW1lLiBUaGVzZSBzaG91bGQgYWxsIGJlIHJlcGxhY2VkIGxhdGVyLCBp
bgorICAgICAgICBhIHNlcGFyYXRlIHBhdGNoLgorICAgICAgICAoTW9ja1Rvb2wucG9ydCk6IE1p
bWlja3MgV2ViS2l0UGF0Y2gucG9ydCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9idWlsZC5weToKKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTogV2ViS2l0UGF0Y2gucG9y
dCgpIHNob3VsZCBiZSBjYWxsZWQgbm93LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3N0eWxlLnB5OgorICAgICAgICAoQ2hlY2tTdHlsZS5ydW4pOiBEaXR0by4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY29tbWl0LnB5OgorICAgICAg
ICAoQ29tbWl0Ll9jaGVja190ZXN0X2V4cGVjdGF0aW9ucyk6IERpdHRvLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5OgorICAgICAgICAo
UHJlcGFyZUNoYW5nZUxvZy5ydW4pOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydC5weToKKyAgICAgICAgKFByZXBh
cmVDaGFuZ2VMb2dGb3JSZXZlcnQucnVuKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMucnVuKTogRGl0
dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUnVuVGVzdHNUZXN0LnRlc3Rfd2Via2l0X3J1bl91bml0X3Rlc3Rz
KTogVGhlIHVubmVjZXNzYXJ5IG1ldGhvZHMgc2hvdWxkIG5vdyBiZSBvdmVycmlkZGVuIG9uIE1v
Y2tUb29sLl9wb3J0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weToKKyAgICAgICAgKFN0ZXBzVGVzdC50ZXN0X3J1bnRlc3RzX2FyZ3MpOiBS
ZW1vdmUgdGhlIE1vY2tUb29sLl9kZXByZWNhdGVkX3BvcnQgb3ZlcnJpZGUsIGJ1dCBkb24ndCBy
ZXBsYWNlIGl0LiBSYXRoZXIgdGhhbgorICAgICAgICB0aGF0IHRoZSBleHBlY3RlZCB0ZXN0IG91
dHB1dCBpcyBhZGp1c3RlZCB0byBjb250YWluIHRoZSBtb2NrLSogY29tbWFuZCBuYW1lcy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBkYXRlLnB5OgorICAgICAgICAo
VXBkYXRlLl91cGRhdGVfY29tbWFuZCk6IFdlYktpdFBhdGNoLnBvcnQoKSBzaG91bGQgYmUgY2Fs
bGVkIG5vdy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBkYXRlX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoVXBkYXRlVGVzdC50ZXN0X3VwZGF0ZV9jb21tYW5kX25vbl9p
bnRlcmFjdGl2ZSk6IE92ZXJyaWRlIHRoZSBNb2NrVG9vbC5fcG9ydCBmb3IgdGVzdGluZyBwdXJw
b3NlcyB3aXRoIHRoZSBwb3J0CisgICAgICAgIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHJlbW92
ZWQgRGVwcmVjYXRlZFBvcnQgc3ViY2xhc3Nlcy4KKyAgICAgICAgKFVwZGF0ZVRlc3QudGVzdF91
cGRhdGVfY29tbWFuZF9pbnRlcmFjdGl2ZSk6IERpdHRvLgorCiAyMDEzLTA5LTA4ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgcnVuLWpzYy1zdHJlc3MtdGVzdHMg
c2hvdWxkIGJlIG1vcmUgcGFyYW5vaWQgYWJvdXQgY2FsbGluZyBtYWtlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDBjMjBkYWU1MTI0YTI3ZDU3Yjg2ZTdkYWM1MmY3MzRjYzU2NjRmOTcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjMyICsw
LDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMKLSMgV2ViS2l0J3MgUHl0aG9uIG1vZHVsZSBmb3Ig
dW5kZXJzdGFuZGluZyB0aGUgdmFyaW91cyBwb3J0cwotCi1pbXBvcnQgb3MKLWltcG9ydCBwbGF0
Zm9ybQotaW1wb3J0IHN5cwotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBFeGVjdXRpdmUKLQotCi1jbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgotICAg
IHJlc3VsdHNfZGlyZWN0b3J5ID0gIi90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cyIKLQotICAgICMg
U3ViY2xhc3NlcyBtdXN0IG92ZXJyaWRlCi0gICAgcG9ydF9mbGFnX25hbWUgPSBOb25lCi0KLSAg
ICAjIEZJWE1FOiBUaGlzIGlzIG9ubHkgdXNlZCBieSBCb3RJbmZvLgotICAgIGRlZiBuYW1lKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18KLQotICAgIGRlZiBmbGFnKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLnBvcnRfZmxhZ19uYW1lOgotICAgICAgICAgICAgcmV0dXJuICIt
LXBvcnQ9JXMiICUgc2VsZi5wb3J0X2ZsYWdfbmFtZQotICAgICAgICByZXR1cm4gTm9uZQotCi0g
ICAgIyBXZSBtaWdodCBuZWVkIHRvIHBhc3Mgc2NtIGludG8gdGhpcyBmdW5jdGlvbiBmb3Igc2Nt
LmNoZWNrb3V0X3Jvb3QKLSAgICBkZWYgc2NyaXB0X3BhdGgoc2VsZiwgc2NyaXB0X25hbWUpOgot
ICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKCJUb29scyIsICJTY3JpcHRzIiwgc2NyaXB0X25h
bWUpCi0KLSAgICBkZWYgc2NyaXB0X3NoZWxsX2NvbW1hbmQoc2VsZiwgc2NyaXB0X25hbWUpOgot
ICAgICAgICBzY3JpcHRfcGF0aCA9IHNlbGYuc2NyaXB0X3BhdGgoc2NyaXB0X25hbWUpCi0gICAg
ICAgIHJldHVybiBFeGVjdXRpdmUuc2hlbGxfY29tbWFuZF9mb3Jfc2NyaXB0KHNjcmlwdF9wYXRo
KQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBwb3J0KHBvcnRfbmFtZSk6Ci0gICAgICAg
IHBvcnRzID0gewotICAgICAgICAgICAgImd0ayI6IEd0a1BvcnQsCi0gICAgICAgICAgICAiZ3Rr
LXdrMiI6IEd0a1dLMlBvcnQsCi0gICAgICAgICAgICAibWFjIjogTWFjUG9ydCwKLSAgICAgICAg
ICAgICJtYWMtd2syIjogTWFjV0syUG9ydCwKLSAgICAgICAgICAgICJ3aW4iOiBXaW5Qb3J0LAot
ICAgICAgICAgICAgInF0IjogUXRQb3J0LAotICAgICAgICAgICAgInF0LXdrMiI6IFF0V0syUG9y
dCwKLSAgICAgICAgICAgICJlZmwiOiBFZmxQb3J0LAotICAgICAgICAgICAgImVmbC13azIiOiBF
ZmxXSzJQb3J0LAotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHRfcG9ydCA9IHsKLSAgICAgICAg
ICAgICJXaW5kb3dzIjogV2luUG9ydCwKLSAgICAgICAgICAgICJEYXJ3aW4iOiBNYWNQb3J0LAot
ICAgICAgICB9Ci0gICAgICAgICMgRG8gd2UgcmVhbGx5IG5lZWQgTWFjUG9ydCBhcyB0aGUgdWx0
aW1hdGUgZGVmYXVsdD8KLSAgICAgICAgcmV0dXJuIHBvcnRzLmdldChwb3J0X25hbWUsIGRlZmF1
bHRfcG9ydC5nZXQocGxhdGZvcm0uc3lzdGVtKCksIE1hY1BvcnQpKSgpCi0KLSAgICBkZWYgbWFr
ZUFyZ3Moc2VsZik6Ci0gICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkbid0IHVzZSBhIHN0YXRp
YyBFeGVjdXRpdmUoKS4KLSAgICAgICAgYXJncyA9ICctLW1ha2VhcmdzPSItaiVzIicgJSBFeGVj
dXRpdmUoKS5jcHVfY291bnQoKQotICAgICAgICBpZiBvcy5lbnZpcm9uLmhhc19rZXkoJ01BS0VG
TEFHUycpOgotICAgICAgICAgICAgYXJncyA9ICctLW1ha2VhcmdzPSIlcyInICUgb3MuZW52aXJv
blsnTUFLRUZMQUdTJ10KLSAgICAgICAgcmV0dXJuIGFyZ3MKLQotICAgIGRlZiB1cGRhdGVfd2Vi
a2l0X2NvbW1hbmQoc2VsZiwgbm9uX2ludGVyYWN0aXZlPUZhbHNlKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInVwZGF0ZS13ZWJraXQiKQotCi0gICAgZGVmIGNo
ZWNrX3dlYmtpdF9zdHlsZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiY2hlY2std2Via2l0LXN0eWxlIikKLQotICAgIGRlZiBwcmVwYXJl
X2NoYW5nZWxvZ19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hl
bGxfY29tbWFuZCgicHJlcGFyZS1DaGFuZ2VMb2ciKQotCi0gICAgZGVmIGJ1aWxkX3dlYmtpdF9j
b21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgotICAgICAgICBjb21tYW5kID0gc2VsZi5z
Y3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikKLSAgICAgICAgaWYgYnVpbGRfc3R5
bGUgPT0gImRlYnVnIjoKLSAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVnIikKLSAg
ICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgotICAgICAgICAgICAgY29tbWFuZC5h
cHBlbmQoIi0tcmVsZWFzZSIpCi0gICAgICAgIHJldHVybiBjb21tYW5kCi0KLSAgICBkZWYgcnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQotCi0gICAg
ZGVmIHJ1bl93ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQotCi0g
ICAgZGVmIHJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHB5IikKLQotICAgIGRlZiBy
dW5fcGVybF91bml0dGVzdHNfY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2Ny
aXB0X3NoZWxsX2NvbW1hbmQoInRlc3Qtd2Via2l0cGVybCIpCi0KLSAgICBkZWYgcnVuX2JpbmRp
bmdzX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJydW4tYmluZGluZ3MtdGVzdHMiKQotCi0KLWNsYXNzIE1hY1BvcnQoRGVwcmVj
YXRlZFBvcnQpOgotICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKLQotCi1jbGFzcyBNYWNXSzJQ
b3J0KERlcHJlY2F0ZWRQb3J0KToKLSAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMtd2syIgotCi0g
ICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmKToKLSAgICAgICAgY29tbWFuZCA9
IHN1cGVyKE1hY1dLMlBvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpCi0gICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItMiIpCi0gICAgICAgIHJldHVybiBjb21tYW5kCi0KLQotY2xh
c3MgV2luUG9ydChEZXByZWNhdGVkUG9ydCk6Ci0gICAgcG9ydF9mbGFnX25hbWUgPSAid2luIgot
Ci0gICAgZGVmIHJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0KLWNsYXNzIEd0a1BvcnQoRGVwcmVjYXRlZFBvcnQpOgotICAgIHBvcnRfZmxh
Z19uYW1lID0gImd0ayIKLQotICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWls
ZF9zdHlsZT1Ob25lKToKLSAgICAgICAgY29tbWFuZCA9IHN1cGVyKEd0a1BvcnQsIHNlbGYpLmJ1
aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQotICAgICAgICBjb21t
YW5kLmFwcGVuZCgiLS1ndGsiKQotICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS11cGRhdGUtZ3Rr
IikKLSAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8td2Via2l0MiIpCi0gICAgICAgIGNvbW1h
bmQuYXBwZW5kKHN1cGVyKEd0a1BvcnQsIHNlbGYpLm1ha2VBcmdzKCkpCi0gICAgICAgIHJldHVy
biBjb21tYW5kCi0KLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYpOgotICAg
ICAgICBjb21tYW5kID0gc3VwZXIoR3RrUG9ydCwgc2VsZikucnVuX3dlYmtpdF90ZXN0c19jb21t
YW5kKCkKLSAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZ3RrIikKLSAgICAgICAgcmV0dXJuIGNv
bW1hbmQKLQotCi1jbGFzcyBHdGtXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKLSAgICBwb3J0X2Zs
YWdfbmFtZSA9ICJndGstd2syIgotCi0gICAgZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5kKHNlbGYs
IGJ1aWxkX3N0eWxlPU5vbmUpOgotICAgICAgICBjb21tYW5kID0gc3VwZXIoR3RrV0syUG9ydCwg
c2VsZikuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCi0gICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLWd0ayIpCi0gICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXVw
ZGF0ZS1ndGsiKQotICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKLSAgICAg
ICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoR3RrV0syUG9ydCwgc2VsZikubWFrZUFyZ3MoKSkKLSAg
ICAgICAgcmV0dXJuIGNvbW1hbmQKLQotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQo
c2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBzdXBlcihHdGtXSzJQb3J0LCBzZWxmKS5ydW5fd2Vi
a2l0X3Rlc3RzX2NvbW1hbmQoKQotICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1ndGsiKQotICAg
ICAgICBjb21tYW5kLmFwcGVuZCgiLTIiKQotICAgICAgICByZXR1cm4gY29tbWFuZAotCi0KLWNs
YXNzIFF0UG9ydChEZXByZWNhdGVkUG9ydCk6Ci0gICAgcG9ydF9mbGFnX25hbWUgPSAicXQiCi0K
LSAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0g
ICAgICAgIGNvbW1hbmQgPSBzdXBlcihRdFBvcnQsIHNlbGYpLmJ1aWxkX3dlYmtpdF9jb21tYW5k
KGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQotICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1xdCIp
Ci0gICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDIiKQotICAgICAgICBjb21tYW5k
LmFwcGVuZChzdXBlcihRdFBvcnQsIHNlbGYpLm1ha2VBcmdzKCkpCi0gICAgICAgIHJldHVybiBj
b21tYW5kCi0KLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAg
ICBjb21tYW5kID0gc3VwZXIoUXRQb3J0LCBzZWxmKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQo
KQotICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1xdCIpCi0gICAgICAgIHJldHVybiBjb21tYW5k
Ci0KLQotY2xhc3MgUXRXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKLSAgICBwb3J0X2ZsYWdfbmFt
ZSA9ICJxdC13azIiCi0KLSAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6Ci0gICAgICAgIGNvbW1hbmQgPSBzdXBlcihRdFdLMlBvcnQsIHNlbGYpLmJ1
aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQotICAgICAgICBjb21t
YW5kLmFwcGVuZCgiLS1xdCIpCi0gICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1cGVyKFF0V0syUG9y
dCwgc2VsZikubWFrZUFyZ3MoKSkKLSAgICAgICAgcmV0dXJuIGNvbW1hbmQKLQotICAgIGRlZiBy
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBzdXBlcihR
dFdLMlBvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpCi0gICAgICAgIGNvbW1h
bmQuYXBwZW5kKCItLXF0IikKLSAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0yIikKLSAgICAgICAg
cmV0dXJuIGNvbW1hbmQKLQotCi1jbGFzcyBFZmxQb3J0KERlcHJlY2F0ZWRQb3J0KToKLSAgICBw
b3J0X2ZsYWdfbmFtZSA9ICJlZmwiCi0KLSAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2Vs
ZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0gICAgICAgIGNvbW1hbmQgPSBzdXBlcihFZmxQb3J0LCBz
ZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKLSAgICAg
ICAgY29tbWFuZC5hcHBlbmQoIi0tZWZsIikKLSAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tdXBk
YXRlLWVmbCIpCi0gICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDIiKQotICAgICAg
ICBjb21tYW5kLmFwcGVuZChzdXBlcihFZmxQb3J0LCBzZWxmKS5tYWtlQXJncygpKQotICAgICAg
ICByZXR1cm4gY29tbWFuZAotCi0KLWNsYXNzIEVmbFdLMlBvcnQoRGVwcmVjYXRlZFBvcnQpOgot
ICAgIHBvcnRfZmxhZ19uYW1lID0gImVmbC13azIiCi0KLSAgICBkZWYgYnVpbGRfd2Via2l0X2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0gICAgICAgIGNvbW1hbmQgPSBzdXBlcihF
ZmxXSzJQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9z
dHlsZSkKLSAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZWZsIikKLSAgICAgICAgY29tbWFuZC5h
cHBlbmQoIi0tdXBkYXRlLWVmbCIpCi0gICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtp
dDEiKQotICAgICAgICBjb21tYW5kLmFwcGVuZChzdXBlcihFZmxXSzJQb3J0LCBzZWxmKS5tYWtl
QXJncygpKQotICAgICAgICByZXR1cm4gY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzc5Nzk2Y2Q4OWZkYzIxZTAwMGQ1YWY1MTg5NTkzYWEzNDNiMGQ1Zi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDYy
ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWNsYXNzIE1vY2tQb3J0KG9iamVjdCk6Ci0gICAg
ZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAiTW9ja1BvcnQiCi0KLSAgICBkZWYgY2hl
Y2tfd2Via2l0X3N0eWxlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbIm1vY2stY2hl
Y2std2Via2l0LXN0eWxlIl0KLQotICAgIGRlZiB1cGRhdGVfd2Via2l0X2NvbW1hbmQoc2VsZiwg
bm9uX2ludGVyYWN0aXZlPUZhbHNlKToKLSAgICAgICAgcmV0dXJuIFsibW9jay11cGRhdGUtd2Vi
a2l0Il0KLQotICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1O
b25lKToKLSAgICAgICAgcmV0dXJuIFsibW9jay1idWlsZC13ZWJraXQiXQotCi0gICAgZGVmIHBy
ZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbJ21vY2stcHJl
cGFyZS1DaGFuZ2VMb2cnXQotCi0gICAgZGVmIHJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQo
c2VsZik6Ci0gICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRweSddCi0KLSAgICBkZWYg
cnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbJ21vY2st
dGVzdC13ZWJraXRwZXJsJ10KLQotICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29t
bWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIFsnbW9jay1ydW4tamF2YWNyaXB0Y29yZS10ZXN0
cyddCi0KLSAgICBkZWYgcnVuX3dlYmtpdF91bml0X3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBbJ21vY2stcnVuLXdlYmtpdC11bml0LXRlc3RzJ10KLQotICAgIGRlZiBydW5f
d2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbJ21vY2stcnVuLXdl
YmtpdC10ZXN0cyddCi0KLSAgICBkZWYgcnVuX2JpbmRpbmdzX3Rlc3RzX2NvbW1hbmQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBbJ21vY2stcnVuLWJpbmRpbmdzLXRlc3RzJ10KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFjYTU0YTY4YTRkYzE5MDViOTA3NzFiOTRh
ZGE0NGYwNTNkMTQzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3Qu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAwOSwg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
aW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25m
aWcucG9ydHMgaW1wb3J0ICoKLQotCi1jbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X21hY19wb3J0KHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE1hY1BvcnQoKS5mbGFnKCksICItLXBvcnQ9bWFjIikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChNYWNQb3J0KCkucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIERlcHJlY2F0
ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoKSwgRGVw
cmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxk
X3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJi
dWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1h
Y1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXBy
ZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1y
ZWxlYXNlIl0pCi0KLSAgICBkZWYgdGVzdF9ndGtfcG9ydChzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChHdGtQb3J0KCkuZmxhZygpLCAiLS1wb3J0PWd0ayIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoR3RrUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXByZWNh
dGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikgKyBbIi0t
Z3RrIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrUG9ydCgpLmJ1aWxkX3dlYmtpdF9j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdl
YmtpdCIpICsgWyItLWd0ayIsICItLXVwZGF0ZS1ndGsiLCAiLS1uby13ZWJraXQyIiwgRGVwcmVj
YXRlZFBvcnQoKS5tYWtlQXJncygpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtQb3J0
KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQ
b3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIiwg
Ii0tZ3RrIiwgIi0tdXBkYXRlLWd0ayIsICItLW5vLXdlYmtpdDIiLCBEZXByZWNhdGVkUG9ydCgp
Lm1ha2VBcmdzKCldKQotCi0gICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Vi
a2l0LXRlc3RzIikgKyBbIi0tZ3RrIiwgIi0yIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
R3RrV0syUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2Ny
aXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWd0ayIsICItLXVwZGF0ZS1n
dGsiLCAiLS1uby13ZWJraXQxIiwgRGVwcmVjYXRlZFBvcnQoKS5tYWtlQXJncygpXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVp
bGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
ImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIiwgIi0tZ3RrIiwgIi0tdXBkYXRlLWd0ayIsICIt
LW5vLXdlYmtpdDEiLCBEZXByZWNhdGVkUG9ydCgpLm1ha2VBcmdzKCldKQotCi0gICAgZGVmIHRl
c3RfZWZsX3BvcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRWZsUG9ydCgpLmZs
YWcoKSwgIi0tcG9ydD1lZmwiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVmbFBvcnQoKS5i
dWlsZF93ZWJraXRfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21t
YW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1lZmwiLCAiLS11cGRhdGUtZWZsIiwgIi0tbm8td2Vi
a2l0MiIsIERlcHJlY2F0ZWRQb3J0KCkubWFrZUFyZ3MoKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoRWZsUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIp
LCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSAr
IFsiLS1kZWJ1ZyIsICItLWVmbCIsICItLXVwZGF0ZS1lZmwiLCAiLS1uby13ZWJraXQyIiwgRGVw
cmVjYXRlZFBvcnQoKS5tYWtlQXJncygpXSkKLQotICAgIGRlZiB0ZXN0X3F0X3BvcnQoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUXRQb3J0KCkuZmxhZygpLCAiLS1wb3J0PXF0IikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChRdFBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1h
bmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtpdC10
ZXN0cyIpICsgWyItLXF0Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUXRQb3J0KCkuYnVp
bGRfd2Via2l0X2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcXQiLCAiLS1uby13ZWJraXQyIiwgRGVwcmVjYXRlZFBv
cnQoKS5tYWtlQXJncygpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChRdFBvcnQoKS5idWls
ZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5z
Y3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWciLCAiLS1xdCIs
ICItLW5vLXdlYmtpdDIiLCBEZXByZWNhdGVkUG9ydCgpLm1ha2VBcmdzKCldKQotCi0gICAgZGVm
IHRlc3RfcXRfd2syX3BvcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUXRXSzJQ
b3J0KCkuZmxhZygpLCAiLS1wb3J0PXF0LXdrMiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UXRXSzJQb3J0KCkucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCku
c2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKSArIFsiLS1xdCIsICItMiJd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFF0V0syUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtp
dCIpICsgWyItLXF0IiwgRGVwcmVjYXRlZFBvcnQoKS5tYWtlQXJncygpXSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChRdFdLMlBvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHls
ZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQt
d2Via2l0IikgKyBbIi0tZGVidWciLCAiLS1xdCIsIERlcHJlY2F0ZWRQb3J0KCkubWFrZUFyZ3Mo
KV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IDY3NWI1NWY4NDgzMzEzMWUy
YjIwZTI0YmNlNTZhMmY4MWVkZDAwZmUuLmYyMGFjYzQ5MzQ3MzVkODU4MmNiOGU5MzU4MDgwYzU3
ZjA5ODZmMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC01MSw3ICs1MSw3
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBmaW5kX2ZpbGVzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbiBpbXBvcnQgcmVhZF9jaGVja3N1bV9mcm9tX3BuZwogZnJvbSB3ZWJraXRweS5jb21t
b24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0g
aW1wb3J0IHBhdGgKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lz
dGVtaG9zdCBpbXBvcnQgU3lzdGVtSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24ud2Via2l0X2Zp
bmRlciBpbXBvcnQgV2ViS2l0RmluZGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2Rl
bHMudGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgpAQCAtMTQxMyw2
ICsxNDEzLDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICAjIEZvciBleGFtcGxlIC0t
cXQgb24gbGludXgsIHNpbmNlIGEgdXNlciBtaWdodCBoYXZlIGJvdGggR3RrIGFuZCBRdCBsaWJy
YXJpZXMgaW5zdGFsbGVkLgogICAgICAgICByZXR1cm4gTm9uZQogCisgICAgZGVmIHRvb2xpbmdf
ZmxhZyhzZWxmKToKKyAgICAgICAgcmV0dXJuICItLXBvcnQ9JXMlcyIgJSAoc2VsZi5wb3J0X25h
bWUsICctd2syJyBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpIGVsc2Ug
JycpCisKICAgICAjIFRoaXMgaXMgbW9kZWxlZCBhZnRlciB3ZWJraXRkaXJzLnBtIGFyZ3VtZW50
c0ZvckNvbmZpZ3VyYXRpb24oKSBmcm9tIG9sZC1ydW4td2Via2l0LXRlc3RzCiAgICAgZGVmIF9h
cmd1bWVudHNfZm9yX2NvbmZpZ3VyYXRpb24oc2VsZik6CiAgICAgICAgIGNvbmZpZ19hcmdzID0g
W10KQEAgLTE1MzYsNiArMTUzOSw1MyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICMg
ZXhjZXB0IGZvciBRdCBiZWNhdXNlIFdlYktpdDIgaXMgb25seSBzdXBwb3J0ZWQgYnkgUXQgNS4w
ICh0aGVyZWZvcmU6IHF0LTUuMC13azIpLgogICAgICAgICByZXR1cm4gIiVzLXdrMiIgJSBzZWxm
LnBvcnRfbmFtZQogCisgICAgIyBXZSBtaWdodCBuZWVkIHRvIHBhc3Mgc2NtIGludG8gdGhpcyBm
dW5jdGlvbiBmb3Igc2NtLmNoZWNrb3V0X3Jvb3QKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVm
IHNjcmlwdF9zaGVsbF9jb21tYW5kKHNjcmlwdF9uYW1lKToKKyAgICAgICAgc2NyaXB0X3BhdGgg
PSBvcy5wYXRoLmpvaW4oIlRvb2xzIiwgIlNjcmlwdHMiLCBzY3JpcHRfbmFtZSkKKyAgICAgICAg
cmV0dXJuIEV4ZWN1dGl2ZS5zaGVsbF9jb21tYW5kX2Zvcl9zY3JpcHQoc2NyaXB0X3BhdGgpCisK
KyAgICBkZWYgbWFrZV9hcmdzKHNlbGYpOgorICAgICAgICBhcmdzID0gIi0tbWFrZWFyZ3M9XCIt
aiVzXCIiICUgc2VsZi5fZXhlY3V0aXZlLmNwdV9jb3VudCgpCisgICAgICAgIGlmICJNQUtFRkxB
R1MiIGluIG9zLmVudmlyb246CisgICAgICAgICAgICBhcmdzID0gIi0tbWFrZWFyZ3M9XCIlc1wi
IiAlIG9zLmVudmlyb25bIk1BS0VGTEFHUyJdCisgICAgICAgIHJldHVybiBhcmdzCisKKyAgICBk
ZWYgdXBkYXRlX3dlYmtpdF9jb21tYW5kKHNlbGYsIG5vbl9pbnRlcmFjdGl2ZT1GYWxzZSk6Cisg
ICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ1cGRhdGUtd2Via2l0IikK
KworICAgIGRlZiBjaGVja193ZWJraXRfc3R5bGVfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImNoZWNrLXdlYmtpdC1zdHlsZSIpCisKKyAg
ICBkZWYgcHJlcGFyZV9jaGFuZ2Vsb2dfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInByZXBhcmUtQ2hhbmdlTG9nIikKKworICAgIGRlZiBi
dWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29t
bWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpCisgICAgICAg
IGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgi
LS1kZWJ1ZyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJyZWxlYXNlIjoKKyAgICAgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQorICAgICAgICByZXR1cm4gY29tbWFuZAor
CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRl
c3RzIikKKworICAgIGRlZiBydW5fd2Via2l0X3VuaXRfdGVzdHNfY29tbWFuZChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0
LXRlc3RzIikKKworICAgIGRlZiBydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVzdC13ZWJraXRweSIp
CisKKyAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHBlcmwiKQorCisgICAg
ZGVmIHJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWJpbmRpbmdzLXRlc3RzIikKKwogCiBjbGFzcyBW
aXJ0dWFsVGVzdFN1aXRlKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGJh
c2UsIGFyZ3MsIHRlc3RzPU5vbmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2Jhc2VfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZV91bml0dGVzdC5weQppbmRleCBjMDRjYWUwYzBkNjM0MjkzNmY5YjE5MTM4YjNiYTAwZmQ3ZWQ2
OGQ1Li40ODg5MzhjODI4MjUxYWM5NGYyMWYxNWMzMDZlZjc1YjlmNGQwMTBjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91bml0dGVzdC5weQpAQCAtNDYzLDYgKzQ2Mywx
MiBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBz
ZWxmLm1ha2VfcG9ydChvcHRpb25zPW9wdHBhcnNlLlZhbHVlcyh7J2J1aWxkX2RpcmVjdG9yeSc6
ICcvbXktYnVpbGQtZGlyZWN0b3J5Lyd9KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Ll9idWlsZF9wYXRoKCksICcvbXktYnVpbGQtZGlyZWN0b3J5L1JlbGVhc2UnKQogCisgICAgZGVm
IHRlc3RfYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1h
a2VfcG9ydCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5idWlsZF93ZWJraXRfY29t
bWFuZCgpLCBbIlRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Il0pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCgicmVsZWFzZSIpLCBbIlRvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0IiwgIi0tcmVsZWFzZSJdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuYnVpbGRfd2Via2l0X2NvbW1hbmQoImRlYnVnIiksIFsiVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQiLCAiLS1kZWJ1ZyJdKQorCiAKIGNsYXNzIE5hdHVyYWxDb21wYXJlVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9lZmwucHkKaW5kZXggMjdkOTdhMmNmOTJlZTc5YmU0Y2I5NmRjMWYzYjY2MTc3ODc1ZGRj
ZC4uNjk3NGQ4NDg3OGUxNjVjNzU1MWQzNjc3ZGRiZjZmZjk3M2JjYzNkZCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZWZsLnB5CkBAIC0xMzQsMyArMTM0LDEzIEBAIGNsYXNzIEVmbFBvcnQoUG9y
dCk6CiAKICAgICBkZWYgY2hlY2tfc3lzX2RlcHMoc2VsZiwgbmVlZHNfaHR0cCk6CiAgICAgICAg
IHJldHVybiBzdXBlcihFZmxQb3J0LCBzZWxmKS5jaGVja19zeXNfZGVwcyhuZWVkc19odHRwKSBh
bmQgc2VsZi5fZHJpdmVyX2NsYXNzKCkuY2hlY2tfZHJpdmVyKHNlbGYpCisKKyAgICBkZWYgYnVp
bGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1h
bmQgPSBzdXBlcihFZmxQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHls
ZSkKKyAgICAgICAgY29tbWFuZC5leHRlbmQoWyItLWVmbCIsICItLXVwZGF0ZS1lZmwiXSkKKyAg
ICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDEiKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8td2Via2l0MiIpCisgICAgICAgIGNvbW1hbmQuYXBw
ZW5kKHN1cGVyKEVmbFBvcnQsIHNlbGYpLm1ha2VfYXJncygpKQorICAgICAgICByZXR1cm4gY29t
bWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbF91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmxfdW5pdHRlc3QucHkKaW5kZXgg
YTE2ZGJhZjU3NDhkYmQ3Mzc1ODIzMzM3ZDQwYzFkNzU1YTc4NGExYi4uOWQ4NWMxNzdjYTU1OTky
ZTg3MTQwMGJjZDE0N2UyMjI3NWI0MmU1NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2VmbF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZWZsX3VuaXR0ZXN0LnB5CkBAIC0zMSw2ICszMSw4IEBAIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5
LnBvcnQuZWZsIGltcG9ydCBFZmxQb3J0CiBmcm9tIHdlYmtpdHB5LnBvcnQucHVsc2VhdWRpb19z
YW5pdGl6ZXJfbW9jayBpbXBvcnQgUHVsc2VBdWRpb1Nhbml0aXplck1vY2sKIGZyb20gd2Via2l0
cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5wb3J0LmJhc2UgaW1w
b3J0IFBvcnQKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMK
IAogCiBjbGFzcyBFZmxQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CkBAIC00
OCwzICs1MCwzMCBAQCBjbGFzcyBFZmxQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2Fz
ZSk6CiAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1U
cnVlKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tbGF1bmNoZXInLCAnLS1yZWxlYXNlJywgJy0tZWZsJywgJ2ZpbGU6Ly90ZXN0
Lmh0bWwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBwb3J0LnNob3dfcmVzdWx0c19odG1sX2ZpbGUsIFsidGVzdC5o
dG1sIl0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X2NvbW1h
bmRzKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQocG9ydF9uYW1lPSJlZmwi
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudG9vbGluZ19mbGFnKCksICItLXBvcnQ9
ZWZsIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnVwZGF0ZV93ZWJraXRfY29tbWFu
ZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ1cGRhdGUtd2Via2l0IikpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5jaGVja193ZWJraXRfc3R5bGVfY29tbWFuZCgpLCBQb3J0
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJjaGVjay13ZWJraXQtc3R5bGUiKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LnByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoKSwgUG9ydC5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgicHJlcGFyZS1DaGFuZ2VMb2ciKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2Nv
bW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWVmbCIsICItLXVwZGF0ZS1lZmwiLCAiLS1uby13
ZWJraXQyIiwgcG9ydC5tYWtlX2FyZ3MoKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwb3J0LnJ1bl93ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kKCksIE5vbmUpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoKSwgUG9ydC5z
Y3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtpdC10ZXN0cyIpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlw
dF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHB5IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocG9ydC5ydW5fcGVybF91bml0dGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJ0ZXN0LXdlYmtpdHBlcmwiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LnJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
InJ1bi1iaW5kaW5ncy10ZXN0cyIpKQorCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChw
b3J0X25hbWU9ImVmbCIsIG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0X3Rlc3RfcnVubmVyPVRy
dWUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudG9vbGluZ19mbGFnKCksICItLXBv
cnQ9ZWZsLXdrMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC51cGRhdGVfd2Via2l0
X2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgidXBkYXRlLXdlYmtpdCIpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuY2hlY2tfd2Via2l0X3N0eWxlX2NvbW1hbmQo
KSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgiY2hlY2std2Via2l0LXN0eWxlIikpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKCksIFBv
cnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInByZXBhcmUtQ2hhbmdlTG9nIikpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9z
aGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1lZmwiLCAiLS11cGRhdGUtZWZsIiwg
Ii0tbm8td2Via2l0MSIsIHBvcnQubWFrZV9hcmdzKCldKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRf
c2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocG9ydC5ydW5fd2Via2l0X3VuaXRfdGVzdHNfY29tbWFuZCgpLCBOb25lKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCks
IFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9y
dC5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVzdC13ZWJraXRweSIpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRf
c2hlbGxfY29tbWFuZCgidGVzdC13ZWJraXRwZXJsIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocG9ydC5ydW5fYmluZGluZ3NfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJydW4tYmluZGluZ3MtdGVzdHMiKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5
CmluZGV4IGI0ODViNzQxODIyOTFhMjBkNzlmYTYxMGUwOWU3ODA0Yzg1MzQxZjQuLmU2ZGM2NDdj
NjMwOTI1NDZhNWQ4N2ZjN2E3ZjEyNjU3MDYwYWUyMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2d0ay5weQpAQCAtMjIwLDMgKzIyMCwyMCBAQCBDcmFzaCBsb2cgZm9yICUobmFtZSlzIChwaWQg
JShwaWRfcmVwcmVzZW50YXRpb24pcyk6CiAKICUoY3Jhc2hfbG9nKXMKICUoZXJyb3JzX3N0cilz
IiIiICUgbG9jYWxzKCkpCisKKyAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVp
bGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzdXBlcihHdGtQb3J0LCBzZWxmKS5i
dWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZSkKKyAgICAgICAgY29tbWFuZC5leHRlbmQo
WyItLWd0ayIsICItLXVwZGF0ZS1ndGsiXSkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3
ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdl
YmtpdDEiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8t
d2Via2l0MiIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1cGVyKEd0a1BvcnQsIHNlbGYpLm1h
a2VfYXJncygpKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl93ZWJraXRf
dGVzdHNfY29tbWFuZChzZWxmKToKKyAgICAgICAgY29tbWFuZCA9IHN1cGVyKEd0a1BvcnQsIHNl
bGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCIt
LWd0ayIpCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJyk6
CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLTIiKQorICAgICAgICByZXR1cm4gY29tbWFu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0a191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGtfdW5pdHRlc3QucHkKaW5kZXggZTgw
NjA5MWJiODFmZjk4NDA4NDQ1NTBhMTU0NGU5YzM5OTczMmY0Ni4uYTE0YTc1Njk2NjUzMzM5NzI1
YzQ0MWQ5NWQ2YzU2ZTEyMDM2NGEzNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0a191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
Z3RrX3VuaXR0ZXN0LnB5CkBAIC0zNiw2ICszNiw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnBv
cnQuZ3RrIGltcG9ydCBHdGtQb3J0CiBmcm9tIHdlYmtpdHB5LnBvcnQucHVsc2VhdWRpb19zYW5p
dGl6ZXJfbW9jayBpbXBvcnQgUHVsc2VBdWRpb1Nhbml0aXplck1vY2sKIGZyb20gd2Via2l0cHku
cG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5wb3J0LmJhc2UgaW1wb3J0
IFBvcnQKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdl
YmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKQEAgLTEwOCwzICsxMDks
MzAgQEAgU1RERVJSOiA8ZW1wdHk+IiIiICUgbG9jYWxzKCkKICAgICAgICAgc3RkZXJyLCBsb2cg
PSBwb3J0Ll9nZXRfY3Jhc2hfbG9nKCJEdW1wUmVuZGVyVHJlZSIsIDI4NTI5LCAiIiwgIiIsIG5l
d2VyX3RoYW49MC4wKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0ZGVyciwgIiIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwobG9nLCBtb2NrX2VtcHR5X2NyYXNoX2xvZykK
KworICAgIGRlZiB0ZXN0X2NvbW1hbmRzKHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtl
X3BvcnQocG9ydF9uYW1lPSJndGsiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudG9v
bGluZ19mbGFnKCksICItLXBvcnQ9Z3RrIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LnVwZGF0ZV93ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ1cGRh
dGUtd2Via2l0IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5jaGVja193ZWJraXRf
c3R5bGVfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJjaGVjay13ZWJraXQt
c3R5bGUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnByZXBhcmVfY2hhbmdlbG9n
X2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicHJlcGFyZS1DaGFuZ2VMb2ci
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKCks
IFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWd0ayIsICIt
LXVwZGF0ZS1ndGsiLCAiLS1uby13ZWJraXQyIiwgcG9ydC5tYWtlX2FyZ3MoKV0pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCgp
LCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl93ZWJraXRfdW5pdF90ZXN0c19jb21t
YW5kKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fd2Via2l0X3Rl
c3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtpdC10ZXN0
cyIpICsgWyItLWd0ayJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3B5dGhv
bl91bml0dGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdl
YmtpdHB5IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fcGVybF91bml0dGVz
dHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHBlcmwi
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9iaW5kaW5nc190ZXN0c19jb21t
YW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1iaW5kaW5ncy10ZXN0cyIpKQor
CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9Imd0ayIsIG9wdGlvbnM9
TW9ja09wdGlvbnMod2Via2l0X3Rlc3RfcnVubmVyPVRydWUpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQudG9vbGluZ19mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocG9ydC51cGRhdGVfd2Via2l0X2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRf
c2hlbGxfY29tbWFuZCgidXBkYXRlLXdlYmtpdCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQuY2hlY2tfd2Via2l0X3N0eWxlX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29t
bWFuZCgiY2hlY2std2Via2l0LXN0eWxlIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
InByZXBhcmUtQ2hhbmdlTG9nIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5idWls
ZF93ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJr
aXQiKSArIFsiLS1ndGsiLCAiLS11cGRhdGUtZ3RrIiwgIi0tbm8td2Via2l0MSIsIHBvcnQubWFr
ZV9hcmdzKCldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX2phdmFzY3JpcHRj
b3JlX3Rlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fd2Vi
a2l0X3VuaXRfdGVzdHNfY29tbWFuZCgpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1h
bmQoInJ1bi13ZWJraXQtdGVzdHMiKSArIFsiLS1ndGsiLCAiLTIiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwb3J0LnJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgidGVzdC13ZWJraXRweSIpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxf
Y29tbWFuZCgidGVzdC13ZWJraXRwZXJsIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5ydW5fYmluZGluZ3NfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJydW4tYmluZGluZ3MtdGVzdHMiKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFj
X3VuaXR0ZXN0LnB5CmluZGV4IGU1ODkwNGExYTFjZjJhOTRjODlkNDI2ZGJhMTE0ZmY2MzVlODkw
NmYuLmIyNDA5YWY5NjNlNzY5ODgxMTcwN2VhYzNkNDIzNTcyNTM4NzAxNDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L21hY191bml0dGVzdC5weQpAQCAtMjYsMTMgKzI2LDE0IEBA
CiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LnBvcnQubWFj
IGltcG9ydCBNYWNQb3J0Ci1mcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tG
aWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBv
cnQgT3V0cHV0Q2FwdHVyZQotZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2Nr
T3B0aW9ucwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9y
dCBNb2NrRXhlY3V0aXZlLCBNb2NrRXhlY3V0aXZlMiwgTW9ja1Byb2Nlc3MsIFNjcmlwdEVycm9y
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2Nr
U3lzdGVtSG9zdAorZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCitmcm9t
IHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0Lm1hYyBp
bXBvcnQgTWFjUG9ydAorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0
aW9ucwogCiAKIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgpAQCAt
MjU1LDMgKzI1NiwzMCBAQCBqYXZhLwogICAgICAgICBwb3J0Ll9ydW5fc2NyaXB0ID0gcnVuX3Nj
cmlwdAogICAgICAgICBwb3J0Ll9idWlsZF9kcml2ZXIoKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuYXJncywgW10pCisKKyAgICBkZWYgdGVzdF9jb21tYW5kcyhzZWxmKToKKyAgICAg
ICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0ibWFjIikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwb3J0LnRvb2xpbmdfZmxhZygpLCAiLS1wb3J0PW1hYyIpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocG9ydC51cGRhdGVfd2Via2l0X2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRf
c2hlbGxfY29tbWFuZCgidXBkYXRlLXdlYmtpdCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQuY2hlY2tfd2Via2l0X3N0eWxlX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29t
bWFuZCgiY2hlY2std2Via2l0LXN0eWxlIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
InByZXBhcmUtQ2hhbmdlTG9nIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5idWls
ZF93ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJr
aXQiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90
ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3dlYmtpdF91
bml0X3Rlc3RzX2NvbW1hbmQoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJy
dW4td2Via2l0LXRlc3RzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fcHl0
aG9uX3VuaXR0ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInRlc3Qt
d2Via2l0cHkiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9wZXJsX3VuaXR0
ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInRlc3Qtd2Via2l0cGVy
bCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX2JpbmRpbmdzX3Rlc3RzX2Nv
bW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWJpbmRpbmdzLXRlc3RzIikp
CisKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT0ibWFjIiwgb3B0aW9u
cz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC50b29saW5nX2ZsYWcoKSwgIi0tcG9ydD1tYWMtd2syIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0LnVwZGF0ZV93ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlw
dF9zaGVsbF9jb21tYW5kKCJ1cGRhdGUtd2Via2l0IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocG9ydC5jaGVja193ZWJraXRfc3R5bGVfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJjaGVjay13ZWJraXQtc3R5bGUiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
b3J0LnByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgicHJlcGFyZS1DaGFuZ2VMb2ciKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJ1
aWxkX3dlYmtpdF9jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdl
YmtpdCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX2phdmFzY3JpcHRjb3Jl
X3Rlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fd2Via2l0
X3VuaXRfdGVzdHNfY29tbWFuZCgpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBv
cnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
InJ1bi13ZWJraXQtdGVzdHMiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9w
eXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVz
dC13ZWJraXRweSIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3BlcmxfdW5p
dHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVzdC13ZWJraXRw
ZXJsIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5fYmluZGluZ3NfdGVzdHNf
Y29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tYmluZGluZ3MtdGVzdHMi
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9xdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9xdC5weQppbmRleCA1ZGI1ZDhlZWE2ZTYxODU3MjBlYWJl
NWJiZmI3ODgzOTgwNWM1NTZiLi45YzRiYjA1Yjg0MDJhMzczMWE3MzRhMTgyZmQyMzU2ZjViNGM2
ZjYwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcXQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3F0LnB5CkBAIC0xODgsMyArMTg4LDE4IEBAIGNs
YXNzIFF0UG9ydChQb3J0KToKICAgICAjIFF0IHBvcnQgaXMgbm90IHJlYWR5IGZvciBwYXJhbGxl
bCB0ZXN0aW5nLCBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
NzMwIGZvciBkZXRhaWxzLgogICAgIGRlZiBkZWZhdWx0X2NoaWxkX3Byb2Nlc3NlcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIDEKKworICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBi
dWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHN1cGVyKFF0UG9ydCwgc2VsZiku
YnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGUpCisgICAgICAgIGNvbW1hbmQuYXBwZW5k
KCItLXF0IikKKyAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVu
bmVyJyk6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQyIikKKyAgICAg
ICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoUXRQb3J0LCBzZWxmKS5tYWtlX2FyZ3MoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2Vs
Zik6CisgICAgICAgIGNvbW1hbmQgPSBzdXBlcihRdFBvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZCgpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXF0IikKKyAgICAgICAgaWYg
c2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIGNvbW1h
bmQuYXBwZW5kKCItMiIpCisgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvcXRfdW5pdHRlc3QucHkKaW5kZXggMjMzOGY2NzNiZTk1YmFjMjA2ZjNhMmM3
YjkzN2VhODU5YmVhMzA0Yy4uMmJlZmI4MjM2ZDU5OGNlNzU1OTAxYTI2NjEwNTIyNjhjZGNjYmYw
NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3F0X3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9xdF91bml0dGVzdC5weQpAQCAtMzQs
NiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1w
b3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKIGZyb20g
d2Via2l0cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5wb3J0LmJh
c2UgaW1wb3J0IFBvcnQKIGZyb20gd2Via2l0cHkucG9ydC5xdCBpbXBvcnQgUXRQb3J0CiBmcm9t
IHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKQEAgLTEyNCwzICsx
MjUsMzAgQEAgY2xhc3MgUXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAg
ICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKGV4aXRfY29kZT0xLAogICAg
ICAgICAgICAgb3V0cHV0PSd0ZXN0aW5nIG91dHB1dCBmYWlsdXJlJykKICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShwb3J0LmNoZWNrX3N5c19kZXBzKG5lZWRzX2h0dHA9RmFsc2UpKQorCisgICAg
ZGVmIHRlc3RfY29tbWFuZHMoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChw
b3J0X25hbWU9InF0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnRvb2xpbmdfZmxh
ZygpLCAiLS1wb3J0PXF0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnVwZGF0ZV93
ZWJraXRfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ1cGRhdGUtd2Via2l0
IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5jaGVja193ZWJraXRfc3R5bGVfY29t
bWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJjaGVjay13ZWJraXQtc3R5bGUiKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQo
KSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFuZCgicHJlcGFyZS1DaGFuZ2VMb2ciKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKCksIFBvcnQuc2Ny
aXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLXF0IiwgIi0tbm8td2Via2l0
MiIsIHBvcnQubWFrZV9hcmdzKCldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC5ydW5fd2Via2l0X3VuaXRfdGVzdHNfY29tbWFuZCgpLCBOb25lKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKSArIFsiLS1xdCJdKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgpLCBQb3J0
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHB5IikpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5ydW5fcGVybF91bml0dGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9z
aGVsbF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHBlcmwiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwb3J0LnJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2Nv
bW1hbmQoInJ1bi1iaW5kaW5ncy10ZXN0cyIpKQorCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2Vf
cG9ydChwb3J0X25hbWU9InF0Iiwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5u
ZXI9VHJ1ZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC50b29saW5nX2ZsYWcoKSwg
Ii0tcG9ydD1xdC13azIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudXBkYXRlX3dl
YmtpdF9jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInVwZGF0ZS13ZWJraXQi
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmNoZWNrX3dlYmtpdF9zdHlsZV9jb21t
YW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImNoZWNrLXdlYmtpdC1zdHlsZSIpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucHJlcGFyZV9jaGFuZ2Vsb2dfY29tbWFuZCgp
LCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJwcmVwYXJlLUNoYW5nZUxvZyIpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuYnVpbGRfd2Via2l0X2NvbW1hbmQoKSwgUG9ydC5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcXQiLCBwb3J0Lm1ha2VfYXJn
cygpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90
ZXN0c19jb21tYW5kKCksIFBvcnQuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucnVuX3dlYmtpdF91
bml0X3Rlc3RzX2NvbW1hbmQoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJy
dW4td2Via2l0LXRlc3RzIikgKyBbIi0tcXQiLCAiLTIiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwb3J0LnJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hl
bGxfY29tbWFuZCgidGVzdC13ZWJraXRweSIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBv
cnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoKSwgUG9ydC5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgidGVzdC13ZWJraXRwZXJsIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5ydW5f
YmluZGluZ3NfdGVzdHNfY29tbWFuZCgpLCBQb3J0LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4t
YmluZGluZ3MtdGVzdHMiKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKaW5kZXggNzZm
ZWEzYmExODI4NTNmNGQ1YmFkZjU0MjQ4YTdhMmQ1MWE4NDU1Ny4uNmJiMTliMDY1N2Q4YjNkY2Jk
ZDEwNzZkYmQ4MWQ2NzNlZWQ0Yzk4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkK
QEAgLTUzNyw2ICs1MzcsMzkgQEAgY2xhc3MgVGVzdFBvcnQoUG9ydCk6CiAgICAgICAgICAgICBW
aXJ0dWFsVGVzdFN1aXRlKCd2aXJ0dWFsL3NraXBwZWQnLCAnZmFpbHVyZXMvZXhwZWN0ZWQnLCBb
Jy0tdmlydHVhbC1hcmcyJ10pLAogICAgICAgICBdCiAKKyAgICBkZWYgbWFrZV9hcmdzKHNlbGYp
OgorICAgICAgICByZXR1cm4gJy0tbWFrZWFyZ3M9Ii1qNCInCisKKyAgICBkZWYgY2hlY2tfd2Vi
a2l0X3N0eWxlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbIm1vY2stY2hlY2std2Vi
a2l0LXN0eWxlIl0KKworICAgIGRlZiB1cGRhdGVfd2Via2l0X2NvbW1hbmQoc2VsZiwgbm9uX2lu
dGVyYWN0aXZlPUZhbHNlKToKKyAgICAgICAgcmV0dXJuIFsibW9jay11cGRhdGUtd2Via2l0Il0K
KworICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToK
KyAgICAgICAgcmV0dXJuIFsibW9jay1idWlsZC13ZWJraXQiXQorCisgICAgZGVmIHByZXBhcmVf
Y2hhbmdlbG9nX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbJ21vY2stcHJlcGFyZS1D
aGFuZ2VMb2cnXQorCisgICAgZGVmIHJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6
CisgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRweSddCisKKyAgICBkZWYgcnVuX3Bl
cmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13
ZWJraXRwZXJsJ10KKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIFsnbW9jay1ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXQor
CisgICAgZGVmIHJ1bl93ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gWydtb2NrLXJ1bi13ZWJraXQtdW5pdC10ZXN0cyddCisKKyAgICBkZWYgcnVuX3dlYmtp
dF90ZXN0c19jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gWydtb2NrLXJ1bi13ZWJraXQt
dGVzdHMnXQorCisgICAgZGVmIHJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKHNlbGYpOgorICAg
ICAgICByZXR1cm4gWydtb2NrLXJ1bi1iaW5kaW5ncy10ZXN0cyddCisKIAogY2xhc3MgVGVzdERy
aXZlcihEcml2ZXIpOgogICAgICIiIlRlc3QvRHVtbXkgaW1wbGVtZW50YXRpb24gb2YgdGhlIER1
bXBSZW5kZXJUcmVlIGludGVyZmFjZS4iIiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyLnB5CmluZGV4IGI5ZmRmNjY5Y2NmZWZhMzRm
ZWNiODAyMWUwYTc2ZDJkNjZjMmU0MzUuLjQ5YjI0NjliOGM5ODViZjExNTNkZWE2ZGMyMzZmNTY5
ZmNmZDEyOTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmxh
a3l0ZXN0cmVwb3J0ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9m
bGFreXRlc3RyZXBvcnRlci5weQpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBGbGFreVRlc3RSZXBv
cnRlcihvYmplY3QpOgogICAgICAgICBzZWxmLl90b29sID0gdG9vbAogICAgICAgICBzZWxmLl9i
b3RfbmFtZSA9IGJvdF9uYW1lCiAgICAgICAgICMgRklYTUU6IFVzZSB0aGUgcmVhbCBwb3J0IG9i
amVjdAotICAgICAgICBzZWxmLl9ib3RfaW5mbyA9IEJvdEluZm8odG9vbCwgdG9vbC5kZXByZWNh
dGVkX3BvcnQoKS5uYW1lKCkpCisgICAgICAgIHNlbGYuX2JvdF9pbmZvID0gQm90SW5mbyh0b29s
LCB0b29sLnBvcnQoKS5uYW1lKCkpCiAKICAgICBkZWYgX2F1dGhvcl9lbWFpbHNfZm9yX3Rlc3Qo
c2VsZiwgZmxha3lfdGVzdCk6CiAgICAgICAgIHRlc3RfcGF0aCA9IHBhdGhfZm9yX2xheW91dF90
ZXN0KGZsYWt5X3Rlc3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2lyY19jb21tYW5kLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNf
Y29tbWFuZC5weQppbmRleCBiY2NlNTNlYzEyOGRmYmYwMWZkNjVmMDAxNzI4ZGIwNTEwZThlYjMw
Li5jYmY1NDJhM2IwODAwODU0NDc5ZmJjOWMwY2M0M2JlMjUzMjViNzk5IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKQEAgLTIxNiw3ICsyMTYs
NyBAQCBjbGFzcyBSb2xsb3V0KElSQ0NvbW1hbmQpOgogCiAgICAgZGVmIF91cGRhdGVfd29ya2lu
Z19jb3B5KHNlbGYsIHRvb2wpOgogICAgICAgICB0b29sLnNjbSgpLmRpc2NhcmRfbG9jYWxfY2hh
bmdlcygpCi0gICAgICAgIHRvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh0b29s
LmRlcHJlY2F0ZWRfcG9ydCgpLnVwZGF0ZV93ZWJraXRfY29tbWFuZCgpLCBxdWlldD1UcnVlLCBj
d2Q9dG9vbC5zY20oKS5jaGVja291dF9yb290KQorICAgICAgICB0b29sLmV4ZWN1dGl2ZS5ydW5f
YW5kX3Rocm93X2lmX2ZhaWwodG9vbC5wb3J0KCkudXBkYXRlX3dlYmtpdF9jb21tYW5kKCksIHF1
aWV0PVRydWUsIGN3ZD10b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCiAKICAgICBkZWYgX2NoZWNr
X2RpZmZfZmFpbHVyZShzZWxmLCBlcnJvcl9sb2csIHRvb2wpOgogICAgICAgICBpZiBub3QgZXJy
b3JfbG9nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IGQzNTcwNmY3ZTlhYzY5NTBhMjFlMjZlNTAy
MmMxZTYxOTc0YmJkZTguLmExMzIzYTllNTcxZmU5MWU0ZGM5NmZmMTU0YmZiN2NmYjBkOWU3Yzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9h
ZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkKQEAgLTE2OCw3ICsxNjgsNyBAQCBNT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBS
dW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9j
ay10ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3Jp
cHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi1qYXZh
Y3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnbW9jay1ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90
aHJvd19pZl9mYWlsOiBbJ21vY2stcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBXZWJLaXQgdW5pdCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXgg
YjVlMjg1YzY0YTNkZDg2Mzg5YjIyMzQ0MWY0NTk0MDliZGYzYjM5Yy4uZWNiYWM2NDdlZmI1ZmUz
YTExNzFiMjE1ZWYxM2M0Zjc2MzI0MzYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0zMSw3
ICszMSw2IEBAIGltcG9ydCBsb2dnaW5nCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBtYWtlX29wdGlv
bgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0
dGVyTGlzdAotZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNh
dGVkUG9ydAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZp
bGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sg
aW1wb3J0IEVhcmx5V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxl
Z2F0ZQpAQCAtMTAzLDcgKzEwMiw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAg
IHJldHVybiBzZWxmLm5hbWUKIAogICAgIGRlZiBydW5fY29tbWFuZChzZWxmLCBjb21tYW5kKToK
LSAgICAgICAgc2VsZi5ydW5fd2Via2l0X3BhdGNoKGNvbW1hbmQgKyBbc2VsZi5fZGVwcmVjYXRl
ZF9wb3J0LmZsYWcoKV0pCisgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChjb21tYW5kICsg
W3NlbGYuX3BvcnQudG9vbGluZ19mbGFnKCldKQogCiAgICAgZGVmIGNvbW1hbmRfcGFzc2VkKHNl
bGYsIG1lc3NhZ2UsIHBhdGNoKToKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggNzQ3MjRjZmZiYmI0ZGVlMGYwMGMz
NWUzNjQxOTE3OWM5NTZiNTc2ZS4uYmFkZDMwMTFlZGE2ZWM1NjRjZDc1ZmJhOTJlZjMzOTkxNjY3
ZDUxMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
LnB5CkBAIC0zOSw3ICszOSw2IEBAIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiBm
cm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25m
aWcuY29tbWl0dGVydmFsaWRhdG9yIGltcG9ydCBDb21taXR0ZXJWYWxpZGF0b3IKLWZyb20gd2Vi
a2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQXR0YWNobWVudAogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQgU3RhdHVzU2VydmVyCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgpAQCAtMjczLDEx
ICsyNzIsOSBAQCBjbGFzcyBQYXRjaFByb2Nlc3NpbmdRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUp
OgogICAgICAgICBBYnN0cmFjdFBhdGNoUXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQogICAg
ICAgICBpZiBub3Qgc2VsZi5wb3J0X25hbWU6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
IyBGSVhNRTogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHNlbGYuX2RlcHJlY2F0ZWRfcG9ydC5mbGFn
KCkKLSAgICAgICAgc2VsZi5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQucG9ydChz
ZWxmLnBvcnRfbmFtZSkKLSAgICAgICAgIyBGSVhNRTogVGhpcyB2aW9sYXRlcyBhYnN0cmFjdGlv
bgotICAgICAgICBzZWxmLl90b29sLl9kZXByZWNhdGVkX3BvcnQgPSBzZWxmLl9kZXByZWNhdGVk
X3BvcnQKICAgICAgICAgc2VsZi5fcG9ydCA9IHNlbGYuX3Rvb2wucG9ydF9mYWN0b3J5LmdldChz
ZWxmLl9uZXdfcG9ydF9uYW1lX2Zyb21fb2xkKHNlbGYucG9ydF9uYW1lLCBzZWxmLl90b29sLnBs
YXRmb3JtKSkKKyAgICAgICAgIyBGSVhNRTogVGhpcyB2aW9sYXRlcyBhYnN0cmFjdGlvbgorICAg
ICAgICBzZWxmLl90b29sLl9wb3J0ID0gc2VsZi5fcG9ydAogCiAgICAgZGVmIF91cGxvYWRfcmVz
dWx0c19hcmNoaXZlX2Zvcl9wYXRjaChzZWxmLCBwYXRjaCwgcmVzdWx0c19hcmNoaXZlX3ppcCk6
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9wb3J0OgpAQCAtMzUwLDcgKzM0Nyw3IEBAIGNsYXNzIENv
bW1pdFF1ZXVlKFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIs
IENvbW1pdFF1ZXVlVGFzCiAgICAgIyBDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZSBtZXRob2RzCiAK
ICAgICBkZWYgcnVuX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6Ci0gICAgICAgIHNlbGYucnVuX3dl
YmtpdF9wYXRjaChjb21tYW5kICsgW3NlbGYuX2RlcHJlY2F0ZWRfcG9ydC5mbGFnKCldKQorICAg
ICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goY29tbWFuZCArIFtzZWxmLl9wb3J0LnRvb2xpbmdf
ZmxhZygpXSkKIAogICAgIGRlZiBjb21tYW5kX3Bhc3NlZChzZWxmLCBtZXNzYWdlLCBwYXRjaCk6
CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9tYWluLnB5CmluZGV4IDNmYTZlNmI1YmJiMGFiNzVhZGQ4MGQ3NTlj
NTkwNzc5ZjZkOTFkYjkuLmM2YmM4Nzk0OWU4MWM2NDczMjgxZWI2YmFmYmU1NDU3M2JjOGRiOTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5CkBAIC0zMywxMCArMzMsMTAgQEAgZnJv
bSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIGltcG9ydCBvcwogaW1wb3J0IHRocmVhZGlu
ZwogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQ
b3J0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuaXJjIGltcG9ydCBpcmNwcm94eQogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LnN0YXR1c3NlcnZlciBpbXBvcnQgU3RhdHVzU2VydmVyCitmcm9tIHdlYmtpdHB5LnBvcnQuZmFj
dG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKIGZyb20gd2Via2l0cHkudG9vbC5tdWx0aWNvbW1hbmR0
b29sIGltcG9ydCBNdWx0aUNvbW1hbmRUb29sCiBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IGNv
bW1hbmRzCiAKQEAgLTYwLDEwICs2MCwxMCBAQCBjbGFzcyBXZWJLaXRQYXRjaChNdWx0aUNvbW1h
bmRUb29sLCBIb3N0KToKIAogICAgICAgICBzZWxmLndha2V1cF9ldmVudCA9IHRocmVhZGluZy5F
dmVudCgpCiAgICAgICAgIHNlbGYuX2lyYyA9IE5vbmUKLSAgICAgICAgc2VsZi5fZGVwcmVjYXRl
ZF9wb3J0ID0gTm9uZQorICAgICAgICBzZWxmLl9wb3J0ID0gTm9uZQogCi0gICAgZGVmIGRlcHJl
Y2F0ZWRfcG9ydChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2RlcHJlY2F0ZWRfcG9ydAor
ICAgIGRlZiBwb3J0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcG9ydAogCiAgICAgZGVm
IHBhdGgoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoCkBAIC05OSw3ICs5OSw3IEBA
IGNsYXNzIFdlYktpdFBhdGNoKE11bHRpQ29tbWFuZFRvb2wsIEhvc3QpOgogICAgICAgICBpZiBv
cHRpb25zLmlyY19wYXNzd29yZDoKICAgICAgICAgICAgIHNlbGYuaXJjX3Bhc3N3b3JkID0gb3B0
aW9ucy5pcmNfcGFzc3dvcmQKICAgICAgICAgIyBJZiBvcHRpb25zLnBvcnQgaXMgTm9uZSwgd2Un
bGwgZ2V0IHRoZSBkZWZhdWx0IHBvcnQgZm9yIHRoaXMgcGxhdGZvcm0uCi0gICAgICAgIHNlbGYu
X2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0LnBvcnQob3B0aW9ucy5wb3J0KQorICAg
ICAgICBzZWxmLl9wb3J0ID0gc2VsZi5wb3J0X2ZhY3RvcnkuZ2V0KG9wdGlvbnMucG9ydCkKIAog
ICAgIGRlZiBzaG91bGRfZXhlY3V0ZV9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgogICAgICAgICBp
ZiBjb21tYW5kLnJlcXVpcmVzX2xvY2FsX2NvbW1pdHMgYW5kIG5vdCBzZWxmLnNjbSgpLnN1cHBv
cnRzX2xvY2FsX2NvbW1pdHMoKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9tb2NrdG9vbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5w
eQppbmRleCAxNzVkMWI4NDhlN2Y0YTFiMmZhN2U4NDVmMmMxMDllNjMwN2Y0NjQ3Li4yNWZmOGM2
YTU3MThjYWM4MDdhZDJhMmFlZTUxMzM1ZjE3ODE0YTNlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL21vY2t0b29sLnB5CkBAIC0zMiw5ICszMiw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWls
ZGJvdC5idWlsZGJvdF9tb2NrIGltcG9ydCBNb2NrQnVpbGRCb3QKIGZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5zdGF0dXNzZXJ2ZXJfbW9jayBpbXBvcnQgTW9ja1N0YXR1c1NlcnZlcgogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmlyYy5pcmNfbW9jayBpbXBvcnQgTW9ja0lSQwotCi0jIEZJWE1F
OiBPbGQtc3R5bGUgIlBvcnRzIiBuZWVkIHRvIGRpZSBhbmQgYmUgcmVwbGFjZWQgYnkgbW9kZXJu
IGxheW91dF90ZXN0cy5wb3J0IHdoaWNoIG5lZWRzIHRvIG1vdmUgdG8gY29tbW9uLgotZnJvbSB3
ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzX21vY2sgaW1wb3J0IE1vY2tQb3J0Citmcm9tIHdl
YmtpdHB5LnBvcnQudGVzdCBpbXBvcnQgVGVzdFBvcnQKIAogCiAjIEZJWE1FOiBXZSBzaG91bGQg
anVzdCByZXBsYWNlIHRoaXMgd2l0aCBvcHRwYXJzZS5WYWx1ZXMoZGVmYXVsdD1rd2FyZ3MpCkBA
IC02NCwxNSArNjIsMTYgQEAgY2xhc3MgTW9ja1Rvb2woTW9ja0hvc3QpOgogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBNb2NrSG9zdC5fX2luaXRfXyhz
ZWxmLCAqYXJncywgKiprd2FyZ3MpCiAKLSAgICAgICAgc2VsZi5fZGVwcmVjYXRlZF9wb3J0ID0g
TW9ja1BvcnQoKQorICAgICAgICBzZWxmLl9wb3J0ID0gVGVzdFBvcnQoc2VsZikKKyAgICAgICAg
c2VsZi5fcG9ydC5uYW1lID0gbGFtYmRhOiAiTW9ja1BvcnQiCiAgICAgICAgIHNlbGYuc3RhdHVz
X3NlcnZlciA9IE1vY2tTdGF0dXNTZXJ2ZXIoKQogCiAgICAgICAgIHNlbGYuX2lyYyA9IE5vbmUK
ICAgICAgICAgc2VsZi5pcmNfcGFzc3dvcmQgPSAiTU9DSyBpcmMgcGFzc3dvcmQiCiAgICAgICAg
IHNlbGYud2FrZXVwX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKIAotICAgIGRlZiBkZXByZWNh
dGVkX3BvcnQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9kZXByZWNhdGVkX3BvcnQKKyAg
ICBkZWYgcG9ydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQKIAogICAgIGRlZiBw
YXRoKHNlbGYpOgogICAgICAgICByZXR1cm4gImVjaG8iCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXggYjAyODMwY2EyMzQ5MWNkZGNmODYwNjU2MjQ2MTc2
MzFlZmVlMzM1ZS4uYTJhNjI3MjI5MTlmNmJmOWNlZDMyMGI3MmE1N2JjZWZiYzFkYmQwZiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAtNDgsNyArNDgs
NyBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXApOgogICAgICAgICBlbnZpcm9ubWVudC5kaXNh
YmxlX2djY19zbWFydHF1b3RlcygpCiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rp
b25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXBy
ZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHls
ZSkKKyAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBzZWxmLl90b29sLnBvcnQoKS5idWls
ZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKICAgICAgICAgc2VsZi5f
dG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5k
LCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCku
Y2hlY2tvdXRfcm9vdCwgZW52PWVudikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2NoZWNrc3R5bGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvY2hlY2tzdHlsZS5weQppbmRleCBjZWM4YTgxMzIyMTExZjg1MDlmYmYyMmIwZDk3
NzliMGJlNDEwMjcxLi4wY2IxNWY0YzExMWMwMGRhOTM0MTQxNDAxY2Y0MzFhZDA5OWRjYjc3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2tzdHlsZS5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2tzdHlsZS5weQpA
QCAtNTcsNyArNTcsNyBAQCBjbGFzcyBDaGVja1N0eWxlKEFic3RyYWN0U3RlcCk6CiAgICAgICAg
ICAgICBhcmdzLmFwcGVuZChzZWxmLl9vcHRpb25zLmNoZWNrX3N0eWxlX2ZpbHRlcikKIAogICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93
X2lmX2ZhaWwoc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5jaGVja193ZWJraXRfc3R5bGVf
Y29tbWFuZCgpICsgYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAg
ICAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxm
Ll90b29sLnBvcnQoKS5jaGVja193ZWJraXRfc3R5bGVfY29tbWFuZCgpICsgYXJncywgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9y
LCBlOgogICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ub25faW50ZXJhY3RpdmU6CiAgICAg
ICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHJlLXJhaXNlIHRoZSBleGNlcHRpb24gaGVyZSB0byBo
YXZlIHRoZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Nv
bW1pdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jb21taXQucHkKaW5k
ZXggMWQ1MTA5YTAwYWY3YWI5OTk4NGM1NGRiMmRiNGU4ZGRjYTEwMDQ2Mi4uYzUyYTYzYTk1NTYx
NDY3NWFmODk3MjFjNmUzY2MzMzhmYmJmYTVlMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL2NvbW1pdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvY29tbWl0LnB5CkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIENvbW1pdChBYnN0
cmFjdFN0ZXApOgogICAgICAgICBhcmdzID0gWyItLWRpZmYtZmlsZXMiXQogICAgICAgICBhcmdz
LmV4dGVuZCh0ZXN0X2V4cGVjdGF0aW9uc19maWxlcykKICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKHNlbGYuX3Rvb2wu
ZGVwcmVjYXRlZF9wb3J0KCkuY2hlY2tfd2Via2l0X3N0eWxlX2NvbW1hbmQoKSArIGFyZ3MsIGN3
ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICBzZWxmLl90b29s
LmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoc2VsZi5fdG9vbC5wb3J0KCkuY2hlY2tf
d2Via2l0X3N0eWxlX2NvbW1hbmQoKSArIGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNr
b3V0X3Jvb3QpCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKICAgICAgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMubm9uX2ludGVyYWN0aXZlOgogICAgICAgICAgICAgICAgIHJhaXNlCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcHJlcGFyZWNoYW5n
ZWxvZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdl
bG9nLnB5CmluZGV4IDcxNmFiODI2ZDViZmEwN2ExYmU4NTUzMTM1MzE0YzY1ZDA1ZjgyMmEuLjkz
YjYwMmU2NzJmMGQ2YmZlYzkzYzI0YTNjOGVkMzc2MDQwNTc4MmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nLnB5CkBAIC0x
MDcsNyArMTA3LDcgQEAgY2xhc3MgUHJlcGFyZUNoYW5nZUxvZyhBYnN0cmFjdFN0ZXApOgogICAg
ICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMudXBkYXRlX2NoYW5nZWxvZ3M6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9w
b3J0KCkucHJlcGFyZV9jaGFuZ2Vsb2dfY29tbWFuZCgpCisgICAgICAgIGFyZ3MgPSBzZWxmLl90
b29sLnBvcnQoKS5wcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKCkKICAgICAgICAgaWYgc3RhdGUu
Z2V0KCJidWdfaWQiKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWJ1Zz0lcyIgJSBzdGF0
ZVsiYnVnX2lkIl0pCiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1kZXNjcmlwdGlvbj0lcyIg
JSBzZWxmLmNhY2hlZF9sb29rdXAoc3RhdGUsICdidWdfdGl0bGUnKSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nZm9ycmV2ZXJ0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dm
b3JyZXZlcnQucHkKaW5kZXggODJlN2IwMjUyNjA3OTljODNmZWZhYTY0ODk5Y2ZhOTJlZmFhMjE0
MC4uOTVhOTljMzIwNWQyMTc2MTgxOGRmM2RiM2JiM2QzM2FkYWQ0NzhlZiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZl
cnQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3ByZXBhcmVjaGFu
Z2Vsb2dmb3JyZXZlcnQucHkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgUHJlcGFyZUNoYW5nZUxv
Z0ZvclJldmVydChBYnN0cmFjdFN0ZXApOgogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAg
ICAgICAgICMgVGhpcyBjb3VsZCBtb3ZlIHRvIHByZXBhcmUtQ2hhbmdlTG9nIGJ5IGFkZGluZyBh
IC0tcmV2ZXJ0PSBvcHRpb24uCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbChzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnByZXBhcmVfY2hhbmdl
bG9nX2NvbW1hbmQoKSwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAg
ICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKHNlbGYuX3Rvb2wu
cG9ydCgpLnByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoKSwgY3dkPXNlbGYuX3Rvb2wuc2NtKCku
Y2hlY2tvdXRfcm9vdCkKICAgICAgICAgY2hhbmdlbG9nX3BhdGhzID0gc2VsZi5fdG9vbC5jaGVj
a291dCgpLm1vZGlmaWVkX2NoYW5nZWxvZ3MoZ2l0X2NvbW1pdD1Ob25lKQogICAgICAgICBidWdf
dXJsID0gc2VsZi5fdG9vbC5idWdzLmJ1Z191cmxfZm9yX2J1Z19pZChzdGF0ZVsiYnVnX2lkIl0p
IGlmIHN0YXRlWyJidWdfaWQiXSBlbHNlIE5vbmUKICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX21l
c3NhZ2VfZm9yX3JldmVydChzdGF0ZVsicmV2aXNpb25fbGlzdCJdLCBzdGF0ZVsicmVhc29uIl0s
IGJ1Z191cmwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMu
cHkKaW5kZXggYTQ1NjI4YjJkYWEyODM3NDhhNTc5ZWRhNDE4ZWRlYWMzMWJjYTk4Mi4uOTE0NzE4
NmZkNmFhMzdmMGMyZWMyNGEwZDhlODFkMjUwZmRiMDdjZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAtNTYsMjIgKzU2LDIyIEBAIGNsYXNz
IFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLm5v
bl9pbnRlcmFjdGl2ZToKICAgICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCB0ZWFjaCB0aGUg
Y29tbWl0LXF1ZXVlIGFuZCB0aGUgRVdTIGhvdyB0byBydW4gdGhlc2UgdGVzdHMuCiAKLSAgICAg
ICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9w
b3J0KCkucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgpCisgICAgICAgICAgICBweXRob25f
dW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLnBvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0
c19jb21tYW5kKCkKICAgICAgICAgICAgIGlmIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZDoKICAg
ICAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgUHl0aG9uIHVuaXQgdGVzdHMiKQogICAg
ICAgICAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChw
eXRob25fdW5pdHRlc3RzX2NvbW1hbmQsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jv
b3QpCiAKLSAgICAgICAgICAgIHBlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRl
cHJlY2F0ZWRfcG9ydCgpLnJ1bl9wZXJsX3VuaXR0ZXN0c19jb21tYW5kKCkKKyAgICAgICAgICAg
IHBlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLnBvcnQoKS5ydW5fcGVybF91bml0
dGVzdHNfY29tbWFuZCgpCiAgICAgICAgICAgICBpZiBwZXJsX3VuaXR0ZXN0c19jb21tYW5kOgog
ICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBQZXJsIHVuaXQgdGVzdHMiKQogICAg
ICAgICAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChw
ZXJsX3VuaXR0ZXN0c19jb21tYW5kLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290
KQogCi0gICAgICAgICAgICBqYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kID0gc2VsZi5fdG9v
bC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCgpCisg
ICAgICAgICAgICBqYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5wb3J0
KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoKQogICAgICAgICAgICAgaWYgamF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZDoKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1
bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMiKQogICAgICAgICAgICAgICAgIHNlbGYuX3Rvb2wu
ZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChqYXZhc2NyaXB0Y29yZV90ZXN0c19jb21t
YW5kLCBxdWlldD1UcnVlLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQogCi0g
ICAgICAgIGJpbmRpbmdzX3Rlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9y
dCgpLnJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKCkKKyAgICAgICAgYmluZGluZ3NfdGVzdHNf
Y29tbWFuZCA9IHNlbGYuX3Rvb2wucG9ydCgpLnJ1bl9iaW5kaW5nc190ZXN0c19jb21tYW5kKCkK
ICAgICAgICAgaWYgYmluZGluZ3NfdGVzdHNfY29tbWFuZDoKICAgICAgICAgICAgIF9sb2cuaW5m
bygiUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzIikKICAgICAgICAgICAgIGFyZ3Mg
PSBiaW5kaW5nc190ZXN0c19jb21tYW5kCkBAIC04MCw3ICs4MCw3IEBAIGNsYXNzIFJ1blRlc3Rz
KEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAg
ICAgICAgICAgICAgX2xvZy5pbmZvKCJFcnJvciBydW5uaW5nIHJ1bi1iaW5kaW5ncy10ZXN0czog
JXMiICUgZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCiAKLSAgICAgICAgd2Via2l0X3VuaXRfdGVz
dHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3dlYmtpdF91bml0
X3Rlc3RzX2NvbW1hbmQoKQorICAgICAgICB3ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kID0gc2Vs
Zi5fdG9vbC5wb3J0KCkucnVuX3dlYmtpdF91bml0X3Rlc3RzX2NvbW1hbmQoKQogICAgICAgICBp
ZiB3ZWJraXRfdW5pdF90ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5u
aW5nIFdlYktpdCB1bml0IHRlc3RzIikKICAgICAgICAgICAgIGFyZ3MgPSB3ZWJraXRfdW5pdF90
ZXN0c19jb21tYW5kCkBAIC05MSw3ICs5MSw3IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3Rl
cCk6CiAKIAogICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyIpCi0g
ICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZCgpCisgICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLnBvcnQoKS5ydW5fd2Via2l0
X3Rlc3RzX2NvbW1hbmQoKQogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2
ZToKICAgICAgICAgICAgIGFyZ3MuZXh0ZW5kKFsKICAgICAgICAgICAgICAgICAiLS1uby1uZXct
dGVzdC1yZXN1bHRzIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0c191bml0dGVzdC5weQppbmRleCBlZjg5MjBlOWIyOTI4ZDNkZjQ0OWEzNTEz
OTU2NmNkZjRiMWY4NjA2Li45YWE0ZTg5NzJkMDY1YTExN2M1NmI0NzUyZGVjNTg5ZDE5MTllN2Yy
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRl
c3RzX3VuaXR0ZXN0LnB5CkBAIC0zNyw4ICszNyw4IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVw
cy5ydW50ZXN0cyBpbXBvcnQgUnVuVGVzdHMKIGNsYXNzIFJ1blRlc3RzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rfd2Via2l0X3J1bl91bml0X3Rlc3RzKHNlbGYpOgogICAg
ICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQotICAgICAgICB0b29sLl9k
ZXByZWNhdGVkX3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9u
ZQotICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1h
bmQgPSBsYW1iZGE6IE5vbmUKKyAgICAgICAgdG9vbC5fcG9ydC5ydW5fcHl0aG9uX3VuaXR0ZXN0
c19jb21tYW5kID0gbGFtYmRhOiBOb25lCisgICAgICAgIHRvb2wuX3BvcnQucnVuX3BlcmxfdW5p
dHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKICAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRv
b2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZh
bHNlKSkKIAogICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gImN5Z3dpbiI6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXgg
NzE3MmJhN2Y1YWZlMDU4ODJmMjU5ZDhjN2UyZDdjNmM4OTdhNGI0NC4uOGI1MjhkY2Q0NDVjNDky
ODViNTc4MTJiNjg2YzE4ZjZmYmE0NzM4YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtMjksNyArMjksNiBAQAogaW1w
b3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
b3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQotZnJvbSB3ZWJraXRweS5jb21tb24u
Y29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNhdGVkUG9ydAogZnJvbSB3ZWJraXRweS50b29sLm1v
Y2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKIAogZnJvbSB3ZWJraXRweS50b29s
IGltcG9ydCBzdGVwcwpAQCAtMTAwLDE4ICs5OSwxOCBAQCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFs
c2UKICAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKE1vY2tUb29sKGxvZ19leGVjdXRpdmU9
VHJ1ZSksIG1vY2tfb3B0aW9ucykKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRp
dmU9VHJ1ZSkKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1v
YmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4K
LSAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQogICAgICAg
ICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25zKQogICAgICAgICBleHBl
Y3RlZF9sb2dzID0gIiIiUnVubmluZyBQeXRob24gdW5pdCB0ZXN0cwotTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1j
aGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9jay10ZXN0LXdlYmtpdHB5
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKLU1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3
ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9jay10ZXN0
LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3Jl
IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90
aHJvd19pZl9mYWlsOiBbJ21vY2stcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9j
ay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCi1NT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2stcnVu
LWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorUnVubmluZyBXZWJLaXQgdW5p
dCB0ZXN0cworTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9jay1ydW4td2Via2l0LXVu
aXQtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMK
LU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10
ZXN0cycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnbW9jay1ydW4td2Via2l0LXRlc3RzJywgJy0tcXVpZXQnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiAiIiIKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNl
bGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBkYXRlLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3VwZGF0ZS5weQppbmRleCBmNzAzNTQwNzg2MGRh
MjYzNjI2ZWE1YTU0NzExYmYwOGYyMTQ0Y2RlLi4wNzM3ZWJjZDBiOTIxYjA0ODdkOTkyMWQwOGM4
ZjczNjBkZDE3YTcyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvdXBkYXRlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRh
dGUucHkKQEAgLTUwLDUgKzUwLDUgQEAgY2xhc3MgVXBkYXRlKEFic3RyYWN0U3RlcCk6CiAgICAg
ICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxmLl91cGRh
dGVfY29tbWFuZCgpLCBxdWlldD1zZWxmLl9vcHRpb25zLnF1aWV0LCBjd2Q9c2VsZi5fdG9vbC5z
Y20oKS5jaGVja291dF9yb290KQogCiAgICAgZGVmIF91cGRhdGVfY29tbWFuZChzZWxmKToKLSAg
ICAgICAgdXBkYXRlX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnVwZGF0
ZV93ZWJraXRfY29tbWFuZChzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSkKKyAgICAgICAg
dXBkYXRlX2NvbW1hbmQgPSBzZWxmLl90b29sLnBvcnQoKS51cGRhdGVfd2Via2l0X2NvbW1hbmQo
c2VsZi5fb3B0aW9ucy5ub25faW50ZXJhY3RpdmUpCiAgICAgICAgIHJldHVybiB1cGRhdGVfY29t
bWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3VwZGF0
ZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy91cGRhdGVf
dW5pdHRlc3QucHkKaW5kZXggNDlkNmI0MDk4NTgxOTU4NmI5ZDdjOWY1YzU2MmUxMTQ4YmY2YmIz
Yy4uOWZlMmQ2ZjJhOWQwNWQ4ZTZlN2IwNDJlMjE3YjUwMjkwZTU2MWFjNSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3VwZGF0ZV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvdXBkYXRlX3VuaXR0ZXN0LnB5CkBA
IC0yOCw3ICsyOCw2IEBACiAKIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAotZnJvbSB3
ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBNYWNQb3J0LCBNYWNXSzJQb3J0CiBm
cm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbAog
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLnVwZGF0ZSBpbXBvcnQgVXBkYXRlCiAKQEAgLTQxLDEw
ICs0MCwxMCBAQCBjbGFzcyBVcGRhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
c3RlcCA9IFVwZGF0ZSh0b29sLCBvcHRpb25zKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsi
bW9jay11cGRhdGUtd2Via2l0Il0sIHN0ZXAuX3VwZGF0ZV9jb21tYW5kKCkpCiAKLSAgICAgICAg
dG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gTWFjUG9ydCgpCisgICAgICAgIHRvb2wuX3BvcnQgPSB0
b29sLnBvcnRfZmFjdG9yeS5nZXQoIm1hYyIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyJU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQiXSwgc3RlcC5fdXBkYXRlX2NvbW1hbmQoKSkKIAot
ICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBNYWNXSzJQb3J0KCkKKyAgICAgICAgdG9v
bC5fcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldCgibWFjLXdrMiIpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWyJUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQiXSwgc3RlcC5fdXBkYXRl
X2NvbW1hbmQoKSkKIAogICAgIGRlZiB0ZXN0X3VwZGF0ZV9jb21tYW5kX2ludGVyYWN0aXZlKHNl
bGYpOgpAQCAtNTMsOCArNTIsOCBAQCBjbGFzcyBVcGRhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc3RlcCA9IFVwZGF0ZSh0b29sLCBvcHRpb25zKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsibW9jay11cGRhdGUtd2Via2l0Il0sIHN0ZXAuX3VwZGF0ZV9jb21tYW5kKCkp
CiAKLSAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gTWFjUG9ydCgpCisgICAgICAgIHRv
b2wuX3BvcnQgPSB0b29sLnBvcnRfZmFjdG9yeS5nZXQoIm1hYyIpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWyJUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQiXSwgc3RlcC5fdXBkYXRlX2Nv
bW1hbmQoKSkKIAotICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBNYWNXSzJQb3J0KCkK
KyAgICAgICAgdG9vbC5fcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldCgibWFjLXdrMiIpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyJUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQiXSwg
c3RlcC5fdXBkYXRlX2NvbW1hbmQoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>