<?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>201844</bug_id>
          
          <creation_ts>2019-09-16 14:56:50 -0700</creation_ts>
          <short_desc>[WebAuthn] LocalAuthenticator tests are failing on internal bots</short_desc>
          <delta_ts>2019-09-23 13:18:19 -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>WebKit Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571284</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-16 14:56:50 -0700</bug_when>
    <thetext>LocalAuthenticator tests are failing on internal bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571285</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-16 14:57:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/54278693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571291</commentid>
    <comment_count>2</comment_count>
      <attachid>378901</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-16 15:38:06 -0700</bug_when>
    <thetext>Created attachment 378901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571339</commentid>
    <comment_count>3</comment_count>
      <attachid>378915</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-16 17:01:50 -0700</bug_when>
    <thetext>Created attachment 378915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572953</commentid>
    <comment_count>4</comment_count>
      <attachid>378915</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-20 16:57:31 -0700</bug_when>
    <thetext>Comment on attachment 378915
Patch

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

r = me

&gt; Tools/ChangeLog:16
&gt; +        be able to access it, and therefore eliminate any race condition. To assis it, a few new

To support this, a few .. ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572964</commentid>
    <comment_count>5</comment_count>
      <attachid>378915</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-20 17:15:38 -0700</bug_when>
    <thetext>Comment on attachment 378915
Patch

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

Thanks Brent for r+ this change.

&gt;&gt; Tools/ChangeLog:16
&gt;&gt; +        be able to access it, and therefore eliminate any race condition. To assis it, a few new
&gt; 
&gt; To support this, a few .. ?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572971</commentid>
    <comment_count>6</comment_count>
      <attachid>379289</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-20 17:18:19 -0700</bug_when>
    <thetext>Created attachment 379289
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573013</commentid>
    <comment_count>7</comment_count>
      <attachid>379289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-20 18:25:31 -0700</bug_when>
    <thetext>Comment on attachment 379289
Patch for landing

Rejecting attachment 379289 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 379289, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=379289&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=201844&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 379289 from bug 201844.
Fetching: https://bugs.webkit.org/attachment.cgi?id=379289
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 27 diffs from patch file(s).
patching file Source/WebKit/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
patching file Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm
Hunk #1 succeeded at 401 (offset 4 lines).
patching file Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.h
patching file Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalConnection.mm
patching file Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h
patching file Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.mm
patching file Source/WebKit/UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
Hunk #1 succeeded at 391 (offset -4 lines).
patching file Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
Hunk #1 succeeded at 2579 (offset -6 lines).
Hunk #2 succeeded at 2589 (offset -6 lines).
Hunk #3 succeeded at 2841 (offset -6 lines).
patching file Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
Hunk #1 succeeded at 488 (offset -1 lines).
patching file Tools/WebKitTestRunner/TestController.cpp
Hunk #1 succeeded at 3552 (offset 1 line).
patching file Tools/WebKitTestRunner/TestController.h
patching file Tools/WebKitTestRunner/TestInvocation.cpp
patching file Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/http/wpt/credential-management/credentialscontainer-store-basics.https.html
patching file LayoutTests/http/wpt/webauthn/idl.https.html
patching file LayoutTests/http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html
patching file LayoutTests/http/wpt/webauthn/public-key-credential-create-failure-local.https.html
patching file LayoutTests/http/wpt/webauthn/public-key-credential-create-success-local.https.html
Hunk #1 FAILED at 5.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/http/wpt/webauthn/public-key-credential-create-success-local.https.html.rej
patching file LayoutTests/http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html
patching file LayoutTests/http/wpt/webauthn/public-key-credential-get-failure-local.https.html
patching file LayoutTests/http/wpt/webauthn/public-key-credential-get-success-local.https.html
Hunk #1 FAILED at 4.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/http/wpt/webauthn/public-key-credential-get-success-local.https.html.rej
patching file LayoutTests/http/wpt/webauthn/resources/util.js
patching file LayoutTests/platform/mac-wk2/TestExpectations
Hunk #1 succeeded at 890 (offset -13 lines).

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13055379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573387</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-09-23 13:18:19 -0700</bug_when>
    <thetext>Committed r250249: &lt;https://trac.webkit.org/changeset/250249&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378901</attachid>
            <date>2019-09-16 15:38:06 -0700</date>
            <delta_ts>2019-09-16 17:01:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201844-20190916153806.patch</filename>
            <type>text/plain</type>
            <size>105193</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyODIxMjExM2JhZDgzOTZl
