<?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>170694</bug_id>
          
          <creation_ts>2017-04-10 14:40:40 -0700</creation_ts>
          <short_desc>REGRESSION(r215202): Committed incorrectly (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2022-03-01 03:21:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>170622</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>andersca</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296161</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-10 14:40:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/215202 broke the build:
Committed incorrectly (Requested by rniwa on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296163</commentid>
    <comment_count>1</comment_count>
      <attachid>306745</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-10 14:40:55 -0700</bug_when>
    <thetext>Created attachment 306745
ROLLOUT of r215202

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846976</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-03-01 03:20:37 -0800</bug_when>
    <thetext>https://github.com/WebKit/WebKit/commit/50b3877a0a56d4c4c477ba2cd6f99280feb8628c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846977</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 03:21:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89611007&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306745</attachid>
            <date>2017-04-10 14:40:55 -0700</date>
            <delta_ts>2022-03-01 03:20:46 -0800</delta_ts>
            <desc>ROLLOUT of r215202</desc>
            <filename>bug-170694-20170410174054.patch</filename>
            <type>text/plain</type>
            <size>117872</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjAyCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjMzYyZGM4Nzg0ZGViZDM0ZTNkZTU3NTRhZGVjM2ZjOTQ4NjMzZDQwLi5iZDg5MjFjYmY1
YTFlOTM1MjIwMmQzODVhZTVkNzRhY2U1ZDAyOWU5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wNC0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIx
NTIwMi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDY5NAorCisgICAgICAgIENvbW1pdHRlZCBpbmNvcnJlY3RseSAoUmVxdWVzdGVkIGJ5IHJuaXdh
IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAi
QWRkIHRoZSBVSSBmb3Igc2NoZWR1bGluZyBhIEEvQiB0ZXN0aW5nIHdpdGggYSBjdXN0b20gcm9v
dCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYy
MgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTUyMDIKKwogMjAx
Ny0wNC0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQg
dGhlIFVJIGZvciBzY2hlZHVsaW5nIGEgQS9CIHRlc3Rpbmcgd2l0aCBhIGN1c3RvbSByb290CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvUmVhZE1lLm1kIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL1JlYWRNZS5tZAppbmRleCBmMmFlNzU5ZDhkNTk2ZGJhOWVmYzQ4MDAy
OWZiMGFjODgyOTQ4NmMxLi5mMDJjNzM4YThmY2FhNDM1MzA5ODM0ZjIyMTMwMzQyZGI4ZDMwZmM3
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvUmVhZE1lLm1kCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9SZWFkTWUubWQKQEAgLTcxLDExICs3MSwxMSBAQCBSdW4g
YGRhdGFiYXNlL2luaXQtZGF0YWJhc2Uuc3FsYCBpbiBwc3FsIGFzIGB3ZWJraXQtcGVyZi1kYi11
c2VyYDoKIAogVXNlIGBwZ19kdW1wYCBhbmQgYHBnX3Jlc3RvcmVgIHRvIGJhY2t1cCBhbmQgcmVz
dG9yZSB0aGUgZGF0YWJhc2UuIElmIHlvdSdyZSByZXBsaWNhdGluZyB0aGUgcHJvZHVjdGlvbiBk
YXRhYmFzZSBmb3IgZGV2ZWxvcG1lbnQgcHVycG9zZXMsIHlvdSBtYXkgY29uc2lkZXIgZXhjbHVk
aW5nIGBydW5faXRlcmF0aW9uc2AgdGFibGUsIHdoaWNoIHRha2VzIHVwIDIvMyBvZiB0aGUgc3Rv
cmFnZSBzcGFjZSwgdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBkYXRhYmFzZSBmb3IgeW91ciBs
b2NhbCBjb3B5LiBBZGp1c3QgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IHByb2Nlc3NlcyB0byB1
c2UgYnkgYC0tam9ic2AgYW5kIGFkanVzdCB0aGUgY29tcHJlc3Npb24gbGV2ZWwgYnkgYC0tY29t
cHJlc3NgICgwIGlzIG5vIGNvbXByZXNzaW9uLCA5IGlzIG1vc3QgY29tcHJlc3NlZCkuCiAKLS0g
TWFraW5nIHRoZSBmdWxsYmFja3VwIG9mIHRoZSBkYXRhYmFzZTogYC9BcHBsaWNhdGlvbnMvU2Vy
dmVyLmFwcC9Db250ZW50cy9TZXJ2ZXJSb290L3Vzci9iaW4vcGdfZHVtcCAtaCBsb2NhbGhvc3Qg
d2Via2l0LXBlcmYtZGIgLS1mb3JtYXQ9ZGlyZWN0b3J5IC0tam9icz00IC0tbm8tb3duZXIgLS1j
b21wcmVzcz03IC0tZmlsZT08cGF0aCB0byBiYWNrdXAgZGlyZWN0b3J5PmAKKy0gTWFraW5nIHRo
ZSBmdWxsYmFja3VwIG9mIHRoZSBkYXRhYmFzZTogYC9BcHBsaWNhdGlvbnMvU2VydmVyLmFwcC9D
b250ZW50cy9TZXJ2ZXJSb290L3Vzci9iaW4vcGdfZHVtcCAtaCBsb2NhbGhvc3Qgd2Via2l0LXBl
cmYtZGIgLS1mb3JtYXQ9ZGlyZWN0b3J5IC0tZmlsZT08cGF0aCB0byBiYWNrdXAgZGlyZWN0b3J5
PiAtLWpvYnM9NCAtLW5vLW93bmVyIC0tY29tcHJlc3M9N2AKIAotLSBNYWtpbmcgYW4gYWJyaWRn
ZWQgYmFja3VwIHdpdGhvdXQgYHJ1bl9pdGVyYXRpb25zYCB0YWJsZTogYC9BcHBsaWNhdGlvbnMv
U2VydmVyLmFwcC9Db250ZW50cy9TZXJ2ZXJSb290L3Vzci9iaW4vcGdfZHVtcCAtaCBsb2NhbGhv
c3Qgd2Via2l0LXBlcmYtZGIgLS1mb3JtYXQ9ZGlyZWN0b3J5IC0tam9icz00IC0tbm8tb3duZXIg
LS1jb21wcmVzcz03IC0tZXhjbHVkZS10YWJsZT1ydW5faXRlcmF0aW9ucyAtLWZpbGU9PHBhdGgg
dG8gYmFja3VwIGRpcmVjdG9yeT5gCistIE1ha2luZyBhbiBhYnJpZGdlZCBiYWNrdXAgd2l0aG91
dCBgcnVuX2l0ZXJhdGlvbnNgIHRhYmxlOiBgL0FwcGxpY2F0aW9ucy9TZXJ2ZXIuYXBwL0NvbnRl
bnRzL1NlcnZlclJvb3QvdXNyL2Jpbi9wZ19kdW1wIC1oIGxvY2FsaG9zdCB3ZWJraXQtcGVyZi1k
YiAtLWZvcm1hdD1kaXJlY3RvcnkgLS1maWxlPTxwYXRoIHRvIGJhY2t1cCBkaXJlY3Rvcnk+IC0t
am9icz00IC0tbm8tb3duZXIgLS1jb21wcmVzcz03IC0tZXhjbHVkZS10YWJsZT1ydW5faXRlcmF0
aW9uc2AKIAotLSBSZXN0b3JpbmcgdGhlIGRhdGFiYXNlOiBgL0FwcGxpY2F0aW9ucy9TZXJ2ZXIu
YXBwL0NvbnRlbnRzL1NlcnZlclJvb3QvdXNyL2Jpbi9wZ19yZXN0b3JlIC0tZm9ybWF0PWRpcmVj
dG9yeSAtLWpvYnM9NCAtLW5vLW93bmVyIC0taG9zdCBsb2NhbGhvc3QgLS11c2VybmFtZT13ZWJr
aXQtcGVyZi1kYi11c2VyIC0tZGJuYW1lPXdlYmtpdC1wZXJmLWRiIDxwYXRoIHRvIGJhY2t1cCBk
aXJlY3Rvcnk+YAorLSBSZXN0b3JpbmcgdGhlIGRhdGFiYXNlOiBgL0FwcGxpY2F0aW9ucy9TZXJ2
ZXIuYXBwL0NvbnRlbnRzL1NlcnZlclJvb3QvdXNyL2Jpbi9wZ19yZXN0b3JlIC0tZm9ybWF0PWRp
cmVjdG9yeSAtLWpvYnM9NCAtLW5vLW93bmVyIC0taG9zdCBsb2NhbGhvc3QgLS11c2VybmFtZT13
ZWJraXQtcGVyZi1kYi11c2VyIDxwYXRoIHRvIGJhY2t1cCBkaXJlY3Rvcnk+IC0tZGJuYW1lPXdl
YmtpdC1wZXJmLWRiYAogICAgIAogIyMgQ29uZmlndXJpbmcgQXBhY2hlCiAKQEAgLTg4LDcgKzg4
LDcgQEAgVXNlIGBwZ19kdW1wYCBhbmQgYHBnX3Jlc3RvcmVgIHRvIGJhY2t1cCBhbmQgcmVzdG9y
ZSB0aGUgZGF0YWJhc2UuIElmIHlvdSdyZSByZXAKIAogIyMjIEluc3RydWN0aW9ucyBpZiB5b3Un
cmUgbm90IHVzaW5nIFNlcnZlci5hcHAKIAotIC0gRWRpdCBgL3ByaXZhdGUvZXRjL2FwYWNoZTIv
aHR0cGQuY29uZmAKKyAtIEVkaXQgL3ByaXZhdGUvZXRjL2FwYWNoZTIvaHR0cGQuY29uZgogCiAg
ICAgIDEuIENoYW5nZSBEb2N1bWVudFJvb3QgdG8gYC9Wb2x1bWVzL0RhdGEvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9gCiAgICAgIDIuIFVuY29tbWVudCBgTG9hZE1vZHVsZSBwaHA1X21vZHVsZSBs
aWJleGVjL2FwYWNoZTIvbGlicGhwNS5zb2AKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0
LWRhdGFiYXNlLnNxbAppbmRleCA4YTE1M2U5ZjI4YzVmYmYxMWNkOThkODAzNzYzZTA1MmRkY2Mw
NThkLi5hNDQ4Y2JmOGEzNThiOTQwYjcwOTM1ZmYzMzNhYWM3MjcxYjdkNjI2IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0yMDQsOCArMjA0LDggQEAg
Q1JFQVRFIFRBQkxFIGFuYWx5c2lzX3Rhc2tzICgKICAgICB0YXNrX3NlZ21lbnRhdGlvbiBpbnRl
Z2VyIFJFRkVSRU5DRVMgYW5hbHlzaXNfc3RyYXRlZ2llcywKICAgICB0YXNrX3Rlc3RfcmFuZ2Ug
aW50ZWdlciBSRUZFUkVOQ0VTIGFuYWx5c2lzX3N0cmF0ZWdpZXMsCiAgICAgdGFza19jcmVhdGVk
X2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1F
IFpPTkUgJ1VUQycpLAotICAgIHRhc2tfcGxhdGZvcm0gaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRm
b3JtcywKLSAgICB0YXNrX21ldHJpYyBpbnRlZ2VyIFJFRkVSRU5DRVMgdGVzdF9tZXRyaWNzLAor
ICAgIHRhc2tfcGxhdGZvcm0gaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRmb3JtcyBOT1QgTlVMTCwK
KyAgICB0YXNrX21ldHJpYyBpbnRlZ2VyIFJFRkVSRU5DRVMgdGVzdF9tZXRyaWNzIE5PVCBOVUxM
LAogICAgIHRhc2tfc3RhcnRfcnVuIGludGVnZXIgUkVGRVJFTkNFUyB0ZXN0X3J1bnMsCiAgICAg
dGFza19zdGFydF9ydW5fdGltZSB0aW1lc3RhbXAsCiAgICAgdGFza19lbmRfcnVuIGludGVnZXIg
UkVGRVJFTkNFUyB0ZXN0X3J1bnMsCkBAIC0yMTMsMTMgKzIxMyw4IEBAIENSRUFURSBUQUJMRSBh
bmFseXNpc190YXNrcyAoCiAgICAgdGFza19yZXN1bHQgYW5hbHlzaXNfdGFza19yZXN1bHRfdHlw
ZSwKICAgICB0YXNrX25lZWRlZCBib29sZWFuLAogICAgIENPTlNUUkFJTlQgYW5hbHlzaXNfdGFz
a19zaG91bGRfYmVfdW5pcXVlX2Zvcl9yYW5nZSBVTklRVUUodGFza19zdGFydF9ydW4sIHRhc2tf
ZW5kX3J1biksCi0gICAgQ09OU1RSQUlOVCBhbmFseXNpc190YXNrX211c3RfYmVfYXNzb2NpYXRl
ZF93aXRoX3J1bl9vcl9iZV9jdXN0b20KLSAgICAgICAgQ0hFQ0sgKCh0YXNrX3N0YXJ0X3J1biBJ
UyBOVUxMIEFORCB0YXNrX3N0YXJ0X3J1bl90aW1lIElTIE5VTEwKLSAgICAgICAgICAgICAgICBB
TkQgdGFza19lbmRfcnVuIElTIE5VTEwgQU5EIHRhc2tfZW5kX3J1bl90aW1lIElTIE5VTEwKLSAg
ICAgICAgICAgICAgICBBTkQgdGFza19wbGF0Zm9ybSBJUyBOVUxMIEFORCB0YXNrX21ldHJpYyBJ
UyBOVUxMKQotICAgICAgICAgICAgT1IgKHRhc2tfc3RhcnRfcnVuIElTIE5PVCBOVUxMIEFORCB0
YXNrX3N0YXJ0X3J1bl90aW1lIElTIE5PVCBOVUxMCi0gICAgICAgICAgICAgICAgQU5EIHRhc2tf
ZW5kX3J1biBJUyBOT1QgTlVMTCBBTkQgdGFza19lbmRfcnVuX3RpbWUgSVMgTk9UIE5VTEwKLSAg
ICAgICAgICAgICAgICBBTkQgdGFza19wbGF0Zm9ybSBJUyBOT1QgTlVMTCBBTkQgdGFza19tZXRy
aWMgSVMgTk9UIE5VTEwpKSk7CisgICAgQ09OU1RSQUlOVCBhbmFseXNpc190YXNrX3Nob3VsZF9u
b3RfYmVfYXNzb2NpYXRlZF93aXRoX3NpbmdsZV9ydW4KKyAgICAgICAgQ0hFQ0sgKCh0YXNrX3N0
YXJ0X3J1biBJUyBOVUxMIEFORCB0YXNrX2VuZF9ydW4gSVMgTlVMTCkgT1IgKHRhc2tfc3RhcnRf
cnVuIElTIE5PVCBOVUxMIEFORCB0YXNrX2VuZF9ydW4gSVMgTk9UIE5VTEwpKSk7CiAKIENSRUFU
RSBUQUJMRSB0YXNrX2NvbW1pdHMgKAogICAgIHRhc2tjb21taXRfdGFzayBpbnRlZ2VyIE5PVCBO
VUxMIFJFRkVSRU5DRVMgYW5hbHlzaXNfdGFza3MgT04gREVMRVRFIENBU0NBREUsCkBAIC0yODUs
OSArMjgwLDcgQEAgQ1JFQVRFIFRBQkxFIGNvbW1pdF9zZXRzICgKIAogQ1JFQVRFIFRBQkxFIGNv
bW1pdF9zZXRfcmVsYXRpb25zaGlwcyAoCiAgICAgY29tbWl0c2V0X3NldCBpbnRlZ2VyIFJFRkVS
RU5DRVMgY29tbWl0X3NldHMgTk9UIE5VTEwsCi0gICAgY29tbWl0c2V0X2NvbW1pdCBpbnRlZ2Vy
IFJFRkVSRU5DRVMgY29tbWl0cywKLSAgICBjb21taXRzZXRfcm9vdF9maWxlIGludGVnZXIgUkVG
RVJFTkNFUyB1cGxvYWRlZF9maWxlcywKLSAgICBDT05TVFJBSU5UIGNvbW1pdHNldF9tdXN0X2hh
dmVfY29tbWl0X29yX3Jvb3QgQ0hFQ0sgKGNvbW1pdHNldF9jb21taXQgSVMgTk9UIE5VTEwgT1Ig
Y29tbWl0c2V0X3Jvb3RfZmlsZSBJUyBOT1QgTlVMTCkpOworICAgIGNvbW1pdHNldF9jb21taXQg
aW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdHMgTk9UIE5VTEwpOwogCiBDUkVBVEUgVFlQRSBidWls
ZF9yZXF1ZXN0X3N0YXR1c190eXBlIGFzIEVOVU0gKCdwZW5kaW5nJywgJ3NjaGVkdWxlZCcsICdy
dW5uaW5nJywgJ2ZhaWxlZCcsICdjb21wbGV0ZWQnLCAnY2FuY2VsZWQnKTsKIENSRUFURSBUQUJM
RSBidWlsZF9yZXF1ZXN0cyAoCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggNzZiOWM4NmQzYmI0MmY5NWE3MmVi
YTM0NzY0YmE2YTM2OTI1NmIwNC4uNGYzMjE4ZDQ3OGM4MDQ0OTg0YzJlY2E3MTdkYTQxOTlmODE3
YjE3YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVp
bGQtcmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBp
L2J1aWxkLXJlcXVlc3RzLnBocApAQCAtMzUsNyArMzUsNiBAQCBmdW5jdGlvbiBtYWluKCRpZCwg
JHBhdGgsICRwb3N0X2RhdGEpIHsKICAgICAgICAgJ2J1aWxkUmVxdWVzdHMnID0+ICRyZXNvbHZl
X2lkID8gJHJlcXVlc3RzX2ZldGNoZXItPnJlc3VsdHNfd2l0aF9yZXNvbHZlZF9pZHMoKSA6ICRy
ZXF1ZXN0c19mZXRjaGVyLT5yZXN1bHRzKCksCiAgICAgICAgICdjb21taXRTZXRzJyA9PiAkcmVx
dWVzdHNfZmV0Y2hlci0+Y29tbWl0X3NldHMoKSwKICAgICAgICAgJ2NvbW1pdHMnID0+ICRyZXF1
ZXN0c19mZXRjaGVyLT5jb21taXRzKCksCi0gICAgICAgICd1cGxvYWRlZEZpbGVzJyA9PiAkcmVx
dWVzdHNfZmV0Y2hlci0+dXBsb2FkZWRfZmlsZXMoKSwKICAgICApKTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvY29tbWl0cy5waHAgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9jb21taXRzLnBocAppbmRleCAyNTk1MTYy
N2ZiYTU5YzRkYjA2N2U3ZThiNTJhYjZkYjcyMzQyNjY5Li41NDMxNmRiYjdlZmI0M2M2YWFmYTlm
YmRkNTMwMmNmMDIzMmE3NTA3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9jb21taXRzLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2FwaS9jb21taXRzLnBocApAQCAtMzAsMTQgKzMwLDcgQEAgZnVuY3Rpb24gbWFpbigkcGF0
aHMpIHsKICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ29sZGVzdCcpIHsKICAgICAgICAgJGNv
bW1pdHMgPSAkZmV0Y2hlci0+ZmV0Y2hfb2xkZXN0KCRyZXBvc2l0b3J5X2lkKTsKICAgICB9IGVs
c2UgaWYgKCRmaWx0ZXIgPT0gJ2xhdGVzdCcpIHsKLSAgICAgICAgJHBsYXRmb3JtX2lkID0gYXJy
YXlfZ2V0KCRfR0VULCAncGxhdGZvcm0nKTsKLSAgICAgICAgaWYgKCRwbGF0Zm9ybV9pZCkgewot
ICAgICAgICAgICAgaWYgKCFpc19udW1lcmljKCRwbGF0Zm9ybV9pZCkpCi0gICAgICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUGxhdGZvcm0nLCBhcnJheSgncGxhdGZvcm0nID0+
ICRwbGF0Zm9ybV9pZCkpOwotICAgICAgICAgICAgJHBsYXRmb3JtX2lkID0gaW50dmFsKCRwbGF0
Zm9ybV9pZCk7Ci0gICAgICAgICAgICAkY29tbWl0cyA9ICRmZXRjaGVyLT5mZXRjaF9sYXRlc3Rf
Zm9yX3BsYXRmb3JtKCRyZXBvc2l0b3J5X2lkLCAkcGxhdGZvcm1faWQpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICRjb21taXRzID0gJGZldGNoZXItPmZldGNoX2xhdGVzdCgkcmVwb3Np
dG9yeV9pZCk7CisgICAgICAgICRjb21taXRzID0gJGZldGNoZXItPmZldGNoX2xhdGVzdCgkcmVw
b3NpdG9yeV9pZCk7CiAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsYXN0LXJlcG9ydGVkJykg
ewogICAgICAgICAkZnJvbSA9IGFycmF5X2dldCgkX0dFVCwgJ2Zyb20nKTsKICAgICAgICAgJHRv
ID0gYXJyYXlfZ2V0KCRfR0VULCAndG8nKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvYXBpL3Rlc3QtZ3JvdXBzLnBocAppbmRleCA4Y2RkNjk2ZTVjMDg0YjgwMzVk
Mzk4MzJiYjM5ZDBjYjE2ZjNjM2Q4Li5mNDhlMDIyMmZlYjkwNmFhNDU2MWZlNTdjYmFjNDVjYjVl
OGQ3MGRkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS90
ZXN0LWdyb3Vwcy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkv
dGVzdC1ncm91cHMucGhwCkBAIC01NSw4ICs1NSw3IEBAIGZ1bmN0aW9uIG1haW4oJHBhdGgpIHsK
ICAgICBleGl0X3dpdGhfc3VjY2VzcyhhcnJheSgndGVzdEdyb3VwcycgPT4gJHRlc3RfZ3JvdXBz
LAogICAgICAgICAnYnVpbGRSZXF1ZXN0cycgPT4gJGJ1aWxkX3JlcXVlc3RzLAogICAgICAgICAn
Y29tbWl0U2V0cycgPT4gJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPmNvbW1pdF9zZXRzKCksCi0g
ICAgICAgICdjb21taXRzJyA9PiAkYnVpbGRfcmVxdWVzdHNfZmV0Y2hlci0+Y29tbWl0cygpLAot
ICAgICAgICAndXBsb2FkZWRGaWxlcycgPT4gJGJ1aWxkX3JlcXVlc3RzX2ZldGNoZXItPnVwbG9h
ZGVkX2ZpbGVzKCkpKTsKKyAgICAgICAgJ2NvbW1pdHMnID0+ICRidWlsZF9yZXF1ZXN0c19mZXRj
aGVyLT5jb21taXRzKCkpKTsKIH0KIAogZnVuY3Rpb24gZm9ybWF0X3Rlc3RfZ3JvdXAoJGdyb3Vw
X3JvdykgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNs
dWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCmluZGV4IDFmNTFjZjYw
Y2MwNTAwNzY2ZDAxMWE4MmQwZTMyMjQyNjdmNTlhMTkuLjlhOTI5YjRiMjhhYjQ5NWU2MWY1OTA5
YjI4N2MyMThjYmRhYTljMzggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAK
QEAgLTEsNyArMSw2IEBACiA8P3BocAogCiByZXF1aXJlX29uY2UoJ3Rlc3QtcGF0aC1yZXNvbHZl
ci5waHAnKTsKLXJlcXVpcmVfb25jZSgndXBsb2FkZWQtZmlsZS1oZWxwZXJzLnBocCcpOwogCiBj
bGFzcyBCdWlsZFJlcXVlc3RzRmV0Y2hlciB7CiAgICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRi
KSB7CkBAIC0xMSw4ICsxMCw2IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdHNGZXRjaGVyIHsKICAgICAg
ICAgJHRoaXMtPmNvbW1pdHNfYnlfaWQgPSBhcnJheSgpOwogICAgICAgICAkdGhpcy0+Y29tbWl0
cyA9IGFycmF5KCk7CiAgICAgICAgICR0aGlzLT5jb21taXRfc2V0c19ieV9pZCA9IGFycmF5KCk7
Ci0gICAgICAgICR0aGlzLT51cGxvYWRlZF9maWxlcyA9IGFycmF5KCk7Ci0gICAgICAgICR0aGlz
LT51cGxvYWRlZF9maWxlc19ieV9pZCA9IGFycmF5KCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24g
ZmV0Y2hfZm9yX3Rhc2soJHRhc2tfaWQpIHsKQEAgLTg2LDM3ICs4MywyNyBAQCBjbGFzcyBCdWls
ZFJlcXVlc3RzRmV0Y2hlciB7CiAgICAgICAgIHJldHVybiAkcmVxdWVzdHM7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gY29tbWl0X3NldHMoKSB7IHJldHVybiAkdGhpcy0+Y29tbWl0X3NldHM7IH0K
LSAgICBmdW5jdGlvbiBjb21taXRzKCkgeyByZXR1cm4gJHRoaXMtPmNvbW1pdHM7IH0KLSAgICBm
dW5jdGlvbiB1cGxvYWRlZF9maWxlcygpIHsgcmV0dXJuICR0aGlzLT51cGxvYWRlZF9maWxlczsg
fQorICAgIGZ1bmN0aW9uIGNvbW1pdF9zZXRzKCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPmNv
bW1pdF9zZXRzOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbW1pdHMoKSB7CisgICAgICAgIHJl
dHVybiAkdGhpcy0+Y29tbWl0czsKKyAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIGZldGNo
X2NvbW1pdHNfZm9yX3NldF9pZl9uZWVkZWQoJGNvbW1pdF9zZXRfaWQsICRyZXNvbHZlX2lkcykg
ewogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X3NldF9pZCwgJHRoaXMtPmNv
bW1pdF9zZXRzX2J5X2lkKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAkY29tbWl0
X3Jvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqCi0gICAgICAg
ICAgICBGUk9NIGNvbW1pdF9zZXRfcmVsYXRpb25zaGlwcyBMRUZUIE9VVEVSIEpPSU4gIGNvbW1p
dHMgT04gY29tbWl0c2V0X2NvbW1pdCA9IGNvbW1pdF9pZAotICAgICAgICAgICAgICAgIExFRlQg
T1VURVIgSk9JTiByZXBvc2l0b3JpZXMgT04gcmVwb3NpdG9yeV9pZCA9IGNvbW1pdF9yZXBvc2l0
b3J5Ci0gICAgICAgICAgICAgICAgV0hFUkUgY29tbWl0c2V0X3NldCA9ICQxJywgYXJyYXkoJGNv
bW1pdF9zZXRfaWQpKTsKKyAgICAgICAgICAgIEZST00gY29tbWl0X3NldF9yZWxhdGlvbnNoaXBz
LCBjb21taXRzIExFRlQgT1VURVIgSk9JTiByZXBvc2l0b3JpZXMgT04gY29tbWl0X3JlcG9zaXRv
cnkgPSByZXBvc2l0b3J5X2lkCisgICAgICAgICAgICBXSEVSRSBjb21taXRzZXRfY29tbWl0ID0g
Y29tbWl0X2lkIEFORCBjb21taXRzZXRfc2V0ID0gJDEnLCBhcnJheSgkY29tbWl0X3NldF9pZCkp
OwogCiAgICAgICAgICRjb21taXRfaWRzID0gYXJyYXkoKTsKLSAgICAgICAgJGN1c3RvbV9yb290
cyA9IGFycmF5KCk7Ci0KICAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9yb3dzIGFzICRyb3cpIHsK
ICAgICAgICAgICAgICRyZXBvc2l0b3J5X2lkID0gJHJlc29sdmVfaWRzID8gJHJvd1sncmVwb3Np
dG9yeV9uYW1lJ10gOiAkcm93WydyZXBvc2l0b3J5X2lkJ107CiAgICAgICAgICAgICAkcmV2aXNp
b24gPSAkcm93Wydjb21taXRfcmV2aXNpb24nXTsKICAgICAgICAgICAgICRjb21taXRfdGltZSA9
ICRyb3dbJ2NvbW1pdF90aW1lJ107Ci0KLSAgICAgICAgICAgICRyb290X2ZpbGVfaWQgPSAkcm93
Wydjb21taXRzZXRfcm9vdF9maWxlJ107Ci0gICAgICAgICAgICBpZiAoJHJvb3RfZmlsZV9pZCkg
ewotICAgICAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkcm9vdF9maWxlX2lkLCAk
dGhpcy0+dXBsb2FkZWRfZmlsZXNfYnlfaWQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICR1cGxv
YWRlZF9maWxlX3JvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2ZpcnN0X3JvdygndXBsb2FkZWRfZmls
ZXMnLCAnZmlsZScsIGFycmF5KCdpZCcgPT4gJHJvb3RfZmlsZV9pZCkpOwotICAgICAgICAgICAg
ICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT51cGxvYWRlZF9maWxlcywgZm9ybWF0X3VwbG9hZGVk
X2ZpbGUoJHVwbG9hZGVkX2ZpbGVfcm93KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGFycmF5X3B1c2goJGN1c3RvbV9yb290cywgJHJvb3RfZmlsZV9pZCk7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGFycmF5X3B1
c2goJGNvbW1pdF9pZHMsICRyb3dbJ2NvbW1pdF9pZCddKTsKIAogICAgICAgICAgICAgJGNvbW1p
dF9pZCA9ICRyb3dbJ2NvbW1pdF9pZCddOwpAQCAtMTM0LDcgKzEyMSw3IEBAIGNsYXNzIEJ1aWxk
UmVxdWVzdHNGZXRjaGVyIHsKIAogICAgICAgICAkdGhpcy0+Y29tbWl0X3NldHNfYnlfaWRbJGNv
bW1pdF9zZXRfaWRdID0gVFJVRTsKIAotICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT5jb21taXRf
c2V0cywgYXJyYXkoJ2lkJyA9PiAkY29tbWl0X3NldF9pZCwgJ2NvbW1pdHMnID0+ICRjb21taXRf
aWRzLCAnY3VzdG9tUm9vdHMnID0+ICRjdXN0b21fcm9vdHMpKTsKKyAgICAgICAgYXJyYXlfcHVz
aCgkdGhpcy0+Y29tbWl0X3NldHMsIGFycmF5KCdpZCcgPT4gJGNvbW1pdF9zZXRfaWQsICdjb21t
aXRzJyA9PiAkY29tbWl0X2lkcykpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVy
LnBocAppbmRleCA0NDIxZTE5NDZkMjhlNGM5ODY4MDQ4N2FlODkzZWE4MmNmZThhZDA0Li43YzE1
NjYwYmJhMTI1NjhlODc5ZGM2ZDdiYmJjZDIzNGE4OWMzN2EyIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocAor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1m
ZXRjaGVyLnBocApAQCAtMTE4LDI4ICsxMTgsNiBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsK
ICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRfc2luZ2xlX2NvbW1pdCgkdGhpcy0+ZGItPnNl
bGVjdF9sYXN0X3JvdygnY29tbWl0cycsICdjb21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4g
JHJlcG9zaXRvcnlfaWQpLCBhcnJheSgndGltZScsICdvcmRlcicpKSk7CiAgICAgfQogCi0gICAg
ZnVuY3Rpb24gZmV0Y2hfbGF0ZXN0X2Zvcl9wbGF0Zm9ybSgkcmVwb3NpdG9yeV9pZCwgJHBsYXRm
b3JtX2lkKQotICAgIHsKLSAgICAgICAgJHF1ZXJ5X3Jlc3VsdCA9ICR0aGlzLT5kYi0+cXVlcnlf
YW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNvbW1pdHMuKiBGUk9NIHRlc3RfcnVucywgYnVpbGRzLCBi
dWlsZF9jb21taXRzLCBjb21taXRzCi0gICAgICAgICAgICBXSEVSRSBydW5fYnVpbGQgPSBidWls
ZF9pZCBBTkQgTk9UIEVYSVNUUyAoU0VMRUNUICogRlJPTSBidWlsZF9yZXF1ZXN0cyBXSEVSRSBy
ZXF1ZXN0X2J1aWxkID0gYnVpbGRfaWQpCi0gICAgICAgICAgICAgICAgQU5EIHJ1bl9jb25maWcg
SU4gKFNFTEVDVCBjb25maWdfaWQgRlJPTSB0ZXN0X2NvbmZpZ3VyYXRpb25zCi0gICAgICAgICAg
ICAgICAgICAgIFdIRVJFIGNvbmZpZ190eXBlID0gJ2N1cnJlbnQnIEFORCBjb25maWdfcGxhdGZv
cm0gPSAkMiBBTkQgY29uZmlnX21ldHJpYwotICAgICAgICAgICAgICAgICAgICAgICAgSU4gKFNF
TEVDVCBtZXRyaWNfaWQgRlJPTSB0ZXN0X21ldHJpY3MsIHRlc3RzIFdIRVJFIG1ldHJpY190ZXN0
ID0gdGVzdF9pZCBhbmQgdGVzdF9wYXJlbnQgSVMgTlVMTCkpCi0gICAgICAgICAgICAgICAgQU5E
IHJ1bl9idWlsZCA9IGJ1aWxkX2lkIEFORCBjb21taXRfYnVpbGQgPSBidWlsZF9pZCBBTkQgYnVp
bGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBjb21taXRfcmVwb3NpdG9yeSA9ICQxCi0gICAgICAg
ICAgICBPUkRFUiBCWSBidWlsZF90aW1lIERFU0MgTElNSVQgMTsiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgJHBsYXRmb3JtX2lkKSk7Ci0gICAgICAgIC8qIFRoaXMgcXVlcnkgaXMgYXBwcm94aW1h
dGlvbi4gSXQgZmluZHMgdGhlIGNvbW1pdCBvZiB0aGUgbGFzdCBidWlsZCBpbnN0ZWFkIG9mIHRo
ZSBsYXN0IGNvbW1pdC4KLSAgICAgICAgV2Ugd291bGQgaWRlYWxseSBydW4gdGhlIGZvbGxvd2lu
ZyBxdWVyeSBidXQgaXQncyBtdWNoIHNsb3dlciB+NzBzIGNvbXBhcmVkIHRvIDMwMG1zLgotICAg
ICAgICAgICAgU0VMRUNUIGNvbW1pdHMuKiwgY29tbWl0X2J1aWxkLCBydW5faWQKLSAgICAgICAg
ICAgICAgICBGUk9NIGNvbW1pdHMsIGJ1aWxkX2NvbW1pdHMsIHRlc3RfcnVucwotICAgICAgICAg
ICAgICAgIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gOSBBTkQgY29tbWl0X2lkID0gYnVpbGRf
Y29tbWl0IEFORCBjb21taXRfYnVpbGQgPSBydW5fYnVpbGQKLSAgICAgICAgICAgICAgICBBTkQg
cnVuX2NvbmZpZyBJTiAoU0VMRUNUIGNvbmZpZ19pZCBGUk9NIHRlc3RfY29uZmlndXJhdGlvbnMg
V0hFUkUgY29uZmlnX3BsYXRmb3JtID0gMzggQU5EIGNvbmZpZ190eXBlID0gJ2N1cnJlbnQnKQot
ICAgICAgICAgICAgICAgIEFORCBOT1QgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIGJ1aWxkX3JlcXVl
c3RzIFdIRVJFIHJlcXVlc3RfYnVpbGQgPSBjb21taXRfYnVpbGQpCi0gICAgICAgICAgICAgICAg
T1JERVIgQlkgY29tbWl0X3RpbWUgREVTQywgY29tbWl0X29yZGVyIERFU0MgTElNSVQgMTsgKi8K
LSAgICAgICAgaWYgKCEkcXVlcnlfcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGFycmF5KCk7
Ci0gICAgICAgIHJldHVybiAkdGhpcy0+Zm9ybWF0X3NpbmdsZV9jb21taXQoJHF1ZXJ5X3Jlc3Vs
dFswXSk7Ci0gICAgfQotCiAgICAgZnVuY3Rpb24gZmV0Y2hfbGFzdF9yZXBvcnRlZCgkcmVwb3Np
dG9yeV9pZCkgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCR0
aGlzLT5kYi0+c2VsZWN0X2xhc3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsIGFycmF5KCdyZXBv
c2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JlcG9ydGVkJyA9PiB0cnVlKSwgYXJyYXkoJ3Rp
bWUnLCAnb3JkZXInKSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKaW5kZXggYThjMzcwNTU4OWVmMzc0ZGMxZGE4YTg3YTc2MGFmOWYzMDQ4YzhhMy4uNjU2
MTA1MDM2Y2M3N2Y0YmMxM2RhYWY3M2UwOGMxZWMxOGMyODZhZiAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cC5waHAKQEAgLTExLDI4ICsxMSwxNiBAQCBmdW5jdGlvbiBtYWlu
KCkKIAogICAgICRhcmd1bWVudHMgPSB2YWxpZGF0ZV9hcmd1bWVudHMoJGRhdGEsIGFycmF5KAog
ICAgICAgICAnbmFtZScgPT4gJy8uKy8nLAotICAgICAgICAndGFzaycgPT4gJ2ludD8nLAorICAg
ICAgICAndGFzaycgPT4gJ2ludCcsCiAgICAgICAgICdyZXBldGl0aW9uQ291bnQnID0+ICdpbnQ/
JywKICAgICApKTsKICAgICAkbmFtZSA9ICRhcmd1bWVudHNbJ25hbWUnXTsKLSAgICAkdGFza19p
ZCA9IGFycmF5X2dldCgkYXJndW1lbnRzLCAndGFzaycpOwotICAgICR0YXNrX25hbWUgPSBhcnJh
eV9nZXQoJGRhdGEsICd0YXNrTmFtZScpOworICAgICR0YXNrX2lkID0gJGFyZ3VtZW50c1sndGFz
ayddOwogICAgICRyZXBldGl0aW9uX2NvdW50ID0gJGFyZ3VtZW50c1sncmVwZXRpdGlvbkNvdW50
J107Ci0gICAgJHBsYXRmb3JtX2lkID0gYXJyYXlfZ2V0KCRkYXRhLCAncGxhdGZvcm0nKTsKLSAg
ICAkdGVzdF9pZCA9IGFycmF5X2dldCgkZGF0YSwgJ3Rlc3QnKTsKICAgICAkcmV2aXNpb25fc2V0
X2xpc3QgPSBhcnJheV9nZXQoJGRhdGEsICdyZXZpc2lvblNldHMnKTsKICAgICAkY29tbWl0X3Nl
dHNfaW5mbyA9IGFycmF5X2dldCgkZGF0YSwgJ2NvbW1pdFNldHMnKTsKIAotICAgIGlmICghJHRh
c2tfaWQgPT0gISR0YXNrX25hbWUpCi0gICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFRh
c2snKTsKLQotICAgIGlmICgkdGFza19pZCkKLSAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1Rhc2sn
LCAkdGFza19pZCwgJy9eXGQrJC8nKTsKLSAgICBpZiAoJHRhc2tfbmFtZSB8fCAkcGxhdGZvcm1f
aWQgfHwgJHRlc3RfaWQpIHsKLSAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1BsYXRmb3JtJywgJHBs
YXRmb3JtX2lkLCAnL15cZCskLycpOwotICAgICAgICByZXF1aXJlX2Zvcm1hdCgnVGVzdCcsICR0
ZXN0X2lkLCAnL15cZCskLycpOwotICAgIH0KLQorICAgIHJlcXVpcmVfZm9ybWF0KCdUYXNrJywg
JHRhc2tfaWQsICcvXlxkKyQvJyk7CiAgICAgaWYgKCEkcmV2aXNpb25fc2V0X2xpc3QgJiYgISRj
b21taXRfc2V0c19pbmZvKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRDb21taXRT
ZXRzJyk7CiAKQEAgLTQxLDY1ICsyOSwzOSBAQCBmdW5jdGlvbiBtYWluKCkKICAgICBlbHNlIGlm
ICgkcmVwZXRpdGlvbl9jb3VudCA8IDEpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxp
ZFJlcGV0aXRpb25Db3VudCcsIGFycmF5KCdyZXBldGl0aW9uQ291bnQnID0+ICRyZXBldGl0aW9u
X2NvdW50KSk7CiAKLSAgICAkdHJpZ2dlcmFibGVfaWQgPSBOVUxMOwotICAgIGlmICgkdGFza19p
ZCkgewotICAgICAgICAkdGFzayA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygnYW5hbHlzaXNfdGFz
a3MnLCAndGFzaycsIGFycmF5KCdpZCcgPT4gJHRhc2tfaWQpKTsKLSAgICAgICAgaWYgKCEkdGFz
aykKLSAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFRhc2snLCBhcnJheSgndGFz
aycgPT4gJHRhc2tfaWQpKTsKLSAgICAgICAgJHRyaWdnZXJhYmxlID0gZmluZF90cmlnZ2VyYWJs
ZV9mb3JfdGFzaygkZGIsICR0YXNrX2lkKTsKLSAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZSkgewot
ICAgICAgICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlWydpZCddOwotICAgICAg
ICAgICAgaWYgKCEkcGxhdGZvcm1faWQgJiYgISR0ZXN0X2lkKSB7Ci0gICAgICAgICAgICAgICAg
JHBsYXRmb3JtX2lkID0gJHRyaWdnZXJhYmxlWydwbGF0Zm9ybSddOwotICAgICAgICAgICAgICAg
ICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0J107Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmICgkdHJpZ2dlcmFibGVbJ3BsYXRmb3JtJ10gJiYgJHBsYXRmb3Jt
X2lkICE9ICR0cmlnZ2VyYWJsZVsncGxhdGZvcm0nXSkKLSAgICAgICAgICAgICAgICAgICAgZXhp
dF93aXRoX2Vycm9yKCdJbmNvbnNpc3RlbnRQbGF0Zm9ybScsIGFycmF5KCdncm91cFBsYXRmb3Jt
JyA9PiAkcGxhdGZvcm1faWQsICd0YXNrUGxhdGZvcm0nID0+ICR0cmlnZ2VyYWJsZVsncGxhdGZv
cm0nXSkpOwotICAgICAgICAgICAgICAgIGlmICgkdHJpZ2dlcmFibGVbJ3Rlc3QnXSAmJiAkdGVz
dF9pZCAhPSAkdHJpZ2dlcmFibGVbJ3Rlc3QnXSkKLSAgICAgICAgICAgICAgICAgICAgZXhpdF93
aXRoX2Vycm9yKCdJbmNvbnNpc3RlbnRUZXN0JywgYXJyYXkoJ2dyb3VwVGVzdCcgPT4gJHRlc3Rf
aWQsICd0YXNrVGVzdCcgPT4gJHRyaWdnZXJhYmxlWyd0ZXN0J10pKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoJHBsYXRmb3JtX2lkICYmICR0ZXN0X2lkKSB7Ci0g
ICAgICAgICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0cmlnY29uZmlnJywKLSAgICAgICAgICAg
IGFycmF5KCd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1faWQpKTsK
LSAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uKQotICAgICAgICAgICAgJHRy
aWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25bJ3RyaWdjb25maWdfdHJp
Z2dlcmFibGUnXTsKLSAgICB9Ci0KLSAgICBpZiAoISR0cmlnZ2VyYWJsZV9pZCkKLSAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdUcmlnZ2VyYWJsZU5vdEZvdW5kRm9yVGFzaycsIGFycmF5KCd0YXNr
JyA9PiAkdGFza19pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1faWQsICd0ZXN0JyA9PiAkdGVz
dF9pZCkpOworICAgICR0YXNrID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdhbmFseXNpc190YXNr
cycsICd0YXNrJywgYXJyYXkoJ2lkJyA9PiAkdGFza19pZCkpOworICAgIGlmICghJHRhc2spCisg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFRhc2snLCBhcnJheSgndGFzaycgPT4gJHRh
c2tfaWQpKTsKKyAgICAkdHJpZ2dlcmFibGUgPSBmaW5kX3RyaWdnZXJhYmxlX2Zvcl90YXNrKCRk
YiwgJHRhc2tfaWQpOworICAgIGlmICghJHRyaWdnZXJhYmxlKQorICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJywgYXJyYXkoJ3Rhc2snID0+ICR0YXNr
X2lkKSk7CiAKICAgICBpZiAoJHJldmlzaW9uX3NldF9saXN0KQotICAgICAgICAkY29tbWl0X3Nl
dHMgPSBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFibGVfaWQs
ICRyZXZpc2lvbl9zZXRfbGlzdCk7CisgICAgICAgICRjb21taXRfc2V0cyA9IGNvbW1pdF9zZXRz
X2Zyb21fcmV2aXNpb25fc2V0cygkZGIsICR0cmlnZ2VyYWJsZVsnaWQnXSwgJHJldmlzaW9uX3Nl
dF9saXN0KTsKICAgICBlbHNlIC8vIFYyIFVJIGNvbXBhdGliaWxpdHkKLSAgICAgICAgJGNvbW1p
dF9zZXRzID0gZW5zdXJlX2NvbW1pdF9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkY29tbWl0
X3NldHNfaW5mbyk7CisgICAgICAgICRjb21taXRfc2V0cyA9IGVuc3VyZV9jb21taXRfc2V0cygk
ZGIsICR0cmlnZ2VyYWJsZVsnaWQnXSwgJGNvbW1pdF9zZXRzX2luZm8pOwogCiAgICAgJGRiLT5i
ZWdpbl90cmFuc2FjdGlvbigpOwogCi0gICAgaWYgKCR0YXNrX25hbWUpCi0gICAgICAgICR0YXNr
X2lkID0gJGRiLT5pbnNlcnRfcm93KCdhbmFseXNpc190YXNrcycsICd0YXNrJywgYXJyYXkoJ25h
bWUnID0+ICR0YXNrX25hbWUsICdhdXRob3InID0+ICRhdXRob3IpKTsKLQogICAgICRjb25maWd1
cmF0aW9uX2xpc3QgPSBhcnJheSgpOwogICAgIGZvcmVhY2ggKCRjb21taXRfc2V0cyBhcyAkY29t
bWl0X2xpc3QpIHsKICAgICAgICAgJGNvbW1pdF9zZXRfaWQgPSAkZGItPmluc2VydF9yb3coJ2Nv
bW1pdF9zZXRzJywgJ2NvbW1pdHNldCcsIGFycmF5KCkpOwotICAgICAgICBmb3JlYWNoICgkY29t
bWl0X2xpc3RbJ3NldCddIGFzICRjb21taXRfcm93KSB7Ci0gICAgICAgICAgICAkY29tbWl0X3Jv
d1snc2V0J10gPSAkY29tbWl0X3NldF9pZDsKLSAgICAgICAgICAgICRkYi0+aW5zZXJ0X3Jvdygn
Y29tbWl0X3NldF9yZWxhdGlvbnNoaXBzJywgJ2NvbW1pdHNldCcsICRjb21taXRfcm93LCAnY29t
bWl0Jyk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9saXN0WydzZXQnXSBh
cyAkY29tbWl0KQorICAgICAgICAgICAgJGRiLT5pbnNlcnRfcm93KCdjb21taXRfc2V0X3JlbGF0
aW9uc2hpcHMnLCAnY29tbWl0c2V0JywgYXJyYXkoJ3NldCcgPT4gJGNvbW1pdF9zZXRfaWQsICdj
b21taXQnID0+ICRjb21taXQpLCAnY29tbWl0Jyk7CiAgICAgICAgIGFycmF5X3B1c2goJGNvbmZp
Z3VyYXRpb25fbGlzdCwgYXJyYXkoJ2NvbW1pdF9zZXQnID0+ICRjb21taXRfc2V0X2lkLCAncmVw
b3NpdG9yeV9ncm91cCcgPT4gJGNvbW1pdF9saXN0WydyZXBvc2l0b3J5X2dyb3VwJ10pKTsKICAg
ICB9CiAKICAgICAkZ3JvdXBfaWQgPSAkZGItPmluc2VydF9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3Jv
dXBzJywgJ3Rlc3Rncm91cCcsCi0gICAgICAgIGFycmF5KCd0YXNrJyA9PiAkdGFza19pZCwgJ25h
bWUnID0+ICRuYW1lLCAnYXV0aG9yJyA9PiAkYXV0aG9yKSk7CisgICAgICAgIGFycmF5KCd0YXNr
JyA9PiAkdGFza1sndGFza19pZCddLCAnbmFtZScgPT4gJG5hbWUsICdhdXRob3InID0+ICRhdXRo
b3IpKTsKIAogICAgICRvcmRlciA9IDA7CiAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHJlcGV0aXRp
b25fY291bnQ7ICRpKyspIHsKICAgICAgICAgZm9yZWFjaCAoJGNvbmZpZ3VyYXRpb25fbGlzdCBh
cyAkY29uZmlnKSB7CiAgICAgICAgICAgICAkZGItPmluc2VydF9yb3coJ2J1aWxkX3JlcXVlc3Rz
JywgJ3JlcXVlc3QnLCBhcnJheSgKLSAgICAgICAgICAgICAgICAndHJpZ2dlcmFibGUnID0+ICR0
cmlnZ2VyYWJsZV9pZCwKKyAgICAgICAgICAgICAgICAndHJpZ2dlcmFibGUnID0+ICR0cmlnZ2Vy
YWJsZVsnaWQnXSwKICAgICAgICAgICAgICAgICAncmVwb3NpdG9yeV9ncm91cCcgPT4gJGNvbmZp
Z1sncmVwb3NpdG9yeV9ncm91cCddLAotICAgICAgICAgICAgICAgICdwbGF0Zm9ybScgPT4gJHBs
YXRmb3JtX2lkLAotICAgICAgICAgICAgICAgICd0ZXN0JyA9PiAkdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAncGxhdGZvcm0nID0+ICR0cmlnZ2VyYWJsZVsncGxhdGZvcm0nXSwKKyAgICAgICAg
ICAgICAgICAndGVzdCcgPT4gJHRyaWdnZXJhYmxlWyd0ZXN0J10sCiAgICAgICAgICAgICAgICAg
J2dyb3VwJyA9PiAkZ3JvdXBfaWQsCiAgICAgICAgICAgICAgICAgJ29yZGVyJyA9PiAkb3JkZXIs
CiAgICAgICAgICAgICAgICAgJ2NvbW1pdF9zZXQnID0+ICRjb25maWdbJ2NvbW1pdF9zZXQnXSwp
KTsKQEAgLTEwOSw3ICs3MSw3IEBAIGZ1bmN0aW9uIG1haW4oKQogCiAgICAgJGRiLT5jb21taXRf
dHJhbnNhY3Rpb24oKTsKIAotICAgIGV4aXRfd2l0aF9zdWNjZXNzKGFycmF5KCd0YXNrSWQnID0+
ICR0YXNrX2lkLCAndGVzdEdyb3VwSWQnID0+ICRncm91cF9pZCkpOworICAgIGV4aXRfd2l0aF9z
dWNjZXNzKGFycmF5KCd0ZXN0R3JvdXBJZCcgPT4gJGdyb3VwX2lkKSk7CiB9CiAKIGZ1bmN0aW9u
IGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0cygkZGIsICR0cmlnZ2VyYWJsZV9pZCwgJHJl
dmlzaW9uX3NldF9saXN0KQpAQCAtMTI1LDIzICs4NywxNSBAQCBmdW5jdGlvbiBjb21taXRfc2V0
c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFibGVfaWQsICRyZXZpc2lvbl9zZXRf
bGlzdAogCiAgICAgICAgICRjb21taXRfc2V0ID0gYXJyYXkoKTsKICAgICAgICAgJHJlcG9zaXRv
cnlfbGlzdCA9IGFycmF5KCk7CisKICAgICAgICAgZm9yZWFjaCAoJHJldmlzaW9uX3NldCBhcyAk
cmVwb3NpdG9yeV9pZCA9PiAkcmV2aXNpb24pIHsKLSAgICAgICAgICAgIGlmICgkcmVwb3NpdG9y
eV9pZCA9PSAnY3VzdG9tUm9vdHMnKSB7Ci0gICAgICAgICAgICAgICAgJGZpbGVfaWRfbGlzdCA9
ICRyZXZpc2lvbjsKLSAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmlsZV9pZF9saXN0IGFzICRm
aWxlX2lkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghJGRiLT5zZWxlY3RfZmlyc3Rfcm93
KCd1cGxvYWRlZF9maWxlcycsICdmaWxlJywgYXJyYXkoJ2lkJyA9PiAkZmlsZV9pZCkpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkVXBsb2FkZWRGaWxl
JywgYXJyYXkoJ2ZpbGUnID0+ICRmaWxlX2lkKSk7Ci0gICAgICAgICAgICAgICAgICAgIGFycmF5
X3B1c2goJGNvbW1pdF9zZXQsIGFycmF5KCdyb290X2ZpbGUnID0+ICRmaWxlX2lkKSk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKCFpc19udW1lcmljKCRyZXBvc2l0b3J5X2lkKSkKICAgICAgICAgICAg
ICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBvc2l0b3J5JywgYXJyYXkoJ3JlcG9zaXRv
cnknID0+ICRyZXBvc2l0b3J5X2lkKSk7CiAgICAgICAgICAgICAkY29tbWl0ID0gJGRiLT5zZWxl
Y3RfZmlyc3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsCiAgICAgICAgICAgICAgICAgYXJyYXko
J3JlcG9zaXRvcnknID0+IGludHZhbCgkcmVwb3NpdG9yeV9pZCksICdyZXZpc2lvbicgPT4gJHJl
dmlzaW9uKSk7CiAgICAgICAgICAgICBpZiAoISRjb21taXQpCiAgICAgICAgICAgICAgICAgZXhp
dF93aXRoX2Vycm9yKCdSZXZpc2lvbk5vdEZvdW5kJywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRy
ZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbikpOwotICAgICAgICAgICAgYXJy
YXlfcHVzaCgkY29tbWl0X3NldCwgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdFsnY29tbWl0X2lk
J10pKTsKKyAgICAgICAgICAgIGFycmF5X3B1c2goJGNvbW1pdF9zZXQsICRjb21taXRbJ2NvbW1p
dF9pZCddKTsKICAgICAgICAgICAgIGFycmF5X3B1c2goJHJlcG9zaXRvcnlfbGlzdCwgJHJlcG9z
aXRvcnlfaWQpOwogICAgICAgICB9CiAKQEAgLTE3Myw3ICsxMjcsNyBAQCBmdW5jdGlvbiBlbnN1
cmVfY29tbWl0X3NldHMoJGRiLCAkdHJpZ2dlcmFibGVfaWQsICRjb21taXRfc2V0c19pbmZvKSB7
CiAgICAgICAgICAgICBpZiAoISRjb21taXQpCiAgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vy
cm9yKCdSZXZpc2lvbk5vdEZvdW5kJywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X25hbWUsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKSk7CiAgICAgICAgICAgICBhcnJheV9zZXRf
ZGVmYXVsdCgkY29tbWl0X3NldHMsICRpLCBhcnJheSgnc2V0JyA9PiBhcnJheSgpKSk7Ci0gICAg
ICAgICAgICBhcnJheV9wdXNoKCRjb21taXRfc2V0c1skaV1bJ3NldCddLCBhcnJheSgnY29tbWl0
JyA9PiAkY29tbWl0Wydjb21taXRfaWQnXSkpOworICAgICAgICAgICAgYXJyYXlfcHVzaCgkY29t
bWl0X3NldHNbJGldWydzZXQnXSwgJGNvbW1pdFsnY29tbWl0X2lkJ10pOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL3VwbG9hZC1maWxlLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUucGhwCmluZGV4IGFlMWI2MDcwODdiMDc5ZmEz
MmNkMzRkNTNjNzBjMDhiYzgxMzJmYzEuLmJiNjVkYjI4ZTkwZjZhYTk5YjI1ODVjMDJlMzIwODU2
MGY0Y2E1ODIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJp
dmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvdXBsb2FkLWZpbGUucGhwCkBAIC0xMCw3ICsxMCw3IEBA
IGRlZmluZSgnTUVHQUJZVEVTJywgMTAyNCAqIDEwMjQpOwogZnVuY3Rpb24gbWFpbigpCiB7CiAg
ICAgaWYgKGFycmF5X2dldCgkX1NFUlZFUiwgJ0NPTlRFTlRfTEVOR1RIJykgJiYgZW1wdHkoJF9Q
T1NUKSAmJiBlbXB0eSgkX0ZJTEVTKSkKLSAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGaWxlU2l6
ZUxpbWl0RXhjZWVkZWQnKTsKKyAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGaWxlU2l6ZUxpbWl0
RXhjZWVkZWQyJyk7CiAKICAgICBpZiAoIXZlcmlmeV90b2tlbihhcnJheV9nZXQoJF9QT1NULCAn
dG9rZW4nKSkpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFRva2VuJyk7CkBAIC0y
Miw5ICsyMiw2IEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGlmICghJGlucHV0X2ZpbGUpCiAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignTm9GaWxlU3BlY2lmaWVkJyk7CiAKLSAgICBpZiAoJGlucHV0
X2ZpbGVbJ2Vycm9yJ10gPT0gVVBMT0FEX0VSUl9JTklfU0laRSB8fCAkaW5wdXRfZmlsZVsnZXJy
b3InXSA9PSBVUExPQURfRVJSX0ZPUk1fU0laRSkKLSAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdG
aWxlU2l6ZUxpbWl0RXhjZWVkZWQnKTsKLQogICAgIGlmICgkaW5wdXRfZmlsZVsnZXJyb3InXSAh
PSBVUExPQURfRVJSX09LKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvVXBsb2Fk
RmlsZScsIGFycmF5KCduYW1lJyA9PiAkaW5wdXRfZmlsZVsnbmFtZSddLCAnZXJyb3InID0+ICRp
bnB1dF9maWxlWydlcnJvciddKSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvaW5kZXguaHRtbAppbmRleCBjYTg0ODI1NGRkZTM1MjYxN2E5MTk5MjQxNmZmNDYzYTkx
OTE3OTA0Li4yMGE1ZDRmNWMxZTAwZjQyOGMzMjE0YWNjMjAxZTlhODQ1OGY2ZWE3IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCkBAIC02NSw3ICs2
NSw2IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVlZCB1cCB0aGUgbG9hZCB0
aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL2J1aWxk
LXJlcXVlc3QuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL2NvbW1p
dC1zZXQuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL3RyaWdnZXJh
YmxlLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Im1vZGVscy91cGxvYWRlZC1m
aWxlLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Im1vZGVscy9tYW5pZmVzdC5q
cyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHNjcmlwdCBzcmM9ImNvbXBvbmVudHMvYmFzZS5qcyI+
PC9zY3JpcHQ+CkBAIC05Miw4ICs5MSw2IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0
byBzcGVlZCB1cCB0aGUgbG9hZCB0aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2Ny
aXB0IHNyYz0iY29tcG9uZW50cy9tdXRhYmxlLWxpc3Qtdmlldy5qcyI+PC9zY3JpcHQ+CiAgICAg
ICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL2FuYWx5c2lzLXRhc2stYnVnLWxpc3QuanMiPjwv
c2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iY29tcG9uZW50cy9yYXRpby1iYXItZ3JhcGgu
anMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iY29tcG9uZW50cy9jdXN0b20tYW5h
bHlzaXMtdGFzay1jb25maWd1cmF0b3IuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNy
Yz0iY29tcG9uZW50cy9pbnN0YW50LWZpbGUtdXBsb2FkZXIuanMiPjwvc2NyaXB0PgogCiAgICAg
ICAgIDxzY3JpcHQgc3JjPSJwYWdlcy9wYWdlLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlw
dCBzcmM9InBhZ2VzL3BhZ2Utcm91dGVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpz
CmluZGV4IDI5MjNhMTA2ZGRiM2QzZGFmZTFjYzg4YWVkZjI4ZTRjMGZjNWQ1YmYuLmE1MGU5NmI5
ZTBjMWQ1M2ViZGFmMjE0NGU0YTgwMWNmM2QzZWE0MTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwpA
QCAtNywxMCArNywxMCBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0
IHsKICAgICAgICAgdGhpcy5fYXV0aG9yID0gb2JqZWN0LmF1dGhvcjsKICAgICAgICAgdGhpcy5f
Y3JlYXRlZEF0ID0gb2JqZWN0LmNyZWF0ZWRBdDsKIAotICAgICAgICBjb25zb2xlLmFzc2VydCgh
b2JqZWN0LnBsYXRmb3JtIHx8IG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZv
cm0pOwogICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKIAotICAgICAg
ICBjb25zb2xlLmFzc2VydCghb2JqZWN0Lm1ldHJpYyB8fCBvYmplY3QubWV0cmljIGluc3RhbmNl
b2YgTWV0cmljKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0Lm1ldHJpYyBpbnN0YW5j
ZW9mIE1ldHJpYyk7CiAgICAgICAgIHRoaXMuX21ldHJpYyA9IG9iamVjdC5tZXRyaWM7CiAKICAg
ICAgICAgdGhpcy5fc3RhcnRNZWFzdXJlbWVudElkID0gb2JqZWN0LnN0YXJ0UnVuOwpAQCAtMjks
MTEgKzI5LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAK
ICAgICBzdGF0aWMgZmluZEJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1JZCwgbWV0cmljSWQp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5hbGwoKS5maWx0ZXIoKHRhc2spID0+IHsKLSAg
ICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gdGFzay5fcGxhdGZvcm07Ci0gICAgICAgICAgICBj
b25zdCBtZXRyaWMgPSB0YXNrLl9tZXRyaWM7Ci0gICAgICAgICAgICByZXR1cm4gcGxhdGZvcm0g
JiYgbWV0cmljICYmIHBsYXRmb3JtLmlkKCkgPT0gcGxhdGZvcm1JZCAmJiBtZXRyaWMuaWQoKSA9
PSBtZXRyaWNJZDsKLSAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB0aGlzLmFsbCgpLmZpbHRl
cihmdW5jdGlvbiAodGFzaykgeyByZXR1cm4gdGFzay5fcGxhdGZvcm0uaWQoKSA9PSBwbGF0Zm9y
bUlkICYmIHRhc2suX21ldHJpYy5pZCgpID09IG1ldHJpY0lkOyB9KTsKICAgICB9CiAKICAgICB1
cGRhdGVTaW5nbGV0b24ob2JqZWN0KQpAQCAtNTksOCArNTUsNyBAQCBjbGFzcyBBbmFseXNpc1Rh
c2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgdGhpcy5fZmluaXNoZWRCdWlsZFJl
cXVlc3RDb3VudCA9ICtvYmplY3QuZmluaXNoZWRCdWlsZFJlcXVlc3RDb3VudDsKICAgICB9CiAK
LSAgICBpc0N1c3RvbSgpIHsgcmV0dXJuICF0aGlzLl9wbGF0Zm9ybTsgfQotICAgIGhhc1Jlc3Vs
dHMoKSB7IHJldHVybiAhIXRoaXMuX2ZpbmlzaGVkQnVpbGRSZXF1ZXN0Q291bnQ7IH0KKyAgICBo
YXNSZXN1bHRzKCkgeyByZXR1cm4gdGhpcy5fZmluaXNoZWRCdWlsZFJlcXVlc3RDb3VudDsgfQog
ICAgIGhhc1BlbmRpbmdSZXF1ZXN0cygpIHsgcmV0dXJuIHRoaXMuX2ZpbmlzaGVkQnVpbGRSZXF1
ZXN0Q291bnQgPCB0aGlzLl9idWlsZFJlcXVlc3RDb3VudDsgfQogICAgIHJlcXVlc3RMYWJlbCgp
IHsgcmV0dXJuIGAke3RoaXMuX2ZpbmlzaGVkQnVpbGRSZXF1ZXN0Q291bnR9IG9mICR7dGhpcy5f
YnVpbGRSZXF1ZXN0Q291bnR9YDsgfQogCkBAIC0yMDYsOCArMjAxLDYgQEAgY2xhc3MgQW5hbHlz
aXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgZm9yICh2YXIgb3RoZXJUYXNrIG9mIEFuYWx5c2lzVGFzay5h
bGwoKSkgewotICAgICAgICAgICAgICAgIGlmICh0YXNrLmlzQ3VzdG9tKCkpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGlmICh0YXNrLmVuZFRpbWUoKSA8
IG90aGVyVGFzay5zdGFydFRpbWUoKQogICAgICAgICAgICAgICAgICAgICB8fCBvdGhlclRhc2su
ZW5kVGltZSgpIDwgdGFzay5zdGFydFRpbWUoKQogICAgICAgICAgICAgICAgICAgICB8fCB0YXNr
Lm1ldHJpYygpICE9IG90aGVyVGFzay5tZXRyaWMoKSkKQEAgLTI2NCw2ICsyNTcsOSBAQCBjbGFz
cyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgZm9yICh2YXIg
cmF3RGF0YSBvZiBkYXRhLmFuYWx5c2lzVGFza3MpIHsKICAgICAgICAgICAgIHJhd0RhdGEucGxh
dGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChyYXdEYXRhLnBsYXRmb3JtKTsKICAgICAgICAgICAg
IHJhd0RhdGEubWV0cmljID0gTWV0cmljLmZpbmRCeUlkKHJhd0RhdGEubWV0cmljKTsKKyAgICAg
ICAgICAgIGlmICghcmF3RGF0YS5wbGF0Zm9ybSB8fCAhcmF3RGF0YS5tZXRyaWMpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisKICAgICAgICAgICAgIHJhd0RhdGEuYnVncyA9IHRhc2tUb0J1
Z1tyYXdEYXRhLmlkXTsKICAgICAgICAgICAgIHJhd0RhdGEuY2F1c2VzID0gcmVzb2x2ZUNvbW1p
dHMocmF3RGF0YS5jYXVzZXMpOwogICAgICAgICAgICAgcmF3RGF0YS5maXhlcyA9IHJlc29sdmVD
b21taXRzKHJhd0RhdGEuZml4ZXMpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggMzFiOGM2NTVh
ZjY2ZjhlM2I4MmJiOTVjY2YzNzhjMjIxNDk5YmE2Zi4uMjk5MDEyZDM3NTdmZjE1NDBmY2JkODFk
NWIzMDdkOWQ5Mjc0YmZhNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC0xMjcsOSArMTI3LDYg
QEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAg
ICAgIGNvbW1pdC5yZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5maW5kQnlJZChjb21taXQucmVwb3Np
dG9yeSk7CiAgICAgICAgIH0KIAotICAgICAgICBmb3IgKGxldCB1cGxvYWRlZEZpbGUgb2YgZGF0
YVsndXBsb2FkZWRGaWxlcyddKQotICAgICAgICAgICAgVXBsb2FkZWRGaWxlLmVuc3VyZVNpbmds
ZXRvbih1cGxvYWRlZEZpbGUuaWQsIHVwbG9hZGVkRmlsZSk7Ci0KICAgICAgICAgY29uc3QgY29t
bWl0U2V0cyA9IGRhdGFbJ2NvbW1pdFNldHMnXS5tYXAoKHJvdykgPT4gewogICAgICAgICAgICAg
cm93LmNvbW1pdHMgPSByb3cuY29tbWl0cy5tYXAoKGNvbW1pdElkKSA9PiBjb21taXRJZE1hcFtj
b21taXRJZF0pOwogICAgICAgICAgICAgcmV0dXJuIENvbW1pdFNldC5lbnN1cmVTaW5nbGV0b24o
cm93LmlkLCByb3cpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKaW5kZXggYmJjZjdhZmViODZlODg3MWM5MWY5ZjJi
MzZmM2UwNjkyYjU2YWQwNy4uNTYyNGFmNTRiZTZlOGRjOGI4ZjU1YWQ2Yjk2NzcyZDUyNjhlYmVi
NSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
Y29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9jb21taXQtbG9nLmpzCkBAIC02OCwyMCArNjgsNiBAQCBjbGFzcyBDb21taXRMb2cgZXh0
ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJlcG9z
aXRvcnksIGxhYmVsOiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uUmFuZ2Uo
ZnJvbSwgdG8pfTsKICAgICB9CiAKLSAgICBzdGF0aWMgZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0
Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHJlcG9zaXRvcnkgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQocGxhdGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7Ci0gICAgICAgIHJldHVybiB0aGlzLmNh
Y2hlZEZldGNoKGAvYXBpL2NvbW1pdHMvJHtyZXBvc2l0b3J5LmlkKCl9L2xhdGVzdGAsIHtwbGF0
Zm9ybTogcGxhdGZvcm0uaWQoKX0pLnRoZW4oKGRhdGEpID0+IHsKLSAgICAgICAgICAgIGNvbnN0
IGNvbW1pdHMgPSBkYXRhWydjb21taXRzJ107Ci0gICAgICAgICAgICBpZiAoIWNvbW1pdHMgfHwg
IWNvbW1pdHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAg
ICAgY29uc3QgcmF3RGF0YSA9IGNvbW1pdHNbMF07Ci0gICAgICAgICAgICByYXdEYXRhLnJlcG9z
aXRvcnkgPSByZXBvc2l0b3J5OwotICAgICAgICAgICAgcmV0dXJuIENvbW1pdExvZy5lbnN1cmVT
aW5nbGV0b24ocmF3RGF0YS5pZCwgcmF3RGF0YSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQogICAg
IHN0YXRpYyBmZXRjaEJldHdlZW5SZXZpc2lvbnMocmVwb3NpdG9yeSwgcHJlY2VkaW5nUmV2aXNp
b24sIGxhc3RSZXZpc2lvbikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgY2FjaGUgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgZmV0Y2hpbmcgYSByYW5nZSB3aXRoaW4gYW4gYWxyZWFkeSBm
ZXRjaGVkIHJhbmdlLCBldGMuLi4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCmluZGV4IGFmNzlmZmYwNGU3YzEwMjdk
MGMxOGMyYmM5YWEwYzkwMjY4ZDdlMzguLmM2Y2E5ZGRkNzViMjdjNDRmM2I2NzgzODgzMWZhZWE1
MjcxMzZiMWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
bW9kZWxzL2NvbW1pdC1zZXQuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvY29tbWl0LXNldC5qcwpAQCAtOCw3ICs4LDYgQEAgY2xhc3MgQ29tbWl0U2V0
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgdGhpcy5fcmVwb3NpdG9yaWVzID0g
W107CiAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcCA9IHt9OwogICAgICAgICB0
aGlzLl9sYXRlc3RDb21taXRUaW1lID0gbnVsbDsKLSAgICAgICAgdGhpcy5fY3VzdG9tUm9vdHMg
PSBbXTsKIAogICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5
LDE0ICsxOCw5IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAg
ICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXBbcmVwb3NpdG9yeUlkXSA9IENv
bW1pdExvZy5lbnN1cmVTaW5nbGV0b24ocm93LmlkLCByb3cpOwogICAgICAgICAgICAgdGhpcy5f
cmVwb3NpdG9yaWVzLnB1c2gocm93LnJlcG9zaXRvcnkpOwogICAgICAgICB9Ci0gICAgICAgIGZv
ciAobGV0IGZpbGVJZCBvZiBvYmplY3QuY3VzdG9tUm9vdHMpIHsKLSAgICAgICAgICAgIGNvbnN0
IHVwbG9hZGVkRmlsZSA9IFVwbG9hZGVkRmlsZS5maW5kQnlJZChmaWxlSWQpOwotICAgICAgICAg
ICAgdGhpcy5fY3VzdG9tUm9vdHMucHVzaCh1cGxvYWRlZEZpbGUpOwotICAgICAgICB9CiAgICAg
fQogCiAgICAgcmVwb3NpdG9yaWVzKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yaWVzOyB9Ci0g
ICAgY3VzdG9tUm9vdHMoKSB7IHJldHVybiB0aGlzLl9jdXN0b21Sb290czsgfQogICAgIGNvbW1p
dEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVRvQ29t
bWl0TWFwW3JlcG9zaXRvcnkuaWQoKV07IH0KIAogICAgIHJldmlzaW9uRm9yUmVwb3NpdG9yeShy
ZXBvc2l0b3J5KQpAQCAtNTUsMTggKzQ5LDYgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0
YU1vZGVsT2JqZWN0IHsKICAgICAgICAgICAgIGlmICh0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRN
YXBbcmVwb3NpdG9yeUlkXSAhPSBvdGhlci5fcmVwb3NpdG9yeVRvQ29tbWl0TWFwW3JlcG9zaXRv
cnlJZF0pCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBDb21taXRTZXQuYXJlQ3VzdG9tUm9vdHNFcXVhbCh0aGlzLl9jdXN0b21Sb290cywg
b3RoZXIuX2N1c3RvbVJvb3RzKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgYXJlQ3VzdG9tUm9vdHNF
cXVhbChjdXN0b21Sb290czEsIGN1c3RvbVJvb3RzMikKLSAgICB7Ci0gICAgICAgIGlmIChjdXN0
b21Sb290czEubGVuZ3RoICE9IGN1c3RvbVJvb3RzMi5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGNvbnN0IHNldDIgPSBuZXcgU2V0KGN1c3RvbVJvb3RzMik7Ci0g
ICAgICAgIGZvciAobGV0IGZpbGUgb2YgY3VzdG9tUm9vdHMxKSB7Ci0gICAgICAgICAgICBpZiAo
IXNldDIuaGFzKGZpbGUpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
fQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEyNCw3ICsxMDYsNiBAQCBjbGFz
cyBDdXN0b21Db21taXRTZXQgewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CiAgICAgICAgIHRo
aXMuX3JldmlzaW9uTGlzdEJ5UmVwb3NpdG9yeSA9IG5ldyBNYXA7Ci0gICAgICAgIHRoaXMuX2N1
c3RvbVJvb3RzID0gW107CiAgICAgfQogCiAgICAgc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHJl
cG9zaXRvcnksIHJldmlzaW9uKQpAQCAtMTMzLDI5ICsxMTQsOSBAQCBjbGFzcyBDdXN0b21Db21t
aXRTZXQgewogICAgICAgICB0aGlzLl9yZXZpc2lvbkxpc3RCeVJlcG9zaXRvcnkuc2V0KHJlcG9z
aXRvcnksIHJldmlzaW9uKTsKICAgICB9CiAKLSAgICBlcXVhbHMob3RoZXIpCi0gICAgewotICAg
ICAgICBjb25zb2xlLmFzc2VydChvdGhlciBpbnN0YW5jZW9mIEN1c3RvbUNvbW1pdFNldCk7Ci0g
ICAgICAgIGlmICh0aGlzLl9yZXZpc2lvbkxpc3RCeVJlcG9zaXRvcnkuc2l6ZSAhPSBvdGhlci5f
cmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LnNpemUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgdGhpcy5fcmV2aXNpb25MaXN0QnlSZXBv
c2l0b3J5LmtleXMoKSkgewotICAgICAgICAgICAgY29uc3QgdGhpc1JldmlzaW9uID0gdGhpcy5f
cmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LmdldChyZXBvc2l0b3J5KTsKLSAgICAgICAgICAgIGNv
bnN0IG90aGVyUmV2aXNpb24gPSBvdGhlci5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LmdldChy
ZXBvc2l0b3J5KTsKLSAgICAgICAgICAgIGlmICh0aGlzUmV2aXNpb24gIT0gb3RoZXJSZXZpc2lv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIENvbW1pdFNldC5hcmVDdXN0b21Sb290c0VxdWFsKHRoaXMuX2N1c3RvbVJvb3RzLCBvdGhl
ci5fY3VzdG9tUm9vdHMpOwotICAgIH0KLQogICAgIHJlcG9zaXRvcmllcygpIHsgcmV0dXJuIEFy
cmF5LmZyb20odGhpcy5fcmV2aXNpb25MaXN0QnlSZXBvc2l0b3J5LmtleXMoKSk7IH0KICAgICBy
ZXZpc2lvbkZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgeyByZXR1cm4gdGhpcy5fcmV2aXNpb25M
aXN0QnlSZXBvc2l0b3J5LmdldChyZXBvc2l0b3J5KTsgfQotICAgIGN1c3RvbVJvb3RzKCkgeyBy
ZXR1cm4gdGhpcy5fY3VzdG9tUm9vdHM7IH0KIAotICAgIGFkZEN1c3RvbVJvb3QodXBsb2FkZWRG
aWxlKQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodXBsb2FkZWRGaWxlIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKLSAgICAgICAgdGhpcy5fY3VzdG9tUm9vdHMucHVzaCh1cGxvYWRl
ZEZpbGUpOwotICAgIH0KIH0KIAogaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpIHsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21h
bmlmZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFu
aWZlc3QuanMKaW5kZXggOTczZjcyMTllNTNlOWQ3OTE1Zjc3MmU4ZjdjOTE0YmJmYTUwNjVkNi4u
Zjg0MzZkYWJjNzA5YmEwYjY5NTJlOWY1NzgwMWU4ZjdjYTIxODRiOSAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKQEAg
LTU3LDkgKzU3LDYgQEAgY2xhc3MgTWFuaWZlc3QgewogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCi0gICAgICAgIGlmICh0eXBlb2YoVXBsb2FkZWRGaWxlKSAhPSAndW5kZWZpbmVkJykK
LSAgICAgICAgICAgIFVwbG9hZGVkRmlsZS5maWxlVXBsb2FkU2l6ZUxpbWl0ID0gcmF3UmVzcG9u
c2UuZmlsZVVwbG9hZFNpemVMaW1pdCB8fCAwOwotCiAgICAgICAgIEluc3RydW1lbnRhdGlvbi5l
bmRNZWFzdXJpbmdUaW1lKCdNYW5pZmVzdCcsICdfZGlkRmV0Y2hNYW5pZmVzdCcpOwogCiAgICAg
ICAgIHJldHVybiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy9tZXRyaWMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9tZXRyaWMuanMKaW5kZXggYTk3NzQ1YWQwY2M2NzFkNDAzOTBjNjI2NGJjM2YxNzAx
Yjc2MDA1ZC4uOWRjNDNjMTdlOGQ2ZGE3OTFjY2E2YjcwMWNmODgwNjNjMDg1OGM5MCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWV0cmljLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21ldHJpYy5q
cwpAQCAtMTE5LDE0ICsxMTksNiBAQCBjbGFzcyBNZXRyaWMgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0
IHsKICAgICAgICAgZm9ybWF0dGVyLmRpdmlzb3IgPSBkaXZpc29yOwogICAgICAgICByZXR1cm4g
Zm9ybWF0dGVyOwogICAgIH07Ci0KLSAgICBzdGF0aWMgZm9ybWF0VGltZSh1dGNUaW1lKQotICAg
IHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5jb3JyZWN0IHdoZW4gdGhlIG9mZnNldCBj
cm9zcyBkYXktbGlmZS1zYXZpbmcgY2hhbmdlLiBJdCdzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0g
ICAgICAgIGNvbnN0IG9mZnNldEluTWludXRlcyA9IChuZXcgRGF0ZSh1dGNUaW1lKSkuZ2V0VGlt
ZXpvbmVPZmZzZXQoKTsKLSAgICAgICAgY29uc3QgdGltZUluTG9jYWxUaW1lWm9uZSA9IG5ldyBE
YXRlKHV0Y1RpbWUgLSBvZmZzZXRJbk1pbnV0ZXMgKiA2MCAqIDEwMDApOwotICAgICAgICByZXR1
cm4gdGltZUluTG9jYWxUaW1lWm9uZS50b0lTT1N0cmluZygpLnJlcGxhY2UoJ1QnLCAnICcpLnJl
cGxhY2UoL1wuXGQrWiQvLCAnJyk7Ci0gICAgfQogfQogCiBpZiAodHlwZW9mIG1vZHVsZSAhPSAn
dW5kZWZpbmVkJykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCmluZGV4IGM1ZjYwOTE4NDg3ZmQ0MzM1NTlmY2QwNzJj
ODk0M2E3Y2U4ZTgzYjEuLjJjYTI2NDk0MzliMDgzNWI5NDYyNDhmMDU4YjhkMDFhODhlMjdhNDAg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rl
c3QtZ3JvdXAuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qcwpAQCAtMTc4LDQ3ICsxNzgsMjYgQEAgY2xhc3MgVGVzdEdyb3VwIGV4
dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHN0YXRpYyBj
cmVhdGVXaXRoVGFzayh0YXNrTmFtZSwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwTmFtZSwgcmVwZXRp
dGlvbkNvdW50LCBjb21taXRTZXRzKQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29t
bWl0U2V0cy5sZW5ndGggPT0gMik7Ci0gICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IHRoaXMu
X3JldmlzaW9uU2V0c0Zyb21Db21taXRTZXRzKGNvbW1pdFNldHMpOwotICAgICAgICBjb25zdCBw
YXJhbXMgPSB7dGFza05hbWUsIG5hbWU6IGdyb3VwTmFtZSwgcGxhdGZvcm06IHBsYXRmb3JtLmlk
KCksIHRlc3Q6IHRlc3QuaWQoKSwgcmVwZXRpdGlvbkNvdW50LCByZXZpc2lvblNldHN9OwotICAg
ICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAn
LCBwYXJhbXMpLnRoZW4oKGRhdGEpID0+IHsKLSAgICAgICAgICAgIHJldHVybiBBbmFseXNpc1Rh
c2suZmV0Y2hCeUlkKGRhdGFbJ3Rhc2tJZCddKTsKLSAgICAgICAgfSkudGhlbigodGFzaykgPT4g
ewotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoVGVzdEdyb3Vwc0ZvclRhc2sodGFzay5p
ZCgpKS50aGVuKCgpID0+IHRhc2spOwotICAgICAgICB9KTsKLSAgICB9Ci0KICAgICBzdGF0aWMg
Y3JlYXRlQW5kUmVmZXRjaFRlc3RHcm91cHModGFzaywgbmFtZSwgcmVwZXRpdGlvbkNvdW50LCBj
b21taXRTZXRzKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY29tbWl0U2V0cy5sZW5n
dGggPT0gMik7Ci0gICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IHRoaXMuX3JldmlzaW9uU2V0
c0Zyb21Db21taXRTZXRzKGNvbW1pdFNldHMpOwotICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7Ci0gICAgICAgICAgICB0YXNrOiB0
YXNrLmlkKCksCi0gICAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAgICAgcmVwZXRpdGlv
bkNvdW50OiByZXBldGl0aW9uQ291bnQsCi0gICAgICAgICAgICByZXZpc2lvblNldHM6IHJldmlz
aW9uU2V0cywKLSAgICAgICAgfSkudGhlbigoZGF0YSkgPT4gdGhpcy5fZmV0Y2hUZXN0R3JvdXBz
Rm9yVGFzayh0YXNrLmlkKCkpKTsKLSAgICB9CiAKLSAgICBzdGF0aWMgX3JldmlzaW9uU2V0c0Zy
b21Db21taXRTZXRzKGNvbW1pdFNldHMpCi0gICAgewotICAgICAgICByZXR1cm4gY29tbWl0U2V0
cy5tYXAoKGNvbW1pdFNldCkgPT4geworICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBjb21t
aXRTZXRzLm1hcCgoY29tbWl0U2V0KSA9PiB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChj
b21taXRTZXQgaW5zdGFuY2VvZiBDdXN0b21Db21taXRTZXQgfHwgY29tbWl0U2V0IGluc3RhbmNl
b2YgQ29tbWl0U2V0KTsKICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0ID0ge307CiAgICAg
ICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIGNvbW1pdFNldC5yZXBvc2l0b3JpZXMoKSkK
ICAgICAgICAgICAgICAgICByZXZpc2lvblNldFtyZXBvc2l0b3J5LmlkKCldID0gY29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsKLSAgICAgICAgICAgIGNvbnN0IGN1
c3RvbVJvb3RzID0gY29tbWl0U2V0LmN1c3RvbVJvb3RzKCk7Ci0gICAgICAgICAgICBpZiAoY3Vz
dG9tUm9vdHMgJiYgY3VzdG9tUm9vdHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHJldmlzaW9u
U2V0WydjdXN0b21Sb290cyddID0gY3VzdG9tUm9vdHMubWFwKCh1cGxvYWRlZEZpbGUpID0+IHVw
bG9hZGVkRmlsZS5pZCgpKTsKICAgICAgICAgICAgIHJldHVybiByZXZpc2lvblNldDsKICAgICAg
ICAgfSk7Ci0gICAgfQogCi0gICAgc3RhdGljIF9mZXRjaFRlc3RHcm91cHNGb3JUYXNrKHRhc2tJ
ZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmNhY2hlZEZldGNoKCcvYXBpL3Rlc3QtZ3Jv
dXBzJywge3Rhc2s6IHRhc2tJZH0sIHRydWUpLnRoZW4oKGRhdGEpID0+IHRoaXMuX2NyZWF0ZU1v
ZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcyhkYXRhKSk7CisgICAgICAgIHJldHVybiBQcml2aWxl
Z2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHsKKyAgICAgICAgICAgIHRh
c2s6IHRhc2suaWQoKSwKKyAgICAgICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAgICAgICByZXBl
dGl0aW9uQ291bnQ6IHJlcGV0aXRpb25Db3VudCwKKyAgICAgICAgICAgIHJldmlzaW9uU2V0czog
cmV2aXNpb25TZXRzLAorICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnL2FwaS90ZXN0LWdyb3VwcycsIHt0YXNrOiB0YXNrLmlk
KCl9LCB0cnVlKS50aGVuKChkYXRhKSA9PiB0aGlzLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRl
c3RHcm91cHMoZGF0YSkpOworICAgICAgICB9KTsKICAgICB9CiAKICAgICBzdGF0aWMgZmV0Y2hC
eVRhc2sodGFza0lkKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwppbmRleCBjNmY4MWUyODJjMTZkMDljMmU0MjEw
NzViMWY0NTY4MmVhMDM1NGMzLi43NTMzMWUzYzdlYTY0MjBiZTI1YjQwZGZlN2Q2YjZjYTJmMTYx
MGM3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy90cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy90cmlnZ2VyYWJsZS5qcwpAQCAtMzcsMTkgKzM3LDYgQEAgY2xhc3MgVHJpZ2dlcmFi
bGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVs
bDsKICAgICB9Ci0KLSAgICBzdGF0aWMgdHJpZ2dlcmFibGVQbGF0Zm9ybXNGb3JUZXN0cyh0ZXN0
cykKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRlc3RzIGluc3RhbmNlb2YgQXJyYXkp
OwotICAgICAgICBpZiAoIXRlc3RzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBbXTsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuc29ydEJ5TmFtZShQbGF0Zm9ybS5hbGwoKS5maWx0ZXIoKHBsYXRm
b3JtKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gdGVzdHMuZXZlcnkoKHRlc3QpID0+IHsKLSAg
ICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RD
b25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJp
Z2dlcmFibGUgJiYgIXRyaWdnZXJhYmxlLmlzRGlzYWJsZWQoKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KSk7Ci0gICAgfQogfQogCiBjbGFzcyBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91
cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewpAQCAtNzcsMjEgKzY0LDYgQEAgY2xhc3MgVHJpZ2dl
cmFibGVSZXBvc2l0b3J5R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICBkZXNjcmlw
dGlvbigpIHsgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uIHx8IHRoaXMubmFtZSgpOyB9CiAgICAg
YWNjZXB0c0N1c3RvbVJvb3RzKCkgeyByZXR1cm4gdGhpcy5fYWNjZXB0c0N1c3RvbVJvb3RzOyB9
CiAgICAgcmVwb3NpdG9yaWVzKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yaWVzOyB9Ci0KLSAg
ICBzdGF0aWMgc29ydEJ5TmFtZVByZWZlcnJpbmdTbWFsbGVyUmVwb3NpdG9yaWVzKGdyb3VwTGlz
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBncm91cExpc3Quc29ydCgoYSwgYikgPT4gewotICAg
ICAgICAgICAgaWYgKGEucmVwb3NpdG9yaWVzKCkubGVuZ3RoIDwgYi5yZXBvc2l0b3JpZXMoKS5s
ZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgZWxzZSBpZiAo
YS5yZXBvc2l0b3JpZXMoKS5sZW5ndGggPiBiLnJlcG9zaXRvcmllcygpLmxlbmd0aCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIGlmIChhLm5hbWUoKSA8IGIubmFtZSgp
KQotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGEubmFt
ZSgpID4gYi5uYW1lKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICAgICAgfSk7Ci0gICAgfQogfQogCiBpZiAodHlwZW9mIG1vZHVsZSAhPSAn
dW5kZWZpbmVkJykgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdXBsb2FkZWQtZmlsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL3VwbG9hZGVkLWZpbGUuanMKaW5kZXggMTkwOWViYWY3MWMyYzI0YmFj
MTY0NmY0Y2E0OTliNDNlMTA5ZjdmNy4uZmQxYzY5MzRkZTc5NmFjM2VlNzhjNzg3N2I3NWIwNmE1
ZDZkOGU0ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvdXBsb2FkZWQtZmlsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy91cGxvYWRlZC1maWxlLmpzCkBAIC0xMiwxNSArMTIsOCBAQCBjbGFzcyBV
cGxvYWRlZEZpbGUgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICB0aGlzLmVuc3Vy
ZU5hbWVkU3RhdGljTWFwKCdzaGEyNTYnKVtvYmplY3Quc2hhMjU2XSA9IHRoaXM7CiAgICAgfQog
Ci0gICAgY3JlYXRlZEF0KCkgeyByZXR1cm4gdGhpcy5fY3JlYXRlZEF0OyB9Ci0gICAgZmlsZW5h
bWUoKSB7IHJldHVybiB0aGlzLl9maWxlbmFtZTsgfQotICAgIGF1dGhvcigpIHsgcmV0dXJuIHRo
aXMuX2F1dGhvcjsgfQotICAgIHNpemUoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9Ci0KICAgICBz
dGF0aWMgdXBsb2FkRmlsZShmaWxlLCB1cGxvYWRQcm9ncmVzc0NhbGxiYWNrID0gbnVsbCkKICAg
ICB7Ci0gICAgICAgIGlmIChmaWxlLnNpemUgPiBVcGxvYWRlZEZpbGUuZmlsZVVwbG9hZFNpemVM
aW1pdCkKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnRmlsZVNpemVMaW1pdEV4
Y2VlZGVkJyk7CiAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGxv
YWQtZmlsZScsIHsnbmV3RmlsZSc6IGZpbGV9LCB7dXNlRm9ybURhdGE6IHRydWUsIHVwbG9hZFBy
b2dyZXNzQ2FsbGJhY2t9KS50aGVuKChyYXdEYXRhKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VXBsb2FkZWRGaWxlLmVuc3VyZVNpbmdsZXRvbihyYXdEYXRhWyd1cGxvYWRlZEZpbGUnXS5pZCwg
cmF3RGF0YVsndXBsb2FkZWRGaWxlJ10pOwogICAgICAgICB9KTsKQEAgLTI4LDggKzIxLDYgQEAg
Y2xhc3MgVXBsb2FkZWRGaWxlIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIHN0YXRp
YyBmZXRjaFVubG9hZGVkRmlsZVdpdGhJZGVudGljYWxIYXNoKGZpbGUpCiAgICAgewotICAgICAg
ICBpZiAoZmlsZS5zaXplID4gVXBsb2FkZWRGaWxlLmZpbGVVcGxvYWRTaXplTGltaXQpCi0gICAg
ICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ZpbGVTaXplTGltaXRFeGNlZWRlZCcpOwog
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAg
ICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICAgICAgIHJlYWRl
ci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpOwpAQCAtNDEsMTEgKzMyLDkg
QEAgY2xhc3MgVXBsb2FkZWRGaWxlIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAg
ICAgIGNvbnN0IG1hcCA9IHRoaXMubmFtZWRTdGF0aWNNYXAoJ3NoYTI1NicpOwogICAgICAgICAg
ICAgaWYgKG1hcCAmJiBzaGEyNTYgaW4gbWFwKQogICAgICAgICAgICAgICAgIHJldHVybiBtYXBb
c2hhMjU2XTsKLSAgICAgICAgICAgIHJldHVybiBSZW1vdGVBUEkuZ2V0SlNPTihgLi4vYXBpL3Vw
bG9hZGVkLWZpbGU/c2hhMjU2PSR7c2hhMjU2fWApLnRoZW4oKHJhd0RhdGEpID0+IHsKLSAgICAg
ICAgICAgICAgICBpZiAocmF3RGF0YVsnc3RhdHVzJ10gPT0gJ05vdEZvdW5kJyB8fCAhcmF3RGF0
YVsndXBsb2FkZWRGaWxlJ10pCisgICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT05X
aXRoU3RhdHVzKGAuLi9hcGkvdXBsb2FkZWQtZmlsZT9zaGEyNTY9JHtzaGEyNTZ9YCkudGhlbigo
cmF3RGF0YSkgPT4geworICAgICAgICAgICAgICAgIGlmICghcmF3RGF0YVsndXBsb2FkZWRGaWxl
J10pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAgIGlm
IChyYXdEYXRhWydzdGF0dXMnXSAhPSAnT0snKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZWplY3QocmF3RGF0YVsnc3RhdHVzJ10pOwogICAgICAgICAgICAgICAgIHJldHVy
biBVcGxvYWRlZEZpbGUuZW5zdXJlU2luZ2xldG9uKHJhd0RhdGFbJ3VwbG9hZGVkRmlsZSddLmlk
LCByYXdEYXRhWyd1cGxvYWRlZEZpbGUnXSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CkBAIC02Myw4ICs1MiwzIEBAIGNsYXNzIFVwbG9hZGVkRmlsZSBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAgICAgfQogCiB9Ci0KLVVwbG9hZGVkRmlsZS5maWxlVXBsb2FkU2l6ZUxpbWl0ID0g
MDsKLQotaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCi0gICAgbW9kdWxlLmV4cG9y
dHMuVXBsb2FkZWRGaWxlID0gVXBsb2FkZWRGaWxlOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy1jYXRlZ29yeS1wYWdlLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy1jYXRlZ29y
eS1wYWdlLmpzCmluZGV4IGFiYWQyOTk1YWFhNjU0NWM5OTRlYjIwMGVjMjE4MjlmMzUxYjFhNTcu
LjliZmI1NTUyZDNjMWFiYTdkMWRhMDg3MGZiNzc3YzM5NzY4YjJhYmQgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtY2F0ZWdvcnkt
cGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2Fu
YWx5c2lzLWNhdGVnb3J5LXBhZ2UuanMKQEAgLTEyMyw5ICsxMjMsMTEgQEAgY2xhc3MgQW5hbHlz
aXNDYXRlZ29yeVBhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICBJbnN0cnVt
ZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdBbmFseXNpc0NhdGVnb3J5UGFnZScsICdyZWNv
bnN0cnVjdFRhc2tMaXN0Jyk7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5yb3V0ZXIo
KSk7Ci0gICAgICAgIGNvbnN0IGN1cnJlbnRDYXRlZ29yeSA9IHRoaXMuX2NhdGVnb3J5VG9vbGJh
ci5jdXJyZW50Q2F0ZWdvcnkoKTsKKyAgICAgICAgdmFyIGN1cnJlbnRDYXRlZ29yeSA9IHRoaXMu
X2NhdGVnb3J5VG9vbGJhci5jdXJyZW50Q2F0ZWdvcnkoKTsKIAotICAgICAgICBjb25zdCB0YXNr
cyA9IEFuYWx5c2lzVGFzay5hbGwoKS5maWx0ZXIoKHRhc2spID0+IHRhc2suY2F0ZWdvcnkoKSA9
PSBjdXJyZW50Q2F0ZWdvcnkpLnNvcnQoKGEsIGIpID0+IHsKKyAgICAgICAgdmFyIHRhc2tzID0g
QW5hbHlzaXNUYXNrLmFsbCgpLmZpbHRlcihmdW5jdGlvbiAodGFzaykgeworICAgICAgICAgICAg
cmV0dXJuIHRhc2suY2F0ZWdvcnkoKSA9PSBjdXJyZW50Q2F0ZWdvcnk7CisgICAgICAgIH0pLnNv
cnQoZnVuY3Rpb24gKGEsIGIpIHsKICAgICAgICAgICAgIGlmIChhLmhhc1BlbmRpbmdSZXF1ZXN0
cygpID09IGIuaGFzUGVuZGluZ1JlcXVlc3RzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGIu
Y3JlYXRlZEF0KCkgLSBhLmNyZWF0ZWRBdCgpOwogICAgICAgICAgICAgZWxzZSBpZiAoYS5oYXNQ
ZW5kaW5nUmVxdWVzdHMoKSkgLy8gYSA8IGIKQEAgLTEzNSwyNSArMTM3LDI1IEBAIGNsYXNzIEFu
YWx5c2lzQ2F0ZWdvcnlQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9KTsKIAotICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9u
ZW50QmFzZS5jcmVhdGVFbGVtZW50OwotICAgICAgICBjb25zdCBsaW5rID0gQ29tcG9uZW50QmFz
ZS5jcmVhdGVMaW5rOwotICAgICAgICBjb25zdCByb3V0ZXIgPSB0aGlzLnJvdXRlcigpOworICAg
ICAgICB2YXIgZWxlbWVudCA9IENvbXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKKyAgICAgICAg
dmFyIGxpbmsgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUxpbms7CisgICAgICAgIHZhciByb3V0ZXIg
PSB0aGlzLnJvdXRlcigpOwogICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50
KCkucXVlcnlTZWxlY3RvcigndGJvZHkuYW5hbHlzaXMtdGFza3MnKSwKLSAgICAgICAgICAgIHRh
c2tzLm1hcCgodGFzaykgPT4gewotICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IEFuYWx5
c2lzQ2F0ZWdvcnlQYWdlLl9jb21wdXRlU3RhdHVzKHRhc2spOworICAgICAgICAgICAgdGFza3Mu
bWFwKGZ1bmN0aW9uICh0YXNrKSB7CisgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IEFuYWx5
c2lzQ2F0ZWdvcnlQYWdlLl9jb21wdXRlU3RhdHVzKHRhc2spOwogICAgICAgICAgICAgICAgIHJl
dHVybiBlbGVtZW50KCd0cicsIFsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB7
Y2xhc3M6ICdzdGF0dXMnfSwKICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4n
LCB7Y2xhc3M6IHN0YXR1cy5jbGFzc30sIHN0YXR1cy5sYWJlbCkpLAogICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50KCd0ZCcsIGxpbmsodGFzay5sYWJlbCgpLCByb3V0ZXIudXJsKGBhbmFseXNp
cy90YXNrLyR7dGFzay5pZCgpfWApKSksICAgIAogICAgICAgICAgICAgICAgICAgICBlbGVtZW50
KCd0ZCcsIHtjbGFzczogJ2J1Z3MnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQo
J3VsJywgdGFzay5idWdzKCkubWFwKChidWcpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCB1cmwgPSBidWcudXJsKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdGl0bGUgPSBidWcudGl0bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQoJ3VsJywgdGFzay5idWdzKCkubWFwKGZ1bmN0aW9uIChidWcpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIgdXJsID0gYnVnLnVybCgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciB0aXRsZSA9IGJ1Zy50aXRsZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBlbGVtZW50KCdsaScsIHVybCA/IGxpbmsoYnVnLmxhYmVsKCksIHRpdGxlLCB1
cmwsIHRydWUpIDogdGl0bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSkpKSwKICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB7Y2xhc3M6ICdhdXRob3InfSwgdGFzay5hdXRo
b3IoKSksCi0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RkJywge2NsYXNzOiAncGxhdGZv
cm0nfSwgdGFzay5wbGF0Zm9ybSgpID8gdGFzay5wbGF0Zm9ybSgpLmxhYmVsKCkgOiBudWxsKSwK
LSAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB0YXNrLm1ldHJpYygpID8gdGFzay5t
ZXRyaWMoKS5mdWxsTmFtZSgpIDogbnVsbCksCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQo
J3RkJywge2NsYXNzOiAncGxhdGZvcm0nfSwgdGFzay5wbGF0Zm9ybSgpLmxhYmVsKCkpLAorICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHRhc2subWV0cmljKCkuZnVsbE5hbWUoKSks
CiAgICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgICAgICAgfSkpOwogCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2st
cGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlz
aXMtdGFzay1wYWdlLmpzCmluZGV4IDIwOTEzMTk3MGJlNmRhODM0NDI1MjhmMDA0NzgyNDM2NjIw
YWU5YmQuLjhhNWM4NGI0N2E2MGMzMzJhNDAzN2ZkNTI4YTZhNjc0ZmIzOTQ4YjQgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFz
ay1wYWdlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
YW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC00MDksMTIgKzQwOSw2IEBAIGNsYXNzIEFuYWx5c2lz
VGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgICAgICBjb25zb2xlLmFzc2Vy
dCghdGhpcy5fdGFzayk7CiAKICAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7Ci0gICAgICAgIGNv
bnN0IGJ1Z0xpc3QgPSB0aGlzLnBhcnQoJ2J1Zy1saXN0Jyk7Ci0gICAgICAgIHRoaXMucGFydCgn
YnVnLWxpc3QnKS5zZXRUYXNrKHRoaXMuX3Rhc2spOwotICAgICAgICB0aGlzLmVucXVldWVUb1Jl
bmRlcigpOwotCi0gICAgICAgIGlmICh0YXNrLmlzQ3VzdG9tKCkpCi0gICAgICAgICAgICByZXR1
cm4gdGFzazsKIAogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IHRhc2sucGxhdGZvcm0oKTsKICAg
ICAgICAgY29uc3QgbWV0cmljID0gdGFzay5tZXRyaWMoKTsKQEAgLTQzMiw2ICs0MjYsMTEgQEAg
Y2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CiAgICAgICAg
IGNoYXJ0LnNldE92ZXJ2aWV3RG9tYWluKGRvbWFpblswXSwgZG9tYWluWzFdKTsKICAgICAgICAg
Y2hhcnQuc2V0TWFpbkRvbWFpbihkb21haW5bMF0sIGRvbWFpblsxXSk7CiAKKyAgICAgICAgY29u
c3QgYnVnTGlzdCA9IHRoaXMucGFydCgnYnVnLWxpc3QnKTsKKyAgICAgICAgdGhpcy5wYXJ0KCdi
dWctbGlzdCcpLnNldFRhc2sodGhpcy5fdGFzayk7CisKKyAgICAgICAgdGhpcy5lbnF1ZXVlVG9S
ZW5kZXIoKTsKKwogICAgICAgICByZXR1cm4gdGFzazsKICAgICB9CiAKQEAgLTUwOCwxMCArNTA3
LDEwIEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewog
ICAgICAgICB0aGlzLl9yZW5kZXJDYXVzZUFuZEZpeGVzTGF6aWx5LmV2YWx1YXRlKHRoaXMuX3N0
YXJ0UG9pbnQsIHRoaXMuX3Rhc2spOwogICAgICAgICB0aGlzLl9yZW5kZXJSZWxhdGVkVGFza3NM
YXppbHkuZXZhbHVhdGUodGhpcy5fdGFzaywgdGhpcy5fcmVsYXRlZFRhc2tzKTsKIAotICAgICAg
ICB0aGlzLmNvbnRlbnQoJ2NoYXJ0LXBhbmUnKS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5fdGFzayAm
JiAhdGhpcy5fdGFzay5pc0N1c3RvbSgpID8gbnVsbCA6ICdub25lJzsKKyAgICAgICAgdGhpcy5j
b250ZW50KCdjaGFydC1wYW5lJykuc3R5bGUuZGlzcGxheSA9IHRoaXMuX3Rhc2sgPyBudWxsIDog
J25vbmUnOwogICAgICAgICB0aGlzLnBhcnQoJ2NoYXJ0LXBhbmUnKS5zZXRTaG93Rm9ybSghIXRo
aXMuX3RyaWdnZXJhYmxlKTsKIAotICAgICAgICB0aGlzLmNvbnRlbnQoJ3Jlc3VsdHMtcGFuZScp
LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl90YXNrICYmICF0aGlzLl90YXNrLmlzQ3VzdG9tKCkgPyBu
dWxsIDogJ25vbmUnOworICAgICAgICB0aGlzLmNvbnRlbnQoJ3Jlc3VsdHMtcGFuZScpLnN0eWxl
LmRpc3BsYXkgPSB0aGlzLl90YXNrID8gbnVsbCA6ICdub25lJzsKICAgICAgICAgdGhpcy5wYXJ0
KCdyZXN1bHRzLXBhbmUnKS5zZXRTaG93Rm9ybSghIXRoaXMuX3RyaWdnZXJhYmxlKTsKIAogICAg
ICAgICBJbnN0cnVtZW50YXRpb24uZW5kTWVhc3VyaW5nVGltZSgnQW5hbHlzaXNUYXNrUGFnZScs
ICdyZW5kZXInKTsKQEAgLTUyMCw3ICs1MTksNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4
dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICBfcmVuZGVyVGFza05hbWVBbmRTdGF0dXModGFz
aywgdGFza05hbWUsIGNoYW5nZVR5cGUpCiAgICAgewogICAgICAgICB0aGlzLnBhcnQoJ2FuYWx5
c2lzLXRhc2stbmFtZScpLnNldFRleHQodGFza05hbWUpOwotICAgICAgICBpZiAodGFzayAmJiAh
dGFzay5pc0N1c3RvbSgpKSB7CisgICAgICAgIGlmICh0YXNrKSB7CiAgICAgICAgICAgICBjb25z
dCBsaW5rID0gQ29tcG9uZW50QmFzZS5jcmVhdGVMaW5rOwogICAgICAgICAgICAgY29uc3QgcGxh
dGZvcm0gPSB0YXNrLnBsYXRmb3JtKCk7CiAgICAgICAgICAgICBjb25zdCBtZXRyaWMgPSB0YXNr
Lm1ldHJpYygpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9jaGFydC1wYW5lLXN0YXR1cy12aWV3LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLXN0YXR1cy12aWV3LmpzCmluZGV4IDk1MmE3
MjllOWVmNWYwODE2ODFmZGNjZDUxNDljYWQ2OTg0OTk0YmUuLjA3ZTllYTI1YjMwMzRiZDYyMGI0
ZjdhNWIyY2VlOGVhZDNjNDRjMjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS1zdGF0dXMtdmlldy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUtc3RhdHVzLXZpZXcu
anMKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgQ2hhcnRQYW5lU3RhdHVzVmlldyBleHRlbmRzIENv
bXBvbmVudEJhc2UgewogICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RkJywgJ0J1aWxkJyksCiAg
ICAgICAgICAgICAgICAgZWxlbWVudCgndGQnLCB7Y29sc3BhbjogMn0sIFsKICAgICAgICAgICAg
ICAgICAgICAgdXJsID8gbGluayhidWlsZE51bWJlciwgYnVpbGQubGFiZWwoKSwgdXJsLCB0cnVl
KSA6IGJ1aWxkTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICBgICgke01ldHJpYy5mb3JtYXRU
aW1lKGJ1aWxkLmJ1aWxkVGltZSgpKX0pYAorICAgICAgICAgICAgICAgICAgICBgICgke3RoaXMu
X2Zvcm1hdFRpbWUoYnVpbGQuYnVpbGRUaW1lKCkpfSlgCiAgICAgICAgICAgICAgICAgXSksCiAg
ICAgICAgICAgICBdKSk7CiAgICAgICAgIH0KQEAgLTcyLDYgKzcyLDEyIEBAIGNsYXNzIENoYXJ0
UGFuZVN0YXR1c1ZpZXcgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgdGhpcy5yZW5k
ZXJSZXBsYWNlKHRoaXMuY29udGVudCgnYnVpbGQtcmV2aXNpb24nKSwgdGFibGVDb250ZW50KTsK
ICAgICB9CiAKKyAgICBfZm9ybWF0VGltZShkYXRlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoZGF0ZSBpbnN0YW5jZW9mIERhdGUpOworICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0
cmluZygpLnJlcGxhY2UoJ1QnLCAnICcpLnJlcGxhY2UoL1wuXGQrWiQvLCAnJyk7CisgICAgfQor
CiAgICAgc2V0Q3VycmVudFJlcG9zaXRvcnkocmVwb3NpdG9yeSkKICAgICB7CiAgICAgICAgIHRo
aXMuX2N1cnJlbnRSZXBvc2l0b3J5ID0gcmVwb3NpdG9yeTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwppbmRleCBjNzkx
NDg2NjUxZDI3NmQ5YjAyMzE3YmYyYjNiMTYxZGFlZTlhMGFmLi4yZGNmMWQ5ZWU2ZGVlNDM4YTI0
M2FkYmUxZDg2YmZlNmRiY2VjZTM4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLmpzCkBAIC0xOSw3ICsxOSw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZVRyZW5kTGluZUV4ZWN1dGFibGVGcm9tQXZlcmFnaW5nRnVuY3Rpb24oY2Fs
bGJhY2spIHsKICAgICB9CiB9CiAKLWNvbnN0IENoYXJ0VHJlbmRMaW5lVHlwZXMgPSBbCit2YXIg
Q2hhcnRUcmVuZExpbmVUeXBlcyA9IFsKICAgICB7CiAgICAgICAgIGlkOiAwLAogICAgICAgICBs
YWJlbDogJ05vbmUnLApAQCAtMTk2LDE1ICsxOTYsMTUgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVu
ZHMgQ2hhcnRQYW5lQmFzZSB7CiAKICAgICBfYW5hbHl6ZVJhbmdlKHN0YXJ0UG9pbnQsIGVuZFBv
aW50KQogICAgIHsKLSAgICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5fY2hhcnRzUGFnZS5yb3V0
ZXIoKTsKLSAgICAgICAgY29uc3QgbmV3V2luZG93ID0gd2luZG93Lm9wZW4ocm91dGVyLnVybCgn
YW5hbHlzaXMvdGFzay9jcmVhdGUnLCB7aW5Qcm9ncmVzczogdHJ1ZX0pLCAnX2JsYW5rJyk7Cisg
ICAgICAgIHZhciByb3V0ZXIgPSB0aGlzLl9jaGFydHNQYWdlLnJvdXRlcigpOworICAgICAgICB2
YXIgbmV3V2luZG93ID0gd2luZG93Lm9wZW4ocm91dGVyLnVybCgnYW5hbHlzaXMvdGFzay9jcmVh
dGUnKSwgJ19ibGFuaycpOwogCi0gICAgICAgIGNvbnN0IGFuYWx5emVQb3BvdmVyID0gdGhpcy5j
b250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtYW5hbHl6ZS1wb3BvdmVyJyk7Ci0g
ICAgICAgIGNvbnN0IG5hbWUgPSBhbmFseXplUG9wb3Zlci5xdWVyeVNlbGVjdG9yKCdpbnB1dCcp
LnZhbHVlOworICAgICAgICB2YXIgYW5hbHl6ZVBvcG92ZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVy
eVNlbGVjdG9yKCcuY2hhcnQtcGFuZS1hbmFseXplLXBvcG92ZXInKTsKKyAgICAgICAgdmFyIG5h
bWUgPSBhbmFseXplUG9wb3Zlci5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlOwogICAgICAg
ICBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQuaWQsIGVuZFBvaW50LmlkKS50
aGVuKChkYXRhKSA9PiB7CiAgICAgICAgICAgICBuZXdXaW5kb3cubG9jYXRpb24uaHJlZiA9IHJv
dXRlci51cmwoJ2FuYWx5c2lzL3Rhc2svJyArIGRhdGFbJ3Rhc2tJZCddKTsKICAgICAgICAgICAg
IHRoaXMuZmV0Y2hBbmFseXNpc1Rhc2tzKHRydWUpOwotICAgICAgICB9LCAoZXJyb3IpID0+IHsK
KyAgICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7CiAgICAgICAgICAgICBuZXdXaW5kb3cubG9j
YXRpb24uaHJlZiA9IHJvdXRlci51cmwoJ2FuYWx5c2lzL3Rhc2svY3JlYXRlJywge2Vycm9yOiBl
cnJvcn0pOwogICAgICAgICB9KTsKICAgICB9CkBAIC0yNzIsNiArMjcyLDcgQEAgY2xhc3MgQ2hh
cnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGlmIChoYXNTZWxlY3RlZFBv
aW50cykgewogICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHRoaXMuX21ha2VQb3BvdmVyQWN0aW9u
SXRlbShhbmFseXplUG9wb3ZlciwgJ0FuYWx5emUnLCBmYWxzZSkpOwogICAgICAgICAgICAgYW5h
bHl6ZVBvcG92ZXIub25zdWJtaXQgPSB0aGlzLmNyZWF0ZUV2ZW50SGFuZGxlcigoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgY29uc29sZS5sb2coc2VsZWN0ZWRQb2ludHMubGVuZ3RoKCkpOwogICAg
ICAgICAgICAgICAgIHRoaXMuX2FuYWx5emVSYW5nZShzZWxlY3RlZFBvaW50cy5maXJzdFBvaW50
KCksIHNlbGVjdGVkUG9pbnRzLmxhc3RQb2ludCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9wYWdlcy9jcmVhdGUtYW5hbHlzaXMtdGFzay1wYWdlLmpzCmluZGV4
IGE1ZjA2NGQ0Y2ZjNzU4NzUzOWUwZDIxNjdiNWI4ZWMyY2QxMWIwMTkuLjhiODAyZDI0MDY2N2E3
MDgyNDE0MTQ0MDA5NWZiYzAyYzQzZDg4YzIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY3JlYXRlLWFuYWx5c2lzLXRhc2stcGFnZS5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NyZWF0ZS1hbmFseXNp
cy10YXNrLXBhZ2UuanMKQEAgLTMsOCArMyw3IEBAIGNsYXNzIENyZWF0ZUFuYWx5c2lzVGFza1Bh
Z2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7CiAg
ICAgICAgIHN1cGVyKCdDcmVhdGUgQW5hbHlzaXMgVGFzaycpOwotICAgICAgICB0aGlzLl9tZXNz
YWdlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fcmVuZGVyTWVzc2FnZUxhemlseSA9IG5ldyBMYXpp
bHlFdmFsdWF0ZWRGdW5jdGlvbih0aGlzLl9yZW5kZXJNZXNzYWdlLmJpbmQodGhpcykpOworICAg
ICAgICB0aGlzLl9lcnJvck1lc3NhZ2UgPSBudWxsOwogICAgIH0KIAogICAgIHRpdGxlKCkgeyBy
ZXR1cm4gJ0NyZWF0aW5nIGEgTmV3IEFuYWx5c2lzIFRhc2snOyB9CkBAIC0xNCwxMTAgKzEzLDQy
IEBAIGNsYXNzIENyZWF0ZUFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcg
ewogICAgIHsKICAgICAgICAgaWYgKHN0YXRlLmVycm9yIGluc3RhbmNlb2YgU2V0KQogICAgICAg
ICAgICAgc3RhdGUuZXJyb3IgPSBBcnJheS5mcm9tKHN0YXRlLmVycm9yLnZhbHVlcygpKVswXTsK
LSAgICAgICAgdGhpcy5fbWVzc2FnZSA9IHN0YXRlLmVycm9yIHx8IChzdGF0ZS5pblByb2dyZXNz
ID8gJ0NyZWF0aW5nIHRoZSBhbmFseXNpcyB0YXNrIHBhZ2UuLi4nIDogJycpOwotICAgIH0KLQot
ICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQotICAgIHsKLSAgICAgICAgdGhpcy5wYXJ0KCdj
b25maWd1cmF0b3InKS5saXN0ZW5Ub0FjdGlvbignY29tbWl0U2V0Q2hhbmdlJywgKCkgPT4gdGhp
cy5lbnF1ZXVlVG9SZW5kZXIoKSk7Ci0gICAgICAgIHRoaXMuY29udGVudCgnc3RhcnQtYnV0dG9u
Jykub25jbGljayA9IHRoaXMuY3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+IHRoaXMuX2NyZWF0ZUFu
YWx5c2lzVGFza1dpdGhHcm91cCgpKTsKLSAgICB9Ci0KLSAgICBfY3JlYXRlQW5hbHlzaXNUYXNr
V2l0aEdyb3VwKCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHRhc2tOYW1lSW5wdXQgPSB0aGlzLmNv
bnRlbnQoJ3Rhc2stbmFtZScpOwotICAgICAgICBpZiAoIXRhc2tOYW1lSW5wdXQucmVwb3J0VmFs
aWRpdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb25zdCB0ZXN0R3JvdXBJ
bnB1dCA9IHRoaXMuY29udGVudCgndGVzdC1ncm91cC1uYW1lJyk7Ci0gICAgICAgIGlmICghdGVz
dEdyb3VwSW5wdXQucmVwb3J0VmFsaWRpdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBjb25zdCBjb25maWd1cmF0b3IgPSB0aGlzLnBhcnQoJ2NvbmZpZ3VyYXRvcicpOwotICAg
ICAgICBjb25zdCB0ZXN0cyA9IGNvbmZpZ3VyYXRvci50ZXN0cygpOwotICAgICAgICBpZiAodGVz
dHMubGVuZ3RoICE9IDEpCi0gICAgICAgICAgICByZXR1cm4gYWxlcnQoJ0V4YWN0bHkgb25lIHRl
c3QgbXVzdCBiZSBzZWxlY3RlZCcpOwotCi0gICAgICAgIGNvbnN0IHRhc2tOYW1lID0gdGFza05h
bWVJbnB1dC52YWx1ZTsKLSAgICAgICAgY29uc3QgdGVzdEdyb3VwTmFtZSA9IHRlc3RHcm91cElu
cHV0LnZhbHVlOwotICAgICAgICBjb25zdCBpdGVyYXRpb25Db3VudCA9IHRoaXMuY29udGVudCgn
aXRlcmF0aW9uLWNvdW50JykudmFsdWU7Ci0gICAgICAgIGNvbnN0IHBsYXRmb3JtID0gY29uZmln
dXJhdG9yLnBsYXRmb3JtKCk7Ci0gICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBjb25maWd1cmF0
b3IuY29tbWl0U2V0cygpOwotCi0gICAgICAgIFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzayh0YXNr
TmFtZSwgcGxhdGZvcm0sIHRlc3RzWzBdLCB0ZXN0R3JvdXBOYW1lLCBpdGVyYXRpb25Db3VudCwg
Y29tbWl0U2V0cykudGhlbigodGFzaykgPT4gewotICAgICAgICAgICAgY29uc29sZS5sb2coJ3lh
eT8nLCB0YXNrKTsKLSAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyKCkudXJsKGBh
bmFseXNpcy90YXNrLyR7dGFzay5pZCgpfWApOwotICAgICAgICAgICAgY29uc29sZS5sb2coJ21v
dmluZyB0byAnICsgdXJsKTsKLSAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLnJvdXRl
cigpLnVybChgYW5hbHlzaXMvdGFzay8ke3Rhc2suaWQoKX1gKTsKLSAgICAgICAgfSwgKGVycm9y
KSA9PiB7Ci0gICAgICAgICAgICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdy
b3VwOiAnICsgZXJyb3IpOwotICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5fZXJyb3JNZXNzYWdl
ID0gc3RhdGUuZXJyb3I7CisgICAgICAgIGlmICghaXNPcGVuKQorICAgICAgICAgICAgdGhpcy5l
bnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CiAKICAgICByZW5kZXIoKQogICAgIHsKICAgICAgICAg
c3VwZXIucmVuZGVyKCk7Ci0gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRvciA9IHRoaXMucGFydCgn
Y29uZmlndXJhdG9yJyk7Ci0gICAgICAgIHRoaXMuX3JlbmRlck1lc3NhZ2VMYXppbHkuZXZhbHVh
dGUodGhpcy5fbWVzc2FnZSwgISFjb25maWd1cmF0b3IuY29tbWl0U2V0cygpLCBjb25maWd1cmF0
b3IudGVzdHMoKSwgY29uZmlndXJhdG9yLnBsYXRmb3JtKCkpOworICAgICAgICBpZiAodGhpcy5f
ZXJyb3JNZXNzYWdlKQorICAgICAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3Rvcign
Lm1lc3NhZ2UnKS50ZXh0Q29udGVudCA9IHRoaXMuX2Vycm9yTWVzc2FnZTsKICAgICB9CiAKLSAg
ICBfcmVuZGVyTWVzc2FnZShtZXNzYWdlLCBoYXNWYWxpZENvbW1pdFNldHMsIHRlc3RzLCBwbGF0
Zm9ybSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IG1lc3NhZ2VDb250YWluZXIgPSB0aGlzLmNvbnRl
bnQoJ21lc3NhZ2UnKTsKLSAgICAgICAgbWVzc2FnZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IHRo
aXMuX21lc3NhZ2U7Ci0gICAgICAgIG1lc3NhZ2VDb250YWluZXIuc3R5bGUuZGlzcGxheSA9IHRo
aXMuX21lc3NhZ2UgPyBudWxsIDogJ25vbmUnOwotICAgICAgICB0aGlzLmNvbnRlbnQoJ25ldy10
YXNrJykuc3R5bGUuZGlzcGxheSA9IHRoaXMuX21lc3NhZ2UgPyAnbm9uZScgOiBudWxsOwotICAg
ICAgICBpZiAocGxhdGZvcm0pCi0gICAgICAgICAgICB0aGlzLmNvbnRlbnQoJ3Rlc3QtZ3JvdXAt
bmFtZScpLnZhbHVlID0gYCR7dGVzdHMubWFwKCh0ZXN0KSA9PiB0ZXN0Lm5hbWUoKSkuam9pbign
LCAnKX0gb24gJHtwbGF0Zm9ybS5uYW1lKCl9YDsKLSAgICAgICAgdGhpcy5jb250ZW50KCdpdGVy
YXRpb24tc3RhcnQtcGFuZScpLnN0eWxlLmRpc3BsYXkgPSAhdGhpcy5fbWVzc2FnZSAmJiBoYXNW
YWxpZENvbW1pdFNldHMgPyBudWxsIDogJ25vbmUnOwotICAgICAgfQotCiAgICAgc3RhdGljIGh0
bWxUZW1wbGF0ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYAotICAgICAgICAgICAgPHAgaWQ9
Im1lc3NhZ2UiPjwvcD4KLSAgICAgICAgICAgIDxkaXYgaWQ9Im5ldy10YXNrIj4KLSAgICAgICAg
ICAgICAgICA8aW5wdXQgaWQ9InRhc2stbmFtZSIgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9Ik5h
bWUgdGhpcyB0YXNrIiByZXF1aXJlZD4KLSAgICAgICAgICAgICAgICA8Y3VzdG9tLWFuYWx5c2lz
LXRhc2stY29uZmlndXJhdG9yIGlkPSJjb25maWd1cmF0b3IiPjwvY3VzdG9tLWFuYWx5c2lzLXRh
c2stY29uZmlndXJhdG9yPgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9Iml0ZXJhdGlvbi1zdGFy
dC1wYW5lIj4KLSAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJ0ZXN0LWdyb3VwLW5hbWUi
IHBsYWNlaG9sZGVyPSJOYW1lIHRoaXMgdGVzdCBncm91cCIgcmVxdWlyZWQ+Ci0gICAgICAgICAg
ICAgICAgICAgIDxsYWJlbD48c2VsZWN0IGlkPSJpdGVyYXRpb24tY291bnQiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgPG9wdGlvbj4xPC9vcHRpb24+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICA8b3B0aW9uPjI8L29wdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Mzwv
b3B0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD40PC9vcHRp
b24+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPjU8L29wdGlvbj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDxvcHRpb24+Njwvb3B0aW9uPgotICAgICAgICAgICAgICAgICAgICA8
L3NlbGVjdD4gaXRlcmF0aW9ucyBwZXIgY29uZmlndXJhdGlvbjwvbGFiZWw+Ci0gICAgICAgICAg
ICAgICAgICAgIDxidXR0b24gaWQ9InN0YXJ0LWJ1dHRvbiI+U3RhcnQ8L2J1dHRvbj4KLSAgICAg
ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PmA7CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJjcmVhdGUtYW5hbHlzaXMtdGFzay1jb250YWluZXIiPgorICAgICAgICAgICAgICAg
IDxwIGNsYXNzPSJtZXNzYWdlIj5DcmVhdGluZyB0aGUgYW5hbHlzaXMgdGFzayBwYWdlLi4uPC9w
PgorICAgICAgICAgICAgPC9kaXY+CitgOwogICAgIH0KIAogICAgIHN0YXRpYyBjc3NUZW1wbGF0
ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYAotICAgICAgICAgICAgI21lc3NhZ2UgewotICAg
ICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgI25ldy10YXNrID4gKiB7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0g
ICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtOworICAgICAgICAgICAgLmNyZWF0ZS1hbmFseXNp
cy10YXNrLWNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgI25ldy10YXNrIGlucHV0IHsKLSAgICAgICAgICAgICAg
ICB3aWR0aDogMzAlOwotICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTByZW07Ci0gICAgICAg
ICAgICAgICAgZm9udC1zaXplOiAxcmVtOwotICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBp
bmhlcml0OworICAgICAgICAgICAgLmNyZWF0ZS1hbmFseXNpcy10YXNrLWNvbnRhaW5lciA+ICog
eworICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvOworICAgICAgICAgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgI3N0YXJ0
LWJ1dHRvbiB7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAgICAgICAg
ICAgbWFyZ2luLXRvcDogMC41cmVtOwotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVt
OwotICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OworICAgICAgICAgICAgLmNy
ZWF0ZS1hbmFseXNpcy10YXNrIGlucHV0IHsKKyAgICAgICAgICAgICAgICBmb250LXNpemU6IGlu
aGVyaXQ7CiAgICAgICAgICAgICB9CiBgOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvcGFnZS1yb3V0ZXIuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3BhZ2Utcm91dGVyLmpzCmluZGV4IDlkMTY5
MWM4ZDY3ZTYyMzIxNTk5OWVjZWMzOTYzOWYwZGUwYzFlMTUuLmJjMDMzMzM0NGQzOTU5MTMwMzg0
ODg3YjUxODcyZDVmYjAzMjg2YzUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvcGFnZXMvcGFnZS1yb3V0ZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9wYWdlcy9wYWdlLXJvdXRlci5qcwpAQCAtNTIsNyArNTIsNiBAQCBj
bGFzcyBQYWdlUm91dGVyIHsKICAgICAgICAgICAgIGRlc3RpbmF0aW9uUGFnZS5vcGVuKHBhcnNl
ZC5zdGF0ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZGVzdGluYXRpb25QYWdlLnVw
ZGF0ZUZyb21TZXJpYWxpemVkU3RhdGUocGFyc2VkLnN0YXRlLCBmYWxzZSk7Ci0gICAgICAgIGRl
c3RpbmF0aW9uUGFnZS5lbnF1ZXVlVG9SZW5kZXIoKTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IGY4ZmQ0ZTEyMTMw
Yjg4NzU2N2Y4ZDUzYTIxMTRiM2EzOGE2NzI2ZDEuLmQzMmZkNTU4YzMzMzkzZWI1OWMxYjQ1MmUw
Y2Y5YzVhODQ0OTdhYzUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC0y
Myw3ICsyMyw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10s
IFtdKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
LCBbXSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdHMnXSwg
W10pOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5z
b3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVz
JywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVj
dC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAn
Y29tbWl0cycsICdzdGF0dXMnXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0zMSw3ICsz
MSw3IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdl
dEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwogICAg
ICAgICB9KS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNl
dHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVx
dWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cyddKTsKIAogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNDAxKTsKQEAg
LTg1LDcgKzg1LDcgQEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFi
YXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0
P3VzZUxlZ2FjeUlkUmVzb2x1dGlvbj10cnVlJyk7CiAgICAgICAgIH0pLnRoZW4oKGNvbnRlbnQp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCku
c29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1
cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmpl
Y3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywg
J2NvbW1pdHMnLCAnc3RhdHVzJ10pOwogCiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddLmxlbmd0aCwgMik7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOwpAQCAtMjE3LDExICsyMTcsMTEgQEAgZGVz
Y3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAg
IGxldCBmaXJzdFdlYktpdENvbW1pdCA9IGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFdlYktpdENvbW1pdC5y
ZXZpc2lvbigpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2ZpcnN0V2Vi
S2l0Q29tbWl0LnRpbWUoKSwgK25ldyBEYXRlKCcyMDE1LTEwLTI3VDExOjM2OjU2Ljg4WicpKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrZmlyc3RXZWJLaXRDb21taXQudGltZSgpLCAxNDQ1
OTQ1ODE2ODc4KTsKIAogICAgICAgICAgICAgbGV0IHNlY29uZFdlYktpdENvbW1pdCA9IHNlY29u
ZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc2Vjb25kV2ViS2l0Q29tbWl0LnJldmlzaW9uKCksICcxOTI3MzYnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCgrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgK25ldyBEYXRl
KCcyMDE1LTExLTIyVDIwOjQ4OjQ1LjY1WicpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCgr
c2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0ODIyNTMyNTY1MCk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCkBAIC0zOTYsNTAgKzM5Niw0IEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVl
c3RzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdHNbN10ub3JkZXIoKSwgMyk7CiAgICAgICAgIH0pOwogICAgIH0pOwotCi0gICAgaXQo
J3Nob3VsZCBwbGFjZSBidWlsZCByZXF1ZXN0cyBjcmVhdGVkIGJ5IHVzZXIgYmVmb3JlIGF1dG9t
YXRpY2FsbHkgY3JlYXRlZCBvbmVzJywgKCkgPT4gewotICAgICAgICBjb25zdCBkYiA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKLSAgICAgICAgY29uc3Qgc29tZVNpemUgPSAyNCAqIDEwMjQ7IC8v
IGhhc2hsaWIuc2hhMjU2KCcxJyAqIDI0ICogMTAyNCkuaGV4ZGlnZXN0KCkKLSAgICAgICAgY29u
c3Qgc29tZUhhc2ggPSAnM2ZmYWE5ZTA5ZjQ5ZDRkMjEyNTgyYzA5MmFmMmMxZGNiMmM5YjUyYzhj
YTQ5YzcyZmY5OWRjYzVkYzUwM2EyYic7Ci0gICAgICAgIGNvbnN0IG90aGVyU2l6ZSA9IDQyOyAv
LyBoYXNobGliLnNoYTI1NignMicgKiA0MikuaGV4ZGlnZXN0KCkKLSAgICAgICAgY29uc3Qgb3Ro
ZXJIYXNoID0gJzY2ZTM3OGIzZmIzNTY5MjUxNTQ0MzU4MDNjMDFhZmQxMGRhZWJiZjRhMmVkYjU4
M2IzNDAzNGFhY2E3NzVhMjYnOwotICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEo
ZGIpLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcp
OwotICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKFVwbG9hZGVkRmlsZS5hbGwoKSwgW10pOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGNvbnN0IHNldDAg
PSBidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOwotICAgICAgICAgICAgY29uc3Qgc2V0MSA9
IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSwgc2V0MCk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDAuY3VzdG9tUm9vdHMoKSwgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtdKTsKLSAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxl
cycsIHtpZDogMSwgZmlsZW5hbWU6ICdzb21lLWZpbGUudGFyLmd6JywgZXh0ZW5zaW9uOiAnLnRh
ci5neicsIHNpemU6IHNvbWVTaXplLCBzaGEyNTY6IHNvbWVIYXNofSksCi0gICAgICAgICAgICAg
ICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxlcycsIHtpZDogMiwgZmlsZW5hbWU6ICdvdGhlci1m
aWxlLnppcCcsIGV4dGVuc2lvbjogJy56aXAnLCBzaXplOiBvdGhlclNpemUsIHNoYTI1Njogb3Ro
ZXJIYXNofSksCi0gICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZGIuaW5zZXJ0KCdjb21taXRfc2V0X3JlbGF0aW9uc2hpcHMnLCB7c2V0OiBzZXQwLmlk
KCksIHJvb3RfZmlsZTogMX0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgQ29tbWl0U2V0LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgICAgICAg
ICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgICAgIHJldHVybiBCdWls
ZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSgnYnVpbGQtd2Via2l0Jyk7Ci0gICAgICAgIH0p
LnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkRmls
ZXMgPSBVcGxvYWRlZEZpbGUuYWxsKCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodXBsb2Fk
ZWRGaWxlcy5sZW5ndGgsIDEpOwotCi0gICAgICAgICAgICBjb25zdCBzb21lRmlsZSA9IFVwbG9h
ZGVkRmlsZS5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lRmlsZS5m
aWxlbmFtZSgpLCAnc29tZS1maWxlLnRhci5neicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNvbWVGaWxlLnNpemUoKSwgc29tZVNpemUpOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgY29uc3Qgc2V0MCA9IGJ1aWxk
UmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBjb25zdCBzZXQxID0gYnVpbGRS
ZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3RzWzNdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbc29tZUZpbGVdKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotCiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmluZGV4IDZiMDQ3ZjAzMmJlNzVjMGE3YTNm
ZTExZTIzNDI2OTM5MDQ0YWU3NTEuLjliOWM5MzU4MDY5M2E2Yzk3ZTQ3MjliMGViZjhhZDkxYjhi
NTg3MWMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAtMiw3ICsyLDYgQEAKIAogY29uc3QgYXNz
ZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CiAKLWNvbnN0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7CiBjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKIGNvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVx
dWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9y
dDsKIGNvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9u
LW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKQEAgLTIxNCw3ICsyMTMsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIAotICAgICAgICBpdCgic2hvdWxkIHJldHVybiB0aGUgbGF0ZXN0IGNvbW1p
dCIsICgpID0+IHsKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIG9sZGVzdCBjb21taXQi
LCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpOwogICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CkBA
IC0yMzksNTAgKzIzOCw2IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2
aXNpb24nXSwgc3lzdGVtVmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQoInNob3VsZCByZXR1
cm4gdGhlIGxhdGVzdCBjb21taXQgZm9yIGEgZ2l2ZW4gcGxhdGZvcm0iLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zdCBtb2NrRGF0YUNvbW1pdFJlcG9ydHMgPSB7Ci0gICAgICAgICAgICAgICAg
InNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAotICAgICAgICAgICAgICAgICJzbGF2ZVBhc3N3b3Jk
IjogInNvbWVQYXNzd29yZCIsCi0gICAgICAgICAgICAgICAgImNvbW1pdHMiOiBbCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTkxNjIyIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMTAtMjdUMTE6MzY6NTYuODhaIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7ImFjY291bnQiOiAiY2FsdmFyaXNA
aWdhbGlhLmNvbSJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNz
YWdlIiwKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxOTI3MzYiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgInRpbWUiOiAiMjAxNS0xMS0yMlQyMDo0ODo0NS42NVoiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dGhvciI6IHsiYWNjb3VudCI6ICJhZXN0ZXNAYXBwbGUuY29tIn0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAotICAgICAgICAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjE5MjkwMyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE1LTEy
LTAxVDIxOjE0OjQ2Ljk5WiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJh
Y2NvdW50IjogImRhcmluQGFwcGxlLmNvbSJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCk7Ci0gICAgICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9j
a0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQobW9ja0RhdGFDb21taXRSZXBvcnRzKTsKLSAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIHJldHVybiByZW1vdGUucG9z
dEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIG1vY2tEYXRhQ29tbWl0UmVw
b3J0cyk7Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvbGF0ZXN0P3BsYXRmb3JtPScg
KyBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBjb25zdCBjb21taXQgPSByZXN1bHRbJ2NvbW1pdHMn
XVswXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0WydyZXZpc2lvbiddLCAn
MTkyNzM2Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFsndGltZSddLCAr
bmV3IERhdGUoJzIwMTUtMTEtMjJUMjA6NDg6NDUuNjVaJykpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3Np
dG9yeT4vbGFzdC1yZXBvcnRlZCcsICgpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVn
ZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IGFmYjgyYzEzOWVmM2JkZDk0
YzYzZGJlMjE2YTk2OWVkNDZjZGZkNmUuLmEyMmVhZjY5NTA3NDg3YjRkMzBmY2Y2ZWYyMGRlNGRl
NTFlMDk4MDcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVz
dC1ncm91cC10ZXN0cy5qcwpAQCAtMSwxMCArMSw5IEBACiAndXNlIHN0cmljdCc7CiAKLWNvbnN0
IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworbGV0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2Vy
dCcpOwogCi1jb25zdCBNb2NrRGF0YSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stZGF0YS5q
cycpOwotY29uc3QgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVy
LmpzJyk7Ci1jb25zdCBUZW1wb3JhcnlGaWxlID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVtcG9y
YXJ5LWZpbGUuanMnKS5UZW1wb3JhcnlGaWxlOworbGV0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9y
ZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7CitsZXQgVGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBhZGRTbGF2ZUZvclJlcG9ydCA9IHJlcXVp
cmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkU2xhdmVGb3JSZXBvcnQ7
CiBjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1v
cGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7CiAKQEAgLTExNyw3ICsxMTYsNiBAQCBm
dW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2sobmFtZSkKIAogZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICBwcmVw
YXJlU2VydmVyVGVzdCh0aGlzKTsKLSAgICBUZW1wb3JhcnlGaWxlLmluamVjdCgpOwogCiAgICAg
aXQoJ3Nob3VsZCByZXR1cm4gIkludmFsaWROYW1lIiBvbiBhbiBlbXB0eSByZXF1ZXN0JywgKCkg
PT4gewogICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRl
c3QtZ3JvdXAnLCB7fSkudGhlbigoY29udGVudCkgPT4gewpAQCAtMjY0LDE4ICsyNjIsNiBAQCBk
ZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KTsKICAgICB9KTsKIAotICAgIGl0KCdzaG91bGQgcmV0dXJuICJJbnZhbGlk
VXBsb2FkZWRGaWxlIiB3aGVuIHJldmlzaW9uIHNldHMgY29udGFpbnMgYW4gaW52YWxpZCBmaWxl
IElEJywgKCkgPT4gewotICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNr
KCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHdlYmtp
dCA9IFJlcG9zaXRvcnkuYWxsKCkuZmluZCgocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1l
KCkgPT0gJ1dlYktpdCcpOwotICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Vi
a2l0LmlkKCldOiAnMTkxNjIyJywgJ2N1c3RvbVJvb3RzJzogWycxJ119LCB7W3dlYmtpdC5pZCgp
XTogJzEnfV07Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgn
Y3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9u
U2V0c30pLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQoZmFsc2Us
ICdzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCcpOwotICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVycm9yLCAnSW52YWxpZFVwbG9hZGVkRmls
ZScpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCiAgICAgaXQoJ3No
b3VsZCByZXR1cm4gIkludmFsaWRSZXBvc2l0b3J5IiB3aGVuIGEgcmV2aXNpb24gc2V0IHVzZXMg
YSByZXBvc2l0b3J5IG5hbWUgaW5zdGVhZCBvZiBhIHJlcG9zaXRvcnkgaWQnLCAoKSA9PiB7CiAg
ICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRo
ZW4oKHRhc2tJZCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBy
ZXZpc2lvblNldHM6IFt7J1dlYktpdCc6ICcxOTE2MjInfSwge31dfSkudGhlbigoY29udGVudCkg
PT4gewpAQCAtNDQ3LDgxICs0MzMsNCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAotICAg
IGl0KCdzaG91bGQgY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIGEgY3VzdG9tIHJvb3QnLCAoKSA9
PiB7Ci0gICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFz
aycpLnRoZW4oKHRhc2tJZCkgPT4gewotICAgICAgICAgICAgbGV0IGluc2VydGVkR3JvdXBJZDsK
LSAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBv
c2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07Ci0gICAgICAgICAg
ICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiBy
ZXBvc2l0b3J5Lm5hbWUoKSA9PSAnbWFjT1MnKVswXTsKLSAgICAgICAgICAgIGxldCB1cGxvYWRl
ZEZpbGU7Ci0gICAgICAgICAgICByZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5Rmls
ZSgnc29tZS5kYXQnLCAnc29tZSBjb250ZW50JykudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ3VwbG9hZC1maWxlJywg
e25ld0ZpbGU6IHN0cmVhbX0sIHt1c2VGb3JtRGF0YTogdHJ1ZX0pOwotICAgICAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKLSAgICAgICAgICAgICAgICB1cGxvYWRlZEZpbGUgPSByZXNw
b25zZVsndXBsb2FkZWRGaWxlJ107Ci0gICAgICAgICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRz
ID0gW3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJywgW21hY29zLmlkKCldOiAnMTVBMjg0J30sCi0g
ICAgICAgICAgICAgICAgICAgIHtbd2Via2l0LmlkKCldOiAnMTkxNjIyJywgW21hY29zLmlkKCld
OiAnMTVBMjg0JywgJ2N1c3RvbVJvb3RzJzogW3VwbG9hZGVkRmlsZVsnaWQnXV19XTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3Qt
Z3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwg
cmV2aXNpb25TZXRzfSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICBp
bnNlcnRlZEdyb3VwSWQgPSBjb250ZW50Wyd0ZXN0R3JvdXBJZCddOwotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoQnlUYXNrKHRhc2tJZCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBjb25zdCBncm91cCA9IHRlc3RHcm91cHNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdyb3VwLmlkKCksIGluc2VydGVkR3JvdXBJZCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAyKTsKLSAgICAgICAgICAgICAgICBjb25z
dCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLQotICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzJdLmNvbW1pdFNldCgpLCBzZXQwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KHNldDAucmVwb3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQxLmN1c3RvbVJvb3RzKCksIFtVcGxvYWRlZEZpbGUu
ZW5zdXJlU2luZ2xldG9uKHVwbG9hZGVkRmlsZVsnaWQnXSwgdXBsb2FkZWRGaWxlKV0pOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksIHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtp
dCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0KSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcx
NUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5jb21taXRGb3JSZXBv
c2l0b3J5KG1hY29zKSwgc2V0MS5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwg
c2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQoIXNldDAuZXF1YWxzKHNldDEpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLQotICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgdGVzdCBncm91cCB3aXRoIGFuIGFuYWx5
c2lzIHRhc2snLCAoKSA9PiB7Ci0gICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7Ci0gICAgICAg
IGxldCB3ZWJraXQ7Ci0gICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2so
J3NvbWUgdGFzaycpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9y
eS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJL
aXQnKVswXTsKLSAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgp
XTogJzE5MTYyMid9LCB7W3dlYmtpdC5pZCgpXTogJzE5MTYyMyd9XTsKLSAgICAgICAgICAgIHJl
dHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsCi0gICAg
ICAgICAgICAgICAge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywgcGxhdGZv
cm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQo
KSwgcmV2aXNpb25TZXRzfSk7Ci0gICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewotICAgICAg
ICAgICAgaW5zZXJ0ZWRHcm91cElkID0gcmVzdWx0Wyd0ZXN0R3JvdXBJZCddOwotICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UuYWxsKFtBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKHJlc3VsdFsndGFz
a0lkJ10pLCBUZXN0R3JvdXAuZmV0Y2hCeVRhc2socmVzdWx0Wyd0YXNrSWQnXSldKTsKLSAgICAg
ICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBbYW5hbHlzaXNUYXNr
LCB0ZXN0R3JvdXBzXSA9IHJlc3VsdDsKLQotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFuYWx5
c2lzVGFzay5uYW1lKCksICdvdGhlciB0YXNrJyk7Ci0KLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBjb25zdCBncm91cCA9IHRlc3RH
cm91cHNbMF07Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXAuaWQoKSwgaW5zZXJ0ZWRH
cm91cElkKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0aW9uQ291bnQo
KSwgMSk7Ci0gICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMo
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotCi0gICAg
ICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAg
ICBjb25zdCBzZXQxID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHNldDAucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoc2V0MC5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHNldDEucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsKLSAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5jdXN0b21Sb290cygpLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5
KHdlYmtpdCksICcxOTE2MjMnKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KIH0pOwpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvbW9jay1kYXRhLmpzCmluZGV4IGRkMDNiMjFjMmYxNzY1MzZiYzU1MjM2ZWRjNzU1Zjg1OGM4
OTJiZmQuLjkxYmIzOTYzMGE2Y2VmM2RhZmUwMTBmNzM2NTgyMDFlNDJmMDc2MzIgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2st
ZGF0YS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9tb2NrLWRhdGEuanMKQEAgLTM3LDI4ICszNywxOSBAQCBNb2NrRGF0YSA9IHsKICAgICAg
ICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6
IHRoaXMubWFjb3NSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDF9KSwKICAgICAgICAgICAgIGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHRoaXMud2Vi
a2l0UmVwb3NpdG9yeUlkKCksIGdyb3VwOiAyMDAxfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQo
J2NvbW1pdHMnLCB7aWQ6IDg3ODMyLCByZXBvc2l0b3J5OiB0aGlzLm1hY29zUmVwb3NpdG9yeUlk
KCksIHJldmlzaW9uOiAnMTAuMTEgMTVBMjg0J30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdj
b21taXRzJywge2lkOiA5MzExNiwgcmVwb3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQo
KSwgcmV2aXNpb246ICcxOTE2MjInLCB0aW1lOiAnMjAxNS0xMC0yN1QxMTozNjo1Ni44OFonfSks
Ci0gICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7aWQ6IDk2MzM2LCByZXBvc2l0b3J5
OiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgpLCByZXZpc2lvbjogJzE5MjczNicsIHRpbWU6ICcy
MDE1LTExLTIyVDIwOjQ4OjQ1LjY1Wid9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0
cycsIHtpZDogOTY2MjksIHJlcG9zaXRvcnk6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCksIHJl
dmlzaW9uOiAnMTkyOTAzJywgdGltZTogJzIwMTUtMTItMDFUMjE6MTQ6NDYuOTlaJ30pLAotICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZHMnLCB7aWQ6IDkwMSwgbnVtYmVyOiAnOTAxJywgdGlt
ZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ2J1
aWxkcycsIHtpZDogOTAyLCBudW1iZXI6ICc5MDInLCB0aW1lOiAnMjAxNS0xMC0yN1QxMjowNjo1
NC4yWid9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfY29tbWl0cycsIHtjb21taXRf
YnVpbGQ6IDkwMSwgYnVpbGRfY29tbWl0OiA5MzExNn0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0
KCdidWlsZF9jb21taXRzJywge2NvbW1pdF9idWlsZDogOTAyLCBidWlsZF9jb21taXQ6IDk2MzM2
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7aWQ6IDkzMTE2LCByZXBvc2l0
b3J5OiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgpLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6
IChuZXcgRGF0ZSgxNDQ1OTQ1ODE2ODc4KSkudG9JU09TdHJpbmcoKX0pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRzJywge2lkOiA5NjMzNiwgcmVwb3NpdG9yeTogdGhpcy53ZWJraXRS
ZXBvc2l0b3J5SWQoKSwgcmV2aXNpb246ICcxOTI3MzYnLCB0aW1lOiAobmV3IERhdGUoMTQ0ODIy
NTMyNTY1MCkpLnRvSVNPU3RyaW5nKCl9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgncGxhdGZv
cm1zJywge2lkOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBuYW1lOiAnc29tZSBwbGF0Zm9y
bSd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgndGVzdHMnLCB7aWQ6IE1vY2tEYXRhLnNvbWVU
ZXN0SWQoKSwgbmFtZTogJ3NvbWUgdGVzdCd9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndGVz
dF9tZXRyaWNzJywge2lkOiAzMDAsIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgbmFtZTog
J3NvbWUgbWV0cmljJ30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X2NvbmZpZ3VyYXRp
b25zJywge2lkOiAzMDEsIG1ldHJpYzogMzAwLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSwgdHlwZTogJ2N1cnJlbnQnfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3Rf
cnVucycsIHtpZDogODAxLCBjb25maWc6IDMwMSwgYnVpbGQ6IDkwMSwgbWVhbl9jYWNoZTogMTAx
fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfcnVucycsIHtpZDogODAyLCBjb25maWc6
IDMwMSwgYnVpbGQ6IDkwMiwgbWVhbl9jYWNoZTogOTJ9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgndGVzdF9tZXRyaWNzJywge2lkOiAzMDAsIHRlc3Q6IDIwMCwgbmFtZTogJ3NvbWUgbWV0cmlj
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge2lkOiAz
MDEsIG1ldHJpYzogMzAwLCBwbGF0Zm9ybTogNjUsIHR5cGU6ICdjdXJyZW50J30pLAogICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNDAxfSksCiAgICAgICAgICAgICBk
Yi5pbnNlcnQoJ2NvbW1pdF9zZXRfcmVsYXRpb25zaGlwcycsIHtzZXQ6IDQwMSwgY29tbWl0OiA4
NzgzMn0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X3JlbGF0aW9uc2hpcHMn
LCB7c2V0OiA0MDEsIGNvbW1pdDogOTMxMTZ9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnY29t
bWl0X3NldHMnLCB7aWQ6IDQwMn0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0
X3JlbGF0aW9uc2hpcHMnLCB7c2V0OiA0MDIsIGNvbW1pdDogODc4MzJ9KSwKICAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0X3NldF9yZWxhdGlvbnNoaXBzJywge3NldDogNDAyLCBjb21taXQ6
IDk2MzM2fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiA1
MDAsIHBsYXRmb3JtOiA2NSwgbWV0cmljOiAzMDAsIG5hbWU6ICdzb21lIHRhc2snLAotICAgICAg
ICAgICAgICAgIHN0YXJ0X3J1bjogODAxLCBzdGFydF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6
MDU6MjcuMVonLAotICAgICAgICAgICAgICAgIGVuZF9ydW46IDgwMSwgZW5kX3J1bl90aW1lOiAn
MjAxNS0xMC0yN1QxMjowNToyNy4xWid9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlz
aXNfdGFza3MnLCB7aWQ6IDUwMCwgcGxhdGZvcm06IDY1LCBtZXRyaWM6IDMwMCwgbmFtZTogJ3Nv
bWUgdGFzayd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGVzdF9ncm91cHMn
LCB7aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwJ30pLAogICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0dXM6IHN0YXR1
c0xpc3RbMF0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0
Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDAsIGNvbW1pdF9zZXQ6IDQw
MX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAxLCBz
dGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3Vw
OiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDEsIGNv
bW1pdF9zZXQ6IDQwMn0pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL3JlbW90ZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1v
dGUuanMKaW5kZXggYWY2YWEzNjhlZjUwYmI4NzgzMTc2N2Y2YWI3NTYzMWMyODFkZTBjNy4uOWQy
MDI1OGQ2ODg1NGM3YjA0ZDE4NzFmMGVhOGJlZDRhOTMzODk3MCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCkBAIC0xLDEyICsxLDEwIEBACiAndXNlIHN0
cmljdCc7CiAKLWNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwotY29uc3QgaHR0cCA9
IHJlcXVpcmUoJ2h0dHAnKTsKLWNvbnN0IGh0dHBzID0gcmVxdWlyZSgnaHR0cHMnKTsKLWNvbnN0
IHF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcnKTsKLWNvbnN0IENvbW1vblJlbW90
ZUFQSSA9IHJlcXVpcmUoJy4uLy4uL3B1YmxpYy9zaGFyZWQvY29tbW9uLXJlbW90ZS5qcycpLkNv
bW1vblJlbW90ZUFQSTsKLQotZ2xvYmFsLkZvcm1EYXRhID0gcmVxdWlyZSgnZm9ybS1kYXRhJyk7
CitsZXQgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CitsZXQgaHR0cCA9IHJlcXVpcmUoJ2h0
dHAnKTsKK2xldCBodHRwcyA9IHJlcXVpcmUoJ2h0dHBzJyk7CitsZXQgcXVlcnlzdHJpbmcgPSBy
ZXF1aXJlKCdxdWVyeXN0cmluZycpOworbGV0IENvbW1vblJlbW90ZUFQSSA9IHJlcXVpcmUoJy4u
Ly4uL3B1YmxpYy9zaGFyZWQvY29tbW9uLXJlbW90ZS5qcycpLkNvbW1vblJlbW90ZUFQSTsKIAog
Y2xhc3MgTm9kZVJlbW90ZUFQSSBleHRlbmRzIENvbW1vblJlbW90ZUFQSSB7CiAgICAgY29uc3Ry
dWN0b3Ioc2VydmVyKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2FuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5kZXggYjIwZmVjZmZiZGFlYzkyOWNm
NTQ5MzdhY2E4OTM2NzFlNzQ3MjhjZS4uNDE1ZWEwMTdkZjhiYTNkYjkyNmVkY2I3MDA1YmQ4Nzlm
NDZmNjM0YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMv
YW5hbHlzaXMtdGFzay10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC0xNSw2ICsxNSw3IEBAIGZ1bmN0aW9u
IHNhbXBsZUFuYWx5c2lzVGFzaygpCiAgICAgICAgICAgICAgICAgJ2J1Z3MnOiBbXSwKICAgICAg
ICAgICAgICAgICAnYnVpbGRSZXF1ZXN0Q291bnQnOiAnMTQnLAogICAgICAgICAgICAgICAgICdm
aW5pc2hlZEJ1aWxkUmVxdWVzdENvdW50JzogJzYnLAorICAgICAgICAgICAgICAgICdjYXRlZ29y
eSc6ICdpZGVudGlmaWVkJywKICAgICAgICAgICAgICAgICAnY2F1c2VzJzogWwogICAgICAgICAg
ICAgICAgICAgICAnMTA1OTc1JwogICAgICAgICAgICAgICAgIF0sCkBAIC0yMywxMCArMjQsMTAg
QEAgZnVuY3Rpb24gc2FtcGxlQW5hbHlzaXNUYXNrKCkKICAgICAgICAgICAgICAgICAnZW5kUnVu
VGltZSc6IDE0NTQ1MTUwMjAzMDMsCiAgICAgICAgICAgICAgICAgJ2ZpeGVzJzogW10sCiAgICAg
ICAgICAgICAgICAgJ2lkJzogJzEwODInLAotICAgICAgICAgICAgICAgICdtZXRyaWMnOiBNb2Nr
TW9kZWxzLnNvbWVNZXRyaWMuaWQoKSwKKyAgICAgICAgICAgICAgICAnbWV0cmljJzogJzI4ODQn
LAogICAgICAgICAgICAgICAgICduYW1lJzogJ1BvdGVudGlhbCAxLjIlIHJlZ3Jlc3Npb24gYmV0
d2VlbiAyMDE2LTAyLTAyIDIwOjIwIGFuZCAwMi0wMyAxNTo1NycsCiAgICAgICAgICAgICAgICAg
J25lZWRlZCc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzogTW9ja01vZGVscy5z
b21lUGxhdGZvcm0uaWQoKSwKKyAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnNjUnLAogICAg
ICAgICAgICAgICAgICdyZXN1bHQnOiAncmVncmVzc2lvbicsCiAgICAgICAgICAgICAgICAgJ3Nl
Z21lbnRhdGlvblN0cmF0ZWd5JzogJzEnLAogICAgICAgICAgICAgICAgICdzdGFydFJ1bic6ICcz
NzExNzk0OScsCkBAIC01MiwzOCArNTMsNiBAQCBmdW5jdGlvbiBzYW1wbGVBbmFseXNpc1Rhc2so
KQogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZUN1c3RvbUFuYWx5c2lzVGFzaygpCi17Ci0g
ICAgcmV0dXJuIHsKLSAgICAgICAgJ2FuYWx5c2lzVGFza3MnOiBbCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgJ2lkJzogJzEwMDAnLAotICAgICAgICAgICAgICAgICdjcmVhdGVkQXQn
OiAxNDU0NTk0MzMwMDAwLAotICAgICAgICAgICAgICAgICdhdXRob3InOiBudWxsLAotICAgICAg
ICAgICAgICAgICdidWlsZFJlcXVlc3RDb3VudCc6ICcwJywKLSAgICAgICAgICAgICAgICAnZmlu
aXNoZWRCdWlsZFJlcXVlc3RDb3VudCc6ICcwJywKLSAgICAgICAgICAgICAgICAnYnVncyc6IFtd
LAotICAgICAgICAgICAgICAgICdjYXVzZXMnOiBbIF0sCi0gICAgICAgICAgICAgICAgJ2ZpeGVz
JzogW10sCi0gICAgICAgICAgICAgICAgJ3N0YXJ0UnVuJzogbnVsbCwKLSAgICAgICAgICAgICAg
ICAnc3RhcnRSdW5UaW1lJzogbnVsbCwKLSAgICAgICAgICAgICAgICAnZW5kUnVuJzogbnVsbCwK
LSAgICAgICAgICAgICAgICAnZW5kUnVuVGltZSc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ21l
dHJpYyc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ25hbWUnOiAnUG90ZW50aWFsIDEuMiUgcmVn
cmVzc2lvbiBiZXR3ZWVuIDIwMTYtMDItMDIgMjA6MjAgYW5kIDAyLTAzIDE1OjU3JywKLSAgICAg
ICAgICAgICAgICAnbmVlZGVkJzogbnVsbCwKLSAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiBu
dWxsLAotICAgICAgICAgICAgICAgICdyZXN1bHQnOiBudWxsLAotICAgICAgICAgICAgICAgICdz
ZWdtZW50YXRpb25TdHJhdGVneSc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ3Rlc3RSYW5nZVN0
cmFnZWd5JzogbnVsbCwKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICAgICAgJ2NvbW1p
dHMnOiBbXSwKLSAgICAgICAgJ2J1Z3MnOiBbXSwKLSAgICAgICAgJ3N0YXR1cyc6ICdPSycKLSAg
ICB9OwotfQotCiBmdW5jdGlvbiBtZWFzdXJlbWVudENsdXN0ZXIoKQogewogICAgIHJldHVybiB7
CkBAIC0xNTEsNDMgKzEyMCw2IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCAoKSA9PiB7CiAg
ICAgTW9ja01vZGVscy5pbmplY3QoKTsKICAgICBsZXQgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJ
LmluamVjdCgpOwogCi0gICAgZnVuY3Rpb24gbG9hZEFuYWx5c2lzVGFza3MocmF3RGF0YSkKLSAg
ICB7Ci0gICAgICAgIEFuYWx5c2lzVGFzay5fY29uc3RydWN0QW5hbHlzaXNUYXNrc0Zyb21SYXdE
YXRhKHJhd0RhdGEpOwotICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgfQot
Ci0gICAgZGVzY3JpYmUoJ2ZpbmRCeVBsYXRmb3JtQW5kTWV0cmljJywgKCkgPT4gewotICAgICAg
ICBpdCgnc2hvdWxkIHJldHVybiBhbiBlbXB0eSBhcnJheSB3aGVuIHRoZXJlIGFyZSBubyBhbmFs
eXNpcyB0YXNrcycsICgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoQW5hbHlz
aXNUYXNrLmZpbmRCeVBsYXRmb3JtQW5kTWV0cmljKE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBN
b2NrTW9kZWxzLnNvbWVNZXRyaWMpLCBbXSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdz
aG91bGQgcmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG1hdGNoaW5nIG5vbi1jdXN0b20g
YW5hbHlzaXMgdGFza3MnLCAoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gbG9hZEFuYWx5c2lz
VGFza3Moc2FtcGxlQW5hbHlzaXNUYXNrKCkpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IHJldHVybiBsb2FkQW5hbHlzaXNUYXNrcyhzYW1wbGVDdXN0b21BbmFseXNpc1Rhc2soKSk7Ci0g
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBjb25zdCB0YXNrcyA9
IEFuYWx5c2lzVGFzay5maW5kQnlQbGF0Zm9ybUFuZE1ldHJpYyhNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybS5pZCgpLCBNb2NrTW9kZWxzLnNvbWVNZXRyaWMuaWQoKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2tzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgdGFz
ayA9IHRhc2tzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmlkKCksIDEw
ODIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmlzQ3VzdG9tKCksIGZhbHNl
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5oYXNSZXN1bHRzKCksIHRydWUp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLmhhc1BlbmRpbmdSZXF1ZXN0cygp
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5yZXF1ZXN0TGFiZWwo
KSwgJzYgb2YgMTQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGFzay5zdGFydE1l
YXN1cmVtZW50SWQoKSwgMzcxMTc5NDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
YXNrLmVuZE1lYXN1cmVtZW50SWQoKSwgMzcyNTM0NDgpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh0YXNrLmF1dGhvcigpLCAnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh0YXNrLmJ1Z3MoKSwgW10pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
dGFzay5jYXVzZXMoKSwgW0NvbW1pdExvZy5maW5kQnlJZCgxMDU5NzUpXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHRhc2sucGxhdGZvcm0oKSwgTW9ja01vZGVscy5zb21lUGxhdGZv
cm0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodGFzay5tZXRyaWMoKSwgTW9j
a01vZGVscy5zb21lTWV0cmljKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRh
c2suY2hhbmdlVHlwZSgpLCAncmVncmVzc2lvbicpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodGFzay5jYXRlZ29yeSgpLCAnaW52ZXN0aWdhdGVkJyk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KICAgICBkZXNjcmliZSgnZmV0Y2hBbGwnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCdzaG91bGQgcmVxdWVzdCBhbGwgYW5hbHlzaXMgdGFza3MnLCAoKSA9
PiB7CiAgICAgICAgICAgICBsZXQgY2FsbENvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZC1yZXF1ZXN0LXRlc3RzLmpzCmlu
ZGV4IGIwZjQwOWQ4ZjQwM2EzZjEyZTI5MjNjNzc2Zjk5NGFlMDZhM2I1MmIuLmY3MTZlOWViOGUy
NGZmODNkYzM2ZGQzMTU3MmRkMzQzMzBhZmQ2ZjkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGQtcmVxdWVzdC10ZXN0cy5qcwpAQCAt
MjMsMTIgKzIzLDEwIEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVzdERhdGEoKQogICAgICAg
ICB9XSwKICAgICAgICAgImNvbW1pdFNldHMiOiBbewogICAgICAgICAgICAgImlkIjogIjQyNTUi
LAotICAgICAgICAgICAgImNvbW1pdHMiOiBbIjg3ODMyIiwgIjkzMTE2Il0sCi0gICAgICAgICAg
ICAiY3VzdG9tUm9vdHMiOiBbXSwKKyAgICAgICAgICAgICJjb21taXRzIjogWyI4NzgzMiIsICI5
MzExNiJdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgICJpZCI6ICI0MjU2IiwKLSAgICAgICAg
ICAgICJjb21taXRzIjogWyI4NzgzMiIsICI5NjMzNiJdLAotICAgICAgICAgICAgImN1c3RvbVJv
b3RzIjogW10sCisgICAgICAgICAgICAiY29tbWl0cyI6IFsiODc4MzIiLCAiOTYzMzYiXQogICAg
ICAgICB9XSwKICAgICAgICAgImNvbW1pdHMiOiBbewogICAgICAgICAgICAgImlkIjogIjg3ODMy
IiwKQEAgLTUxLDcgKzQ5LDYgQEAgZnVuY3Rpb24gc2FtcGxlQnVpbGRSZXF1ZXN0RGF0YSgpCiAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTkyNzM2IiwKICAgICAgICAgICAgICJ0aW1lIjogMTQ0
ODIyNTMyNTY1MAogICAgICAgICB9XSwKLSAgICAgICAgInVwbG9hZGVkRmlsZXMiOiBbXSwKICAg
ICAgICAgInN0YXR1cyI6ICJPSyIKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmlu
ZGV4IGM0N2ZiZGFlZjYyODMzMTdmNmE0YWQyZTdmZjhiNmJlNzYyZjYyNWMuLmYyYTU2MWIzNzVj
NTUyYWY5ZDE4N2IyNDM3YzdiMTA3MmVmZjRkYjggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMK
QEAgLTE5Miw3ICsxOTIsNyBAQCBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QocGxh
dGZvcm0sIHRlc3QpCiAgICAgYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwog
ICAgIGFzc2VydCh0ZXN0IGluc3RhbmNlb2YgVGVzdCk7CiAKLSAgICBsZXQgY29tbWl0U2V0ID0g
Q29tbWl0U2V0LmVuc3VyZVNpbmdsZXRvbignNDE5NycsIHtjdXN0b21Sb290czogW10sIGNvbW1p
dHM6IFsKKyAgICBsZXQgY29tbWl0U2V0ID0gQ29tbWl0U2V0LmVuc3VyZVNpbmdsZXRvbignNDE5
NycsIHtjb21taXRzOiBbCiAgICAgICAgIHsnaWQnOiAnMTExMTI3JywgJ3RpbWUnOiAxNDU2OTU1
ODA3MzM0LCAncmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMud2Via2l0LCAncmV2aXNpb24nOiAnMTk3
NDYzJ30sCiAgICAgICAgIHsnaWQnOiAnMTExMjM3JywgJ3RpbWUnOiAxNDU2OTMxODc0MDAwLCAn
cmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeSwgJ3JldmlzaW9uJzogJzgw
MjI5J30sCiAgICAgICAgIHsnaWQnOiAnODg5MzAnLCAndGltZSc6IDAsICdyZXBvc2l0b3J5Jzog
TW9ja01vZGVscy5pb3MsICdyZXZpc2lvbic6ICcxM0E0NTInfSwKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKaW5k
ZXggNGI2ZmQwNjZkYzc3NTc2MzkzMDY1MTRlOTM0OGY2MWM4MTY0N2ExZS4uNmM2NjdkZWVmNTcw
YzRhZDg4ZjY4MDc3ZTZkMWQxZGVjMmY0MWEzMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMKQEAgLTE1LDgg
KzE1LDkgQEAgZnVuY3Rpb24gc2FtcGxlVGVzdEdyb3VwKCkgewogICAgICAgICAgICAgImNyZWF0
ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCiAgICAgICAgICAgICAiaGlkZGVuIjogZmFsc2UsCiAgICAg
ICAgICAgICAiYnVpbGRSZXF1ZXN0cyI6IFsiMTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5
ODgiLCAiMTY5ODkiLCAiMTY5OTAiLCAiMTY5OTEiLCAiMTY5OTIiXSwKLSAgICAgICAgICAgICJj
b21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKLSAgICAgICAgfV0sCisgICAgICAgICAgICAi
Y29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2IiwgIjQyNTUiLCAiNDI1NiIsICI0MjU1IiwgIjQy
NTYiLCAiNDI1NSIsICI0MjU2Il0KKyAgICAgICAgfQorICAgICAgICBdLAogICAgICAgICAiYnVp
bGRSZXF1ZXN0cyI6IFt7CiAgICAgICAgICAgICAiaWQiOiAiMTY5ODUiLAogICAgICAgICAgICAg
InRyaWdnZXJhYmxlIjogIjMiLApAQCAtNjYsMTYgKzY3LDE2IEBAIGZ1bmN0aW9uIHNhbXBsZVRl
c3RHcm91cCgpIHsKICAgICAgICAgICAgICJ1cmwiOiBudWxsLAogICAgICAgICAgICAgImJ1aWxk
IjogbnVsbCwKICAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCi0gICAgICAg
IH1dLAorICAgICAgICB9CisgICAgICAgIF0sCiAgICAgICAgICJjb21taXRTZXRzIjogW3sKICAg
ICAgICAgICAgICJpZCI6ICI0MjU1IiwKLSAgICAgICAgICAgICJjb21taXRzIjogWyI4NzgzMiIs
ICI5MzExNiJdLAotICAgICAgICAgICAgImN1c3RvbVJvb3RzIjogW10sCisgICAgICAgICAgICAi
Y29tbWl0cyI6IFsiODc4MzIiLCAiOTMxMTYiXQogICAgICAgICB9LCB7CiAgICAgICAgICAgICAi
aWQiOiAiNDI1NiIsCi0gICAgICAgICAgICAiY29tbWl0cyI6IFsiODc4MzIiLCAiOTYzMzYiXSwK
LSAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAotICAgICAgICB9XSwKKyAgICAgICAgICAg
ICJjb21taXRzIjogWyI4NzgzMiIsICI5NjMzNiJdCisgICAgICAgIH0KKyAgICAgICAgXSwKICAg
ICAgICAgImNvbW1pdHMiOiBbewogICAgICAgICAgICAgImlkIjogIjg3ODMyIiwKICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIjkiLApAQCAtOTYsOCArOTcsOCBAQCBmdW5jdGlvbiBzYW1wbGVU
ZXN0R3JvdXAoKSB7CiAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCiAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiMTkyNzM2IiwKICAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMyNTY1
MAotICAgICAgICB9XSwKLSAgICAgICAgInVwbG9hZGVkRmlsZXMiOiBbXSwKKyAgICAgICAgfQor
ICAgICAgICBdLAogICAgICAgICAic3RhdHVzIjogIk9LIgogICAgIH07CiB9CmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNWVhNzU1MmI3YTFiNGFlMDkzMmY0NjQ1NDkx
MWIwNTkzMmY4ZmIwNy4uMWNmNjUwOWRlYWYyYmYzNzgwNTY4ZmMyM2VjODgyZjA2ZjFlYWQxZiAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE3LTA0LTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjE1MjAyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjk0CisKKyAgICAgICAgQ29tbWl0dGVk
IGluY29ycmVjdGx5IChSZXF1ZXN0ZWQgYnkgcm5pd2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJBZGQgdGhlIFVJIGZvciBzY2hlZHVsaW5n
IGEgQS9CIHRlc3Rpbmcgd2l0aCBhIGN1c3RvbSByb290IgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjIyCisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzIxNTIwMgorCiAyMDE3LTA0LTEwICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCB0aGUgVUkgZm9yIHNjaGVkdWxpbmcgYSBB
L0IgdGVzdGluZyB3aXRoIGEgY3VzdG9tIHJvb3QKZGlmZiAtLWdpdCBhL3B1YmxpYy92My9jb21w
b25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qcyBiL3B1YmxpYy92My9j
b21wb25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2E1NzU2ODcyOTVhYTk0ODJhNWM5N2VjMTQyYTY1NzhjNjU1
M2M0NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9wdWJs
aWMvdjMvY29tcG9uZW50cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3IuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw1NDUgKzAsMCBAQAotY2xhc3MgQ3VzdG9tQW5hbHlzaXNUYXNrQ29u
ZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7Ci0KLSAgICBjb25zdHJ1Y3RvcigpCi0g
ICAgewotICAgICAgICBzdXBlcignY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yJyk7
Ci0KLSAgICAgICAgdGhpcy5fc2VsZWN0ZWRUZXN0cyA9IFtdOwotICAgICAgICB0aGlzLl90cmln
Z2VyYWJsZVBsYXRmb3JtcyA9IFtdOwotICAgICAgICB0aGlzLl9zZWxlY3RlZFBsYXRmb3JtID0g
bnVsbDsKLSAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbk5hbWVzID0gWydCYXNlbGluZScsICdD
b21wYXJpc29uJ107Ci0gICAgICAgIHRoaXMuX3Nob3dDb21wYXJpc29uID0gZmFsc2U7Ci0gICAg
ICAgIHRoaXMuX2NvbW1pdFNldE1hcCA9IHt9OwotICAgICAgICB0aGlzLl9zcGVjaWZpZWRSZXZp
c2lvbnMgPSB7J0Jhc2VsaW5lJzogbmV3IE1hcCwgJ0NvbXBhcmlzb24nOiBuZXcgTWFwfTsKLSAg
ICAgICAgdGhpcy5fZmV0Y2hlZFJldmlzaW9ucyA9IHsnQmFzZWxpbmUnOiBuZXcgTWFwLCAnQ29t
cGFyaXNvbic6IG5ldyBNYXB9OwotICAgICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXBCeUNvbmZp
Z3VyYXRpb24gPSB7J0Jhc2VsaW5lJzogbnVsbCwgJ0NvbXBhcmlzb24nOiBudWxsfTsKLSAgICAg
ICAgdGhpcy5fdXBkYXRlVHJpZ2dlcmFibGVMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVu
Y3Rpb24odGhpcy5fdXBkYXRlVHJpZ2dlcmFibGUuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAgdGhp
cy5fcmVuZGVyVHJpZ2dlcmFibGVUZXN0c0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5j
dGlvbih0aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVRlc3RzLmJpbmQodGhpcykpOwotICAgICAgICB0
aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRmb3Jtc0xhemlseSA9IG5ldyBMYXppbHlFdmFsdWF0
ZWRGdW5jdGlvbih0aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRmb3Jtcy5iaW5kKHRoaXMpKTsK
LSAgICAgICAgdGhpcy5fcmVuZGVyUmVwb3NpdG9yeVBhbmVzTGF6aWx5ID0gbmV3IExhemlseUV2
YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX3JlbmRlclJlcG9zaXRvcnlQYW5lcy5iaW5kKHRoaXMpKTsK
LQotICAgICAgICB0aGlzLl9maWxlVXBsb2FkZXJzID0ge307Ci0gICAgfQotCi0gICAgdGVzdHMo
KSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZFRlc3RzOyB9Ci0gICAgcGxhdGZvcm0oKSB7IHJldHVy
biB0aGlzLl9zZWxlY3RlZFBsYXRmb3JtOyB9Ci0gICAgY29tbWl0U2V0cygpCi0gICAgewotICAg
ICAgICBjb25zdCBtYXAgPSB0aGlzLl9jb21taXRTZXRNYXA7Ci0gICAgICAgIGlmICghbWFwWydC
YXNlbGluZSddIHx8ICFtYXBbJ0NvbXBhcmlzb24nXSkKLSAgICAgICAgICAgIHJldHVybiBudWxs
OwotICAgICAgICByZXR1cm4gW21hcFsnQmFzZWxpbmUnXSwgbWFwWydDb21wYXJpc29uJ11dOwot
ICAgIH0KLQotICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQotICAgIHsKLSAgICAgICAgdGhp
cy5jb250ZW50KCdzcGVjaWZ5LWNvbXBhcmlzb24tYnV0dG9uJykub25jbGljayA9IHRoaXMuY3Jl
YXRlRXZlbnRIYW5kbGVyKCgpID0+IHRoaXMuX2NvbmZpZ3VyZUNvbXBhcmlzb24oKSk7Ci0KLSAg
ICAgICAgY29uc3QgYmFzZWxpbmVSb290c1VwbG9hZGVyID0gbmV3IEluc3RhbnRGaWxlVXBsb2Fk
ZXI7Ci0gICAgICAgIGJhc2VsaW5lUm9vdHNVcGxvYWRlci5saXN0ZW5Ub0FjdGlvbigndXBsb2Fk
ZWRGaWxlJywgKHVwbG9hZGVkRmlsZSkgPT4gewotICAgICAgICAgICAgY29tcGFyaXNvblJvb3Rz
VXBsb2FkZXIuYWRkVXBsb2FkZWRGaWxlKHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICB0aGlz
Ll91cGRhdGVDb21taXRTZXRNYXAoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGJhc2VsaW5lUm9v
dHNVcGxvYWRlci5saXN0ZW5Ub0FjdGlvbigncmVtb3ZlZEZpbGUnLCAoKSA9PiB0aGlzLl91cGRh
dGVDb21taXRTZXRNYXAoKSk7Ci0gICAgICAgIHRoaXMuX2ZpbGVVcGxvYWRlcnNbJ0Jhc2VsaW5l
J10gPSBiYXNlbGluZVJvb3RzVXBsb2FkZXI7Ci0KLSAgICAgICAgY29uc3QgY29tcGFyaXNvblJv
b3RzVXBsb2FkZXIgPSBuZXcgSW5zdGFudEZpbGVVcGxvYWRlcjsKLSAgICAgICAgY29tcGFyaXNv
blJvb3RzVXBsb2FkZXIubGlzdGVuVG9BY3Rpb24oJ3VwbG9hZGVkRmlsZScsICgpID0+IHRoaXMu
X3VwZGF0ZUNvbW1pdFNldE1hcCgpKTsKLSAgICAgICAgY29tcGFyaXNvblJvb3RzVXBsb2FkZXIu
bGlzdGVuVG9BY3Rpb24oJ3JlbW92ZWRGaWxlJywgKCkgPT4gdGhpcy5fdXBkYXRlQ29tbWl0U2V0
TWFwKCkpOwotICAgICAgICB0aGlzLl9maWxlVXBsb2FkZXJzWydDb21wYXJpc29uJ10gPSBjb21w
YXJpc29uUm9vdHNVcGxvYWRlcjsKLSAgICB9Ci0KLSAgICBfY29uZmlndXJlQ29tcGFyaXNvbigp
Ci0gICAgewotICAgICAgICB0aGlzLl9zaG93Q29tcGFyaXNvbiA9IHRydWU7Ci0gICAgICAgIHRo
aXMuX3JlcG9zaXRvcnlHcm91cEJ5Q29uZmlndXJhdGlvblsnQ29tcGFyaXNvbiddID0gdGhpcy5f
cmVwb3NpdG9yeUdyb3VwQnlDb25maWd1cmF0aW9uWydCYXNlbGluZSddOwotCi0gICAgICAgIGNv
bnN0IHNwZWNpZmllZEJhc2VsaW5lUmV2aXNpb25zID0gdGhpcy5fc3BlY2lmaWVkUmV2aXNpb25z
WydCYXNlbGluZSddOwotICAgICAgICBjb25zdCBzcGVjaWZpZWRDb21wYXJpc29uUmV2aXNpb25z
ID0gbmV3IE1hcDsKLSAgICAgICAgZm9yIChsZXQga2V5IG9mIHNwZWNpZmllZEJhc2VsaW5lUmV2
aXNpb25zLmtleXMoKSkKLSAgICAgICAgICAgIHNwZWNpZmllZENvbXBhcmlzb25SZXZpc2lvbnMu
c2V0KGtleSwgc3BlY2lmaWVkQmFzZWxpbmVSZXZpc2lvbnMuZ2V0KGtleSkpOwotICAgICAgICB0
aGlzLl9zcGVjaWZpZWRSZXZpc2lvbnNbJ0NvbXBhcmlzb24nXSA9IHNwZWNpZmllZENvbXBhcmlz
b25SZXZpc2lvbnM7Ci0KLSAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKLSAgICB9Ci0K
LSAgICByZW5kZXIoKQotICAgIHsKLSAgICAgICAgc3VwZXIucmVuZGVyKCk7Ci0KLSAgICAgICAg
dGhpcy5fcmVuZGVyVHJpZ2dlcmFibGVUZXN0c0xhemlseS5ldmFsdWF0ZSgpOwotICAgICAgICB0
aGlzLl9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRmb3Jtc0xhemlseS5ldmFsdWF0ZSh0aGlzLl9zZWxl
Y3RlZFRlc3RzLCB0aGlzLl90cmlnZ2VyYWJsZVBsYXRmb3Jtcyk7Ci0KLSAgICAgICAgY29uc3Qg
W3RyaWdnZXJhYmxlLCBlcnJvcl0gPSB0aGlzLl91cGRhdGVUcmlnZ2VyYWJsZUxhemlseS5ldmFs
dWF0ZSh0aGlzLl9zZWxlY3RlZFRlc3RzLCB0aGlzLl9zZWxlY3RlZFBsYXRmb3JtKTsKLQotICAg
ICAgICB0aGlzLl9yZW5kZXJSZXBvc2l0b3J5UGFuZXNMYXppbHkuZXZhbHVhdGUodHJpZ2dlcmFi
bGUsIGVycm9yLCB0aGlzLl9zZWxlY3RlZFBsYXRmb3JtLCB0aGlzLl9yZXBvc2l0b3J5R3JvdXBC
eUNvbmZpZ3VyYXRpb24sIHRoaXMuX3Nob3dDb21wYXJpc29uKTsKLSAgICB9Ci0KLSAgICBfcmVu
ZGVyVHJpZ2dlcmFibGVUZXN0cygpCi0gICAgewotICAgICAgICBjb25zdCBlbmFibGVkVHJpZ2dl
cmFibGVzID0gVHJpZ2dlcmFibGUuYWxsKCkuZmlsdGVyKCh0cmlnZ2VyYWJsZSkgPT4gIXRyaWdn
ZXJhYmxlLmlzRGlzYWJsZWQoKSk7Ci0KLSAgICAgICAgbGV0IHRlc3RzID0gVGVzdC50b3BMZXZl
bFRlc3RzKCkuZmlsdGVyKCh0ZXN0KSA9PiB0ZXN0Lm1ldHJpY3MoKS5sZW5ndGggJiYgZW5hYmxl
ZFRyaWdnZXJhYmxlcy5zb21lKCh0cmlnZ2VyYWJsZSkgPT4gdHJpZ2dlcmFibGUuYWNjZXB0c1Rl
c3QodGVzdCkpKTsKLSAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgndGVz
dC1saXN0JyksIHRoaXMuX2J1aWxkQ2hlY2tib3hMaXN0KCd0ZXN0JywgdGVzdHMsIChzZWxlY3Rl
ZFRlc3RzKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRlc3RzID0gc2VsZWN0ZWRU
ZXN0czsKLQotICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcmFibGVQbGF0Zm9ybXMgPSBUcmlnZ2Vy
YWJsZS50cmlnZ2VyYWJsZVBsYXRmb3Jtc0ZvclRlc3RzKHRoaXMuX3NlbGVjdGVkVGVzdHMpOwot
ICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVGVzdHMubGVuZ3RoICYmICF0aGlzLl90cmln
Z2VyYWJsZVBsYXRmb3Jtcy5pbmNsdWRlcyh0aGlzLl9zZWxlY3RlZFBsYXRmb3JtKSkKLSAgICAg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBsYXRmb3JtID0gbnVsbDsKLSAgICAgICAgfSkpOwot
ICAgIH0KLQotICAgIF9yZW5kZXJUcmlnZ2VyYWJsZVBsYXRmb3JtcyhzZWxlY3RlZFRlc3RzLCB0
cmlnZ2VyYWJsZVBsYXRmb3JtcykKLSAgICB7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRUZXN0cy5s
ZW5ndGgpIHsKLSAgICAgICAgICAgIHRoaXMuY29udGVudCgncGxhdGZvcm0tcGFuZScpLnN0eWxl
LmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgdGhpcy5jb250ZW50KCdwbGF0Zm9ybS1wYW5lJykuc3R5bGUuZGlzcGxheSA9IG51bGw7Ci0K
LSAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgncGxhdGZvcm0tbGlzdCcp
LCB0aGlzLl9idWlsZENoZWNrYm94TGlzdCgncGxhdGZvcm0nLCB0cmlnZ2VyYWJsZVBsYXRmb3Jt
cywgKHNlbGVjdGVkUGxhdGZvcm1zKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBs
YXRmb3JtID0gc2VsZWN0ZWRQbGF0Zm9ybXMubGVuZ3RoID8gc2VsZWN0ZWRQbGF0Zm9ybXNbMF0g
OiBudWxsOwotCi0gICAgICAgICAgICBjb25zdCBbdHJpZ2dlcmFibGUsIGVycm9yXSA9IHRoaXMu
X3VwZGF0ZVRyaWdnZXJhYmxlTGF6aWx5LmV2YWx1YXRlKHRoaXMuX3NlbGVjdGVkVGVzdHMsIHRo
aXMuX3NlbGVjdGVkUGxhdGZvcm0pOwotICAgICAgICAgICAgdGhpcy5fdXBkYXRlUmVwb3NpdG9y
eUdyb3Vwcyh0cmlnZ2VyYWJsZSk7Ci0gICAgICAgICAgICB0aGlzLl91cGRhdGVDb21taXRTZXRN
YXAoKTsKLQotICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKLSAgICAgICAgfSkp
OwotICAgIH0KLQotICAgIF9idWlsZENoZWNrYm94TGlzdChuYW1lLCBvYmplY3RzLCBjYWxsYmFj
aykKLSAgICB7Ci0gICAgICAgIGNvbnN0IGxpc3RJdGVtcyA9IFtdOwotICAgICAgICBsZXQgc2Vs
ZWN0ZWRMaXN0SXRlbXMgPSBbXTsKLSAgICAgICAgY29uc3QgZWxlbWVudCA9IENvbXBvbmVudEJh
c2UuY3JlYXRlRWxlbWVudDsKLSAgICAgICAgcmV0dXJuIG9iamVjdHMubWFwKChvYmplY3QpID0+
IHsKLSAgICAgICAgICAgIGNvbnN0IGNoZWNrYm94ID0gZWxlbWVudCgnaW5wdXQnLCB7dHlwZTog
J3JhZGlvJywgbmFtZTogbmFtZSwgb25jaGFuZ2U6ICgpID0+IHsKLSAgICAgICAgICAgICAgICBz
ZWxlY3RlZExpc3RJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmxhYmVsLmNsYXNzTGlzdC5y
ZW1vdmUoJ3NlbGVjdGVkJykpOwotICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW1zID0g
bGlzdEl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5jaGVja2JveC5jaGVja2VkKTsKLSAgICAg
ICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmxhYmVs
LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJykpOwotCi0gICAgICAgICAgICAgICAgY2FsbGJhY2so
c2VsZWN0ZWRMaXN0SXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLm9iamVjdCkpOwotICAgICAgICAg
ICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7Ci0gICAgICAgICAgICB9fSk7Ci0gICAgICAg
ICAgICBjb25zdCBsYWJlbCA9IGVsZW1lbnQoJ2xhYmVsJywgW2NoZWNrYm94LCBvYmplY3QubGFi
ZWwoKV0pOwotICAgICAgICAgICAgbGlzdEl0ZW1zLnB1c2goe2NoZWNrYm94LCBsYWJlbCwgb2Jq
ZWN0fSk7Ci0gICAgICAgICAgICByZXR1cm4gZWxlbWVudCgnbGknLCBsYWJlbCk7Ci0gICAgICAg
IH0pCi0gICAgfQotCi0gICAgX3VwZGF0ZVRyaWdnZXJhYmxlKHRlc3RzLCBwbGF0Zm9ybSkKLSAg
ICB7Ci0gICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG51bGw7Ci0gICAgICAgIGxldCBlcnJvciA9
IG51bGw7Ci0gICAgICAgIGlmICh0ZXN0cy5sZW5ndGggJiYgcGxhdGZvcm0pIHsKLSAgICAgICAg
ICAgIHRyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVz
dHNbMF0sIHBsYXRmb3JtKTsKLSAgICAgICAgICAgIGxldCBtYXRjaGluZ1Rlc3RzID0gbmV3IFNl
dDsKLSAgICAgICAgICAgIGxldCBtaXNtYXRjaGluZ1Rlc3RzID0gbmV3IFNldDsKLSAgICAgICAg
ICAgIGZvciAobGV0IHRlc3Qgb2YgdGVzdHMpIHsKLSAgICAgICAgICAgICAgICBpZiAoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pID09IHRyaWdnZXJh
YmxlKQotICAgICAgICAgICAgICAgICAgICBtYXRjaGluZ1Rlc3RzLmFkZCh0ZXN0KTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1pc21hdGNoaW5nVGVzdHMuYWRk
KHRlc3QpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1hdGNoaW5nVGVzdHMuc2l6
ZSA8IHRlc3RzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVGVzdE5h
bWVzID0gWy4uLm1hdGNoaW5nVGVzdHNdLm1hcCgodGVzdCkgPT4gdGVzdC5mdWxsTmFtZSgpKS5z
b3J0KCkuam9pbignIiwgIicpOwotICAgICAgICAgICAgICAgIGNvbnN0IG1pc21hdGhpbmdUZXN0
TmFtZXMgPSBbLi4ubWlzbWF0Y2hpbmdUZXN0c10ubWFwKCh0ZXN0KSA9PiB0ZXN0LmZ1bGxOYW1l
KCkpLnNvcnQoKS5qb2luKCciLCAiJyk7Ci0gICAgICAgICAgICAgICAgZXJyb3IgPSBgVGVzdHMg
IiR7bWF0Y2hpbmdUZXN0TmFtZXN9IiBhbmQgIiR7bWlzbWF0aGluZ1Rlc3ROYW1lc30iIGNhbm5v
dCBiZSBzY2hlZHVsZWQKLSAgICAgICAgICAgICAgICAgICAgc2ltdWx0ZW5vc3VseSBvbiAiJHtw
bGF0Zm9ybS5uYW1lKCl9Ii4gUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlbSBhdCBhIHRpbWUuYDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBbdHJpZ2dlcmFibGUs
IGVycm9yXTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlUmVwb3NpdG9yeUdyb3Vwcyh0cmlnZ2VyYWJs
ZSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cHMgPSB0cmlnZ2VyYWJsZSA/
IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWVQcmVmZXJyaW5nU21hbGxlclJl
cG9zaXRvcmllcyh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpIDogW107Ci0gICAgICAg
IGZvciAobGV0IG5hbWUgaW4gdGhpcy5fcmVwb3NpdG9yeUdyb3VwQnlDb25maWd1cmF0aW9uKSB7
Ci0gICAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLl9yZXBvc2l0b3J5R3JvdXBC
eUNvbmZpZ3VyYXRpb25bbmFtZV07Ci0gICAgICAgICAgICBsZXQgbWF0Y2hpbmdHcm91cCA9IG51
bGw7Ci0gICAgICAgICAgICBpZiAoY3VycmVudEdyb3VwKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHJlcG9zaXRvcnlHcm91cHMuaW5jbHVkZXMoY3VycmVudEdyb3VwKSkKLSAgICAgICAgICAgICAg
ICAgICAgbWF0Y2hpbmdHcm91cCA9IGN1cnJlbnRHcm91cDsKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoaW5nR3JvdXAgPSByZXBvc2l0b3J5R3JvdXBzLmZp
bmQoKGdyb3VwKSA9PiBncm91cC5uYW1lKCkgPT0gY3VycmVudEdyb3VwLm5hbWUoKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW1hdGNoaW5nR3JvdXAgJiYgcmVwb3NpdG9yeUdy
b3Vwcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgbWF0Y2hpbmdHcm91cCA9IHJlcG9zaXRvcnlH
cm91cHNbMF07Ci0gICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXBCeUNvbmZpZ3VyYXRp
b25bbmFtZV0gPSBtYXRjaGluZ0dyb3VwOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgX3VwZGF0
ZUNvbW1pdFNldE1hcCgpCi0gICAgewotICAgICAgICBjb25zdCBuZXdCYXNlbGluZSA9IHRoaXMu
X2NvbXB1dGVDb21taXRTZXQoJ0Jhc2VsaW5lJyk7Ci0gICAgICAgIGxldCBuZXdDb21wYXJpc29u
ID0gdGhpcy5fY29tcHV0ZUNvbW1pdFNldCgnQ29tcGFyaXNvbicpOwotICAgICAgICBpZiAobmV3
QmFzZWxpbmUgJiYgbmV3Q29tcGFyaXNvbiAmJiBuZXdCYXNlbGluZS5lcXVhbHMobmV3Q29tcGFy
aXNvbikpCi0gICAgICAgICAgICBuZXdDb21wYXJpc29uID0gbnVsbDsKLQotICAgICAgICBjb25z
dCBjdXJyZW50QmFzZWxpbmUgPSB0aGlzLl9jb21taXRTZXRNYXBbJ0Jhc2VsaW5lJ107Ci0gICAg
ICAgIGNvbnN0IGN1cnJlbnRDb21wYXJpc29uID0gdGhpcy5fY29tbWl0U2V0TWFwWydCYXNlbGlu
ZSddOwotICAgICAgICBpZiAobmV3QmFzZWxpbmUgPT0gY3VycmVudEJhc2VsaW5lICYmIG5ld0Nv
bXBhcmlzb24gPT0gY3VycmVudENvbXBhcmlzb24pCi0gICAgICAgICAgICByZXR1cm47IC8vIEJv
dGggb2YgdGhlbSBhcmUgbnVsbC4KLQotICAgICAgICBpZiAobmV3QmFzZWxpbmUgJiYgY3VycmVu
dEJhc2VsaW5lICYmIG5ld0Jhc2VsaW5lLmVxdWFscyhjdXJyZW50QmFzZWxpbmUpCi0gICAgICAg
ICAgICAmJiBuZXdDb21wYXJpc29uICYmIGN1cnJlbnRDb21wYXJpc29uICYmIG5ld0NvbXBhcmlz
b24uZXF1YWxzKGN1cnJlbnRDb21wYXJpc29uKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB0aGlzLl9jb21taXRTZXRNYXAgPSB7J0Jhc2VsaW5lJzogbmV3QmFzZWxpbmUsICdDb21w
YXJpc29uJzogbmV3Q29tcGFyaXNvbn07Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbign
Y29tbWl0U2V0Q2hhbmdlJyk7Ci0gICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7Ci0gICAg
fQotCi0gICAgX2NvbXB1dGVDb21taXRTZXQoY29uZmlndXJhdGlvbk5hbWUpCi0gICAgewotICAg
ICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSB0aGlzLl9yZXBvc2l0b3J5R3JvdXBCeUNvbmZp
Z3VyYXRpb25bY29uZmlndXJhdGlvbk5hbWVdOwotICAgICAgICBpZiAoIXJlcG9zaXRvcnlHcm91
cCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGNvbnN0IGZpbGVVcGxvYWRl
ciA9IHRoaXMuX2ZpbGVVcGxvYWRlcnNbY29uZmlndXJhdGlvbk5hbWVdOwotICAgICAgICBpZiAo
IWZpbGVVcGxvYWRlciB8fCBmaWxlVXBsb2FkZXIuaGFzRmlsZVRvVXBsb2FkKCkpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICBjb25zdCBjb21taXRTZXQgPSBuZXcgQ3VzdG9t
Q29tbWl0U2V0OwotICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIHJlcG9zaXRvcnlHcm91
cC5yZXBvc2l0b3JpZXMoKSkgewotICAgICAgICAgICAgbGV0IHJldmlzaW9uID0gdGhpcy5fc3Bl
Y2lmaWVkUmV2aXNpb25zW2NvbmZpZ3VyYXRpb25OYW1lXS5nZXQocmVwb3NpdG9yeSk7Ci0gICAg
ICAgICAgICBpZiAoIXJldmlzaW9uKQotICAgICAgICAgICAgICAgIHJldmlzaW9uID0gdGhpcy5f
ZmV0Y2hlZFJldmlzaW9uc1tjb25maWd1cmF0aW9uTmFtZV0uZ2V0KHJlcG9zaXRvcnkpOwotICAg
ICAgICAgICAgaWYgKCFyZXZpc2lvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgICAgIGNvbW1pdFNldC5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSwg
cmV2aXNpb24pOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChsZXQgdXBsb2FkZWRGaWxlIG9m
IGZpbGVVcGxvYWRlci51cGxvYWRlZEZpbGVzKCkpCi0gICAgICAgICAgICBjb21taXRTZXQuYWRk
Q3VzdG9tUm9vdCh1cGxvYWRlZEZpbGUpOwotCi0gICAgICAgIHJldHVybiBjb21taXRTZXQ7Ci0g
ICAgfQotCi0gICAgX3JlbmRlclJlcG9zaXRvcnlQYW5lcyh0cmlnZ2VyYWJsZSwgZXJyb3IsIHBs
YXRmb3JtLCByZXBvc2l0b3J5R3JvdXBCeUNvbmZpZ3VyYXRpb24sIHNob3dDb21wYXJpc29uKQot
ICAgIHsKLSAgICAgICAgdGhpcy5jb250ZW50KCdyZXBvc2l0b3J5LWNvbmZpZ3VyYXRpb24tZXJy
b3ItcGFuZScpLnN0eWxlLmRpc3BsYXkgPSBlcnJvciA/IG51bGwgOiAnbm9uZSc7Ci0gICAgICAg
IHRoaXMuY29udGVudCgnZXJyb3InKS50ZXh0Q29udGVudCA9IGVycm9yOwotCi0gICAgICAgIHRo
aXMuY29udGVudCgnYmFzZWxpbmUtY29uZmlndXJhdGlvbi1wYW5lJykuc3R5bGUuZGlzcGxheSA9
IHRyaWdnZXJhYmxlID8gbnVsbCA6ICdub25lJzsKLSAgICAgICAgdGhpcy5jb250ZW50KCdzcGVj
aWZ5LWNvbXBhcmlzb24tcGFuZScpLnN0eWxlLmRpc3BsYXkgPSB0cmlnZ2VyYWJsZSAmJiAhc2hv
d0NvbXBhcmlzb24gPyBudWxsIDogJ25vbmUnOwotICAgICAgICB0aGlzLmNvbnRlbnQoJ2NvbXBh
cmlzb24tY29uZmlndXJhdGlvbi1wYW5lJykuc3R5bGUuZGlzcGxheSA9IHRyaWdnZXJhYmxlICYm
IHNob3dDb21wYXJpc29uID8gbnVsbCA6ICdub25lJzsKLQotICAgICAgICBpZiAoIXRyaWdnZXJh
YmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91
cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lUHJlZmVycmluZ1NtYWxs
ZXJSZXBvc2l0b3JpZXModHJpZ2dlcmFibGUucmVwb3NpdG9yeUdyb3VwcygpKTsKLQotICAgICAg
ICBjb25zdCByZXBvc2l0b3J5U2V0ID0gbmV3IFNldDsKLSAgICAgICAgZm9yIChsZXQgZ3JvdXAg
b2YgcmVwb3NpdG9yeUdyb3VwcykgewotICAgICAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBv
ZiBncm91cC5yZXBvc2l0b3JpZXMoKSkKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5U2V0LmFk
ZChyZXBvc2l0b3J5KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IHJlcG9zaXRvcmllcyA9
IFJlcG9zaXRvcnkuc29ydEJ5TmFtZVByZWZlcnJpbmdPbmVzV2l0aFVSTChbLi4ucmVwb3NpdG9y
eVNldF0pOwotICAgICAgICBjb25zdCByZXF1aXJlZFJlcG9zaXRvcmllcyA9IHJlcG9zaXRvcmll
cy5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHsKLSAgICAgICAgICAgIHJldHVybiByZXBvc2l0b3J5
R3JvdXBzLmV2ZXJ5KChncm91cCkgPT4gZ3JvdXAucmVwb3NpdG9yaWVzKCkuaW5jbHVkZXMocmVw
b3NpdG9yeSkpOwotICAgICAgICB9KTsKLSAgICAgICAgY29uc3QgYWx3YXlzQWNjZXB0c0N1c3Rv
bVJvb3RzID0gcmVwb3NpdG9yeUdyb3Vwcy5ldmVyeSgoZ3JvdXApID0+IGdyb3VwLmFjY2VwdHND
dXN0b21Sb290cygpKTsKLQotICAgICAgICBjb25zb2xlLmxvZyhyZXBvc2l0b3J5R3JvdXBzLCBh
bHdheXNBY2NlcHRzQ3VzdG9tUm9vdHMpOwotCi0gICAgICAgIHRoaXMuX3JlbmRlckJhc2VsaW5l
UmV2aXNpb25UYWJsZShwbGF0Zm9ybSwgcmVwb3NpdG9yeUdyb3VwcywgcmVxdWlyZWRSZXBvc2l0
b3JpZXMsIHJlcG9zaXRvcnlHcm91cEJ5Q29uZmlndXJhdGlvbiwgYWx3YXlzQWNjZXB0c0N1c3Rv
bVJvb3RzKTsKLQotICAgICAgICBpZiAoc2hvd0NvbXBhcmlzb24pCi0gICAgICAgICAgICB0aGlz
Ll9yZW5kZXJDb21wYXJpc29uUmV2aXNpb25UYWJsZShwbGF0Zm9ybSwgcmVwb3NpdG9yeUdyb3Vw
cywgcmVxdWlyZWRSZXBvc2l0b3JpZXMsIHJlcG9zaXRvcnlHcm91cEJ5Q29uZmlndXJhdGlvbiwg
YWx3YXlzQWNjZXB0c0N1c3RvbVJvb3RzKTsKLSAgICB9Ci0KLSAgICBfcmVuZGVyQmFzZWxpbmVS
ZXZpc2lvblRhYmxlKHBsYXRmb3JtLCByZXBvc2l0b3J5R3JvdXBzLCByZXF1aXJlZFJlcG9zaXRv
cmllcywgcmVwb3NpdG9yeUdyb3VwQnlDb25maWd1cmF0aW9uLCBhbHdheXNBY2NlcHRzQ3VzdG9t
Um9vdHMpCi0gICAgewotICAgICAgICBsZXQgY3VycmVudEdyb3VwID0gcmVwb3NpdG9yeUdyb3Vw
QnlDb25maWd1cmF0aW9uWydCYXNlbGluZSddOwotICAgICAgICBjb25zdCBvcHRpb25hbFJlcG9z
aXRvcnlMaXN0ID0gdGhpcy5fb3B0aW9uYWxSZXBvc2l0b3J5TGlzdChjdXJyZW50R3JvdXAsIHJl
cXVpcmVkUmVwb3NpdG9yaWVzKTsKLSAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29u
dGVudCgnYmFzZWxpbmUtcmV2aXNpb24tdGFibGUnKSwKLSAgICAgICAgICAgIHRoaXMuX2J1aWxk
UmV2aXNpb25UYWJsZSgnQmFzZWxpbmUnLCByZXBvc2l0b3J5R3JvdXBzLCBjdXJyZW50R3JvdXAs
IHBsYXRmb3JtLCByZXF1aXJlZFJlcG9zaXRvcmllcywgb3B0aW9uYWxSZXBvc2l0b3J5TGlzdCwg
YWx3YXlzQWNjZXB0c0N1c3RvbVJvb3RzKSk7Ci0gICAgfQotCi0gICAgX3JlbmRlckNvbXBhcmlz
b25SZXZpc2lvblRhYmxlKHBsYXRmb3JtLCByZXBvc2l0b3J5R3JvdXBzLCByZXF1aXJlZFJlcG9z
aXRvcmllcywgcmVwb3NpdG9yeUdyb3VwQnlDb25maWd1cmF0aW9uLCBhbHdheXNBY2NlcHRzQ3Vz
dG9tUm9vdHMpCi0gICAgewotICAgICAgICBsZXQgY3VycmVudEdyb3VwID0gcmVwb3NpdG9yeUdy
b3VwQnlDb25maWd1cmF0aW9uWydDb21wYXJpc29uJ107Ci0gICAgICAgIGNvbnN0IG9wdGlvbmFs
UmVwb3NpdG9yeUxpc3QgPSB0aGlzLl9vcHRpb25hbFJlcG9zaXRvcnlMaXN0KGN1cnJlbnRHcm91
cCwgcmVxdWlyZWRSZXBvc2l0b3JpZXMpOwotICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhp
cy5jb250ZW50KCdjb21wYXJpc29uLXJldmlzaW9uLXRhYmxlJyksCi0gICAgICAgICAgICB0aGlz
Ll9idWlsZFJldmlzaW9uVGFibGUoJ0NvbXBhcmlzb24nLCByZXBvc2l0b3J5R3JvdXBzLCBjdXJy
ZW50R3JvdXAsIHBsYXRmb3JtLCByZXF1aXJlZFJlcG9zaXRvcmllcywgb3B0aW9uYWxSZXBvc2l0
b3J5TGlzdCwgYWx3YXlzQWNjZXB0c0N1c3RvbVJvb3RzKSk7Ci0gICAgfQotCi0gICAgX29wdGlv
bmFsUmVwb3NpdG9yeUxpc3QoY3VycmVudEdyb3VwLCByZXF1aXJlZFJlcG9zaXRvcmllcykKLSAg
ICB7Ci0gICAgICAgIGlmICghY3VycmVudEdyb3VwKQotICAgICAgICAgICAgcmV0dXJuIFtdOwot
ICAgICAgICByZXR1cm4gUmVwb3NpdG9yeS5zb3J0QnlOYW1lUHJlZmVycmluZ09uZXNXaXRoVVJM
KGN1cnJlbnRHcm91cC5yZXBvc2l0b3JpZXMoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+ICFyZXF1
aXJlZFJlcG9zaXRvcmllcy5pbmNsdWRlcyhyZXBvc2l0b3J5KSkpOwotICAgIH0KLQotICAgIF9i
dWlsZFJldmlzaW9uVGFibGUoY29uZmlndXJhdGlvbk5hbWUsIHJlcG9zaXRvcnlHcm91cHMsIGN1
cnJlbnRHcm91cCwgcGxhdGZvcm0sIHJlcXVpcmVkUmVwb3NpdG9yaWVzLCBvcHRpb25hbFJlcG9z
aXRvcnlMaXN0LCBhbHdheXNBY2NlcHRzQ3VzdG9tUm9vdHMpCi0gICAgewotICAgICAgICBjb25z
dCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVtZW50OwotICAgICAgICBjb25zdCBs
aW5rID0gQ29tcG9uZW50QmFzZS5jcmVhdGVMaW5rOwotCi0gICAgICAgIGNvbnN0IGN1c3RvbVJv
b3RzVEJvZHkgPSBlbGVtZW50KCd0Ym9keScsIFsKLSAgICAgICAgICAgIGVsZW1lbnQoJ3RyJywg
WwotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3RoJywgJ1Jvb3RzJyksCi0gICAgICAgICAgICAg
ICAgZWxlbWVudCgndGQnLCB0aGlzLl9maWxlVXBsb2FkZXJzW2NvbmZpZ3VyYXRpb25OYW1lXSks
Ci0gICAgICAgICAgICBdKSwKLSAgICAgICAgXSk7Ci0KLSAgICAgICAgcmV0dXJuIFsKLSAgICAg
ICAgICAgIGVsZW1lbnQoJ3Rib2R5JywKLSAgICAgICAgICAgICAgICByZXF1aXJlZFJlcG9zaXRv
cmllcy5tYXAoKHJlcG9zaXRvcnkpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVs
ZW1lbnQoJ3RyJywgWwotICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgndGgnLCByZXBv
c2l0b3J5Lm5hbWUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCd0ZCcsIHRo
aXMuX2J1aWxkUmV2aXNpb25JbnB1dChjb25maWd1cmF0aW9uTmFtZSwgcmVwb3NpdG9yeSwgcGxh
dGZvcm0pKQotICAgICAgICAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgICAgICB9KSksCi0g
ICAgICAgICAgICBhbHdheXNBY2NlcHRzQ3VzdG9tUm9vdHMgPyBjdXN0b21Sb290c1RCb2R5IDog
W10sCi0gICAgICAgICAgICBlbGVtZW50KCd0Ym9keScsIFsKLSAgICAgICAgICAgICAgICBlbGVt
ZW50KCd0cicsIHsnY2xhc3MnOiAnZ3JvdXAtcm93J30sCi0gICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnQoJ3RkJywge2NvbHNwYW46IDJ9LCB0aGlzLl9idWlsZFJlcG9zaXRvcnlHcm91cExpc3Qo
cmVwb3NpdG9yeUdyb3VwcywgY3VycmVudEdyb3VwLCBjb25maWd1cmF0aW9uTmFtZSkpKSwKLSAg
ICAgICAgICAgIF0pLAotICAgICAgICAgICAgIWFsd2F5c0FjY2VwdHNDdXN0b21Sb290cyAmJiBj
dXJyZW50R3JvdXAgJiYgY3VycmVudEdyb3VwLmFjY2VwdHNDdXN0b21Sb290cygpID8gY3VzdG9t
Um9vdHNUQm9keSA6IFtdLAotICAgICAgICAgICAgZWxlbWVudCgndGJvZHknLAotICAgICAgICAg
ICAgICAgIG9wdGlvbmFsUmVwb3NpdG9yeUxpc3QubWFwKChyZXBvc2l0b3J5KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50KCd0cicsWwotICAgICAgICAgICAgICAgICAg
ICAgICAgZWxlbWVudCgndGgnLCByZXBvc2l0b3J5Lm5hbWUoKSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50KCd0ZCcsIHRoaXMuX2J1aWxkUmV2aXNpb25JbnB1dChjb25maWd1cmF0
aW9uTmFtZSwgcmVwb3NpdG9yeSwgcGxhdGZvcm0pKQotICAgICAgICAgICAgICAgICAgICBdKTsK
LSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgKV07Ci0gICAgfQotCi0gICAgX2J1aWxk
UmVwb3NpdG9yeUdyb3VwTGlzdChyZXBvc2l0b3J5R3JvdXBzLCBjdXJyZW50R3JvdXAsIGNvbmZp
Z3VyYXRpb25OYW1lKQotICAgIHsKLSAgICAgICAgY29uc3QgZWxlbWVudCA9IENvbXBvbmVudEJh
c2UuY3JlYXRlRWxlbWVudDsKLSAgICAgICAgcmV0dXJuIHJlcG9zaXRvcnlHcm91cHMubWFwKChn
cm91cCkgPT4gewotICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBlbGVtZW50KCdpbnB1dCcsIHsK
LSAgICAgICAgICAgICAgICB0eXBlOiAncmFkaW8nLAotICAgICAgICAgICAgICAgIG5hbWU6ICdy
ZXBvc2l0b3J5R3JvdXAtZm9yLScgKyBjb25maWd1cmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpLAot
ICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGN1cnJlbnRHcm91cCA9PSBncm91cCwKLSAgICAgICAg
ICAgICAgICBvbmNoYW5nZTogKCkgPT4gdGhpcy5fc2VsZWN0UmVwb3NpdG9yeUdyb3VwKGNvbmZp
Z3VyYXRpb25OYW1lLCBncm91cCkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcmV0dXJu
IFtlbGVtZW50KCdsYWJlbCcsIFtpbnB1dCwgZ3JvdXAuZGVzY3JpcHRpb24oKV0pXTsKLSAgICAg
ICAgfSk7Ci0gICAgfQotCi0gICAgX3NlbGVjdFJlcG9zaXRvcnlHcm91cChjb25maWd1cmF0aW9u
TmFtZSwgZ3JvdXApCi0gICAgewotICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLl9yZXBvc2l0
b3J5R3JvdXBCeUNvbmZpZ3VyYXRpb247Ci0gICAgICAgIGNvbnN0IGNsb25lID0ge307Ci0gICAg
ICAgIGZvciAobGV0IGtleSBpbiBzb3VyY2UpCi0gICAgICAgICAgICBjbG9uZVtrZXldID0gc291
cmNlW2tleV07Ci0gICAgICAgIGNsb25lW2NvbmZpZ3VyYXRpb25OYW1lXSA9IGdyb3VwOwotICAg
ICAgICB0aGlzLl9yZXBvc2l0b3J5R3JvdXBCeUNvbmZpZ3VyYXRpb24gPSBjbG9uZTsKLSAgICAg
ICAgdGhpcy5fdXBkYXRlQ29tbWl0U2V0TWFwKCk7Ci0gICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVu
ZGVyKCk7Ci0gICAgfQotCi0gICAgX2J1aWxkUmV2aXNpb25JbnB1dChjb25maWd1cmF0aW9uTmFt
ZSwgcmVwb3NpdG9yeSwgcGxhdGZvcm0pCi0gICAgewotICAgICAgICBjb25zdCByZXZpc2lvbiA9
IHRoaXMuX3NwZWNpZmllZFJldmlzaW9uc1tjb25maWd1cmF0aW9uTmFtZV0uZ2V0KHJlcG9zaXRv
cnkpIHx8ICcnOwotICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVF
bGVtZW50OwotICAgICAgICBjb25zdCBpbnB1dCA9IGVsZW1lbnQoJ2lucHV0Jywge3ZhbHVlOiBy
ZXZpc2lvbiwgb25pbnB1dDogKCkgPT4gewotICAgICAgICAgICAgdW5tb2RpZmllZElucHV0ID0g
bnVsbDsKLSAgICAgICAgICAgIHRoaXMuX3NwZWNpZmllZFJldmlzaW9uc1tjb25maWd1cmF0aW9u
TmFtZV0uc2V0KHJlcG9zaXRvcnksIGlucHV0LnZhbHVlKTsKLSAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZUNvbW1pdFNldE1hcCgpOwotICAgICAgICB9fSk7Ci0gICAgICAgIGxldCB1bm1vZGlmaWVk
SW5wdXQgPSBpbnB1dDsKLQotICAgICAgICBpZiAoIXJldmlzaW9uKSB7Ci0gICAgICAgICAgICBD
b21taXRMb2cuZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9y
bSkudGhlbigoY29tbWl0KSA9PiB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbW1pdCAmJiB1bm1v
ZGlmaWVkSW5wdXQpIHsKLSAgICAgICAgICAgICAgICAgICAgdW5tb2RpZmllZElucHV0LnZhbHVl
ID0gY29tbWl0LnJldmlzaW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZldGNoZWRS
ZXZpc2lvbnNbY29uZmlndXJhdGlvbk5hbWVdLnNldChyZXBvc2l0b3J5LCBjb21taXQucmV2aXNp
b24oKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbW1pdFNldE1hcCgpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIGlucHV0OwotICAgIH0KLQotICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGAKLSAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJ0ZXN0LXBhbmUiIGNs
YXNzPSJwYW5lIj4KLSAgICAgICAgICAgICAgICA8aDI+MS4gU2VsZWN0IGEgVGVzdDwvaDI+Ci0g
ICAgICAgICAgICAgICAgPHVsIGlkPSJ0ZXN0LWxpc3QiIGNsYXNzPSJjb25maWctbGlzdCI+PC91
bD4KLSAgICAgICAgICAgIDwvc2VjdGlvbj4KLSAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJwbGF0
Zm9ybS1wYW5lIiBjbGFzcz0icGFuZSI+Ci0gICAgICAgICAgICAgICAgPGgyPjIuIFNlbGVjdCBh
IFBsYXRmb3JtPC9oMj4KLSAgICAgICAgICAgICAgICA8dWwgaWQ9InBsYXRmb3JtLWxpc3QiIGNs
YXNzPSJjb25maWctbGlzdCI+PC91bD4KLSAgICAgICAgICAgIDwvc2VjdGlvbj4KLSAgICAgICAg
ICAgIDxzZWN0aW9uIGlkPSJyZXBvc2l0b3J5LWNvbmZpZ3VyYXRpb24tZXJyb3ItcGFuZSIgY2xh
c3M9InBhbmUiPgotICAgICAgICAgICAgICAgIDxoMj5JbmNvbXBhdGlibGUgdGVzdHM8L2gyPgot
ICAgICAgICAgICAgICAgIDxwIGlkPSJlcnJvciI+PC9wPgotICAgICAgICAgICAgPC9zZWN0aW9u
PgotICAgICAgICAgICAgPHNlY3Rpb24gaWQ9ImJhc2VsaW5lLWNvbmZpZ3VyYXRpb24tcGFuZSIg
Y2xhc3M9InBhbmUiPgotICAgICAgICAgICAgICAgIDxoMj4zLiBDb25maWd1cmUgQmFzZWxpbmU8
L2gyPgotICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0iYmFzZWxpbmUtcmV2aXNpb24tdGFibGUi
IGNsYXNzPSJyZXZpc2lvbi10YWJsZSI+PC90YWJsZT4KLSAgICAgICAgICAgIDwvc2VjdGlvbj4K
LSAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJzcGVjaWZ5LWNvbXBhcmlzb24tcGFuZSIgY2xhc3M9
InBhbmUiPgotICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9InNwZWNpZnktY29tcGFyaXNvbi1i
dXR0b24iPkNvbmZpZ3VyZSB0byBDb21wYXJlPC9idXR0b24+Ci0gICAgICAgICAgICA8L3NlY3Rp
b24+Ci0gICAgICAgICAgICA8c2VjdGlvbiBpZD0iY29tcGFyaXNvbi1jb25maWd1cmF0aW9uLXBh
bmUiIGNsYXNzPSJwYW5lIj4KLSAgICAgICAgICAgICAgICA8aDI+NC4gQ29uZmlndXJlIENvbXBh
cmlzb248L2gyPgotICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0iY29tcGFyaXNvbi1yZXZpc2lv
bi10YWJsZSIgY2xhc3M9InJldmlzaW9uLXRhYmxlIj48L3RhYmxlPgotICAgICAgICAgICAgPC9z
ZWN0aW9uPmA7Ci0gICAgfQotCi0gICAgc3RhdGljIGNzc1RlbXBsYXRlKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBgCi0gICAgICAgICAgICA6aG9zdCB7Ci0gICAgICAgICAgICAgICAgZGlzcGxh
eTogZmxleCAhaW1wb3J0YW50OwotICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cg
IWltcG9ydGFudDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5wYW5lIHsKLSAgICAgICAg
ICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogMDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5wYW5lIGgyIHsKLSAgICAgICAgICAgICAgICBw
YWRkaW5nOiAwOwotICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgICAgICAgICBt
YXJnaW4tYm90dG9tOiAwLjVyZW07Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07
Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7Ci0gICAgICAgICAgICAgICAg
dGV4dC1hbGlnbjogY2VudGVyOwotICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb25maWctbGlzdCB7Ci0gICAgICAgICAg
ICAgICAgaGVpZ2h0OiAyMHJlbTsKLSAgICAgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOwot
ICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICAgICAgICAgIG1hcmdpbjog
MDsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOwotICAgICAgICAgICAgICAgIGxpc3Qtc3R5
bGU6IG5vbmU7Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwotICAgICAgICAg
ICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwotICAgICAgICAgICAgICAgIGJvcmRlcjogbm9u
ZTsKLSAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2RkZDsKLSAgICAgICAg
ICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2RkZDsKLSAgICAgICAgICAgICAgICB3
aGl0ZS1zcGFjZTogbm93cmFwOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAjcGxhdGZv
cm0tbGlzdDplbXB0eTpiZWZvcmUgewotICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICJObyBtYXRj
aGluZyBwbGF0Zm9ybSI7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAg
ICAgICAgICAgbWFyZ2luOiAxcmVtIDAuNXJlbTsKLSAgICAgICAgICAgICAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jb25maWctbGlzdCBsYWJl
bCB7Ci0gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAgICAgICAgICAgcGFk
ZGluZzogMC4xcmVtIDAuMnJlbTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNvbmZp
Zy1saXN0IGxhYmVsOmhvdmVyLAotICAgICAgICAgICAgLmNvbmZpZy1saXN0IGE6aG92ZXIgewot
ICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjA0LCAxNTMsIDUxLCAwLjEpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAuY29uZmlnLWxpc3QgbGFiZWwuc2VsZWN0ZWQsCi0g
ICAgICAgICAgICAuY29uZmlnLWxpc3QgYS5zZWxlY3RlZCB7Ci0gICAgICAgICAgICAgICAgYmFj
a2dyb3VuZDogI2VlZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNvbmZpZy1saXN0
IGEgewotICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICAgICAgICAgIHBh
ZGRpbmc6IDAuMXJlbSAwLjJyZW07Ci0gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBu
b25lOwotICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAjcmVwb3NpdG9yeS1jb25maWd1cmF0aW9uLXBhbmUgewotICAgICAgICAgICAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgI3Jl
cG9zaXRvcnktY29uZmlndXJhdGlvbi1wYW5lID4gYnV0dG9uICB7Ci0gICAgICAgICAgICAgICAg
bWFyZ2luLWxlZnQ6IDE5LjVyZW07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5yZXZp
c2lvbi10YWJsZSB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOwotICAgICAgICAgICAg
ICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Ci0gICAgICAgICAgICAgICAgZm9udC1zaXpl
OiAxcmVtOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGhl
YWQgewotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGJvZHk6ZW1wdHkgewotICAgICAgICAgICAg
ICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5yZXZpc2lv
bi10YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCwKLSAgICAgICAgICAgIC5yZXZpc2lvbi10
YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0aCB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyLXRv
cDogc29saWQgMXB4ICNkZGQ7Ci0gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRib2R5IHRyOmxh
c3QtY2hpbGQgdGQsCi0gICAgICAgICAgICAucmV2aXNpb24tdGFibGUgdGJvZHkgdHI6bGFzdC1j
aGlsZCB0aCB7Ci0gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRkLAotICAgICAgICAgICAg
LnJldmlzaW9uLXRhYmxlIHRoIHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07Ci0gICAg
ICAgICAgICAgICAgaGVpZ2h0OiAxLjhyZW07Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogMCAw
LjJyZW07Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lOwotICAgICAgICAgICAgICAgIGZv
bnQtd2VpZ2h0OiBpbmhlcml0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAucmV2aXNp
b24tdGFibGUgdGhlYWQgdGggewotICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRoIGNsb3NlLWJ1
dHRvbiB7Ci0gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRkOmZpcnN0LWNoaWxkLAotICAg
ICAgICAgICAgLnJldmlzaW9uLXRhYmxlIHRoOmZpcnN0LWNoaWxkIHsKLSAgICAgICAgICAgICAg
ICB3aWR0aDogNnJlbTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLnJldmlzaW9uLXRh
YmxlIHRyLmdyb3VwLXJvdyB0ZCB7Ci0gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cmVt
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsYWJlbCB7Ci0gICAgICAgICAgICAgICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSkgewotICAg
ICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAwLjZyZW0pOwotICAgICAgICAgICAgICAg
IHBhZGRpbmc6IDAuMXJlbSAwLjJyZW07Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjly
ZW07Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICNzcGVjaWZ5LWNvbXBhcmlzb24tcGFuZSBidXR0b24gewotICAgICAg
ICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6
IDEuMXJlbTsKLSAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgI3N0YXJ0LXBhbmUgYnV0dG9uIHsKLSAgICAgICAgICAgICAg
ICBtYXJnaW4tdG9wOiAxLjVyZW07Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07
Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7Ci0gICAgICAgICAgICB9Ci1g
OwotICAgIH0KLX0KLQotQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdjdXN0b20tYW5hbHlz
aXMtdGFzay1jb25maWd1cmF0b3InLCBDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IpOwpk
aWZmIC0tZ2l0IGEvcHVibGljL3YzL2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpz
IGIvcHVibGljL3YzL2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDY4OGRjZDgyODdhNGY0MGMwNDcyYTg0MTkxYWQxNTdh
NDNkNWZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL3B1
YmxpYy92My9jb21wb25lbnRzL2luc3RhbnQtZmlsZS11cGxvYWRlci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDIzMiArMCwwIEBACi1jbGFzcyBJbnN0YW50RmlsZVVwbG9hZGVyIGV4dGVuZHMgQ29t
cG9uZW50QmFzZSB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoJ2lu
c3RhbnQtZmlsZS11cGxvYWRlcicpOwotICAgICAgICB0aGlzLl91cGxvYWRlZEZpbGVzID0gW107
Ci0gICAgICAgIHRoaXMuX3ByZXVwbG9hZEZpbGVzID0gW107Ci0gICAgICAgIHRoaXMuX3VwbG9h
ZFByb2dyZXNzID0gbmV3IFdlYWtNYXA7Ci0gICAgICAgIHRoaXMuX2ZpbGVTaXplRm9ybWF0dGVy
ID0gTWV0cmljLm1ha2VGb3JtYXR0ZXIoJ0InLCAzKTsKLQotICAgICAgICB0aGlzLl9yZW5kZXJV
cGxvYWRlZEZpbGVzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX3Jl
bmRlclVwbG9hZGVkRmlsZXMuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3JlbmRlclByZXVw
bG9hZEZpbGVzTGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMuX3JlbmRl
clByZXVwbG9hZEZpbGVzLmJpbmQodGhpcykpOwotICAgIH0KLQotICAgIGhhc0ZpbGVUb1VwbG9h
ZCgpIHsgcmV0dXJuICEhdGhpcy5fcHJldXBsb2FkRmlsZXMubGVuZ3RoOyB9Ci0gICAgdXBsb2Fk
ZWRGaWxlcygpIHsgcmV0dXJuIHRoaXMuX3VwbG9hZGVkRmlsZXM7IH0KLQotICAgIGFkZFVwbG9h
ZGVkRmlsZSh1cGxvYWRlZEZpbGUpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh1cGxv
YWRlZEZpbGUgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBpZiAodGhpcy5fdXBs
b2FkZWRGaWxlcy5pbmNsdWRlcyh1cGxvYWRlZEZpbGUpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB0aGlzLl91cGxvYWRlZEZpbGVzLnB1c2godXBsb2FkZWRGaWxlKTsKLSAgICAgICAg
dGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKLSAgICB9Ci0KLSAgICBkaWRDb25zdHJ1Y3RTaGFkb3dU
cmVlKCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jb250ZW50KCdmaWxlLWlu
cHV0Jyk7Ci0gICAgICAgIGlucHV0Lm9uY2hhbmdlID0gKCkgPT4gdGhpcy5fZGlkRmlsZUlucHV0
Q2hhbmdlKGlucHV0KTsKLSAgICB9Ci0KLSAgICByZW5kZXIoKQotICAgIHsKLSAgICAgICAgdGhp
cy5fcmVuZGVyVXBsb2FkZWRGaWxlc0xhemlseS5ldmFsdWF0ZSguLi50aGlzLl91cGxvYWRlZEZp
bGVzKTsKLSAgICAgICAgY29uc3QgdXBsb2FkU3RhdHVzRWxlbWVudHMgPSB0aGlzLl9yZW5kZXJQ
cmV1cGxvYWRGaWxlc0xhemlseS5ldmFsdWF0ZSguLi50aGlzLl9wcmV1cGxvYWRGaWxlcyk7Ci0g
ICAgICAgIHRoaXMuX3VwZGF0ZVVwbG9hZFN0YXR1cyh1cGxvYWRTdGF0dXNFbGVtZW50cyk7Ci0g
ICAgfQotCi0gICAgX3JlbmRlclVwbG9hZGVkRmlsZXMoLi4udXBsb2FkZWRGaWxlcykKLSAgICB7
Ci0gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQ7Ci0g
ICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoJ3VwbG9hZGVkLWZpbGVzJyks
IHVwbG9hZGVkRmlsZXMubWFwKCh1cGxvYWRlZEZpbGUpID0+IHsKLSAgICAgICAgICAgIGNvbnN0
IGF1dGhvckluZm8gPSB1cGxvYWRlZEZpbGUuYXV0aG9yKCkgPyAnIGJ5ICcgKyB1cGxvYWRlZEZp
bGUuYXV0aG9yKCkgOiAnJzsKLSAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWRBdCA9IE1ldHJpYy5m
b3JtYXRUaW1lKHVwbG9hZGVkRmlsZS5jcmVhdGVkQXQoKSk7Ci0gICAgICAgICAgICBjb25zdCBk
ZWxldGVCdXR0b24gPSBuZXcgQ2xvc2VCdXR0b247Ci0gICAgICAgICAgICBkZWxldGVCdXR0b24u
bGlzdGVuVG9BY3Rpb24oJ2FjdGl2YXRlJywgKCkgPT4gdGhpcy5fcmVtb3ZlVXBsb2FkZWRGaWxl
KHVwbG9hZGVkRmlsZSkpOwotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ2xpJywgWwotICAg
ICAgICAgICAgICAgIGRlbGV0ZUJ1dHRvbiwKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdjb2Rl
Jywge2NsYXNzOiAnZmlsZW5hbWUnfSwgdXBsb2FkZWRGaWxlLmZpbGVuYW1lKCkpLAotICAgICAg
ICAgICAgICAgICcgJywKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdzbWFsbCcsIHtjbGFzczog
J2ZpbGVzaXplJ30sICcoJyArIHRoaXMuX2ZpbGVTaXplRm9ybWF0dGVyKHVwbG9hZGVkRmlsZS5z
aXplKCkpICsgJyknKSwKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdzbWFsbCcsIHtjbGFzczog
J21ldGEnfSwgYFVwbG9hZGVkJHthdXRob3JJbmZvfSBvbiAke2NyZWF0ZWRBdH1gKSwKLSAgICAg
ICAgICAgIF0pOwotICAgICAgICB9KSk7Ci0gICAgfQotCi0gICAgX3JlbmRlclByZXVwbG9hZEZp
bGVzKC4uLnByZXVwbG9hZEZpbGVzKQotICAgIHsKLSAgICAgICAgY29uc3QgZWxlbWVudCA9IENv
bXBvbmVudEJhc2UuY3JlYXRlRWxlbWVudDsKLSAgICAgICAgY29uc3QgdXBsb2FkU3RhdHVzRWxl
bWVudHMgPSBbXTsKLSAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgncHJl
dXBsb2FkLWZpbGVzJyksIHByZXVwbG9hZEZpbGVzLm1hcCgoZmlsZSkgPT4gewotICAgICAgICAg
ICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBlbGVtZW50KCdwcm9ncmVzcycpOwotICAgICAgICAgICAg
Y29uc3QgbWV0YSA9IGVsZW1lbnQoJ3NtYWxsJywge2NsYXNzOiAnbWV0YSd9LCBwcm9ncmVzc0Jh
cik7Ci0gICAgICAgICAgICB1cGxvYWRTdGF0dXNFbGVtZW50cy5wdXNoKHtmaWxlLCBtZXRhLCBw
cm9ncmVzc0Jhcn0pOwotCi0gICAgICAgICAgICByZXR1cm4gZWxlbWVudCgnbGknLCBbCi0gICAg
ICAgICAgICAgICAgZWxlbWVudCgnY29kZScsIGZpbGUubmFtZSksCi0gICAgICAgICAgICAgICAg
JyAnLAotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NtYWxsJywge2NsYXNzOiAnZmlsZXNpemUn
fSwgJygnICsgdGhpcy5fZmlsZVNpemVGb3JtYXR0ZXIoZmlsZS5zaXplKSArICcpJyksCi0gICAg
ICAgICAgICAgICAgbWV0YSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICB9KSk7Ci0gICAgICAg
IHJldHVybiB1cGxvYWRTdGF0dXNFbGVtZW50czsKLSAgICB9Ci0KLSAgICBfdXBkYXRlVXBsb2Fk
U3RhdHVzKHVwbG9hZFN0YXR1c0VsZW1lbnRzKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgZW50
cnkgb2YgdXBsb2FkU3RhdHVzRWxlbWVudHMpIHsKLSAgICAgICAgICAgIGNvbnN0IHByb2dyZXNz
ID0gdGhpcy5fdXBsb2FkUHJvZ3Jlc3MuZ2V0KGVudHJ5LmZpbGUpOwotICAgICAgICAgICAgY29u
c3QgcHJvZ3Jlc3NCYXIgPSBlbnRyeS5wcm9ncmVzc0JhcjsKLSAgICAgICAgICAgIGlmICghcHJv
Z3Jlc3MpIHsKLSAgICAgICAgICAgICAgICBwcm9ncmVzc0Jhci5yZW1vdmVBdHRyaWJ1dGUoJ21h
eCcpOwotICAgICAgICAgICAgICAgIHByb2dyZXNzQmFyLnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUn
KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAocHJvZ3Jlc3MuZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBlbnRyeS5tZXRhLmNsYXNzTGlz
dC5hZGQoJ2hhc0Vycm9yJyk7Ci0gICAgICAgICAgICAgICAgZW50cnkubWV0YS50ZXh0Q29udGVu
dCA9IHRoaXMuX2Zvcm1hdFVwbG9hZEVycm9yKHByb2dyZXNzLmVycm9yKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHJvZ3Jlc3NCYXIubWF4ID0gcHJvZ3Jlc3MudG90
YWw7Ci0gICAgICAgICAgICAgICAgcHJvZ3Jlc3NCYXIudmFsdWUgPSBwcm9ncmVzcy5sb2FkZWQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfZm9ybWF0VXBsb2FkRXJy
b3IoZXJyb3IpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGVycm9yKSB7Ci0gICAgICAgIGNhc2Ug
J05vdFN1cHBvcnRlZCc6Ci0gICAgICAgICAgICByZXR1cm4gJ0ZhaWxlZDogRmlsZSB1cGxvYWRp
bmcgaXMgZGlzYWJsZWQnOwotICAgICAgICBjYXNlICdGaWxlU2l6ZUxpbWl0RXhjZWVkZWQnOgot
ICAgICAgICAgICAgcmV0dXJuICdGYWlsZWQ6IFRoZSB1cGxvYWRlZCBmaWxlIHdhcyB0b28gYmln
JzsKLSAgICAgICAgY2FzZSAnRmlsZVNpemVRdW90YUV4Y2VlZGVkJzoKLSAgICAgICAgICAgIHJl
dHVybiAnRmFpbGVkOiBFeGNlZWRlZCBmaWxlIHVwbG9hZCBxdW90YSc7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuICdGYWlsZWQgdG8gdXBsb2FkIHRoZSBmaWxlJzsKLSAgICB9Ci0KLSAgICBf
ZGlkRmlsZUlucHV0Q2hhbmdlKGlucHV0KQotICAgIHsKLSAgICAgICAgaWYgKCFpbnB1dC5maWxl
cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNvbnN0IGxpbWl0ID0gVXBs
b2FkZWRGaWxlLmZpbGVVcGxvYWRTaXplTGltaXQ7Ci0gICAgICAgIGZvciAobGV0IGZpbGUgb2Yg
aW5wdXQuZmlsZXMpIHsKLSAgICAgICAgICAgIGlmIChmaWxlLnNpemUgPiBsaW1pdCkgewotICAg
ICAgICAgICAgICAgIGFsZXJ0KGBUaGUgc3BlY2lmaWVkIGZpbGUgIiR7ZmlsZS5uYW1lfSIgaXMg
dG9vIGJpZyAoJHt0aGlzLl9maWxlU2l6ZUZvcm1hdHRlcihmaWxlLnNpemUpfSkuIEl0IG11c3Qg
YmUgc21hbGxlciB0aGFuICR7dGhpcy5fZmlsZVNpemVGb3JtYXR0ZXIobGltaXQpfWApOwotICAg
ICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gbnVsbDsKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBVcGxvYWRlZEZpbGUuZmV0Y2hVbmxvYWRlZEZp
bGVXaXRoSWRlbnRpY2FsSGFzaChmaWxlKS50aGVuKCh1cGxvYWRlZEZpbGUpID0+IHsKLSAgICAg
ICAgICAgICAgICBpZiAodXBsb2FkZWRGaWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMu
X2RpZFVwbG9hZEZpbGUoZmlsZSwgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIFVwbG9hZGVkRmls
ZS51cGxvYWRGaWxlKGZpbGUsIChwcm9ncmVzcykgPT4gewotICAgICAgICAgICAgICAgICAgICB0
aGlzLl91cGxvYWRQcm9ncmVzcy5zZXQoZmlsZSwgcHJvZ3Jlc3MpOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigpOwotICAgICAgICAgICAgICAgIH0pLnRoZW4oKHVw
bG9hZGVkRmlsZSkgPT4gewotICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaWRVcGxvYWRGaWxl
KGZpbGUsIHVwbG9hZGVkRmlsZSk7Ci0gICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwbG9hZFByb2dyZXNzLnNldChmaWxlLCB7ZXJyb3I6
IGVycm9yID09PSAwID8gJ1Vua25vd25FcnJvcicgOiBlcnJvcn0pOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fcHJldXBsb2FkRmlsZXMgPSBBcnJh
eS5mcm9tKGlucHV0LmZpbGVzKTsKLSAgICAgICAgaW5wdXQudmFsdWUgPSBudWxsOwotCi0gICAg
ICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7Ci0gICAgfQotCi0gICAgX3JlbW92ZVVwbG9hZGVk
RmlsZSh1cGxvYWRlZEZpbGUpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogU2VuZCBhIHJlcXVl
c3QgdG8gZGVsZXRlIHRoZSBmaWxlLgotICAgICAgICBjb25zb2xlLmFzc2VydCh1cGxvYWRlZEZp
bGUgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwotICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMu
X3VwbG9hZGVkRmlsZXMuaW5kZXhPZih1cGxvYWRlZEZpbGUpOwotICAgICAgICBpZiAoaW5kZXgg
PCAwKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl91cGxvYWRlZEZpbGVzLnNw
bGljZShpbmRleCwgMSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JlbW92ZWRGaWxl
JywgdXBsb2FkZWRGaWxlKTsKLSAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKLSAgICB9
Ci0KLSAgICBfZGlkVXBsb2FkRmlsZShmaWxlLCB1cGxvYWRlZEZpbGUpCi0gICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChmaWxlIGluc3RhbmNlb2YgRmlsZSk7Ci0gICAgICAgIGNvbnN0IGlu
ZGV4ID0gdGhpcy5fcHJldXBsb2FkRmlsZXMuaW5kZXhPZihmaWxlKTsKLSAgICAgICAgaWYgKGlu
ZGV4ID49IDApCi0gICAgICAgICAgICB0aGlzLl9wcmV1cGxvYWRGaWxlcy5zcGxpY2UoaW5kZXgs
IDEpOwotICAgICAgICB0aGlzLl91cGxvYWRlZEZpbGVzLnB1c2godXBsb2FkZWRGaWxlKTsKLSAg
ICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndXBsb2FkZWRGaWxlJywgdXBsb2FkZWRGaWxlKTsK
LSAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaHRt
bFRlbXBsYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgPHVsIGlkPSJ1cGxvYWRlZC1maWxl
cyI+PC91bD4KLSAgICAgICAgICAgIDx1bCBpZD0icHJldXBsb2FkLWZpbGVzIj48L3VsPgotICAg
ICAgICAgICAgPGlucHV0IGlkPSJmaWxlLWlucHV0IiB0eXBlPSJmaWxlIiBtdWx0aXBsZT0iZmFs
c2UiPmA7Ci0gICAgfQotCi0gICAgc3RhdGljIGNzc1RlbXBsYXRlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBgCi0gICAgICAgICAgICB1bDplbXB0eSB7Ci0gICAgICAgICAgICAgICAgZGlzcGxh
eTogbm9uZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdWwsIGxpIHsKLSAgICAgICAg
ICAgICAgICBtYXJnaW46IDA7Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogMDsKLSAgICAgICAg
ICAgICAgICBsaXN0LXN0eWxlOiBub25lOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBs
aSB7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgICAgICAgICAgICAg
IG1hcmdpbi1ib3R0b206IDAuMjVyZW07Ci0gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAx
LjVyZW07Ci0gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07Ci0gICAgICAg
ICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlZWU7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGxpOmxhc3QtY2hpbGQgewotICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0
b206IG5vbmU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpID4gY2xvc2UtYnV0dG9u
IHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICAgICAg
bGVmdDogMDsKLSAgICAgICAgICAgICAgICB0b3A6IDUwJTsKLSAgICAgICAgICAgICAgICBtYXJn
aW4tdG9wOiAtMC41cmVtOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsaSA+IHByb2dy
ZXNzIHsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgY29kZSB7Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07Ci0g
ICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHNtYWxsIHsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKLSAg
ICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDsKLSAgICAgICAgICAgICAgICBjb2xv
cjogIzY2NjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc21hbGwubWV0YSB7Ci0gICAg
ICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IC5oYXNFcnJvciB7Ci0gICAgICAgICAgICAgICAgY29sb3I6ICNjNjA7Ci0gICAgICAgICAgICAg
ICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYDsKLSAgICB9
Ci19Ci0KLUNvbXBvbmVudEJhc2UuZGVmaW5lRWxlbWVudCgnaW5zdGFudC1maWxlLXVwbG9hZGVy
JywgSW5zdGFudEZpbGVVcGxvYWRlcik7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>