M2M2MjdiMGUyODQ0MTc2N2ZlZDdhZjMuLmU0YTgwMGE2NmI5NWQwM2VhMTE1ZTA1OTlkMmExMTNi
YmQ3NjE4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMDktMTYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIExvY2FsQXV0
aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBvbiBpbnRlcm5hbCBib3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NDQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHdheSBmb3IgbW9jayB0ZXN0cyB0byBz
ZWxlY3QgYSBjcmVkZW50aWFsIGluIGdldEFzc2VydGlvbgorICAgICAgICBjZXJlbW9uaWVzIHN1
Y2ggdGhhdCBhIHRlc3QgY2FuIGVuc3VyZSBpdCBhbHdheXMgdXNlcyB0aGUgY3JlZGVudGlhbCBp
dCBtYW5hZ2VzLgorICAgICAgICBDcmVkZW50aWFscyBtYW5hZ2VkIGJ5IG90aGVyIHRlc3QgY291
bGQgYmUgZGVsZXRlZCBhdCBhbnl0aW1lLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06
CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQ29ubmVjdGlvbjo6c2VsZWN0Q3JlZGVudGlhbCBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5l
Y3Rpb246OnNlbGVjdENyZWRlbnRpYWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaDoK
KwogMjAxOS0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEhhbmdzIG9uIFN3aXNzLmNvbSBkdWUgdG8gdGhlIHdlYiBwcm9jZXNzIGJlaW5nIGJsb2NrZWQg
b24gU3RvcmFnZUFyZWFNYXA6OkxvYWRWYWx1ZXNJZk5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXgg
MTg3ZTgxYTM4NmNjYjU3OTYzMDc4NTE2YzA5NGExM2IyMTJkZjgyNS4uZDQxYzRkYjUxZmRlYTFj
N2NlMDUxYzJhM2U4YjYzYzQ3YzFiZGM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC02MzQsNiArNjM0
LDggQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVIKICAgICAgICAgICAgIGxvY2FsLnVzZXJDZXJ0
aWZpY2F0ZUJhc2U2NCA9IFdlYktpdDo6dG9JbXBsKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KGxvY2FsUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJVc2VyQ2VydGlmaWNhdGVCYXNlNjQiKSkuZ2V0KCkpKSktPnN0cmlu
ZygpOwogICAgICAgICAgICAgbG9jYWwuaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NCA9
IFdlYktpdDo6dG9JbXBsKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KGxvY2FsUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJJbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0IikpLmdldCgpKSkpLT5zdHJpbmcoKTsK
ICAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0UmVm
ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobG9j
YWxSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlByZWZlcnJlZFVz
ZXJoYW5kbGVCYXNlNjQiKSkuZ2V0KCkpKSkKKyAgICAgICAgICAgIGxvY2FsLnByZWZlcnJlZFVz
ZXJoYW5kbGVCYXNlNjQgPSBXZWJLaXQ6OnRvSW1wbChwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0
UmVmKS0+c3RyaW5nKCk7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ubG9jYWwgPSBXVEZNb3ZlKGxv
Y2FsKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpp
bmRleCA0ZTkwMjRkOWU3ZTg4NmYyYTc1MzU5NzcyNzc5YTY3MTQ3NDdiM2FmLi4xZGJiZjhjNzEx
N2IxOThlNmU3NGQxYTA5ZTAxZmE1ZDlhNjMxYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLm1tCkBAIC0zOTcsOCArMzk3LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRp
Y2F0b3I6OmdldEFzc2VydGlvbigpCiAgICAgfQogCiAgICAgLy8gU3RlcCA2LgotICAgIC8vIEZJ
WE1FKHJkYXI6Ly9wcm9ibGVtLzM1OTAwNTM0KTogV2UgZG9uJ3QgaGF2ZSBhbiBVSSB0byBwcm9t
cHQgdXNlcnMgZm9yIHNlbGVjdGluZyBpbnRlcnNlY3RlZENyZWRlbnRpYWxzLCBhbmQgdGhlcmVm
b3JlIHdlIGFsd2F5cyB1c2UgdGhlIGZpcnN0IG9uZSBmb3Igbm93LgotICAgIE5TRGljdGlvbmFy
eSAqc2VsZWN0ZWRDcmVkZW50aWFsQXR0cmlidXRlcyA9IGludGVyc2VjdGVkQ3JlZGVudGlhbHNB
dHRyaWJ1dGVzWzBdOworICAgIGF1dG8gKnNlbGVjdGVkQ3JlZGVudGlhbEF0dHJpYnV0ZXMgPSBt
X2Nvbm5lY3Rpb24tPnNlbGVjdENyZWRlbnRpYWwoaW50ZXJzZWN0ZWRDcmVkZW50aWFsc0F0dHJp
YnV0ZXMpOwogCiAgICAgLy8gU3RlcCA3LiBHZXQgdXNlciBjb25zZW50LgogICAgIC8vIEZJWE1F
KHJkYXI6Ly9wcm9ibGVtLzM1OTAwNTkzKTogVXBkYXRlIHRvIGEgZm9ybWFsIFVJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCBjZGEyZjczZmRiYjZjNGEzYjNlOTJmZDk0
YWE4NDAyOWE1ZDYxNjkzLi5jZDc4NWMyY2RkYzRmMTEwZGNlNjhlM2RiZGRkZmI1Mjg3M2MxMzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldFVzZXJDb25zZW50KGNvbnN0IFN0cmluZyYgcmVh
c29uLCBVc2VyQ29uc2VudENhbGxiYWNrJiYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBnZXRV
c2VyQ29uc2VudChjb25zdCBTdHJpbmcmIHJlYXNvbiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNl
ckNvbnNlbnRDb250ZXh0Q2FsbGJhY2smJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGdldEF0
dGVzdGF0aW9uKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpzZWxlY3RDcmVkZW50aWFsKGNvbnN0IE5TQXJyYXkg
KikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xv
Y2FsQ29ubmVjdGlvbi5tbQppbmRleCA1YzJjOWEzN2NjNDcxNTQ3ZjQxNWRiNjk3NWIxYjEzZWU3
OWE2YzNhLi45MGE1ZjdiM2JiMTFmNDBmOTU1NTg4MmMwYjhiZjJhMTBhMmU5MzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0xMTAsNiArMTEwLDEyIEBAIHZvaWQg
TG9jYWxDb25uZWN0aW9uOjpnZXRBdHRlc3RhdGlvbihjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0
IFN0cmluZyYgdXNlcm5hbWUsCiAjZW5kaWYgLy8gSEFWRShERVZJQ0VfSURFTlRJVFkpCiB9CiAK
K05TRGljdGlvbmFyeSAqTG9jYWxDb25uZWN0aW9uOjpzZWxlY3RDcmVkZW50aWFsKGNvbnN0IE5T
QXJyYXkgKmNyZWRlbnRpYWxzKSBjb25zdAoreworICAgIC8vIEZJWE1FKHJkYXI6Ly9wcm9ibGVt
LzM1OTAwNTM0KTogV2UgZG9uJ3QgaGF2ZSBhbiBVSSB0byBwcm9tcHQgdXNlcnMgZm9yIHNlbGVj
dGluZyBpbnRlcnNlY3RlZENyZWRlbnRpYWxzLCBhbmQgdGhlcmVmb3JlIHdlIGFsd2F5cyB1c2Ug
dGhlIGZpcnN0IG9uZSBmb3Igbm93LgorICAgIHJldHVybiBjcmVkZW50aWFsc1swXTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9N
b2NrTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaAppbmRleCAwZDk5Nzg2ZTJiMDcxZjJi
MzQwZjM1N2Q1ZGEwZWM0NWE5ZTAwMzlhLi4zMWFkNzFhMzEyN2JhYWE0NjZjNzI5ZGE1YmY0ZDFk
NTJiNGUxYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaApAQCAt
NDAsNiArNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VXNlckNvbnNlbnQoY29uc3QgU3Ry
aW5nJiByZWFzb24sIFVzZXJDb25zZW50Q2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBnZXRVc2VyQ29uc2VudChjb25zdCBTdHJpbmcmIHJlYXNvbiwgU2VjQWNjZXNzQ29udHJvbFJl
ZiwgVXNlckNvbnNlbnRDb250ZXh0Q2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBn
ZXRBdHRlc3RhdGlvbihjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25z
dCBmaW5hbDsKKyAgICBOU0RpY3Rpb25hcnkgKnNlbGVjdENyZWRlbnRpYWwoY29uc3QgTlNBcnJh
eSAqKSBjb25zdCBmaW5hbDsKIAogICAgIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24gbV9jb25maWd1cmF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5tbQppbmRleCA4NmUwNzkwZDE2ODAxMjFlZTdlMWZmN2JhNjk3NjY1MTRhZGY1Yjk5Li41
NzFlY2NhN2U0ZjQ3MGZjNjliNDFjZGQyNjAzOWNiOTI3MWQ0YTBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5l
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0xMDgsNiArMTA4LDE3IEBAIHZvaWQgTW9j
a0xvY2FsQ29ubmVjdGlvbjo6Z2V0QXR0ZXN0YXRpb24oY29uc3QgU3RyaW5nJiBycElkLCBjb25z
dCBTdHJpbmcmIHVzZXJuCiAgICAgfSk7CiB9CiAKK05TRGljdGlvbmFyeSAqTW9ja0xvY2FsQ29u
bmVjdGlvbjo6c2VsZWN0Q3JlZGVudGlhbChjb25zdCBOU0FycmF5ICpjcmVkZW50aWFscykgY29u
c3QKK3sKKyAgICBhdXRvIHByZWZlcnJlZFVzZXJoYW5kbGUgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6bV9jb25maWd1cmF0aW9uLmxvY2FsLT5w
cmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0IG9wdGlvbnM6MF0pOworICAgIGZvciAoTlNEaWN0aW9u
YXJ5ICpjcmVkZW50aWFsIDogY3JlZGVudGlhbHMpIHsKKyAgICAgICAgaWYgKFtjcmVkZW50aWFs
WyhpZClrU2VjQXR0ckFwcGxpY2F0aW9uVGFnXSBpc0VxdWFsVG9EYXRhOnByZWZlcnJlZFVzZXJo
YW5kbGUuZ2V0KCldKQorICAgICAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWw7CisgICAgfQorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBuaWw7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmgKaW5k
ZXggZjQwYTdiN2JkOGJlMWI3ZDBiMzQyODViZDY2NmM4N2QwZGNkNzk2OS4uOTEzZTg1YzE4ZTNh
YzZhN2U5NWU3ZDQ2M2IwMzlhNjU5YjllOTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmgKQEAgLTM4LDYgKzM4
LDcgQEAgc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24gewogICAgICAg
ICBTdHJpbmcgcHJpdmF0ZUtleUJhc2U2NDsKICAgICAgICAgU3RyaW5nIHVzZXJDZXJ0aWZpY2F0
ZUJhc2U2NDsKICAgICAgICAgU3RyaW5nIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjQ7
CisgICAgICAgIFN0cmluZyBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0OwogICAgIH07CiAKICAg
ICBzdHJ1Y3QgSGlkIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAwNGQ4NWQwMDgxMjE0OWI0Yzg5MjA5OWVhOTc4NzNlNDYxMWY1NGQ2Li41MzMz
MTgyYTdiZTRkNDIyNGU2YmFjZGRiOTExYTJjOGFjZDdhMWI1IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDkt
MTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aG5dIExvY2FsQXV0aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBvbiBpbnRlcm5hbCBib3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvY2FsQXV0aGVudGljYXRvciB0ZXN0cyB1dGls
aXplIEtleWNoYWluIGZvciBtb2NrIHRlc3RpbmcuIFVubGlrZSBpT1Mgc2ltdWxhdG9yIHRlc3Rz
IHdoaWNoCisgICAgICAgIGVhY2ggdGVzdCBydW5uZXIgaXMgcnVubmluZyBpbiBkaWZmZXJlbnQg
c2ltdWxhdG9yIGNvbnRhaW5lcnMsIGFsbCB0ZXN0IHJ1bm5lcnMgYXJlIHJ1bm5pbmcKKyAgICAg
ICAgaW4gdGhlIHNhbWUgbWFjT1MgY29udGFpbmVyIGluIG1hY09TLiBUaGVyZWZvcmUsIEtleWNo
YWluIGlzIHNoYXJlZCBhbW9uZyBhbGwgdGVzdCBydW5uZXJzCisgICAgICAgIGluIG1hY09TIHdo
aWxlIGl0IGlzIG5vdCBpbiBpT1Mgc2ltdWxhdG9ycy4gQW5kIHRoZXJlZm9yZSwgcmFjZSBjb25k
aXRpb25zIHdvdWxkIGhhcHBlbiBpbgorICAgICAgICBtYWNPUyB3aGljaCBtYWtlIHRoZSBjdXJy
ZW50IHRlc3RzIGZsYWt5IGdpdmVuIHRoZXkgZG9uJ3QgY29uc2lkZXIgcmFjZSBjb25kaXRpb25z
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggdGhlbiBtYWtlcyBlYWNoIHRlc3QgZ2VuZXJhdGUgYSBy
YW5kb20gY3JlZGVudGlhbCwgYW5kIHRodXMgbm8gb3RoZXIgdGVzdHMgd291bGQKKyAgICAgICAg
YmUgYWJsZSB0byBhY2Nlc3MgaXQsIGFuZCB0aGVyZWZvcmUgZWxpbWluYXRlIGFueSByYWNlIGNv
bmRpdGlvbi4gVG8gYXNzaXMgaXQsIGEgZmV3IG5ldworICAgICAgICBmdW5jdGlvbmFsaXRpZXMg
YXJlIGludHJvZHVjZWQgdG8gdGhlIG1vY2sgdGVzdCBpbmZyYXN0cnVjdHVyZSBhcyB3ZWxsOgor
ICAgICAgICAxKSBUZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbiBhY2NlcHRzIGEgbmV3IHBhcmFt
ZXRlciB0byBtb3JlIHByZWNpc2VseSBpZGVudGlmeSBhbiBpdGVtLgorICAgICAgICAyKSBXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uLkxvY2FsIGhhcyBhIG5ldyBtZW1iZXIgdG8g
dW5pcXVlbHkgc2VsZWN0IGEgY3JlZGVudGlhbAorICAgICAgICBmb3IgZ2V0QXNzZXJ0aW9uIGNl
cmVtb255IHdoZW4gbXVsdGlwbGUgcHJlc2VudHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4pOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsZWFuVXBLZXljaGFpbik6CisKIDIwMTktMDktMTAgIEtl
aXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBTU0wtYmFz
ZWQgVExTRGVwcmVjYXRpb24ubW0gY29udGVudHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmlu
ZGV4IDQyZDM2NjAyZDI1Y2I5OWUyYjhlYTY5MGEyMTI0NGYxYjMwNWEyNDYuLjc0Yjk4MmMwYjA3
YTQ0MDI4YzEyOWNkNTBhY2RmYzliZmYyZmM5YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bApAQCAtMzk1LDcgKzM5NSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBXZWJB
dXRoTgogICAgIHZvaWQgc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbihvYmpl
Y3QgY29uZmlndXJhdGlvbik7CiAgICAgdm9pZCBhZGRUZXN0S2V5VG9LZXljaGFpbihET01TdHJp
bmcgcHJpdmF0ZUtleUJhc2U2NCwgRE9NU3RyaW5nIGF0dHJMYWJlbCwgRE9NU3RyaW5nIGFwcGxp
Y2F0aW9uVGFnQmFzZTY0KTsKLSAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihET01TdHJpbmcgYXR0
ckxhYmVsKTsKKyAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihET01TdHJpbmcgYXR0ckxhYmVsLCBv
cHRpb25hbCBET01TdHJpbmcgYXBwbGljYXRpb25UYWdCYXNlNjQpOwogICAgIGJvb2xlYW4ga2V5
RXhpc3RzSW5LZXljaGFpbihET01TdHJpbmcgYXR0ckxhYmVsLCBET01TdHJpbmcgYXBwbGljYXRp
b25UYWdCYXNlNjQpOwogCiAgICAgLy8gQWQgQ2xpY2sgQXR0cmlidXRpb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IDA3Y2FjNjBlMTY3Y2M1NDg2YjczMDAwOGZkYjEyNWU3YjVhMzZmZTAuLjQzZGFlOTcxMGVhM2U5
Yzk5NGI5NjUzODAzNTQ3MjcwOGJhODVmYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjU4NSw3ICsyNTg1LDcg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9u
KEpTVmFsdWVSZWYgY29uZmlndXJhdGlvblYKICAgICAgICAgICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0UHJvcGVydHlOYW1lKEFkb3B0
LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0
ZUJhc2U2NCIpKTsKICAgICAgICAgICAgIEpTVmFsdWVSZWYgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZp
Y2F0ZUJhc2U2NFZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBsb2NhbCwgaW50
ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NFByb3BlcnR5TmFtZS5nZXQoKSwgMCk7CiAgICAg
ICAgICAgICBpZiAoIUpTVmFsdWVJc1N0cmluZyhjb250ZXh0LCBpbnRlcm1lZGlhdGVDQUNlcnRp
ZmljYXRlQmFzZTY0VmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICAgICAgbG9jYWxLZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQcml2YXRlS2V5QmFzZTY0IikpKTsKICAgICAgICAgICAg
IGxvY2FsVmFsdWVzLmFwcGVuZCh0b1dLKGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4
dCwgcHJpdmF0ZUtleUJhc2U2NFZhbHVlLCAwKSkuZ2V0KCkpKTsKQEAgLTI1OTUsNiArMjU5NSwx
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRp
b24oSlNWYWx1ZVJlZiBjb25maWd1cmF0aW9uVgogICAgICAgICAgICAgbG9jYWxWYWx1ZXMuYXBw
ZW5kKHRvV0soYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBpbnRlcm1lZGlhdGVD
QUNlcnRpZmljYXRlQmFzZTY0VmFsdWUsIDApKS5nZXQoKSkpOwogICAgICAgICB9CiAKKyAgICAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRQcm9w
ZXJ0eU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJwcmVmZXJyZWRV
c2VyaGFuZGxlQmFzZTY0IikpOworICAgICAgICBKU1ZhbHVlUmVmIHByZWZlcnJlZFVzZXJoYW5k
bGVCYXNlNjRWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgbG9jYWwsIHByZWZl
cnJlZFVzZXJoYW5kbGVCYXNlNjRQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOworICAgICAgICBpZiAo
IUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0VmFs
dWUpICYmICFKU1ZhbHVlSXNOdWxsKGNvbnRleHQsIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRW
YWx1ZSkpIHsKKyAgICAgICAgICAgIGlmICghSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHByZWZl
cnJlZFVzZXJoYW5kbGVCYXNlNjRWYWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgICAgICBsb2NhbEtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjQiKSkpOworICAgICAgICAgICAgbG9j
YWxWYWx1ZXMuYXBwZW5kKHRvV0soYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBw
cmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0VmFsdWUsIDApKS5nZXQoKSkpOworICAgICAgICB9CisK
ICAgICAgICAgVmVjdG9yPFdLU3RyaW5nUmVmPiByYXdMb2NhbEtleXM7CiAgICAgICAgIFZlY3Rv
cjxXS1R5cGVSZWY+IHJhd0xvY2FsVmFsdWVzOwogICAgICAgICByYXdMb2NhbEtleXMucmVzaXpl
KGxvY2FsS2V5cy5zaXplKCkpOwpAQCAtMjgzNywxMCArMjg0NywzMSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OmFkZFRlc3RLZXlUb0tleWNoYWluKEpTU3RyaW5nUmVmIHByaXZhdGVLZXlCYXNlNjQsIEpT
U3RyaW5nUmVmCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpLCBudWxscHRyKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4o
SlNTdHJpbmdSZWYgYXR0ckxhYmVsKQordm9pZCBUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4o
SlNTdHJpbmdSZWYgYXR0ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jhc2U2NCkK
IHsKKyAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOworICAgIFZlY3Rv
cjxXS1JldGFpblB0cjxXS1R5cGVSZWY+PiB2YWx1ZXM7CisKKyAgICBrZXlzLmFwcGVuZChhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBdHRyTGFiZWwiKSkpOworICAgIHZh
bHVlcy5hcHBlbmQodG9XSyhhdHRyTGFiZWwpKTsKKworICAgIGlmIChhcHBsaWNhdGlvblRhZ0Jh
c2U2NCkgeworICAgICAgICBrZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJBcHBsaWNhdGlvblRhZyIpKSk7CisgICAgICAgIHZhbHVlcy5hcHBlbmQodG9X
SyhhcHBsaWNhdGlvblRhZ0Jhc2U2NCkpOworICAgIH0KKworICAgIFZlY3RvcjxXS1N0cmluZ1Jl
Zj4gcmF3S2V5czsKKyAgICBWZWN0b3I8V0tUeXBlUmVmPiByYXdWYWx1ZXM7CisgICAgcmF3S2V5
cy5yZXNpemUoa2V5cy5zaXplKCkpOworICAgIHJhd1ZhbHVlcy5yZXNpemUodmFsdWVzLnNpemUo
KSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgcmF3S2V5c1tpXSA9IGtleXNbaV0uZ2V0KCk7CisgICAgICAgIHJhd1ZhbHVlc1tpXSA9
IHZhbHVlc1tpXS5nZXQoKTsKKyAgICB9CisKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDbGVh
blVwS2V5Y2hhaW4iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VCb2R5
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhhdHRyTGFiZWwpKTsKKyAgICBX
S1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rp
b25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJhd1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6
ZSgpKSk7CiAKICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHku
Z2V0KCksIG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAwOWFmM2JkZjI2MzJiZjhmNmQ1MzVlNzYzYmE2
OWMwY2M0NzcyNjBmLi4wZDgwNzBmMmE3NWVhMzBiYWFjYTRjYWUxMGNiNDBlMGZjNTM4ODFjIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaApAQCAtNDg5LDcgKzQ4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYkF1dGhlbnRp
Y2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oSlNWYWx1ZVJlZik7CiAgICAgLy8gRklYTUUoMTg5ODc2
KQogICAgIHZvaWQgYWRkVGVzdEtleVRvS2V5Y2hhaW4oSlNTdHJpbmdSZWYgcHJpdmF0ZUtleUJh
c2U2NCwgSlNTdHJpbmdSZWYgYXR0ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jh
c2U2NCk7Ci0gICAgdm9pZCBjbGVhblVwS2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0ckxhYmVsKTsK
KyAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihKU1N0cmluZ1JlZiBhdHRyTGFiZWwsIEpTU3RyaW5n
UmVmIGFwcGxpY2F0aW9uVGFnQmFzZTY0KTsKICAgICBib29sIGtleUV4aXN0c0luS2V5Y2hhaW4o
SlNTdHJpbmdSZWYgYXR0ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jhc2U2NCk7
CiAKICAgICB2b2lkIHNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wg
Y2FuSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA4
MzdlNGFiMmNiMGU2NjE3MWNkZWY0MGJkYjE0ODZjNmUwYmQ3MTQ4Li5hZjVlNTk5NTYyZDc2YmU4
N2FjNTcyYzQ0YmM0Mjc5M2U3ZWUyNTQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKFdLRGljdGlvbmFyeVJlZik7CiAgICAgdm9p
ZCBhZGRUZXN0S2V5VG9LZXljaGFpbihjb25zdCBTdHJpbmcmIHByaXZhdGVLZXlCYXNlNjQsIGNv
bnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uVGFnQmFzZTY0
KTsKLSAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCk7Cisg
ICAgdm9pZCBjbGVhblVwS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwsIGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25UYWdCYXNlNjQpOwogICAgIGJvb2wga2V5RXhpc3RzSW5LZXljaGFp
bihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblRhZ0Jh
c2U2NCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2RiODA1YzA3
YTk5Mi4uZmQyNTIwMGQ0MDJmMGNmZDMyMmNiZWJhMThmMDViMDlmNGZjZDFmZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE1ODYsOCArMTU4NiwxNiBA
QCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYW5VcEtleWNoYWluIikpIHsKLSAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgp
KTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNsZWFuVXBLZXljaGFpbih0
b1dURlN0cmluZyhzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpKSk7CisgICAg
ICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlw
ZUlEKCkpOworICAgICAgICBXS0RpY3Rpb25hcnlSZWYgdGVzdERpY3Rpb25hcnkgPSBzdGF0aWNf
Y2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKworICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gYXR0ckxhYmVsS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQXR0ckxhYmVsIikpOworICAgICAgICBXS1N0cmluZ1JlZiBhdHRyTGFiZWxX
SyA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KHRl
c3REaWN0aW9uYXJ5LCBhdHRyTGFiZWxLZXkuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gYXBwbGljYXRpb25UYWdLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJBcHBsaWNhdGlvblRhZyIpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYg
YXBwbGljYXRpb25UYWdXSyA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KHRlc3REaWN0aW9uYXJ5LCBhcHBsaWNhdGlvblRhZ0tleS5nZXQoKSkpOwor
CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhblVwS2V5Y2hhaW4odG9X
VEZTdHJpbmcoYXR0ckxhYmVsV0spLCBhcHBsaWNhdGlvblRhZ1dLID8gdG9XVEZTdHJpbmcoYXBw
bGljYXRpb25UYWdXSykgOiBTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tCmluZGV4IDg4NjNiZGJiNmQ1NDAwODI2YTY5ZTA3MmU5Yzk3NGQ4YjFjNzkyMzgu
LmU0YmMwNDA0ZjA1OTg2NDg3ODAxNTY4NTdjNDY5M2JjMWU1YmMzNzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTM2
MywxOCArMzYzLDIwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmFkZFRlc3RLZXlUb0tleWNoYWlu
KGNvbnN0IFN0cmluZyYgcHJpdmF0ZUtleUJhc2U2NCwgY29uc3QKICAgICBBU1NFUlRfVU5VU0VE
KHN0YXR1cywgIXN0YXR1cyk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFuVXBLZXlj
aGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFu
VXBLZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBsaWNh
dGlvblRhZ0Jhc2U2NCkKIHsKLSAgICBOU0RpY3Rpb25hcnkqIGRlbGV0ZVF1ZXJ5ID0gQHsKLSAg
ICAgICAgKGlkKWtTZWNDbGFzczogKGlkKWtTZWNDbGFzc0tleSwKLSAgICAgICAgKGlkKWtTZWNB
dHRyTGFiZWw6IGF0dHJMYWJlbCwKKyAgICBhdXRvIGRlbGV0ZVF1ZXJ5ID0gYWRvcHROUyhbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZXRlUXVlcnkgc2V0T2Jq
ZWN0OihpZClrU2VjQ2xhc3NLZXkgZm9yS2V5OihpZClrU2VjQ2xhc3NdOworICAgIFtkZWxldGVR
dWVyeSBzZXRPYmplY3Q6YXR0ckxhYmVsIGZvcktleTooaWQpa1NlY0F0dHJMYWJlbF07CiAjaWYg
SEFWRShEQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4pCi0gICAgICAgIChpZClrU2VjVXNlRGF0YVBy
b3RlY3Rpb25LZXljaGFpbjogQFlFUworICAgIFtkZWxldGVRdWVyeSBzZXRPYmplY3Q6QFlFUyBm
b3JLZXk6KGlkKWtTZWNVc2VEYXRhUHJvdGVjdGlvbktleWNoYWluXTsKICNlbHNlCi0gICAgICAg
IChpZClrU2VjQXR0ck5vTGVnYWN5OiBAWUVTCisgICAgW2RlbGV0ZVF1ZXJ5IHNldE9iamVjdDpA
WUVTIGZvcktleTooaWQpa1NlY0F0dHJOb0xlZ2FjeV07CiAjZW5kaWYKLSAgICB9OwotICAgIFNl
Y0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilkZWxldGVRdWVyeSk7CisgICAg
aWYgKCEhYXBwbGljYXRpb25UYWdCYXNlNjQpCisgICAgICAgIFtkZWxldGVRdWVyeSBzZXRPYmpl
Y3Q6YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOmFw
cGxpY2F0aW9uVGFnQmFzZTY0IG9wdGlvbnM6TlNEYXRhQmFzZTY0RGVjb2RpbmdJZ25vcmVVbmtu
b3duQ2hhcmFjdGVyc10pLmdldCgpIGZvcktleTooaWQpa1NlY0F0dHJBcHBsaWNhdGlvblRhZ107
CisKKyAgICBTZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZGVsZXRlUXVl
cnkuZ2V0KCkpOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWlu
KGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uVGFnQmFz
ZTY0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGU5NzcwZTYyMDg1OTM4NTVhNTgzYzQ1YjMzZGI3NzgzMzE0MTNhY2IuLmYz
YTU3NTEzYTgyYmNmMzRkNzYxNmFlNmZjZjIwMjY3MDMyMWFlZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAxOS0wOS0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJBdXRobl0gTG9jYWxBdXRoZW50aWNhdG9yIHRlc3RzIGFyZSBmYWlsaW5nIG9u
IGludGVybmFsIGJvdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMTg0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyNzg2OTM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBlYWNoIHRlc3QgdG8gZ2VuZXJhdGUgdGhlaXIgb3duIGNyZWRlbnRpYWxzIHRvIGF2b2lkIHJh
Y2UgY29uZGl0aW9ucyBpbiBLZXljaGFpbgorICAgICAgICBhY2Nlc3NlcyB3aGVuIG11bHRpcGxl
IHRlc3QgcnVubmVycyBwcmVzZW50LgorCisgICAgICAgICogaHR0cC93cHQvY3JlZGVudGlhbC1t
YW5hZ2VtZW50L2NyZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5odHRwcy5odG1sOgor
ICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sOgorICAgICAgICBUaGVz
ZSB0d28gdGVzdHMgYXJlIGNoYW5nZWQgdG8gdXNlIGhpZCBhdXRoZW50aWNhdG9yIGluc3RlYWQg
b2YgbG9jYWwgdG8gYXZvaWQgYW55IGZ1dHVyZSBLZXljaGFpbiBpc3N1ZXMuCisgICAgICAgICog
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxv
Y2FsLXNpbGVudC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vz
cy1sb2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
bG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRw
L3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDktMTAgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBbIENhdGFsaW5hIFdLMiBdIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy11MmYu
aHR0cHMuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
cmVkZW50aWFsLW1hbmFnZW1lbnQvY3JlZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jcmVkZW50aWFsLW1hbmFnZW1lbnQvY3Jl
ZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0dHBzLmh0bWwKaW5kZXggMTBkODM1NmJm
N2U2Yjg2MjBmZTc1NGJlMmM1NDlhNTg2YjUxNGZlOC4uYmMwMjExOTJlMDBjYTFmYzcxMTZlNTIw
MGVkYTM0YWYwOWVkMGUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3JlZGVu
dGlhbC1tYW5hZ2VtZW50L2NyZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2NyZWRlbnRpYWwtbWFuYWdlbWVudC9jcmVk
ZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3MuaHR0cHMuaHRtbApAQCAtMyw0MyArMywyOCBA
QAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLSAgICBjb25zdCB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0ID0KLSAgICAgICAgIkJE
ai96eFNrektnYUJ1UzNjZFdERjU1OG9mOEFhSXBnRnBzakYvUW0xNzQ5VkJKUGdxVUl3ZmhXSEo5
MW5iN1UiICsKLSAgICAgICAgIlBINzZjMCtXRk96WktzbFB5eUZzZTRnb0dJVzJSN2s5VkhMUEVa
bDVuZm5CZ0VWRmg1emV2Ky94cEhRSXZ1cTYiICsKLSAgICAgICAgIlJRPT0iOwotICAgIGNvbnN0
IHRlc3RBdHRlc3RhdGlvbkNlcnRpZmljYXRlQmFzZTY0ID0KLSAgICAgICAgIk1JSUI2akNDQVpD
Z0F3SUJBZ0lHQVdIQXhjanZNQW9HQ0NxR1NNNDlCQU1DTUZNeEp6QWxCZ05WQkFNTUhrSmgiICsK
LSAgICAgICAgImMybGpJRUYwZEdWemRHRjBhVzl1SUZWelpYSWdVM1ZpSUVOQk1URVRNQkVHQTFV
RUNnd0tRWEJ3YkdVZ1NXNWoiICsKLSAgICAgICAgIkxqRVRNQkVHQTFVRUNBd0tRMkZzYVdadmNt
NXBZVEFlRncweE9EQXlNak13TXpNM01qSmFGdzB4T0RBeU1qUXciICsKLSAgICAgICAgIk16UTNN
akphTUdveElqQWdCZ05WQkFNTUdUQXdNREE0TURFd0xUQXdNRUUwT1VFeU16QkJNREl4TTBFeEdq
QVkiICsKLSAgICAgICAgIkJnTlZCQXNNRVVKQlFTQkRaWEowYVdacFkyRjBhVzl1TVJNd0VRWURW
UVFLREFwQmNIQnNaU0JKYm1NdU1STXciICsKLSAgICAgICAgIkVRWURWUVFJREFwRFlXeHBabTl5
Ym1saE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXZDamUiICsKLSAgICAgICAg
IlB6cjZTZzc2WE1vSHVHYWJQYUc2empwTEZMOFpkOC83NEhoNVBjTDJacStvK2Y3RU5YWCs3bkVY
WFl0MFM4VXgiICsKLSAgICAgICAgIjVUSVJ3NGhnYmZ4WFFiV0xFcU01TURjd0RBWURWUjBUQVFI
L0JBSXdBREFPQmdOVkhROEJBZjhFQkFNQ0JQQXciICsKLSAgICAgICAgIkZ3WUpLb1pJaHZkalpB
Z0NCQW93Q0tFR0JBUjBaWE4wTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUFsSzhBOEkiICsKLSAg
ICAgICAgIms0M1Ridkt1WUdIWnMxRFRncFR3bUtUQnZJVXc1YndnWnVZbkFpRUF0dUpqRExLYkdO
SkFKRk1pNWRlRUJxbm8iICsKLSAgICAgICAgInBCVENxYmZiREpjY2Z5UXBqblk9IjsKLSAgICBj
b25zdCB0ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NCA9Ci0gICAgICAg
ICJNSUlDSXpDQ0FhaWdBd0lCQWdJSWVOamhHOXRuREdnd0NnWUlLb1pJemowRUF3SXdVekVuTUNV
R0ExVUVBd3dlIiArCi0gICAgICAgICJRbUZ6YVdNZ1FYUjBaWE4wWVhScGIyNGdWWE5sY2lCU2Iy
OTBJRU5CTVJNd0VRWURWUVFLREFwQmNIQnNaU0JKIiArCi0gICAgICAgICJibU11TVJNd0VRWURW
UVFJREFwRFlXeHBabTl5Ym1saE1CNFhEVEUzTURReU1EQXdOREl3TUZvWERUTXlNRE15IiArCi0g
ICAgICAgICJNakF3TURBd01Gb3dVekVuTUNVR0ExVUVBd3dlUW1GemFXTWdRWFIwWlhOMFlYUnBi
MjRnVlhObGNpQlRkV0lnIiArCi0gICAgICAgICJRMEV4TVJNd0VRWURWUVFLREFwQmNIQnNaU0JK
Ym1NdU1STXdFUVlEVlFRSURBcERZV3hwWm05eWJtbGhNRmt3IiArCi0gICAgICAgICJFd1lIS29a
SXpqMENBUVlJS29aSXpqMERBUWNEUWdBRW9TWi8xdDllQkFFVnA1YThQclhhY21iR2I4ek5DMVgz
IiArCi0gICAgICAgICJTdExJOVlPNlkwQ0w3YmxIbVNHbWpHV1R3RDRRK2kwSjJCWTMrYlBIVEdS
eUE5akdCM01TYmFObU1HUXdFZ1lEIiArCi0gICAgICAgICJWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFE
QWZCZ05WSFNNRUdEQVdnQlNENWFNaG5yQjB3L2xoa1AyWFRpTVFkcVNqIiArCi0gICAgICAgICI4
akFkQmdOVkhRNEVGZ1FVNW1XZjFEWUxUWFVkUTl4bU9IL3VxZU5TRDgwd0RnWURWUjBQQVFIL0JB
UURBZ0VHIiArCi0gICAgICAgICJNQW9HQ0NxR1NNNDlCQU1DQTJrQU1HWUNNUUMzTTM2MExMdEpT
NjBaOXEzdlZqSnhNZ01jRlExcm9HVFVjS3F2IiArCi0gICAgICAgICJXKzRoSjRDZUpqeVNYVGdx
NklFSG4veVdhYjRDTVFDbTVObks2U09TSytBcVd1bTlsTDg3VzNFNkFBMWYyVHZKIiArCi0gICAg
ICAgICIvaGdvay8zNGpyOTNuaFM4N3RPUU5keERTOHp5aXF3PSI7Ci0gICAgY29uc3QgdGVzdFJw
SWQgPSAibG9jYWxob3N0IjsKLSAgICBmdW5jdGlvbiBhc2NpaVRvVWludDhBcnJheShzdHIpCi0g
ICAgewotICAgICAgICB2YXIgY2hhcnMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzdHIubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBjaGFycy5wdXNoKHN0ci5jaGFyQ29kZUF0
KGkpKTsKLSAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJzKTsKLSAgICB9CisgICAg
Y29uc3QgdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS01CWm5CaFkydGxa
QUpZeEViTWY3bG5uVld5MjVDUzRjalo1ZUhRSzNXQThMU0JMSGNKWXVIa2oxcllRUUFBIiArCisg
ICAgICAgICJBRTc0b0JIempBcE5GWUFHRnhFZm50eDlBRUFvQ0szTzZQNU95WE42Vi9mKzluQWdh
ME5BMkNncDRWM21nU0o1IiArCisgICAgICAgICJqT0hMTURybXhwL1MwcmJEK2FpaHJ1MUMwYUFO
M0JraU02R055NW5TbERWcU9nVGdwUUVDQXlZZ0FTRllJRUZiIiArCisgICAgICAgICJoZTNSa051
ZDZzZ3lyYUJHamxoMXB6VGxDWmVoUWxML2IxOEhaNldHSWxnZ0pnZlVkL2VuOXA1QUlxTVFiVW5p
IiArCisgICAgICAgICJuRWVYZEZMa3ZXMC96VjVCcEVqak54QURvMk5oYkdjbVkzTnBaMWhITUVV
Q0lRREtnK1pCbUVCdGYwbFdxNFJlIiArCisgICAgICAgICJkSDQvaS9MT1lxT1I0dVIyTkFqMnpR
bXc5UUlnYlRYYjRodkZiajRUMjdidi9yR3JjK3krMHB1b1lPQmtCazlQIiArCisgICAgICAgICJt
Q2V3V2xOamVEVmpnVmtDd2pDQ0FyNHdnZ0dtb0FNQ0FRSUNCSFNHL2NJd0RRWUpLb1pJaHZjTkFR
RUxCUUF3IiArCisgICAgICAgICJMakVzTUNvR0ExVUVBeE1qV1hWaWFXTnZJRlV5UmlCU2IyOTBJ
RU5CSUZObGNtbGhiQ0EwTlRjeU1EQTJNekV3IiArCisgICAgICAgICJJQmNOTVRRd09EQXhNREF3
TURBd1doZ1BNakExTURBNU1EUXdNREF3TURCYU1HOHhDekFKQmdOVkJBWVRBbE5GIiArCisgICAg
ICAgICJNUkl3RUFZRFZRUUtEQWxaZFdKcFkyOGdRVUl4SWpBZ0JnTlZCQXNNR1VGMWRHaGxiblJw
WTJGMGIzSWdRWFIwIiArCisgICAgICAgICJaWE4wWVhScGIyNHhLREFtQmdOVkJBTU1IMWwxWW1s
amJ5QlZNa1lnUlVVZ1UyVnlhV0ZzSURFNU5UVXdNRE00IiArCisgICAgICAgICJOREl3V1RBVEJn
Y3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNWWGZPdDl5UjlNWFh2L1p6RTh4cE9oNDY2IiAr
CisgICAgICAgICI0WUVKVm1GUSt6aUxMbDlsSjc5WFFKcWxnYVVOQ3NVdkdFUmNDaE5VaWhOVHlL
VGxtbkJPVWp2QVRldnRvMnd3IiArCisgICAgICAgICJhakFpQmdrckJnRUVBWUxFQ2dJRUZURXVN
eTQyTGpFdU5DNHhMalF4TkRneUxqRXVNVEFUQmdzckJnRUVBWUxsIiArCisgICAgICAgICJIQUlC
QVFRRUF3SUZJREFoQmdzckJnRUVBWUxsSEFFQkJBUVNCQkQ0b0JIempBcE5GWUFHRnhFZm50eDlN
QXdHIiArCisgICAgICAgICJBMVVkRXdFQi93UUNNQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VC
QURGY1NJRG1tbEorT0dhSnZXbjlDcWh2IiArCisgICAgICAgICJTZXVlVG9WRlFWVnZxdEFMT2dD
S0hkd0IrV3gyOW1nMkdwSGlNc2dRcDV4akIweWJibnBHNngyMTJGeEVTSitHIiArCisgICAgICAg
ICJpblpEMGlwY2hpN0FQd1BsaEl2amdIMTZ6Vlg0NGE0ZTRoT3NjNnRMSU9QNzFTYU1zSHVIZ0Nj
ZEgwdmc1ZDJzIiArCisgICAgICAgICJjMDA2V0plOVRYTzZmelYrb2dqSm5ZcE5LUUxtQ1hvQVhF
M0pCTndLR0JJT0N2ZlFEUHlXbWlpRzViR3hZZlB0IiArCisgICAgICAgICJ5OFozcG5qWCsxTURu
TTJoaHI0MHVsTXhsU05EblgvWlNuRHlNR0liazhUT1FtalRGMDJVTzhhdVA4azN3dDVEIiArCisg
ICAgICAgICIxclJPSVJVOStGQ1NYNVdRWWk2OFJ1RHJHTVpCOFA1K2J5b0pxYktRZHhuMkxtRTFv
WkF5b2hQQW1MY29QTzQ9IjsKIAogICAgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7
CiAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CkBAIC00OSwzMCArMzQsMTggQEAKICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgIHVzZXI6IHsKICAgICAgICAgICAgICAgICAgICAg
bmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IG5ldyBVaW50OEFy
cmF5KDE2KSwKICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAog
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6
IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQogICAgICAgICAgICAgfQogICAgICAg
ICB9OwogICAgICAgICAvLyBBIG1vY2sgYXR0ZXN0YXRpb24gb2JqZWN0CiAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGlj
YXRpb25Nb2NrQ29uZmlndXJhdGlvbih7Ci0gICAgICAgICAgICAgICAgbG9jYWw6IHsKLSAgICAg
ICAgICAgICAgICAgICAgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIGFjY2VwdEF0dGVzdGF0aW9uOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBwcml2
YXRlS2V5QmFzZTY0OiB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LAotICAgICAgICAgICAgICAg
ICAgICB1c2VyQ2VydGlmaWNhdGVCYXNlNjQ6IHRlc3RBdHRlc3RhdGlvbkNlcnRpZmljYXRlQmFz
ZTY0LAotICAgICAgICAgICAgICAgICAgICBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0
OiB0ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRo
ZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1
YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJzdWNjZXNzIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDcmVh
dGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CiAgICAgICAgIGNvbnN0IGNyZWRlbnRpYWwgPSBhd2Fp
dCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpOwogCi0gICAgICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHModCwgIk5vdFN1cHBvcnRlZEVycm9yIiwKLSAgICAgICAgICAgIG5h
dmlnYXRvci5jcmVkZW50aWFscy5zdG9yZShjcmVkZW50aWFsKSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgIH0pOworICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5zdG9yZShjcmVkZW50aWFsKSk7CiAgICAgfSwgIm5hdmlnYXRvci5jcmVk
ZW50aWFscy5zdG9yZSgpLiIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL2lkbC5odHRwcy5odG1sCmluZGV4IGRiNjNmNmNjYzc1ZjI4MzE4MzRiZDJkNzExMzIy
M2YyNWM3NmM2M2YuLmRjMTJiNzIyNGIxZTBmZDA2ODU3OTcwNTBhY2M5ZWZmYjk4NWNmNjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sCkBAIC0xOSwx
NyArMTksNiBAQAogPGRpdiBpZD0nbG9nJz48L2Rpdj4KIAogPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZp
Z3VyYXRpb24oewotICAgICAgICBsb2NhbDogewotICAgICAgICAgICAgYWNjZXB0QXV0aGVudGlj
YXRpb246IHRydWUsCi0gICAgICAgICAgICBhY2NlcHRBdHRlc3RhdGlvbjogdHJ1ZSwKLSAgICAg
ICAgICAgIHByaXZhdGVLZXlCYXNlNjQ6IHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsCi0gICAg
ICAgICAgICB1c2VyQ2VydGlmaWNhdGVCYXNlNjQ6IHRlc3RBdHRlc3RhdGlvbkNlcnRpZmljYXRl
QmFzZTY0LAotICAgICAgICAgICAgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NDogdGVz
dEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQKLSAgICAgICAgfQotICAgIH0p
OwotCiBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgIGNvbnN0IGlkbFVSTCA9IFsiV2Vi
QXV0aE4uaWRsIl07CiAgICAgY29uc3QgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKQEAgLTU0
LDcgKzQzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAgICBu
YW1lOiAibG9jYWxob3N0IiwKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB1c2VyOiB7Ci0g
ICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBu
YW1lOiB0ZXN0VXNlcmhhbmRsZUJhc2U2NCwKICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJM
LnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkFwcGxlc2VlZCIsCiAgICAgICAgICAgICB9LApAQCAtNjIsMjAgKzUxLDIxIEBAIHByb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0
eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCiAgICAgICAgIH0KICAgICB9OworICAgIC8v
IEEgbW9jayBhdHRlc3RhdGlvbiBvYmplY3QKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7
IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2Vz
cyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOwogICAg
IGNyZWF0ZWRDcmVkZW50aWFsID0gYXdhaXQgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShj
cmVhdGlvbk9wdGlvbnMpOwogCi0KICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHsKICAgICAg
ICAgcHVibGljS2V5OiB7CiAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgi
TVRJek5EVTIiKSwKICAgICAgICAgfQogICAgIH07CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRp
b24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1
Y2Nlc3MiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7
CiAgICAgcmVxdWVzdGVkQ3JlZGVudGlhbCA9IGF3YWl0IG5hdmlnYXRvci5jcmVkZW50aWFscy5n
ZXQocmVxdWVzdE9wdGlvbnMpOwogCiAgICAgaWRsQXJyYXkuYWRkX29iamVjdHMoeyJQdWJsaWNL
ZXlDcmVkZW50aWFsIjogWyJjcmVhdGVkQ3JlZGVudGlhbCJdLCAiQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UiOiBbImNyZWF0ZWRDcmVkZW50aWFsLnJlc3BvbnNlIl0sICJBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UiOiBbInJlcXVlc3RlZENyZWRlbnRpYWwucmVzcG9uc2Ui
XX0pOwogICAgIGlkbEFycmF5LnRlc3QoKTsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwogfSwgIlNldHVw
IGZvciBXZWJBdXRoTiBBUEkgSURMIHRlc3RzLiIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50
Lmh0dHBzLmh0bWwKaW5kZXggOTY2YzgyNjMyYWU5Yjk2N2Y5YzQ2MTMwZjM2NWZkM2ZkYzkwMWY2
Yi4uNmEwMGJlZGU2ZGQ5YmU3ODMwNmFlN2Q0MGU3NWZlZDNiYzRjYWMyZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC1z
aWxlbnQuaHR0cHMuaHRtbApAQCAtNCwxNDcgKzQsMTUyIEBACiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIC8vIERlZmF1bHQgbW9jayBj
b25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJl
bnQgY29uZmlndXJhdGlvbi4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRl
c3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IHNpbGVudEZh
aWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0
QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICBjb25zdCB1c2VyaGFuZGxlQmFzZTY0ID0gZ2VuZXJhdGVVc2VyaGFuZGxlQmFzZTY0KCk7Cisg
ICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSBhd2FpdCBnZW5lcmF0ZVByaXZhdGVLZXlC
YXNlNjQoKTsKKyAgICAgICAgY29uc3QgY3JlZGVudGlhbElEID0gYXdhaXQgY2FsY3VsYXRlQ3Jl
ZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpOworICAgICAgICAvLyBEZWZhdWx0IG1vY2sgY29u
ZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50
IGNvbmZpZ3VyYXRpb24uCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IHNp
bGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwg
YWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7
Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAg
ICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5j
b20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAg
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAg
ICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC0z
NSB9LCB7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtMjU3IH1dLCAvLyBFUzM4NCwgUlMyNTYK
LSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9Owot
ICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIp
OwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBm
YWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
ICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAg
ICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC0zNSB9LCB7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtMjU3IH1dLCAvLyBFUzM4NCwgUlMy
NTYKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RB
bGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3Bl
cmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0
b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2hu
IEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVz
dFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpv
aG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2Np
aVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGV4
Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBh
cnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVT
MjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50
aGVuKCgpID0+IHsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAg
ICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNv
bSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogewor
ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisg
ICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFy
cmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgICAgICBleGNs
dWRlQ3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSB9XSwKKyAgICAgICAgICAgICAgICAgICAgdGltZW91
dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtl
eWNoYWluKHRlc3RScElkKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhl
bnRpY2F0b3IuIDIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tl
eWNoYWluKHByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAg
ICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQu
IikudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwg
dXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxv
Y2FsIGF1dGhlbnRpY2F0b3IuIDIiKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAg
ICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAg
ICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAg
ICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0g
ICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbCi0gICAgICAgICAgICAgICAgICAg
IHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFs
SWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
dHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRC
YXNlNjQpLCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlw
ZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNl
NjQpLCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTog
InB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQp
LCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgdGltZW91dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5
VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJo
YW5kbGVCYXNlNjQpOwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93
ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRp
b24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4geworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2Vy
aGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9o
biIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAg
ICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsi
dXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBp
ZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0
czogWyJibGUiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtl
eSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9CisgICAgICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJ
ZCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRl
S2V5QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4g
eworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNl
NjQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNh
dG9yLiAzIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlv
bnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewot
ICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJK
b2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTog
IkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBh
cmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAg
IHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiBw
cm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7Ci0gICAgfSwgIlB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIDQiKTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVz
ZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJK
b2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRp
bWVkIG91dC4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDQiKTsK
IAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAg
ICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhh
bmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0g
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50
OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0
eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgdGltZW91dDog
MTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGlj
YXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwotICAgICAgICByZXR1
cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOwotICAgIH0sICJQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEg
bW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiA1Iik7CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRl
c3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBz
aWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwg
YWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgICAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4gNSIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAg
ICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAg
ICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAg
ICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwK
LSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2Vy
aGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9o
biIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IHNpbGVu
dEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFk
ZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxl
QmFzZTY0KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9u
TW9ja0NvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRB
dXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7Ci0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVL
ZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UodGVzdFJ1bm5lci5rZXlFeGlzdHNJbktleWNoYWluKHRlc3RS
cElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCkpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4gNiIpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9w
dGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9m
YWxzZSh0ZXN0UnVubmVyLmtleUV4aXN0c0luS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVC
YXNlNjQpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVu
dGljYXRvci4gNiIpOworICAgIH0pKCk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVy
ZS1sb2NhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKaW5kZXggNTZm
YmMzZWNhNDkxYjRmNGFkOWVjYzI0OTFlM2QxYWM2NjdkMGZjMS4uYzNjOTM3MjY0NGIzODE0Y2I0
YTM0NWMzNTE5NjEzODc4ZWVlMjQ1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKQEAgLTQsMTY0ICs0LDE2OSBA
QAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LSAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlk
ZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCi0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogZmFsc2UsIGFjY2Vw
dEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgIChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAg
ICAgY29uc3QgdXNlcmhhbmRsZUJhc2U2NCA9IGdlbmVyYXRlVXNlcmhhbmRsZUJhc2U2NCgpOwor
ICAgICAgICBjb25zdCBwcml2YXRlS2V5QmFzZTY0ID0gYXdhaXQgZ2VuZXJhdGVQcml2YXRlS2V5
QmFzZTY0KCk7CisgICAgICAgIGNvbnN0IGNyZWRlbnRpYWxJRCA9IGF3YWl0IGNhbGN1bGF0ZUNy
ZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KTsKKyAgICAgICAgLy8gRGVmYXVsdCBtb2NrIGNv
bmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVu
dCBjb25maWd1cmF0aW9uLgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBs
b2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBm
YWxzZSB9IH0pOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRp
b25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsK
LSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtMzUgfSwgeyB0eXBlOiAicHVibGlj
LWtleSIsIGFsZzogLTI1NyB9XSwgLy8gRVMzODQsIFJTMjU2Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH07Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiVGhlIHBsYXRmb3Jt
IGF0dGFjaGVkIGF1dGhlbnRpY2F0b3IgZG9lc24ndCBzdXBwb3J0IGFueSBwcm92aWRlZCBQdWJs
aWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycy4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCB1bnN1cHBvcnRlZCBwdWJsaWMga2V5IGNyZWRlbnRpYWwgcGFy
YW1ldGVycyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgcHJvbWlz
ZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFt
ZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxn
OiAtMzUgfSwgeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTI1NyB9XSwgLy8gRVMzODQsIFJT
MjU2CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVy
biBwcm9taXNlUmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiVGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1dGhlbnRpY2F0
b3IgZG9lc24ndCBzdXBwb3J0IGFueSBwcm92aWRlZCBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1l
dGVycy4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggdW5zdXBwb3J0ZWQgcHVibGljIGtleSBjcmVkZW50aWFsIHBhcmFtZXRlcnMgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAg
ICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0g
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAot
ICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXki
LCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dCi0gICAgICAg
ICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtl
eUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAgcmV0dXJu
IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKG9wdGlvbnMpLCAiQXQgbGVhc3Qgb25lIGNyZWRlbnRpYWwgbWF0Y2hlcyBhbiBl
bnRyeSBvZiB0aGUgZXhjbHVkZUNyZWRlbnRpYWxzIGxpc3QgaW4gdGhlIHBsYXRmb3JtIGF0dGFj
aGVkIGF1dGhlbnRpY2F0b3IuIikudGhlbigoKSA9PiB7CisgICAgICAgIHByb21pc2VfdGVzdCh0
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVi
bGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2hu
IEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNl
KHVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAg
IHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAg
ICAgICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtl
eSIsIGlkOiBjcmVkZW50aWFsSUQgfV0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
OwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKLSAgICAgICAgfSk7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNsdWRlIGNy
ZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2NCwgdGVz
dFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9w
dGlvbnMpLCAiQXQgbGVhc3Qgb25lIGNyZWRlbnRpYWwgbWF0Y2hlcyBhbiBlbnRyeSBvZiB0aGUg
ZXhjbHVkZUNyZWRlbnRpYWxzIGxpc3QgaW4gdGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1dGhlbnRp
Y2F0b3IuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0
UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNsdWRlIGNyZWRl
bnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGlj
S2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTog
ImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjog
ewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAg
ICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAg
ICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIp
LAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsKLSAg
ICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFy
c2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKLSAgICAgICAg
ICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVz
dENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENy
ZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9Ci0gICAgICAgICAg
ICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRl
c3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7
Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIkF0IGxlYXN0IG9uZSBjcmVkZW50
aWFsIG1hdGNoZXMgYW4gZW50cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFscyBsaXN0IGluIHRo
ZSBwbGF0Zm9ybSBhdHRhY2hlZCBhdXRoZW50aWNhdG9yLiIpLnRoZW4oKCkgPT4geworICAgICAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAg
ICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWwor
ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50
aWFsSUQsIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsg
dHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbIm5mYyJd
IH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNy
ZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJibGUiXSB9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsi
aW50ZXJuYWwiXSB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKLSAgICAgICAg
fSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hl
ZCBleGNsdWRlIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAybmQi
KTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
LSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNl
cmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIs
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiQ291bGRuJ3QgZ2V0IHVzZXIg
Y29uc2VudC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aG91dCB1c2VyIGNvbnNlbnQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFz
ZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4gcHJv
bWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUob3B0aW9ucyksICJBdCBsZWFzdCBvbmUgY3JlZGVudGlhbCBtYXRjaGVzIGFuIGVudHJ5
IG9mIHRoZSBleGNsdWRlQ3JlZGVudGlhbHMgbGlzdCBpbiB0aGUgcGxhdGZvcm0gYXR0YWNoZWQg
YXV0aGVudGljYXRvci4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNo
YWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYXRjaGVkIGV4Y2x1
ZGUgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDJuZCIpOwogCi0g
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAg
ICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAg
ICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQi
LAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxl
QmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJy
YXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6
ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdl
YkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50
aWNhdGlvbjogdHJ1ZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7Ci0gICAgICAgIHJl
dHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIik7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGhvdXQgYXR0ZXN0YXRpb24gaW4g
YSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRl
c3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHByb21p
c2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKG9wdGlvbnMpLCAiQ291bGRuJ3QgZ2V0IHVzZXIgY29uc2VudC4iKTsKKyAgICAgICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGhvdXQgdXNlciBjb25zZW50IGlu
IGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0g
ICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUu
Y29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAg
ICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XQotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2Nr
Q29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVz
dEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RV
c2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVj
dHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9u
cyksICJVbmtub3duIGludGVybmFsIGVycm9yLiIpLnRoZW4oKCkgPT4geworICAgICAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAg
ICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBh
bGc6IC03IH1dCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVz
dFJ1bm5lci5rZXlFeGlzdHNJbktleWNoYWluKHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2
NCkpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gZGVsZXRpbmcgb2xkIGNyZWRlbnRpYWwgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3Iu
Iik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tD
b25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFjY2Vw
dEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlv
bnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGhvdXQgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2Fs
IGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAg
ICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAg
ICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5
TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5
Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAg
ICAgICAgIHRpbWVvdXQ6IDEwLAotICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b246IHsgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ6ICJjcm9zcy1wbGF0Zm9ybSIgfQorICAgICAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOiB1c2VyaGFuZGxlQmFzZTY0LAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAg
ICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0
aGVudGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2
NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOwogICAgICAgICAgICAgfQotICAgICAgICB9
OworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBl
cnJvci4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh0ZXN0UnVubmVyLmtleUV4aXN0
c0luS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gZGVsZXRpbmcg
b2xkIGNyZWRlbnRpYWwgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGlj
YXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKLSAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFz
Y2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgcHViS2V5Q3Jl
ZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAg
ICAgICAgICB0aW1lb3V0OiAxMCwKKyAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvclNl
bGVjdGlvbjogeyBhdXRoZW50aWNhdG9yQXR0YWNobWVudDogImNyb3NzLXBsYXRmb3JtIiB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGlj
YXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBm
YWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAgICAgICByZXR1cm4g
cHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgICAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgIH0pKCk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwK
aW5kZXggZjE1NTAwOGMyODRiYWQ5ZmNiNGVjNGY0Zjc5M2VlMmQyZmNjNzU5Mi4uNjNhMTE0MzQw
YjBiMTI4NGQ3NjFhYjQzYmIwOGRiYTljYjFlY2EzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWxv
Y2FsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwKQEAgLTUsMjA5
ICs1LDIxNCBAQAogPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL2Nib3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAg
ICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBp
ZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCi0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZp
Z3VyYXRpb24oewotICAgICAgICAgICAgbG9jYWw6IHsKLSAgICAgICAgICAgICAgICBhY2NlcHRB
dXRoZW50aWNhdGlvbjogdHJ1ZSwKLSAgICAgICAgICAgICAgICBhY2NlcHRBdHRlc3RhdGlvbjog
dHJ1ZSwKLSAgICAgICAgICAgICAgICBwcml2YXRlS2V5QmFzZTY0OiB0ZXN0RVMyNTZQcml2YXRl
S2V5QmFzZTY0LAotICAgICAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZUJhc2U2NDogdGVzdEF0
dGVzdGF0aW9uQ2VydGlmaWNhdGVCYXNlNjQsCi0gICAgICAgICAgICAgICAgaW50ZXJtZWRpYXRl
Q0FDZXJ0aWZpY2F0ZUJhc2U2NDogdGVzdEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVC
YXNlNjQKKyAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IHVzZXJoYW5kbGVC
YXNlNjQgPSBnZW5lcmF0ZVVzZXJoYW5kbGVCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgcHJpdmF0
ZUtleUJhc2U2NCA9IGF3YWl0IGdlbmVyYXRlUHJpdmF0ZUtleUJhc2U2NCgpOworICAgICAgICBj
b25zdCBjcmVkZW50aWFsSUQgPSBhd2FpdCBjYWxjdWxhdGVDcmVkZW50aWFsSUQocHJpdmF0ZUtl
eUJhc2U2NCk7CisgICAgICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBu
ZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsKKyAgICAgICAgICAgICAgICBsb2Nh
bDogeworICAgICAgICAgICAgICAgICAgICBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgYWNjZXB0QXR0ZXN0YXRpb246IHRydWUsCisgICAgICAgICAgICAg
ICAgICAgIHByaXZhdGVLZXlCYXNlNjQ6IHByaXZhdGVLZXlCYXNlNjQsCisgICAgICAgICAgICAg
ICAgICAgIHVzZXJDZXJ0aWZpY2F0ZUJhc2U2NDogdGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNhdGVC
YXNlNjQsCisgICAgICAgICAgICAgICAgICAgIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNl
NjQ6IHRlc3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQo
Y3JlZGVudGlhbCwgaXNOb25lQXR0ZXN0YXRpb24gPSB0cnVlKQorICAgICAgICB7CisgICAgICAg
ICAgICAvLyBDaGVjayBrZXljaGFpbgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodGVzdFJ1bm5lci5rZXlFeGlzdHNJbktl
eWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOwogICAg
ICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGNyZWRl
bnRpYWwsIGlzTm9uZUF0dGVzdGF0aW9uID0gdHJ1ZSkKLSAgICB7Ci0gICAgICAgIC8vIENoZWNr
IGtleWNoYWluCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
YXNzZXJ0X3RydWUodGVzdFJ1bm5lci5rZXlFeGlzdHNJbktleWNoYWluKHRlc3RScElkLCB0ZXN0
VXNlcmhhbmRsZUJhc2U2NCkpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hh
aW4odGVzdFJwSWQpOwotICAgICAgICB9CiAKLSAgICAgICAgLy8gQ2hlY2sgcmVzcG9uZAotICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFsLmlkKSwg
QmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdwdWJsaWMta2V5Jyk7Ci0gICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJZCksIEJhc2U2NFVSTC5w
YXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0
ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0
eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJo
dHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsKLSAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMoY3Jl
ZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBpZCIpOwotCi0gICAgICAg
IC8vIENoZWNrIGF0dGVzdGF0aW9uCi0gICAgICAgIGNvbnN0IGF0dGVzdGF0aW9uT2JqZWN0ID0g
Q0JPUi5kZWNvZGUoY3JlZGVudGlhbC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCk7Ci0gICAg
ICAgIGlmIChpc05vbmVBdHRlc3RhdGlvbikKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYXR0
ZXN0YXRpb25PYmplY3QuZm10LCAibm9uZSIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmZtdCwgIkFwcGxlIik7Ci0gICAgICAgIC8v
IENoZWNrIGF1dGhEYXRhCi0gICAgICAgIGNvbnN0IGF1dGhEYXRhID0gZGVjb2RlQXV0aERhdGEo
YXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVz
VG9IZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2ODc0MzQxNzBm
NjQ3NjYwNWI4ZmU0YWViOWEyODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCA2OSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYXV0
aERhdGEuY291bnRlciwgMCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmlu
ZyhhdXRoRGF0YS5hYWd1aWQpLCAiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsK
LSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdXRoRGF0YS5jcmVkZW50aWFsSUQsIEJhc2U2
NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSk7Ci0gICAgICAgIC8vIENoZWNrIHNl
bGYgYXR0ZXN0YXRpb24KLSAgICAgICAgYXNzZXJ0X3RydWUoY2hlY2tQdWJsaWNLZXkoYXV0aERh
dGEucHVibGljS2V5KSk7Ci0gICAgICAgIGlmIChpc05vbmVBdHRlc3RhdGlvbikKLSAgICAgICAg
ICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQsIHsgfSk7
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9i
amVjdC5hdHRTdG10LmFsZywgLTcpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3Rh
dGlvbk9iamVjdC5hdHRTdG10Lng1Yy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Y1swXSwgQmFzZTY0VVJMLnBh
cnNlKHRlc3RBdHRlc3RhdGlvbkNlcnRpZmljYXRlQmFzZTY0KSk7Ci0gICAgICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjWzFdLCBCYXNlNjRV
UkwucGFyc2UodGVzdEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQpKTsKLQot
ICAgICAgICAgICAgLy8gQ2hlY2sgc2lnbmF0dXJlCi0gICAgICAgICAgICBsZXQgcHVibGljS2V5
RGF0YSA9IG5ldyBVaW50OEFycmF5KDY1KTsKLSAgICAgICAgICAgIHB1YmxpY0tleURhdGFbMF0g
PSAweDA0OwotICAgICAgICAgICAgcHVibGljS2V5RGF0YS5zZXQoYXV0aERhdGEucHVibGljS2V5
WyctMiddLCAxKTsKLSAgICAgICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1dGhEYXRhLnB1Ymxp
Y0tleVsnLTMnXSwgMzMpOwotICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCBwdWJsaWNLZXlEYXRhLCB7Ci0gICAgICAgICAgICAgICAgbmFtZTogIkVDRFNB
IiwKLSAgICAgICAgICAgICAgICBuYW1lZEN1cnZlOiAiUC0yNTYiCi0gICAgICAgICAgICB9LCBm
YWxzZSwgWyd2ZXJpZnknXSkudGhlbihwdWJsaWNLZXkgPT4gewotICAgICAgICAgICAgICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7CisgICAgICAgICAgICAvLyBDaGVjayByZXNwb25k
CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50
aWFsLmlkKSwgY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVu
dGlhbC50eXBlLCAncHVibGljLWtleScpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJhd0lkKSwgY3JlZGVudGlhbElEKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9u
c2UuY2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdl
IjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsKKyAgICAg
ICAgICAgIGFzc2VydF9ub3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVz
dWx0cygpLCAiYXBwaWQiKTsKKworICAgICAgICAgICAgLy8gQ2hlY2sgYXR0ZXN0YXRpb24KKyAg
ICAgICAgICAgIGNvbnN0IGF0dGVzdGF0aW9uT2JqZWN0ID0gQ0JPUi5kZWNvZGUoY3JlZGVudGlh
bC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCk7CisgICAgICAgICAgICBpZiAoaXNOb25lQXR0
ZXN0YXRpb24pCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVj
dC5mbXQsICJub25lIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJBcHBsZSIpOworICAgICAgICAgICAgLy8g
Q2hlY2sgYXV0aERhdGEKKyAgICAgICAgICAgIGNvbnN0IGF1dGhEYXRhID0gZGVjb2RlQXV0aERh
dGEoYXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhieXRlc1RvSGV4U3RyaW5nKGF1dGhEYXRhLnJwSWRIYXNoKSwgIjQ5OTYwZGU1ODgwZThjNjg3
NDM0MTcwZjY0NzY2MDViOGZlNGFlYjlhMjg2MzJjNzk5NWNmM2JhODMxZDk3NjMiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDY5KTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYXV0aERhdGEuY291bnRlciwgMCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJ5dGVzVG9IZXhTdHJpbmcoYXV0aERhdGEuYWFndWlkKSwgIjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwIik7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF1dGhE
YXRhLmNyZWRlbnRpYWxJRCwgY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgIC8vIENoZWNrIHNl
bGYgYXR0ZXN0YXRpb24KKyAgICAgICAgICAgIGFzc2VydF90cnVlKGNoZWNrUHVibGljS2V5KGF1
dGhEYXRhLnB1YmxpY0tleSkpOworICAgICAgICAgICAgaWYgKGlzTm9uZUF0dGVzdGF0aW9uKQor
ICAgICAgICAgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0
dFN0bXQsIHsgfSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQuYWxnLCAtNyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Yy5sZW5ndGgsIDIp
OworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3Qu
YXR0U3RtdC54NWNbMF0sIEJhc2U2NFVSTC5wYXJzZSh0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0
ZUJhc2U2NCkpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXR0ZXN0YXRp
b25PYmplY3QuYXR0U3RtdC54NWNbMV0sIEJhc2U2NFVSTC5wYXJzZSh0ZXN0QXR0ZXN0YXRpb25J
c3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NCkpOworCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sg
c2lnbmF0dXJlCisgICAgICAgICAgICAgICAgbGV0IHB1YmxpY0tleURhdGEgPSBuZXcgVWludDhB
cnJheSg2NSk7CisgICAgICAgICAgICAgICAgcHVibGljS2V5RGF0YVswXSA9IDB4MDQ7CisgICAg
ICAgICAgICAgICAgcHVibGljS2V5RGF0YS5zZXQoYXV0aERhdGEucHVibGljS2V5WyctMiddLCAx
KTsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXlEYXRhLnNldChhdXRoRGF0YS5wdWJsaWNLZXlb
Jy0zJ10sIDMzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoInJhdyIsIHB1YmxpY0tleURhdGEsIHsKICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkVD
RFNBIiwKLSAgICAgICAgICAgICAgICAgICAgaGFzaDogIlNIQS0yNTYiCi0gICAgICAgICAgICAg
ICAgfSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0dXJlKGF0dGVzdGF0aW9uT2JqZWN0LmF0
dFN0bXQuc2lnKSwgYXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpLnRoZW4odmVyaWZpZWQgPT4g
ewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2ZXJpZmllZCk7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWVkQ3VydmU6ICJQLTI1NiIKKyAgICAgICAgICAgICAgICB9LCBmYWxzZSwg
Wyd2ZXJpZnknXSkudGhlbihwdWJsaWNLZXkgPT4geworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS52ZXJpZnkoeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTog
IkVDRFNBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2g6ICJTSEEtMjU2IgorICAgICAg
ICAgICAgICAgICAgICB9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWduYXR1cmUoYXR0ZXN0YXRp
b25PYmplY3QuYXR0U3RtdC5zaWcpLCBhdHRlc3RhdGlvbk9iamVjdC5hdXRoRGF0YSkudGhlbih2
ZXJpZmllZCA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2ZXJpZmll
ZCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0g
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAg
ICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAotICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
NyB9XSwKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4gewotICAg
ICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBh
IG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
LSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAg
ICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3Qi
LAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCi0gICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dLAotICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgYXV0aGVu
dGljYXRvckF0dGFjaG1lbnQ6ICJwbGF0Zm9ybSIgfQotICAgICAgICAgICAgfQotICAgICAgICB9
OwotCi0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMp
LnRoZW4oY3JlZGVudGlhbCA9PiB7Ci0gICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFs
KTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggYXV0aGVudGljYXRvclNlbGVjdGlvbiB7ICdwbGF0Zm9ybScgfSBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4iKTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAg
ICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRp
c3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAg
ICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbCi0gICAgICAgICAgICAgICAgICAgIHsg
dHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRC
YXNlNjQpLCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlw
ZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNl
NjQpLCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTog
InB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQp
LCB0cmFuc3BvcnRzOiBbImJsZSJdIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9
Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2
NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLQotICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4gewot
ICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Ci0gICAgICAgIH0pOwotICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhjbHVkZSBj
cmVkZW50aWFsIGlkcyBidXQgbm90IHRyYW5zcG9ydHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRp
Y2F0b3IuIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlv
bnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewot
ICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKLSAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpv
aG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAi
QXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNy
ZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAg
ICAgICBhdHRlc3RhdGlvbjogIm5vbmUiCiAgICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihj
cmVkZW50aWFsID0+IHsKLSAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOwotICAg
ICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBu
b25lIGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwotCi0gICAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAg
ICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImxvY2FsaG9zdCIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0g
ICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNl
NjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJz
ZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBl
OiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246
ICJpbmRpcmVjdCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4g
ewotICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgZmFsc2UpOwotICAgICAgICB9
KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBpbmRpcmVj
dCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKLQotICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAg
IHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJsb2NhbGhvc3QiLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
dXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAg
ICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0
KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAotICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2Uo
Ik1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTog
InB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uOiAi
ZGlyZWN0IgotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICB9CiAKLSAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50
aWFsID0+IHsKLSAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGZhbHNlKTsKLSAg
ICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
ZGlyZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAg
ICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogewor
ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWU6IHVzZXJoYW5kbGVCYXNlNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIi
KSwKKyAgICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1Ymxp
Yy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisK
KyAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMp
LnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVu
dGlhbCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggbWluaW11bSBvcHRpb25zIGluIGEgbW9jayBsb2NhbCBhdXRoZW50
aWNhdG9yLiIpOworCisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAg
ICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0
IiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogewor
ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcmhhbmRsZUJhc2U2NCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisg
ICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJM
LnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgICAg
IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ6ICJwbGF0
Zm9ybSIgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg
IHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVu
dGlhbCA9PiB7CisgICAgICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggYXV0aGVudGljYXRvclNlbGVjdGlvbiB7ICdwbGF0Zm9ybScgfSBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4iKTsKKworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
ICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tleTogewor
ICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTog
ImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB1c2VyaGFuZGxlQmFzZTY0
LAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxl
QmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJLZXlDcmVk
UGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAg
ICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAgICAgICAgeyB0
eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsidXNiIl0g
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3Jl
ZGVudGlhbElELCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJi
bGUiXSB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJh
c2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworCisgICAgICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4g
eworICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1h
dGNoZWQgZXhjbHVkZSBjcmVkZW50aWFsIGlkcyBidXQgbm90IHRyYW5zcG9ydHMgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB1c2VyaGFuZGxlQmFz
ZTY0LAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFu
ZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246ICJub25lIgorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICAgICAgY2hl
Y2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbm9uZSBhdHRlc3RhdGlvbiBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVzZXJoYW5kbGVC
YXNlNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJo
YW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAg
ICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjogImluZGlyZWN0IgorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICAg
ICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgZmFsc2UpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGluZGlyZWN0IGF0
dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogdXNlcmhhbmRsZUJhc2U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNl
NjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAg
ICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uOiAiZGlyZWN0Igor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHJldHVybiBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7
CisgICAgICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgZmFsc2UpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3
aXRoIGRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsK
KyAgICB9KSgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKaW5kZXggMDUwN2Q0NTYz
MWRlNjlhYzFjZDY4ZWMyOTYzNGU3N2U5MjQyOWQ4ZC4uODQzYmE4NmYxZjlhN2NkYjk0YWJiYTZj
Njc0M2MwMmU5YzMzZGY1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbApAQCAtNCw1OSArNCw2NCBA
QAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LSAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlk
ZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCi0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50
aWNhdGlvbjogZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgIChhc3lu
YyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3QgdXNlcmhhbmRsZUJhc2U2NCA9IGdlbmVyYXRl
VXNlcmhhbmRsZUJhc2U2NCgpOworICAgICAgICBjb25zdCBwcml2YXRlS2V5QmFzZTY0ID0gYXdh
aXQgZ2VuZXJhdGVQcml2YXRlS2V5QmFzZTY0KCk7CisgICAgICAgIGNvbnN0IGNyZWRlbnRpYWxJ
RCA9IGF3YWl0IGNhbGN1bGF0ZUNyZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KTsKKyAgICAg
ICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUg
aWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgorICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9u
TW9ja0NvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRB
dXRoZW50aWNhdGlvbjogZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSwgcHJlZmVycmVk
VXNlcmhhbmRsZUJhc2U2NDogdXNlcmhhbmRsZUJhc2U2NCB9IH0pOwogCi0gICAgcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGlj
S2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIz
NDU2IiksCi0gICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWwotICAgICAgICAgICAg
ICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3Jl
ZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAotICAgICAgICAgICAgICAg
ICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVu
dGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAotICAgICAgICAgICAgICAgICAg
ICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlh
bElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJibGUiXSB9LAotICAgICAgICAgICAgICAgICAgICB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElk
QmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Cisg
ICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBh
bGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJs
aWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQs
IHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTog
InB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRp
YWxJRCwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KKyAgICAgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9OwogCi0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dl
ZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0
aW1lZCBvdXQuIik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGgg
c2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAg
ICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAg
ICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVy
ZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0
ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTog
ewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIp
LAotICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKLSAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5k
bGVCYXNlNjQpIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXko
IjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCisgICAg
ICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh1c2VyaGFuZGxlQmFzZTY0KSB9CisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fTsKIAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVu
bmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RS
cElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0
cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25z
KSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNs
ZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4gMiIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0
ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5k
bGVCYXNlNjQpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0
aGVudGljYXRvci4gMiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25z
dCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAg
dGltZW91dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RF
UzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0g
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAgICB9KTsK
LSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFpbHVy
ZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMyIpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQs
IHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQs
ICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAi
T3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5V
cEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBzaWxlbnQgZmFp
bHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMyIpOworICAgIH0pKCk7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2Fs
Lmh0dHBzLmh0bWwKaW5kZXggMjliYjdmNGI0Y2U4ODRmMjY4OWEwNmQ2ODg2Y2RlMDE5NTNkOGZh
OS4uZWEwZTJhNDZiZjA1MWEwZmU3OGFhZjI0MGNmNzI4YzdhN2Y0NDJkYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1m
YWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwKQEAg
LTQsNzIgKzQsNzcgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci0gICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5l
ZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50
aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246
IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAoYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgIGNvbnN0IHVzZXJoYW5kbGVCYXNlNjQgPSBnZW5lcmF0ZVVzZXJoYW5k
bGVCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgcHJpdmF0ZUtleUJhc2U2NCA9IGF3YWl0IGdlbmVy
YXRlUHJpdmF0ZUtleUJhc2U2NCgpOworICAgICAgICBjb25zdCBjcmVkZW50aWFsSUQgPSBhd2Fp
dCBjYWxjdWxhdGVDcmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCk7CisgICAgICAgIC8vIERl
ZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkg
bmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRB
dHRlc3RhdGlvbjogZmFsc2UsIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjQ6IHVzZXJoYW5kbGVC
YXNlNjQgfSB9KTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIGFsbG93
Q3JlZGVudGlhbHM6IFsKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIs
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6
IFsidXNiIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsi
bmZjIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxl
Il0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJu
YWwiXSB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9OworICAg
ICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgYWxs
b3dDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGlj
LWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0
cmFuc3BvcnRzOiBbIm5mYyJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJw
dWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJibGUiXSB9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFs
SUQsIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0gICAgICAgIHJldHVybiBwcm9taXNl
UmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChv
cHRpb25zKSwgIk5vIG1hdGNoZWQgY3JlZGVudGlhbHMgYXJlIGZvdW5kIGluIHRoZSBwbGF0Zm9y
bSBhdHRhY2hlZCBhdXRoZW50aWNhdG9yLiIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5v
dEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJObyBt
YXRjaGVkIGNyZWRlbnRpYWxzIGFyZSBmb3VuZCBpbiB0aGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0
aGVudGljYXRvci4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1d
IHdpdGggbm8gbWF0Y2hlZCBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRv
ci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVu
dGlhbHM6IFsKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpIH0KLSAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAg
ICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh1c2VyaGFuZGxlQmFzZTY0KSB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9OwogCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJp
dmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAg
cmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8gbWF0Y2hlZCBjcmVkZW50aWFscyBhcmUgZm91bmQg
aW4gdGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1dGhlbnRpY2F0b3IuIikudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdXNl
cmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5v
dEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJObyBt
YXRjaGVkIGNyZWRlbnRpYWxzIGFyZSBmb3VuZCBpbiB0aGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0
aGVudGljYXRvci4iKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWlu
KHRlc3RScElkKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hh
aW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOwogICAgICAgICAgICAgfSk7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBjcmVkZW50aWFs
cyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMm5kIik7CisgICAgICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgY3JlZGVudGlhbHMgaW4g
YSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDJuZCIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQg
PT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7
Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IikK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIz
NDU2IikKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0gICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5
Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxl
QmFzZTY0KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJy
b3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiQ291bGRuJ3QgZ2V0IHVz
ZXIgY29uc2VudC4iKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJ
ZCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3
aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlC
YXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBw
cm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldChvcHRpb25zKSwgIkNvdWxkbid0IGdldCB1c2VyIGNvbnNlbnQuIikudGhlbigoKSA9PiB7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2
NCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGhvdXQgdXNlciBjb25zZW50IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9y
LiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0g
ewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50
aWFsczogWwotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2Ii
XSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9
LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJibGUiXSB9Ci0g
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAotICAgICAgICAg
ICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAg
ICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAg
ICAgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAg
ICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6
IFsidXNiIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXki
LCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCisgICAgICAgICAgICAg
ICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNw
b3J0czogWyJibGUiXSB9CisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAg
ICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOwotICAg
IH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9u
cyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9y
LiIpOworICAgIH0pKCk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwKaW5kZXggNzNhZWNjZjVhYzg4ZGVlMzZh
ZGNjYTU4MTA1NTUzMjNhY2I4YjFiZC4uZjIyODhlZjE4NWMxOGRjZTAwODc1MGJiYWRmOTk1ZDM0
Yjg0MThkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNz
LWxvY2FsLmh0dHBzLmh0bWwKQEAgLTQsNzAgKzQsNzUgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgLy8gRGVmYXVsdCBtb2NrIGNv
bmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVu
dCBjb25maWd1cmF0aW9uLgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsg
YWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0p
OwotCi0gICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCkKLSAgICB7CisgICAgKGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCB1c2VyaGFuZGxlQmFzZTY0ID0gZ2VuZXJh
dGVVc2VyaGFuZGxlQmFzZTY0KCk7CisgICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSBh
d2FpdCBnZW5lcmF0ZVByaXZhdGVLZXlCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgY3JlZGVudGlh
bElEID0gYXdhaXQgY2FsY3VsYXRlQ3JlZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpOworICAg
ICAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlk
ZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCiAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRl
c3RScElkKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2Nr
Q29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UsIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjQ6IHVzZXJoYW5k
bGVCYXNlNjQgfSB9KTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVkZW50aWFs
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVC
YXNlNjQpOwogCi0gICAgICAgICAvLyBDaGVjayByZXNwb25kCi0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoQmFzZTY0VVJMLnBhcnNlKGNyZWRlbnRpYWwuaWQpLCBCYXNlNjRVUkwucGFyc2Uo
dGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRp
YWwudHlwZSwgJ3B1YmxpYy1rZXknKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcg
VWludDhBcnJheShjcmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50
aWFsSWRCYXNlNjQpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmco
Y3JlZGVudGlhbC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5n
ZXQiLCJjaGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMifScpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoY3JlZGVudGlh
bC5yZXNwb25zZS51c2VySGFuZGxlKSwgIjAwMDEwMjAzMDQwNTA2MDcwODA5Iik7Ci0gICAgICAg
IGFzc2VydF9ub3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygp
LCAiYXBwaWQiKTsKKyAgICAgICAgICAgICAvLyBDaGVjayByZXNwb25kCisgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFsLmlkKSwgY3JlZGVu
dGlhbElEKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC50eXBlLCAncHVi
bGljLWtleScpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJh
eShjcmVkZW50aWFsLnJhd0lkKSwgY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5nKGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpT
T04pLCAneyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmln
aW4iOiJodHRwczovL2xvY2FsaG9zdDo5NDQzIn0nKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFuZGxlKSwg
QmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpKTsKKyAgICAgICAgICAgIGFzc2VydF9u
b3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpLCAiYXBwaWQi
KTsKIAotICAgICAgICAvLyBDaGVjayBhdXRoRGF0YQotICAgICAgICBjb25zdCBhdXRoRGF0YSA9
IGRlY29kZUF1dGhEYXRhKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmVzcG9uc2UuYXV0aGVu
dGljYXRvckRhdGEpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGF1
dGhEYXRhLnJwSWRIYXNoKSwgIjQ5OTYwZGU1ODgwZThjNjg3NDM0MTcwZjY0NzY2MDViOGZlNGFl
YjlhMjg2MzJjNzk5NWNmM2JhODMxZDk3NjMiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhhdXRo
RGF0YS5mbGFncywgNSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYXV0aERhdGEuY291bnRlciwg
MCk7CisgICAgICAgICAgICAvLyBDaGVjayBhdXRoRGF0YQorICAgICAgICAgICAgY29uc3QgYXV0
aERhdGEgPSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNl
LmF1dGhlbnRpY2F0b3JEYXRhKSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9I
ZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2ODc0MzQxNzBmNjQ3
NjYwNWI4ZmU0YWViOWEyODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhhdXRoRGF0YS5mbGFncywgNSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGF1dGhEYXRhLmNvdW50ZXIsIDApOwogCi0gICAgICAgIC8vIENoZWNrIHNpZ25hdHVyZQotICAg
ICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0RVMyNTZQdWJsaWNLZXlCYXNlNjQpLCB7IG5hbWU6ICJFQ0RTQSIsIG5hbWVkQ3VydmU6
ICJQLTI1NiIgfSwgZmFsc2UsIFsndmVyaWZ5J10pLnRoZW4oIHB1YmxpY0tleSA9PiB7Ci0gICAg
ICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoInNoYS0yNTYiLCBjcmVkZW50aWFs
LnJlc3BvbnNlLmNsaWVudERhdGFKU09OKS50aGVuICggaGFzaCA9PiB7Ci0gICAgICAgICAgICAg
ICAgLy8gY3JlZGVudGlhbC5yZXNwb25zZS5zaWduYXR1cmUgaXMgaW4gQVNOLjEgYW5kIFdlYkNy
eXB0byBleHBlY3Qgc2lnbmF0dXJlcyBwcm92aWRlcyBpbiByfHMuCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAiRUNEU0EiLCBoYXNoOiAiU0hBLTI1
NiJ9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWduYXR1cmUoY3JlZGVudGlhbC5yZXNwb25zZS5z
aWduYXR1cmUpLCBjb25jYXRlbmF0ZUJ1ZmZlcnMoY3JlZGVudGlhbC5yZXNwb25zZS5hdXRoZW50
aWNhdG9yRGF0YSwgaGFzaCkpLnRoZW4oIHZlcmlmaWVkID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfbm90
X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwgImFwcGlkIik7
CisgICAgICAgICAgICAvLyBDaGVjayBzaWduYXR1cmUKKyAgICAgICAgICAgIHJldHVybiBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgQmFzZTY0VVJMLnBhcnNlKHByaXZhdGVLZXlCYXNl
NjQpLnNsaWNlKDAsIDY1KSwgeyBuYW1lOiAiRUNEU0EiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0s
IGZhbHNlLCBbJ3ZlcmlmeSddKS50aGVuKCBwdWJsaWNLZXkgPT4geworICAgICAgICAgICAgICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgic2hhLTI1NiIsIGNyZWRlbnRpYWwucmVzcG9u
c2UuY2xpZW50RGF0YUpTT04pLnRoZW4gKCBoYXNoID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gY3JlZGVudGlhbC5yZXNwb25zZS5zaWduYXR1cmUgaXMgaW4gQVNOLjEgYW5kIFdlYkNyeXB0
byBleHBlY3Qgc2lnbmF0dXJlcyBwcm92aWRlcyBpbiByfHMuCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTogIkVDRFNBIiwgaGFzaDogIlNIQS0y
NTYifSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0dXJlKGNyZWRlbnRpYWwucmVzcG9uc2Uu
c2lnbmF0dXJlKSwgY29uY2F0ZW5hdGVCdWZmZXJzKGNyZWRlbnRpYWwucmVzcG9uc2UuYXV0aGVu
dGljYXRvckRhdGEsIGhhc2gpKS50aGVuKCB2ZXJpZmllZCA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZSh2ZXJpZmllZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwg
ImFwcGlkIik7CisgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KKyAgICAgICAgfQogCi0gICAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAg
cHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2Uo
Ik1USXpORFUyIikKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90
ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwu
cGFyc2UoIk1USXpORFUyIikKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0g
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRk
VGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRl
c3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKLSAgICAgICAgICAgIHJldHVybiBj
aGVja1Jlc3VsdChjcmVkZW50aWFsKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbWluaW11bSBvcHRpb25zIGluIGEgbW9jayBsb2NhbCBh
dXRoZW50aWNhdG9yLiIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJh
c2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIG5h
dmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbWlu
aW11bSBvcHRpb25zIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAg
cHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2Uo
Ik1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWwotICAgICAg
ICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9LAotICAgICAg
ICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KLSAgICAg
ICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJM
LnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxz
OiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJd
IH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNy
ZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KKyAgICAgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXlj
aGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVC
YXNlNjQpOwotICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25z
KS50aGVuKGNyZWRlbnRpYWwgPT4gewotICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNy
ZWRlbnRpYWwpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCBtYXRjaGVkIGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRo
ZW50aWNhdG9yLiIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2
NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbWF0Y2hl
ZCBhbGxvdyBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAg
ICB9KSgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jl
c291cmNlcy91dGlsLmpzCmluZGV4IDFiOTEzYjRkYWRiMGRkMGFjYmJmOWZiNWNhZTA4MzM3MDU3
Mjg5N2QuLmEwNmMxOWEzY2M0NjMwZjZiOTk5OWYwM2E4MmVhY2VlZTVjZWY5MzMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzCkBAIC0zLDkg
KzMsNiBAQCBjb25zdCB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0ID0KICAgICAiQkRqL3p4U2t6
S2dhQnVTM2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3NDlWQkpQZ3FVSXdmaFdISjkxbmI3VSIg
KwogICAgICJQSDc2YzArV0ZPelpLc2xQeXlGc2U0Z29HSVcyUjdrOVZITFBFWmw1bmZuQmdFVkZo
NXpldisveHBIUUl2dXE2IiArCiAgICAgIlJRPT0iOwotY29uc3QgdGVzdEVTMjU2UHVibGljS2V5
QmFzZTY0ID0KLSAgICAiQkRqL3p4U2t6S2dhQnVTM2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3
NDlWQkpQZ3FVSXdmaFdISjkxbmI3VSIgKwotICAgICJQSDc2YzArV0ZPelpLc2xQeXlGc2U0Zz0i
OwogY29uc3QgdGVzdFJwSWQgPSAibG9jYWxob3N0IjsKIGNvbnN0IHRlc3RVc2VyaGFuZGxlQmFz
ZTY0ID0gIkFBRUNBd1FGQmdjSUNRPT0iOwogY29uc3QgdGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNh
dGVCYXNlNjQgPQpAQCAtNDM2LDMgKzQzMyw0MyBAQCBmdW5jdGlvbiBjaGVja1UyZkdldEFzc2Vy
dGlvblJlc3VsdChjcmVkZW50aWFsLCBpc0FwcElEID0gZmFsc2UsIGFwcElESGFzaCA9ICJjMgog
ICAgIGFzc2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDEpOwogICAgIGFzc2VydF9lcXVhbHMo
YXV0aERhdGEuY291bnRlciwgNTkpOwogfQorCitmdW5jdGlvbiBnZW5lcmF0ZVVzZXJoYW5kbGVC
YXNlNjQoKQoreworICAgIGxldCBidWZmZXIgPSBuZXcgVWludDhBcnJheSgxNik7CisgICAgY3J5
cHRvLmdldFJhbmRvbVZhbHVlcyhidWZmZXIpOworICAgIHJldHVybiBidG9hKFN0cmluZy5mcm9t
Q2hhckNvZGUuYXBwbHkoMCwgYnVmZmVyKSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdlbmVyYXRl
UHJpdmF0ZUtleUJhc2U2NCgpCit7CisgICAgY29uc3QgYWxnb3JpdGhtS2V5R2VuID0geworICAg
ICAgICBuYW1lOiAiRUNEU0EiLAorICAgICAgICBuYW1lZEN1cnZlOiAiUC0yNTYiCisgICAgfTsK
KyAgICBjb25zdCBleHRyYWN0YWJsZSA9IHRydWU7CisKKyAgICBjb25zdCBrZXlQYWlyID0gYXdh
aXQgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxl
LCBbInNpZ24iLCAidmVyaWZ5Il0pOworICAgIGNvbnN0IGp3a1ByaXZhdGVLZXkgPSBhd2FpdCBj
cnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwga2V5UGFpci5wcml2YXRlS2V5KTsKKworICAg
IGNvbnN0IHggPSBCYXNlNjRVUkwucGFyc2UoandrUHJpdmF0ZUtleS54KTsKKyAgICBjb25zdCB5
ID0gQmFzZTY0VVJMLnBhcnNlKGp3a1ByaXZhdGVLZXkueSk7CisgICAgY29uc3QgZCA9IEJhc2U2
NFVSTC5wYXJzZShqd2tQcml2YXRlS2V5LmQpOworCisgICAgbGV0IGJ1ZmZlciA9IG5ldyBVaW50
OEFycmF5KHgubGVuZ3RoICsgeS5sZW5ndGggKyBkLmxlbmd0aCArIDEpOworICAgIGJ1ZmZlclsw
XSA9IDB4MDQ7CisgICAgbGV0IHBvcyA9IDE7CisgICAgYnVmZmVyLnNldCh4LCBwb3MpOworICAg
IHBvcyArPSB4Lmxlbmd0aDsKKyAgICBidWZmZXIuc2V0KHksIHBvcyk7CisgICAgcG9zICs9IHku
bGVuZ3RoOworICAgIGJ1ZmZlci5zZXQoZCwgcG9zKTsKKworICAgIHJldHVybiBidG9hKFN0cmlu
Zy5mcm9tQ2hhckNvZGUuYXBwbHkoMCwgYnVmZmVyKSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNh
bGN1bGF0ZUNyZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KSB7CisgICAgY29uc3QgcHJpdmF0
ZUtleSA9IEJhc2U2NFVSTC5wYXJzZShwcml2YXRlS2V5QmFzZTY0KTsKKyAgICBjb25zdCBwdWJs
aWNLZXkgPSBwcml2YXRlS2V5LnNsaWNlKDAsIDY1KTsKKyAgICByZXR1cm4gbmV3IFVpbnQ4QXJy
YXkoYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoInNoYS0xIiwgcHVibGljS2V5KSk7Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjBh
NzJkOWY3OWI5ODI4MTZjYjNkYjQ2ZDg0NDg5ZTM3MzY1ZjhiZS4uZThlYTk2OWMyZjY1MWViYmEy
ZDk5MzIzZDMwOGIwNzI2ODk1MWI1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTAzLDggKzkwMyw2IEBAIGh0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsg
U2tpcCBdCiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1
cmUtbG9jYWwuaHR0cHMuaHRtbCBbIFNraXAgXQogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sIFsgU2tpcCBd
CiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9j
YWwuaHR0cHMuaHRtbCBbIFNraXAgXQotaHR0cC93cHQvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2Ny
ZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRw
L3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbCBbIFNraXAgXQogCiAjIE5GQyBzdXBwb3J0IHJl
cXVpcmUgQ2F0YWxpbmErLCB0aGVyZWZvcmUgc2tpcCB0aGVtIGZvciBIaWdoU2llcnJhIGFuZCBN
b2phdmUuCiBbIEhpZ2hTaWVycmEgTW9qYXZlIF0gaHR0cC93cHQvd2ViYXV0aG4vY3RhcC1uZmMt
ZmFpbHVyZS5odHRwcy5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378915</attachid>
            <date>2019-09-16 17:01:50 -0700</date>
            <delta_ts>2019-09-20 16:57:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201844-20190916170150.patch</filename>
            <type>text/plain</type>
            <size>105821</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyODIxMjExM2JhZDgzOTZl
M2M2MjdiMGUyODQ0MTc2N2ZlZDdhZjMuLmU0YTgwMGE2NmI5NWQwM2VhMTE1ZTA1OTlkMmExMTNi
YmQ3NjE4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMDktMTYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIExvY2FsQXV0
aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBvbiBpbnRlcm5hbCBib3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NDQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHdheSBmb3IgbW9jayB0ZXN0cyB0byBz
ZWxlY3QgYSBjcmVkZW50aWFsIGluIGdldEFzc2VydGlvbgorICAgICAgICBjZXJlbW9uaWVzIHN1
Y2ggdGhhdCBhIHRlc3QgY2FuIGVuc3VyZSBpdCBhbHdheXMgdXNlcyB0aGUgY3JlZGVudGlhbCBp
dCBtYW5hZ2VzLgorICAgICAgICBDcmVkZW50aWFscyBtYW5hZ2VkIGJ5IG90aGVyIHRlc3QgY291
bGQgYmUgZGVsZXRlZCBhdCBhbnl0aW1lLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tOgorICAgICAgICAo
V2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW06
CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQ29ubmVjdGlvbjo6c2VsZWN0Q3JlZGVudGlhbCBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2Nr
L01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6Ok1vY2tMb2NhbENvbm5l
Y3Rpb246OnNlbGVjdENyZWRlbnRpYWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaDoK
KwogMjAxOS0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEhhbmdzIG9uIFN3aXNzLmNvbSBkdWUgdG8gdGhlIHdlYiBwcm9jZXNzIGJlaW5nIGJsb2NrZWQg
b24gU3RvcmFnZUFyZWFNYXA6OkxvYWRWYWx1ZXNJZk5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXgg
MTg3ZTgxYTM4NmNjYjU3OTYzMDc4NTE2YzA5NGExM2IyMTJkZjgyNS4uZDQxYzRkYjUxZmRlYTFj
N2NlMDUxYzJhM2U4YjYzYzQ3YzFiZGM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC02MzQsNiArNjM0
LDggQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVIKICAgICAgICAgICAgIGxvY2FsLnVzZXJDZXJ0
aWZpY2F0ZUJhc2U2NCA9IFdlYktpdDo6dG9JbXBsKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KGxvY2FsUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJVc2VyQ2VydGlmaWNhdGVCYXNlNjQiKSkuZ2V0KCkpKSktPnN0cmlu
ZygpOwogICAgICAgICAgICAgbG9jYWwuaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NCA9
IFdlYktpdDo6dG9JbXBsKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KGxvY2FsUmVmLCBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJJbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0IikpLmdldCgpKSkpLT5zdHJpbmcoKTsK
ICAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0UmVm
ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobG9j
YWxSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlByZWZlcnJlZFVz
ZXJoYW5kbGVCYXNlNjQiKSkuZ2V0KCkpKSkKKyAgICAgICAgICAgIGxvY2FsLnByZWZlcnJlZFVz
ZXJoYW5kbGVCYXNlNjQgPSBXZWJLaXQ6OnRvSW1wbChwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0
UmVmKS0+c3RyaW5nKCk7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24ubG9jYWwgPSBXVEZNb3ZlKGxv
Y2FsKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpp
bmRleCA0ZTkwMjRkOWU3ZTg4NmYyYTc1MzU5NzcyNzc5YTY3MTQ3NDdiM2FmLi4xZGJiZjhjNzEx
N2IxOThlNmU3NGQxYTA5ZTAxZmE1ZDlhNjMxYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLm1tCkBAIC0zOTcsOCArMzk3LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRp
Y2F0b3I6OmdldEFzc2VydGlvbigpCiAgICAgfQogCiAgICAgLy8gU3RlcCA2LgotICAgIC8vIEZJ
WE1FKHJkYXI6Ly9wcm9ibGVtLzM1OTAwNTM0KTogV2UgZG9uJ3QgaGF2ZSBhbiBVSSB0byBwcm9t
cHQgdXNlcnMgZm9yIHNlbGVjdGluZyBpbnRlcnNlY3RlZENyZWRlbnRpYWxzLCBhbmQgdGhlcmVm
b3JlIHdlIGFsd2F5cyB1c2UgdGhlIGZpcnN0IG9uZSBmb3Igbm93LgotICAgIE5TRGljdGlvbmFy
eSAqc2VsZWN0ZWRDcmVkZW50aWFsQXR0cmlidXRlcyA9IGludGVyc2VjdGVkQ3JlZGVudGlhbHNB
dHRyaWJ1dGVzWzBdOworICAgIGF1dG8gKnNlbGVjdGVkQ3JlZGVudGlhbEF0dHJpYnV0ZXMgPSBt
X2Nvbm5lY3Rpb24tPnNlbGVjdENyZWRlbnRpYWwoaW50ZXJzZWN0ZWRDcmVkZW50aWFsc0F0dHJp
YnV0ZXMpOwogCiAgICAgLy8gU3RlcCA3LiBHZXQgdXNlciBjb25zZW50LgogICAgIC8vIEZJWE1F
KHJkYXI6Ly9wcm9ibGVtLzM1OTAwNTkzKTogVXBkYXRlIHRvIGEgZm9ybWFsIFVJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaAppbmRleCBjZGEyZjczZmRiYjZjNGEzYjNlOTJmZDk0
YWE4NDAyOWE1ZDYxNjkzLi5jZDc4NWMyY2RkYzRmMTEwZGNlNjhlM2RiZGRkZmI1Mjg3M2MxMzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9D
b2NvYS9Mb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldFVzZXJDb25zZW50KGNvbnN0IFN0cmluZyYgcmVh
c29uLCBVc2VyQ29uc2VudENhbGxiYWNrJiYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBnZXRV
c2VyQ29uc2VudChjb25zdCBTdHJpbmcmIHJlYXNvbiwgU2VjQWNjZXNzQ29udHJvbFJlZiwgVXNl
ckNvbnNlbnRDb250ZXh0Q2FsbGJhY2smJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGdldEF0
dGVzdGF0aW9uKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpzZWxlY3RDcmVkZW50aWFsKGNvbnN0IE5TQXJyYXkg
KikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xv
Y2FsQ29ubmVjdGlvbi5tbQppbmRleCA1YzJjOWEzN2NjNDcxNTQ3ZjQxNWRiNjk3NWIxYjEzZWU3
OWE2YzNhLi45MGE1ZjdiM2JiMTFmNDBmOTU1NTg4MmMwYjhiZjJhMTBhMmU5MzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0xMTAsNiArMTEwLDEyIEBAIHZvaWQg
TG9jYWxDb25uZWN0aW9uOjpnZXRBdHRlc3RhdGlvbihjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0
IFN0cmluZyYgdXNlcm5hbWUsCiAjZW5kaWYgLy8gSEFWRShERVZJQ0VfSURFTlRJVFkpCiB9CiAK
K05TRGljdGlvbmFyeSAqTG9jYWxDb25uZWN0aW9uOjpzZWxlY3RDcmVkZW50aWFsKGNvbnN0IE5T
QXJyYXkgKmNyZWRlbnRpYWxzKSBjb25zdAoreworICAgIC8vIEZJWE1FKHJkYXI6Ly9wcm9ibGVt
LzM1OTAwNTM0KTogV2UgZG9uJ3QgaGF2ZSBhbiBVSSB0byBwcm9tcHQgdXNlcnMgZm9yIHNlbGVj
dGluZyBpbnRlcnNlY3RlZENyZWRlbnRpYWxzLCBhbmQgdGhlcmVmb3JlIHdlIGFsd2F5cyB1c2Ug
dGhlIGZpcnN0IG9uZSBmb3Igbm93LgorICAgIHJldHVybiBjcmVkZW50aWFsc1swXTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9N
b2NrTG9jYWxDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaAppbmRleCAwZDk5Nzg2ZTJiMDcxZjJi
MzQwZjM1N2Q1ZGEwZWM0NWE5ZTAwMzlhLi4zMWFkNzFhMzEyN2JhYWE0NjZjNzI5ZGE1YmY0ZDFk
NTJiNGUxYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24uaApAQCAt
NDAsNiArNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VXNlckNvbnNlbnQoY29uc3QgU3Ry
aW5nJiByZWFzb24sIFVzZXJDb25zZW50Q2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBnZXRVc2VyQ29uc2VudChjb25zdCBTdHJpbmcmIHJlYXNvbiwgU2VjQWNjZXNzQ29udHJvbFJl
ZiwgVXNlckNvbnNlbnRDb250ZXh0Q2FsbGJhY2smJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBn
ZXRBdHRlc3RhdGlvbihjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBjb25z
dCBmaW5hbDsKKyAgICBOU0RpY3Rpb25hcnkgKnNlbGVjdENyZWRlbnRpYWwoY29uc3QgTlNBcnJh
eSAqKSBjb25zdCBmaW5hbDsKIAogICAgIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24gbV9jb25maWd1cmF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5tbQppbmRleCA4NmUwNzkwZDE2ODAxMjFlZTdlMWZmN2JhNjk3NjY1MTRhZGY1Yjk5Li41
NzFlY2NhN2U0ZjQ3MGZjNjliNDFjZGQyNjAzOWNiOTI3MWQ0YTBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5l
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
TW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0xMDgsNiArMTA4LDE3IEBAIHZvaWQgTW9j
a0xvY2FsQ29ubmVjdGlvbjo6Z2V0QXR0ZXN0YXRpb24oY29uc3QgU3RyaW5nJiBycElkLCBjb25z
dCBTdHJpbmcmIHVzZXJuCiAgICAgfSk7CiB9CiAKK05TRGljdGlvbmFyeSAqTW9ja0xvY2FsQ29u
bmVjdGlvbjo6c2VsZWN0Q3JlZGVudGlhbChjb25zdCBOU0FycmF5ICpjcmVkZW50aWFscykgY29u
c3QKK3sKKyAgICBhdXRvIHByZWZlcnJlZFVzZXJoYW5kbGUgPSBhZG9wdE5TKFtbTlNEYXRhIGFs
bG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6bV9jb25maWd1cmF0aW9uLmxvY2FsLT5w
cmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0IG9wdGlvbnM6MF0pOworICAgIGZvciAoTlNEaWN0aW9u
YXJ5ICpjcmVkZW50aWFsIDogY3JlZGVudGlhbHMpIHsKKyAgICAgICAgaWYgKFtjcmVkZW50aWFs
WyhpZClrU2VjQXR0ckFwcGxpY2F0aW9uVGFnXSBpc0VxdWFsVG9EYXRhOnByZWZlcnJlZFVzZXJo
YW5kbGUuZ2V0KCldKQorICAgICAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWw7CisgICAgfQorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBuaWw7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmgKaW5k
ZXggZjQwYTdiN2JkOGJlMWI3ZDBiMzQyODViZDY2NmM4N2QwZGNkNzk2OS4uOTEzZTg1YzE4ZTNh
YzZhN2U5NWU3ZDQ2M2IwMzlhNjU5YjllOTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vTW9jay9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmgKQEAgLTM4LDYgKzM4
LDcgQEAgc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24gewogICAgICAg
ICBTdHJpbmcgcHJpdmF0ZUtleUJhc2U2NDsKICAgICAgICAgU3RyaW5nIHVzZXJDZXJ0aWZpY2F0
ZUJhc2U2NDsKICAgICAgICAgU3RyaW5nIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjQ7
CisgICAgICAgIFN0cmluZyBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0OwogICAgIH07CiAKICAg
ICBzdHJ1Y3QgSGlkIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAwNGQ4NWQwMDgxMjE0OWI0Yzg5MjA5OWVhOTc4NzNlNDYxMWY1NGQ2Li5jOTUx
YjU0ZDE5YzA5ZGRhOTJhYTdhNjBiMzRlMmM5YzY2MTdlNzVlIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDkt
MTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aG5dIExvY2FsQXV0aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBvbiBpbnRlcm5hbCBib3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvY2FsQXV0aGVudGljYXRvciB0ZXN0cyB1dGls
aXplIEtleWNoYWluIGZvciBtb2NrIHRlc3RpbmcuIFVubGlrZSBpT1Mgc2ltdWxhdG9yIHRlc3Rz
IHdoaWNoCisgICAgICAgIGVhY2ggdGVzdCBydW5uZXIgaXMgcnVubmluZyBpbiBkaWZmZXJlbnQg
c2ltdWxhdG9yIGNvbnRhaW5lcnMsIGFsbCB0ZXN0IHJ1bm5lcnMgYXJlIHJ1bm5pbmcKKyAgICAg
ICAgaW4gdGhlIHNhbWUgbWFjT1MgY29udGFpbmVyIGluIG1hY09TLiBUaGVyZWZvcmUsIEtleWNo
YWluIGlzIHNoYXJlZCBhbW9uZyBhbGwgdGVzdCBydW5uZXJzCisgICAgICAgIGluIG1hY09TIHdo
aWxlIGl0IGlzIG5vdCBpbiBpT1Mgc2ltdWxhdG9ycy4gQW5kIHRoZXJlZm9yZSwgcmFjZSBjb25k
aXRpb25zIHdvdWxkIGhhcHBlbiBpbgorICAgICAgICBtYWNPUyB3aGljaCBtYWtlIHRoZSBjdXJy
ZW50IHRlc3RzIGZsYWt5IGdpdmVuIHRoZXkgZG9uJ3QgY29uc2lkZXIgcmFjZSBjb25kaXRpb25z
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggdGhlbiBtYWtlcyBlYWNoIHRlc3QgZ2VuZXJhdGUgYSBy
YW5kb20gY3JlZGVudGlhbCwgYW5kIHRodXMgbm8gb3RoZXIgdGVzdHMgd291bGQKKyAgICAgICAg
YmUgYWJsZSB0byBhY2Nlc3MgaXQsIGFuZCB0aGVyZWZvcmUgZWxpbWluYXRlIGFueSByYWNlIGNv
bmRpdGlvbi4gVG8gYXNzaXMgaXQsIGEgZmV3IG5ldworICAgICAgICBmdW5jdGlvbmFsaXRpZXMg
YXJlIGludHJvZHVjZWQgdG8gdGhlIG1vY2sgdGVzdCBpbmZyYXN0cnVjdHVyZSBhcyB3ZWxsOgor
ICAgICAgICAxKSBUZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbiBhY2NlcHRzIGEgbmV3IHBhcmFt
ZXRlciB0byBtb3JlIHByZWNpc2VseSBpZGVudGlmeSBhbiBpdGVtLgorICAgICAgICAyKSBXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uLkxvY2FsIGhhcyBhIG5ldyBtZW1iZXIgdG8g
dW5pcXVlbHkgc2VsZWN0IGEgY3JlZGVudGlhbAorICAgICAgICBmb3IgZ2V0QXNzZXJ0aW9uIGNl
cmVtb255IHdoZW4gbXVsdGlwbGUgcHJlc2VudHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4pOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y2xlYW5VcEtleWNoYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpjbGVhblVwS2V5Y2hhaW4pOgorCiAyMDE5LTA5LTEwICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgU1NMLWJhc2VkIFRMU0RlcHJlY2F0aW9u
Lm1tIGNvbnRlbnRzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA0MmQzNjYwMmQyNWNi
OTllMmI4ZWE2OTBhMjEyNDRmMWIzMDVhMjQ2Li43NGI5ODJjMGIwN2E0NDAyOGMxMjljZDUwYWNk
ZmM5YmZmMmZjOWJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTM5NSw3ICszOTUs
NyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gV2ViQXV0aE4KICAgICB2b2lkIHNl
dFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24ob2JqZWN0IGNvbmZpZ3VyYXRpb24p
OwogICAgIHZvaWQgYWRkVGVzdEtleVRvS2V5Y2hhaW4oRE9NU3RyaW5nIHByaXZhdGVLZXlCYXNl
NjQsIERPTVN0cmluZyBhdHRyTGFiZWwsIERPTVN0cmluZyBhcHBsaWNhdGlvblRhZ0Jhc2U2NCk7
Ci0gICAgdm9pZCBjbGVhblVwS2V5Y2hhaW4oRE9NU3RyaW5nIGF0dHJMYWJlbCk7CisgICAgdm9p
ZCBjbGVhblVwS2V5Y2hhaW4oRE9NU3RyaW5nIGF0dHJMYWJlbCwgb3B0aW9uYWwgRE9NU3RyaW5n
IGFwcGxpY2F0aW9uVGFnQmFzZTY0KTsKICAgICBib29sZWFuIGtleUV4aXN0c0luS2V5Y2hhaW4o
RE9NU3RyaW5nIGF0dHJMYWJlbCwgRE9NU3RyaW5nIGFwcGxpY2F0aW9uVGFnQmFzZTY0KTsKIAog
ICAgIC8vIEFkIENsaWNrIEF0dHJpYnV0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAwN2NhYzYwZTE2N2NjNTQ4
NmI3MzAwMDhmZGIxMjVlN2I1YTM2ZmUwLi40M2RhZTk3MTBlYTNlOWM5OTRiOTY1MzgwMzU0NzI3
MDhiYTg1ZmI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTI1ODUsNyArMjU4NSw3IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbihKU1ZhbHVlUmVmIGNvbmZp
Z3VyYXRpb25WCiAgICAgICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gaW50ZXJtZWRp
YXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NFByb3BlcnR5TmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoImludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjQiKSk7CiAgICAg
ICAgICAgICBKU1ZhbHVlUmVmIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjRWYWx1ZSA9
IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgbG9jYWwsIGludGVybWVkaWF0ZUNBQ2VydGlm
aWNhdGVCYXNlNjRQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOwogICAgICAgICAgICAgaWYgKCFKU1Zh
bHVlSXNTdHJpbmcoY29udGV4dCwgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NFZhbHVl
KSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIGxvY2FsS2V5cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUHJpdmF0ZUtleUJhc2U2NCIpKSk7CiAgICAgICAgICAgICBsb2NhbFZhbHVlcy5hcHBl
bmQodG9XSyhhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHByaXZhdGVLZXlCYXNl
NjRWYWx1ZSwgMCkpLmdldCgpKSk7CkBAIC0yNTk1LDYgKzI1OTUsMTYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKEpTVmFsdWVSZWYgY29u
ZmlndXJhdGlvblYKICAgICAgICAgICAgIGxvY2FsVmFsdWVzLmFwcGVuZCh0b1dLKGFkb3B0KEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2
NFZhbHVlLCAwKSkuZ2V0KCkpKTsKICAgICAgICAgfQogCisgICAgICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0UHJvcGVydHlOYW1lKEFkb3B0LCBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygicHJlZmVycmVkVXNlcmhhbmRsZUJhc2U2NCIp
KTsKKyAgICAgICAgSlNWYWx1ZVJlZiBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0VmFsdWUgPSBK
U09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIGxvY2FsLCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFz
ZTY0UHJvcGVydHlOYW1lLmdldCgpLCAwKTsKKyAgICAgICAgaWYgKCFKU1ZhbHVlSXNVbmRlZmlu
ZWQoY29udGV4dCwgcHJlZmVycmVkVXNlcmhhbmRsZUJhc2U2NFZhbHVlKSAmJiAhSlNWYWx1ZUlz
TnVsbChjb250ZXh0LCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0VmFsdWUpKSB7CisgICAgICAg
ICAgICBpZiAoIUpTVmFsdWVJc1N0cmluZyhjb250ZXh0LCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFz
ZTY0VmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbG9jYWxL
ZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQcmVmZXJy
ZWRVc2VyaGFuZGxlQmFzZTY0IikpKTsKKyAgICAgICAgICAgIGxvY2FsVmFsdWVzLmFwcGVuZCh0
b1dLKGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgcHJlZmVycmVkVXNlcmhhbmRs
ZUJhc2U2NFZhbHVlLCAwKSkuZ2V0KCkpKTsKKyAgICAgICAgfQorCiAgICAgICAgIFZlY3RvcjxX
S1N0cmluZ1JlZj4gcmF3TG9jYWxLZXlzOwogICAgICAgICBWZWN0b3I8V0tUeXBlUmVmPiByYXdM
b2NhbFZhbHVlczsKICAgICAgICAgcmF3TG9jYWxLZXlzLnJlc2l6ZShsb2NhbEtleXMuc2l6ZSgp
KTsKQEAgLTI4MzcsMTAgKzI4NDcsMzEgQEAgdm9pZCBUZXN0UnVubmVyOjphZGRUZXN0S2V5VG9L
ZXljaGFpbihKU1N0cmluZ1JlZiBwcml2YXRlS2V5QmFzZTY0LCBKU1N0cmluZ1JlZgogICAgIFdL
QnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
YnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6Y2xlYW5VcEtleWNoYWluKEpTU3RyaW5nUmVmIGF0dHJM
YWJlbCkKK3ZvaWQgVGVzdFJ1bm5lcjo6Y2xlYW5VcEtleWNoYWluKEpTU3RyaW5nUmVmIGF0dHJM
YWJlbCwgSlNTdHJpbmdSZWYgYXBwbGljYXRpb25UYWdCYXNlNjQpCiB7CisgICAgVmVjdG9yPFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPj4ga2V5czsKKyAgICBWZWN0b3I8V0tSZXRhaW5QdHI8V0tU
eXBlUmVmPj4gdmFsdWVzOworCisgICAga2V5cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiQXR0ckxhYmVsIikpKTsKKyAgICB2YWx1ZXMuYXBwZW5kKHRvV0so
YXR0ckxhYmVsKSk7CisKKyAgICBpZiAoYXBwbGljYXRpb25UYWdCYXNlNjQpIHsKKyAgICAgICAg
a2V5cy5hcHBlbmQoYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQXBwbGlj
YXRpb25UYWciKSkpOworICAgICAgICB2YWx1ZXMuYXBwZW5kKHRvV0soYXBwbGljYXRpb25UYWdC
YXNlNjQpKTsKKyAgICB9CisKKyAgICBWZWN0b3I8V0tTdHJpbmdSZWY+IHJhd0tleXM7CisgICAg
VmVjdG9yPFdLVHlwZVJlZj4gcmF3VmFsdWVzOworICAgIHJhd0tleXMucmVzaXplKGtleXMuc2l6
ZSgpKTsKKyAgICByYXdWYWx1ZXMucmVzaXplKHZhbHVlcy5zaXplKCkpOworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHJhd0tleXNbaV0g
PSBrZXlzW2ldLmdldCgpOworICAgICAgICByYXdWYWx1ZXNbaV0gPSB2YWx1ZXNbaV0uZ2V0KCk7
CisgICAgfQorCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2xlYW5VcEtleWNoYWluIikpOwot
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoSlNTdHJpbmcoYXR0ckxhYmVsKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEaWN0
aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tl
eXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCByYXdLZXlzLnNpemUoKSkpOwogCiAgICAgV0tC
dW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5i
dW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggMDlhZjNiZGYyNjMyYmY4ZjZkNTM1ZTc2M2JhNjljMGNjNDc3MjYwZi4uMGQ4
MDcwZjJhNzVlYTMwYmFhY2E0Y2FlMTBjYjQwZTBmYzUzODgxYyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ4OSw3ICs0
ODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1
cmF0aW9uKEpTVmFsdWVSZWYpOwogICAgIC8vIEZJWE1FKDE4OTg3NikKICAgICB2b2lkIGFkZFRl
c3RLZXlUb0tleWNoYWluKEpTU3RyaW5nUmVmIHByaXZhdGVLZXlCYXNlNjQsIEpTU3RyaW5nUmVm
IGF0dHJMYWJlbCwgSlNTdHJpbmdSZWYgYXBwbGljYXRpb25UYWdCYXNlNjQpOwotICAgIHZvaWQg
Y2xlYW5VcEtleWNoYWluKEpTU3RyaW5nUmVmIGF0dHJMYWJlbCk7CisgICAgdm9pZCBjbGVhblVw
S2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRh
Z0Jhc2U2NCk7CiAgICAgYm9vbCBrZXlFeGlzdHNJbktleWNoYWluKEpTU3RyaW5nUmVmIGF0dHJM
YWJlbCwgSlNTdHJpbmdSZWYgYXBwbGljYXRpb25UYWdCYXNlNjQpOwogCiAgICAgdm9pZCBzZXRD
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIGNhbkhhbmRsZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDVjNjY4NDY5ZWVmZGY2
MDQ4NTc2MGRmMDI3ZDc0Mzk3MzhjNjZmZDkuLjA3MGU3NDI3MzNiZjQ4MjAxYjkwMGVkZDIzNjJi
NjA0NzE3NTY5ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0zNTUxLDcgKzM1NTEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjphZGRUZXN0S2V5VG9L
ZXljaGFpbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdAogewogfQogCi12
b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhblVwS2V5Y2hhaW4oY29uc3QgU3RyaW5nJikKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OmNsZWFuVXBLZXljaGFpbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
ODM3ZTRhYjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OC4uYWY1ZTU5OTU2MmQ3NmJl
ODdhYzU3MmM0NGJjNDI3OTNlN2VlMjU0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtMjkyLDcgKzI5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0V2Vi
QXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbihXS0RpY3Rpb25hcnlSZWYpOwogICAgIHZv
aWQgYWRkVGVzdEtleVRvS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBwcml2YXRlS2V5QmFzZTY0LCBj
b25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblRhZ0Jhc2U2
NCk7Ci0gICAgdm9pZCBjbGVhblVwS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwpOwor
ICAgIHZvaWQgY2xlYW5VcEtleWNoYWluKGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBT
dHJpbmcmIGFwcGxpY2F0aW9uVGFnQmFzZTY0KTsKICAgICBib29sIGtleUV4aXN0c0luS2V5Y2hh
aW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwsIGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25UYWdC
YXNlNjQpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCmluZGV4IDYwN2U1YmJkYjRiMDU2ZWI2YjViNjRlYjAwMTdkYjgwNWMw
N2E5OTIuLmZkMjUyMDBkNDAyZjBjZmQzMjJjYmViYTE4ZjA1YjA5ZjRmY2QxZmUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNTg2LDggKzE1ODYsMTYg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNsZWFuVXBLZXljaGFpbiIpKSB7Ci0gICAg
ICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tTdHJpbmdHZXRUeXBlSUQo
KSk7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhblVwS2V5Y2hhaW4o
dG9XVEZTdHJpbmcoc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1lc3NhZ2VCb2R5KSkpOworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5
cGVJRCgpKTsKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIHRlc3REaWN0aW9uYXJ5ID0gc3RhdGlj
X2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7CisKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGF0dHJMYWJlbEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkF0dHJMYWJlbCIpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgYXR0ckxhYmVs
V0sgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleSh0
ZXN0RGljdGlvbmFyeSwgYXR0ckxhYmVsS2V5LmdldCgpKSk7CisKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGFwcGxpY2F0aW9uVGFnS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiQXBwbGljYXRpb25UYWciKSk7CisgICAgICAgIFdLU3RyaW5nUmVm
IGFwcGxpY2F0aW9uVGFnV0sgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleSh0ZXN0RGljdGlvbmFyeSwgYXBwbGljYXRpb25UYWdLZXkuZ2V0KCkpKTsK
KworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xlYW5VcEtleWNoYWluKHRv
V1RGU3RyaW5nKGF0dHJMYWJlbFdLKSwgYXBwbGljYXRpb25UYWdXSyA/IHRvV1RGU3RyaW5nKGFw
cGxpY2F0aW9uVGFnV0spIDogU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQppbmRleCA4ODYzYmRiYjZkNTQwMDgyNmE2OWUwNzJlOWM5NzRkOGIxYzc5MjM4
Li5lNGJjMDQwNGYwNTk4NjQ4NzgwMTU2ODU3YzQ2OTNiYzFlNWJjMzc2IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0z
NjMsMTggKzM2MywyMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjphZGRUZXN0S2V5VG9LZXljaGFp
bihjb25zdCBTdHJpbmcmIHByaXZhdGVLZXlCYXNlNjQsIGNvbnN0CiAgICAgQVNTRVJUX1VOVVNF
RChzdGF0dXMsICFzdGF0dXMpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhblVwS2V5
Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwpCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVh
blVwS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwsIGNvbnN0IFN0cmluZyYgYXBwbGlj
YXRpb25UYWdCYXNlNjQpCiB7Ci0gICAgTlNEaWN0aW9uYXJ5KiBkZWxldGVRdWVyeSA9IEB7Ci0g
ICAgICAgIChpZClrU2VjQ2xhc3M6IChpZClrU2VjQ2xhc3NLZXksCi0gICAgICAgIChpZClrU2Vj
QXR0ckxhYmVsOiBhdHRyTGFiZWwsCisgICAgYXV0byBkZWxldGVRdWVyeSA9IGFkb3B0TlMoW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgW2RlbGV0ZVF1ZXJ5IHNldE9i
amVjdDooaWQpa1NlY0NsYXNzS2V5IGZvcktleTooaWQpa1NlY0NsYXNzXTsKKyAgICBbZGVsZXRl
UXVlcnkgc2V0T2JqZWN0OmF0dHJMYWJlbCBmb3JLZXk6KGlkKWtTZWNBdHRyTGFiZWxdOwogI2lm
IEhBVkUoREFUQV9QUk9URUNUSU9OX0tFWUNIQUlOKQotICAgICAgICAoaWQpa1NlY1VzZURhdGFQ
cm90ZWN0aW9uS2V5Y2hhaW46IEBZRVMKKyAgICBbZGVsZXRlUXVlcnkgc2V0T2JqZWN0OkBZRVMg
Zm9yS2V5OihpZClrU2VjVXNlRGF0YVByb3RlY3Rpb25LZXljaGFpbl07CiAjZWxzZQotICAgICAg
ICAoaWQpa1NlY0F0dHJOb0xlZ2FjeTogQFlFUworICAgIFtkZWxldGVRdWVyeSBzZXRPYmplY3Q6
QFlFUyBmb3JLZXk6KGlkKWtTZWNBdHRyTm9MZWdhY3ldOwogI2VuZGlmCi0gICAgfTsKLSAgICBT
ZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZGVsZXRlUXVlcnkpOworICAg
IGlmICghIWFwcGxpY2F0aW9uVGFnQmFzZTY0KQorICAgICAgICBbZGVsZXRlUXVlcnkgc2V0T2Jq
ZWN0OmFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzph
cHBsaWNhdGlvblRhZ0Jhc2U2NCBvcHRpb25zOk5TRGF0YUJhc2U2NERlY29kaW5nSWdub3JlVW5r
bm93bkNoYXJhY3RlcnNdKS5nZXQoKSBmb3JLZXk6KGlkKWtTZWNBdHRyQXBwbGljYXRpb25UYWdd
OworCisgICAgU2VjSXRlbURlbGV0ZSgoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWRlbGV0ZVF1
ZXJ5LmdldCgpKTsKIH0KIAogYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXljaGFp
bihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblRhZ0Jh
c2U2NCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBlOTc3MGU2MjA4NTkzODU1YTU4M2M0NWIzM2RiNzc4MzMxNDEzYWNiLi5m
M2E1NzUxM2E4MmJjZjM0ZDc2MTZhZTZmY2YyMDI2NzAzMjFhZWUzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMTktMDktMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIExvY2FsQXV0aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBv
biBpbnRlcm5hbCBib3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDE4NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgZWFjaCB0ZXN0IHRvIGdlbmVyYXRlIHRoZWlyIG93biBjcmVkZW50aWFscyB0byBhdm9pZCBy
YWNlIGNvbmRpdGlvbnMgaW4gS2V5Y2hhaW4KKyAgICAgICAgYWNjZXNzZXMgd2hlbiBtdWx0aXBs
ZSB0ZXN0IHJ1bm5lcnMgcHJlc2VudC4KKworICAgICAgICAqIGh0dHAvd3B0L2NyZWRlbnRpYWwt
bWFuYWdlbWVudC9jcmVkZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3MuaHR0cHMuaHRtbDoK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbDoKKyAgICAgICAgVGhl
c2UgdHdvIHRlc3RzIGFyZSBjaGFuZ2VkIHRvIHVzZSBoaWQgYXV0aGVudGljYXRvciBpbnN0ZWFk
IG9mIGxvY2FsIHRvIGF2b2lkIGFueSBmdXR1cmUgS2V5Y2hhaW4gaXNzdWVzLgorICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1s
b2NhbC1zaWxlbnQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nl
c3MtbG9jYWwuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWw6CisgICAg
ICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWxvY2FsLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0
cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTEwICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogWyBDYXRhbGluYSBXSzIgXSBo
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJm
Lmh0dHBzLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3JlZGVudGlhbC1tYW5hZ2VtZW50L2NyZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2Ny
ZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5odHRwcy5odG1sCmluZGV4IDEwZDgzNTZi
ZjdlNmI4NjIwZmU3NTRiZTJjNTQ5YTU4NmI1MTRmZTguLmJjMDIxMTkyZTAwY2ExZmM3MTE2ZTUy
MDBlZGEzNGFmMDllZDBlMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2NyZWRl
bnRpYWwtbWFuYWdlbWVudC9jcmVkZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3MuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jcmVkZW50aWFsLW1hbmFnZW1lbnQvY3Jl
ZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0dHBzLmh0bWwKQEAgLTMsNDMgKzMsMjgg
QEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+Ci0gICAgY29uc3QgdGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCA9Ci0gICAgICAgICJC
RGovenhTa3pLZ2FCdVMzY2RXREY1NThvZjhBYUlwZ0Zwc2pGL1FtMTc0OVZCSlBncVVJd2ZoV0hK
OTFuYjdVIiArCi0gICAgICAgICJQSDc2YzArV0ZPelpLc2xQeXlGc2U0Z29HSVcyUjdrOVZITFBF
Wmw1bmZuQmdFVkZoNXpldisveHBIUUl2dXE2IiArCi0gICAgICAgICJSUT09IjsKLSAgICBjb25z
dCB0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0ZUJhc2U2NCA9Ci0gICAgICAgICJNSUlCNmpDQ0Fa
Q2dBd0lCQWdJR0FXSEF4Y2p2TUFvR0NDcUdTTTQ5QkFNQ01GTXhKekFsQmdOVkJBTU1Ia0poIiAr
Ci0gICAgICAgICJjMmxqSUVGMGRHVnpkR0YwYVc5dUlGVnpaWElnVTNWaUlFTkJNVEVUTUJFR0Ex
VUVDZ3dLUVhCd2JHVWdTVzVqIiArCi0gICAgICAgICJMakVUTUJFR0ExVUVDQXdLUTJGc2FXWnZj
bTVwWVRBZUZ3MHhPREF5TWpNd016TTNNakphRncweE9EQXlNalF3IiArCi0gICAgICAgICJNelEz
TWpKYU1Hb3hJakFnQmdOVkJBTU1HVEF3TURBNE1ERXdMVEF3TUVFME9VRXlNekJCTURJeE0wRXhH
akFZIiArCi0gICAgICAgICJCZ05WQkFzTUVVSkJRU0JEWlhKMGFXWnBZMkYwYVc5dU1STXdFUVlE
VlFRS0RBcEJjSEJzWlNCSmJtTXVNUk13IiArCi0gICAgICAgICJFUVlEVlFRSURBcERZV3hwWm05
eWJtbGhNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV2Q2plIiArCi0gICAgICAg
ICJQenI2U2c3NlhNb0h1R2FiUGFHNnpqcExGTDhaZDgvNzRIaDVQY0wyWnErbytmN0VOWFgrN25F
WFhZdDBTOFV4IiArCi0gICAgICAgICI1VElSdzRoZ2JmeFhRYldMRXFNNU1EY3dEQVlEVlIwVEFR
SC9CQUl3QURBT0JnTlZIUThCQWY4RUJBTUNCUEF3IiArCi0gICAgICAgICJGd1lKS29aSWh2ZGpa
QWdDQkFvd0NLRUdCQVIwWlhOME1Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lBbEs4QThJIiArCi0g
ICAgICAgICJrNDNUYnZLdVlHSFpzMURUZ3BUd21LVEJ2SVV3NWJ3Z1p1WW5BaUVBdHVKakRMS2JH
TkpBSkZNaTVkZUVCcW5vIiArCi0gICAgICAgICJwQlRDcWJmYkRKY2NmeVFwam5ZPSI7Ci0gICAg
Y29uc3QgdGVzdEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQgPQotICAgICAg
ICAiTUlJQ0l6Q0NBYWlnQXdJQkFnSUllTmpoRzl0bkRHZ3dDZ1lJS29aSXpqMEVBd0l3VXpFbk1D
VUdBMVVFQXd3ZSIgKwotICAgICAgICAiUW1GemFXTWdRWFIwWlhOMFlYUnBiMjRnVlhObGNpQlNi
MjkwSUVOQk1STXdFUVlEVlFRS0RBcEJjSEJzWlNCSiIgKwotICAgICAgICAiYm1NdU1STXdFUVlE
VlFRSURBcERZV3hwWm05eWJtbGhNQjRYRFRFM01EUXlNREF3TkRJd01Gb1hEVE15TURNeSIgKwot
ICAgICAgICAiTWpBd01EQXdNRm93VXpFbk1DVUdBMVVFQXd3ZVFtRnphV01nUVhSMFpYTjBZWFJw
YjI0Z1ZYTmxjaUJUZFdJZyIgKwotICAgICAgICAiUTBFeE1STXdFUVlEVlFRS0RBcEJjSEJzWlNC
SmJtTXVNUk13RVFZRFZRUUlEQXBEWVd4cFptOXlibWxoTUZrdyIgKwotICAgICAgICAiRXdZSEtv
Wkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVvU1ovMXQ5ZUJBRVZwNWE4UHJYYWNtYkdiOHpOQzFY
MyIgKwotICAgICAgICAiU3RMSTlZTzZZMENMN2JsSG1TR21qR1dUd0Q0UStpMEoyQlkzK2JQSFRH
UnlBOWpHQjNNU2JhTm1NR1F3RWdZRCIgKwotICAgICAgICAiVlIwVEFRSC9CQWd3QmdFQi93SUJB
REFmQmdOVkhTTUVHREFXZ0JTRDVhTWhuckIwdy9saGtQMlhUaU1RZHFTaiIgKwotICAgICAgICAi
OGpBZEJnTlZIUTRFRmdRVTVtV2YxRFlMVFhVZFE5eG1PSC91cWVOU0Q4MHdEZ1lEVlIwUEFRSC9C
QVFEQWdFRyIgKwotICAgICAgICAiTUFvR0NDcUdTTTQ5QkFNQ0Eya0FNR1lDTVFDM00zNjBMTHRK
UzYwWjlxM3ZWakp4TWdNY0ZRMXJvR1RVY0txdiIgKwotICAgICAgICAiVys0aEo0Q2VKanlTWFRn
cTZJRUhuL3lXYWI0Q01RQ201Tm5LNlNPU0srQXFXdW05bEw4N1czRTZBQTFmMlR2SiIgKwotICAg
ICAgICAiL2hnb2svMzRqcjkzbmhTODd0T1FOZHhEUzh6eWlxdz0iOwotICAgIGNvbnN0IHRlc3RS
cElkID0gImxvY2FsaG9zdCI7Ci0gICAgZnVuY3Rpb24gYXNjaWlUb1VpbnQ4QXJyYXkoc3RyKQot
ICAgIHsKLSAgICAgICAgdmFyIGNoYXJzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc3RyLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgY2hhcnMucHVzaChzdHIuY2hhckNvZGVB
dChpKSk7Ci0gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Ci0gICAgfQorICAg
IGNvbnN0IHRlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjQgPQorICAgICAgICAiQUtNQlpuQmhZMnRs
WkFKWXhFYk1mN2xublZXeTI1Q1M0Y2paNWVIUUszV0E4TFNCTEhjSll1SGtqMXJZUVFBQSIgKwor
ICAgICAgICAiQUU3NG9CSHpqQXBORllBR0Z4RWZudHg5QUVBb0NLM082UDVPeVhONlYvZis5bkFn
YTBOQTJDZ3A0VjNtZ1NKNSIgKworICAgICAgICAiak9ITE1Ecm14cC9TMHJiRCthaWhydTFDMGFB
TjNCa2lNNkdOeTVuU2xEVnFPZ1RncFFFQ0F5WWdBU0ZZSUVGYiIgKworICAgICAgICAiaGUzUmtO
dWQ2c2d5cmFCR2psaDFwelRsQ1plaFFsTC9iMThIWjZXR0lsZ2dKZ2ZVZC9lbjlwNUFJcU1RYlVu
aSIgKworICAgICAgICAibkVlWGRGTGt2VzAvelY1QnBFampOeEFEbzJOaGJHY21ZM05wWjFoSE1F
VUNJUURLZytaQm1FQnRmMGxXcTRSZSIgKworICAgICAgICAiZEg0L2kvTE9ZcU9SNHVSMk5BajJ6
UW13OVFJZ2JUWGI0aHZGYmo0VDI3YnYvckdyYyt5KzBwdW9ZT0JrQms5UCIgKworICAgICAgICAi
bUNld1dsTmplRFZqZ1ZrQ3dqQ0NBcjR3Z2dHbW9BTUNBUUlDQkhTRy9jSXdEUVlKS29aSWh2Y05B
UUVMQlFBdyIgKworICAgICAgICAiTGpFc01Db0dBMVVFQXhNaldYVmlhV052SUZVeVJpQlNiMjkw
SUVOQklGTmxjbWxoYkNBME5UY3lNREEyTXpFdyIgKworICAgICAgICAiSUJjTk1UUXdPREF4TURB
d01EQXdXaGdQTWpBMU1EQTVNRFF3TURBd01EQmFNRzh4Q3pBSkJnTlZCQVlUQWxORiIgKworICAg
ICAgICAiTVJJd0VBWURWUVFLREFsWmRXSnBZMjhnUVVJeElqQWdCZ05WQkFzTUdVRjFkR2hsYm5S
cFkyRjBiM0lnUVhSMCIgKworICAgICAgICAiWlhOMFlYUnBiMjR4S0RBbUJnTlZCQU1NSDFsMVlt
bGpieUJWTWtZZ1JVVWdVMlZ5YVdGc0lERTVOVFV3TURNNCIgKworICAgICAgICAiTkRJd1dUQVRC
Z2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVlhmT3Q5eVI5TVhYdi9aekU4eHBPaDQ2NiIg
KworICAgICAgICAiNFlFSlZtRlEremlMTGw5bEo3OVhRSnFsZ2FVTkNzVXZHRVJjQ2hOVWloTlR5
S1RsbW5CT1VqdkFUZXZ0bzJ3dyIgKworICAgICAgICAiYWpBaUJna3JCZ0VFQVlMRUNnSUVGVEV1
TXk0MkxqRXVOQzR4TGpReE5EZ3lMakV1TVRBVEJnc3JCZ0VFQVlMbCIgKworICAgICAgICAiSEFJ
QkFRUUVBd0lGSURBaEJnc3JCZ0VFQVlMbEhBRUJCQVFTQkJENG9CSHpqQXBORllBR0Z4RWZudHg5
TUF3RyIgKworICAgICAgICAiQTFVZEV3RUIvd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dF
QkFERmNTSURtbWxKK09HYUp2V245Q3FodiIgKworICAgICAgICAiU2V1ZVRvVkZRVlZ2cXRBTE9n
Q0tIZHdCK1d4MjltZzJHcEhpTXNnUXA1eGpCMHliYm5wRzZ4MjEyRnhFU0orRyIgKworICAgICAg
ICAiaW5aRDBpcGNoaTdBUHdQbGhJdmpnSDE2elZYNDRhNGU0aE9zYzZ0TElPUDcxU2FNc0h1SGdD
Y2RIMHZnNWQycyIgKworICAgICAgICAiYzAwNldKZTlUWE82ZnpWK29nakpuWXBOS1FMbUNYb0FY
RTNKQk53S0dCSU9DdmZRRFB5V21paUc1Ykd4WWZQdCIgKworICAgICAgICAieThaM3BualgrMU1E
bk0yaGhyNDB1bE14bFNORG5YL1pTbkR5TUdJYms4VE9RbWpURjAyVU84YXVQOGszd3Q1RCIgKwor
ICAgICAgICAiMXJST0lSVTkrRkNTWDVXUVlpNjhSdURyR01aQjhQNStieW9KcWJLUWR4bjJMbUUx
b1pBeW9oUEFtTGNvUE80PSI7CiAKICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkg
ewogICAgICAgICBjb25zdCBvcHRpb25zID0gewpAQCAtNDksMzAgKzM0LDE4IEBACiAgICAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB1c2VyOiB7CiAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBhc2NpaVRv
VWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGlkOiBuZXcgVWludDhB
cnJheSgxNiksCiAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwK
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1z
OiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfTsKICAgICAgICAgLy8gQSBtb2NrIGF0dGVzdGF0aW9uIG9iamVjdAogICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRp
Y2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oewotICAgICAgICAgICAgICAgIGxvY2FsOiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLAotICAgICAgICAgICAg
ICAgICAgICBhY2NlcHRBdHRlc3RhdGlvbjogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcHJp
dmF0ZUtleUJhc2U2NDogdGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwKLSAgICAgICAgICAgICAg
ICAgICAgdXNlckNlcnRpZmljYXRlQmFzZTY0OiB0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0ZUJh
c2U2NCwKLSAgICAgICAgICAgICAgICAgICAgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2
NDogdGVzdEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0
aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBz
dWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2VzcyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3Jl
YXRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOwogICAgICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdh
aXQgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKTsKIAotICAgICAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsCi0gICAgICAgICAgICBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuc3RvcmUoY3JlZGVudGlhbCkpLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAgICB9KTsKKyAgICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuc3RvcmUoY3JlZGVudGlhbCkpOwogICAgIH0sICJuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuc3RvcmUoKS4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9pZGwuaHR0cHMuaHRtbAppbmRleCBkYjYzZjZjY2M3NWYyODMxODM0YmQyZDcxMTMy
MjNmMjVjNzZjNjNmLi5kYzEyYjcyMjRiMWUwZmQwNjg1Nzk3MDUwYWNjOWVmZmI5ODVjZjYxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9pZGwuaHR0cHMuaHRtbApAQCAtMTks
MTcgKzE5LDYgQEAKIDxkaXYgaWQ9J2xvZyc+PC9kaXY+CiAKIDxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKHsKLSAgICAgICAgbG9jYWw6IHsKLSAgICAgICAgICAgIGFjY2VwdEF1dGhlbnRp
Y2F0aW9uOiB0cnVlLAotICAgICAgICAgICAgYWNjZXB0QXR0ZXN0YXRpb246IHRydWUsCi0gICAg
ICAgICAgICBwcml2YXRlS2V5QmFzZTY0OiB0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LAotICAg
ICAgICAgICAgdXNlckNlcnRpZmljYXRlQmFzZTY0OiB0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0
ZUJhc2U2NCwKLSAgICAgICAgICAgIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjQ6IHRl
c3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0Ci0gICAgICAgIH0KLSAgICB9
KTsKLQogcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICBjb25zdCBpZGxVUkwgPSBbIldl
YkF1dGhOLmlkbCJdOwogICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CkBAIC01
NCw3ICs0Myw3IEBAIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICAg
bmFtZTogImxvY2FsaG9zdCIsCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgdXNlcjogewot
ICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAg
bmFtZTogdGVzdFVzZXJoYW5kbGVCYXNlNjQsCiAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVS
TC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCiAgICAgICAgICAgICAgICAgZGlzcGxheU5h
bWU6ICJBcHBsZXNlZWQiLAogICAgICAgICAgICAgfSwKQEAgLTYyLDIwICs1MSwyMSBAQCBwcm9t
aXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAogICAgICAgICB9CiAgICAgfTsKKyAgICAv
LyBBIG1vY2sgYXR0ZXN0YXRpb24gb2JqZWN0CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24o
eyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nl
c3MiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKICAg
ICBjcmVhdGVkQ3JlZGVudGlhbCA9IGF3YWl0IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
Y3JlYXRpb25PcHRpb25zKTsKIAotCiAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7CiAgICAg
ICAgIHB1YmxpY0tleTogewogICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2Uo
Ik1USXpORFUyIiksCiAgICAgICAgIH0KICAgICB9OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0
aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJz
dWNjZXNzIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0XSB9IH0p
OwogICAgIHJlcXVlc3RlZENyZWRlbnRpYWwgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Z2V0KHJlcXVlc3RPcHRpb25zKTsKIAogICAgIGlkbEFycmF5LmFkZF9vYmplY3RzKHsiUHVibGlj
S2V5Q3JlZGVudGlhbCI6IFsiY3JlYXRlZENyZWRlbnRpYWwiXSwgIkF1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlIjogWyJjcmVhdGVkQ3JlZGVudGlhbC5yZXNwb25zZSJdLCAiQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlIjogWyJyZXF1ZXN0ZWRDcmVkZW50aWFsLnJlc3BvbnNl
Il19KTsKICAgICBpZGxBcnJheS50ZXN0KCk7Ci0KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKIH0sICJTZXR1
cCBmb3IgV2ViQXV0aE4gQVBJIElETCB0ZXN0cy4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLXNpbGVu
dC5odHRwcy5odG1sCmluZGV4IDk2NmM4MjYzMmFlOWI5NjdmOWM0NjEzMGYzNjVmZDNmZGM5MDFm
NmIuLjZhMDBiZWRlNmRkOWJlNzgzMDZhZTdkNDBlNzVmZWQzYmM0Y2FjMmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwt
c2lsZW50Lmh0dHBzLmh0bWwKQEAgLTQsMTQ3ICs0LDE1MiBAQAogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4vcmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICAvLyBEZWZhdWx0IG1vY2sg
Y29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVy
ZW50IGNvbmZpZ3VyYXRpb24uCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0
ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBzaWxlbnRG
YWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogZmFsc2UsIGFjY2Vw
dEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgIChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAg
ICAgY29uc3QgdXNlcmhhbmRsZUJhc2U2NCA9IGdlbmVyYXRlVXNlcmhhbmRsZUJhc2U2NCgpOwor
ICAgICAgICBjb25zdCBwcml2YXRlS2V5QmFzZTY0ID0gYXdhaXQgZ2VuZXJhdGVQcml2YXRlS2V5
QmFzZTY0KCk7CisgICAgICAgIGNvbnN0IGNyZWRlbnRpYWxJRCA9IGF3YWl0IGNhbGN1bGF0ZUNy
ZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KTsKKyAgICAgICAgLy8gRGVmYXVsdCBtb2NrIGNv
bmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVu
dCBjb25maWd1cmF0aW9uLgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBz
aWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogZmFsc2Us
IGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0g
ICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUu
Y29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAg
ICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAg
ICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAg
ICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAt
MzUgfSwgeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTI1NyB9XSwgLy8gRVMzODQsIFJTMjU2
Ci0gICAgICAgICAgICAgICAgdGltZW91dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsK
LSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4i
KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQg
ZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgcHJvbWlz
ZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFt
ZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAg
ICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxn
OiAtMzUgfSwgeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTI1NyB9XSwgLy8gRVMzODQsIFJT
MjU2CisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90
QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9w
ZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNh
dG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25z
ID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAg
ICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9o
biBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRl
c3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJK
b2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNj
aWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJh
bXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICBl
eGNsdWRlQ3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSB9XSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0
OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RF
UzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0g
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIiku
dGhlbigoKSA9PiB7CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAg
ICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5j
b20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhB
cnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICAgICAgZXhj
bHVkZUNyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFy
c2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCisgICAgICAgICAgICAgICAgICAgIHRpbWVv
dXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBL
ZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRo
ZW50aWNhdG9yLiAyIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9L
ZXljaGFpbihwcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7Cisg
ICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0
LiIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQs
IHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiAyIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAg
ICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0g
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAot
ICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWwotICAgICAgICAgICAgICAgICAg
ICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlh
bElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAotICAgICAgICAgICAgICAgICAgICB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElk
QmFzZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5
cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFz
ZTY0KSwgdHJhbnNwb3J0czogWyJibGUiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6
ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0
KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtl
eVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2Vy
aGFuZGxlQmFzZTY0KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0
aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNl
cmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpv
aG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgcHVi
S2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAg
ICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBb
InVzYiJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
aWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAorICAgICAgICAgICAgICAg
ICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9y
dHM6IFsiYmxlIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1r
ZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQorICAgICAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJw
SWQpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMyIp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0
ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFz
ZTY0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGlj
YXRvci4gMyIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRp
b25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsK
LSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAg
ICB0aW1lb3V0OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICByZXR1cm4g
cHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOwotICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiA0Iik7CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxl
c2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RV
c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAi
Sm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAg
ICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVy
cm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0
aW1lZCBvdXQuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiA0Iik7
CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0g
ICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxl
c2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJo
YW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sg
dHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6
IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29u
ZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRp
Y2F0aW9uOiB0cnVlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKLSAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBh
IG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gNSIpOworICAgICAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBB
cHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAor
ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsg
c2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUs
IGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICAgICAgcmV0dXJuIHByb21p
c2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICAgICAgfSwgIlB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIDUiKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAg
ICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAg
ICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0s
Ci0gICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNl
cmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpv
aG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgcHVi
S2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBzaWxl
bnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNj
ZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5h
ZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRs
ZUJhc2U2NCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlv
bk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0
QXV0aGVudGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRl
S2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIiku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRlc3RSdW5uZXIua2V5RXhpc3RzSW5LZXljaGFpbih0ZXN0
UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIDYiKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShv
cHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UodGVzdFJ1bm5lci5rZXlFeGlzdHNJbktleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxl
QmFzZTY0KSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhl
bnRpY2F0b3IuIDYiKTsKKyAgICB9KSgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1
cmUtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sCmluZGV4IDU2
ZmJjM2VjYTQ5MWI0ZjRhZDllY2MyNDkxZTNkMWFjNjY3ZDBmYzEuLmMzYzkzNzI2NDRiMzgxNGNi
NGEzNDVjMzUxOTYxMzg3OGVlZTI0NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sCkBAIC00LDE2NCArNCwxNjkg
QEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci0gICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJp
ZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tD
b25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGNvbnN0IHVzZXJoYW5kbGVCYXNlNjQgPSBnZW5lcmF0ZVVzZXJoYW5kbGVCYXNlNjQoKTsK
KyAgICAgICAgY29uc3QgcHJpdmF0ZUtleUJhc2U2NCA9IGF3YWl0IGdlbmVyYXRlUHJpdmF0ZUtl
eUJhc2U2NCgpOworICAgICAgICBjb25zdCBjcmVkZW50aWFsSUQgPSBhd2FpdCBjYWxjdWxhdGVD
cmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCk7CisgICAgICAgIC8vIERlZmF1bHQgbW9jayBj
b25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJl
bnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsg
bG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjog
ZmFsc2UgfSB9KTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTog
IkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVk
UGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTM1IH0sIHsgdHlwZTogInB1Ymxp
Yy1rZXkiLCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBSUzI1NgotICAgICAgICAgICAgfQotICAg
ICAgICB9OwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdFN1cHBvcnRlZEVy
cm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlRoZSBwbGF0Zm9y
bSBhdHRhY2hlZCBhdXRoZW50aWNhdG9yIGRvZXNuJ3Qgc3VwcG9ydCBhbnkgcHJvdmlkZWQgUHVi
bGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMuIik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2NyZWF0ZV1dIHdpdGggdW5zdXBwb3J0ZWQgcHVibGljIGtleSBjcmVkZW50aWFsIHBh
cmFtZXRlcnMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgIHByb21p
c2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0
VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTM1IH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBS
UzI1NgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdFN1cHBvcnRlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlRoZSBwbGF0Zm9ybSBhdHRhY2hlZCBhdXRoZW50aWNh
dG9yIGRvZXNuJ3Qgc3VwcG9ydCBhbnkgcHJvdmlkZWQgUHVibGljS2V5Q3JlZGVudGlhbFBhcmFt
ZXRlcnMuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3
aXRoIHVuc3VwcG9ydGVkIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBwYXJhbWV0ZXJzIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAg
ICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAg
ICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAg
ICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwK
LSAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSB9XQotICAgICAg
ICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVL
ZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIHJldHVy
biBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShvcHRpb25zKSwgIkF0IGxlYXN0IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4g
ZW50cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFscyBsaXN0IGluIHRoZSBwbGF0Zm9ybSBhdHRh
Y2hlZCBhdXRoZW50aWNhdG9yLiIpLnRoZW4oKCkgPT4geworICAgICAgICBwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9o
biBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh1c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisg
ICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBpZDogY3JlZGVudGlhbElEIH1dCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgIH0pOwotICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhjbHVkZSBj
cmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNlNjQsIHRl
c3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShv
cHRpb25zKSwgIkF0IGxlYXN0IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4gZW50cnkgb2YgdGhl
IGV4Y2x1ZGVDcmVkZW50aWFscyBsaXN0IGluIHRoZSBwbGF0Zm9ybSBhdHRhY2hlZCBhdXRoZW50
aWNhdG9yLiIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVz
dFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhjbHVkZSBjcmVk
ZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1Ymxp
Y0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6
IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAg
ICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0g
ICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtl
eSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbCi0g
ICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBh
cnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRl
c3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RD
cmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQotICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0
ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQp
OwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJBdCBsZWFzdCBvbmUgY3JlZGVu
dGlhbCBtYXRjaGVzIGFuIGVudHJ5IG9mIHRoZSBleGNsdWRlQ3JlZGVudGlhbHMgbGlzdCBpbiB0
aGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0aGVudGljYXRvci4iKS50aGVuKCgpID0+IHsKKyAgICAg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlk
OiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAg
ICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXki
LCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVu
dGlhbElELCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJuZmMi
XSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBj
cmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBb
ImludGVybmFsIl0gfQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAg
IH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1hdGNo
ZWQgZXhjbHVkZSBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMm5k
Iik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVz
ZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4i
LAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRv
VWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczog
W3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCi0gICAgICAgICAgICB9Ci0gICAgICAg
IH07Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIkNvdWxkbid0IGdldCB1c2Vy
IGNvbnNlbnQuIik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGhvdXQgdXNlciBjb25zZW50IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJh
c2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Y3JlYXRlKG9wdGlvbnMpLCAiQXQgbGVhc3Qgb25lIGNyZWRlbnRpYWwgbWF0Y2hlcyBhbiBlbnRy
eSBvZiB0aGUgZXhjbHVkZUNyZWRlbnRpYWxzIGxpc3QgaW4gdGhlIHBsYXRmb3JtIGF0dGFjaGVk
IGF1dGhlbnRpY2F0b3IuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXlj
aGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNs
dWRlIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAybmQiKTsKIAot
ICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAg
ICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVk
IiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRs
ZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFy
cmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBl
OiAicHVibGljLWtleSIsIGFsZzogLTcgfV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVu
dGljYXRpb246IHRydWUsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwotICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiIpOwotICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRob3V0IGF0dGVzdGF0aW9uIGlu
IGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBB
cHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBwcm9t
aXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShvcHRpb25zKSwgIkNvdWxkbid0IGdldCB1c2VyIGNvbnNlbnQuIik7CisgICAgICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRob3V0IHVzZXIgY29uc2VudCBp
biBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewot
ICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxl
LmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAg
ICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAg
ICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTcgfV0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9j
a0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNj
ZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRl
c3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0
VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlv
bnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgcHJv
bWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAg
ICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAg
ICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
YWxnOiAtNyB9XQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRl
c3RSdW5uZXIua2V5RXhpc3RzSW5LZXljaGFpbih0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNl
NjQpKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIGRlbGV0aW5nIG9sZCBjcmVkZW50aWFsIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9y
LiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2Nr
Q29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiVW5rbm93bkVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRp
b25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRob3V0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2Nh
bCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAg
ICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxh
eU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1Yktl
eUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAg
ICAgICAgICB0aW1lb3V0OiAxMCwKLSAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0
aW9uOiB7IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiAiY3Jvc3MtcGxhdGZvcm0iIH0KKyAgICAg
ICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTogdXNlcmhhbmRsZUJhc2U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlk
OiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAg
ICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXki
LCBhbGc6IC03IH1dCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1
dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNl
NjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwg
ZXJyb3IuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVzdFJ1bm5lci5rZXlFeGlz
dHNJbktleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIGRlbGV0aW5n
IG9sZCBjcmVkZW50aWFsIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2Vi
QXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRp
Y2F0aW9uOiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7Ci0gICAgICAgIHJl
dHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlUb1VpbnQ4QXJyYXko
IjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwK
KyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1YktleUNy
ZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAg
ICAgICAgICAgdGltZW91dDogMTAsCisgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb246IHsgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ6ICJjcm9zcy1wbGF0Zm9ybSIgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRp
Y2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjog
ZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICAgICAgcmV0dXJu
IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICAgICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggdGltZW91dCBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICB9KSgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1s
CmluZGV4IGYxNTUwMDhjMjg0YmFkOWZjYjRlYzRmNGY3OTNlZTJkMmZjYzc1OTIuLjYzYTExNDM0
MGIwYjEyODRkNzYxYWI0M2JiMDhkYmE5Y2IxZWNhMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1s
b2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCkBAIC01LDIw
OSArNSwyMTQgQEAKIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9jYm9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0g
ICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUg
aWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKHsKLSAgICAgICAgICAgIGxvY2FsOiB7Ci0gICAgICAgICAgICAgICAgYWNjZXB0
QXV0aGVudGljYXRpb246IHRydWUsCi0gICAgICAgICAgICAgICAgYWNjZXB0QXR0ZXN0YXRpb246
IHRydWUsCi0gICAgICAgICAgICAgICAgcHJpdmF0ZUtleUJhc2U2NDogdGVzdEVTMjU2UHJpdmF0
ZUtleUJhc2U2NCwKLSAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGVCYXNlNjQ6IHRlc3RB
dHRlc3RhdGlvbkNlcnRpZmljYXRlQmFzZTY0LAotICAgICAgICAgICAgICAgIGludGVybWVkaWF0
ZUNBQ2VydGlmaWNhdGVCYXNlNjQ6IHRlc3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRl
QmFzZTY0CisgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCB1c2VyaGFuZGxl
QmFzZTY0ID0gZ2VuZXJhdGVVc2VyaGFuZGxlQmFzZTY0KCk7CisgICAgICAgIGNvbnN0IHByaXZh
dGVLZXlCYXNlNjQgPSBhd2FpdCBnZW5lcmF0ZVByaXZhdGVLZXlCYXNlNjQoKTsKKyAgICAgICAg
Y29uc3QgY3JlZGVudGlhbElEID0gYXdhaXQgY2FsY3VsYXRlQ3JlZGVudGlhbElEKHByaXZhdGVL
ZXlCYXNlNjQpOworICAgICAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMg
bmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7CisgICAgICAgICAgICAgICAgbG9j
YWw6IHsKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsCisg
ICAgICAgICAgICAgICAgICAgIGFjY2VwdEF0dGVzdGF0aW9uOiB0cnVlLAorICAgICAgICAgICAg
ICAgICAgICBwcml2YXRlS2V5QmFzZTY0OiBwcml2YXRlS2V5QmFzZTY0LAorICAgICAgICAgICAg
ICAgICAgICB1c2VyQ2VydGlmaWNhdGVCYXNlNjQ6IHRlc3RBdHRlc3RhdGlvbkNlcnRpZmljYXRl
QmFzZTY0LAorICAgICAgICAgICAgICAgICAgICBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFz
ZTY0OiB0ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NAorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0
KGNyZWRlbnRpYWwsIGlzTm9uZUF0dGVzdGF0aW9uID0gdHJ1ZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgLy8gQ2hlY2sga2V5Y2hhaW4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHRlc3RSdW5uZXIua2V5RXhpc3RzSW5L
ZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCkpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVk
ZW50aWFsLCBpc05vbmVBdHRlc3RhdGlvbiA9IHRydWUpCi0gICAgewotICAgICAgICAvLyBDaGVj
ayBrZXljaGFpbgotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
IGFzc2VydF90cnVlKHRlc3RSdW5uZXIua2V5RXhpc3RzSW5LZXljaGFpbih0ZXN0UnBJZCwgdGVz
dFVzZXJoYW5kbGVCYXNlNjQpKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNo
YWluKHRlc3RScElkKTsKLSAgICAgICAgfQogCi0gICAgICAgIC8vIENoZWNrIHJlc3BvbmQKLSAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhCYXNlNjRVUkwucGFyc2UoY3JlZGVudGlhbC5pZCks
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSk7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3JlZGVudGlhbC50eXBlLCAncHVibGljLWtleScpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwu
cGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5
dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3si
dHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoi
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7Ci0gICAgICAgIGFzc2VydF9ub3RfZXhpc3RzKGNy
ZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpLCAiYXBwaWQiKTsKLQotICAgICAg
ICAvLyBDaGVjayBhdHRlc3RhdGlvbgotICAgICAgICBjb25zdCBhdHRlc3RhdGlvbk9iamVjdCA9
IENCT1IuZGVjb2RlKGNyZWRlbnRpYWwucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpOwotICAg
ICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24pCi0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0
dGVzdGF0aW9uT2JqZWN0LmZtdCwgIm5vbmUiKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJBcHBsZSIpOwotICAgICAgICAv
LyBDaGVjayBhdXRoRGF0YQotICAgICAgICBjb25zdCBhdXRoRGF0YSA9IGRlY29kZUF1dGhEYXRh
KGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRl
c1RvSGV4U3RyaW5nKGF1dGhEYXRhLnJwSWRIYXNoKSwgIjQ5OTYwZGU1ODgwZThjNjg3NDM0MTcw
ZjY0NzY2MDViOGZlNGFlYjlhMjg2MzJjNzk5NWNmM2JhODMxZDk3NjMiKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhhdXRoRGF0YS5mbGFncywgNjkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGF1
dGhEYXRhLmNvdW50ZXIsIDApOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJp
bmcoYXV0aERhdGEuYWFndWlkKSwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7
Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXV0aERhdGEuY3JlZGVudGlhbElELCBCYXNl
NjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwotICAgICAgICAvLyBDaGVjayBz
ZWxmIGF0dGVzdGF0aW9uCi0gICAgICAgIGFzc2VydF90cnVlKGNoZWNrUHVibGljS2V5KGF1dGhE
YXRhLnB1YmxpY0tleSkpOwotICAgICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24pCi0gICAgICAg
ICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10LCB7IH0p
OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25P
YmplY3QuYXR0U3RtdC5hbGcsIC03KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0
YXRpb25PYmplY3QuYXR0U3RtdC54NWMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC54NWNbMF0sIEJhc2U2NFVSTC5w
YXJzZSh0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0ZUJhc2U2NCkpOwotICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Y1sxXSwgQmFzZTY0
VVJMLnBhcnNlKHRlc3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0KSk7Ci0K
LSAgICAgICAgICAgIC8vIENoZWNrIHNpZ25hdHVyZQotICAgICAgICAgICAgbGV0IHB1YmxpY0tl
eURhdGEgPSBuZXcgVWludDhBcnJheSg2NSk7Ci0gICAgICAgICAgICBwdWJsaWNLZXlEYXRhWzBd
ID0gMHgwNDsKLSAgICAgICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1dGhEYXRhLnB1YmxpY0tl
eVsnLTInXSwgMSk7Ci0gICAgICAgICAgICBwdWJsaWNLZXlEYXRhLnNldChhdXRoRGF0YS5wdWJs
aWNLZXlbJy0zJ10sIDMzKTsKLSAgICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgcHVibGljS2V5RGF0YSwgewotICAgICAgICAgICAgICAgIG5hbWU6ICJFQ0RT
QSIsCi0gICAgICAgICAgICAgICAgbmFtZWRDdXJ2ZTogIlAtMjU2IgotICAgICAgICAgICAgfSwg
ZmFsc2UsIFsndmVyaWZ5J10pLnRoZW4ocHVibGljS2V5ID0+IHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS52ZXJpZnkoeworICAgICAgICAgICAgLy8gQ2hlY2sgcmVzcG9u
ZAorICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhCYXNlNjRVUkwucGFyc2UoY3JlZGVu
dGlhbC5pZCksIGNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRl
bnRpYWwudHlwZSwgJ3B1YmxpYy1rZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJZCksIGNyZWRlbnRpYWxJRCk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3Bv
bnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmNyZWF0ZSIsImNoYWxsZW5n
ZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7CisgICAg
ICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJl
c3VsdHMoKSwgImFwcGlkIik7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGF0dGVzdGF0aW9uCisg
ICAgICAgICAgICBjb25zdCBhdHRlc3RhdGlvbk9iamVjdCA9IENCT1IuZGVjb2RlKGNyZWRlbnRp
YWwucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpOworICAgICAgICAgICAgaWYgKGlzTm9uZUF0
dGVzdGF0aW9uKQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmpl
Y3QuZm10LCAibm9uZSIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuZm10LCAiQXBwbGUiKTsKKyAgICAgICAgICAgIC8v
IENoZWNrIGF1dGhEYXRhCisgICAgICAgICAgICBjb25zdCBhdXRoRGF0YSA9IGRlY29kZUF1dGhE
YXRhKGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4
NzQzNDE3MGY2NDc2NjA1YjhmZTRhZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCA2OSk7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGF1dGhEYXRhLmNvdW50ZXIsIDApOworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhieXRlc1RvSGV4U3RyaW5nKGF1dGhEYXRhLmFhZ3VpZCksICIwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMCIpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdXRo
RGF0YS5jcmVkZW50aWFsSUQsIGNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICAvLyBDaGVjayBz
ZWxmIGF0dGVzdGF0aW9uCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjaGVja1B1YmxpY0tleShh
dXRoRGF0YS5wdWJsaWNLZXkpKTsKKyAgICAgICAgICAgIGlmIChpc05vbmVBdHRlc3RhdGlvbikK
KyAgICAgICAgICAgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5h
dHRTdG10LCB7IH0pOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10LmFsZywgLTcpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC54NWMubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0
LmF0dFN0bXQueDVjWzBdLCBCYXNlNjRVUkwucGFyc2UodGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNh
dGVCYXNlNjQpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF0dGVzdGF0
aW9uT2JqZWN0LmF0dFN0bXQueDVjWzFdLCBCYXNlNjRVUkwucGFyc2UodGVzdEF0dGVzdGF0aW9u
SXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQpKTsKKworICAgICAgICAgICAgICAgIC8vIENoZWNr
IHNpZ25hdHVyZQorICAgICAgICAgICAgICAgIGxldCBwdWJsaWNLZXlEYXRhID0gbmV3IFVpbnQ4
QXJyYXkoNjUpOworICAgICAgICAgICAgICAgIHB1YmxpY0tleURhdGFbMF0gPSAweDA0OworICAg
ICAgICAgICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1dGhEYXRhLnB1YmxpY0tleVsnLTInXSwg
MSk7CisgICAgICAgICAgICAgICAgcHVibGljS2V5RGF0YS5zZXQoYXV0aERhdGEucHVibGljS2V5
WyctMyddLCAzMyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCBwdWJsaWNLZXlEYXRhLCB7CiAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJF
Q0RTQSIsCi0gICAgICAgICAgICAgICAgICAgIGhhc2g6ICJTSEEtMjU2IgotICAgICAgICAgICAg
ICAgIH0sIHB1YmxpY0tleSwgZXh0cmFjdFJhd1NpZ25hdHVyZShhdHRlc3RhdGlvbk9iamVjdC5h
dHRTdG10LnNpZyksIGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKS50aGVuKHZlcmlmaWVkID0+
IHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOworICAgICAgICAg
ICAgICAgICAgICBuYW1lZEN1cnZlOiAiUC0yNTYiCisgICAgICAgICAgICAgICAgfSwgZmFsc2Us
IFsndmVyaWZ5J10pLnRoZW4ocHVibGljS2V5ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJFQ0RTQSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoYXNoOiAiU0hBLTI1NiIKKyAgICAg
ICAgICAgICAgICAgICAgfSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0dXJlKGF0dGVzdGF0
aW9uT2JqZWN0LmF0dFN0bXQuc2lnKSwgYXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpLnRoZW4o
dmVyaWZpZWQgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUodmVyaWZp
ZWQpOworICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAg
ICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIs
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKLSAgICAg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTcgfV0sCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKLSAg
ICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOwotICAgICAgICB9KTsKLSAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4g
YSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7
Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAg
ICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0
IiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAg
ICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAg
aWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAg
ICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAotICAg
ICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxn
OiAtNyB9XSwKLSAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IGF1dGhl
bnRpY2F0b3JBdHRhY2htZW50OiAicGxhdGZvcm0iIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLQotICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25z
KS50aGVuKGNyZWRlbnRpYWwgPT4gewotICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlh
bCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24geyAncGxhdGZvcm0nIH0gaW4gYSBtb2NrIGxv
Y2FsIGF1dGhlbnRpY2F0b3IuIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAg
IGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAg
ICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAg
ICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBk
aXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAg
ICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWwotICAgICAgICAgICAgICAgICAgICB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElk
QmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5
cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFz
ZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6
ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0
KSwgdHJhbnNwb3J0czogWyJibGUiXSB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
fQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNl
NjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0KLSAgICAgICAgcmV0dXJuIG5h
dmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsK
LSAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOwotICAgICAgICB9KTsKLSAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYXRjaGVkIGV4Y2x1ZGUg
Y3JlZGVudGlhbCBpZHMgYnV0IG5vdCB0cmFuc3BvcnRzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50
aWNhdG9yLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRp
b25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsK
LSAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCi0gICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJK
b2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTog
IkFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVu
Z2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlD
cmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAg
ICAgICAgYXR0ZXN0YXRpb246ICJub25lIgogICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0g
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4o
Y3JlZGVudGlhbCA9PiB7Ci0gICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKLSAg
ICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
bm9uZSBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKLQotICAg
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAg
ICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAg
ICAgIG5hbWU6ICJsb2NhbGhvc3QiLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAot
ICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFz
ZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFy
c2UoIk1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlw
ZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9u
OiAiaW5kaXJlY3QiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+
IHsKLSAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGZhbHNlKTsKLSAgICAgICAg
fSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggaW5kaXJl
Y3QgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Ci0KLSAgICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAibG9jYWxob3N0IiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
IHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2
NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKLSAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6
ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjog
ImRpcmVjdCIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgfQogCi0gICAgICAg
IHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVu
dGlhbCA9PiB7Ci0gICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBmYWxzZSk7Ci0g
ICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IGRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAg
ICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOiB1c2VyaGFuZGxlQmFzZTY0LAorICAgICAgICAgICAgICAgICAgICAgICAg
aWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUy
IiksCisgICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJs
aWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Owor
CisgICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25z
KS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRl
bnRpYWwpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tjcmVhdGVdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVu
dGljYXRvci4iKTsKKworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9z
dCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVzZXJoYW5kbGVCYXNlNjQsCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVS
TC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgICAg
ICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOiB7IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiAicGxh
dGZvcm0iIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRl
bnRpYWwgPT4geworICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVd
XSB3aXRoIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24geyAncGxhdGZvcm0nIH0gaW4gYSBtb2NrIGxv
Y2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAg
ICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsK
KyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
ICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcmhhbmRsZUJhc2U2
NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRs
ZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFz
Y2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgcHViS2V5Q3Jl
ZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAg
ICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsg
dHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbInVzYiJd
IH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNy
ZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsi
YmxlIl0gfQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlC
YXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKworICAgICAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+
IHsKKyAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBt
YXRjaGVkIGV4Y2x1ZGUgY3JlZGVudGlhbCBpZHMgYnV0IG5vdCB0cmFuc3BvcnRzIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcmhhbmRsZUJh
c2U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNlcmhh
bmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxl
c2VlZCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgICAgICBw
dWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAg
ICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uOiAibm9uZSIKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9OworCisgICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgICAgIGNo
ZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG5vbmUgYXR0ZXN0YXRpb24gaW4gYSBt
b2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB1c2VyaGFuZGxl
QmFzZTY0LAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2Vy
aGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgICAg
IHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAg
ICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246ICJpbmRpcmVjdCIKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAg
ICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGZhbHNlKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBpbmRpcmVjdCBh
dHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKworICAgICAgICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6IHVzZXJoYW5kbGVCYXNlNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFz
ZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAg
ICAgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXki
LCBhbGc6IC03IH1dLAorICAgICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjogImRpcmVjdCIK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4g
eworICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGZhbHNlKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCBkaXJlY3QgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7
CisgICAgfSkoKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCmluZGV4IDA1MDdkNDU2
MzFkZTY5YWMxY2Q2OGVjMjk2MzRlNzdlOTI0MjlkOGQuLjg0M2JhODZmMWY5YTdjZGI5NGFiYmE2
YzY3NDNjMDJlOWMzM2RmNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKQEAgLTQsNTkgKzQsNjQg
QEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci0gICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJp
ZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tD
b25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVu
dGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAoYXN5
bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IHVzZXJoYW5kbGVCYXNlNjQgPSBnZW5lcmF0
ZVVzZXJoYW5kbGVCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgcHJpdmF0ZUtleUJhc2U2NCA9IGF3
YWl0IGdlbmVyYXRlUHJpdmF0ZUtleUJhc2U2NCgpOworICAgICAgICBjb25zdCBjcmVkZW50aWFs
SUQgPSBhd2FpdCBjYWxjdWxhdGVDcmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCk7CisgICAg
ICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRl
IGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlv
bk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0
QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UsIHByZWZlcnJl
ZFVzZXJoYW5kbGVCYXNlNjQ6IHVzZXJoYW5kbGVCYXNlNjQgfSB9KTsKIAotICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1Ymxp
Y0tleTogewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpLAotICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKLSAgICAgICAgICAg
ICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENy
ZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRl
bnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKLSAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRp
YWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwKLSAgICAgICAgICAgICAgICAgICAg
eyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJ
ZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9Ci0gICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9Owor
ICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAg
YWxsb3dDcmVkZW50aWFsczogWworICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVi
bGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElE
LCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6
ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJibGUiXSB9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50
aWFsSUQsIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9CisgICAgICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfTsKIAotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93
ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24g
dGltZWQgb3V0LiIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRo
IHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAg
ICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1
cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6
IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KSwKLSAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCi0gICAgICAgICAgICAgICAg
ICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFu
ZGxlQmFzZTY0KSB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0
OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWworICAg
ICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwu
cGFyc2UodXNlcmhhbmRsZUJhc2U2NCkgfQorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH07CiAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0
UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVj
dHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9u
cyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5j
bGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAgICAgICAgfSk7Ci0gICAgfSwgIlB1Ymxp
Y0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxv
Y2FsIGF1dGhlbnRpY2F0b3IuIDIiKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZh
dGVLZXlCYXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJl
dHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFu
ZGxlQmFzZTY0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNy
ZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIDIiKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29u
c3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAg
IGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAg
IHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0
RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwot
ICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKLSAgICAgICAgfSk7
Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZhaWx1
cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDMiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElk
LCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0
LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwg
Ik9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFu
VXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggc2lsZW50IGZh
aWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDMiKTsKKyAgICB9KSgpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2Nh
bC5odHRwcy5odG1sCmluZGV4IDI5YmI3ZjRiNGNlODg0ZjI2ODlhMDZkNjg4NmNkZTAxOTUzZDhm
YTkuLmVhMGUyYTQ2YmYwNTFhMGZlNzhhYWYyNDBjZjcyOGM3YTdmNDQyZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
ZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sCkBA
IC00LDcyICs0LDc3IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBu
ZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVu
dGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9u
OiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgKGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICBjb25zdCB1c2VyaGFuZGxlQmFzZTY0ID0gZ2VuZXJhdGVVc2VyaGFu
ZGxlQmFzZTY0KCk7CisgICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSBhd2FpdCBnZW5l
cmF0ZVByaXZhdGVLZXlCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgY3JlZGVudGlhbElEID0gYXdh
aXQgY2FsY3VsYXRlQ3JlZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpOworICAgICAgICAvLyBE
ZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBpZiB0aGV5
IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29u
ZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0
QXR0ZXN0YXRpb246IGZhbHNlLCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0OiB1c2VyaGFuZGxl
QmFzZTY0IH0gfSk7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBhbGxv
d0NyZWRlbnRpYWxzOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXki
LCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRz
OiBbInVzYiJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBb
Im5mYyJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImJs
ZSJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVy
bmFsIl0gfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAg
ICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsK
KyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGFs
bG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1Ymxp
Yy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCisgICAgICAg
ICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwg
dHJhbnNwb3J0czogWyJuZmMiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAi
cHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlh
bElELCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQorICAgICAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAgICAgICByZXR1cm4gcHJvbWlz
ZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQo
b3B0aW9ucyksICJObyBtYXRjaGVkIGNyZWRlbnRpYWxzIGFyZSBmb3VuZCBpbiB0aGUgcGxhdGZv
cm0gYXR0YWNoZWQgYXV0aGVudGljYXRvci4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBh
dXRoZW50aWNhdG9yLiIpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJO
b3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8g
bWF0Y2hlZCBjcmVkZW50aWFscyBhcmUgZm91bmQgaW4gdGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1
dGhlbnRpY2F0b3IuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRd
XSB3aXRoIG5vIG1hdGNoZWQgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0
b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBhbGxvd0NyZWRl
bnRpYWxzOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSB9Ci0gICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIx
MjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWworICAgICAg
ICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFy
c2UodXNlcmhhbmRsZUJhc2U2NCkgfQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlBy
aXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAg
IHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5vIG1hdGNoZWQgY3JlZGVudGlhbHMgYXJlIGZvdW5k
IGluIHRoZSBwbGF0Zm9ybSBhdHRhY2hlZCBhdXRoZW50aWNhdG9yLiIpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHVz
ZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJO
b3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiTm8g
bWF0Y2hlZCBjcmVkZW50aWFscyBhcmUgZm91bmQgaW4gdGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1
dGhlbnRpY2F0b3IuIikudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFp
bih0ZXN0UnBJZCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNo
YWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKICAgICAgICAgICAgIH0pOwotICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG5vIG1hdGNoZWQgY3JlZGVudGlh
bHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDJuZCIpOworICAgICAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGlu
IGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAybmQiKTsKIAotICAgIHByb21pc2VfdGVzdCh0
ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTog
ewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIp
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5
OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEy
MzQ1NiIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tl
eWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRs
ZUJhc2U2NCk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVy
cm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIkNvdWxkbid0IGdldCB1
c2VyIGNvbnNlbnQuIikudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJw
SWQpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aG91dCB1c2VyIGNvbnNlbnQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5
QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4g
cHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5nZXQob3B0aW9ucyksICJDb3VsZG4ndCBnZXQgdXNlciBjb25zZW50LiIpLnRoZW4oKCkgPT4g
eworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNl
NjQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRv
ci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVu
dGlhbHM6IFsKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsidXNi
Il0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNl
NjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsibmZjIl0g
fSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0gfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgdGltZW91dDogMTAKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAg
ICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisg
ICAgICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRz
OiBbInVzYiJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5
IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5z
cG9ydHM6IFsiYmxlIl0gfQorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0
b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAg
ICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB0aW1lb3V0IGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlv
bnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRv
ci4iKTsKKyAgICB9KSgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCmluZGV4IDczYWVjY2Y1YWM4OGRlZTM2
YWRjY2E1ODEwNTU1MzIzYWNiOGIxYmQuLmYyMjg4ZWYxODVjMThkY2UwMDg3NTBiYmFkZjk5NWQz
NGI4NDE4ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vz
cy1sb2NhbC5odHRwcy5odG1sCkBAIC00LDcwICs0LDc1IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIC8vIERlZmF1bHQgbW9jayBj
b25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJl
bnQgY29uZmlndXJhdGlvbi4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRl
c3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7
IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9
KTsKLQotICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpCi0gICAgeworICAgIChh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3QgdXNlcmhhbmRsZUJhc2U2NCA9IGdlbmVy
YXRlVXNlcmhhbmRsZUJhc2U2NCgpOworICAgICAgICBjb25zdCBwcml2YXRlS2V5QmFzZTY0ID0g
YXdhaXQgZ2VuZXJhdGVQcml2YXRlS2V5QmFzZTY0KCk7CisgICAgICAgIGNvbnN0IGNyZWRlbnRp
YWxJRCA9IGF3YWl0IGNhbGN1bGF0ZUNyZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KTsKKyAg
ICAgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJp
ZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgogICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0
ZXN0UnBJZCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9j
a0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNj
ZXB0QXR0ZXN0YXRpb246IGZhbHNlLCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0OiB1c2VyaGFu
ZGxlQmFzZTY0IH0gfSk7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoY3JlZGVudGlh
bCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxl
QmFzZTY0KTsKIAotICAgICAgICAgLy8gQ2hlY2sgcmVzcG9uZAotICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFsLmlkKSwgQmFzZTY0VVJMLnBhcnNl
KHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50
aWFsLnR5cGUsICdwdWJsaWMta2V5Jyk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3
IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yYXdJZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVu
dGlhbElkQmFzZTY0KSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0FTQ0lJU3RyaW5n
KGNyZWRlbnRpYWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLCAneyJ0eXBlIjoid2ViYXV0aG4u
Z2V0IiwiY2hhbGxlbmdlIjoiTVRJek5EVTIiLCJvcmlnaW4iOiJodHRwczovL2xvY2FsaG9zdDo5
NDQzIn0nKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGNyZWRlbnRp
YWwucmVzcG9uc2UudXNlckhhbmRsZSksICIwMDAxMDIwMzA0MDUwNjA3MDgwOSIpOwotICAgICAg
ICBhc3NlcnRfbm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMo
KSwgImFwcGlkIik7CisgICAgICAgICAgICAgLy8gQ2hlY2sgcmVzcG9uZAorICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhCYXNlNjRVUkwucGFyc2UoY3JlZGVudGlhbC5pZCksIGNyZWRl
bnRpYWxJRCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwgJ3B1
YmxpYy1rZXknKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJy
YXkoY3JlZGVudGlhbC5yYXdJZCksIGNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFK
U09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3Jp
Z2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7CisgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmVzcG9uc2UudXNlckhhbmRsZSks
IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSk7CisgICAgICAgICAgICBhc3NlcnRf
bm90X2V4aXN0cyhjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwgImFwcGlk
Iik7CiAKLSAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKLSAgICAgICAgY29uc3QgYXV0aERhdGEg
PSBkZWNvZGVBdXRoRGF0YShuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNlLmF1dGhl
bnRpY2F0b3JEYXRhKSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhh
dXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2NDc2NjA1YjhmZTRh
ZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYXV0
aERhdGEuZmxhZ3MsIDUpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGF1dGhEYXRhLmNvdW50ZXIs
IDApOworICAgICAgICAgICAgLy8gQ2hlY2sgYXV0aERhdGEKKyAgICAgICAgICAgIGNvbnN0IGF1
dGhEYXRhID0gZGVjb2RlQXV0aERhdGEobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25z
ZS5hdXRoZW50aWNhdG9yRGF0YSkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1Rv
SGV4U3RyaW5nKGF1dGhEYXRhLnJwSWRIYXNoKSwgIjQ5OTYwZGU1ODgwZThjNjg3NDM0MTcwZjY0
NzY2MDViOGZlNGFlYjlhMjg2MzJjNzk5NWNmM2JhODMxZDk3NjMiKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDUpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhhdXRoRGF0YS5jb3VudGVyLCAwKTsKIAotICAgICAgICAvLyBDaGVjayBzaWduYXR1cmUKLSAg
ICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBCYXNlNjRVUkwucGFy
c2UodGVzdEVTMjU2UHVibGljS2V5QmFzZTY0KSwgeyBuYW1lOiAiRUNEU0EiLCBuYW1lZEN1cnZl
OiAiUC0yNTYiIH0sIGZhbHNlLCBbJ3ZlcmlmeSddKS50aGVuKCBwdWJsaWNLZXkgPT4gewotICAg
ICAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJzaGEtMjU2IiwgY3JlZGVudGlh
bC5yZXNwb25zZS5jbGllbnREYXRhSlNPTikudGhlbiAoIGhhc2ggPT4gewotICAgICAgICAgICAg
ICAgIC8vIGNyZWRlbnRpYWwucmVzcG9uc2Uuc2lnbmF0dXJlIGlzIGluIEFTTi4xIGFuZCBXZWJD
cnlwdG8gZXhwZWN0IHNpZ25hdHVyZXMgcHJvdmlkZXMgaW4gcnxzLgotICAgICAgICAgICAgICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTogIkVDRFNBIiwgaGFzaDogIlNIQS0y
NTYifSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0dXJlKGNyZWRlbnRpYWwucmVzcG9uc2Uu
c2lnbmF0dXJlKSwgY29uY2F0ZW5hdGVCdWZmZXJzKGNyZWRlbnRpYWwucmVzcG9uc2UuYXV0aGVu
dGljYXRvckRhdGEsIGhhc2gpKS50aGVuKCB2ZXJpZmllZCA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydF90cnVlKHZlcmlmaWVkKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X25v
dF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBpZCIp
OworICAgICAgICAgICAgLy8gQ2hlY2sgc2lnbmF0dXJlCisgICAgICAgICAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIEJhc2U2NFVSTC5wYXJzZShwcml2YXRlS2V5QmFz
ZTY0KS5zbGljZSgwLCA2NSksIHsgbmFtZTogIkVDRFNBIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9
LCBmYWxzZSwgWyd2ZXJpZnknXSkudGhlbiggcHVibGljS2V5ID0+IHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoInNoYS0yNTYiLCBjcmVkZW50aWFsLnJlc3Bv
bnNlLmNsaWVudERhdGFKU09OKS50aGVuICggaGFzaCA9PiB7CisgICAgICAgICAgICAgICAgICAg
IC8vIGNyZWRlbnRpYWwucmVzcG9uc2Uuc2lnbmF0dXJlIGlzIGluIEFTTi4xIGFuZCBXZWJDcnlw
dG8gZXhwZWN0IHNpZ25hdHVyZXMgcHJvdmlkZXMgaW4gcnxzLgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS52ZXJpZnkoe25hbWU6ICJFQ0RTQSIsIGhhc2g6ICJTSEEt
MjU2In0sIHB1YmxpY0tleSwgZXh0cmFjdFJhd1NpZ25hdHVyZShjcmVkZW50aWFsLnJlc3BvbnNl
LnNpZ25hdHVyZSksIGNvbmNhdGVuYXRlQnVmZmVycyhjcmVkZW50aWFsLnJlc3BvbnNlLmF1dGhl
bnRpY2F0b3JEYXRhLCBoYXNoKSkudGhlbiggdmVyaWZpZWQgPT4geworICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCks
ICJhcHBpZCIpOworICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9CisgICAgICAgIH0KIAotICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAg
IHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAg
ICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJM
LnBhcnNlKCJNVEl6TkRVMiIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAot
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFk
ZFRlc3RLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0
ZXN0VXNlcmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7Ci0gICAgICAgICAgICByZXR1cm4g
Y2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlC
YXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1p
bmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAg
IHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKLSAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdFVzZXJoYW5kbGVCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdENyZWRlbnRpYWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9Ci0gICAg
ICAgICAgICAgICAgXQotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
ICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVS
TC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFs
czogWworICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBC
YXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwi
XSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBj
cmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9CisgICAgICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0gICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5
Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxl
QmFzZTY0KTsKLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9u
cykudGhlbihjcmVkZW50aWFsID0+IHsKLSAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3VsdChj
cmVkZW50aWFsKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggbWF0Y2hlZCBhbGxvdyBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0
aGVudGljYXRvci4iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNl
NjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1hdGNo
ZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Cisg
ICAgfSkoKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9y
ZXNvdXJjZXMvdXRpbC5qcwppbmRleCAxYjkxM2I0ZGFkYjBkZDBhY2JiZjlmYjVjYWUwODMzNzA1
NzI4OTdkLi5hMDZjMTlhM2NjNDYzMGY2Yjk5OTlmMDNhODJlYWNlZWU1Y2VmOTMzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMyw5
ICszLDYgQEAgY29uc3QgdGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCA9CiAgICAgIkJEai96eFNr
ektnYUJ1UzNjZFdERjU1OG9mOEFhSXBnRnBzakYvUW0xNzQ5VkJKUGdxVUl3ZmhXSEo5MW5iN1Ui
ICsKICAgICAiUEg3NmMwK1dGT3paS3NsUHl5RnNlNGdvR0lXMlI3azlWSExQRVpsNW5mbkJnRVZG
aDV6ZXYrL3hwSFFJdnVxNiIgKwogICAgICJSUT09IjsKLWNvbnN0IHRlc3RFUzI1NlB1YmxpY0tl
eUJhc2U2NCA9Ci0gICAgIkJEai96eFNrektnYUJ1UzNjZFdERjU1OG9mOEFhSXBnRnBzakYvUW0x
NzQ5VkJKUGdxVUl3ZmhXSEo5MW5iN1UiICsKLSAgICAiUEg3NmMwK1dGT3paS3NsUHl5RnNlNGc9
IjsKIGNvbnN0IHRlc3RScElkID0gImxvY2FsaG9zdCI7CiBjb25zdCB0ZXN0VXNlcmhhbmRsZUJh
c2U2NCA9ICJBQUVDQXdRRkJnY0lDUT09IjsKIGNvbnN0IHRlc3RBdHRlc3RhdGlvbkNlcnRpZmlj
YXRlQmFzZTY0ID0KQEAgLTQzNiwzICs0MzMsNDMgQEAgZnVuY3Rpb24gY2hlY2tVMmZHZXRBc3Nl
cnRpb25SZXN1bHQoY3JlZGVudGlhbCwgaXNBcHBJRCA9IGZhbHNlLCBhcHBJREhhc2ggPSAiYzIK
ICAgICBhc3NlcnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCAxKTsKICAgICBhc3NlcnRfZXF1YWxz
KGF1dGhEYXRhLmNvdW50ZXIsIDU5KTsKIH0KKworZnVuY3Rpb24gZ2VuZXJhdGVVc2VyaGFuZGxl
QmFzZTY0KCkKK3sKKyAgICBsZXQgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoMTYpOworICAgIGNy
eXB0by5nZXRSYW5kb21WYWx1ZXMoYnVmZmVyKTsKKyAgICByZXR1cm4gYnRvYShTdHJpbmcuZnJv
bUNoYXJDb2RlLmFwcGx5KDAsIGJ1ZmZlcikpOworfQorCithc3luYyBmdW5jdGlvbiBnZW5lcmF0
ZVByaXZhdGVLZXlCYXNlNjQoKQoreworICAgIGNvbnN0IGFsZ29yaXRobUtleUdlbiA9IHsKKyAg
ICAgICAgbmFtZTogIkVDRFNBIiwKKyAgICAgICAgbmFtZWRDdXJ2ZTogIlAtMjU2IgorICAgIH07
CisgICAgY29uc3QgZXh0cmFjdGFibGUgPSB0cnVlOworCisgICAgY29uc3Qga2V5UGFpciA9IGF3
YWl0IGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3JpdGhtS2V5R2VuLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKKyAgICBjb25zdCBqd2tQcml2YXRlS2V5ID0gYXdhaXQg
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleVBhaXIucHJpdmF0ZUtleSk7CisKKyAg
ICBjb25zdCB4ID0gQmFzZTY0VVJMLnBhcnNlKGp3a1ByaXZhdGVLZXkueCk7CisgICAgY29uc3Qg
eSA9IEJhc2U2NFVSTC5wYXJzZShqd2tQcml2YXRlS2V5LnkpOworICAgIGNvbnN0IGQgPSBCYXNl
NjRVUkwucGFyc2UoandrUHJpdmF0ZUtleS5kKTsKKworICAgIGxldCBidWZmZXIgPSBuZXcgVWlu
dDhBcnJheSh4Lmxlbmd0aCArIHkubGVuZ3RoICsgZC5sZW5ndGggKyAxKTsKKyAgICBidWZmZXJb
MF0gPSAweDA0OworICAgIGxldCBwb3MgPSAxOworICAgIGJ1ZmZlci5zZXQoeCwgcG9zKTsKKyAg
ICBwb3MgKz0geC5sZW5ndGg7CisgICAgYnVmZmVyLnNldCh5LCBwb3MpOworICAgIHBvcyArPSB5
Lmxlbmd0aDsKKyAgICBidWZmZXIuc2V0KGQsIHBvcyk7CisKKyAgICByZXR1cm4gYnRvYShTdHJp
bmcuZnJvbUNoYXJDb2RlLmFwcGx5KDAsIGJ1ZmZlcikpOworfQorCithc3luYyBmdW5jdGlvbiBj
YWxjdWxhdGVDcmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCkgeworICAgIGNvbnN0IHByaXZh
dGVLZXkgPSBCYXNlNjRVUkwucGFyc2UocHJpdmF0ZUtleUJhc2U2NCk7CisgICAgY29uc3QgcHVi
bGljS2V5ID0gcHJpdmF0ZUtleS5zbGljZSgwLCA2NSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFy
cmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJzaGEtMSIsIHB1YmxpY0tleSkpOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYw
YTcyZDlmNzliOTgyODE2Y2IzZGI0NmQ4NDQ4OWUzNzM2NWY4YmUuLmU4ZWE5NjljMmY2NTFlYmJh
MmQ5OTMyM2QzMDhiMDcyNjg5NTFiNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkwMyw4ICs5MDMsNiBAQCBodHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBb
IFNraXAgXQogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLWxvY2FsLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbCBbIFNraXAg
XQogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxv
Y2FsLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2NyZWRlbnRpYWwtbWFuYWdlbWVudC9j
cmVkZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3MuaHR0cHMuaHRtbCBbIFNraXAgXQotaHR0
cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAogIyBORkMgc3VwcG9ydCBy
ZXF1aXJlIENhdGFsaW5hKywgdGhlcmVmb3JlIHNraXAgdGhlbSBmb3IgSGlnaFNpZXJyYSBhbmQg
TW9qYXZlLgogWyBIaWdoU2llcnJhIE1vamF2ZSBdIGh0dHAvd3B0L3dlYmF1dGhuL2N0YXAtbmZj
LWZhaWx1cmUuaHR0cHMuaHRtbCBbIFNraXAgXQo=
</data>
<flag name="review"
          id="394580"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379289</attachid>
            <date>2019-09-20 17:18:19 -0700</date>
            <delta_ts>2019-09-20 18:25:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201844-20190920171819.patch</filename>
            <type>text/plain</type>
            <size>105822</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyODIxMjExM2JhZDgzOTZl
M2M2MjdiMGUyODQ0MTc2N2ZlZDdhZjMuLmFjNTE3NDUzZDQzMWI0ZDczNWI0YjA2M2E2ZjI1YTQ4
NzM0YmNkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMDktMTYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIExvY2FsQXV0
aGVudGljYXRvciB0ZXN0cyBhcmUgZmFpbGluZyBvbiBpbnRlcm5hbCBib3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NDQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU0Mjc4NjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdo
YW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgd2F5IGZvciBtb2NrIHRlc3RzIHRvIHNl
bGVjdCBhIGNyZWRlbnRpYWwgaW4gZ2V0QXNzZXJ0aW9uCisgICAgICAgIGNlcmVtb25pZXMgc3Vj
aCB0aGF0IGEgdGVzdCBjYW4gZW5zdXJlIGl0IGFsd2F5cyB1c2VzIHRoZSBjcmVkZW50aWFsIGl0
IG1hbmFnZXMuCisgICAgICAgIENyZWRlbnRpYWxzIG1hbmFnZWQgYnkgb3RoZXIgdGVzdCBjb3Vs
ZCBiZSBkZWxldGVkIGF0IGFueXRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFdl
YkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChX
ZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5tbToK
KyAgICAgICAgKFdlYktpdDo6TG9jYWxDb25uZWN0aW9uOjpzZWxlY3RDcmVkZW50aWFsIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxD
b25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6TW9ja0xvY2FsQ29ubmVj
dGlvbjo6c2VsZWN0Q3JlZGVudGlhbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oOgor
CiAyMDE5LTA5LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
SGFuZ3Mgb24gU3dpc3MuY29tIGR1ZSB0byB0aGUgd2ViIHByb2Nlc3MgYmVpbmcgYmxvY2tlZCBv
biBTdG9yYWdlQXJlYU1hcDo6TG9hZFZhbHVlc0lmTmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCAx
ODdlODFhMzg2Y2NiNTc5NjMwNzg1MTZjMDk0YTEzYjIxMmRmODI1Li5kNDFjNGRiNTFmZGVhMWM3
Y2UwNTFjMmEzZThiNjNjNDdjMWJkYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTYzNCw2ICs2MzQs
OCBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZp
Z3VyYXRpb24oV0tXZWJzaXRlRGF0YVN0b3JlUgogICAgICAgICAgICAgbG9jYWwudXNlckNlcnRp
ZmljYXRlQmFzZTY0ID0gV2ViS2l0Ojp0b0ltcGwoc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobG9jYWxSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlVzZXJDZXJ0aWZpY2F0ZUJhc2U2NCIpKS5nZXQoKSkpKS0+c3RyaW5n
KCk7CiAgICAgICAgICAgICBsb2NhbC5pbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0ID0g
V2ViS2l0Ojp0b0ltcGwoc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobG9jYWxSZWYsIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IkludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNlNjQiKSkuZ2V0KCkpKSktPnN0cmluZygpOwog
ICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRSZWYg
PSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShsb2Nh
bFJlZiwgYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUHJlZmVycmVkVXNl
cmhhbmRsZUJhc2U2NCIpKS5nZXQoKSkpKQorICAgICAgICAgICAgbG9jYWwucHJlZmVycmVkVXNl
cmhhbmRsZUJhc2U2NCA9IFdlYktpdDo6dG9JbXBsKHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRS
ZWYpLT5zdHJpbmcoKTsKICAgICAgICAgY29uZmlndXJhdGlvbi5sb2NhbCA9IFdURk1vdmUobG9j
YWwpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmlu
ZGV4IDRlOTAyNGQ5ZTdlODg2ZjJhNzUzNTk3NzI3NzlhNjcxNDc0N2IzYWYuLjFkYmJmOGM3MTE3
YjE5OGU2ZTc0ZDFhMDllMDFmYTVkOWE2MzFhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0KQEAgLTM5Nyw4ICszOTcsNyBAQCB2b2lkIExvY2FsQXV0aGVudGlj
YXRvcjo6Z2V0QXNzZXJ0aW9uKCkKICAgICB9CiAKICAgICAvLyBTdGVwIDYuCi0gICAgLy8gRklY
TUUocmRhcjovL3Byb2JsZW0vMzU5MDA1MzQpOiBXZSBkb24ndCBoYXZlIGFuIFVJIHRvIHByb21w
dCB1c2VycyBmb3Igc2VsZWN0aW5nIGludGVyc2VjdGVkQ3JlZGVudGlhbHMsIGFuZCB0aGVyZWZv
cmUgd2UgYWx3YXlzIHVzZSB0aGUgZmlyc3Qgb25lIGZvciBub3cuCi0gICAgTlNEaWN0aW9uYXJ5
ICpzZWxlY3RlZENyZWRlbnRpYWxBdHRyaWJ1dGVzID0gaW50ZXJzZWN0ZWRDcmVkZW50aWFsc0F0
dHJpYnV0ZXNbMF07CisgICAgYXV0byAqc2VsZWN0ZWRDcmVkZW50aWFsQXR0cmlidXRlcyA9IG1f
Y29ubmVjdGlvbi0+c2VsZWN0Q3JlZGVudGlhbChpbnRlcnNlY3RlZENyZWRlbnRpYWxzQXR0cmli
dXRlcyk7CiAKICAgICAvLyBTdGVwIDcuIEdldCB1c2VyIGNvbnNlbnQuCiAgICAgLy8gRklYTUUo
cmRhcjovL3Byb2JsZW0vMzU5MDA1OTMpOiBVcGRhdGUgdG8gYSBmb3JtYWwgVUkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oCmluZGV4IGNkYTJmNzNmZGJiNmM0YTNiM2U5MmZkOTRh
YTg0MDI5YTVkNjE2OTMuLmNkNzg1YzJjZGRjNGYxMTBkY2U2OGUzZGJkZGRmYjUyODczYzEzMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQ29ubmVjdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0VXNlckNvbnNlbnQoY29uc3QgU3RyaW5nJiByZWFz
b24sIFVzZXJDb25zZW50Q2FsbGJhY2smJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGdldFVz
ZXJDb25zZW50KGNvbnN0IFN0cmluZyYgcmVhc29uLCBTZWNBY2Nlc3NDb250cm9sUmVmLCBVc2Vy
Q29uc2VudENvbnRleHRDYWxsYmFjayYmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QXR0
ZXN0YXRpb24oY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIEF0dGVzdGF0aW9uQ2FsbGJhY2smJikgY29uc3Q7Cisg
ICAgdmlydHVhbCBOU0RpY3Rpb25hcnkgKnNlbGVjdENyZWRlbnRpYWwoY29uc3QgTlNBcnJheSAq
KSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxDb25uZWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxDb25uZWN0aW9uLm1tCmluZGV4IDVjMmM5YTM3Y2M0NzE1NDdmNDE1ZGI2OTc1YjFiMTNlZTc5
YTZjM2EuLjkwYTVmN2IzYmIxMWY0MGY5NTU1ODgyYzBiOGJmMmExMGEyZTkzOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2Fs
Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbENvbm5lY3Rpb24ubW0KQEAgLTExMCw2ICsxMTAsMTIgQEAgdm9pZCBM
b2NhbENvbm5lY3Rpb246OmdldEF0dGVzdGF0aW9uKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3Qg
U3RyaW5nJiB1c2VybmFtZSwKICNlbmRpZiAvLyBIQVZFKERFVklDRV9JREVOVElUWSkKIH0KIAor
TlNEaWN0aW9uYXJ5ICpMb2NhbENvbm5lY3Rpb246OnNlbGVjdENyZWRlbnRpYWwoY29uc3QgTlNB
cnJheSAqY3JlZGVudGlhbHMpIGNvbnN0Cit7CisgICAgLy8gRklYTUUocmRhcjovL3Byb2JsZW0v
MzU5MDA1MzQpOiBXZSBkb24ndCBoYXZlIGFuIFVJIHRvIHByb21wdCB1c2VycyBmb3Igc2VsZWN0
aW5nIGludGVyc2VjdGVkQ3JlZGVudGlhbHMsIGFuZCB0aGVyZWZvcmUgd2UgYWx3YXlzIHVzZSB0
aGUgZmlyc3Qgb25lIGZvciBub3cuCisgICAgcmV0dXJuIGNyZWRlbnRpYWxzWzBdOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01v
Y2tMb2NhbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCmluZGV4IDBkOTk3ODZlMmIwNzFmMmIz
NDBmMzU3ZDVkYTBlYzQ1YTllMDAzOWEuLjMxYWQ3MWEzMTI3YmFhYTQ2NmM3MjlkYTViZjRkMWQ1
MmI0ZTFhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5oCkBAIC00
MCw2ICs0MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRVc2VyQ29uc2VudChjb25zdCBTdHJp
bmcmIHJlYXNvbiwgVXNlckNvbnNlbnRDYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGdldFVzZXJDb25zZW50KGNvbnN0IFN0cmluZyYgcmVhc29uLCBTZWNBY2Nlc3NDb250cm9sUmVm
LCBVc2VyQ29uc2VudENvbnRleHRDYWxsYmFjayYmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGdl
dEF0dGVzdGF0aW9uKGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0
IGZpbmFsOworICAgIE5TRGljdGlvbmFyeSAqc2VsZWN0Q3JlZGVudGlhbChjb25zdCBOU0FycmF5
ICopIGNvbnN0IGZpbmFsOwogCiAgICAgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
biBtX2NvbmZpZ3VyYXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0
aW9uLm1tCmluZGV4IDg2ZTA3OTBkMTY4MDEyMWVlN2UxZmY3YmE2OTc2NjUxNGFkZjViOTkuLjU3
MWVjY2E3ZTRmNDcwZmM2OWI0MWNkZDI2MDM5Y2I5MjcxZDRhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KQEAgLTEwOCw2ICsxMDgsMTcgQEAgdm9pZCBNb2Nr
TG9jYWxDb25uZWN0aW9uOjpnZXRBdHRlc3RhdGlvbihjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0
IFN0cmluZyYgdXNlcm4KICAgICB9KTsKIH0KIAorTlNEaWN0aW9uYXJ5ICpNb2NrTG9jYWxDb25u
ZWN0aW9uOjpzZWxlY3RDcmVkZW50aWFsKGNvbnN0IE5TQXJyYXkgKmNyZWRlbnRpYWxzKSBjb25z
dAoreworICAgIGF1dG8gcHJlZmVycmVkVXNlcmhhbmRsZSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzptX2NvbmZpZ3VyYXRpb24ubG9jYWwtPnBy
ZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjQgb3B0aW9uczowXSk7CisgICAgZm9yIChOU0RpY3Rpb25h
cnkgKmNyZWRlbnRpYWwgOiBjcmVkZW50aWFscykgeworICAgICAgICBpZiAoW2NyZWRlbnRpYWxb
KGlkKWtTZWNBdHRyQXBwbGljYXRpb25UYWddIGlzRXF1YWxUb0RhdGE6cHJlZmVycmVkVXNlcmhh
bmRsZS5nZXQoKV0pCisgICAgICAgICAgICByZXR1cm4gY3JlZGVudGlhbDsKKyAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG5pbDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAppbmRl
eCBmNDBhN2I3YmQ4YmUxYjdkMGIzNDI4NWJkNjY2Yzg3ZDBkY2Q3OTY5Li45MTNlODVjMThlM2Fj
NmE3ZTk1ZTdkNDYzYjAzOWE2NTliOWU5NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaApAQCAtMzgsNiArMzgs
NyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiB7CiAgICAgICAg
IFN0cmluZyBwcml2YXRlS2V5QmFzZTY0OwogICAgICAgICBTdHJpbmcgdXNlckNlcnRpZmljYXRl
QmFzZTY0OwogICAgICAgICBTdHJpbmcgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NDsK
KyAgICAgICAgU3RyaW5nIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjQ7CiAgICAgfTsKIAogICAg
IHN0cnVjdCBIaWQgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDA0ZDg1ZDAwODEyMTQ5YjRjODkyMDk5ZWE5Nzg3M2U0NjExZjU0ZDYuLjVkYWNk
NmI5YTZkYWUwYzI0MjcxZmU2ZDI1YzYyZGRiZGE5MDEwOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxOS0wOS0x
NiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
bl0gTG9jYWxBdXRoZW50aWNhdG9yIHRlc3RzIGFyZSBmYWlsaW5nIG9uIGludGVybmFsIGJvdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTg0NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyNzg2OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBMb2NhbEF1dGhlbnRpY2F0b3IgdGVzdHMgdXRpbGl6
ZSBLZXljaGFpbiBmb3IgbW9jayB0ZXN0aW5nLiBVbmxpa2UgaU9TIHNpbXVsYXRvciB0ZXN0cyB3
aGljaAorICAgICAgICBlYWNoIHRlc3QgcnVubmVyIGlzIHJ1bm5pbmcgaW4gZGlmZmVyZW50IHNp
bXVsYXRvciBjb250YWluZXJzLCBhbGwgdGVzdCBydW5uZXJzIGFyZSBydW5uaW5nCisgICAgICAg
IGluIHRoZSBzYW1lIG1hY09TIGNvbnRhaW5lciBpbiBtYWNPUy4gVGhlcmVmb3JlLCBLZXljaGFp
biBpcyBzaGFyZWQgYW1vbmcgYWxsIHRlc3QgcnVubmVycworICAgICAgICBpbiBtYWNPUyB3aGls
ZSBpdCBpcyBub3QgaW4gaU9TIHNpbXVsYXRvcnMuIEFuZCB0aGVyZWZvcmUsIHJhY2UgY29uZGl0
aW9ucyB3b3VsZCBoYXBwZW4gaW4KKyAgICAgICAgbWFjT1Mgd2hpY2ggbWFrZSB0aGUgY3VycmVu
dCB0ZXN0cyBmbGFreSBnaXZlbiB0aGV5IGRvbid0IGNvbnNpZGVyIHJhY2UgY29uZGl0aW9ucy4K
KworICAgICAgICBUaGlzIHBhdGNoIHRoZW4gbWFrZXMgZWFjaCB0ZXN0IGdlbmVyYXRlIGEgcmFu
ZG9tIGNyZWRlbnRpYWwsIGFuZCB0aHVzIG5vIG90aGVyIHRlc3RzIHdvdWxkCisgICAgICAgIGJl
IGFibGUgdG8gYWNjZXNzIGl0LCBhbmQgdGhlcmVmb3JlIGVsaW1pbmF0ZSBhbnkgcmFjZSBjb25k
aXRpb24uIFRvIHN1cHBvcnQgdGhpcywgYSBmZXcgbmV3CisgICAgICAgIGZ1bmN0aW9uYWxpdGll
cyBhcmUgaW50cm9kdWNlZCB0byB0aGUgbW9jayB0ZXN0IGluZnJhc3RydWN0dXJlIGFzIHdlbGw6
CisgICAgICAgIDEpIFRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluIGFjY2VwdHMgYSBuZXcgcGFy
YW1ldGVyIHRvIG1vcmUgcHJlY2lzZWx5IGlkZW50aWZ5IGFuIGl0ZW0uCisgICAgICAgIDIpIFdl
YkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24uTG9jYWwgaGFzIGEgbmV3IG1lbWJlciB0
byB1bmlxdWVseSBzZWxlY3QgYSBjcmVkZW50aWFsCisgICAgICAgIGZvciBnZXRBc3NlcnRpb24g
Y2VyZW1vbnkgd2hlbiBtdWx0aXBsZSBwcmVzZW50cy4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbik6
CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNsZWFuVXBLZXljaGFpbik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpjbGVhblVwS2V5Y2hhaW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNsZWFuVXBLZXljaGFpbik6CisKIDIwMTktMDktMTAgIEtlaXRoIFJvbGxpbiAgPGty
b2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBTU0wtYmFzZWQgVExTRGVwcmVjYXRp
b24ubW0gY29udGVudHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDQyZDM2NjAyZDI1
Y2I5OWUyYjhlYTY5MGEyMTI0NGYxYjMwNWEyNDYuLjc0Yjk4MmMwYjA3YTQ0MDI4YzEyOWNkNTBh
Y2RmYzliZmYyZmM5YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzk1LDcgKzM5
NSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICAvLyBXZWJBdXRoTgogICAgIHZvaWQg
c2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbihvYmplY3QgY29uZmlndXJhdGlv
bik7CiAgICAgdm9pZCBhZGRUZXN0S2V5VG9LZXljaGFpbihET01TdHJpbmcgcHJpdmF0ZUtleUJh
c2U2NCwgRE9NU3RyaW5nIGF0dHJMYWJlbCwgRE9NU3RyaW5nIGFwcGxpY2F0aW9uVGFnQmFzZTY0
KTsKLSAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihET01TdHJpbmcgYXR0ckxhYmVsKTsKKyAgICB2
b2lkIGNsZWFuVXBLZXljaGFpbihET01TdHJpbmcgYXR0ckxhYmVsLCBvcHRpb25hbCBET01TdHJp
bmcgYXBwbGljYXRpb25UYWdCYXNlNjQpOwogICAgIGJvb2xlYW4ga2V5RXhpc3RzSW5LZXljaGFp
bihET01TdHJpbmcgYXR0ckxhYmVsLCBET01TdHJpbmcgYXBwbGljYXRpb25UYWdCYXNlNjQpOwog
CiAgICAgLy8gQWQgQ2xpY2sgQXR0cmlidXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDA3Y2FjNjBlMTY3Y2M1
NDg2YjczMDAwOGZkYjEyNWU3YjVhMzZmZTAuLjQzZGFlOTcxMGVhM2U5Yzk5NGI5NjUzODAzNTQ3
MjcwOGJhODVmYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjU4NSw3ICsyNTg1LDcgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKEpTVmFsdWVSZWYgY29u
ZmlndXJhdGlvblYKICAgICAgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBpbnRlcm1l
ZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0UHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NCIpKTsKICAg
ICAgICAgICAgIEpTVmFsdWVSZWYgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJhc2U2NFZhbHVl
ID0gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBsb2NhbCwgaW50ZXJtZWRpYXRlQ0FDZXJ0
aWZpY2F0ZUJhc2U2NFByb3BlcnR5TmFtZS5nZXQoKSwgMCk7CiAgICAgICAgICAgICBpZiAoIUpT
VmFsdWVJc1N0cmluZyhjb250ZXh0LCBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0VmFs
dWUpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgbG9jYWxLZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJQcml2YXRlS2V5QmFzZTY0IikpKTsKICAgICAgICAgICAgIGxvY2FsVmFsdWVzLmFw
cGVuZCh0b1dLKGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgcHJpdmF0ZUtleUJh
c2U2NFZhbHVlLCAwKSkuZ2V0KCkpKTsKQEAgLTI1OTUsNiArMjU5NSwxNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oSlNWYWx1ZVJlZiBj
b25maWd1cmF0aW9uVgogICAgICAgICAgICAgbG9jYWxWYWx1ZXMuYXBwZW5kKHRvV0soYWRvcHQo
SlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFz
ZTY0VmFsdWUsIDApKS5nZXQoKSkpOwogICAgICAgICB9CiAKKyAgICAgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRQcm9wZXJ0eU5hbWUoQWRvcHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0
IikpOworICAgICAgICBKU1ZhbHVlUmVmIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRWYWx1ZSA9
IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgbG9jYWwsIHByZWZlcnJlZFVzZXJoYW5kbGVC
YXNlNjRQcm9wZXJ0eU5hbWUuZ2V0KCksIDApOworICAgICAgICBpZiAoIUpTVmFsdWVJc1VuZGVm
aW5lZChjb250ZXh0LCBwcmVmZXJyZWRVc2VyaGFuZGxlQmFzZTY0VmFsdWUpICYmICFKU1ZhbHVl
SXNOdWxsKGNvbnRleHQsIHByZWZlcnJlZFVzZXJoYW5kbGVCYXNlNjRWYWx1ZSkpIHsKKyAgICAg
ICAgICAgIGlmICghSlNWYWx1ZUlzU3RyaW5nKGNvbnRleHQsIHByZWZlcnJlZFVzZXJoYW5kbGVC
YXNlNjRWYWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBsb2Nh
bEtleXMuYXBwZW5kKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlByZWZl
cnJlZFVzZXJoYW5kbGVCYXNlNjQiKSkpOworICAgICAgICAgICAgbG9jYWxWYWx1ZXMuYXBwZW5k
KHRvV0soYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBwcmVmZXJyZWRVc2VyaGFu
ZGxlQmFzZTY0VmFsdWUsIDApKS5nZXQoKSkpOworICAgICAgICB9CisKICAgICAgICAgVmVjdG9y
PFdLU3RyaW5nUmVmPiByYXdMb2NhbEtleXM7CiAgICAgICAgIFZlY3RvcjxXS1R5cGVSZWY+IHJh
d0xvY2FsVmFsdWVzOwogICAgICAgICByYXdMb2NhbEtleXMucmVzaXplKGxvY2FsS2V5cy5zaXpl
KCkpOwpAQCAtMjgzNywxMCArMjg0NywzMSBAQCB2b2lkIFRlc3RSdW5uZXI6OmFkZFRlc3RLZXlU
b0tleWNoYWluKEpTU3RyaW5nUmVmIHByaXZhdGVLZXlCYXNlNjQsIEpTU3RyaW5nUmVmCiAgICAg
V0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRy
KTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0
ckxhYmVsKQordm9pZCBUZXN0UnVubmVyOjpjbGVhblVwS2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0
ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jhc2U2NCkKIHsKKyAgICBWZWN0b3I8
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+PiBrZXlzOworICAgIFZlY3RvcjxXS1JldGFpblB0cjxX
S1R5cGVSZWY+PiB2YWx1ZXM7CisKKyAgICBrZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJBdHRyTGFiZWwiKSkpOworICAgIHZhbHVlcy5hcHBlbmQodG9X
SyhhdHRyTGFiZWwpKTsKKworICAgIGlmIChhcHBsaWNhdGlvblRhZ0Jhc2U2NCkgeworICAgICAg
ICBrZXlzLmFwcGVuZChhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBcHBs
aWNhdGlvblRhZyIpKSk7CisgICAgICAgIHZhbHVlcy5hcHBlbmQodG9XSyhhcHBsaWNhdGlvblRh
Z0Jhc2U2NCkpOworICAgIH0KKworICAgIFZlY3RvcjxXS1N0cmluZ1JlZj4gcmF3S2V5czsKKyAg
ICBWZWN0b3I8V0tUeXBlUmVmPiByYXdWYWx1ZXM7CisgICAgcmF3S2V5cy5yZXNpemUoa2V5cy5z
aXplKCkpOworICAgIHJhd1ZhbHVlcy5yZXNpemUodmFsdWVzLnNpemUoKSk7CisKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcmF3S2V5c1tp
XSA9IGtleXNbaV0uZ2V0KCk7CisgICAgICAgIHJhd1ZhbHVlc1tpXSA9IHZhbHVlc1tpXS5nZXQo
KTsKKyAgICB9CisKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDbGVhblVwS2V5Y2hhaW4iKSk7
Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhhdHRyTGFiZWwpKTsKKyAgICBXS1JldGFpblB0cjxXS0Rp
Y3Rpb25hcnlSZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVhdGUocmF3
S2V5cy5kYXRhKCksIHJhd1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7CiAKICAgICBX
S0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIp
OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAppbmRleCAwOWFmM2JkZjI2MzJiZjhmNmQ1MzVlNzYzYmE2OWMwY2M0NzcyNjBmLi4w
ZDgwNzBmMmE3NWVhMzBiYWFjYTRjYWUxMGNiNDBlMGZjNTM4ODFjIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDg5LDcg
KzQ4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZp
Z3VyYXRpb24oSlNWYWx1ZVJlZik7CiAgICAgLy8gRklYTUUoMTg5ODc2KQogICAgIHZvaWQgYWRk
VGVzdEtleVRvS2V5Y2hhaW4oSlNTdHJpbmdSZWYgcHJpdmF0ZUtleUJhc2U2NCwgSlNTdHJpbmdS
ZWYgYXR0ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jhc2U2NCk7Ci0gICAgdm9p
ZCBjbGVhblVwS2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0ckxhYmVsKTsKKyAgICB2b2lkIGNsZWFu
VXBLZXljaGFpbihKU1N0cmluZ1JlZiBhdHRyTGFiZWwsIEpTU3RyaW5nUmVmIGFwcGxpY2F0aW9u
VGFnQmFzZTY0KTsKICAgICBib29sIGtleUV4aXN0c0luS2V5Y2hhaW4oSlNTdHJpbmdSZWYgYXR0
ckxhYmVsLCBKU1N0cmluZ1JlZiBhcHBsaWNhdGlvblRhZ0Jhc2U2NCk7CiAKICAgICB2b2lkIHNl
dENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgY2FuSGFuZGxlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNWM2Njg0NjllZWZk
ZjYwNDg1NzYwZGYwMjdkNzQzOTczOGM2NmZkOS4uMDcwZTc0MjczM2JmNDgyMDFiOTAwZWRkMjM2
MmI2MDQ3MTc1NjlkZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTM1NTEsNyArMzU1MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmFkZFRlc3RLZXlU
b0tleWNoYWluKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0CiB7CiB9CiAK
LXZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFuVXBLZXljaGFpbihjb25zdCBTdHJpbmcmKQordm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y2xlYW5VcEtleWNoYWluKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRl
eCA4MzdlNGFiMmNiMGU2NjE3MWNkZWY0MGJkYjE0ODZjNmUwYmQ3MTQ4Li5hZjVlNTk5NTYyZDc2
YmU4N2FjNTcyYzQ0YmM0Mjc5M2U3ZWUyNTQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRX
ZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKFdLRGljdGlvbmFyeVJlZik7CiAgICAg
dm9pZCBhZGRUZXN0S2V5VG9LZXljaGFpbihjb25zdCBTdHJpbmcmIHByaXZhdGVLZXlCYXNlNjQs
IGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uVGFnQmFz
ZTY0KTsKLSAgICB2b2lkIGNsZWFuVXBLZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCk7
CisgICAgdm9pZCBjbGVhblVwS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFiZWwsIGNvbnN0
IFN0cmluZyYgYXBwbGljYXRpb25UYWdCYXNlNjQpOwogICAgIGJvb2wga2V5RXhpc3RzSW5LZXlj
aGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblRh
Z0Jhc2U2NCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2RiODA1
YzA3YTk5Mi4uZmQyNTIwMGQ0MDJmMGNmZDMyMmNiZWJhMThmMDViMDlmNGZjZDFmZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE1ODYsOCArMTU4Niwx
NiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYW5VcEtleWNoYWluIikpIHsKLSAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJ
RCgpKTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNsZWFuVXBLZXljaGFp
bih0b1dURlN0cmluZyhzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpKSk7Cisg
ICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0
VHlwZUlEKCkpOworICAgICAgICBXS0RpY3Rpb25hcnlSZWYgdGVzdERpY3Rpb25hcnkgPSBzdGF0
aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKworICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gYXR0ckxhYmVsS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiQXR0ckxhYmVsIikpOworICAgICAgICBXS1N0cmluZ1JlZiBhdHRyTGFi
ZWxXSyA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KHRlc3REaWN0aW9uYXJ5LCBhdHRyTGFiZWxLZXkuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gYXBwbGljYXRpb25UYWdLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJBcHBsaWNhdGlvblRhZyIpKTsKKyAgICAgICAgV0tTdHJpbmdS
ZWYgYXBwbGljYXRpb25UYWdXSyA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KHRlc3REaWN0aW9uYXJ5LCBhcHBsaWNhdGlvblRhZ0tleS5nZXQoKSkp
OworCisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhblVwS2V5Y2hhaW4o
dG9XVEZTdHJpbmcoYXR0ckxhYmVsV0spLCBhcHBsaWNhdGlvblRhZ1dLID8gdG9XVEZTdHJpbmco
YXBwbGljYXRpb25UYWdXSykgOiBTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCmluZGV4IDg4NjNiZGJiNmQ1NDAwODI2YTY5ZTA3MmU5Yzk3NGQ4YjFjNzky
MzguLmU0YmMwNDA0ZjA1OTg2NDg3ODAxNTY4NTdjNDY5M2JjMWU1YmMzNzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAg
LTM2MywxOCArMzYzLDIwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmFkZFRlc3RLZXlUb0tleWNo
YWluKGNvbnN0IFN0cmluZyYgcHJpdmF0ZUtleUJhc2U2NCwgY29uc3QKICAgICBBU1NFUlRfVU5V
U0VEKHN0YXR1cywgIXN0YXR1cyk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFuVXBL
ZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNs
ZWFuVXBLZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvblRhZ0Jhc2U2NCkKIHsKLSAgICBOU0RpY3Rpb25hcnkqIGRlbGV0ZVF1ZXJ5ID0gQHsK
LSAgICAgICAgKGlkKWtTZWNDbGFzczogKGlkKWtTZWNDbGFzc0tleSwKLSAgICAgICAgKGlkKWtT
ZWNBdHRyTGFiZWw6IGF0dHJMYWJlbCwKKyAgICBhdXRvIGRlbGV0ZVF1ZXJ5ID0gYWRvcHROUyhb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZXRlUXVlcnkgc2V0
T2JqZWN0OihpZClrU2VjQ2xhc3NLZXkgZm9yS2V5OihpZClrU2VjQ2xhc3NdOworICAgIFtkZWxl
dGVRdWVyeSBzZXRPYmplY3Q6YXR0ckxhYmVsIGZvcktleTooaWQpa1NlY0F0dHJMYWJlbF07CiAj
aWYgSEFWRShEQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4pCi0gICAgICAgIChpZClrU2VjVXNlRGF0
YVByb3RlY3Rpb25LZXljaGFpbjogQFlFUworICAgIFtkZWxldGVRdWVyeSBzZXRPYmplY3Q6QFlF
UyBmb3JLZXk6KGlkKWtTZWNVc2VEYXRhUHJvdGVjdGlvbktleWNoYWluXTsKICNlbHNlCi0gICAg
ICAgIChpZClrU2VjQXR0ck5vTGVnYWN5OiBAWUVTCisgICAgW2RlbGV0ZVF1ZXJ5IHNldE9iamVj
dDpAWUVTIGZvcktleTooaWQpa1NlY0F0dHJOb0xlZ2FjeV07CiAjZW5kaWYKLSAgICB9OwotICAg
IFNlY0l0ZW1EZWxldGUoKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilkZWxldGVRdWVyeSk7Cisg
ICAgaWYgKCEhYXBwbGljYXRpb25UYWdCYXNlNjQpCisgICAgICAgIFtkZWxldGVRdWVyeSBzZXRP
YmplY3Q6YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5n
OmFwcGxpY2F0aW9uVGFnQmFzZTY0IG9wdGlvbnM6TlNEYXRhQmFzZTY0RGVjb2RpbmdJZ25vcmVV
bmtub3duQ2hhcmFjdGVyc10pLmdldCgpIGZvcktleTooaWQpa1NlY0F0dHJBcHBsaWNhdGlvblRh
Z107CisKKyAgICBTZWNJdGVtRGVsZXRlKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpZGVsZXRl
UXVlcnkuZ2V0KCkpOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjprZXlFeGlzdHNJbktleWNo
YWluKGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uVGFn
QmFzZTY0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGU5NzcwZTYyMDg1OTM4NTVhNTgzYzQ1YjMzZGI3NzgzMzE0MTNhY2Iu
LjM2MzFmZWEwOTJmZGJhMWU4Nzg1NjlkMzVkNjkxNzZkZWNlZGRkNzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNiBAQAorMjAxOS0wOS0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWJBdXRobl0gTG9jYWxBdXRoZW50aWNhdG9yIHRlc3RzIGFyZSBmYWlsaW5n
IG9uIGludGVybmFsIGJvdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTg0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyNzg2OTM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIGVhY2ggdGVzdCB0byBnZW5lcmF0ZSB0aGVpciBvd24gY3JlZGVudGlhbHMgdG8gYXZvaWQg
cmFjZSBjb25kaXRpb25zIGluIEtleWNoYWluCisgICAgICAgIGFjY2Vzc2VzIHdoZW4gbXVsdGlw
bGUgdGVzdCBydW5uZXJzIHByZXNlbnQuCisKKyAgICAgICAgKiBodHRwL3dwdC9jcmVkZW50aWFs
LW1hbmFnZW1lbnQvY3JlZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0dHBzLmh0bWw6
CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWw6CisgICAgICAgIFRo
ZXNlIHR3byB0ZXN0cyBhcmUgY2hhbmdlZCB0byB1c2UgaGlkIGF1dGhlbnRpY2F0b3IgaW5zdGVh
ZCBvZiBsb2NhbCB0byBhdm9pZCBhbnkgZnV0dXJlIEtleWNoYWluIGlzc3Vlcy4KKyAgICAgICAg
KiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUt
bG9jYWwtc2lsZW50Lmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWw6CisgICAg
ICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNj
ZXNzLWxvY2FsLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sOgorICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS1sb2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0
dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0wOS0xMCAgSmlld2VuIFRhbiAgPGppZXdl
bl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFsgQ2F0YWxpbmEgV0syIF0g
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUy
Zi5odHRwcy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2NyZWRlbnRpYWwtbWFuYWdlbWVudC9jcmVkZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3Mu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2NyZWRlbnRpYWwtbWFuYWdlbWVudC9j
cmVkZW50aWFsc2NvbnRhaW5lci1zdG9yZS1iYXNpY3MuaHR0cHMuaHRtbAppbmRleCAxMGQ4MzU2
YmY3ZTZiODYyMGZlNzU0YmUyYzU0OWE1ODZiNTE0ZmU4Li5iYzAyMTE5MmUwMGNhMWZjNzExNmU1
MjAwZWRhMzRhZjA5ZWQwZTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jcmVk
ZW50aWFsLW1hbmFnZW1lbnQvY3JlZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3JlZGVudGlhbC1tYW5hZ2VtZW50L2Ny
ZWRlbnRpYWxzY29udGFpbmVyLXN0b3JlLWJhc2ljcy5odHRwcy5odG1sCkBAIC0zLDQzICszLDI4
IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotICAgIGNvbnN0IHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQgPQotICAgICAgICAi
QkRqL3p4U2t6S2dhQnVTM2NkV0RGNTU4b2Y4QWFJcGdGcHNqRi9RbTE3NDlWQkpQZ3FVSXdmaFdI
SjkxbmI3VSIgKwotICAgICAgICAiUEg3NmMwK1dGT3paS3NsUHl5RnNlNGdvR0lXMlI3azlWSExQ
RVpsNW5mbkJnRVZGaDV6ZXYrL3hwSFFJdnVxNiIgKwotICAgICAgICAiUlE9PSI7Ci0gICAgY29u
c3QgdGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNhdGVCYXNlNjQgPQotICAgICAgICAiTUlJQjZqQ0NB
WkNnQXdJQkFnSUdBV0hBeGNqdk1Bb0dDQ3FHU000OUJBTUNNRk14SnpBbEJnTlZCQU1NSGtKaCIg
KwotICAgICAgICAiYzJsaklFRjBkR1Z6ZEdGMGFXOXVJRlZ6WlhJZ1UzVmlJRU5CTVRFVE1CRUdB
MVVFQ2d3S1FYQndiR1VnU1c1aiIgKwotICAgICAgICAiTGpFVE1CRUdBMVVFQ0F3S1EyRnNhV1p2
Y201cFlUQWVGdzB4T0RBeU1qTXdNek0zTWpKYUZ3MHhPREF5TWpRdyIgKwotICAgICAgICAiTXpR
M01qSmFNR294SWpBZ0JnTlZCQU1NR1RBd01EQTRNREV3TFRBd01FRTBPVUV5TXpCQk1ESXhNMEV4
R2pBWSIgKwotICAgICAgICAiQmdOVkJBc01FVUpCUVNCRFpYSjBhV1pwWTJGMGFXOXVNUk13RVFZ
RFZRUUtEQXBCY0hCc1pTQkpibU11TVJNdyIgKwotICAgICAgICAiRVFZRFZRUUlEQXBEWVd4cFpt
OXlibWxoTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFdkNqZSIgKwotICAgICAg
ICAiUHpyNlNnNzZYTW9IdUdhYlBhRzZ6anBMRkw4WmQ4Lzc0SGg1UGNMMlpxK28rZjdFTlhYKzdu
RVhYWXQwUzhVeCIgKwotICAgICAgICAiNVRJUnc0aGdiZnhYUWJXTEVxTTVNRGN3REFZRFZSMFRB
UUgvQkFJd0FEQU9CZ05WSFE4QkFmOEVCQU1DQlBBdyIgKwotICAgICAgICAiRndZSktvWklodmRq
WkFnQ0JBb3dDS0VHQkFSMFpYTjBNQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJQWxLOEE4SSIgKwot
ICAgICAgICAiazQzVGJ2S3VZR0haczFEVGdwVHdtS1RCdklVdzVid2dadVluQWlFQXR1SmpETEti
R05KQUpGTWk1ZGVFQnFubyIgKwotICAgICAgICAicEJUQ3FiZmJESmNjZnlRcGpuWT0iOwotICAg
IGNvbnN0IHRlc3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0ID0KLSAgICAg
ICAgIk1JSUNJekNDQWFpZ0F3SUJBZ0lJZU5qaEc5dG5ER2d3Q2dZSUtvWkl6ajBFQXdJd1V6RW5N
Q1VHQTFVRUF3d2UiICsKLSAgICAgICAgIlFtRnphV01nUVhSMFpYTjBZWFJwYjI0Z1ZYTmxjaUJT
YjI5MElFTkJNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkoiICsKLSAgICAgICAgImJtTXVNUk13RVFZ
RFZRUUlEQXBEWVd4cFptOXlibWxoTUI0WERURTNNRFF5TURBd05ESXdNRm9YRFRNeU1ETXkiICsK
LSAgICAgICAgIk1qQXdNREF3TUZvd1V6RW5NQ1VHQTFVRUF3d2VRbUZ6YVdNZ1FYUjBaWE4wWVhS
cGIyNGdWWE5sY2lCVGRXSWciICsKLSAgICAgICAgIlEwRXhNUk13RVFZRFZRUUtEQXBCY0hCc1pT
QkpibU11TVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1Ga3ciICsKLSAgICAgICAgIkV3WUhL
b1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFb1NaLzF0OWVCQUVWcDVhOFByWGFjbWJHYjh6TkMx
WDMiICsKLSAgICAgICAgIlN0TEk5WU82WTBDTDdibEhtU0dtakdXVHdENFEraTBKMkJZMytiUEhU
R1J5QTlqR0IzTVNiYU5tTUdRd0VnWUQiICsKLSAgICAgICAgIlZSMFRBUUgvQkFnd0JnRUIvd0lC
QURBZkJnTlZIU01FR0RBV2dCU0Q1YU1obnJCMHcvbGhrUDJYVGlNUWRxU2oiICsKLSAgICAgICAg
IjhqQWRCZ05WSFE0RUZnUVU1bVdmMURZTFRYVWRROXhtT0gvdXFlTlNEODB3RGdZRFZSMFBBUUgv
QkFRREFnRUciICsKLSAgICAgICAgIk1Bb0dDQ3FHU000OUJBTUNBMmtBTUdZQ01RQzNNMzYwTEx0
SlM2MFo5cTN2VmpKeE1nTWNGUTFyb0dUVWNLcXYiICsKLSAgICAgICAgIlcrNGhKNENlSmp5U1hU
Z3E2SUVIbi95V2FiNENNUUNtNU5uSzZTT1NLK0FxV3VtOWxMODdXM0U2QUExZjJUdkoiICsKLSAg
ICAgICAgIi9oZ29rLzM0anI5M25oUzg3dE9RTmR4RFM4enlpcXc9IjsKLSAgICBjb25zdCB0ZXN0
UnBJZCA9ICJsb2NhbGhvc3QiOwotICAgIGZ1bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikK
LSAgICB7Ci0gICAgICAgIHZhciBjaGFycyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0ci5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2Rl
QXQoaSkpOwotICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoY2hhcnMpOwotICAgIH0KKyAg
ICBjb25zdCB0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0
bFpBSll4RWJNZjdsbm5WV3kyNUNTNGNqWjVlSFFLM1dBOExTQkxIY0pZdUhrajFyWVFRQUEiICsK
KyAgICAgICAgIkFFNzRvQkh6akFwTkZZQUdGeEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5B
Z2EwTkEyQ2dwNFYzbWdTSjUiICsKKyAgICAgICAgImpPSExNRHJteHAvUzByYkQrYWlocnUxQzBh
QU4zQmtpTTZHTnk1blNsRFZxT2dUZ3BRRUNBeVlnQVNGWUlFRmIiICsKKyAgICAgICAgImhlM1Jr
TnVkNnNneXJhQkdqbGgxcHpUbENaZWhRbEwvYjE4SFo2V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJV
bmkiICsKKyAgICAgICAgIm5FZVhkRkxrdlcwL3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhN
RVVDSVFES2crWkJtRUJ0ZjBsV3E0UmUiICsKKyAgICAgICAgImRINC9pL0xPWXFPUjR1UjJOQWoy
elFtdzlRSWdiVFhiNGh2RmJqNFQyN2J2L3JHcmMreSswcHVvWU9Ca0JrOVAiICsKKyAgICAgICAg
Im1DZXdXbE5qZURWamdWa0N3akNDQXI0d2dnR21vQU1DQVFJQ0JIU0cvY0l3RFFZSktvWklodmNO
QVFFTEJRQXciICsKKyAgICAgICAgIkxqRXNNQ29HQTFVRUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5
MElFTkJJRk5sY21saGJDQTBOVGN5TURBMk16RXciICsKKyAgICAgICAgIklCY05NVFF3T0RBeE1E
QXdNREF3V2hnUE1qQTFNREE1TURRd01EQXdNREJhTUc4eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAg
ICAgICAgIk1SSXdFQVlEVlFRS0RBbFpkV0pwWTI4Z1FVSXhJakFnQmdOVkJBc01HVUYxZEdobGJu
UnBZMkYwYjNJZ1FYUjAiICsKKyAgICAgICAgIlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZ
bWxqYnlCVk1rWWdSVVVnVTJWeWFXRnNJREU1TlRVd01ETTQiICsKKyAgICAgICAgIk5ESXdXVEFU
QmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhwT2g0NjYi
ICsKKyAgICAgICAgIjRZRUpWbUZRK3ppTExsOWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5U
eUtUbG1uQk9VanZBVGV2dG8yd3ciICsKKyAgICAgICAgImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRF
dU15NDJMakV1TkM0eExqUXhORGd5TGpFdU1UQVRCZ3NyQmdFRUFZTGwiICsKKyAgICAgICAgIkhB
SUJBUVFFQXdJRklEQWhCZ3NyQmdFRUFZTGxIQUVCQkFRU0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4
OU1Bd0ciICsKKyAgICAgICAgIkExVWRFd0VCL3dRQ01BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdn
RUJBREZjU0lEbW1sSitPR2FKdlduOUNxaHYiICsKKyAgICAgICAgIlNldWVUb1ZGUVZWdnF0QUxP
Z0NLSGR3QitXeDI5bWcyR3BIaU1zZ1FwNXhqQjB5YmJucEc2eDIxMkZ4RVNKK0ciICsKKyAgICAg
ICAgImluWkQwaXBjaGk3QVB3UGxoSXZqZ0gxNnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhn
Q2NkSDB2ZzVkMnMiICsKKyAgICAgICAgImMwMDZXSmU5VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9B
WEUzSkJOd0tHQklPQ3ZmUURQeVdtaWlHNWJHeFlmUHQiICsKKyAgICAgICAgInk4WjNwbmpYKzFN
RG5NMmhocjQwdWxNeGxTTkRuWC9aU25EeU1HSWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0NUQiICsK
KyAgICAgICAgIjFyUk9JUlU5K0ZDU1g1V1FZaTY4UnVEckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1F
MW9aQXlvaFBBbUxjb1BPND0iOwogCiAgICAgcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQp
IHsKICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKQEAgLTQ5LDMwICszNCwxOCBAQAogICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgdXNlcjogewogICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogYXNjaWlU
b1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4
QXJyYXkoMTYpLAogICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIs
CiAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFt
czogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH07CiAgICAgICAgIC8vIEEgbW9jayBhdHRlc3RhdGlvbiBvYmplY3QKICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50
aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsKLSAgICAgICAgICAgICAgICBsb2NhbDogewotICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgYWNjZXB0QXR0ZXN0YXRpb246IHRydWUsCi0gICAgICAgICAgICAgICAgICAgIHBy
aXZhdGVLZXlCYXNlNjQ6IHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsCi0gICAgICAgICAgICAg
ICAgICAgIHVzZXJDZXJ0aWZpY2F0ZUJhc2U2NDogdGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNhdGVC
YXNlNjQsCi0gICAgICAgICAgICAgICAgICAgIGludGVybWVkaWF0ZUNBQ2VydGlmaWNhdGVCYXNl
NjQ6IHRlc3RBdHRlc3RhdGlvbklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1
dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwg
c3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdENy
ZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKICAgICAgICAgY29uc3QgY3JlZGVudGlhbCA9IGF3
YWl0IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyk7CiAKLSAgICAgICAgcmV0
dXJuIHByb21pc2VfcmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLAotICAgICAgICAgICAg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLnN0b3JlKGNyZWRlbnRpYWwpKS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKLSAgICAgICAgfSk7CisgICAg
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwgIk5vdFN1cHBvcnRlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLnN0b3JlKGNyZWRlbnRpYWwpKTsKICAgICB9LCAibmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLnN0b3JlKCkuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwKaW5kZXggZGI2M2Y2Y2NjNzVmMjgzMTgzNGJkMmQ3MTEz
MjIzZjI1Yzc2YzYzZi4uZGMxMmI3MjI0YjFlMGZkMDY4NTc5NzA1MGFjYzllZmZiOTg1Y2Y2MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vaWRsLmh0dHBzLmh0bWwKQEAgLTE5
LDE3ICsxOSw2IEBACiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogCiA8c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29u
ZmlndXJhdGlvbih7Ci0gICAgICAgIGxvY2FsOiB7Ci0gICAgICAgICAgICBhY2NlcHRBdXRoZW50
aWNhdGlvbjogdHJ1ZSwKLSAgICAgICAgICAgIGFjY2VwdEF0dGVzdGF0aW9uOiB0cnVlLAotICAg
ICAgICAgICAgcHJpdmF0ZUtleUJhc2U2NDogdGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwKLSAg
ICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZUJhc2U2NDogdGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNh
dGVCYXNlNjQsCi0gICAgICAgICAgICBpbnRlcm1lZGlhdGVDQUNlcnRpZmljYXRlQmFzZTY0OiB0
ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NAotICAgICAgICB9Ci0gICAg
fSk7Ci0KIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiAgICAgY29uc3QgaWRsVVJMID0gWyJX
ZWJBdXRoTi5pZGwiXTsKICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwpAQCAt
NTQsNyArNDMsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAg
IG5hbWU6ICJsb2NhbGhvc3QiLAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHVzZXI6IHsK
LSAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAg
IG5hbWU6IHRlc3RVc2VyaGFuZGxlQmFzZTY0LAogICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRV
UkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAogICAgICAgICAgICAgICAgIGRpc3BsYXlO
YW1lOiAiQXBwbGVzZWVkIiwKICAgICAgICAgICAgIH0sCkBAIC02MiwyMCArNTEsMjEgQEAgcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKICAgICAgICAgfQogICAgIH07CisgICAg
Ly8gQSBtb2NrIGF0dGVzdGF0aW9uIG9iamVjdAorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9u
KHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJzdWNj
ZXNzIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CiAg
ICAgY3JlYXRlZENyZWRlbnRpYWwgPSBhd2FpdCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KGNyZWF0aW9uT3B0aW9ucyk7CiAKLQogICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0gewogICAg
ICAgICBwdWJsaWNLZXk6IHsKICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAogICAgICAgICB9CiAgICAgfTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJh
dGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAi
c3VjY2VzcyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0gfSB9
KTsKICAgICByZXF1ZXN0ZWRDcmVkZW50aWFsID0gYXdhaXQgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldChyZXF1ZXN0T3B0aW9ucyk7CiAKICAgICBpZGxBcnJheS5hZGRfb2JqZWN0cyh7IlB1Ymxp
Y0tleUNyZWRlbnRpYWwiOiBbImNyZWF0ZWRDcmVkZW50aWFsIl0sICJBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZSI6IFsiY3JlYXRlZENyZWRlbnRpYWwucmVzcG9uc2UiXSwgIkF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSI6IFsicmVxdWVzdGVkQ3JlZGVudGlhbC5yZXNwb25z
ZSJdfSk7CiAgICAgaWRsQXJyYXkudGVzdCgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7CiB9LCAiU2V0
dXAgZm9yIFdlYkF1dGhOIEFQSSBJREwgdGVzdHMuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVh
dGUtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbC1zaWxl
bnQuaHR0cHMuaHRtbAppbmRleCA5NjZjODI2MzJhZTliOTY3ZjljNDYxMzBmMzY1ZmQzZmRjOTAx
ZjZiLi42YTAwYmVkZTZkZDliZTc4MzA2YWU3ZDQwZTc1ZmVkM2JjNGNhYzJkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jl
YXRlLWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2Fs
LXNpbGVudC5odHRwcy5odG1sCkBAIC00LDE0NyArNCwxNTIgQEAKIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgLy8gRGVmYXVsdCBtb2Nr
IGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZl
cmVudCBjb25maWd1cmF0aW9uLgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2lsZW50
RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNlLCBhY2Nl
cHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGNvbnN0IHVzZXJoYW5kbGVCYXNlNjQgPSBnZW5lcmF0ZVVzZXJoYW5kbGVCYXNlNjQoKTsK
KyAgICAgICAgY29uc3QgcHJpdmF0ZUtleUJhc2U2NCA9IGF3YWl0IGdlbmVyYXRlUHJpdmF0ZUtl
eUJhc2U2NCgpOworICAgICAgICBjb25zdCBjcmVkZW50aWFsSUQgPSBhd2FpdCBjYWxjdWxhdGVD
cmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCk7CisgICAgICAgIC8vIERlZmF1bHQgbW9jayBj
b25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJl
bnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsg
c2lsZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IGZhbHNl
LCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKLSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewot
ICAgICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxl
LmNvbSIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAg
ICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAg
ICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAg
ICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzog
LTM1IH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBSUzI1
NgotICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07
Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQu
Iik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50
IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgIHByb21p
c2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0
VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTM1IH0sIHsgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC0yNTcgfV0sIC8vIEVTMzg0LCBS
UzI1NgorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5v
dEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJP
cGVyYXRpb24gdGltZWQgb3V0LiIpOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGlj
YXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0aW9u
cyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7Ci0g
ICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpv
aG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAi
Sm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFz
Y2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFy
YW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAg
ZXhjbHVkZUNyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwu
cGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfV0sCi0gICAgICAgICAgICAgICAgdGltZW91
dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0
RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwot
ICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIp
LnRoZW4oKCkgPT4geworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBj
b25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUu
Y29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4
QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBb
eyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgICAgIGV4
Y2x1ZGVDcmVkZW50aWFsczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBh
cnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpIH1dLAorICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVw
S2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0
aGVudGljYXRvci4gMiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRv
S2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOwor
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91
dC4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElk
LCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4gMiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAg
ICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAg
ICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAg
ICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwK
LSAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsKLSAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRp
YWxJZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKLSAgICAgICAgICAgICAgICAgICAg
eyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJ
ZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0
eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJh
c2U2NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBl
OiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2
NCksIHRyYW5zcG9ydHM6IFsiaW50ZXJuYWwiXSB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgICAgICB0aW1lb3V0OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RL
ZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNl
cmhhbmRsZUJhc2U2NCk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxs
b3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJh
dGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9PiB7CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVz
ZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJK
b2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgICAg
ICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czog
WyJ1c2IiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIs
IGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3Bv
cnRzOiBbImJsZSJdIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMt
a2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KKyAgICAg
ICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RS
cElkKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0
ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDMi
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZh
dGVLZXlCYXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJl
dHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJh
c2U2NCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRp
Y2F0b3IuIDMiKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTog
IkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVk
UGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAg
ICAgdGltZW91dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJu
IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuY3JlYXRlKG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKTsKLSAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4gNCIpOworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0
VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTog
IkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAg
ICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRF
cnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24g
dGltZWQgb3V0LiIpOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gNCIp
OwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewot
ICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAg
ICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBs
ZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2Vy
aGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1Vp
bnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7
IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0
OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBsb2NhbDogeyBhY2NlcHRBdXRoZW50
aWNhdGlvbjogdHJ1ZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7Ci0gICAgICAgIHJl
dHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggc2lsZW50IGZhaWx1cmUgaW4g
YSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDUiKTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQg
PT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5h
bWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAg
ICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwK
KyAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9OworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7
IHNpbGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVl
LCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9t
aXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiA1Iik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0g
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAg
ICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20i
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlk
OiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAg
ICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1d
LAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVz
ZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJK
b2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgc2ls
ZW50RmFpbHVyZTogdHJ1ZSwgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFj
Y2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
YWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5k
bGVCYXNlNjQpOwogICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRp
b25Nb2NrQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2Vw
dEF1dGhlbnRpY2F0aW9uOiB0cnVlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKLSAg
ICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0
ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIp
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSh0ZXN0UnVubmVyLmtleUV4aXN0c0luS2V5Y2hhaW4odGVz
dFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiA2Iik7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJl
amVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
b3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2ZhbHNlKHRlc3RSdW5uZXIua2V5RXhpc3RzSW5LZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRs
ZUJhc2U2NCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRo
ZW50aWNhdG9yLiA2Iik7CisgICAgfSkoKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbAppbmRleCA1
NmZiYzNlY2E0OTFiNGY0YWQ5ZWNjMjQ5MWUzZDFhYzY2N2QwZmMxLi5jM2M5MzcyNjQ0YjM4MTRj
YjRhMzQ1YzM1MTk2MTM4NzhlZWUyNDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbApAQCAtNCwxNjQgKzQsMTY5
IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJy
aWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KLSAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2Nr
Q29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwgYWNj
ZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgKGFzeW5jIGZ1bmN0aW9uKCkgeworICAg
ICAgICBjb25zdCB1c2VyaGFuZGxlQmFzZTY0ID0gZ2VuZXJhdGVVc2VyaGFuZGxlQmFzZTY0KCk7
CisgICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSBhd2FpdCBnZW5lcmF0ZVByaXZhdGVL
ZXlCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgY3JlZGVudGlhbElEID0gYXdhaXQgY2FsY3VsYXRl
Q3JlZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpOworICAgICAgICAvLyBEZWZhdWx0IG1vY2sg
Y29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVy
ZW50IGNvbmZpZ3VyYXRpb24uCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7
IGxvY2FsOiB7IGFjY2VwdEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246
IGZhbHNlIH0gfSk7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDog
ewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFy
c2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdl
OiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3Jl
ZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC0zNSB9LCB7IHR5cGU6ICJwdWJs
aWMta2V5IiwgYWxnOiAtMjU3IH1dLCAvLyBFUzM4NCwgUlMyNTYKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRF
cnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJUaGUgcGxhdGZv
cm0gYXR0YWNoZWQgYXV0aGVudGljYXRvciBkb2Vzbid0IHN1cHBvcnQgYW55IHByb3ZpZGVkIFB1
YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzLiIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVuc3VwcG9ydGVkIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBw
YXJhbWV0ZXJzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworICAgICAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2
NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAg
ICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBh
bGc6IC0zNSB9LCB7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtMjU3IH1dLCAvLyBFUzM4NCwg
UlMyNTYKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0
dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJUaGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0aGVudGlj
YXRvciBkb2Vzbid0IHN1cHBvcnQgYW55IHByb3ZpZGVkIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJh
bWV0ZXJzLiIpOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCB1bnN1cHBvcnRlZCBwdWJsaWMga2V5IGNyZWRlbnRpYWwgcGFyYW1ldGVycyBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAg
ICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIK
LSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIHVzZXI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKLSAgICAgICAgICAgICAgICAgICAgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCi0gICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAg
ICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0s
Ci0gICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtl
eSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkgfV0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRl
S2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAgICByZXR1
cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50
aWFscy5jcmVhdGUob3B0aW9ucyksICJBdCBsZWFzdCBvbmUgY3JlZGVudGlhbCBtYXRjaGVzIGFu
IGVudHJ5IG9mIHRoZSBleGNsdWRlQ3JlZGVudGlhbHMgbGlzdCBpbiB0aGUgcGxhdGZvcm0gYXR0
YWNoZWQgYXV0aGVudGljYXRvci4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgcHJvbWlzZV90ZXN0
KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpv
aG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFy
c2UodXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkpvaG4iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBj
aGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAg
ICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAor
ICAgICAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMt
a2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCB9XQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH07CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAgICB9KTsKLSAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYXRjaGVkIGV4Y2x1ZGUg
Y3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFzZTY0LCB0
ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJl
amVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUo
b3B0aW9ucyksICJBdCBsZWFzdCBvbmUgY3JlZGVudGlhbCBtYXRjaGVzIGFuIGVudHJ5IG9mIHRo
ZSBleGNsdWRlQ3JlZGVudGlhbHMgbGlzdCBpbiB0aGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0aGVu
dGljYXRvci4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRl
c3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYXRjaGVkIGV4Y2x1ZGUgY3Jl
ZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBwcm9taXNl
X3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJs
aWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2Vy
OiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAg
ICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAot
ICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2
IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1r
ZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAgICAgICAgIGV4Y2x1ZGVDcmVkZW50aWFsczogWwot
ICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5w
YXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAotICAg
ICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAotICAgICAg
ICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0
ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJibGUiXSB9LAotICAgICAgICAg
ICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0
Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4o
dGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0
KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiQXQgbGVhc3Qgb25lIGNyZWRl
bnRpYWwgbWF0Y2hlcyBhbiBlbnRyeSBvZiB0aGUgZXhjbHVkZUNyZWRlbnRpYWxzIGxpc3QgaW4g
dGhlIHBsYXRmb3JtIGF0dGFjaGVkIGF1dGhlbnRpY2F0b3IuIikudGhlbigoKSA9PiB7CisgICAg
ICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisg
ICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBb
CisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRl
bnRpYWxJRCwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
eyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsibmZj
Il0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
Y3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCisgICAgICAgICAgICAgICAgICAg
ICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czog
WyJpbnRlcm5hbCJdIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4odGVzdFJwSWQpOwotICAgICAg
ICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtYXRj
aGVkIGV4Y2x1ZGUgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIDJu
ZCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0g
ewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAg
ICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBB
cHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RV
c2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2hu
IiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlU
b1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6
IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQotICAgICAgICAgICAgfQotICAgICAg
ICB9OwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIs
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJDb3VsZG4ndCBnZXQgdXNl
ciBjb25zZW50LiIpOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3
aXRob3V0IHVzZXIgY29uc2VudCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlC
YXNlNjQsIHRlc3RScElkLCB1c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBw
cm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZShvcHRpb25zKSwgIkF0IGxlYXN0IG9uZSBjcmVkZW50aWFsIG1hdGNoZXMgYW4gZW50
cnkgb2YgdGhlIGV4Y2x1ZGVDcmVkZW50aWFscyBsaXN0IGluIHRoZSBwbGF0Zm9ybSBhdHRhY2hl
ZCBhdXRoZW50aWNhdG9yLiIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5
Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhj
bHVkZSBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMm5kIik7CiAK
LSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAg
ICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAg
ICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2Vl
ZCIsCi0gICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5k
bGVCYXNlNjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhB
cnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlw
ZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0g
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGxvY2FsOiB7IGFjY2VwdEF1dGhl
bnRpY2F0aW9uOiB0cnVlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKLSAgICAgICAg
cmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlKG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKTsKLSAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aG91dCBhdHRlc3RhdGlvbiBp
biBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQg
PT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6ICJleGFtcGxlLmNvbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2Uo
dGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5h
bWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
Y2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAg
ICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gcHJv
bWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5j
cmVhdGUob3B0aW9ucyksICJDb3VsZG4ndCBnZXQgdXNlciBjb25zZW50LiIpOworICAgICAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aG91dCB1c2VyIGNvbnNlbnQg
aW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9
PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsK
LSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBs
ZS5jb20iCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAg
ICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAg
ICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAg
ICAgICAgICAgICBkaXNwbGF5TmFtZTogIkpvaG4iLAotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1v
Y2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFj
Y2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRU
ZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVz
dFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiVW5rbm93bkVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRp
b25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIikudGhlbigoKSA9PiB7CisgICAgICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlOYW1lOiAiSm9obiIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAg
ICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIs
IGFsZzogLTcgfV0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh0
ZXN0UnVubmVyLmtleUV4aXN0c0luS2V5Y2hhaW4odGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFz
ZTY0KSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVh
dGVdXSBkZWxldGluZyBvbGQgY3JlZGVudGlhbCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRv
ci4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9j
a0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNj
ZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJl
amVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0
aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiIpOworICAgICAgICB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aG91dCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9j
YWwgYXV0aGVudGljYXRvci4iKTsKIAotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0g
ICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAg
ICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20i
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAgICAg
ICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAgIGlk
OiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgICAgIGRpc3Bs
YXlOYW1lOiAiSm9obiIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAg
ICAgICAgICAgdGltZW91dDogMTAsCi0gICAgICAgICAgICAgICAgYXV0aGVudGljYXRvclNlbGVj
dGlvbjogeyBhdXRoZW50aWNhdG9yQXR0YWNobWVudDogImNyb3NzLXBsYXRmb3JtIiB9CisgICAg
ICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWU6IHVzZXJoYW5kbGVCYXNlNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisg
ICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgYWxnOiAtNyB9XQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRB
dXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFz
ZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH07CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIs
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJVbmtub3duIGludGVybmFs
IGVycm9yLiIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRlc3RSdW5uZXIua2V5RXhp
c3RzSW5LZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCkpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSBkZWxldGlu
ZyBvbGQgY3JlZGVudGlhbCBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKIAotICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdl
YkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50
aWNhdGlvbjogZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOwotICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpOwotICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1Ymxp
Y0tleTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBB
cHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGFzY2lpVG9VaW50OEFycmF5
KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiSm9obiIs
CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
YXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJLZXlD
cmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAg
ICAgICAgICAgIHRpbWVvdXQ6IDEwLAorICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9y
U2VsZWN0aW9uOiB7IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiAiY3Jvc3MtcGxhdGZvcm0iIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50
aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246
IGZhbHNlLCBhY2NlcHRBdHRlc3RhdGlvbjogZmFsc2UgfSB9KTsKKyAgICAgICAgICAgIHJldHVy
biBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmNyZWF0ZShvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgICAgIH0s
ICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2Nr
IGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisgICAgfSkoKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
ZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRt
bAppbmRleCBmMTU1MDA4YzI4NGJhZDlmY2I0ZWM0ZjRmNzkzZWUyZDJmY2M3NTkyLi42M2ExMTQz
NDBiMGIxMjg0ZDc2MWFiNDNiYjA4ZGJhOWNiMWVjYTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3Mt
bG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbApAQCAtNSwy
MDkgKzUsMjE0IEBACiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvY2Jvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
ICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJyaWRl
IGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29u
ZmlndXJhdGlvbih7Ci0gICAgICAgICAgICBsb2NhbDogewotICAgICAgICAgICAgICAgIGFjY2Vw
dEF1dGhlbnRpY2F0aW9uOiB0cnVlLAotICAgICAgICAgICAgICAgIGFjY2VwdEF0dGVzdGF0aW9u
OiB0cnVlLAotICAgICAgICAgICAgICAgIHByaXZhdGVLZXlCYXNlNjQ6IHRlc3RFUzI1NlByaXZh
dGVLZXlCYXNlNjQsCi0gICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlQmFzZTY0OiB0ZXN0
QXR0ZXN0YXRpb25DZXJ0aWZpY2F0ZUJhc2U2NCwKLSAgICAgICAgICAgICAgICBpbnRlcm1lZGlh
dGVDQUNlcnRpZmljYXRlQmFzZTY0OiB0ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0
ZUJhc2U2NAorICAgIChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3QgdXNlcmhhbmRs
ZUJhc2U2NCA9IGdlbmVyYXRlVXNlcmhhbmRsZUJhc2U2NCgpOworICAgICAgICBjb25zdCBwcml2
YXRlS2V5QmFzZTY0ID0gYXdhaXQgZ2VuZXJhdGVQcml2YXRlS2V5QmFzZTY0KCk7CisgICAgICAg
IGNvbnN0IGNyZWRlbnRpYWxJRCA9IGF3YWl0IGNhbGN1bGF0ZUNyZWRlbnRpYWxJRChwcml2YXRl
S2V5QmFzZTY0KTsKKyAgICAgICAgLy8gRGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3Rz
IG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhleSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeworICAgICAgICAgICAgICAgIGxv
Y2FsOiB7CisgICAgICAgICAgICAgICAgICAgIGFjY2VwdEF1dGhlbnRpY2F0aW9uOiB0cnVlLAor
ICAgICAgICAgICAgICAgICAgICBhY2NlcHRBdHRlc3RhdGlvbjogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICAgICAgcHJpdmF0ZUtleUJhc2U2NDogcHJpdmF0ZUtleUJhc2U2NCwKKyAgICAgICAgICAg
ICAgICAgICAgdXNlckNlcnRpZmljYXRlQmFzZTY0OiB0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZpY2F0
ZUJhc2U2NCwKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJtZWRpYXRlQ0FDZXJ0aWZpY2F0ZUJh
c2U2NDogdGVzdEF0dGVzdGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1Jlc3Vs
dChjcmVkZW50aWFsLCBpc05vbmVBdHRlc3RhdGlvbiA9IHRydWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIC8vIENoZWNrIGtleWNoYWluCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh0ZXN0UnVubmVyLmtleUV4aXN0c0lu
S2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoY3Jl
ZGVudGlhbCwgaXNOb25lQXR0ZXN0YXRpb24gPSB0cnVlKQotICAgIHsKLSAgICAgICAgLy8gQ2hl
Y2sga2V5Y2hhaW4KLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfdHJ1ZSh0ZXN0UnVubmVyLmtleUV4aXN0c0luS2V5Y2hhaW4odGVzdFJwSWQsIHRl
c3RVc2VyaGFuZGxlQmFzZTY0KSk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXlj
aGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgIH0KIAotICAgICAgICAvLyBDaGVjayByZXNwb25kCi0g
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoQmFzZTY0VVJMLnBhcnNlKGNyZWRlbnRpYWwuaWQp
LCBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNyZWRlbnRpYWwudHlwZSwgJ3B1YmxpYy1rZXknKTsKLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJM
LnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhi
eXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlhbC5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksICd7
InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJjaGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6
Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScpOwotICAgICAgICBhc3NlcnRfbm90X2V4aXN0cyhj
cmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwgImFwcGlkIik7Ci0KLSAgICAg
ICAgLy8gQ2hlY2sgYXR0ZXN0YXRpb24KLSAgICAgICAgY29uc3QgYXR0ZXN0YXRpb25PYmplY3Qg
PSBDQk9SLmRlY29kZShjcmVkZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KTsKLSAg
ICAgICAgaWYgKGlzTm9uZUF0dGVzdGF0aW9uKQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhh
dHRlc3RhdGlvbk9iamVjdC5mbXQsICJub25lIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuZm10LCAiQXBwbGUiKTsKLSAgICAgICAg
Ly8gQ2hlY2sgYXV0aERhdGEKLSAgICAgICAgY29uc3QgYXV0aERhdGEgPSBkZWNvZGVBdXRoRGF0
YShhdHRlc3RhdGlvbk9iamVjdC5hdXRoRGF0YSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0
ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3
MGY2NDc2NjA1YjhmZTRhZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMoYXV0aERhdGEuZmxhZ3MsIDY5KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhh
dXRoRGF0YS5jb3VudGVyLCAwKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3Ry
aW5nKGF1dGhEYXRhLmFhZ3VpZCksICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF1dGhEYXRhLmNyZWRlbnRpYWxJRCwgQmFz
ZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpKTsKLSAgICAgICAgLy8gQ2hlY2sg
c2VsZiBhdHRlc3RhdGlvbgotICAgICAgICBhc3NlcnRfdHJ1ZShjaGVja1B1YmxpY0tleShhdXRo
RGF0YS5wdWJsaWNLZXkpKTsKLSAgICAgICAgaWYgKGlzTm9uZUF0dGVzdGF0aW9uKQotICAgICAg
ICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdCwgeyB9
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9u
T2JqZWN0LmF0dFN0bXQuYWxnLCAtNyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0dGVz
dGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjWzBdLCBCYXNlNjRVUkwu
cGFyc2UodGVzdEF0dGVzdGF0aW9uQ2VydGlmaWNhdGVCYXNlNjQpKTsKLSAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC54NWNbMV0sIEJhc2U2
NFVSTC5wYXJzZSh0ZXN0QXR0ZXN0YXRpb25Jc3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NCkpOwot
Ci0gICAgICAgICAgICAvLyBDaGVjayBzaWduYXR1cmUKLSAgICAgICAgICAgIGxldCBwdWJsaWNL
ZXlEYXRhID0gbmV3IFVpbnQ4QXJyYXkoNjUpOwotICAgICAgICAgICAgcHVibGljS2V5RGF0YVsw
XSA9IDB4MDQ7Ci0gICAgICAgICAgICBwdWJsaWNLZXlEYXRhLnNldChhdXRoRGF0YS5wdWJsaWNL
ZXlbJy0yJ10sIDEpOwotICAgICAgICAgICAgcHVibGljS2V5RGF0YS5zZXQoYXV0aERhdGEucHVi
bGljS2V5WyctMyddLCAzMyk7Ci0gICAgICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoInJhdyIsIHB1YmxpY0tleURhdGEsIHsKLSAgICAgICAgICAgICAgICBuYW1lOiAiRUNE
U0EiLAotICAgICAgICAgICAgICAgIG5hbWVkQ3VydmU6ICJQLTI1NiIKLSAgICAgICAgICAgIH0s
IGZhbHNlLCBbJ3ZlcmlmeSddKS50aGVuKHB1YmxpY0tleSA9PiB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHsKKyAgICAgICAgICAgIC8vIENoZWNrIHJlc3Bv
bmQKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoQmFzZTY0VVJMLnBhcnNlKGNyZWRl
bnRpYWwuaWQpLCBjcmVkZW50aWFsSUQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVk
ZW50aWFsLnR5cGUsICdwdWJsaWMta2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmF3SWQpLCBjcmVkZW50aWFsSUQpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlhbC5yZXNw
b25zZS5jbGllbnREYXRhSlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUiLCJjaGFsbGVu
Z2UiOiJNVEl6TkRVMiIsIm9yaWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScpOworICAg
ICAgICAgICAgYXNzZXJ0X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25S
ZXN1bHRzKCksICJhcHBpZCIpOworCisgICAgICAgICAgICAvLyBDaGVjayBhdHRlc3RhdGlvbgor
ICAgICAgICAgICAgY29uc3QgYXR0ZXN0YXRpb25PYmplY3QgPSBDQk9SLmRlY29kZShjcmVkZW50
aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KTsKKyAgICAgICAgICAgIGlmIChpc05vbmVB
dHRlc3RhdGlvbikKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2Jq
ZWN0LmZtdCwgIm5vbmUiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmZtdCwgIkFwcGxlIik7CisgICAgICAgICAgICAv
LyBDaGVjayBhdXRoRGF0YQorICAgICAgICAgICAgY29uc3QgYXV0aERhdGEgPSBkZWNvZGVBdXRo
RGF0YShhdHRlc3RhdGlvbk9iamVjdC5hdXRoRGF0YSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJ5dGVzVG9IZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2
ODc0MzQxNzBmNjQ3NjYwNWI4ZmU0YWViOWEyODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdXRoRGF0YS5mbGFncywgNjkpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhhdXRoRGF0YS5jb3VudGVyLCAwKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5hYWd1aWQpLCAiMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXV0
aERhdGEuY3JlZGVudGlhbElELCBjcmVkZW50aWFsSUQpOworICAgICAgICAgICAgLy8gQ2hlY2sg
c2VsZiBhdHRlc3RhdGlvbgorICAgICAgICAgICAgYXNzZXJ0X3RydWUoY2hlY2tQdWJsaWNLZXko
YXV0aERhdGEucHVibGljS2V5KSk7CisgICAgICAgICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24p
CisgICAgICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3Qu
YXR0U3RtdCwgeyB9KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC5hbGcsIC03KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjLmxlbmd0aCwg
Mik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdHRlc3RhdGlvbk9iamVj
dC5hdHRTdG10Lng1Y1swXSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RBdHRlc3RhdGlvbkNlcnRpZmlj
YXRlQmFzZTY0KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdHRlc3Rh
dGlvbk9iamVjdC5hdHRTdG10Lng1Y1sxXSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RBdHRlc3RhdGlv
bklzc3VpbmdDQUNlcnRpZmljYXRlQmFzZTY0KSk7CisKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayBzaWduYXR1cmUKKyAgICAgICAgICAgICAgICBsZXQgcHVibGljS2V5RGF0YSA9IG5ldyBVaW50
OEFycmF5KDY1KTsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXlEYXRhWzBdID0gMHgwNDsKKyAg
ICAgICAgICAgICAgICBwdWJsaWNLZXlEYXRhLnNldChhdXRoRGF0YS5wdWJsaWNLZXlbJy0yJ10s
IDEpOworICAgICAgICAgICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1dGhEYXRhLnB1YmxpY0tl
eVsnLTMnXSwgMzMpOworICAgICAgICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgcHVibGljS2V5RGF0YSwgewogICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
RUNEU0EiLAotICAgICAgICAgICAgICAgICAgICBoYXNoOiAiU0hBLTI1NiIKLSAgICAgICAgICAg
ICAgICB9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWduYXR1cmUoYXR0ZXN0YXRpb25PYmplY3Qu
YXR0U3RtdC5zaWcpLCBhdHRlc3RhdGlvbk9iamVjdC5hdXRoRGF0YSkudGhlbih2ZXJpZmllZCA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZlcmlmaWVkKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmFtZWRDdXJ2ZTogIlAtMjU2IgorICAgICAgICAgICAgICAgIH0sIGZhbHNl
LCBbJ3ZlcmlmeSddKS50aGVuKHB1YmxpY0tleSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiRUNEU0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaDogIlNIQS0yNTYiCisgICAg
ICAgICAgICAgICAgICAgIH0sIHB1YmxpY0tleSwgZXh0cmFjdFJhd1NpZ25hdHVyZShhdHRlc3Rh
dGlvbk9iamVjdC5hdHRTdG10LnNpZyksIGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKS50aGVu
KHZlcmlmaWVkID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHZlcmlm
aWVkKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
LSAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAg
ICAgICAgICAgICAgIHJwOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3Qi
LAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAg
ICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBp
ZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAg
ICAgICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCi0gICAg
ICAgICAgICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6
IC03IH1dLAotICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgICAgIHJldHVybiBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7Ci0g
ICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKLSAgICAgICAgfSk7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWluaW11bSBvcHRpb25zIGlu
IGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0g
ICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9z
dCIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICB1c2VyOiB7Ci0gICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgICAg
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAotICAgICAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCi0gICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKLSAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgYXV0aGVudGljYXRvclNlbGVjdGlvbjogeyBhdXRo
ZW50aWNhdG9yQXR0YWNobWVudDogInBsYXRmb3JtIiB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH07Ci0KLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9u
cykudGhlbihjcmVkZW50aWFsID0+IHsKLSAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRp
YWwpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uIHsgJ3BsYXRmb3JtJyB9IGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAg
ICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAg
ICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogImV4YW1wbGUuY29tIgotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJKb2huIiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAg
IGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAotICAgICAgICAgICAgICAg
IHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAg
ICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbHM6IFsKLSAgICAgICAgICAgICAgICAgICAg
eyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJ
ZEJhc2U2NCksIHRyYW5zcG9ydHM6IFsidXNiIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0
eXBlOiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJh
c2U2NCksIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKLSAgICAgICAgICAgICAgICAgICAgeyB0eXBl
OiAicHVibGljLWtleSIsIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRlbnRpYWxJZEJhc2U2
NCksIHRyYW5zcG9ydHM6IFsiYmxlIl0gfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgfTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFz
ZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotCi0gICAgICAgIHJldHVybiBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7
Ci0gICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggbWF0Y2hlZCBleGNsdWRl
IGNyZWRlbnRpYWwgaWRzIGJ1dCBub3QgdHJhbnNwb3J0cyBpbiBhIG1vY2sgbG9jYWwgYXV0aGVu
dGljYXRvci4iKTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKLSAgICAgICAgICAgIHB1YmxpY0tleTogewotICAgICAgICAgICAgICAgIHJwOiB7
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgdXNlcjogewotICAgICAgICAgICAgICAgICAgICBuYW1lOiAi
Sm9obiBBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKLSAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6
ICJBcHBsZXNlZWQiLAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgY2hhbGxl
bmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCi0gICAgICAgICAgICAgICAgcHViS2V5
Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAotICAgICAgICAg
ICAgICAgIGF0dGVzdGF0aW9uOiAibm9uZSIKICAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQot
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVu
KGNyZWRlbnRpYWwgPT4gewotICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7Ci0g
ICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IG5vbmUgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Ci0KLSAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBycDogewotICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAibG9jYWxob3N0IiwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIHVzZXI6IHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwK
LSAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJh
c2U2NCksCi0gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBh
cnNlKCJNVEl6TkRVMiIpLAotICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5
cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKLSAgICAgICAgICAgICAgICBhdHRlc3RhdGlv
bjogImluZGlyZWN0IgotICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgICAgIHJldHVy
biBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9
PiB7Ci0gICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBmYWxzZSk7Ci0gICAgICAg
IH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGluZGly
ZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwotCi0gICAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAg
ICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgcnA6IHsKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZTogImxvY2FsaG9zdCIsCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICB1c2VyOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCi0g
ICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNl
NjQpLAotICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCi0gICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJz
ZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBl
OiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCi0gICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246
ICJkaXJlY3QiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIH0KIAotICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRl
bnRpYWwgPT4gewotICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwgZmFsc2UpOwot
ICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBkaXJlY3QgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7Cisg
ICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAg
ICAgICAgICAgbmFtZTogdXNlcmhhbmRsZUJhc2U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlkOiBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRV
MiIpLAorICAgICAgICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVi
bGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsK
KworICAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9u
cykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVk
ZW50aWFsKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbY3JlYXRlXV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4gYSBtb2NrIGxvY2FsIGF1dGhl
bnRpY2F0b3IuIik7CisKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhv
c3QiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB1c2VyaGFuZGxlQmFzZTY0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRV
UkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJh
bXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICAg
ICAgYXV0aGVudGljYXRvclNlbGVjdGlvbjogeyBhdXRoZW50aWNhdG9yQXR0YWNobWVudDogInBs
YXRmb3JtIiB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAg
ICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVk
ZW50aWFsID0+IHsKKyAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRl
XV0gd2l0aCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uIHsgJ3BsYXRmb3JtJyB9IGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7
CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
OiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVzZXJoYW5kbGVCYXNl
NjQsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5k
bGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJKb2huIiwK
KyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBh
c2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIHB1YktleUNy
ZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAg
ICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7
IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJ1c2Ii
XSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBj
cmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBb
ImJsZSJdIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5
QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisKKyAgICAgICAgICAgIHJldHVy
biBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9
PiB7CisgICAgICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
bWF0Y2hlZCBleGNsdWRlIGNyZWRlbnRpYWwgaWRzIGJ1dCBub3QgdHJhbnNwb3J0cyBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVzZXJoYW5kbGVC
YXNlNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBpZDogQmFzZTY0VVJMLnBhcnNlKHVzZXJo
YW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICJBcHBs
ZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICAgICAg
cHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAg
ICAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjogIm5vbmUiCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgICAgICBj
aGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBub25lIGF0dGVzdGF0aW9uIGluIGEg
bW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGlj
S2V5OiB7CisgICAgICAgICAgICAgICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcmhhbmRs
ZUJhc2U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFyc2UodXNl
cmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogIkFw
cGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNo
YWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgICAg
ICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisg
ICAgICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uOiAiaW5kaXJlY3QiCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAg
ICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBmYWxzZSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggaW5kaXJlY3Qg
YXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICAgICAg
cHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgcnA6IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiB1c2VyaGFuZGxlQmFzZTY0LAorICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh1c2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisg
ICAgICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5
IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246ICJkaXJlY3Qi
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+
IHsKKyAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBmYWxzZSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1d
IHdpdGggZGlyZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIp
OworICAgIH0pKCk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC1zaWxlbnQuaHR0cHMuaHRtbAppbmRleCAwNTA3ZDQ1
NjMxZGU2OWFjMWNkNjhlYzI5NjM0ZTc3ZTkyNDI5ZDhkLi44NDNiYTg2ZjFmOWE3Y2RiOTRhYmJh
NmM2NzQzYzAyZTljMzNkZjVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNpbGVudC5odHRwcy5odG1sCkBAIC00LDU5ICs0LDY0
IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJy
aWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KLSAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2Nr
Q29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2VwdEF1dGhl
bnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0gfSk7CisgICAgKGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCB1c2VyaGFuZGxlQmFzZTY0ID0gZ2VuZXJh
dGVVc2VyaGFuZGxlQmFzZTY0KCk7CisgICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSBh
d2FpdCBnZW5lcmF0ZVByaXZhdGVLZXlCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgY3JlZGVudGlh
bElEID0gYXdhaXQgY2FsY3VsYXRlQ3JlZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpOworICAg
ICAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlk
ZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRp
b25Nb2NrQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGxvY2FsOiB7IGFjY2Vw
dEF1dGhlbnRpY2F0aW9uOiBmYWxzZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlLCBwcmVmZXJy
ZWRVc2VyaGFuZGxlQmFzZTY0OiB1c2VyaGFuZGxlQmFzZTY0IH0gfSk7CiAKLSAgICBwcm9taXNl
X3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJs
aWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIx
MjM0NTYiKSwKLSAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCi0gICAgICAgICAg
ICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RD
cmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVk
ZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbIm5mYyJdIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50
aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFs
SWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQotICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgdGltZW91dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsK
KyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAg
IGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1
YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbInVzYiJdIH0sCisgICAg
ICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJ
RCwgdHJhbnNwb3J0czogWyJuZmMiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBl
OiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsiYmxlIl0gfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVu
dGlhbElELCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQorICAgICAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH07CiAKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9u
IHRpbWVkIG91dC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0
aCBzaWxlbnQgZmFpbHVyZSBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7Cisg
ICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWls
dXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0
KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5
OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2
IiksCi0gICAgICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogWwotICAgICAgICAgICAgICAg
ICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhh
bmRsZUJhc2U2NCkgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgdGltZW91
dDogMTAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQg
PT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJh
eSgiMTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJM
LnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpIH0KKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9OwogCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVz
dFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VSZWpl
Y3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlv
bnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
Y2xlYW5VcEtleWNoYWluKHRlc3RScElkKTsKLSAgICAgICAgICAgIH0pOwotICAgIH0sICJQdWJs
aWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBs
b2NhbCBhdXRoZW50aWNhdG9yLiAyIik7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2
YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5nZXQob3B0aW9ucyksICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4g
eworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhh
bmRsZUJhc2U2NCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWlsdXJlIGluIGEgbW9jayBsb2NhbCBh
dXRoZW50aWNhdG9yLiAyIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAg
ICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAg
ICB0aW1lb3V0OiAxMAotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
ICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9V
aW50OEFycmF5KCIxMjM0NTYiKSwKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4odGVz
dEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgdGVzdFJwSWQsIHRlc3RVc2VyaGFuZGxlQmFzZTY0KTsK
LSAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCk7Ci0gICAgICAgIH0p
OwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBmYWls
dXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJ
ZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHMo
dCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyks
ICJPcGVyYXRpb24gdGltZWQgb3V0LiIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVh
blVwS2V5Y2hhaW4odGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHNpbGVudCBm
YWlsdXJlIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAzIik7CisgICAgfSkoKTsKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9j
YWwuaHR0cHMuaHRtbAppbmRleCAyOWJiN2Y0YjRjZTg4NGYyNjg5YTA2ZDY4ODZjZGUwMTk1M2Q4
ZmE5Li5lYTBlMmE0NmJmMDUxYTBmZTc4YWFmMjQwY2Y3MjhjN2E3ZjQ0MmRhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbApA
QCAtNCw3MiArNCw3NyBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLSAgICAvLyBEZWZhdWx0IG1vY2sgY29uZmlndXJhdGlvbi4gVGVzdHMg
bmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24uCi0g
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhl
bnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlv
bjogZmFsc2UsIGFjY2VwdEF0dGVzdGF0aW9uOiBmYWxzZSB9IH0pOworICAgIChhc3luYyBmdW5j
dGlvbigpIHsKKyAgICAgICAgY29uc3QgdXNlcmhhbmRsZUJhc2U2NCA9IGdlbmVyYXRlVXNlcmhh
bmRsZUJhc2U2NCgpOworICAgICAgICBjb25zdCBwcml2YXRlS2V5QmFzZTY0ID0gYXdhaXQgZ2Vu
ZXJhdGVQcml2YXRlS2V5QmFzZTY0KCk7CisgICAgICAgIGNvbnN0IGNyZWRlbnRpYWxJRCA9IGF3
YWl0IGNhbGN1bGF0ZUNyZWRlbnRpYWxJRChwcml2YXRlS2V5QmFzZTY0KTsKKyAgICAgICAgLy8g
RGVmYXVsdCBtb2NrIGNvbmZpZ3VyYXRpb24uIFRlc3RzIG5lZWQgdG8gb3ZlcnJpZGUgaWYgdGhl
eSBuZWVkIGRpZmZlcmVudCBjb25maWd1cmF0aW9uLgorICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0Nv
bmZpZ3VyYXRpb24oeyBsb2NhbDogeyBhY2NlcHRBdXRoZW50aWNhdGlvbjogZmFsc2UsIGFjY2Vw
dEF0dGVzdGF0aW9uOiBmYWxzZSwgcHJlZmVycmVkVXNlcmhhbmRsZUJhc2U2NDogdXNlcmhhbmRs
ZUJhc2U2NCB9IH0pOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBv
cHRpb25zID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hh
bGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgYWxs
b3dDcmVkZW50aWFsczogWwotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5
IiwgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0
czogWyJ1c2IiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5Iiwg
aWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czog
WyJuZmMiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJi
bGUiXSB9LAotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IEJh
c2U2NFVSTC5wYXJzZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRl
cm5hbCJdIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIH07Cisg
ICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgICAgIGNoYWxs
ZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAorICAgICAgICAgICAgICAgICAgICBh
bGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJs
aWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0czogWyJ1c2IiXSB9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBjcmVkZW50aWFsSUQs
IHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTog
InB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbImJsZSJdIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRp
YWxJRCwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0KKyAgICAgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAgICAgICAgcmV0dXJuIHByb21p
c2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KG9wdGlvbnMpLCAiTm8gbWF0Y2hlZCBjcmVkZW50aWFscyBhcmUgZm91bmQgaW4gdGhlIHBsYXRm
b3JtIGF0dGFjaGVkIGF1dGhlbnRpY2F0b3IuIik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBjcmVkZW50aWFscyBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAi
Tm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5v
IG1hdGNoZWQgY3JlZGVudGlhbHMgYXJlIGZvdW5kIGluIHRoZSBwbGF0Zm9ybSBhdHRhY2hlZCBh
dXRoZW50aWNhdG9yLiIpOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0
XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNh
dG9yLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgICBjb25zdCBvcHRpb25z
ID0gewotICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdl
OiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgYWxsb3dDcmVk
ZW50aWFsczogWwotICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6
IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCkgfQotICAgICAgICAgICAgICAg
IF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBwdWJsaWNL
ZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgi
MTIzNDU2IiksCisgICAgICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBh
cnNlKHVzZXJoYW5kbGVCYXNlNjQpIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQ
cml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAg
ICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRFcnJvciIsIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucyksICJObyBtYXRjaGVkIGNyZWRlbnRpYWxzIGFyZSBmb3Vu
ZCBpbiB0aGUgcGxhdGZvcm0gYXR0YWNoZWQgYXV0aGVudGljYXRvci4iKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmFkZFRlc3RLZXlUb0tleWNoYWluKHByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB1
c2VyaGFuZGxlQmFzZTY0KTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAi
Tm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk5v
IG1hdGNoZWQgY3JlZGVudGlhbHMgYXJlIGZvdW5kIGluIHRoZSBwbGF0Zm9ybSBhdHRhY2hlZCBh
dXRoZW50aWNhdG9yLiIpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hh
aW4odGVzdFJwSWQpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXlj
aGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CiAgICAgICAgICAgICB9KTsKLSAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBubyBtYXRjaGVkIGNyZWRlbnRp
YWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAybmQiKTsKKyAgICAgICAgfSwgIlB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggbm8gbWF0Y2hlZCBjcmVkZW50aWFscyBp
biBhIG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gMm5kIik7CiAKLSAgICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6
IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYi
KQotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFycmF5KCIx
MjM0NTYiKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9L
ZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwgdGVzdFVzZXJoYW5k
bGVCYXNlNjQpOwotICAgICAgICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIk5vdEFsbG93ZWRF
cnJvciIsIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJDb3VsZG4ndCBnZXQg
dXNlciBjb25zZW50LiIpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RS
cElkKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1d
IHdpdGhvdXQgdXNlciBjb25zZW50IGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuYWRkVGVzdEtleVRvS2V5Y2hhaW4ocHJpdmF0ZUtl
eUJhc2U2NCwgdGVzdFJwSWQsIHVzZXJoYW5kbGVCYXNlNjQpOworICAgICAgICAgICAgcmV0dXJu
IHByb21pc2VSZWplY3RzKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0KG9wdGlvbnMpLCAiQ291bGRuJ3QgZ2V0IHVzZXIgY29uc2VudC4iKS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYW5VcEtleWNoYWluKHRlc3RScElkLCB1c2VyaGFuZGxlQmFz
ZTY0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbZ2V0XV0gd2l0aG91dCB1c2VyIGNvbnNlbnQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0
b3IuIik7CiAKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7Ci0gICAgICAgICAgICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6
IGFzY2lpVG9VaW50OEFycmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBhbGxvd0NyZWRl
bnRpYWxzOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
QmFzZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbInVz
YiJdIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbIm5mYyJd
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0
VVJMLnBhcnNlKHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImJsZSJdIH0K
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwCi0gICAgICAg
ICAgICB9Ci0gICAgICAgIH07CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAg
ICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpLAor
ICAgICAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAg
ICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IGNyZWRlbnRpYWxJRCwgdHJhbnNwb3J0
czogWyJ1c2IiXSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVibGljLWtl
eSIsIGlkOiBjcmVkZW50aWFsSUQsIHRyYW5zcG9ydHM6IFsibmZjIl0gfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogY3JlZGVudGlhbElELCB0cmFu
c3BvcnRzOiBbImJsZSJdIH0KKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAgICAgdGltZW91dDogMTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OwogCi0g
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7Ci0g
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCBpbiBhIG1v
Y2sgbG9jYWwgYXV0aGVudGljYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9taXNlUmVq
ZWN0cyh0LCAiTm90QWxsb3dlZEVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKSwgIk9wZXJhdGlvbiB0aW1lZCBvdXQuIik7CisgICAgICAgIH0sICJQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0
b3IuIik7CisgICAgfSkoKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbAppbmRleCA3M2FlY2NmNWFjODhkZWUz
NmFkY2NhNTgxMDU1NTMyM2FjYjhiMWJkLi5mMjI4OGVmMTg1YzE4ZGNlMDA4NzUwYmJhZGY5OTVk
MzRiODQxOGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nl
c3MtbG9jYWwuaHR0cHMuaHRtbApAQCAtNCw3MCArNCw3NSBAQAogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4vcmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICAvLyBEZWZhdWx0IG1vY2sg
Y29uZmlndXJhdGlvbi4gVGVzdHMgbmVlZCB0byBvdmVycmlkZSBpZiB0aGV5IG5lZWQgZGlmZmVy
ZW50IGNvbmZpZ3VyYXRpb24uCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0
ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBsb2NhbDog
eyBhY2NlcHRBdXRoZW50aWNhdGlvbjogdHJ1ZSwgYWNjZXB0QXR0ZXN0YXRpb246IGZhbHNlIH0g
fSk7Ci0KLSAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKQotICAgIHsKKyAgICAo
YXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IHVzZXJoYW5kbGVCYXNlNjQgPSBnZW5l
cmF0ZVVzZXJoYW5kbGVCYXNlNjQoKTsKKyAgICAgICAgY29uc3QgcHJpdmF0ZUtleUJhc2U2NCA9
IGF3YWl0IGdlbmVyYXRlUHJpdmF0ZUtleUJhc2U2NCgpOworICAgICAgICBjb25zdCBjcmVkZW50
aWFsSUQgPSBhd2FpdCBjYWxjdWxhdGVDcmVkZW50aWFsSUQocHJpdmF0ZUtleUJhc2U2NCk7Cisg
ICAgICAgIC8vIERlZmF1bHQgbW9jayBjb25maWd1cmF0aW9uLiBUZXN0cyBuZWVkIHRvIG92ZXJy
aWRlIGlmIHRoZXkgbmVlZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbi4KICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhblVwS2V5Y2hhaW4o
dGVzdFJwSWQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1v
Y2tDb25maWd1cmF0aW9uKHsgbG9jYWw6IHsgYWNjZXB0QXV0aGVudGljYXRpb246IHRydWUsIGFj
Y2VwdEF0dGVzdGF0aW9uOiBmYWxzZSwgcHJlZmVycmVkVXNlcmhhbmRsZUJhc2U2NDogdXNlcmhh
bmRsZUJhc2U2NCB9IH0pOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGNyZWRlbnRp
YWwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFuVXBLZXljaGFpbih0ZXN0UnBJZCwgdXNlcmhhbmRs
ZUJhc2U2NCk7CiAKLSAgICAgICAgIC8vIENoZWNrIHJlc3BvbmQKLSAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhCYXNlNjRVUkwucGFyc2UoY3JlZGVudGlhbC5pZCksIEJhc2U2NFVSTC5wYXJz
ZSh0ZXN0Q3JlZGVudGlhbElkQmFzZTY0KSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVu
dGlhbC50eXBlLCAncHVibGljLWtleScpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5l
dyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmF3SWQpLCBCYXNlNjRVUkwucGFyc2UodGVzdENyZWRl
bnRpYWxJZEJhc2U2NCkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmlu
ZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhu
LmdldCIsImNoYWxsZW5nZSI6Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MyJ9Jyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNUb0hleFN0cmluZyhjcmVkZW50
aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUpLCAiMDAwMTAyMDMwNDA1MDYwNzA4MDkiKTsKLSAgICAg
ICAgYXNzZXJ0X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRz
KCksICJhcHBpZCIpOworICAgICAgICAgICAgIC8vIENoZWNrIHJlc3BvbmQKKyAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoQmFzZTY0VVJMLnBhcnNlKGNyZWRlbnRpYWwuaWQpLCBjcmVk
ZW50aWFsSUQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdw
dWJsaWMta2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFy
cmF5KGNyZWRlbnRpYWwucmF3SWQpLCBjcmVkZW50aWFsSUQpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhieXRlc1RvQVNDSUlTdHJpbmcoY3JlZGVudGlhbC5yZXNwb25zZS5jbGllbnREYXRh
SlNPTiksICd7InR5cGUiOiJ3ZWJhdXRobi5nZXQiLCJjaGFsbGVuZ2UiOiJNVEl6TkRVMiIsIm9y
aWdpbiI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMifScpOworICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhuZXcgVWludDhBcnJheShjcmVkZW50aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUp
LCBCYXNlNjRVUkwucGFyc2UodXNlcmhhbmRsZUJhc2U2NCkpOworICAgICAgICAgICAgYXNzZXJ0
X25vdF9leGlzdHMoY3JlZGVudGlhbC5nZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCksICJhcHBp
ZCIpOwogCi0gICAgICAgIC8vIENoZWNrIGF1dGhEYXRhCi0gICAgICAgIGNvbnN0IGF1dGhEYXRh
ID0gZGVjb2RlQXV0aERhdGEobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS5hdXRo
ZW50aWNhdG9yRGF0YSkpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmco
YXV0aERhdGEucnBJZEhhc2gpLCAiNDk5NjBkZTU4ODBlOGM2ODc0MzQxNzBmNjQ3NjYwNWI4ZmU0
YWViOWEyODYzMmM3OTk1Y2YzYmE4MzFkOTc2MyIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGF1
dGhEYXRhLmZsYWdzLCA1KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhhdXRoRGF0YS5jb3VudGVy
LCAwKTsKKyAgICAgICAgICAgIC8vIENoZWNrIGF1dGhEYXRhCisgICAgICAgICAgICBjb25zdCBh
dXRoRGF0YSA9IGRlY29kZUF1dGhEYXRhKG5ldyBVaW50OEFycmF5KGNyZWRlbnRpYWwucmVzcG9u
c2UuYXV0aGVudGljYXRvckRhdGEpKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnl0ZXNU
b0hleFN0cmluZyhhdXRoRGF0YS5ycElkSGFzaCksICI0OTk2MGRlNTg4MGU4YzY4NzQzNDE3MGY2
NDc2NjA1YjhmZTRhZWI5YTI4NjMyYzc5OTVjZjNiYTgzMWQ5NzYzIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCA1KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoYXV0aERhdGEuY291bnRlciwgMCk7CiAKLSAgICAgICAgLy8gQ2hlY2sgc2lnbmF0dXJlCi0g
ICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgQmFzZTY0VVJMLnBh
cnNlKHRlc3RFUzI1NlB1YmxpY0tleUJhc2U2NCksIHsgbmFtZTogIkVDRFNBIiwgbmFtZWRDdXJ2
ZTogIlAtMjU2IiB9LCBmYWxzZSwgWyd2ZXJpZnknXSkudGhlbiggcHVibGljS2V5ID0+IHsKLSAg
ICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgic2hhLTI1NiIsIGNyZWRlbnRp
YWwucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLnRoZW4gKCBoYXNoID0+IHsKLSAgICAgICAgICAg
ICAgICAvLyBjcmVkZW50aWFsLnJlc3BvbnNlLnNpZ25hdHVyZSBpcyBpbiBBU04uMSBhbmQgV2Vi
Q3J5cHRvIGV4cGVjdCBzaWduYXR1cmVzIHByb3ZpZGVzIGluIHJ8cy4KLSAgICAgICAgICAgICAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS52ZXJpZnkoe25hbWU6ICJFQ0RTQSIsIGhhc2g6ICJTSEEt
MjU2In0sIHB1YmxpY0tleSwgZXh0cmFjdFJhd1NpZ25hdHVyZShjcmVkZW50aWFsLnJlc3BvbnNl
LnNpZ25hdHVyZSksIGNvbmNhdGVuYXRlQnVmZmVycyhjcmVkZW50aWFsLnJlc3BvbnNlLmF1dGhl
bnRpY2F0b3JEYXRhLCBoYXNoKSkudGhlbiggdmVyaWZpZWQgPT4gewotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZSh2ZXJpZmllZCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9u
b3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpLCAiYXBwaWQi
KTsKKyAgICAgICAgICAgIC8vIENoZWNrIHNpZ25hdHVyZQorICAgICAgICAgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBCYXNlNjRVUkwucGFyc2UocHJpdmF0ZUtleUJh
c2U2NCkuc2xpY2UoMCwgNjUpLCB7IG5hbWU6ICJFQ0RTQSIsIG5hbWVkQ3VydmU6ICJQLTI1NiIg
fSwgZmFsc2UsIFsndmVyaWZ5J10pLnRoZW4oIHB1YmxpY0tleSA9PiB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJzaGEtMjU2IiwgY3JlZGVudGlhbC5yZXNw
b25zZS5jbGllbnREYXRhSlNPTikudGhlbiAoIGhhc2ggPT4geworICAgICAgICAgICAgICAgICAg
ICAvLyBjcmVkZW50aWFsLnJlc3BvbnNlLnNpZ25hdHVyZSBpcyBpbiBBU04uMSBhbmQgV2ViQ3J5
cHRvIGV4cGVjdCBzaWduYXR1cmVzIHByb3ZpZGVzIGluIHJ8cy4KKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAiRUNEU0EiLCBoYXNoOiAiU0hB
LTI1NiJ9LCBwdWJsaWNLZXksIGV4dHJhY3RSYXdTaWduYXR1cmUoY3JlZGVudGlhbC5yZXNwb25z
ZS5zaWduYXR1cmUpLCBjb25jYXRlbmF0ZUJ1ZmZlcnMoY3JlZGVudGlhbC5yZXNwb25zZS5hdXRo
ZW50aWNhdG9yRGF0YSwgaGFzaCkpLnRoZW4oIHZlcmlmaWVkID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHZlcmlmaWVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9ub3RfZXhpc3RzKGNyZWRlbnRpYWwuZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygp
LCAiYXBwaWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgICAgICB9CiAKLSAgICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJz
ZSgiTVRJek5EVTIiKQotICAgICAgICAgICAgfQotICAgICAgICB9OworICAgICAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
ICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVS
TC5wYXJzZSgiTVRJek5EVTIiKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CiAK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5h
ZGRUZXN0S2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCB0ZXN0UnBJZCwg
dGVzdFVzZXJoYW5kbGVCYXNlNjQpOwotICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4gewotICAgICAgICAgICAgcmV0dXJu
IGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOwotICAgICAgICB9KTsKLSAgICB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4gYSBtb2NrIGxvY2Fs
IGF1dGhlbnRpY2F0b3IuIik7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5
QmFzZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4gewor
ICAgICAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBt
aW5pbXVtIG9wdGlvbnMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiAKLSAgICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJz
ZSgiTVRJek5EVTIiKSwKLSAgICAgICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCi0gICAg
ICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwgdHJhbnNwb3J0czogWyJpbnRlcm5hbCJdIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDogQmFzZTY0VVJMLnBhcnNl
KHRlc3RDcmVkZW50aWFsSWRCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQotICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKKyAgICAgICAgcHJvbWlz
ZV90ZXN0KHQgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRV
UkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgICAgIGFsbG93Q3JlZGVudGlh
bHM6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
QmFzZTY0VVJMLnBhcnNlKHVzZXJoYW5kbGVCYXNlNjQpLCB0cmFuc3BvcnRzOiBbImludGVybmFs
Il0gfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZTogInB1YmxpYy1rZXkiLCBpZDog
Y3JlZGVudGlhbElELCB0cmFuc3BvcnRzOiBbImludGVybmFsIl0gfQorICAgICAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKIAotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmFkZFRlc3RLZXlUb0tl
eWNoYWluKHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQsIHRlc3RScElkLCB0ZXN0VXNlcmhhbmRs
ZUJhc2U2NCk7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlv
bnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gY2hlY2tSZXN1bHQo
Y3JlZGVudGlhbCk7Ci0gICAgICAgIH0pOwotICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRoIG1hdGNoZWQgYWxsb3cgY3JlZGVudGlhbHMgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIik7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5hZGRUZXN0S2V5VG9LZXljaGFpbihwcml2YXRlS2V5QmFz
ZTY0LCB0ZXN0UnBJZCwgdXNlcmhhbmRsZUJhc2U2NCk7CisgICAgICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAg
ICAgICAgICAgICAgIHJldHVybiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtYXRj
aGVkIGFsbG93IGNyZWRlbnRpYWxzIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOwor
ICAgIH0pKCk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cmVzb3VyY2VzL3V0aWwuanMKaW5kZXggMWI5MTNiNGRhZGIwZGQwYWNiYmY5ZmI1Y2FlMDgzMzcw
NTcyODk3ZC4uYTA2YzE5YTNjYzQ2MzBmNmI5OTk5ZjAzYTgyZWFjZWVlNWNlZjkzMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMKQEAgLTMs
OSArMyw2IEBAIGNvbnN0IHRlc3RFUzI1NlByaXZhdGVLZXlCYXNlNjQgPQogICAgICJCRGovenhT
a3pLZ2FCdVMzY2RXREY1NThvZjhBYUlwZ0Zwc2pGL1FtMTc0OVZCSlBncVVJd2ZoV0hKOTFuYjdV
IiArCiAgICAgIlBINzZjMCtXRk96WktzbFB5eUZzZTRnb0dJVzJSN2s5VkhMUEVabDVuZm5CZ0VW
Rmg1emV2Ky94cEhRSXZ1cTYiICsKICAgICAiUlE9PSI7Ci1jb25zdCB0ZXN0RVMyNTZQdWJsaWNL
ZXlCYXNlNjQgPQotICAgICJCRGovenhTa3pLZ2FCdVMzY2RXREY1NThvZjhBYUlwZ0Zwc2pGL1Ft
MTc0OVZCSlBncVVJd2ZoV0hKOTFuYjdVIiArCi0gICAgIlBINzZjMCtXRk96WktzbFB5eUZzZTRn
PSI7CiBjb25zdCB0ZXN0UnBJZCA9ICJsb2NhbGhvc3QiOwogY29uc3QgdGVzdFVzZXJoYW5kbGVC
YXNlNjQgPSAiQUFFQ0F3UUZCZ2NJQ1E9PSI7CiBjb25zdCB0ZXN0QXR0ZXN0YXRpb25DZXJ0aWZp
Y2F0ZUJhc2U2NCA9CkBAIC00MzYsMyArNDMzLDQzIEBAIGZ1bmN0aW9uIGNoZWNrVTJmR2V0QXNz
ZXJ0aW9uUmVzdWx0KGNyZWRlbnRpYWwsIGlzQXBwSUQgPSBmYWxzZSwgYXBwSURIYXNoID0gImMy
CiAgICAgYXNzZXJ0X2VxdWFscyhhdXRoRGF0YS5mbGFncywgMSk7CiAgICAgYXNzZXJ0X2VxdWFs
cyhhdXRoRGF0YS5jb3VudGVyLCA1OSk7CiB9CisKK2Z1bmN0aW9uIGdlbmVyYXRlVXNlcmhhbmRs
ZUJhc2U2NCgpCit7CisgICAgbGV0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDE2KTsKKyAgICBj
cnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ1ZmZlcik7CisgICAgcmV0dXJuIGJ0b2EoU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseSgwLCBidWZmZXIpKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZ2VuZXJh
dGVQcml2YXRlS2V5QmFzZTY0KCkKK3sKKyAgICBjb25zdCBhbGdvcml0aG1LZXlHZW4gPSB7Cisg
ICAgICAgIG5hbWU6ICJFQ0RTQSIsCisgICAgICAgIG5hbWVkQ3VydmU6ICJQLTI1NiIKKyAgICB9
OworICAgIGNvbnN0IGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworICAgIGNvbnN0IGtleVBhaXIgPSBh
d2FpdCBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFi
bGUsIFsic2lnbiIsICJ2ZXJpZnkiXSk7CisgICAgY29uc3QgandrUHJpdmF0ZUtleSA9IGF3YWl0
IGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXlQYWlyLnByaXZhdGVLZXkpOworCisg
ICAgY29uc3QgeCA9IEJhc2U2NFVSTC5wYXJzZShqd2tQcml2YXRlS2V5LngpOworICAgIGNvbnN0
IHkgPSBCYXNlNjRVUkwucGFyc2UoandrUHJpdmF0ZUtleS55KTsKKyAgICBjb25zdCBkID0gQmFz
ZTY0VVJMLnBhcnNlKGp3a1ByaXZhdGVLZXkuZCk7CisKKyAgICBsZXQgYnVmZmVyID0gbmV3IFVp
bnQ4QXJyYXkoeC5sZW5ndGggKyB5Lmxlbmd0aCArIGQubGVuZ3RoICsgMSk7CisgICAgYnVmZmVy
WzBdID0gMHgwNDsKKyAgICBsZXQgcG9zID0gMTsKKyAgICBidWZmZXIuc2V0KHgsIHBvcyk7Cisg
ICAgcG9zICs9IHgubGVuZ3RoOworICAgIGJ1ZmZlci5zZXQoeSwgcG9zKTsKKyAgICBwb3MgKz0g
eS5sZW5ndGg7CisgICAgYnVmZmVyLnNldChkLCBwb3MpOworCisgICAgcmV0dXJuIGJ0b2EoU3Ry
aW5nLmZyb21DaGFyQ29kZS5hcHBseSgwLCBidWZmZXIpKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
Y2FsY3VsYXRlQ3JlZGVudGlhbElEKHByaXZhdGVLZXlCYXNlNjQpIHsKKyAgICBjb25zdCBwcml2
YXRlS2V5ID0gQmFzZTY0VVJMLnBhcnNlKHByaXZhdGVLZXlCYXNlNjQpOworICAgIGNvbnN0IHB1
YmxpY0tleSA9IHByaXZhdGVLZXkuc2xpY2UoMCwgNjUpOworICAgIHJldHVybiBuZXcgVWludDhB
cnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgic2hhLTEiLCBwdWJsaWNLZXkpKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2
MGE3MmQ5Zjc5Yjk4MjgxNmNiM2RiNDZkODQ0ODllMzczNjVmOGJlLi5lOGVhOTY5YzJmNjUxZWJi
YTJkOTkzMjNkMzA4YjA3MjY4OTUxYjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC05MDMsOCArOTAzLDYgQEAgaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwg
WyBTa2lwIF0KIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFp
bHVyZS1sb2NhbC5odHRwcy5odG1sIFsgU2tpcCBdCiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwgWyBTa2lw
IF0KIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1s
b2NhbC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9jcmVkZW50aWFsLW1hbmFnZW1lbnQv
Y3JlZGVudGlhbHNjb250YWluZXItc3RvcmUtYmFzaWNzLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0
dHAvd3B0L3dlYmF1dGhuL2lkbC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgTkZDIHN1cHBvcnQg
cmVxdWlyZSBDYXRhbGluYSssIHRoZXJlZm9yZSBza2lwIHRoZW0gZm9yIEhpZ2hTaWVycmEgYW5k
IE1vamF2ZS4KIFsgSGlnaFNpZXJyYSBNb2phdmUgXSBodHRwL3dwdC93ZWJhdXRobi9jdGFwLW5m
Yy1mYWlsdXJlLmh0dHBzLmh0bWwgWyBTa2lwIF0K
</data>
<flag name="commit-queue"
          id="394994"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>