<?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>170528</bug_id>
          
          <creation_ts>2017-04-05 16:43:27 -0700</creation_ts>
          <short_desc>Each build request should be associated with a repository group</short_desc>
          <delta_ts>2017-04-06 14:57:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>Other</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>
          <dependson>170228</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1294714</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-04-05 16:43:27 -0700</bug_when>
    <thetext>Make the perf dashboard&apos;s backend work with repository groups introduced in https://trac.webkit.org/changeset/214975.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294814</commentid>
    <comment_count>1</comment_count>
      <attachid>306368</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-04-05 23:58:02 -0700</bug_when>
    <thetext>Created attachment 306368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294816</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-05 23:59:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/31472341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295038</commentid>
    <comment_count>3</comment_count>
      <attachid>306368</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-06 14:12:19 -0700</bug_when>
    <thetext>Comment on attachment 306368
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295064</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-04-06 14:57:01 -0700</bug_when>
    <thetext>Committed r215061: &lt;http://trac.webkit.org/changeset/215061&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306368</attachid>
            <date>2017-04-05 23:58:02 -0700</date>
            <delta_ts>2017-04-06 14:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170528-20170405235801.patch</filename>
            <type>text/plain</type>
            <size>134633</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0OTc4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA2ZDBlZGQzOTU5ZjYyMGFhMmNlNDRhMjg4MGY1Yjg3MDE1NmVlM2M3Li5hZmM3YjEwYzEx
YTBmY2Y1ODhlMTRjZWU0NjFlNWM0M2FkZGQ5ZDM1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNTkgQEAKKzIwMTctMDQtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgRWFjaCBidWlsZCByZXF1ZXN0IHNob3VsZCBiZSBhc3Nv
Y2lhdGVkIHdpdGggYSByZXBvc2l0b3J5IGdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA1MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdCB1
c2UgdGhlIGNvbmNlcHQgb2YgcmVwb3NpdG9yeSBncm91cHMgc28gdGhhdCBlYWNoIHJlcG9zaXRv
cnkgZ3JvdXAgY2FuIHBvc3QKKyAgICAgICAgYSBkaWZmZXJlbnQgc2V0IG9mIHByb3BlcnRpZXMg
dG8gYnVpbGRib3QuIEluIG9yZGVyIHRvIGRvIHRoaXMsIHdlIGFzc29jaWF0ZSBlYWNoIGJ1aWxk
IHJlcXVlc3Qgd2l0aAorICAgICAgICBhIHJlcG9zaXRvcnkgZ3JvdXAgdG8gdXNlLiBFYWNoIHRy
aWdnZXJhYmxlJ3MgcmVwb3NpdG9yeSBncm91cHMgaXMgbm93IHVwZGF0ZWQgYnkgdGhlIHN5bmNp
bmcgc2NyaXB0cyB2aWEKKyAgICAgICAgL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUganVzdCB0aGUg
c2FtZSB3YXkgdGhlIHNldCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtLCB0ZXN0IHBhaXJzIGFy
ZSB1cGRhdGVkLgorCisgICAgICAgIEVhY2ggcmVwb3NpdG9yeSBncm91cCBzcGVjaWZpZXMgdGhl
IGxpc3Qgb2YgcmVwb3NpdG9yaWVzLCBhIGRpY3Rpb25hcnkgdGhhdCBtYXBzIHRoZSBidWlsZGJv
dCBwcm9wZXJ0eSBuYW1lCisgICAgICAgIHRvIGVpdGhlciBhIHN0cmluZyB2YWx1ZSBvciBhIHJl
cG9zaXRvcnkgbmFtZSBlbmNsb3NlZCBpbiA8IGFuZCA+OgorCisgICAgICAgIGBgYGpzCisgICAg
ICAgICJyZXBvc2l0b3J5R3JvdXBzIjogeworICAgICAgICAgICAgIndlYmtpdC1zdm4iOiB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcmllcyI6IFsiV2ViS2l0IiwgIm1hY09TIl0sCisgICAg
ICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7Im9zIjogIjxtYWNPUz4iLCAid2siOiAiPFdlYktp
dD4ifQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGBgYAorCisgICAgICAgIFdp
dGggdGhpcywgcmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIHJlcG9zaXRvcnkg
dG8gdXNlIGluIGdlbmVyaWMgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIHZpYQorICAgICAgICBh
IGRpY3Rpb25hcnkgd2l0aCBhIHNpbmdsZSBrZXkgb2YgInJvb3QiLCAicm9vdE9wdGlvbnMiLCBh
bmQgInJvb3RzRXhjbHVkaW5nIi4gV2Ugbm93IHZhbGlkYXRlIHRoYXQgdGhlIGxpc3Qgb2YKKyAg
ICAgICAgcmVwb3NpdG9yaWVzIGluIGVhY2ggcmVwb3NpdG9yeSBncm91cCBtYXRjaGVzIGV4YWN0
bHkgdGhlIG9uZXMgdXNlZCBpbiBidWlsZGJvdCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgb25lcyBp
bgorICAgICAgICBidWlsZCByZXF1ZXN0cy4KKworICAgICAgICBBZnRlciB0aGlzIHBhdGNoLCBz
eW5jLXdpdGgtYnVpbGRib3QuanMgd2lsbCBubyBsb25nZXIgc2NoZWR1bGUgYSBidWlsZCByZXF1
ZXN0IHdpdGhvdXQgYSByZXBvc2l0b3J5IGdyb3VwLgorICAgICAgICBSdW4gdGhlIGFwcHJvcHJp
YXRlIGRhdGFiYXNlIHF1ZXJpZXMgdG8gc2V0IHRoZSByZXBvc2l0b3J5IGdyb3VwIG9uIGVhY2gg
YnVpbGQgcmVxdWVzdC4gQmVjYXVzZSBvZiB0aGlzIGNoYW5nZSwKKyAgICAgICAgdGhpcyBwYXRj
aCBhbHNvIG1ha2VzIEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnN5bmNPbmNlIG1vcmUg
cm9idXN0IGFnYWluc3QgaW52YWxpZCBidWlsZCByZXF1ZXN0cy4KKyAgICAgICAgSW5zdGVhZCBv
ZiB0aHJvd2luZyBhbiBleGNlcHRpb24gYW5kIGV4aXRpbmcgZWFybHksIGl0IHNpbXBseSBza2lw
cyBhbGwgYnVpbGQgcmVxdWVzdHMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUKKyAgICAgICAgdGVz
dCBncm91cCBpZiB0aGUgbmV4dCBidWlsZCByZXF1ZXN0IHRvIGJlIHNjaGVkdWxlZCBkb2VzIG5v
dCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSBncm91cC4KKworICAgICAgICAqIGluaXQtZGF0YWJhc2Uu
c3FsOiBBZGQgcmVxdWVzdF9yZXBvc2l0b3J5X2dyb3VwIGNvbHVtbiB0byBidWlsZF9yZXF1ZXN0
cyB0YWJsZSwgYW5kIGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCisgICAgICAgIHJlcG9zaXRvcnkg
YW5kIGdyb3VwIHBhaXIgaW4gdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzIHRhYmxlLgorCisgICAg
ICAgICogcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwOgorICAgICAgICAobWFpbik6
IFZhbGlkYXRlIGFuZCBpbnNlcnQgcmVwb3NpdG9yeSBncm91cHMuCisgICAgICAgICh2YWxpZGF0
ZV9jb25maWd1cmF0aW9ucyk6IEV4dHJhY3RlZCBmcm9tIG1haW4uCisgICAgICAgICh2YWxpZGF0
ZV9yZXBvc2l0b3J5X2dyb3Vwcyk6IEFkZGVkLgorCisgICAgICAgICogcHVibGljL3YzL21vZGVs
cy9yZXBvc2l0b3J5LmpzOgorICAgICAgICAoUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUp
OiBBZGRlZC4KKworICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNo
ZXIucGhwOgorICAgICAgICAoQnVpbGRSZXF1ZXN0c0ZldGNoZXI6OnJlc3VsdHNfaW50ZXJuYWwp
OiBJbmNsdWRlIHRoZSByZXBvc2l0b3J5IGdyb3VwIG9mIGVhY2ggcmVxdWVzdCBpbiB0aGUgSlNP
TiByZXNwb25zZS4KKworICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL3JlcG9zaXRvcnktZ3JvdXAt
ZmluZGVyLnBocDogQWRkZWQuIEEgaGVscGVyIGNsYXNzIHRvIGZpbmQgdGhlIHJlcG9zaXRvcnkg
Z3JvdXAgZm9yIGEgZ2l2ZW4KKyAgICAgICAgdHJpZ2dlcmFibGUgZm9yIGEgbGlzdCBvZiByZXBv
c2l0b3JpZXMuCisgICAgICAgIChSZXBvc2l0b3J5R3JvdXBGaW5kZXIpOiBBZGRlZC4gCisgICAg
ICAgIChSZXBvc2l0b3J5R3JvdXBGaW5kZXI6Ol9fY29uc3RydWN0KTogQWRkZWQuCisgICAgICAg
IChSZXBvc2l0b3J5R3JvdXBGaW5kZXI6OmZpbmRfYnlfcmVwb3NpdG9yaWVzKTogQWRkZWQuCisg
ICAgICAgIChSZXBvc2l0b3J5R3JvdXBGaW5kZXI6OnBvcHVsYXRlX21hcCk6IEFkZGVkLgorCisg
ICAgICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocDoKKyAg
ICAgICAgKG1haW4pOiBFYWNoIGVsZW1lbnQgaW4gYW4gYXJyYXkgcmV0dXJuZWQgYnkgZW5zdXJl
X2NvbW1pdF9zZXRzIGFuZCBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMgbm93IGNvbnRh
aW5zCisgICAgICAgICJzZXQiLCB0aGUgbGlzdCBvZiBjb21taXQgSURzLCBhbmQgInJlcG9zaXRv
cnlfZ3JvdXAiLCB0aGUgcmVwb3NpdG9yeSBncm91cCBpZGVudGlmaWVkIGZvciBlYWNoIGNvbW1p
dCBzZXQuCisgICAgICAgIFVzZSB0aGF0IHRvIHNldCB0aGUgcmVwb3NpdG9yeSBncm91cCBpbiBl
YWNoIG5ldyBidWlsZCByZXF1ZXN0LiAKKyAgICAgICAgKGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNp
b25fc2V0cyk6IFVzZSBSZXBvc2l0b3J5R3JvdXBGaW5kZXIgdG8gZmluZCB0aGUgcmlnaHQgcmVw
b3NpdG9yeSBncm91cC4KKyAgICAgICAgKGVuc3VyZV9jb21taXRfc2V0cyk6IERpdHRvLiBUaGVy
ZSBpcyBubyBuZWVkIHRvIGZpbmQgYSByZXBvc2l0b3J5IGdyb3VwIGZvciBlYWNoIGNvbW1pdCBz
ZXQgaGVyZSBzaW5jZSBpdHMKKyAgICAgICAgYXJndW1lbnQgaXMga2V5ZWQgYnkgdGhlIHJlcG9z
aXRvcnkgbmFtZS4gZS5nLiB7IldlYktpdCI6IFsxMjMsIDQ1Nl0sICJtYWNPUyI6IFsiMTZBMzIz
IiwgIjE2QTMyMyJdfQorCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0
LmpzOgorICAgICAgICAoQnVpbGRSZXF1ZXN0KToKKyAgICAgICAgKEJ1aWxkUmVxdWVzdC5wcm90
b3R5cGUudHJpZ2dlcmFibGUpOiBBZGRlZC4KKyAgICAgICAgKEJ1aWxkUmVxdWVzdC5wcm90b3R5
cGUucmVwb3NpdG9yeUdyb3VwKTogQWRkZWQuCisgICAgICAgIChCdWlsZFJlcXVlc3QuY29uc3Ry
dWN0QnVpbGRSZXF1ZXN0c0Zyb21EYXRhKTogUmVzb2x2ZSB0aGUgdHJpZ2dlcmFibGUgYW5kIHRo
ZSByZXBvc2l0b3J5IGdyb3VwLgorCisgICAgICAgICogcHVibGljL3YzL21vZGVscy90cmlnZ2Vy
YWJsZS5qczoKKyAgICAgICAgKFRyaWdnZXJhYmxlLnByb3RvdHlwZS5uYW1lKTogQWRkZWQuCisg
ICAgICAgIChUcmlnZ2VyYWJsZS5wcm90b3R5cGUuYWNjZXB0ZWRSZXBvc2l0b3JpZXMpOiBEZWxl
dGVkLgorICAgICAgICAoVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXApOgorICAgICAgICAoVHJp
Z2dlcmFibGVSZXBvc2l0b3J5R3JvdXAucHJvdG90eXBlLmFjY2VwdHMpOiBBZGRlZC4gUmV0cnVu
cyB0cnVlIGlmIHRoZSByZXBvc2l0b3J5IGdyb3VwCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOiBBZGRlZCBhIHRlc3QgZm9yIGdldHRpbmcgdGhl
IHJlcG9zaXRvcnkgZ3JvdXAgb2YgYSBidWlsZCByZXF1ZXN0LgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanM6IEFkZGVkIGFzc2VydGlvbnMgZm9yIHRoZSByZXBv
c2l0b3J5IGdyb3Vwcy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5q
czoKKyAgICAgICAgKC5lbXB0eVJlcG9ydCk6CisgICAgICAgICgucmVwb3J0V2l0aFR3b0xldmVs
c09mQWdncmVnYXRpb25zKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmln
Z2VyYWJsZS5qczogQWRkZWQgdGVzdCBjYXNlcyBmb3IgdXBkYXRpbmcgdGhlIHJlcG9zaXRvcnkg
Z3JvdXBzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICBhIHRyaWdnZXJhYmxlLgorICAgICAgICAo
LnVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXApOgorICAgICAgICAoLm1hcFJlcG9zaXRvcmll
c0J5R3JvdXApOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUt
dGVzdC1ncm91cC10ZXN0cy5qczoKKyAgICAgICAgKGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
ayk6IEFkZCB0d28gcmVwb3NpdG9yeSBncm91cHMgZm9yIHRlc3RpbmcuIEFkZGVkIGFzc2VydGlv
bnMgZm9yIHJlcG9zaXRvcnkgZ3JvdXBzCisgICAgICAgIGluIGV4aXN0aW5nIHRlc3QgY2FzZXMs
IGFuZCBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgY3JlYXRpbmcgYSB0ZXN0IGdyb3VwIHdpdGggdHdv
IGRpZmZlcmVudCByZXBvc2l0b3J5IGdyb3Vwcy4KKworICAgICAgICAqIHNlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAgICAoTW9ja0RhdGEucmVzZXRWM01vZGVscyk6
IFJlc2V0IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwJ3Mgc3RhdGljIG1hcHMuCisgICAgICAg
IChNb2NrRGF0YS5lbXB0eVRyaWdnZXJhZ2JsZUlkKTogQWRkZWQuCisgICAgICAgIChNb2NrRGF0
YS5tYWNvc1JlcG9zaXRvcnlJZCk6IEFkZGVkLgorICAgICAgICAoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKTogQWRkZWQuCisgICAgICAgIChNb2NrRGF0YS5naXRXZWJraXRSZXBvc2l0b3J5
SWQpOiBBZGRlZC4KKyAgICAgICAgKE1vY2tEYXRhLmFkZE1vY2tEYXRhKTogQ3JlYXRlIHJlcG9z
aXRvcnkgZ3JvdXBzIGFzIG5lZWRlZC4gUmVuYW1lZCB0aGUgIk9TIFgiIHJlcG9zaXRvcnkgdG8g
Im1hY09TIiBzaW5jZSBzb21lCisgICAgICAgIHRlc3RzIHdlcmUgdXNpbmcgdGhlIGxhdHRlciwg
YW5kIG5vdyB3ZSBuZWVkIG1vY2sgZGF0YSB0byBiZSBjb25zaXN0ZW50IGFjcm9zcyB0ZXN0cyBk
dWUgdG8gc3RyaWN0ZXIgY2hlY2tzLgorICAgICAgICAoTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2Vy
YWJsZSk6IEFkZGVkLiBVc2VkIGluIGFwaS11cGRhdGUtdHJpZ2dlcmFibGUuanMuCisgICAgICAg
IChNb2NrRGF0YS5hZGRNb2NrVGVzdEdyb3VwV2l0aEdpdFdlYktpdCk6IEFkZGVkLiBVc2VkIGlu
IGFwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcy4KKyAgICAgICAgKE1vY2tEYXRhLmFkZEFub3Ro
ZXJNb2NrVGVzdEdyb3VwKTogQ2xlYW51cC4KKyAgICAgICAgKE1vY2tEYXRhLm1vY2tUZXN0U3lu
Y0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKTogVXBkYXRlZCB0aGUgbW9jayBjb25maWd1cmF0aW9u
IHBlciBjb2RlIGNoYW5nZXMuCisgICAgICAgIChNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoVHdvQnVpbGRlcnMpOiBEaXR0by4KKworICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1i
dWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczogVXBkYXRlZCBhIHRlc3QgY2FzZSB0ZXN0aW5n
IC9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlIHRvIHRlc3QKKyAgICAgICAgdXBkYXRpbmcgdGhlIHNl
dCBvZiByZXBvc2l0b3J5IGdyb3VwcyBpbiBhZGRpdGlvbiB0byB0aGUgc2V0IG9mIHRlc3QsIHBs
YXRmb3JtIHBhaXJzLgorICAgICAgICAoLnJlZmV0Y2hNYW5pZmVzdCk6IEFkZGVkLgorCisgICAg
ICAgICogdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzOgorICAgICAgICAoQnVpbGRib3RTeW5j
ZXIpOiBOb3cgdGFrZXMgYSBzZXQgb2YgY29uZmlndXJhdGlvbnMgc2hhcmVkIGFjcm9zcyBzeW5j
ZXJzOiByZXBvc2l0b3J5R3JvdXBzLCBzbGF2ZUFyZ3VtZW50LAorICAgICAgICBhbmQgYnVpbGRS
ZXF1ZXN0QXJndW1lbnQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50LgorICAgICAgICAoQnVpbGRib3RT
eW5jZXIucHJvdG90eXBlLnJlcG9zaXRvcnlHcm91cHMpOiBBZGRlZC4KKyAgICAgICAgKEJ1aWxk
Ym90U3luY2VyLnByb3RvdHlwZS5fdGVzdEdyb3VwTWFwRm9yQnVpbGRSZXF1ZXN0cyk6IENsZWFu
ZWQgdXAgdGhlIGNvZGUgdG8gdXNlIEFycmF5LnByb3RvdHlwZS5maW5kLgorICAgICAgICBBbHNv
IGFkZGVkIGFuIGFzc2VydGlvbiB0aGF0IHRoZSBidWlsZCByZXF1ZXN0IGlzIGFzc29jaWF0ZWQg
d2l0aCBhIHJlcG9zaXRvcnkgZ3JvdXAuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5
cGUuX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QpOiBSZW1vdmVkIHRoZSBzdXBwb3J0IGZvciB1
c2luZyBhbiBhcmJpdGFyeSBwcm9wZXJ0eSB0bworICAgICAgICBzcGVjaWZ5IGEgcmV2aXNpb24g
aW4gZmF2b3Igb2YgZXhwbGljaXR5IGxpc3RpbmcgZWFjaCBwcm9wZXJ0eSBhbmQgcmVwb3NpdG9y
eSBuYW1lIGluIGEgcmVwb3NpdG9yeSBncm91cC4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKTogUmVtb3ZlZCB0aGUgc3VwcG9ydCBmb3IgInNoYXJlZCIsIHdoaWNoIHNwZWNp
ZmllZCB0aGUgc2V0IG9mIGJ1aWxkYm90IHByb3BlcnRpZXMKKyAgICAgICAgc2hhcmVkIGFjcm9z
cyBzeW5jZXJzLCB0aGUgbmFtZSBvZiBwcm9wZXJ0aWVzIHdoaWNoIHNwZWNpZmllcyB0aGUgYnVp
bGQgc2xhdmUgbmFtZSBhbmQgYnVpbGQgcmVxdWVzdCBJRC4gVGhlc2UKKyAgICAgICAgdmFsdWVz
IGFyZSBub3Qgc3RvcmVkIGFzIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIGFuZCBzdXBlcnNlZGVkIGJ5
IHRoZSBjb25jZXB0IG9mIHJlcG9zaXRvcnkgZ3JvdXBzLgorICAgICAgICAoQnVpbGRib3RTeW5j
ZXIuX3BhcnNlUmVwb3NpdG9yeUdyb3VwKTogUGFyc2VzIGFuZCB2YWxpZGF0ZXMgcmVwb3NpdG9y
eSBncm91cHMuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fY3JlYXRlVGVzdENvbmZpZ3VyYXRp
b24pOiBXZSBubyBsb25nZXIgZXhwZWN0IGVhY2ggY29uZmlndXJhdGlvbiB0byBzcGVjaWZ5IGEg
ZGljdGlvbmFyeSBvZgorICAgICAgICBwcm9wZXJ0aWVzIG9yIGJ1aWxkUmVxdWVzdEFyZ3VtZW50
IChvZnRlbiBpbmhlcml0ZWQgZnJvbSBzaGFyZWQpLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIu
X3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcpOiBSZW1vdmVkICJzbGF2ZUFyZ3VtZW50IiBhbmQgImJ1
aWxkUmVxdWVzdEFyZ3VtZW50IiBmcm9tIHRoZSBsaXN0IG9mCisgICAgICAgIGFsbG93ZWQgcHJv
ZXBydGllcyBpbiBlYWNoIGNvbmZpZ3VyYXRpb24gbm93IHRoYXQgdGhleSdyZSBzcGVjaWZpZWQg
YXMgdG9wLWxldmVsIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10
cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnVw
ZGF0ZVRyaWdnZXJhYmxlKTogVXBkYXRlIHRoZSBhc3NvY2lhdGVkIHJlcG9zaXRvcnkgZ3JvdXBz
LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuc3luY09uY2UpOiBTa2lw
IHRlc3QgZ3JvdXBzIGZvciB3aGljaCB0aGUgbmV4dCBidWlsZCByZXF1ZXN0IHRvIGJlIHNjaGVk
dWxlZCBpcworICAgICAgICBub3QgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgdmFsaWQgYnVpbGQg
cmVxdWVzdHMuCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fdmFsaWRh
dGVSZXF1ZXN0cyk6IE5vdyByZXR1cm5zIHRoZSBsaXN0IG9mIHZhbGlkIGJ1aWxkIHJlcXVlc3Rz
LCB3aGljaCBleGNsdWRlcworICAgICAgICB0aG9zZSB0aGF0IGxhY2sgYSByZXBvc2l0b3J5IGdy
b3VwIHNldC4KKyAgICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLl9uZXh0UmVx
dWVzdEluR3JvdXApOiBFeHRyYWN0ZWQgZnJvbSBfc2NoZWR1bGVSZXF1ZXN0SWZTbGF2ZUlzQXZh
aWxhYmxlLiBGaW5kcworICAgICAgICB0aGUgbmV4dCBidWlsZCByZXF1ZXN0IHRvIGJlIHNjaGVk
dWxlZCBmb3IgdGhlIHRlc3QgZ3JvdXAuCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnBy
b3RvdHlwZS5fc2NoZWR1bGVSZXF1ZXN0SWZTbGF2ZUlzQXZhaWxhYmxlKTogUmVuYW1lZCBmcm9t
CisgICAgICAgIF9zY2hlZHVsZU5leHRSZXF1ZXN0SW5Hcm91cElmU2xhdmVJc0F2YWlsYWJsZS4g
Tm93IHRha2VzIHRoZSBzeW5jZXIgYW5kIHRoZSBzbGF2ZSBuYW1lIGFzIGFyZ3VtZW50cyBpbnN0
ZWFkIG9mCisgICAgICAgIGEgdGVzdCBncm91cCBpbmZvcm1hdGlvbiBzaW5jZSBzeW5jT25jZSBu
b3cgY2FsbHMgX25leHRSZXF1ZXN0SW5Hcm91cCB0byBmaW5kIHRoZSBuZXh0IGJ1aWxkIHJlcXVl
c3QuCisKKyAgICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisKKyAgICAgICAgKiB1bml0
LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanM6IEZpeGVkIHRoZSB0ZXN0IG5hbWUuCisKKyAg
ICAgICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogUmVtb3ZlZCB0ZXN0
cyBmb3IgInJvb3RPcHRpb25zIiBhbmQgInJvb3RzRXhjbHVkaW5nIiwgYW5kIGFkZGVkIHRlc3Rz
CisgICAgICAgIGZvciBwYXJzaW5nIHJlcG9zaXRvcnkgZ3JvdXBzLgorICAgICAgICAoc2FtcGxl
aU9TQ29uZmlnKTogVXBkYXRlZCB0aGUgbW9jayBjb25maWd1cmF0aW9uIHBlciBjb2RlIGNoYW5n
ZXMuCisgICAgICAgIChzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucyk6IERpdHRvLgorICAg
ICAgICAoc21hbGxDb25maWd1cmF0aW9uKTogRGl0dG8uIE5vdyByZXR1cm5zIHRoZSBlbnRpcmUg
Y29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIGEgc2luZ2xlIGJ1aWxkZXIgY29uZmlndXJhdGlvbi4K
KyAgICAgICAgVmFyaW91cyB0ZXN0IGNhc2VzIGhhdmUgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3Qg
dGhpcy4KKyAgICAgICAgKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdCk6IFJlbW92ZWQgdGhlIGdp
dCBoYXNoIG9mIFdlYktpdCB0byBtYXRjaCB0aGUgcmVwb3NpdG9yeSBncm91cHMgbGlzdGVkIGlu
IHRoZSBtb2NrCisgICAgICAgIGNvbmZpZ3VyYXRpb25zLiBUaGUgZ2l0IGhhc2ggd2FzIHRoZXJl
IHRvIHRlc3QgInJvb3RPcHRpb25zIiwgd2hpY2ggdGhpcyBwYXRjaCByZW1vdmVkLgorICAgICAg
ICAoc2FtcGxlUGVuZGluZ0J1aWxkKTogUmVtb3ZlZCAicm9vdF9kaWN0IiBmcm9tIHRoZSBsaXN0
IG9mIHByb3BlcnRpZXMuIFRoaXMgd2FzIHVzZWQgdG8gdGVzdCAicm9vdHNFeGNsdWRpbmciCisg
ICAgICAgIHdoaWNoLCBhZ2FpbiwgdGhpcyBwYXRjaCByZW1vdmVkLgorICAgICAgICAoc2FtcGxl
SW5Qcm9ncmVzc0J1aWxkKTogRGl0dG8uCisgICAgICAgIChzYW1wbGVGaW5pc2hlZEJ1aWxkKTog
RGl0dG8uCisKKyAgICAgICAgKiB1bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5q
czoKKyAgICAgICAgKE1vY2tNb2RlbHMuaW5qZWN0KTogQWRkZWQgb2NrIHJlcG9zaXRvcnkgZ3Jv
dXBzIHNvIHRoYXQgZXhpc3RpbmcgdGVzdHMgd2lsbCBjb250aW51ZSB0byBmdW5jdGlvbi4KKwog
MjAxNy0wNC0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJ
bnRyb2R1Y2UgdGhlIG5vdGlvbiBvZiByZXBvc2l0b3J5IGdyb3VwcyB0byB0cmlnZ2VyYWJsZXMK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAppbmRleCAwNTg1MWUx
NDFhYjE1NzhmYjc2Mjk5YmIzZmFiOTMyMzc4MjEyMDdmLi5hNDQ4Y2JmOGEzNThiOTQwYjcwOTM1
ZmYzMzNhYWM3MjcxYjdkNjI2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0
YWJhc2Uuc3FsCkBAIC0yNDMsNyArMjQzLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX3Jl
cG9zaXRvcnlfZ3JvdXBzICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX3JlcG9zaXRvcmll
cyAoCiAgICAgdHJpZ3JlcG9fcmVwb3NpdG9yeSBpbnRlZ2VyIFJFRkVSRU5DRVMgcmVwb3NpdG9y
aWVzIE5PVCBOVUxMLAotICAgIHRyaWdyZXBvX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyB0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcyBOT1QgTlVMTCk7CisgICAgdHJpZ3JlcG9fZ3JvdXAg
aW50ZWdlciBSRUZFUkVOQ0VTIHRyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzIE5PVCBOVUxM
LAorICAgIENPTlNUUkFJTlQgcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZV9mb3JfcmVwb3NpdG9y
eV9ncm91cCBVTklRVUUodHJpZ3JlcG9fcmVwb3NpdG9yeSwgdHJpZ3JlcG9fZ3JvdXApKTsKIAog
Q1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zICgKICAgICB0cmlnY29uZmln
X3Rlc3QgaW50ZWdlciBSRUZFUkVOQ0VTIHRlc3RzIE5PVCBOVUxMLApAQCAtMjg1LDYgKzI4Niw3
IEBAIENSRUFURSBUWVBFIGJ1aWxkX3JlcXVlc3Rfc3RhdHVzX3R5cGUgYXMgRU5VTSAoJ3BlbmRp
bmcnLCAnc2NoZWR1bGVkJywgJ3J1bm5pbmcnCiBDUkVBVEUgVEFCTEUgYnVpbGRfcmVxdWVzdHMg
KAogICAgIHJlcXVlc3RfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIHJlcXVlc3RfdHJpZ2dl
cmFibGUgaW50ZWdlciBSRUZFUkVOQ0VTIGJ1aWxkX3RyaWdnZXJhYmxlcyBOT1QgTlVMTCwKKyAg
ICByZXF1ZXN0X3JlcG9zaXRvcnlfZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VTIHRyaWdnZXJhYmxl
X3JlcG9zaXRvcnlfZ3JvdXBzLAogICAgIHJlcXVlc3RfcGxhdGZvcm0gaW50ZWdlciBSRUZFUkVO
Q0VTIHBsYXRmb3JtcyBOT1QgTlVMTCwKICAgICByZXF1ZXN0X3Rlc3QgaW50ZWdlciBSRUZFUkVO
Q0VTIHRlc3RzIE5PVCBOVUxMLAogICAgIHJlcXVlc3RfZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VT
IGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIE5PVCBOVUxMLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocCBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKaW5kZXgg
YzBhMWY3YTZjNzhiZDBhMjQzYjU5Nzc2MmIwODM2YjU0NjA5Y2E3NS4uZTgyMzk2NmRlNGJhMDRm
MTM1MjgzZWE0YmQ3YjlhOGM1NThiOTljMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocAorKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwCkBAIC0xLDgg
KzEsMTAgQEAKIDw/cGhwCiAKLXJlcXVpcmUoJy4uL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwJyk7
CityZXF1aXJlX29uY2UoJy4uL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwJyk7CityZXF1aXJlX29u
Y2UoJy4uL2luY2x1ZGUvcmVwb3NpdG9yeS1ncm91cC1maW5kZXIucGhwJyk7CiAKLWZ1bmN0aW9u
IG1haW4oJHBvc3RfZGF0YSkgeworZnVuY3Rpb24gbWFpbigkcG9zdF9kYXRhKQorewogICAgICRk
YiA9IG5ldyBEYXRhYmFzZTsKICAgICBpZiAoISRkYi0+Y29ubmVjdCgpKQogICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ0RhdGFiYXNlQ29ubmVjdGlvbkZhaWx1cmUnKTsKQEAgLTE3LDEzICsxOSwx
NCBAQCBmdW5jdGlvbiBtYWluKCRwb3N0X2RhdGEpIHsKICAgICAkdHJpZ2dlcmFibGVfaWQgPSAk
dHJpZ2dlcmFibGVbJ3RyaWdnZXJhYmxlX2lkJ107CiAKICAgICAkY29uZmlndXJhdGlvbnMgPSBh
cnJheV9nZXQoJHJlcG9ydCwgJ2NvbmZpZ3VyYXRpb25zJyk7Ci0gICAgaWYgKCFpc19hcnJheSgk
Y29uZmlndXJhdGlvbnMpKQotICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRDb25maWd1
cmF0aW9ucycsIGFycmF5KCdjb25maWd1cmF0aW9ucycgPT4gJGNvbmZpZ3VyYXRpb25zKSk7Cisg
ICAgdmFsaWRhdGVfY29uZmlndXJhdGlvbnMoJGRiLCAkY29uZmlndXJhdGlvbnMpOwogCi0gICAg
Zm9yZWFjaCAoJGNvbmZpZ3VyYXRpb25zIGFzICRlbnRyeSkgewotICAgICAgICBpZiAoIWlzX2Fy
cmF5KCRlbnRyeSkgfHwgIWFycmF5X2tleV9leGlzdHMoJ3Rlc3QnLCAkZW50cnkpIHx8ICFhcnJh
eV9rZXlfZXhpc3RzKCdwbGF0Zm9ybScsICRlbnRyeSkpCi0gICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ0ludmFsaWRDb25maWd1cmF0aW9uRW50cnknLCBhcnJheSgnY29uZmlndXJhdGlvbkVu
dHJ5JyA9PiAkZW50cnkpKTsKLSAgICB9CisgICAgJHJlcG9zaXRvcnlfZ3JvdXBzID0gYXJyYXlf
Z2V0KCRyZXBvcnQsICdyZXBvc2l0b3J5R3JvdXBzJywgYXJyYXkoKSk7CisgICAgdmFsaWRhdGVf
cmVwb3NpdG9yeV9ncm91cHMoJGRiLCAkcmVwb3NpdG9yeV9ncm91cHMpOworCisgICAgJGZpbmRl
ciA9IG5ldyBSZXBvc2l0b3J5R3JvdXBGaW5kZXIoJGRiLCAkdHJpZ2dlcmFibGVfaWQpOworICAg
IGZvcmVhY2ggKCRyZXBvc2l0b3J5X2dyb3VwcyBhcyAmJGdyb3VwKQorICAgICAgICAkZ3JvdXBb
J2V4aXN0aW5nR3JvdXAnXSA9ICRmaW5kZXItPmZpbmRfYnlfcmVwb3NpdG9yaWVzKCRncm91cFsn
cmVwb3NpdG9yaWVzJ10pOwogCiAgICAgJGRiLT5iZWdpbl90cmFuc2FjdGlvbigpOwogICAgIGlm
ICgkZGItPnF1ZXJ5X2FuZF9nZXRfYWZmZWN0ZWRfcm93cygnREVMRVRFIEZST00gdHJpZ2dlcmFi
bGVfY29uZmlndXJhdGlvbnMgV0hFUkUgdHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSA9ICQxJywgYXJy
YXkoJHRyaWdnZXJhYmxlX2lkKSkgPT09IGZhbHNlKSB7CkBAIC0zMSw3ICszNCw3IEBAIGZ1bmN0
aW9uIG1haW4oJHBvc3RfZGF0YSkgewogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRv
RGVsZXRlRXhpc3RpbmdDb25maWd1cmF0aW9ucycsIGFycmF5KCd0cmlnZ2VyYWJsZScgPT4gJHRy
aWdnZXJhYmxlX2lkKSk7CiAgICAgfQogCi0gICAgZm9yZWFjaCAoJGNvbmZpZ3VyYXRpb25zIGFz
ICRlbnRyeSkgeworICAgIGZvcmVhY2ggKCRjb25maWd1cmF0aW9ucyBhcyAmJGVudHJ5KSB7CiAg
ICAgICAgICRjb25maWdfaW5mbyA9IGFycmF5KCd0ZXN0JyA9PiAkZW50cnlbJ3Rlc3QnXSwgJ3Bs
YXRmb3JtJyA9PiAkZW50cnlbJ3BsYXRmb3JtJ10sICd0cmlnZ2VyYWJsZScgPT4gJHRyaWdnZXJh
YmxlX2lkKTsKICAgICAgICAgaWYgKCEkZGItPmluc2VydF9yb3coJ3RyaWdnZXJhYmxlX2NvbmZp
Z3VyYXRpb25zJywgJ3RyaWdjb25maWcnLCAkY29uZmlnX2luZm8sIG51bGwpKSB7CiAgICAgICAg
ICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CkBAIC0zOSwxMCArNDIsNzMgQEAgZnVu
Y3Rpb24gbWFpbigkcG9zdF9kYXRhKSB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBmb3JlYWNo
ICgkcmVwb3NpdG9yeV9ncm91cHMgYXMgJiRncm91cCkgeworICAgICAgICAkZ3JvdXBfaWQgPSAk
Z3JvdXBbJ2V4aXN0aW5nR3JvdXAnXTsKKyAgICAgICAgaWYgKCRncm91cF9pZCkgeworICAgICAg
ICAgICAgJGdyb3VwX2luZm8gPSBhcnJheSgnbmFtZScgPT4gJGdyb3VwWyduYW1lJ10sICdkZXNj
cmlwdGlvbicgPT4gYXJyYXlfZ2V0KCRncm91cCwgJ2Rlc2NyaXB0aW9uJykpOworICAgICAgICAg
ICAgaWYgKCEkZGItPnVwZGF0ZV9yb3coJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
J3JlcG9zaXRvcnlncm91cCcsIGFycmF5KCdpZCcgPT4gJGdyb3VwX2lkKSwgJGdyb3VwX2luZm8p
KSB7CisgICAgICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOworICAgICAg
ICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5R3JvdXAn
LCBhcnJheSgncmVwb3NpdG9yeUdyb3VwJyA9PiAkZ3JvdXApKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRncm91cF9pZCA9ICRkYi0+dXBkYXRlX29yX2lu
c2VydF9yb3coJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ3JlcG9zaXRvcnlncm91
cCcsCisgICAgICAgICAgICAgICAgYXJyYXkoJ3RyaWdnZXJhYmxlJyA9PiAkdHJpZ2dlcmFibGVf
aWQsICduYW1lJyA9PiAkZ3JvdXBbJ25hbWUnXSksCisgICAgICAgICAgICAgICAgYXJyYXkoJ3Ry
aWdnZXJhYmxlJyA9PiAkdHJpZ2dlcmFibGVfaWQsICduYW1lJyA9PiAkZ3JvdXBbJ25hbWUnXSwg
J2Rlc2NyaXB0aW9uJyA9PiBhcnJheV9nZXQoJGdyb3VwLCAnZGVzY3JpcHRpb24nKSkpOworICAg
ICAgICAgICAgaWYgKCEkZ3JvdXBfaWQpIHsKKyAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNr
X3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRU
b0luc2VydFJlcG9zaXRvcnlHcm91cCcsIGFycmF5KCdyZXBvc2l0b3J5R3JvdXAnID0+ICRncm91
cCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgkZGItPnF1ZXJ5X2Fu
ZF9nZXRfYWZmZWN0ZWRfcm93cygnREVMRVRFIEZST00gdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVz
IFdIRVJFIHRyaWdyZXBvX2dyb3VwID0gJDEnLCBhcnJheSgkZ3JvdXBfaWQpKSA9PT0gRkFMU0Up
IHsKKyAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9EaXNhc3NvY2lhdGVSZXBvc2l0b3JpZXMnLCBhcnJh
eSgncmVwb3NpdG9yeUdyb3VwJyA9PiAkZ3JvdXApKTsKKyAgICAgICAgfQorICAgICAgICBmb3Jl
YWNoICgkZ3JvdXBbJ3JlcG9zaXRvcmllcyddIGFzICRyZXBvc2l0b3J5X2lkKSB7CisgICAgICAg
ICAgICBpZiAoISRkYi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywgJ3Ry
aWdyZXBvJywgYXJyYXkoJ2dyb3VwJyA9PiAkZ3JvdXBfaWQsICdyZXBvc2l0b3J5JyA9PiAkcmVw
b3NpdG9yeV9pZCksIG51bGwpKSB7CisgICAgICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFu
c2FjdGlvbigpOworICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9Bc3Nv
Y2lhdGVSZXBvc2l0b3J5JywgYXJyYXkoJ3JlcG9zaXRvcnlHcm91cCcgPT4gJGdyb3VwLCAncmVw
b3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKwogICAgICRkYi0+Y29tbWl0X3RyYW5zYWN0aW9uKCk7CiAgICAgZXhpdF93aXRoX3N1
Y2Nlc3MoKTsKIH0KIAorZnVuY3Rpb24gdmFsaWRhdGVfY29uZmlndXJhdGlvbnMoJGRiLCAkY29u
ZmlndXJhdGlvbnMpCit7CisgICAgaWYgKCFpc19hcnJheSgkY29uZmlndXJhdGlvbnMpKQorICAg
ICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRDb25maWd1cmF0aW9ucycsIGFycmF5KCdjb25m
aWd1cmF0aW9ucycgPT4gJGNvbmZpZ3VyYXRpb25zKSk7CisKKyAgICBmb3JlYWNoICgkY29uZmln
dXJhdGlvbnMgYXMgJGVudHJ5KSB7CisgICAgICAgIGlmICghaXNfYXJyYXkoJGVudHJ5KSB8fCAh
YXJyYXlfa2V5X2V4aXN0cygndGVzdCcsICRlbnRyeSkgfHwgIWFycmF5X2tleV9leGlzdHMoJ3Bs
YXRmb3JtJywgJGVudHJ5KSkKKyAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZENv
bmZpZ3VyYXRpb25FbnRyeScsIGFycmF5KCdjb25maWd1cmF0aW9uRW50cnknID0+ICRlbnRyeSkp
OworICAgIH0KK30KKworZnVuY3Rpb24gdmFsaWRhdGVfcmVwb3NpdG9yeV9ncm91cHMoJGRiLCAk
cmVwb3NpdG9yeV9ncm91cHMpCit7CisgICAgaWYgKCFpc19hcnJheSgkcmVwb3NpdG9yeV9ncm91
cHMpKQorICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXBzJywg
YXJyYXkoJ3JlcG9zaXRvcnlHcm91cHMnID0+ICRyZXBvc2l0b3J5X2dyb3VwcykpOworCisgICAg
JHRvcF9sZXZlbF9yZXBvc2l0b3JpZXMgPSAkZGItPnNlbGVjdF9yb3dzKCdyZXBvc2l0b3JpZXMn
LCAncmVwb3NpdG9yeScsIGFycmF5KCdvd25lcicgPT4gbnVsbCkpOworICAgICR0b3BfbGV2ZWxf
cmVwb3NpdG9yeV9pZHMgPSBhcnJheSgpOworICAgIGZvcmVhY2ggKCR0b3BfbGV2ZWxfcmVwb3Np
dG9yaWVzIGFzICRyZXBvc2l0b3J5X3JvdykKKyAgICAgICAgJHRvcF9sZXZlbF9yZXBvc2l0b3J5
X2lkc1skcmVwb3NpdG9yeV9yb3dbJ3JlcG9zaXRvcnlfaWQnXV0gPSB0cnVlOworCisgICAgZm9y
ZWFjaCAoJHJlcG9zaXRvcnlfZ3JvdXBzIGFzICYkZ3JvdXApIHsKKyAgICAgICAgaWYgKCFpc19h
cnJheSgkZ3JvdXApIHx8ICFhcnJheV9rZXlfZXhpc3RzKCduYW1lJywgJGdyb3VwKSB8fCAhYXJy
YXlfa2V5X2V4aXN0cygncmVwb3NpdG9yaWVzJywgJGdyb3VwKSB8fCAhaXNfYXJyYXkoJGdyb3Vw
WydyZXBvc2l0b3JpZXMnXSkpCisgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRS
ZXBvc2l0b3J5R3JvdXAnLCBhcnJheSgncmVwb3NpdG9yeUdyb3VwJyA9PiAkZ3JvdXApKTsKKyAg
ICAgICAgJHJlcG9zaXRvcnlfbGlzdCA9ICRncm91cFsncmVwb3NpdG9yaWVzJ107CisgICAgICAg
ICRncm91cF9yZXBvc2l0b3J5X2xpc3QgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoICgkcmVw
b3NpdG9yeV9saXN0IGFzICRyZXBvc2l0b3J5X2lkKSB7CisgICAgICAgICAgICBpZiAoIWFycmF5
X2tleV9leGlzdHMoJHJlcG9zaXRvcnlfaWQsICR0b3BfbGV2ZWxfcmVwb3NpdG9yeV9pZHMpIHx8
IGFycmF5X2tleV9leGlzdHMoJHJlcG9zaXRvcnlfaWQsICRncm91cF9yZXBvc2l0b3J5X2xpc3Qp
KQorICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJlcG9zaXRvcnknLCBh
cnJheSgncmVwb3NpdG9yeUdyb3VwJyA9PiAkZ3JvdXAsICdyZXBvc2l0b3J5JyA9PiAkcmVwb3Np
dG9yeV9pZCkpOworICAgICAgICAgICAgJGdyb3VwX3JlcG9zaXRvcnlfbGlzdFskcmVwb3NpdG9y
eV9pZF0gPSB0cnVlOworICAgICAgICB9CisgICAgfQorfQorCiBtYWluKCRIVFRQX1JBV19QT1NU
X0RBVEEpOwogCiA/PgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhwCmluZGV4IDJm
MjQ2NGNhNDM5NjMyZDUyODFjMWMwOGNjYzYzZGExZjE1MDJiMTEuLjlhOTI5YjRiMjhhYjQ5NWU2
MWY1OTA5YjI4N2MyMThjYmRhYTljMzggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hl
ci5waHAKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0c0ZldGNoZXIgewogICAg
ICAgICAgICAgICAgICdpZCcgPT4gJHJvd1sncmVxdWVzdF9pZCddLAogICAgICAgICAgICAgICAg
ICd0YXNrJyA9PiAkcm93Wyd0YXNrX2lkJ10sCiAgICAgICAgICAgICAgICAgJ3RyaWdnZXJhYmxl
JyA9PiAkcm93WydyZXF1ZXN0X3RyaWdnZXJhYmxlJ10sCisgICAgICAgICAgICAgICAgJ3JlcG9z
aXRvcnlHcm91cCcgPT4gJHJvd1sncmVxdWVzdF9yZXBvc2l0b3J5X2dyb3VwJ10sCiAgICAgICAg
ICAgICAgICAgJ3Rlc3QnID0+ICRyZXNvbHZlX2lkcyA/ICR0ZXN0X3BhdGhfcmVzb2x2ZXItPnBh
dGhfZm9yX3Rlc3QoJHRlc3RfaWQpIDogJHRlc3RfaWQsCiAgICAgICAgICAgICAgICAgJ3BsYXRm
b3JtJyA9PiAkcmVzb2x2ZV9pZHMgPyAkaWRfdG9fcGxhdGZvcm1fbmFtZVskcGxhdGZvcm1faWRd
IDogJHBsYXRmb3JtX2lkLAogICAgICAgICAgICAgICAgICd0ZXN0R3JvdXAnID0+ICRyb3dbJ3Jl
cXVlc3RfZ3JvdXAnXSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9yZXBvc2l0b3J5LWdyb3VwLWZpbmRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3NpdG9yeS1ncm91cC1maW5kZXIucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcyNjQxNTNkNDRjMWY0NDZjZDU0MWMzZDVjODg1ZjFmMzY2NTg5ZGEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3Np
dG9yeS1ncm91cC1maW5kZXIucGhwCkBAIC0wLDAgKzEsNDMgQEAKKzw/cGhwCisKK2NsYXNzIFJl
cG9zaXRvcnlHcm91cEZpbmRlcgoreworCisgICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRiLCAk
dHJpZ2dlcmFibGVfaWQpIHsKKyAgICAgICAgJHRoaXMtPmRiID0gJGRiOworICAgICAgICAkdGhp
cy0+dHJpZ2dlcmFibGVfaWQgPSAkdHJpZ2dlcmFibGVfaWQ7CisgICAgICAgICR0aGlzLT5yZXBv
c2l0b3JpZXNfYnlfZ3JvdXAgPSBOVUxMOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmRfYnlf
cmVwb3NpdG9yaWVzKCRyZXBvc2l0b3JpZXMpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPnJl
cG9zaXRvcmllc19ieV9ncm91cCA9PT0gTlVMTCkKKyAgICAgICAgICAgICR0aGlzLT5wb3B1bGF0
ZV9tYXAoKTsKKyAgICAgICAgc29ydCgkcmVwb3NpdG9yaWVzLCBTT1JUX05VTUVSSUMpOworICAg
ICAgICBmb3JlYWNoICgkdGhpcy0+cmVwb3NpdG9yaWVzX2J5X2dyb3VwIGFzICRncm91cF9pZCA9
PiAkZ3JvdXBfcmVwb3NpdG9yaWVzKSB7CisgICAgICAgICAgICBpZiAoY291bnQoJHJlcG9zaXRv
cmllcykgPT0gY291bnQoJGdyb3VwX3JlcG9zaXRvcmllcykgJiYgIWFycmF5X2RpZmYoJHJlcG9z
aXRvcmllcywgJGdyb3VwX3JlcG9zaXRvcmllcykpCisgICAgICAgICAgICAgICAgcmV0dXJuICRn
cm91cF9pZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBw
cml2YXRlIGZ1bmN0aW9uIHBvcHVsYXRlX21hcCgpCisgICAgeworICAgICAgICAkcmVwb3NpdG9y
eV9yb3dzID0gJHRoaXMtPmRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIHRy
aWdnZXJhYmxlX3JlcG9zaXRvcmllcyBXSEVSRSB0cmlncmVwb19ncm91cCBJTgorICAgICAgICAg
ICAgKFNFTEVDVCByZXBvc2l0b3J5Z3JvdXBfaWQgRlJPTSB0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5
X2dyb3VwcyBXSEVSRSByZXBvc2l0b3J5Z3JvdXBfdHJpZ2dlcmFibGUgPSAkMSkKKyAgICAgICAg
ICAgIE9SREVSIEJZIHRyaWdyZXBvX2dyb3VwLCB0cmlncmVwb19yZXBvc2l0b3J5JywgYXJyYXko
JHRoaXMtPnRyaWdnZXJhYmxlX2lkKSk7CisgICAgICAgIGlmICgkcmVwb3NpdG9yeV9yb3dzID09
PSBGQUxTRSkKKyAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9GZXRjaFJlcG9z
aXRvcnlHcm91cHMnLCBhcnJheSgndHJpZ2dlcmFibGUnID0+ICR0aGlzLT50cmlnZ2VyYWJsZV9p
ZCkpOworCisgICAgICAgICRyZXBvc2l0b3JpZXNfYnlfZ3JvdXAgPSBhcnJheSgpOworICAgICAg
ICBmb3JlYWNoICgkcmVwb3NpdG9yeV9yb3dzIGFzICYkcm93KSB7CisgICAgICAgICAgICAkZ3Jv
dXBfaWQgPSAkcm93Wyd0cmlncmVwb19ncm91cCddOworICAgICAgICAgICAgYXJyYXlfZW5zdXJl
X2l0ZW1faGFzX2FycmF5KCRyZXBvc2l0b3JpZXNfYnlfZ3JvdXAsICRncm91cF9pZCk7CisgICAg
ICAgICAgICBhcnJheV9wdXNoKCRyZXBvc2l0b3JpZXNfYnlfZ3JvdXBbJGdyb3VwX2lkXSwgJHJv
d1sndHJpZ3JlcG9fcmVwb3NpdG9yeSddKTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5y
ZXBvc2l0b3JpZXNfYnlfZ3JvdXAgPSAmJHJlcG9zaXRvcmllc19ieV9ncm91cDsKKyAgICB9Cit9
CisKKz8+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZp
bGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwCmluZGV4IDU2Mjg5
YTVjNjRhNDRjYmUwNDc3NjdlOTUzMDNlNzY2OWZiNGEzYWMuLjY1NjEwNTAzNmNjNzdmNGJjMTNk
YWFmNzNlMDhjMWVjMThjMjg2YWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3Jv
dXAucGhwCkBAIC0xLDggKzEsMTAgQEAKIDw/cGhwCiAKIHJlcXVpcmVfb25jZSgnLi4vaW5jbHVk
ZS9qc29uLWhlYWRlci5waHAnKTsKK3JlcXVpcmVfb25jZSgnLi4vaW5jbHVkZS9yZXBvc2l0b3J5
LWdyb3VwLWZpbmRlci5waHAnKTsKIAotZnVuY3Rpb24gbWFpbigpIHsKK2Z1bmN0aW9uIG1haW4o
KQorewogICAgICRkYiA9IGNvbm5lY3QoKTsKICAgICAkZGF0YSA9IGVuc3VyZV9wcml2aWxlZ2Vk
X2FwaV9kYXRhX2FuZF90b2tlbl9vcl9zbGF2ZSgkZGIpOwogICAgICRhdXRob3IgPSByZW1vdGVf
dXNlcl9uYW1lKCRkYXRhKTsKQEAgLTM1LDE4ICszNywxOCBAQCBmdW5jdGlvbiBtYWluKCkgewog
ICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1RyaWdnZXJhYmxlTm90Rm91bmRGb3JUYXNrJywgYXJy
YXkoJ3Rhc2snID0+ICR0YXNrX2lkKSk7CiAKICAgICBpZiAoJHJldmlzaW9uX3NldF9saXN0KQot
ICAgICAgICAkY29tbWl0X3NldHMgPSBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRi
LCAkcmV2aXNpb25fc2V0X2xpc3QpOworICAgICAgICAkY29tbWl0X3NldHMgPSBjb21taXRfc2V0
c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFibGVbJ2lkJ10sICRyZXZpc2lvbl9z
ZXRfbGlzdCk7CiAgICAgZWxzZSAvLyBWMiBVSSBjb21wYXRpYmlsaXR5Ci0gICAgICAgICRjb21t
aXRfc2V0cyA9IGVuc3VyZV9jb21taXRfc2V0cygkZGIsICRjb21taXRfc2V0c19pbmZvKTsKKyAg
ICAgICAgJGNvbW1pdF9zZXRzID0gZW5zdXJlX2NvbW1pdF9zZXRzKCRkYiwgJHRyaWdnZXJhYmxl
WydpZCddLCAkY29tbWl0X3NldHNfaW5mbyk7CiAKICAgICAkZGItPmJlZ2luX3RyYW5zYWN0aW9u
KCk7CiAKLSAgICAkY29tbWl0X3NldF9pZF9saXN0ID0gYXJyYXkoKTsKKyAgICAkY29uZmlndXJh
dGlvbl9saXN0ID0gYXJyYXkoKTsKICAgICBmb3JlYWNoICgkY29tbWl0X3NldHMgYXMgJGNvbW1p
dF9saXN0KSB7CiAgICAgICAgICRjb21taXRfc2V0X2lkID0gJGRiLT5pbnNlcnRfcm93KCdjb21t
aXRfc2V0cycsICdjb21taXRzZXQnLCBhcnJheSgpKTsKLSAgICAgICAgZm9yZWFjaCAoJGNvbW1p
dF9saXN0IGFzICRjb21taXQpCisgICAgICAgIGZvcmVhY2ggKCRjb21taXRfbGlzdFsnc2V0J10g
YXMgJGNvbW1pdCkKICAgICAgICAgICAgICRkYi0+aW5zZXJ0X3JvdygnY29tbWl0X3NldF9yZWxh
dGlvbnNoaXBzJywgJ2NvbW1pdHNldCcsIGFycmF5KCdzZXQnID0+ICRjb21taXRfc2V0X2lkLCAn
Y29tbWl0JyA9PiAkY29tbWl0KSwgJ2NvbW1pdCcpOwotICAgICAgICBhcnJheV9wdXNoKCRjb21t
aXRfc2V0X2lkX2xpc3QsICRjb21taXRfc2V0X2lkKTsKKyAgICAgICAgYXJyYXlfcHVzaCgkY29u
ZmlndXJhdGlvbl9saXN0LCBhcnJheSgnY29tbWl0X3NldCcgPT4gJGNvbW1pdF9zZXRfaWQsICdy
ZXBvc2l0b3J5X2dyb3VwJyA9PiAkY29tbWl0X2xpc3RbJ3JlcG9zaXRvcnlfZ3JvdXAnXSkpOwog
ICAgIH0KIAogICAgICRncm91cF9pZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlzaXNfdGVzdF9n
cm91cHMnLCAndGVzdGdyb3VwJywKQEAgLTU0LDE0ICs1NiwxNSBAQCBmdW5jdGlvbiBtYWluKCkg
ewogCiAgICAgJG9yZGVyID0gMDsKICAgICBmb3IgKCRpID0gMDsgJGkgPCAkcmVwZXRpdGlvbl9j
b3VudDsgJGkrKykgewotICAgICAgICBmb3JlYWNoICgkY29tbWl0X3NldF9pZF9saXN0IGFzICRj
b21taXRfc2V0X2lkKSB7CisgICAgICAgIGZvcmVhY2ggKCRjb25maWd1cmF0aW9uX2xpc3QgYXMg
JGNvbmZpZykgewogICAgICAgICAgICAgJGRiLT5pbnNlcnRfcm93KCdidWlsZF9yZXF1ZXN0cycs
ICdyZXF1ZXN0JywgYXJyYXkoCiAgICAgICAgICAgICAgICAgJ3RyaWdnZXJhYmxlJyA9PiAkdHJp
Z2dlcmFibGVbJ2lkJ10sCisgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcnlfZ3JvdXAnID0+ICRj
b25maWdbJ3JlcG9zaXRvcnlfZ3JvdXAnXSwKICAgICAgICAgICAgICAgICAncGxhdGZvcm0nID0+
ICR0cmlnZ2VyYWJsZVsncGxhdGZvcm0nXSwKICAgICAgICAgICAgICAgICAndGVzdCcgPT4gJHRy
aWdnZXJhYmxlWyd0ZXN0J10sCiAgICAgICAgICAgICAgICAgJ2dyb3VwJyA9PiAkZ3JvdXBfaWQs
CiAgICAgICAgICAgICAgICAgJ29yZGVyJyA9PiAkb3JkZXIsCi0gICAgICAgICAgICAgICAgJ2Nv
bW1pdF9zZXQnID0+ICRjb21taXRfc2V0X2lkKSk7CisgICAgICAgICAgICAgICAgJ2NvbW1pdF9z
ZXQnID0+ICRjb25maWdbJ2NvbW1pdF9zZXQnXSwpKTsKICAgICAgICAgICAgICRvcmRlcisrOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNzEsMTggKzc0LDIwIEBAIGZ1bmN0aW9uIG1haW4oKSB7CiAg
ICAgZXhpdF93aXRoX3N1Y2Nlc3MoYXJyYXkoJ3Rlc3RHcm91cElkJyA9PiAkZ3JvdXBfaWQpKTsK
IH0KIAotZnVuY3Rpb24gY29tbWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRzKCRkYiwgJHJldmlz
aW9uX3NldF9saXN0KQorZnVuY3Rpb24gY29tbWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRzKCRk
YiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2aXNpb25fc2V0X2xpc3QpCiB7CiAgICAgaWYgKGNvdW50
KCRyZXZpc2lvbl9zZXRfbGlzdCkgPCAyKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFs
aWRSZXZpc2lvblNldHMnLCBhcnJheSgncmV2aXNpb25TZXRzJyA9PiAkcmV2aXNpb25fc2V0X2xp
c3QpKTsKIAorICAgICRmaW5kZXIgPSBuZXcgUmVwb3NpdG9yeUdyb3VwRmluZGVyKCRkYiwgJHRy
aWdnZXJhYmxlX2lkKTsKICAgICAkY29tbWl0X3NldF9saXN0ID0gYXJyYXkoKTsKICAgICBmb3Jl
YWNoICgkcmV2aXNpb25fc2V0X2xpc3QgYXMgJHJldmlzaW9uX3NldCkgewotICAgICAgICAkY29t
bWl0X3NldCA9IGFycmF5KCk7Ci0KICAgICAgICAgaWYgKCFjb3VudCgkcmV2aXNpb25fc2V0KSkK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJldmlzaW9uU2V0cycsIGFycmF5
KCdyZXZpc2lvblNldHMnID0+ICRyZXZpc2lvbl9zZXRfbGlzdCkpOwogCisgICAgICAgICRjb21t
aXRfc2V0ID0gYXJyYXkoKTsKKyAgICAgICAgJHJlcG9zaXRvcnlfbGlzdCA9IGFycmF5KCk7CisK
ICAgICAgICAgZm9yZWFjaCAoJHJldmlzaW9uX3NldCBhcyAkcmVwb3NpdG9yeV9pZCA9PiAkcmV2
aXNpb24pIHsKICAgICAgICAgICAgIGlmICghaXNfbnVtZXJpYygkcmVwb3NpdG9yeV9pZCkpCiAg
ICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUmVwb3NpdG9yeScsIGFycmF5
KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCkpOwpAQCAtOTEsMzkgKzk2LDUzIEBAIGZ1
bmN0aW9uIGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0cygkZGIsICRyZXZpc2lvbl9zZXRf
bGlzdCkKICAgICAgICAgICAgIGlmICghJGNvbW1pdCkKICAgICAgICAgICAgICAgICBleGl0X3dp
dGhfZXJyb3IoJ1JldmlzaW9uTm90Rm91bmQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9z
aXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKSk7CiAgICAgICAgICAgICBhcnJheV9w
dXNoKCRjb21taXRfc2V0LCAkY29tbWl0Wydjb21taXRfaWQnXSk7CisgICAgICAgICAgICBhcnJh
eV9wdXNoKCRyZXBvc2l0b3J5X2xpc3QsICRyZXBvc2l0b3J5X2lkKTsKICAgICAgICAgfQotICAg
ICAgICBhcnJheV9wdXNoKCRjb21taXRfc2V0X2xpc3QsICRjb21taXRfc2V0KTsKKworICAgICAg
ICAkcmVwb3NpdG9yeV9ncm91cF9pZCA9ICRmaW5kZXItPmZpbmRfYnlfcmVwb3NpdG9yaWVzKCRy
ZXBvc2l0b3J5X2xpc3QpOworICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2dyb3VwX2lkKQorICAg
ICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdOb01hdGNoaW5nUmVwb3NpdG9yeUdyb3VwJywgYXJy
YXkoJ3JlcG9zaXRvcmlzJyA9PiAkcmVwb3NpdG9yeV9saXN0KSk7CisKKyAgICAgICAgYXJyYXlf
cHVzaCgkY29tbWl0X3NldF9saXN0LCBhcnJheSgncmVwb3NpdG9yeV9ncm91cCcgPT4gJHJlcG9z
aXRvcnlfZ3JvdXBfaWQsICdzZXQnID0+ICRjb21taXRfc2V0KSk7CiAgICAgfQogCiAgICAgcmV0
dXJuICRjb21taXRfc2V0X2xpc3Q7CiB9CiAKLWZ1bmN0aW9uIGVuc3VyZV9jb21taXRfc2V0cygk
ZGIsICRjb21taXRfc2V0c19pbmZvKSB7CitmdW5jdGlvbiBlbnN1cmVfY29tbWl0X3NldHMoJGRi
LCAkdHJpZ2dlcmFibGVfaWQsICRjb21taXRfc2V0c19pbmZvKSB7CiAgICAgJHJlcG9zaXRvcnlf
bmFtZV90b19pZCA9IGFycmF5KCk7CiAgICAgZm9yZWFjaCAoJGRiLT5zZWxlY3Rfcm93cygncmVw
b3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknLCBhcnJheSgnb3duZXInID0+IE5VTEwpKSBhcyAkcm93
KQogICAgICAgICAkcmVwb3NpdG9yeV9uYW1lX3RvX2lkWyRyb3dbJ3JlcG9zaXRvcnlfbmFtZSdd
XSA9ICRyb3dbJ3JlcG9zaXRvcnlfaWQnXTsKIAogICAgICRjb21taXRfc2V0cyA9IGFycmF5KCk7
CisgICAgJHJlcG9zaXRvcnlfbGlzdCA9IGFycmF5KCk7CiAgICAgZm9yZWFjaCAoJGNvbW1pdF9z
ZXRzX2luZm8gYXMgJHJlcG9zaXRvcnlfbmFtZSA9PiAkcmV2aXNpb25zKSB7CiAgICAgICAgICRy
ZXBvc2l0b3J5X2lkID0gYXJyYXlfZ2V0KCRyZXBvc2l0b3J5X25hbWVfdG9faWQsICRyZXBvc2l0
b3J5X25hbWUpOwogICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2lkKQogICAgICAgICAgICAgZXhp
dF93aXRoX2Vycm9yKCdSZXBvc2l0b3J5Tm90Rm91bmQnLCBhcnJheSgnbmFtZScgPT4gJHJlcG9z
aXRvcnlfbmFtZSkpOworICAgICAgICBhcnJheV9wdXNoKCRyZXBvc2l0b3J5X2xpc3QsICRyZXBv
c2l0b3J5X2lkKTsKIAogICAgICAgICBmb3JlYWNoICgkcmV2aXNpb25zIGFzICRpID0+ICRyZXZp
c2lvbikgewogICAgICAgICAgICAgJGNvbW1pdCA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygnY29t
bWl0cycsICdjb21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdy
ZXZpc2lvbicgPT4gJHJldmlzaW9uKSk7CiAgICAgICAgICAgICBpZiAoISRjb21taXQpCiAgICAg
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdSZXZpc2lvbk5vdEZvdW5kJywgYXJyYXkoJ3Jl
cG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X25hbWUsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKSk7
Ci0gICAgICAgICAgICBhcnJheV9zZXRfZGVmYXVsdCgkY29tbWl0X3NldHMsICRpLCBhcnJheSgp
KTsKLSAgICAgICAgICAgIGFycmF5X3B1c2goJGNvbW1pdF9zZXRzWyRpXSwgJGNvbW1pdFsnY29t
bWl0X2lkJ10pOworICAgICAgICAgICAgYXJyYXlfc2V0X2RlZmF1bHQoJGNvbW1pdF9zZXRzLCAk
aSwgYXJyYXkoJ3NldCcgPT4gYXJyYXkoKSkpOworICAgICAgICAgICAgYXJyYXlfcHVzaCgkY29t
bWl0X3NldHNbJGldWydzZXQnXSwgJGNvbW1pdFsnY29tbWl0X2lkJ10pOwogICAgICAgICB9CiAg
ICAgfQogCisgICAgJGZpbmRlciA9IG5ldyBSZXBvc2l0b3J5R3JvdXBGaW5kZXIoJGRiLCAkdHJp
Z2dlcmFibGVfaWQpOworICAgICRyZXBvc2l0b3J5X2dyb3VwX2lkID0gJGZpbmRlci0+ZmluZF9i
eV9yZXBvc2l0b3JpZXMoJHJlcG9zaXRvcnlfbGlzdCk7CisgICAgaWYgKCEkcmVwb3NpdG9yeV9n
cm91cF9pZCkKKyAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdOb01hdGNoaW5nUmVwb3NpdG9yeUdy
b3VwJywgYXJyYXkoJ3JlcG9zaXRvcmlzJyA9PiAkcmVwb3NpdG9yeV9saXN0KSk7CisKICAgICBp
ZiAoY291bnQoJGNvbW1pdF9zZXRzKSA8IDIpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52
YWxpZENvbW1pdFNldHMnLCBhcnJheSgnY29tbWl0U2V0cycgPT4gJGNvbW1pdF9zZXRzX2luZm8p
KTsKIAotICAgICRjb21taXRfY291bnRfcGVyX3NldCA9IGNvdW50KCRjb21taXRfc2V0c1swXSk7
Ci0gICAgZm9yZWFjaCAoJGNvbW1pdF9zZXRzIGFzICRjb21taXRzKSB7Ci0gICAgICAgIGlmICgk
Y29tbWl0X2NvdW50X3Blcl9zZXQgIT0gY291bnQoJGNvbW1pdHMpKQorICAgICRjb21taXRfY291
bnRfcGVyX3NldCA9IGNvdW50KCRjb21taXRfc2V0c1swXVsnc2V0J10pOworICAgIGZvcmVhY2gg
KCRjb21taXRfc2V0cyBhcyAmJGNvbW1pdHMpIHsKKyAgICAgICAgJGNvbW1pdHNbJ3JlcG9zaXRv
cnlfZ3JvdXAnXSA9ICRyZXBvc2l0b3J5X2dyb3VwX2lkOworICAgICAgICBpZiAoJGNvbW1pdF9j
b3VudF9wZXJfc2V0ICE9IGNvdW50KCRjb21taXRzWydzZXQnXSkpCiAgICAgICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ0ludmFsaWRDb21taXRTZXRzJywgYXJyYXkoJ2NvbW1pdFNldHMnID0+ICRj
b21taXRfc2V0cykpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggNGYzMDk0NTY3
YTNjYWQwZjE4YmRmY2FjMGJlNzg5Njk2ZmI0OWI4Mi4uMjk5MDEyZDM3NTdmZjE1NDBmY2JkODFk
NWIzMDdkOWQ5Mjc0YmZhNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC02LDEyICs2LDE0IEBA
IGNsYXNzIEJ1aWxkUmVxdWVzdCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgewogICAg
ICAgICBzdXBlcihpZCwgb2JqZWN0KTsKICAgICAgICAgdGhpcy5fdHJpZ2dlcmFibGUgPSBvYmpl
Y3QudHJpZ2dlcmFibGU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmplY3QucmVwb3NpdG9y
eUdyb3VwIHx8IG9iamVjdC5yZXBvc2l0b3J5R3JvdXAgaW5zdGFuY2VvZiBUcmlnZ2VyYWJsZVJl
cG9zaXRvcnlHcm91cCk7CiAgICAgICAgIHRoaXMuX2FuYWx5c2lzVGFza0lkID0gb2JqZWN0LnRh
c2s7CiAgICAgICAgIHRoaXMuX3Rlc3RHcm91cElkID0gb2JqZWN0LnRlc3RHcm91cElkOwogICAg
ICAgICBjb25zb2xlLmFzc2VydCghb2JqZWN0LnRlc3RHcm91cCB8fCBvYmplY3QudGVzdEdyb3Vw
IGluc3RhbmNlb2YgVGVzdEdyb3VwKTsKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwID0gb2JqZWN0
LnRlc3RHcm91cDsKICAgICAgICAgaWYgKHRoaXMuX3Rlc3RHcm91cCkKICAgICAgICAgICAgIHRo
aXMuX3Rlc3RHcm91cC5hZGRCdWlsZFJlcXVlc3QodGhpcyk7CisgICAgICAgIHRoaXMuX3JlcG9z
aXRvcnlHcm91cCA9IG9iamVjdC5yZXBvc2l0b3J5R3JvdXA7CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KG9iamVjdC5wbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3JtKTsKICAgICAgICAgdGhpcy5f
cGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVj
dC50ZXN0IGluc3RhbmNlb2YgVGVzdCk7CkBAIC0zNiw5ICszOCwxMSBAQCBjbGFzcyBCdWlsZFJl
cXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICB0aGlzLl9idWlsZElkID0g
b2JqZWN0LmJ1aWxkOwogICAgIH0KIAorICAgIHRyaWdnZXJhYmxlKCkgeyByZXR1cm4gdGhpcy5f
dHJpZ2dlcmFibGU7IH0KICAgICBhbmFseXNpc1Rhc2tJZCgpIHsgcmV0dXJuIHRoaXMuX2FuYWx5
c2lzVGFza0lkOyB9CiAgICAgdGVzdEdyb3VwSWQoKSB7IHJldHVybiB0aGlzLl90ZXN0R3JvdXBJ
ZDsgfQogICAgIHRlc3RHcm91cCgpIHsgcmV0dXJuIHRoaXMuX3Rlc3RHcm91cDsgfQorICAgIHJl
cG9zaXRvcnlHcm91cCgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlHcm91cDsgfQogICAgIHBs
YXRmb3JtKCkgeyByZXR1cm4gdGhpcy5fcGxhdGZvcm07IH0KICAgICB0ZXN0KCkgeyByZXR1cm4g
dGhpcy5fdGVzdDsgfQogICAgIG9yZGVyKCkgeyByZXR1cm4gK3RoaXMuX29yZGVyOyB9CkBAIC0x
MjksNiArMTMzLDggQEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0
IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgcmV0dXJuIGRhdGFbJ2J1aWxkUmVxdWVzdHMnXS5t
YXAoZnVuY3Rpb24gKHJhd0RhdGEpIHsKKyAgICAgICAgICAgIHJhd0RhdGEudHJpZ2dlcmFibGUg
PSBUcmlnZ2VyYWJsZS5maW5kQnlJZChyYXdEYXRhLnRyaWdnZXJhYmxlKTsKKyAgICAgICAgICAg
IHJhd0RhdGEucmVwb3NpdG9yeUdyb3VwID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuZmlu
ZEJ5SWQocmF3RGF0YS5yZXBvc2l0b3J5R3JvdXApOwogICAgICAgICAgICAgcmF3RGF0YS5wbGF0
Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHJhd0RhdGEucGxhdGZvcm0pOwogICAgICAgICAgICAg
cmF3RGF0YS50ZXN0ID0gVGVzdC5maW5kQnlJZChyYXdEYXRhLnRlc3QpOwogICAgICAgICAgICAg
cmF3RGF0YS50ZXN0R3JvdXBJZCA9IHJhd0RhdGEudGVzdEdyb3VwOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3JlcG9zaXRvcnkuanMKaW5k
ZXggOGMyYWNhZWYzM2NkN2Y4MzM1YTJlYjgyY2E5MGZkNzgwZGI2ZGJjNi4uN2UyZTZhM2VkYjg2
MjIyNWJhOTU0Y2QzMmExMzAxZjA3ZjZmMWVmNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcmVwb3NpdG9yeS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzCkBAIC04LDYgKzgs
MTUgQEAgY2xhc3MgUmVwb3NpdG9yeSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0
aGlzLl9ibGFtZVVybCA9IG9iamVjdC5ibGFtZVVybDsKICAgICAgICAgdGhpcy5faGFzUmVwb3J0
ZWRDb21taXRzID0gb2JqZWN0Lmhhc1JlcG9ydGVkQ29tbWl0czsKICAgICAgICAgdGhpcy5fb3du
ZXIgPSBvYmplY3Qub3duZXI7CisKKyAgICAgICAgaWYgKCFvYmplY3Qub3duZXIpCisgICAgICAg
ICAgICB0aGlzLmVuc3VyZU5hbWVkU3RhdGljTWFwKCd0b3BMZXZlbE5hbWUnKVt0aGlzLm5hbWUo
KV0gPSB0aGlzOworICAgIH0KKworICAgIHN0YXRpYyBmaW5kVG9wTGV2ZWxCeU5hbWUobmFtZSkK
KyAgICB7CisgICAgICAgIGNvbnN0IG1hcCA9IHRoaXMubmFtZWRTdGF0aWNNYXAoJ3RvcExldmVs
TmFtZScpOworICAgICAgICByZXR1cm4gbWFwID8gbWFwW25hbWVdIDogbnVsbDsKICAgICB9CiAK
ICAgICBoYXNVcmxGb3JSZXZpc2lvbigpIHsgcmV0dXJuICEhdGhpcy5fdXJsOyB9CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJs
ZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJh
YmxlLmpzCmluZGV4IDUzZDUwOTA1ZmZiMmNmMTEzNzI0NzNkNDc2NTVmYjA0NWRkZTJjMGYuLjc1
MzMxZTNjN2VhNjQyMGJlMjViNDBkZmU3ZDZiNmNhMmYxNjEwYzcgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpz
CkBAIC0xOSw4ICsxOSw4IEBAIGNsYXNzIFRyaWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVj
dCB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsg
fQogICAgIGlzRGlzYWJsZWQoKSB7IHJldHVybiB0aGlzLl9pc0Rpc2FibGVkOyB9Ci0gICAgYWNj
ZXB0ZWRSZXBvc2l0b3JpZXMoKSB7IHJldHVybiB0aGlzLl9hY2NlcHRlZFJlcG9zaXRvcmllczsg
fQogICAgIHJlcG9zaXRvcnlHcm91cHMoKSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5R3JvdXBz
OyB9CiAKICAgICBhY2NlcHRzVGVzdCh0ZXN0KSB7IHJldHVybiB0aGlzLl9hY2NlcHRlZFRlc3Rz
Lmhhcyh0ZXN0KTsgfQpAQCAtNDYsNyArNDYsMTkgQEAgY2xhc3MgVHJpZ2dlcmFibGVSZXBvc2l0
b3J5R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgc3VwZXIoaWQsIG9iamVj
dCk7CiAgICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gb2JqZWN0LmRlc2NyaXB0aW9uOwogICAg
ICAgICB0aGlzLl9hY2NlcHRzQ3VzdG9tUm9vdHMgPSAhIW9iamVjdC5hY2NlcHRzQ3VzdG9tUm9v
dHM7Ci0gICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcyA9IG9iamVjdC5yZXBvc2l0b3JpZXM7Cisg
ICAgICAgIHRoaXMuX3JlcG9zaXRvcmllcyA9IFJlcG9zaXRvcnkuc29ydEJ5TmFtZShvYmplY3Qu
cmVwb3NpdG9yaWVzKTsKKyAgICB9CisKKyAgICBhY2NlcHRzKGNvbW1pdFNldCkKKyAgICB7Cisg
ICAgICAgIGNvbnN0IGNvbW1pdFNldFJlcG9zaXRvcmllcyA9IFJlcG9zaXRvcnkuc29ydEJ5TmFt
ZShjb21taXRTZXQucmVwb3NpdG9yaWVzKCkpOworICAgICAgICBpZiAodGhpcy5fcmVwb3NpdG9y
aWVzLmxlbmd0aCAhPSBjb21taXRTZXRSZXBvc2l0b3JpZXMubGVuZ3RoKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3JlcG9zaXRv
cmllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRoaXMuX3JlcG9zaXRvcmllc1tp
XSAhPSBjb21taXRTZXRSZXBvc2l0b3JpZXNbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGRlc2Ny
aXB0aW9uKCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb24gfHwgdGhpcy5uYW1lKCk7IH0KZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggZmRmMGM4N2Y3OGFjZDc4MjYwMWQw
MjI2MWJjNzk1NmMwYjU5N2I0OC4uZDMyZmQ1NThjMzMzOTNlYjU5YzFiNDUyZTBjZjljNWE4NDQ5
N2FjNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTk1LDcgKzk1LDcg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ10ubGVuZ3RoLCAzKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0uaWQsIDg3ODMyKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0ucmVwb3NpdG9yeSwg
J09TIFgnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRzJ11bMF0u
cmVwb3NpdG9yeSwgJ21hY09TJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
Y29tbWl0cyddWzBdLnJldmlzaW9uLCAnMTAuMTEgMTVBMjg0Jyk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLmlkLCA5MzExNik7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsK
QEAgLTE5NCw3ICsxOTQsNyBAQCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CiAKICAgICAgICAgICAgIGxldCBvc3ggPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeC5uYW1lKCksICdPUyBY
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Lm5hbWUoKSwgJ21hY09TJyk7CiAKICAg
ICAgICAgICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CkBAIC0zMjUsNiArMzI1
LDQyIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCdzaG91bGQgc3BlY2lmeSB0aGUgcmVwb3NpdG9y
eSBncm91cCBmb3IgYnVpbGQgcmVxdWVzdHMgaWYgc2V0JywgKCkgPT4geworICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgbGV0IGdyb3VwczsKKyAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tEYXRhKGRiKS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrVGVzdEdyb3VwV2l0aEdpdFdlYktpdChkYik7Cisg
ICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNo
KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFi
bGUgPSBUcmlnZ2VyYWJsZS5hbGwoKS5maW5kKCh0cmlnZ2VyYWJsZSkgPT4gdHJpZ2dlcmFibGUu
bmFtZSgpID09ICdidWlsZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0cmln
Z2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGdyb3Vw
cyA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUodHJpZ2dlcmFibGUucmVw
b3NpdG9yeUdyb3VwcygpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0ubmFt
ZSgpLCAnd2Via2l0LWdpdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5u
YW1lKCksICd3ZWJraXQtc3ZuJyk7CisgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZl
dGNoRm9yVHJpZ2dlcmFibGUoJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICB9KS50aGVuKChidWls
ZFJlcXVlc3RzKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5s
ZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0uaWQo
KSwgNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnJlcG9z
aXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdHNbMV0uaWQoKSwgNzAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0uaWQoKSwgNzAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3RzWzJdLnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMV0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbM10uaWQoKSwgNzAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgp
LCBncm91cHNbMV0pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s0
XS5pZCgpLCAxNzAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzRd
LnJlcG9zaXRvcnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbNV0uaWQoKSwgMTcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0c1s1XS5yZXBvc2l0b3J5R3JvdXAoKSwgZ3JvdXBzWzBdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzZdLmlkKCksIDE3MDIpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbNl0ucmVwb3NpdG9yeUdyb3VwKCksIGdyb3Vw
c1swXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1s3XS5pZCgpLCAx
NzAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzddLnJlcG9zaXRv
cnlHcm91cCgpLCBncm91cHNbMF0pOworICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGl0KCdz
aG91bGQgcGxhY2UgYnVpbGQgcmVxdWVzdHMgY3JlYXRlZCBieSB1c2VyIGJlZm9yZSBhdXRvbWF0
aWNhbGx5IGNyZWF0ZWQgb25lcycsICgpID0+IHsKICAgICAgICAgbGV0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tEYXRhLmFkZE1v
Y2tEYXRhKGRiKSwgTW9ja0RhdGEuYWRkQW5vdGhlck1vY2tUZXN0R3JvdXAoZGIsIG51bGwsICdy
bml3YScpXSkudGhlbigoKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCmluZGV4IDU0YWNiMTYx
MDAyYjFmMTZjNDMzZTYyYzY1NGUzYzI1ZGU5MWU2MjcuLmY3NzEyM2M2M2I3M2M2ZTc4MzVkNjVh
NTA3ZTc0YjE0NmJiNzA1YTQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBAIC02Miw3ICs2Miw3
IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdidWdfdHJhY2tlcnMnLCBidWd6aWxsYURhdGEpLAogICAgICAgICAgICAgZGIu
aW5zZXJ0KCdidWdfdHJhY2tlcnMnLCByYWRhckRhdGEpLAogICAgICAgICAgICAgZGIuaW5zZXJ0
KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDExLCBuYW1lOiAnV2ViS2l0JywgdXJsOiAnaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvJDEnfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmll
cycsIHtpZDogOSwgbmFtZTogJ09TIFgnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9z
aXRvcmllcycsIHtpZDogOSwgbmFtZTogJ21hY09TJ30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0
KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDIyLCBuYW1lOiAnaU9TJ30pLAogICAgICAgICAgICAgZGIu
aW5zZXJ0KCd0cmFja2VyX3JlcG9zaXRvcmllcycsIHt0cmFja2VyOiBidWd6aWxsYURhdGEuaWQs
IHJlcG9zaXRvcnk6IDExfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyYWNrZXJfcmVwb3Np
dG9yaWVzJywge3RyYWNrZXI6IHJhZGFyRGF0YS5pZCwgcmVwb3NpdG9yeTogOX0pLApAQCAtNzcs
OSArNzcsOSBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQubmFtZSgpLCAnV2ViS2l0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwod2Via2l0LnVybEZvclJldmlzaW9uKDEyMyksICdodHRwczovL3RyYWMu
d2Via2l0Lm9yZy8xMjMnKTsKIAotICAgICAgICAgICAgbGV0IG9zeCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoOSk7Ci0gICAgICAgICAgICBhc3NlcnQob3N4KTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3gubmFtZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgbGV0IG1hY29zID0gUmVwb3Np
dG9yeS5maW5kQnlJZCg5KTsKKyAgICAgICAgICAgIGFzc2VydChtYWNvcyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwobWFjb3MubmFtZSgpLCAnbWFjT1MnKTsKIAogICAgICAgICAgICAgbGV0
IGlvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoMjIpOwogICAgICAgICAgICAgYXNzZXJ0KGlvcyk7
CkBAIC05NSw3ICs5NSw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgdHJhY2tlciA9IEJ1Z1RyYWNrZXIuZmluZEJ5SWQoMik7CiAgICAgICAg
ICAgICBhc3NlcnQodHJhY2tlcik7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHJhY2tlci5u
YW1lKCksICdSYWRhcicpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5
LnNvcnRCeU5hbWUodHJhY2tlci5yZXBvc2l0b3JpZXMoKSksIFtvc3gsIGlvc10pOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUodHJhY2tlci5yZXBv
c2l0b3JpZXMoKSksIFtpb3MsIG1hY29zXSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCkBAIC0y
NjQsNyArMjY0LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIGxldCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKFsKICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywge2lkOiAx
MSwgbmFtZTogJ1dlYktpdCcsIHVybDogJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnLyQxJ30pLAot
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDksIG5hbWU6ICdPUyBY
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDksIG5hbWU6
ICdtYWNPUyd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywge2lkOiAx
MDEsIG5hbWU6ICdXZWJLaXQnLCBvd25lcjogOSwgdXJsOiAnaHR0cHM6Ly90cmFjLndlYmtpdC5v
cmcvJDEnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtp
ZDogMjAwLCBuYW1lOiAnYnVpbGQud2Via2l0Lm9yZyd9KSwKICAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAyMDEsIG5hbWU6ICdpb3MtYnVpbGQud2Via2l0
Lm9yZyd9KSwKQEAgLTMxNCw4ICszMTQsOCBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc1dlYmtpdDEub3duZXIoKSwg
OSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3NXZWJraXQxLnVybEZvclJldmlzaW9uKDEy
MyksICdodHRwczovL3RyYWMud2Via2l0Lm9yZy8xMjMnKTsKIAotICAgICAgICAgICAgY29uc3Qg
b3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3gubmFtZSgpLCAnT1MgWCcpOworICAgICAgICAgICAgY29uc3QgbWFjb3MgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21h
Y09TJyk7CiAKICAgICAgICAgICAgIGNvbnN0IHNvbWVUZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCksICdTb21lVGVzdCcpOwpA
QCAtMzM3LDM4ICszMzcsNTQgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAo
KSB7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgs
IDMpOwogCi0gICAgICAgICAgICBjb25zdCBvc3hUcmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmZp
bmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVUZXN0LCBtYXZlcmlja3MpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeFRyaWdnZXJhYmxlLm5hbWUoKSwgJ2J1aWxkLndlYmtpdC5vcmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3N4VHJpZ2dlcmFibGUuYWNjZXB0ZWRSZXBv
c2l0b3JpZXMoKSwgW3dlYmtpdF0pOworICAgICAgICAgICAgY29uc3QgbWFjb3NUcmlnZ2VyYWJs
ZSA9IFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHNvbWVUZXN0LCBtYXZlcmlj
a3MpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY29zVHJpZ2dlcmFibGUubmFtZSgpLCAn
YnVpbGQud2Via2l0Lm9yZycpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFi
bGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZU90aGVyVGVzdCwgbWF2ZXJpY2tzKSwgb3N4
VHJpZ2dlcmFibGUpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRC
eVRlc3RDb25maWd1cmF0aW9uKGNoaWxkVGVzdCwgbWF2ZXJpY2tzKSwgb3N4VHJpZ2dlcmFibGUp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1
cmF0aW9uKHNvbWVPdGhlclRlc3QsIG1hdmVyaWNrcyksIG1hY29zVHJpZ2dlcmFibGUpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KGNoaWxkVGVzdCwgbWF2ZXJpY2tzKSwgbWFjb3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAg
IGNvbnN0IGlvc1RyaWdnZXJhYmxlID0gVHJpZ2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRp
b24oc29tZU90aGVyVGVzdCwgaW9zOWlwaG9uZTVzKTsKLSAgICAgICAgICAgIGFzc2VydC5ub3RF
cXVhbChpb3NUcmlnZ2VyYWJsZSwgb3N4VHJpZ2dlcmFibGUpOworICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGlvc1RyaWdnZXJhYmxlLCBtYWNvc1RyaWdnZXJhYmxlKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChpb3NUcmlnZ2VyYWJsZS5uYW1lKCksICdpb3MtYnVpbGQud2Via2l0Lm9y
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpb3NUcmlnZ2VyYWJsZS5hY2NlcHRl
ZFJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChU
cmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbihzb21lT3RoZXJUZXN0LCBpb3M5aXBo
b25lNXMpLCBpb3NUcmlnZ2VyYWJsZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oY2hpbGRUZXN0LCBpb3M5aXBob25lNXMpLCBp
b3NUcmlnZ2VyYWJsZSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1hY1RyaWdnZXJhYmxlID0gVHJp
Z2dlcmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24oc29tZVRlc3QsIHNpZXJyYSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwobWFjVHJpZ2dlcmFibGUubmFtZSgpLCAnbWFjLWJ1aWxkLndl
YmtpdC5vcmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0
QnlOYW1lKG1hY1RyaWdnZXJhYmxlLmFjY2VwdGVkUmVwb3NpdG9yaWVzKCkpLCBbb3N4LCB3ZWJr
aXRdKTsKICAgICAgICAgICAgIGFzc2VydChtYWNUcmlnZ2VyYWJsZS5hY2NlcHRzVGVzdChzb21l
VGVzdCkpOwogCiAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBtYWNUcmlnZ2VyYWJsZS5yZXBv
c2l0b3J5R3JvdXBzKCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwcy5sZW5n
dGgsIDIpOwogICAgICAgICAgICAgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFt
ZShncm91cHMpOwogCisgICAgICAgICAgICBjb25zdCBlbXB0eUN1c3RvbVNldCA9IG5ldyBDdXN0
b21Db21taXRTZXQ7CisKKyAgICAgICAgICAgIGNvbnN0IGN1c3RvbVNldFdpdGhPU1ggPSBuZXcg
Q3VzdG9tQ29tbWl0U2V0OworICAgICAgICAgICAgY3VzdG9tU2V0V2l0aE9TWC5zZXRSZXZpc2lv
bkZvclJlcG9zaXRvcnkobWFjb3MsICcxMC4xMSAxNUEyODQnKTsKKworICAgICAgICAgICAgY29u
c3QgY3Vzb21TZXRXaXRoT1NYQW5kV2ViS2l0ID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKKyAgICAg
ICAgICAgIGN1c29tU2V0V2l0aE9TWEFuZFdlYktpdC5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0LCAnMTkxNjIyJyk7CisgICAgICAgICAgICBjdXNvbVNldFdpdGhPU1hBbmRXZWJLaXQu
c2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zLCAnMTAuMTEgMTVBMjg0Jyk7CisKKyAgICAg
ICAgICAgIGNvbnN0IGN1c29tU2V0V2l0aFdlYktpdCA9IG5ldyBDdXN0b21Db21taXRTZXQ7Cisg
ICAgICAgICAgICBjdXNvbVNldFdpdGhXZWJLaXQuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdl
YmtpdCwgJzE5MTYyMicpOworCiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLm5h
bWUoKSwgJ3N5c3RlbS1hbmQtcm9vdHMnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91
cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCksIHRydWUpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWUoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwg
W29zeF0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5h
bWUoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpKSwgW21hY29zXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoZW1wdHlDdXN0b21TZXQpLCBmYWxzZSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzBdLmFjY2VwdHMoY3VzdG9tU2V0V2l0aE9TWCks
IHRydWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5hY2NlcHRzKGN1c29t
U2V0V2l0aE9TWEFuZFdlYktpdCksIGZhbHNlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cHNbMF0uYWNjZXB0cyhjdXNvbVNldFdpdGhXZWJLaXQpLCBmYWxzZSk7CiAKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IGZhbHNlKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoUmVwb3NpdG9yeS5zb3J0QnlO
YW1lKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSksIFtvc3gsIHdlYmtpdF0pOwotCisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKFJlcG9zaXRvcnkuc29ydEJ5TmFtZShncm91cHNbMV0ucmVw
b3NpdG9yaWVzKCkpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdyb3Vwc1sxXS5hY2NlcHRzKGVtcHR5Q3VzdG9tU2V0KSwgZmFsc2UpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzKGN1c3RvbVNldFdpdGhPU1gpLCBmYWxzZSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHMoY3Vzb21TZXRXaXRo
T1NYQW5kV2ViS2l0KSwgdHJ1ZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFd
LmFjY2VwdHMoY3Vzb21TZXRXaXRoV2ViS2l0KSwgZmFsc2UpOwogICAgICAgICB9KTsKICAgICB9
KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IDQxNzQwMDQ3NTM4ZTA4YmJjOGIwYjU4ZTI0Yzc1
ZDdmZGJkMTM5MjcuLjFhMmVlZjM2NTQ5OGI1MzM2YmVkNzk5MGI2NmMyNWQyZDA2NDliY2YgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9y
dC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtdGVzdHMuanMKQEAgLTIxLDcgKzIxLDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24i
LAogICAgICAgICAgICAgInRlc3RzIjoge30sCiAgICAgICAgICAgICAicmV2aXNpb25zIjogewot
ICAgICAgICAgICAgICAgICJPUyBYIjogeworICAgICAgICAgICAgICAgICJtYWNPUyI6IHsKICAg
ICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKICAgICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CkBAIC00Myw3ICs0Myw3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICJwbGF0Zm9y
bSI6ICJNb3VudGFpbiBMaW9uIiwKICAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAogICAgICAgICAg
ICAgInJldmlzaW9ucyI6IHsKLSAgICAgICAgICAgICAgICAiT1MgWCI6IHsKKyAgICAgICAgICAg
ICAgICAibWFjT1MiOiB7CiAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIg
MTJDNjAiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAiV2ViS2l0IjogewpA
QCAtMjMyLDcgKzIzMiw3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdHMgPSByZXN1bHRbMV07CiAgICAgICAgICAgICBjb25z
dCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSByZXN1bHRbMl07CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4geyByZXR1cm4gcm93WyduYW1lJ107IH0pLnNv
cnQoKSwgWydPUyBYJywgJ1dlYktpdCddKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcs
ICdtYWNPUyddKTsKIAogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdHMubGVuZ3RoLCAy
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3Ro
LCAyKTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBmb3IgKGxldCBjb21taXQgb2YgY29tbWl0cykKICAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVwb3NpdG9yeUlkVG9OYW1lW2Nv
bW1pdFsncmVwb3NpdG9yeSddXV0gPSBjb21taXQ7CiAKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ09TIFgnXVsncmV2aXNpb24nXSwgJzEwLjgu
MiAxMkM2MCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3Jl
dmlzaW9uJ10sICcxNDE5NzcnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwKICAgICAgICAg
ICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CkBA
IC0zNjgsNyArMzY4LDcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAicmV2aXNpb25zIjogewotICAgICAg
ICAgICAgIk9TIFgiOiB7CisgICAgICAgICAgICAibWFjT1MiOiB7CiAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAi
V2ViS2l0IjogewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLmpzCmluZGV4IDVmMjA5ZjFjMTc1
YzAwNDNmOTljYWQ3NjY5MGQ5NmQwNmMwMGMxNGEuLmFmOWE5NjQ2Y2Q3NGVjM2RhN2M1OGRmNDZm
MjU2MjVhOTBhYjZjZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUuanMKQEAgLTY4LDcg
KzY4LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCiAgICAgICAgICAgICAgICAgYWRk
U2xhdmVGb3JSZXBvcnQoZW1wdHlVcGRhdGUpLAogICAgICAgICAgICAgICAgIGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLAotICAgICAgICAgICAgICAgICAgICB7J3RyaWdn
ZXJhYmxlJzogMSAvKiBidWlsZC13ZWJraXQgKi8sICd0ZXN0JzogTW9ja0RhdGEuc29tZVRlc3RJ
ZCgpLCAncGxhdGZvcm0nOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSkKKyAgICAgICAgICAg
ICAgICAgICAgeyd0cmlnZ2VyYWJsZSc6IDEwMDAgLyogYnVpbGQtd2Via2l0ICovLCAndGVzdCc6
IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgJ3BsYXRmb3JtJzogTW9ja0RhdGEuc29tZVBsYXRmb3Jt
SWQoKX0pCiAgICAgICAgICAgICBdKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywgZW1wdHlVcGRhdGUpOwpAQCAtMTEyLDQgKzExMiwyOTEgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKKyAgICBmdW5jdGlvbiB1cGRhdGVXaXRoT1NYUmVwb3NpdG9yeUdyb3VwKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3NvbWVT
bGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdzb21lUGFzc3dvcmQnLAorICAg
ICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2VtcHR5LXRyaWdnZXJhYmxlJywKKyAgICAgICAgICAg
ICdjb25maWd1cmF0aW9ucyc6IFsKKyAgICAgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29t
ZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0KKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKKyAgICAgICAgICAgICAg
ICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV19LAorICAgICAgICAgICAgXQorICAgICAgICB9OworICAgIH0KKworICAgIGl0
KCdzaG91bGQgcmVqZWN0IHdoZW4gcmVwb3NpdG9yeUdyb3VwcyBpcyBub3QgYW4gYXJyYXknLCAo
KSA9PiB7CisgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3Jv
dXAoKTsKKyAgICAgICAgdXBkYXRlLnJlcG9zaXRvcnlHcm91cHMgPSAxOworICAgICAgICByZXR1
cm4gTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2VyYWJsZShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHVwZGF0ZSk7
CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7
CisgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cHMnKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIHRoZSBuYW1lIG9m
IGEgcmVwb3NpdG9yeSBncm91cCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4geworICAgICAgICBj
b25zdCB1cGRhdGUgPSB1cGRhdGVXaXRoT1NYUmVwb3NpdG9yeUdyb3VwKCk7CisgICAgICAgIGRl
bGV0ZSB1cGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5uYW1lOworICAgICAgICByZXR1cm4gTW9j
a0RhdGEuYWRkRW1wdHlUcmlnZ2VyYWJsZShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkg
PT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHVwZGF0ZSk7CisgICAg
ICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZSk7CisgICAg
ICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRvcnlHcm91cCcpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gdGhlIHJlcG9zaXRvcnkgbGlz
dCBpcyBub3Qgc3BlY2lmaWVkIGZvciBhIHJlcG9zaXRvcnkgZ3JvdXAnLCAoKSA9PiB7CisgICAg
ICAgIGNvbnN0IHVwZGF0ZSA9IHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKTsKKyAgICAg
ICAgZGVsZXRlIHVwZGF0ZS5yZXBvc2l0b3J5R3JvdXBzWzBdLnJlcG9zaXRvcmllczsKKyAgICAg
ICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUoVGVzdFNlcnZlci5kYXRhYmFz
ZSgpKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydCh1
cGRhdGUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1
cGRhdGUpOworICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBvc2l0b3J5R3JvdXAnKTsK
KyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIHRoZSBy
ZXBvc2l0b3J5IGxpc3Qgb2YgYSByZXBvc2l0b3J5IGdyb3VwIGlzIG5vdCBhbiBhcnJheScsICgp
ID0+IHsKKyAgICAgICAgY29uc3QgdXBkYXRlID0gdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91
cCgpOworICAgICAgICB1cGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3JpZXMgPSAn
aGknOworICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2VyYWJsZShUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZl
Rm9yUmVwb3J0KHVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIHVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJlcG9zaXRv
cnlHcm91cCcpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVqZWN0
IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGNvbnRhaW5zIGFuIGludmFsaWQgcmVwb3NpdG9yeSBp
ZCcsICgpID0+IHsKKyAgICAgICAgY29uc3QgdXBkYXRlID0gdXBkYXRlV2l0aE9TWFJlcG9zaXRv
cnlHcm91cCgpOworICAgICAgICB1cGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5yZXBvc2l0b3Jp
ZXNbMF0gPSA5OTk7CisgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRFbXB0eVRyaWdnZXJhYmxl
KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4g
YWRkU2xhdmVGb3JSZXBvcnQodXBkYXRlKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRh
dGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlKTsKKyAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlk
UmVwb3NpdG9yeScpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVq
ZWN0IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGNvbnRhaW5zIGEgZHVwbGljYXRlIHJlcG9zaXRv
cnkgaWQnLCAoKSA9PiB7CisgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHVwZGF0ZVdpdGhPU1hSZXBv
c2l0b3J5R3JvdXAoKTsKKyAgICAgICAgY29uc3QgZ3JvdXAgPSB1cGRhdGUucmVwb3NpdG9yeUdy
b3Vwc1swXTsKKyAgICAgICAgZ3JvdXAucmVwb3NpdG9yaWVzLnB1c2goZ3JvdXAucmVwb3NpdG9y
aWVzWzBdKTsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBhZGRT
bGF2ZUZvclJlcG9ydCh1cGRhdGUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCB1cGRhdGUpOworICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXBv
c2l0b3J5Jyk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBhZGQgYSBu
ZXcgcmVwb3NpdG9yeSBncm91cCB3aGVuIHRoZXJlIGFyZSBub25lJywgKCkgPT4geworICAgICAg
ICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgcmV0dXJuIE1vY2tE
YXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUoZGIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0
dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7Cisg
ICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhP
U1hSZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9ucycsICd0ZXN0JyksIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9y
eV9ncm91cHMnKV0pOworICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7CisKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdWyd0ZXN0J10sIE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF1b
J3BsYXRmb3JtJ10sIE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOworCisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1swXVsndHJpZ2dlcmFibGUn
XSwgTW9ja0RhdGEuZW1wdHlUcmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBpdCgnc2hvdWxkIG5vdCBhZGQgYSBkdXBsaWNhdGUgcmVwb3NpdG9yeSBncm91cCB3
aGVuIHRoZXJlIGlzIGEgZ3JvdXAgb2YgdGhlIHNhbWUgbmFtZScsICgpID0+IHsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGxldCBpbml0aWFsUmVz
dWx0OworICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2VyYWJsZShkYikudGhl
bigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQodXBkYXRlV2l0
aE9TWFJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7
CisgICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndGVz
dCcpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJyldKTsKKyAg
ICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBpbml0aWFsUmVzdWx0ID0g
cmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGVXaXRoT1NYUmVw
b3NpdG9yeUdyb3VwKCkpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
cycsICd0ZXN0JyksIGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMn
KV0pOworICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFtp
bml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxS
ZXN1bHQ7CisgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91
cHNdID0gcmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9u
cywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOworICAgICAgICB9KQor
ICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBub3QgYWRkIGEgZHVwbGljYXRlIHJlcG9zaXRvcnkg
Z3JvdXAgd2hlbiB0aGVyZSBpcyBhIGdyb3VwIG9mIHRoZSBzYW1lIG5hbWUnLCAoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBsZXQgaW5p
dGlhbFJlc3VsdDsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dlcmFibGUo
ZGIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHVw
ZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3Rh
dHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB1cGRhdGVXaXRoT1NYUmVwb3NpdG9yeUdy
b3VwKCkpOworICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4geworICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25z
JywgJ3Rlc3QnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vwcycp
XSk7CisgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICAgICAgaW5pdGlhbFJl
c3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgdXBkYXRlV2l0
aE9TWFJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbnMnLCAndGVzdCcpLCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlf
Z3JvdXBzJyldKTsKKyAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBj
b25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBp
bml0aWFsUmVzdWx0OworICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0
b3J5R3JvdXBzXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmln
dXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKKyAgICAg
ICAgfSkKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgdXBkYXRlIHRoZSBkZXNjcmlwdGlvbiBv
ZiBhIHJlcG9zaXRvcnkgZ3JvdXAgd2hlbiB0aGUgbmFtZSBtYXRjaGVzJywgKCkgPT4geworICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgaW5p
dGlhbFVwZGF0ZSA9IHVwZGF0ZVdpdGhPU1hSZXBvc2l0b3J5R3JvdXAoKTsKKyAgICAgICAgY29u
c3Qgc2Vjb25kVXBkYXRlID0gdXBkYXRlV2l0aE9TWFJlcG9zaXRvcnlHcm91cCgpOworICAgICAg
ICBzZWNvbmRVcGRhdGUucmVwb3NpdG9yeUdyb3Vwc1swXS5kZXNjcmlwdGlvbiA9ICd0aGlzIGdy
b3VwIGlzIGF3ZXNvbWUnOworICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2Vy
YWJsZShkYikudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBv
cnQoaW5pdGlhbFVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3Vw
ZGF0ZS10cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKKyAgICAgICAgfSkudGhlbigocmVz
cG9uc2UpID0+IGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnKSku
dGhlbigocmVwb3NpdG9yeUdyb3VwcykgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sIG51bGwpOworICAg
ICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVz
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBzZWNvbmRVcGRhdGUpOworICAgICAgICB9KS50
aGVuKCgpID0+IGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnKSku
dGhlbigocmVwb3NpdG9yeUdyb3VwcykgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBv
c2l0b3J5R3JvdXBzWzBdWyduYW1lJ10sICdzeXN0ZW0tb25seScpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ2Rlc2NyaXB0aW9uJ10sICd0aGlzIGdyb3Vw
IGlzIGF3ZXNvbWUnKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBmdW5jdGlvbiB1cGRh
dGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3VwcygpCisgICAgeworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzb21lU2xhdmUnLAorICAgICAgICAgICAgJ3Ns
YXZlUGFzc3dvcmQnOiAnc29tZVBhc3N3b3JkJywKKyAgICAgICAgICAgICd0cmlnZ2VyYWJsZSc6
ICdlbXB0eS10cmlnZ2VyYWJsZScsCisgICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCisg
ICAgICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Jl
cG9zaXRvcnlHcm91cHMnOiBbCisgICAgICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tb25seScs
IHJlcG9zaXRvcmllczogW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldfSwKKyAgICAgICAg
ICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Via2l0JywgcmVwb3NpdG9yaWVzOiBbTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCldfSwK
KyAgICAgICAgICAgIF0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtYXBSZXBv
c2l0b3JpZXNCeUdyb3VwKHJlcG9zaXRvcmllcykKKyAgICB7CisgICAgICAgIGNvbnN0IG1hcCA9
IHt9OworICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiByZXBvc2l0b3JpZXMpIHsKKyAgICAgICAg
ICAgIGNvbnN0IGdyb3VwSWQgPSByb3dbJ2dyb3VwJ107CisgICAgICAgICAgICBpZiAoIShncm91
cElkIGluIG1hcCkpCisgICAgICAgICAgICAgICAgbWFwW2dyb3VwSWRdID0gW107CisgICAgICAg
ICAgICBtYXBbZ3JvdXBJZF0ucHVzaChyb3dbJ3JlcG9zaXRvcnknXSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIG1hcDsKKyAgICB9CisKKyAgICBpdCgnc2hvdWxkIHJlcGxhY2UgYSByZXBv
c2l0b3J5IHdoZW4gdGhlIHJlcG9zaXRvcnkgZ3JvdXAgbmFtZSBtYXRjaGVzJywgKCkgPT4gewor
ICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3Qg
aW5pdGlhbFVwZGF0ZSA9IHVwZGF0ZVdpdGhNYWNXZWJLaXRSZXBvc2l0b3J5R3JvdXBzKCk7Cisg
ICAgICAgIGNvbnN0IHNlY29uZFVwZGF0ZSA9IHVwZGF0ZVdpdGhNYWNXZWJLaXRSZXBvc2l0b3J5
R3JvdXBzKCk7CisgICAgICAgIGxldCBpbml0aWFsR3JvdXBzOworICAgICAgICBzZWNvbmRVcGRh
dGUucmVwb3NpdG9yeUdyb3Vwc1sxXS5yZXBvc2l0b3JpZXNbMF0gPSBNb2NrRGF0YS5naXRXZWJr
aXRSZXBvc2l0b3J5SWQoKTsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZEVtcHR5VHJpZ2dl
cmFibGUoZGIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVw
b3J0KGluaXRpYWxVcGRhdGUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgaW5pdGlhbFVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2RiLnNlbGVjdEFs
bCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCAnbmFtZScpLCBkYi5zZWxlY3RBbGwo
J3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JyldKTsKKyAgICAgICAgfSku
dGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBjb25zdCBbcmVwb3NpdG9yeUdyb3Vwcywg
cmVwb3NpdG9yaWVzXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0
b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9y
eUdyb3Vwc1swXVsnbmFtZSddLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5l
bXB0eVRyaWdnZXJhZ2JsZUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRv
cnlHcm91cHNbMV1bJ25hbWUnXSwgJ3N5c3RlbS1vbmx5Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVwb3NpdG9yeUdyb3Vwc1sxXVsndHJpZ2dlcmFibGUnXSwgTW9ja0RhdGEuZW1wdHlU
cmlnZ2VyYWdibGVJZCgpKTsKKyAgICAgICAgICAgIGluaXRpYWxHcm91cHMgPSByZXBvc2l0b3J5
R3JvdXBzOworCisgICAgICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVw
b3NpdG9yaWVzQnlHcm91cChyZXBvc2l0b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE9iamVjdC5rZXlzKHJlcG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbcmVwb3NpdG9yeUdyb3Vwc1sw
XVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3Jp
ZXNCeUdyb3VwW3JlcG9zaXRvcnlHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBv
c2l0b3J5SWQoKV0pOworCisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVw
ZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25h
bWUnKSwgZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9y
eScpXSk7CisgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICAgICAgY29uc3Qg
W3JlcG9zaXRvcnlHcm91cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxHcm91cHMpOworCisgICAg
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXNCeUdyb3VwID0gbWFwUmVwb3NpdG9yaWVzQnlHcm91
cChyZXBvc2l0b3JpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE9iamVjdC5rZXlzKHJl
cG9zaXRvcmllc0J5R3JvdXApLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcG9zaXRvcmllc0J5R3JvdXBbaW5pdGlhbEdyb3Vwc1swXVsnaWQnXV0sIFtNb2NrRGF0
YS5tYWNvc1JlcG9zaXRvcnlJZCgpLCBNb2NrRGF0YS5naXRXZWJraXRSZXBvc2l0b3J5SWQoKV0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXBvc2l0b3JpZXNCeUdyb3VwW2luaXRp
YWxHcm91cHNbMV1bJ2lkJ11dLCBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKV0pOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVwbGFjZSBhIHJlcG9zaXRvcnkg
d2hlbiB0aGUgbGlzdCBvZiByZXBvc2l0b3JpZXMgbWF0Y2hlcycsICgpID0+IHsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGluaXRpYWxV
cGRhdGUgPSB1cGRhdGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3VwcygpOworICAgICAgICBj
b25zdCBzZWNvbmRVcGRhdGUgPSB1cGRhdGVXaXRoTWFjV2ViS2l0UmVwb3NpdG9yeUdyb3Vwcygp
OworICAgICAgICBsZXQgaW5pdGlhbEdyb3VwczsKKyAgICAgICAgbGV0IGluaXRpYWxSZXBvc2l0
b3JpZXM7CisgICAgICAgIHNlY29uZFVwZGF0ZS5yZXBvc2l0b3J5R3JvdXBzWzBdLm5hbWUgPSAn
bWFjLW9ubHknOworICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkRW1wdHlUcmlnZ2VyYWJsZShk
YikudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoaW5p
dGlhbFVwZGF0ZSk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10
cmlnZ2VyYWJsZS8nLCBpbml0aWFsVXBkYXRlKTsKKyAgICAgICAgfSkudGhlbigocmVzcG9uc2Up
ID0+IHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbZGIuc2VsZWN0QWxsKCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsICduYW1lJyksIGRiLnNlbGVjdEFsbCgndHJpZ2dl
cmFibGVfcmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknKV0pOworICAgICAgICB9KS50aGVuKChy
ZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFtyZXBvc2l0b3J5R3JvdXBzLCByZXBvc2l0
b3JpZXNdID0gcmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91
cHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzBdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcG9zaXRvcnlHcm91cHNbMF1bJ3RyaWdnZXJhYmxlJ10sIE1vY2tEYXRhLmVtcHR5VHJp
Z2dlcmFnYmxlSWQoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3Vw
c1sxXVsnbmFtZSddLCAnc3lzdGVtLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzWzFdWyd0cmlnZ2VyYWJsZSddLCBNb2NrRGF0YS5lbXB0eVRyaWdnZXJh
Z2JsZUlkKCkpOworICAgICAgICAgICAgaW5pdGlhbEdyb3VwcyA9IHJlcG9zaXRvcnlHcm91cHM7
CisKKyAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllc0J5R3JvdXAgPSBtYXBSZXBvc2l0b3Jp
ZXNCeUdyb3VwKHJlcG9zaXRvcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoT2JqZWN0
LmtleXMocmVwb3NpdG9yaWVzQnlHcm91cCkubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVwb3NpdG9yaWVzQnlHcm91cFtyZXBvc2l0b3J5R3JvdXBzWzBdWydpZCdd
XSwgW01vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCksIE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcG9zaXRvcmllc0J5R3Jv
dXBbcmVwb3NpdG9yeUdyb3Vwc1sxXVsnaWQnXV0sIFtNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJ
ZCgpXSk7CisgICAgICAgICAgICBpbml0aWFsUmVwb3NpdG9yaWVzID0gcmVwb3NpdG9yaWVzOwor
CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHNlY29uZFVwZGF0ZSk7CisgICAgICAg
IH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtkYi5zZWxl
Y3RBbGwoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywgJ25hbWUnKSwgZGIuc2VsZWN0
QWxsKCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScpXSk7CisgICAgICAg
IH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICAgICAgY29uc3QgW3JlcG9zaXRvcnlHcm91
cHMsIHJlcG9zaXRvcmllc10gPSByZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXBzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVw
b3NpdG9yeUdyb3Vwc1swXVsnbmFtZSddLCAnbWFjLW9ubHknKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXBvc2l0b3J5R3JvdXBzWzBdWyd0cmlnZ2VyYWJsZSddLCBpbml0aWFsR3JvdXBz
WzFdWyd0cmlnZ2VyYWJsZSddKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5
R3JvdXBzWzFdWyduYW1lJ10sICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV1bJ3RyaWdnZXJhYmxlJ10sIGluaXRpYWxHcm91
cHNbMF1bJ3RyaWdnZXJhYmxlJ10pOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
cG9zaXRvcmllcywgaW5pdGlhbFJlcG9zaXRvcmllcyk7CisgICAgICAgIH0pOworICAgIH0pOwor
CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3Vw
LXRlc3RzLmpzCmluZGV4IDQxNDg2ZjMzNWVkMzE5YjczNjc3OTY1Yjk2ZTE0MmY0MTU1NDU1YjAu
LmEyMmVhZjY5NTA3NDg3YjRkMzBmY2Y2ZWYyMGRlNGRlNTFlMDk4MDcgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRl
LXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMTAw
LDYgKzEwMCwxMCBAQCBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2sobmFtZSkK
ICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwogICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRh
LnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9CiAgICAg
ICAgIF0sCisgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWworICAgICAgICAgICAge25hbWU6
ICd3ZWJraXQtb25seScsIHJlcG9zaXRvcmllczogW01vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJ
ZCgpXX0sCisgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Via2l0JywgcmVwb3NpdG9y
aWVzOiBbTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKSwgTW9ja0RhdGEud2Via2l0UmVwb3Np
dG9yeUlkKCldfSwKKyAgICAgICAgXQogICAgIH07CiAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1v
Y2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUZvclJlcG9ydChyZXBvcnQpOwpAQCAtMjgxLDcgKzI4NSw3IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAg
aXQoJ3Nob3VsZCBjcmVhdGUgYSB0ZXN0IGdyb3VwIGZyb20gY29tbWl0U2V0cyB3aXRoIHRoZSBy
ZXBldGl0aW9uIGNvdW50IG9mIG9uZSB3aGVuIHJlcGV0aXRpb25Db3VudCBpcyBvbWl0dGVkJywg
KCkgPT4gewogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21l
IHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3Vw
SWQ7Ci0gICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIGNvbW1pdFNldHM6IHsn
V2ViS2l0JzogWycxOTE2MjInLCAnMTkxNjIzJ119fSkudGhlbigoY29udGVudCkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFzazogdGFza0lkLCBjb21taXRTZXRzOiB7J21hY09TJzog
WycxNUEyODQnLCAnMTVBMjg0J10sICdXZWJLaXQnOiBbJzE5MTYyMicsICcxOTE2MjMnXX19KS50
aGVuKChjb250ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29u
dGVudFsndGVzdEdyb3VwSWQnXTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoQnlUYXNrKHRhc2tJZCk7CiAgICAgICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7
CkBAIC0yOTEsMTggKzI5NSwzMSBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChn
cm91cC5yZXBldGl0aW9uQ291bnQoKSwgMSk7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBncm91cC5idWlsZFJlcXVlc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09
ICdXZWJLaXQnKVswXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzBdLmNvbW1pdFNldCgpLnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sxXS5jb21taXRTZXQoKS5yZXBvc2l0b3JpZXMo
KSwgW3dlYmtpdF0pOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5j
b21taXRTZXQoKS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5jb21taXRTZXQoKS5yZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOworCisgICAgICAgICAgICAgICAgY29u
c3QgbWFjb3MgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlk
KCkpOworICAgICAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQo
TW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDAgPSByZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBzZXQx
ID0gcmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBv
c2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MS5y
ZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KG1hY29zKSwgJzE1QTI4NCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzZXQxLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisK
KyAgICAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXAgPSByZXF1ZXN0c1swXS5yZXBv
c2l0b3J5R3JvdXAoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdy
b3VwLm5hbWUoKSwgJ3N5c3RlbS1hbmQtd2Via2l0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzFdLnJlcG9zaXRvcnlHcm91cCgpLCByZXBvc2l0b3J5R3JvdXApOwor
ICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDEpKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGl0KCdzaG91bGQgY3Jl
YXRlIGEgdGVzdCBncm91cCBmcm9tIHJldmlzaW9uU2V0cyB3aXRoIHRoZSByZXBldGl0aW9uIGNv
dW50IG9mIG9uZSB3aGVuIHJlcGV0aXRpb25Db3VudCBpcyBvbWl0dGVkJywgKCkgPT4geworICAg
ICAgICBsZXQgd2Via2l0OwogICAgICAgICByZXR1cm4gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVU
YXNrKCdzb21lIHRhc2snKS50aGVuKCh0YXNrSWQpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmluZCgocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5u
YW1lKCkgPT0gJ1dlYktpdCcpOworICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CiAgICAgICAgICAgICBj
b25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rlc3QnLCB0YXNrOiB0YXNrSWQsIHJldmlzaW9uU2V0czog
W3tbd2Via2l0LmlkKCldOiAnMTkxNjIyJ30sIHtbd2Via2l0LmlkKCldOiAnMTkxNjIzJ31dfTsK
ICAgICAgICAgICAgIGxldCBpbnNlcnRlZEdyb3VwSWQ7CiAgICAgICAgICAgICByZXR1cm4gUHJp
dmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCBwYXJhbXMpLnRoZW4o
KGNvbnRlbnQpID0+IHsKQEAgLTMxNSwxMSArMzMyLDE5IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdyb3VwLnJlcGV0aXRpb25Db3VudCgpLCAxKTsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBjb25z
dCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3Np
dG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbMF0uY29tbWl0U2V0KCkucmVwb3NpdG9yaWVzKCksIFt3ZWJraXRdKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzFdLmNvbW1pdFNldCgp
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLmNvbW1p
dFNldCgpLnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CisKKyAgICAg
ICAgICAgICAgICBjb25zdCBzZXQwID0gcmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7CisgICAgICAg
ICAgICAgICAgY29uc3Qgc2V0MSA9IHJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MC5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdF0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc2V0MS5yZXBvc2l0b3JpZXMoKSwgW3dl
YmtpdF0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQwLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKworICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cCA9IHJlcXVlc3RzWzBdLnJlcG9zaXRvcnlH
cm91cCgpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAubmFt
ZSgpLCAnd2Via2l0LW9ubHknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3Np
dG9yeUdyb3VwLCByZXF1ZXN0c1sxXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cC5hY2NlcHRzKHNldDApKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQocmVwb3NpdG9yeUdyb3VwLmFjY2VwdHMoc2V0MSkpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzQwLDE3ICszNjUsNzAgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAg
ICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4g
cmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwogICAgICAgICAgICAgICAgIGNvbnN0
IG1hY29zID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRv
cnkubmFtZSgpID09ICdtYWNPUycpWzBdOwotICAgICAgICAgICAgICAgIGNvbnN0IHNldDEgPSBy
ZXF1ZXN0c1swXS5jb21taXRTZXQoKTsKLSAgICAgICAgICAgICAgICBjb25zdCBzZXQyID0gcmVx
dWVzdHNbMV0uY29tbWl0U2V0KCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzJdLmNvbW1pdFNldCgpLCBzZXQxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10uY29tbWl0U2V0KCksIHNldDIpOworCisgICAgICAgICAgICAgICAgY29uc3Qg
c2V0MCA9IHJlcXVlc3RzWzBdLmNvbW1pdFNldCgpOworICAgICAgICAgICAgICAgIGNvbnN0IHNl
dDEgPSByZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMl0uY29tbWl0U2V0KCksIHNldDApOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1szXS5jb21taXRTZXQoKSwgc2V0MSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhV
Ukwoc2V0MC5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dp
dGhVUkwoc2V0MS5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25l
c1dpdGhVUkwoc2V0Mi5yZXBvc2l0b3JpZXMoKSksIFt3ZWJraXQsIG1hY29zXSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCks
ICcxOTE2MjInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzZXQwLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQxLnJldmlzaW9u
Rm9yUmVwb3NpdG9yeShtYWNvcyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc2V0Mi5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzZXQyLnJldmlzaW9uRm9yUmVwb3NpdG9yeShtYWNv
cyksICcxNUEyODQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MS5jb21taXRG
b3JSZXBvc2l0b3J5KG1hY29zKSwgc2V0Mi5jb21taXRGb3JSZXBvc2l0b3J5KG1hY29zKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDAuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNv
cyksIHNldDEuY29tbWl0Rm9yUmVwb3NpdG9yeShtYWNvcykpOworCisgICAgICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeUdyb3VwID0gcmVxdWVzdHNbMF0ucmVwb3NpdG9yeUdyb3VwKCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cC5uYW1lKCksICdzeXN0
ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS5yZXBvc2l0b3J5R3JvdXAoKSwgcmVwb3NpdG9yeUdyb3VwKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ucmVwb3NpdG9yeUdyb3VwKCksIHJlcG9zaXRvcnlHcm91
cCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlH
cm91cCgpLCByZXBvc2l0b3J5R3JvdXApOworICAgICAgICAgICAgICAgIGFzc2VydChyZXBvc2l0
b3J5R3JvdXAuYWNjZXB0cyhzZXQwKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHJlcG9zaXRv
cnlHcm91cC5hY2NlcHRzKHNldDEpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9KTsKKworICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgdGVzdCBncm91cCB1c2luZyBkaWZmZXJl
bnQgcmVwb3NpdG9yeSBncm91cHMgaWYgbmVlZGVkJywgKCkgPT4geworICAgICAgICBsZXQgd2Vi
a2l0OworICAgICAgICBsZXQgbWFjb3M7CisgICAgICAgIHJldHVybiBhZGRUcmlnZ2VyYWJsZUFu
ZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpLnRoZW4oKHRhc2tJZCkgPT4geworICAgICAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CisgICAgICAgICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEubWFj
b3NSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7bmFtZTogJ3Rl
c3QnLCB0YXNrOiB0YXNrSWQsIHJlcGV0aXRpb25Db3VudDogMiwKKyAgICAgICAgICAgICAgICBy
ZXZpc2lvblNldHM6IFt7W21hY29zLmlkKCldOiAnMTVBMjg0JywgW3dlYmtpdC5pZCgpXTogJzE5
MTYyMid9LCB7W3dlYmtpdC5pZCgpXTogJzE5MTYyMyd9XX07CisgICAgICAgICAgICBsZXQgaW5z
ZXJ0ZWRHcm91cElkOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVl
c3QoJ2NyZWF0ZS10ZXN0LWdyb3VwJywgcGFyYW1zKS50aGVuKChjb250ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgaW5zZXJ0ZWRHcm91cElkID0gY29udGVudFsndGVzdEdyb3VwSWQnXTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoQnlUYXNrKHRhc2tJZCk7CisgICAg
ICAgICAgICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBjb25zdCBncm91
cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3VwLmlk
KCksIGluc2VydGVkR3JvdXBJZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vw
LnJlcGV0aXRpb25Db3VudCgpLCAyKTsKKyAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IGdyb3VwLmJ1aWxkUmVxdWVzdHMoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKKworICAgICAgICAgICAgICAgIGNvbnN0IHNldDAgPSByZXF1ZXN0
c1swXS5jb21taXRTZXQoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBzZXQxID0gcmVxdWVzdHNb
MV0uY29tbWl0U2V0KCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChSZXBvc2l0
b3J5LnNvcnRCeU5hbWVQcmVmZXJyaW5nT25lc1dpdGhVUkwoc2V0MC5yZXBvc2l0b3JpZXMoKSks
IFt3ZWJraXQsIG1hY29zXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzZXQx
LnJlcG9zaXRvcmllcygpLCBbd2Via2l0XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHNldDAucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc2V0MC5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCAn
MTVBMjg0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNldDEucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkobWFjb3MpLCBudWxsKTsKKworICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cDAgPSByZXF1ZXN0c1swXS5yZXBvc2l0b3J5R3Jv
dXAoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVwb3NpdG9yeUdyb3VwMC5uYW1l
KCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXBvc2l0b3J5R3JvdXAwLCByZXF1ZXN0c1syXS5yZXBvc2l0b3J5R3JvdXAoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDAuYWNjZXB0cyhzZXQwKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0KCFyZXBvc2l0b3J5R3JvdXAwLmFjY2VwdHMoc2V0MSkpOworCisgICAg
ICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwMSA9IHJlcXVlc3RzWzFdLnJlcG9zaXRv
cnlHcm91cCgpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXAx
Lm5hbWUoKSwgJ3dlYmtpdC1vbmx5Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cG9zaXRvcnlHcm91cDEsIHJlcXVlc3RzWzNdLnJlcG9zaXRvcnlHcm91cCgpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQoIXJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQwKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0KHJlcG9zaXRvcnlHcm91cDEuYWNjZXB0cyhzZXQxKSk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKaW5k
ZXggMGUyNGYwZmEyZmU5OTBmODk2NDc2NjI3NzMzMmJmMzhiZTNiMGU4ZC4uOTFiYjM5NjMwYTZj
ZWYzZGFmZTAxMGY3MzY1ODIwMWU0MmYwNzYzMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwpA
QCAtMTYsMjEgKzE2LDI5IEBAIE1vY2tEYXRhID0gewogICAgICAgICBUZXN0LmNsZWFyU3RhdGlj
TWFwKCk7CiAgICAgICAgIFRlc3RHcm91cC5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBUcmln
Z2VyYWJsZS5jbGVhclN0YXRpY01hcCgpOworICAgICAgICBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cC5jbGVhclN0YXRpY01hcCgpOwogICAgIH0sCisgICAgZW1wdHlUcmlnZ2VyYWdibGVJZCgp
IHsgcmV0dXJuIDEwMDE7IH0sCiAgICAgc29tZVRlc3RJZCgpIHsgcmV0dXJuIDIwMDsgfSwKICAg
ICBzb21lUGxhdGZvcm1JZCgpIHsgcmV0dXJuIDY1OyB9LAorICAgIG1hY29zUmVwb3NpdG9yeUlk
KCkgeyByZXR1cm4gOTsgfSwKKyAgICB3ZWJraXRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxMTsg
fSwKKyAgICBnaXRXZWJraXRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxMTE7IH0sCiAgICAgYWRk
TW9ja0RhdGE6IGZ1bmN0aW9uIChkYiwgc3RhdHVzTGlzdCkKICAgICB7CiAgICAgICAgIGlmICgh
c3RhdHVzTGlzdCkKICAgICAgICAgICAgIHN0YXR1c0xpc3QgPSBbJ3BlbmRpbmcnLCAncGVuZGlu
ZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXTsKICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsK
LSAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxLCBuYW1l
OiAnYnVpbGQtd2Via2l0J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2Vy
YWJsZXMnLCB7aWQ6IDEwMDAsIG5hbWU6ICdidWlsZC13ZWJraXQnfSksCiAgICAgICAgICAgICBk
Yi5pbnNlcnQoJ2J1aWxkX3NsYXZlcycsIHtpZDogMjAsIG5hbWU6ICdzeW5jLXNsYXZlJywgcGFz
c3dvcmRfaGFzaDogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSgncGFzc3dvcmQn
KS5kaWdlc3QoJ2hleCcpfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycs
IHtpZDogOSwgbmFtZTogJ09TIFgnfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRv
cmllcycsIHtpZDogMTEsIG5hbWU6ICdXZWJLaXQnfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQo
J2NvbW1pdHMnLCB7aWQ6IDg3ODMyLCByZXBvc2l0b3J5OiA5LCByZXZpc2lvbjogJzEwLjExIDE1
QTI4NCd9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogOTMxMTYsIHJl
cG9zaXRvcnk6IDExLCByZXZpc2lvbjogJzE5MTYyMicsIHRpbWU6IChuZXcgRGF0ZSgxNDQ1OTQ1
ODE2ODc4KSkudG9JU09TdHJpbmcoKX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRz
Jywge2lkOiA5NjMzNiwgcmVwb3NpdG9yeTogMTEsIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTog
KG5ldyBEYXRlKDE0NDgyMjUzMjU2NTApKS50b0lTT1N0cmluZygpfSksCisgICAgICAgICAgICBk
Yi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHtpZDogdGhpcy5tYWNvc1JlcG9zaXRvcnlJZCgpLCBu
YW1lOiAnbWFjT1MnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHtp
ZDogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ1dlYktpdCd9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIwMDEs
IG5hbWU6ICd3ZWJraXQtc3ZuJywgdHJpZ2dlcmFibGU6IDEwMDB9KSwKKyAgICAgICAgICAgIGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHRoaXMubWFj
b3NSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHRoaXMud2Via2l0UmVwb3Np
dG9yeUlkKCksIGdyb3VwOiAyMDAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMn
LCB7aWQ6IDg3ODMyLCByZXBvc2l0b3J5OiB0aGlzLm1hY29zUmVwb3NpdG9yeUlkKCksIHJldmlz
aW9uOiAnMTAuMTEgMTVBMjg0J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywg
e2lkOiA5MzExNiwgcmVwb3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgcmV2aXNp
b246ICcxOTE2MjInLCB0aW1lOiAobmV3IERhdGUoMTQ0NTk0NTgxNjg3OCkpLnRvSVNPU3RyaW5n
KCl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogOTYzMzYsIHJlcG9z
aXRvcnk6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCksIHJldmlzaW9uOiAnMTkyNzM2JywgdGlt
ZTogKG5ldyBEYXRlKDE0NDgyMjUzMjU2NTApKS50b0lTT1N0cmluZygpfSksCiAgICAgICAgICAg
ICBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwg
bmFtZTogJ3NvbWUgcGxhdGZvcm0nfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RzJywg
e2lkOiBNb2NrRGF0YS5zb21lVGVzdElkKCksIG5hbWU6ICdzb21lIHRlc3QnfSksCiAgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3Rlc3RfbWV0cmljcycsIHtpZDogMzAwLCB0ZXN0OiAyMDAsIG5hbWU6
ICdzb21lIG1ldHJpYyd9KSwKQEAgLTQzLDIyICs1MSw1OSBAQCBNb2NrRGF0YSA9IHsKICAgICAg
ICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9yZWxhdGlvbnNoaXBzJywge3NldDogNDAyLCBj
b21taXQ6IDk2MzM2fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywg
e2lkOiA1MDAsIHBsYXRmb3JtOiA2NSwgbWV0cmljOiAzMDAsIG5hbWU6ICdzb21lIHRhc2snfSks
CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA2MDAs
IHRhc2s6IDUwMCwgbmFtZTogJ3NvbWUgdGVzdCBncm91cCd9KSwKLSAgICAgICAgICAgIGRiLmlu
c2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0
cmlnZ2VyYWJsZTogMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVy
OiAwLCBjb21taXRfc2V0OiA0MDF9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVx
dWVzdHMnLCB7aWQ6IDcwMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB0cmlnZ2VyYWJsZTogMSwg
cGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAxLCBjb21taXRfc2V0
OiA0MDJ9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcw
Miwgc3RhdHVzOiBzdGF0dXNMaXN0WzJdLCB0cmlnZ2VyYWJsZTogMSwgcGxhdGZvcm06IDY1LCB0
ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAyLCBjb21taXRfc2V0OiA0MDF9KSwKLSAgICAg
ICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMywgc3RhdHVzOiBzdGF0
dXNMaXN0WzNdLCB0cmlnZ2VyYWJsZTogMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3Vw
OiA2MDAsIG9yZGVyOiAzLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAwLCBjb21taXRfc2V0OiA0MDF9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMSwgc3RhdHVzOiBzdGF0dXNM
aXN0WzFdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZv
cm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDJ9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMiwgc3Rh
dHVzOiBzdGF0dXNMaXN0WzJdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDog
MjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAyLCBjb21t
aXRfc2V0OiA0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7
aWQ6IDcwMywgc3RhdHVzOiBzdGF0dXNMaXN0WzNdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3Np
dG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9y
ZGVyOiAzLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAgICAgXSk7CisgICAgfSwKKyAgICBhZGRF
bXB0eVRyaWdnZXJhYmxlKGRiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiB0aGlzLmVt
cHR5VHJpZ2dlcmFnYmxlSWQoKSwgbmFtZTogJ2VtcHR5LXRyaWdnZXJhYmxlJ30pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHRoaXMubWFjb3NSZXBvc2l0b3J5
SWQoKSwgbmFtZTogJ21hY09TJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3Jp
ZXMnLCB7aWQ6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCksIG5hbWU6ICdXZWJLaXQnfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHtpZDogdGhpcy5naXRXZWJraXRS
ZXBvc2l0b3J5SWQoKSwgbmFtZTogJ0dpdC1XZWJLaXQnfSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ3BsYXRmb3JtcycsIHtpZDogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgbmFtZTogJ3Nv
bWUgcGxhdGZvcm0nfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RzJywge2lkOiBNb2Nr
RGF0YS5zb21lVGVzdElkKCksIG5hbWU6ICdzb21lIHRlc3QnfSksCisgICAgICAgIF0pOworICAg
IH0sCisgICAgYWRkTW9ja1Rlc3RHcm91cFdpdGhHaXRXZWJLaXQoZGIpCisgICAgeworICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3Jp
ZXMnLCB7aWQ6IHRoaXMuZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCksIG5hbWU6ICdHaXQtV2ViS2l0
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vw
cycsIHtpZDogMjAwMiwgbmFtZTogJ3dlYmtpdC1naXQnLCB0cmlnZ2VyYWJsZTogMTAwMH0pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3Np
dG9yeTogdGhpcy5tYWNvc1JlcG9zaXRvcnlJZCgpLCBncm91cDogMjAwMn0pLAorICAgICAgICAg
ICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogdGhp
cy5naXRXZWJraXRSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDJ9KSwKKyAgICAgICAgICAgIGRi
Lmluc2VydCgnY29tbWl0cycsIHtpZDogMTkzMTE2LCByZXBvc2l0b3J5OiB0aGlzLmdpdFdlYmtp
dFJlcG9zaXRvcnlJZCgpLCByZXZpc2lvbjogJzJjZWRhNDVkM2NkNjNjZGU1OGQwZGJmNTc2Nzcx
NGUwM2Q5MDJlNDMnLCB0aW1lOiAobmV3IERhdGUoMTQ0NTk0NTgxNjg3OCkpLnRvSVNPU3RyaW5n
KCl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogMTk2MzM2LCByZXBv
c2l0b3J5OiB0aGlzLmdpdFdlYmtpdFJlcG9zaXRvcnlJZCgpLCByZXZpc2lvbjogJzhlMjk0MzY1
YTQ1MmE4OTc4NWQ2NTM2Y2E3ZjBmYzhhOTVmYTE1MmQnLCB0aW1lOiAobmV3IERhdGUoMTQ0ODIy
NTMyNTY1MCkpLnRvSVNPU3RyaW5nKCl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0
X3NldHMnLCB7aWQ6IDE0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9y
ZWxhdGlvbnNoaXBzJywge3NldDogMTQwMSwgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRfc2V0X3JlbGF0aW9uc2hpcHMnLCB7c2V0OiAxNDAxLCBjb21taXQ6
IDE5MzExNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogMTQw
Mn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X3JlbGF0aW9uc2hpcHMnLCB7
c2V0OiAxNDAyLCBjb21taXQ6IDg3ODMyfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dF9zZXRfcmVsYXRpb25zaGlwcycsIHtzZXQ6IDE0MDIsIGNvbW1pdDogMTk2MzM2fSksCisgICAg
ICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiAxNjAwLCB0YXNr
OiA1MDAsIG5hbWU6ICd0ZXN0IGdyb3VwIHdpdGggZ2l0J30pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogMTcwMCwgc3RhdHVzOiAncGVuZGluZycsIHRyaWdn
ZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAyLCBwbGF0Zm9ybTogNjUsIHRlc3Q6
IDIwMCwgZ3JvdXA6IDE2MDAsIG9yZGVyOiAwLCBjb21taXRfc2V0OiAxNDAxfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiAxNzAxLCBzdGF0dXM6ICdwZW5k
aW5nJywgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDIsIHBsYXRmb3Jt
OiA2NSwgdGVzdDogMjAwLCBncm91cDogMTYwMCwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDE0MDJ9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDE3MDIsIHN0
YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAw
MiwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiAxNjAwLCBvcmRlcjogMiwgY29tbWl0
X3NldDogMTQwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtp
ZDogMTcwMywgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5
X2dyb3VwOiAyMDAyLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDE2MDAsIG9yZGVy
OiAzLCBjb21taXRfc2V0OiAxNDAyfSksCiAgICAgICAgIF0pOwogICAgIH0sCiAgICAgYWRkQW5v
dGhlck1vY2tUZXN0R3JvdXA6IGZ1bmN0aW9uIChkYiwgc3RhdHVzTGlzdCwgYXV0aG9yKQogICAg
IHsKICAgICAgICAgaWYgKCFzdGF0dXNMaXN0KQogICAgICAgICAgICAgc3RhdHVzTGlzdCA9IFsn
cGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddOworICAgICAgICBjb25z
dCB0ZXN0ID0gTW9ja0RhdGEuc29tZVRlc3RJZCgpOworICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IDEwMDA7CisgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gNjU7CisgICAgICAgIGNvbnN0IHJl
cG9zaXRvcnlfZ3JvdXAgPSAyMDAxOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDogNjAxLCB0YXNr
OiA1MDAsIG5hbWU6ICdhbm90aGVyIHRlc3QgZ3JvdXAnLCBhdXRob3I6IGF1dGhvcn0pLAotICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzEzLCBzdGF0dXM6IHN0
YXR1c0xpc3RbM10sIHRyaWdnZXJhYmxlOiAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3Jv
dXA6IDYwMSwgb3JkZXI6IDMsIGNvbW1pdF9zZXQ6IDQwMn0pLAotICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzEwLCBzdGF0dXM6IHN0YXR1c0xpc3RbMF0sIHRy
aWdnZXJhYmxlOiAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMSwgb3JkZXI6
IDAsIGNvbW1pdF9zZXQ6IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1
ZXN0cycsIHtpZDogNzEyLCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAxLCBw
bGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMSwgb3JkZXI6IDIsIGNvbW1pdF9zZXQ6
IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzEx
LCBzdGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxLCBwbGF0Zm9ybTogNjUsIHRl
c3Q6IDIwMCwgZ3JvdXA6IDYwMSwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDQwMn0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDogNjAxLCB0YXNrOiA1
MDAsIG5hbWU6ICdhbm90aGVyIHRlc3QgZ3JvdXAnLCBhdXRob3J9KSwKKyAgICAgICAgICAgIGRi
Lmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcxMywgc3RhdHVzOiBzdGF0dXNMaXN0WzNd
LCB0cmlnZ2VyYWJsZSwgcmVwb3NpdG9yeV9ncm91cCwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwOiA2
MDEsIG9yZGVyOiAzLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgn
YnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcxMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0cmlnZ2Vy
YWJsZSwgcmVwb3NpdG9yeV9ncm91cCwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwOiA2MDEsIG9yZGVy
OiAwLCBjb21taXRfc2V0OiA0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVx
dWVzdHMnLCB7aWQ6IDcxMiwgc3RhdHVzOiBzdGF0dXNMaXN0WzJdLCB0cmlnZ2VyYWJsZSwgcmVw
b3NpdG9yeV9ncm91cCwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwOiA2MDEsIG9yZGVyOiAyLCBjb21t
aXRfc2V0OiA0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7
aWQ6IDcxMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB0cmlnZ2VyYWJsZSwgcmVwb3NpdG9yeV9n
cm91cCwgcGxhdGZvcm0sIHRlc3QsIGdyb3VwOiA2MDEsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0
MDJ9KSwKICAgICAgICAgXSk7CiAgICAgfSwKICAgICBtb2NrVGVzdFN5bmNDb25maWdXaXRoU2lu
Z2xlQnVpbGRlcjogZnVuY3Rpb24gKCkKQEAgLTY2LDE2ICsxMTEsMjEgQEAgTW9ja0RhdGEgPSB7
CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1aWxk
LXdlYmtpdCcsCiAgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAgICAn
YnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGQtcmVxdWVzdC1pZCcsCisgICAgICAgICAgICAn
cmVwb3NpdG9yeUdyb3Vwcyc6IHsKKyAgICAgICAgICAgICAgICAnd2Via2l0LXN2bic6IHsKKyAg
ICAgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0JywgJ21hY09TJ10sCisg
ICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogeworICAgICAgICAgICAgICAgICAgICAg
ICAgJ29zJzogJzxtYWNPUz4nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3drJzogJzxXZWJL
aXQ+JywKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCiAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnc29tZSBwbGF0Zm9ybScsCiAgICAg
ICAgICAgICAgICAgICAgICd0ZXN0JzogWydzb21lIHRlc3QnXSwKICAgICAgICAgICAgICAgICAg
ICAgJ2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnLAotICAgICAgICAgICAgICAgICAgICAnYXJn
dW1lbnRzJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ3drJzogeydyb290JzogJ1dlYktp
dCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ29zJzogeydyb290JzogJ09TIFgnfSwKLSAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdEFy
Z3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIF0KICAgICAgICAgfQpAQCAtODUsMjYgKzEzNSwyNiBAQCBNb2NrRGF0YSA9IHsKICAgICAg
ICAgcmV0dXJuIHsKICAgICAgICAgICAgICd0cmlnZ2VyYWJsZU5hbWUnOiAnYnVpbGQtd2Via2l0
JywKICAgICAgICAgICAgICdsb29rYmFja0NvdW50JzogMiwKKyAgICAgICAgICAgICdidWlsZFJl
cXVlc3RBcmd1bWVudCc6ICdidWlsZC1yZXF1ZXN0LWlkJywKKyAgICAgICAgICAgICdyZXBvc2l0
b3J5R3JvdXBzJzogeworICAgICAgICAgICAgICAgICd3ZWJraXQtc3ZuJzogeworICAgICAgICAg
ICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogWydXZWJLaXQnLCAnbWFjT1MnXSwKKyAgICAgICAg
ICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3Mn
OiAnPG1hY09TPicsCisgICAgICAgICAgICAgICAgICAgICAgICAnd2snOiAnPFdlYktpdD4nLAor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdzb21lIHBsYXRmb3JtJywKICAgICAgICAgICAg
ICAgICAgICAgJ3Rlc3QnOiBbJ3NvbWUgdGVzdCddLAogICAgICAgICAgICAgICAgICAgICAnYnVp
bGRlcic6ICdzb21lLWJ1aWxkZXItMScsCi0gICAgICAgICAgICAgICAgICAgICdhcmd1bWVudHMn
OiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnd2snOiB7J3Jvb3QnOiAnV2ViS2l0J30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3Jvb3QnOiAnT1MgWCd9LAotICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQn
OiAnYnVpbGQtcmVxdWVzdC1pZCcsCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdzb21lIHBsYXRmb3JtJywKICAg
ICAgICAgICAgICAgICAgICAgJ3Rlc3QnOiBbJ3NvbWUgdGVzdCddLAogICAgICAgICAgICAgICAg
ICAgICAnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIgMicsCi0gICAgICAgICAgICAgICAgICAgICdh
cmd1bWVudHMnOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnd2snOiB7J3Jvb3QnOiAnV2Vi
S2l0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3Jvb3QnOiAnT1MgWCd9LAot
ICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0
QXJndW1lbnQnOiAnYnVpbGQtcmVxdWVzdC1pZCcsCiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgXQogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwppbmRleCA4MTRiOWFhNzE2Yzc2NWZjOTc2NDBlOWJjNzUwN2E5ODEzNWYxNzQ1
Li42NmYwODZiNDIyMDM5ZDBkM2YyM2QxYTQ3OTlhYzVkYWY5NzkzZGVjIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTkxNywzNSArOTE3LDUz
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgIH0p
OwogCiAgICAgZGVzY3JpYmUoJ3VwZGF0ZVRyaWdnZXJhYmxlcycsICgpID0+IHsKKworICAgICAg
ICBmdW5jdGlvbiByZWZldGNoTWFuaWZlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBNb2Nr
RGF0YS5yZXNldFYzTW9kZWxzKCk7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0JykudGhlbigoY29udGVudCkgPT4gTWFuaWZl
c3QuX2RpZEZldGNoTWFuaWZlc3QoY29udGVudCkpOworICAgICAgICB9CisKICAgICAgICAgaXQo
J3Nob3VsZCB1cGRhdGUgYXZhaWxhYmxlIHRyaWdnZXJhYmxlcycsICgpID0+IHsKICAgICAgICAg
ICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgbGV0IG1h
Y29zOworICAgICAgICAgICAgbGV0IHdlYmtpdDsKICAgICAgICAgICAgIHJldHVybiBNb2NrRGF0
YS5hZGRNb2NrRGF0YShkYikudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1h
bmlmZXN0LmZldGNoKCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICBtYWNvcyA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoOSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG1hY29zLm5hbWUoKSwgJ21hY09TJyk7CisgICAgICAgICAgICAgICAgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHdlYmtpdC5uYW1lKCksICdXZWJLaXQnKTsKKwogICAgICAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3Rlc3QnKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKGNvbmZpZ3VyYXRpb25zKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbmZpZ3VyYXRpb25zLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAKLSAgICAgICAgICAgICAgICBs
ZXQgdHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5hbGwoKVswXTsKKyAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IFRyaWdnZXJhYmxlLmFsbCgpWzBdOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0cmlnZ2VyYWJsZS5uYW1lKCksICdidWlsZC13ZWJraXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRyaWdnZXJhYmxlLmFjY2VwdGVkUmVwb3NpdG9y
aWVzKCksIFtdKTsKIAotICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5kQnlJZChN
b2NrRGF0YS5zb21lVGVzdElkKCkpOwotICAgICAgICAgICAgICAgIGxldCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOworICAgICAgICAgICAg
ICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVUZXN0SWQoKSk7Cisg
ICAgICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dl
cmFibGUuZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pLCBudWxsKTsKIAot
ICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdX
aXRoU2luZ2xlQnVpbGRlcigpOwotICAgICAgICAgICAgICAgIGxldCBsb2dnZXIgPSBuZXcgTW9j
a0xvZ2dlcjsKLSAgICAgICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNs
YXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwotICAgICAgICAgICAgICAgIGxldCBidWlsZGJv
dFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CisgICAgICAg
ICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5
TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChncm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZ3JvdXBzWzBdLm5hbWUoKSwgJ3dlYmtpdC1zdm4nKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsK
KworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0Nv
bmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSBbCisgICAgICAgICAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLW9ubHknLCBy
ZXBvc2l0b3JpZXM6IFsnbWFjT1MnXSwgcHJvcGVydGllczogeydvcyc6ICc8bWFjT1M+J319LAor
ICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1hbmQtd2Via2l0JywgcmVwb3NpdG9y
aWVzOiBbJ1dlYktpdCcsICdtYWNPUyddLCBwcm9wZXJ0aWVzOiB7J29zJzogJzxtYWNPUz4nLCAn
d2snOiAnPFdlYktpdD4nfX0sCisgICAgICAgICAgICAgICAgXQorCisgICAgICAgICAgICAgICAg
Y29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CisgICAgICAgICAgICAgICAgY29uc3Qgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OworICAg
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmln
Z2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNs
YXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRib3RUcmlnZ2Vy
YWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpOwotICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgTW9ja0RhdGEucmVzZXRWM01vZGVscygpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDApOwotICAgICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3Qn
KTsKLSAgICAgICAgICAgIH0pLnRoZW4oKG1hbmlmZXN0Q29udGVudCkgPT4gewotICAgICAgICAg
ICAgICAgIE1hbmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KG1hbmlmZXN0Q29udGVudCk7CisgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucycsICd0ZXN0Jyk7CiAgICAgICAgICAgICB9KS50aGVuKChjb25maWd1cmF0aW9ucykgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDEp
OwpAQCAtOTU4LDcgKzk3NiwzMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5k
QnlJZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKTsKICAgICAgICAgICAgICAgICBsZXQgdHJp
Z2dlcmFibGUgPSBUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0
Zm9ybSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwg
J2J1aWxkLXdlYmtpdCcpOwotICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBjb25z
dCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKHRyaWdnZXJh
YmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdy
b3Vwcy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0u
bmFtZSgpLCAnc3lzdGVtLWFuZC13ZWJraXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKGdyb3Vwc1swXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLm5hbWUoKSwgJ3N5c3RlbS1vbmx5Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChncm91cHNbMV0ucmVwb3NpdG9yaWVz
KCksIFttYWNvc10pOworCisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEu
bW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1aWxkZXIoKTsKKyAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IFsgXTsKKworICAgICAgICAgICAgICAgIGNvbnN0IGxv
Z2dlciA9IG5ldyBNb2NrTG9nZ2VyOworICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9
IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKKyAgICAgICAgICAg
ICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUo
Y29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8s
IGxvZ2dlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkYm90VHJpZ2dlcmFibGUudXBk
YXRlVHJpZ2dlcmFibGUoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlm
ZXN0KCkpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2Vy
YWJsZS5hbGwoKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFRy
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLnNvcnRCeU5hbWUoVHJpZ2dlcmFibGUuYWxsKClbMF0u
cmVwb3NpdG9yeUdyb3VwcygpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1swXS5uYW1l
KCksICdzeXN0ZW0tYW5kLXdlYmtpdCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoZ3JvdXBzWzBdLnJlcG9zaXRvcmllcygpLCBbd2Via2l0LCBtYWNvc10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAnc3lzdGVtLW9ubHknKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdyb3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwg
W21hY29zXSk7CisgICAgICAgICAgICB9KQogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMK
aW5kZXggOTRiNWEyMDdlMzZhYTBhYTNiY2FlN2JiODIwMjFiZmExMjE5ODE4My4uYmY5ZWUwZjQz
MjUyNTZiNDg5OTU0YzQ4ZTAyZDhiN2U2NjVkNDA1ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCkBAIC01NywxNCArNTcs
MTUgQEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKIAogY2xhc3MgQnVpbGRib3RTeW5jZXIg
ewogCi0gICAgY29uc3RydWN0b3IocmVtb3RlLCBvYmplY3QpCisgICAgY29uc3RydWN0b3IocmVt
b3RlLCBvYmplY3QsIGNvbW1vbkNvbmZpZ3VyYXRpb25zKQogICAgIHsKICAgICAgICAgdGhpcy5f
cmVtb3RlID0gcmVtb3RlOwogICAgICAgICB0aGlzLl90ZXN0Q29uZmlndXJhdGlvbnMgPSBbXTsK
KyAgICAgICAgdGhpcy5fcmVwb3NpdG9yeUdyb3VwcyA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLnJl
cG9zaXRvcnlHcm91cHM7CisgICAgICAgIHRoaXMuX3NsYXZlUHJvcGVydHlOYW1lID0gY29tbW9u
Q29uZmlndXJhdGlvbnMuc2xhdmVBcmd1bWVudDsKKyAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0
UHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMuYnVpbGRSZXF1ZXN0QXJndW1lbnQ7
CiAgICAgICAgIHRoaXMuX2J1aWxkZXJOYW1lID0gb2JqZWN0LmJ1aWxkZXI7Ci0gICAgICAgIHRo
aXMuX3NsYXZlUHJvcGVydHlOYW1lID0gb2JqZWN0LnNsYXZlQXJndW1lbnQ7CiAgICAgICAgIHRo
aXMuX3NsYXZlTGlzdCA9IG9iamVjdC5zbGF2ZUxpc3Q7Ci0gICAgICAgIHRoaXMuX2J1aWxkUmVx
dWVzdFByb3BlcnR5TmFtZSA9IG9iamVjdC5idWlsZFJlcXVlc3RBcmd1bWVudDsKICAgICAgICAg
dGhpcy5fZW50cnlMaXN0ID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVl
c3RzID0gbmV3IFNldDsKICAgICB9CkBAIC03OCw2ICs3OSw3IEBAIGNsYXNzIEJ1aWxkYm90U3lu
Y2VyIHsKICAgICAgICAgdGhpcy5fdGVzdENvbmZpZ3VyYXRpb25zLnB1c2goe3Rlc3QsIHBsYXRm
b3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGV9KTsKICAgICB9CiAgICAgdGVzdENvbmZpZ3VyYXRpb25z
KCkgeyByZXR1cm4gdGhpcy5fdGVzdENvbmZpZ3VyYXRpb25zOyB9CisgICAgcmVwb3NpdG9yeUdy
b3VwcygpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlHcm91cHM7IH0KIAogICAgIG1hdGNoZXND
b25maWd1cmF0aW9uKHJlcXVlc3QpCiAgICAgewpAQCAtMjAwLDM0ICsyMDIsMjUgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIGNvbW1pdFNl
dC5yZXBvc2l0b3JpZXMoKSkKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9y
eS5uYW1lKCldID0gcmVwb3NpdG9yeTsKIAotICAgICAgICBsZXQgcHJvcGVydGllc1RlbXBsYXRl
ID0gbnVsbDsKLSAgICAgICAgZm9yIChsZXQgY29uZmlnIG9mIHRoaXMuX3Rlc3RDb25maWd1cmF0
aW9ucykgewotICAgICAgICAgICAgaWYgKGNvbmZpZy5wbGF0Zm9ybSA9PSBidWlsZFJlcXVlc3Qu
cGxhdGZvcm0oKSAmJiBjb25maWcudGVzdCA9PSBidWlsZFJlcXVlc3QudGVzdCgpKQotICAgICAg
ICAgICAgICAgIHByb3BlcnRpZXNUZW1wbGF0ZSA9IGNvbmZpZy5wcm9wZXJ0aWVzVGVtcGxhdGU7
Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0KHByb3BlcnRpZXNUZW1wbGF0ZSk7CisgICAgICAg
IGNvbnN0IG1hdGNoaW5nQ29uZmlndXJhdGlvbiA9IHRoaXMuX3Rlc3RDb25maWd1cmF0aW9ucy5m
aW5kKChjb25maWcpID0+IGNvbmZpZy5wbGF0Zm9ybSA9PSBidWlsZFJlcXVlc3QucGxhdGZvcm0o
KSAmJiBjb25maWcudGVzdCA9PSBidWlsZFJlcXVlc3QudGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0
KG1hdGNoaW5nQ29uZmlndXJhdGlvbiwgYEJ1aWxkIHJlcXVlc3QgJHtidWlsZFJlcXVlc3QuaWQo
KX0gZG9lcyBub3QgbWF0Y2ggYSBjb25maWd1cmF0aW9uIGluIHRoZSBidWlsZGVyICIke3RoaXMu
X2J1aWxkZXJOYW1lfSJgKTsKKyAgICAgICAgY29uc3QgcHJvcGVydGllc1RlbXBsYXRlID0gbWF0
Y2hpbmdDb25maWd1cmF0aW9uLnByb3BlcnRpZXNUZW1wbGF0ZTsKKworICAgICAgICBjb25zdCBy
ZXBvc2l0b3J5R3JvdXAgPSBidWlsZFJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCk7CisgICAgICAg
IGFzc2VydChyZXBvc2l0b3J5R3JvdXAuYWNjZXB0cyhjb21taXRTZXQpLCBgQnVpbGQgcmVxdWVz
dCAke2J1aWxkUmVxdWVzdC5pZCgpfSBkb2VzIG5vdCBzcGVjaWZ5IGEgY29tbWl0IHNldCBhY2Nl
cHRlZCBieSB0aGUgcmVwb3NpdG9yeSBncm91cCAke3JlcG9zaXRvcnlHcm91cC5pZCgpfWApOwor
CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlHcm91cENvbmZpZ3VyYXRpb24gPSB0aGlzLl9yZXBv
c2l0b3J5R3JvdXBzW3JlcG9zaXRvcnlHcm91cC5uYW1lKCldOworICAgICAgICBhc3NlcnQocmVw
b3NpdG9yeUdyb3VwQ29uZmlndXJhdGlvbiwgYEJ1aWxkIHJlcXVlc3QgJHtidWlsZFJlcXVlc3Qu
aWQoKX0gdXNlcyBhbiB1bnN1cHBvcnRlZCByZXBvc2l0b3J5IGdyb3VwICIke3JlcG9zaXRvcnlH
cm91cC5uYW1lKCl9ImApOwogCiAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7fTsKLSAgICAg
ICAgZm9yIChsZXQga2V5IGluIHByb3BlcnRpZXNUZW1wbGF0ZSkgewotICAgICAgICAgICAgY29u
c3QgdmFsdWUgPSBwcm9wZXJ0aWVzVGVtcGxhdGVba2V5XTsKLSAgICAgICAgICAgIGlmICh0eXBl
b2YodmFsdWUpICE9ICdvYmplY3QnKQotICAgICAgICAgICAgICAgIHByb3BlcnRpZXNba2V5XSA9
IHZhbHVlOwotICAgICAgICAgICAgZWxzZSBpZiAoJ3Jvb3QnIGluIHZhbHVlKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSB2YWx1ZVsncm9vdCddOwotICAgICAgICAg
ICAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1l
XTsKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeSwgYCIke3JlcG9zaXRvcnlOYW1l
fSIgbXVzdCBiZSBzcGVjaWZpZWRgKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2tleV0g
PSBjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpOwotICAgICAgICAg
ICAgfSBlbHNlIGlmICgncm9vdE9wdGlvbnMnIGluIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAg
Y29uc3QgZmlsdGVyZWRPcHRpb25zID0gdmFsdWVbJ3Jvb3RPcHRpb25zJ10uZmlsdGVyKChvcHRp
b24pID0+IG9wdGlvbiBpbiByZXBvc2l0b3J5QnlOYW1lKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZmlsdGVyZWRPcHRpb25zLmxlbmd0aCwgMSwgYFRoZXJlIHNob3VsZCBiZSBleGFj
dGx5IG9uZSB2YWxpZCByb290IGFtb25nICIke3ZhbHVlWydyb290T3B0aW9ucyddfSIuYCk7Ci0g
ICAgICAgICAgICAgICAgcHJvcGVydGllc1trZXldID0gY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShyZXBvc2l0b3J5QnlOYW1lW2ZpbHRlcmVkT3B0aW9uc1swXV0pOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoJ3Jvb3RzRXhjbHVkaW5nJyBpbiB2YWx1ZSkgewot
ICAgICAgICAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0ID0gdGhpcy5fcmV2aXNpb25TZXRGcm9t
Q29tbWl0U2V0V2l0aEV4Y2x1c2lvbkxpc3QoY29tbWl0U2V0LCB2YWx1ZVsncm9vdHNFeGNsdWRp
bmcnXSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydGllc1trZXldID0gSlNPTi5zdHJpbmdpZnko
cmV2aXNpb25TZXQpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGZvciAobGV0
IHByb3BlcnR5TmFtZSBpbiBwcm9wZXJ0aWVzVGVtcGxhdGUpCisgICAgICAgICAgICBwcm9wZXJ0
aWVzW3Byb3BlcnR5TmFtZV0gPSBwcm9wZXJ0aWVzVGVtcGxhdGVbcHJvcGVydHlOYW1lXTsKIAor
ICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBUZW1wbGF0ZSA9IHJlcG9zaXRvcnlHcm91cENv
bmZpZ3VyYXRpb24ucHJvcGVydGllc1RlbXBsYXRlOworICAgICAgICBmb3IgKGxldCBwcm9wZXJ0
eU5hbWUgaW4gcmVwb3NpdG9yeUdyb3VwVGVtcGxhdGUpIHsKKyAgICAgICAgICAgIGNvbnN0IHZh
bHVlID0gcmVwb3NpdG9yeUdyb3VwVGVtcGxhdGVbcHJvcGVydHlOYW1lXTsKKyAgICAgICAgICAg
IHByb3BlcnRpZXNbcHJvcGVydHlOYW1lXSA9IHZhbHVlIGluc3RhbmNlb2YgUmVwb3NpdG9yeSA/
IGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkodmFsdWUpIDogdmFsdWU7CisgICAgICAg
IH0KICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWVdID0g
YnVpbGRSZXF1ZXN0LmlkKCk7CiAKICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7CkBAIC0yNTIs
MzUgKzI0NSw4NyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICBzdGF0aWMgX2xvYWRD
b25maWcocmVtb3RlLCBjb25maWcpCiAgICAgewotICAgICAgICBjb25zdCBzaGFyZWQgPSBjb25m
aWdbJ3NoYXJlZCddIHx8IHt9OwogICAgICAgICBjb25zdCB0eXBlcyA9IGNvbmZpZ1sndHlwZXMn
XSB8fCB7fTsKICAgICAgICAgY29uc3QgYnVpbGRlcnMgPSBjb25maWdbJ2J1aWxkZXJzJ10gfHwg
e307CiAKKyAgICAgICAgYXNzZXJ0KGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwgJ2J1aWxk
UmVxdWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNl
ZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRCcpOworCisgICAgICAgIGFzc2VydC5lcXVh
bCh0eXBlb2YoY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpLCAnb2JqZWN0JywgJ3JlcG9zaXRvcnlH
cm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZp
bml0aW9uJyk7CisKKyAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwcyA9IHt9OworICAgICAg
ICBmb3IgKGNvbnN0IG5hbWUgaW4gY29uZmlnLnJlcG9zaXRvcnlHcm91cHMpCisgICAgICAgICAg
ICByZXBvc2l0b3J5R3JvdXBzW25hbWVdID0gdGhpcy5fcGFyc2VSZXBvc2l0b3J5R3JvdXAobmFt
ZSwgY29uZmlnLnJlcG9zaXRvcnlHcm91cHNbbmFtZV0pOworCisgICAgICAgIGNvbnN0IGNvbW1v
bkNvbmZpZ3VyYXRpb25zID0geworICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwcywKKyAgICAg
ICAgICAgIHNsYXZlQXJndW1lbnQ6IGNvbmZpZy5zbGF2ZUFyZ3VtZW50LAorICAgICAgICAgICAg
YnVpbGRSZXF1ZXN0QXJndW1lbnQ6IGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudCwKKyAgICAg
ICAgfTsKKwogICAgICAgICBsZXQgc3luY2VyQnlCdWlsZGVyID0gbmV3IE1hcDsKKyAgICAgICAg
Y29uc3QgZXhwYW5kZWRDb25maWd1cmF0aW9ucyA9IFtdOwogICAgICAgICBmb3IgKGxldCBlbnRy
eSBvZiBjb25maWdbJ2NvbmZpZ3VyYXRpb25zJ10pIHsKLSAgICAgICAgICAgIGNvbnN0IG5ld0Nv
bmZpZyA9IHt9OwotICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyhuZXdD
b25maWcsIHNoYXJlZCk7Ci0gICAgICAgICAgICB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmln
KG5ld0NvbmZpZywgZW50cnkpOwotCi0gICAgICAgICAgICBjb25zdCBleHBhbmRlZENvbmZpZ3Vy
YXRpb25zID0gdGhpcy5fZXhwYW5kVHlwZXNBbmRQbGF0Zm9ybXMobmV3Q29uZmlnKTsKLSAgICAg
ICAgICAgIGZvciAobGV0IGNvbmZpZyBvZiBleHBhbmRlZENvbmZpZ3VyYXRpb25zKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCd0eXBlJyBpbiBjb25maWcpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdHlwZSA9IGNvbmZpZ1sndHlwZSddOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQo
dHlwZSwgYCR7dHlwZX0gaXMgbm90IGEgdmFsaWQgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbmAp
OwotICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKGNvbmZp
ZywgdHlwZXNbdHlwZV0pOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkZXIgPSBlbnRyeVsnYnVpbGRlciddOwotICAgICAgICAgICAgICAgIGlmIChidWls
ZGVyc1tidWlsZGVyXSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJn
ZUNvbmZpZyhjb25maWcsIGJ1aWxkZXJzW2J1aWxkZXJdKTsKLQotICAgICAgICAgICAgICAgIHRo
aXMuX2NyZWF0ZVRlc3RDb25maWd1cmF0aW9uKHJlbW90ZSwgc3luY2VyQnlCdWlsZGVyLCBjb25m
aWcpOworICAgICAgICAgICAgZm9yIChjb25zdCBleHBhbmRlZENvbmZpZyBvZiB0aGlzLl9leHBh
bmRUeXBlc0FuZFBsYXRmb3JtcyhlbnRyeSkpCisgICAgICAgICAgICAgICAgZXhwYW5kZWRDb25m
aWd1cmF0aW9ucy5wdXNoKGV4cGFuZGVkQ29uZmlnKTsKKyAgICAgICAgfQorCisgICAgICAgIGZv
ciAobGV0IGVudHJ5IG9mIGV4cGFuZGVkQ29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgICAgIGNv
bnN0IG1lcmdlZENvbmZpZyA9IHt9OworICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJn
ZUNvbmZpZyhtZXJnZWRDb25maWcsIGVudHJ5KTsKKworICAgICAgICAgICAgaWYgKCd0eXBlJyBp
biBtZXJnZWRDb25maWcpIHsKKyAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gbWVyZ2VkQ29u
ZmlnWyd0eXBlJ107CisgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGUsIGAke3R5cGV9IGlzIG5v
dCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb25gKTsKKyAgICAgICAgICAgICAgICB0
aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKG1lcmdlZENvbmZpZywgdHlwZXNbdHlwZV0pOwog
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBidWlsZGVyID0gZW50cnlbJ2J1aWxk
ZXInXTsKKyAgICAgICAgICAgIGlmIChidWlsZGVyc1tidWlsZGVyXSkKKyAgICAgICAgICAgICAg
ICB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKG1lcmdlZENvbmZpZywgYnVpbGRlcnNbYnVp
bGRlcl0pOworCisgICAgICAgICAgICB0aGlzLl9jcmVhdGVUZXN0Q29uZmlndXJhdGlvbihyZW1v
dGUsIHN5bmNlckJ5QnVpbGRlciwgbWVyZ2VkQ29uZmlnLCBjb21tb25Db25maWd1cmF0aW9ucyk7
CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzeW5jZXJCeUJ1aWxkZXIu
dmFsdWVzKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBfcGFyc2VSZXBvc2l0b3J5R3JvdXAobmFt
ZSwgZ3JvdXApCisgICAgeworICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShncm91cC5yZXBv
c2l0b3JpZXMpLCAnRWFjaCByZXBvc2l0b3J5IGdyb3VwIG11c3Qgc3BlY2lmeSBhIGxpc3Qgb2Yg
cmVwb3NpdG9yaWVzJyk7CisgICAgICAgIGFzc2VydChncm91cC5yZXBvc2l0b3JpZXMubGVuZ3Ro
LCAnRWFjaCByZXBvc2l0b3J5IGdyb3VwIG11c3Qgc3BlY2lmeSBhIGxpc3Qgb2YgcmVwb3NpdG9y
aWVzJyk7CisgICAgICAgIGFzc2VydCghKCdkZXNjcmlwdGlvbicgaW4gZ3JvdXApIHx8IHR5cGVv
Zihncm91cFsnZGVzY3JpcHRpb24nXSkgPT0gJ3N0cmluZycsICdUaGUgZGVzY3JpcHRpb24gb2Yg
YSByZXBvc2l0b3J5IGdyb3VwIG11c3QgYmUgYSBzdHJpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKHR5cGVvZihncm91cC5wcm9wZXJ0aWVzKSwgJ29iamVjdCcsICdFYWNoIHJlcG9zaXRvcnkg
Z3JvdXAgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzJyk7CisKKyAgICAg
ICAgY29uc3QgcmVwb3NpdG9yeUJ5TmFtZSA9IHt9OworICAgICAgICBjb25zdCByZXBvc2l0b3Jp
ZXMgPSBncm91cC5yZXBvc2l0b3JpZXMubWFwKChyZXBvc2l0b3J5TmFtZSkgPT4geworICAgICAg
ICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJl
cG9zaXRvcnlOYW1lKTsKKyAgICAgICAgICAgIGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3Np
dG9yeU5hbWV9IiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5IG5hbWVgKTsKKyAgICAgICAgICAg
IHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5hbWVdID0gcmVwb3NpdG9yeTsKKyAgICAgICAg
ICAgIHJldHVybiByZXBvc2l0b3J5OworICAgICAgICB9KTsKKyAgICAgICAgY29uc3QgcHJvcGVy
dGllc1RlbXBsYXRlID0ge307CisgICAgICAgIGNvbnN0IHVzZWRSZXBvc2l0b3JpZXMgPSBbXTsK
KyAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gZ3JvdXAucHJvcGVydGllcykgewor
ICAgICAgICAgICAgbGV0IHZhbHVlID0gZ3JvdXAucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdOwor
ICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXjwoLispPiQvKTsKKyAgICAg
ICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlOYW1l
ID0gbWF0Y2hbMV07CisgICAgICAgICAgICAgICAgdmFsdWUgPSByZXBvc2l0b3J5QnlOYW1lW3Jl
cG9zaXRvcnlOYW1lXTsKKyAgICAgICAgICAgICAgICBhc3NlcnQodmFsdWUsIGBSZXBvc2l0b3J5
IGdyb3VwICIke25hbWV9IiB1c2VzICIke3JlcG9zaXRvcnlOYW1lfSIgaW4gaXRzIHByb3BlcnR5
IGJ1dCBkb2VzIG5vdCBsaXN0IGluIHRoZSBsaXN0IG9mIHJlcG9zaXRvcmllc2ApOworICAgICAg
ICAgICAgICAgIHVzZWRSZXBvc2l0b3JpZXMucHVzaCh2YWx1ZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBwcm9wZXJ0aWVzVGVtcGxhdGVbcHJvcGVydHlOYW1lXSA9IHZhbHVlOworICAg
ICAgICB9CisgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCB1c2VkUmVw
b3NpdG9yaWVzLmxlbmd0aCwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHVz
ZSBzb21lIG9mIHRoZSBsaXN0ZWQgcmVwb3NpdG9yaWVzYCk7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICBuYW1lOiBncm91cC5uYW1lLAorICAgICAgICAgICAgZGVzY3JpcHRpb246IGdy
b3VwLmRlc2NyaXB0aW9uLAorICAgICAgICAgICAgcHJvcGVydGllc1RlbXBsYXRlLAorICAgICAg
ICAgICAgYXJndW1lbnRzOiBncm91cC5hcmd1bWVudHMsCisgICAgICAgICAgICByZXBvc2l0b3Jp
ZXM6IHJlcG9zaXRvcmllcy5tYXAoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkuaWQoKSksCisg
ICAgICAgIH07CisgICAgfQorCiAgICAgc3RhdGljIF9leHBhbmRUeXBlc0FuZFBsYXRmb3Jtcyh1
bnJlc29sdmVkQ29uZmlnKQogICAgIHsKICAgICAgICAgY29uc3QgdHlwZUV4cGFuZGVkID0gW107
CkBAIC0zMDIsMTMgKzM0NywxMSBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHJl
dHVybiBjb25maWd1cmF0aW9uczsKICAgICB9CiAKLSAgICBzdGF0aWMgX2NyZWF0ZVRlc3RDb25m
aWd1cmF0aW9uKHJlbW90ZSwgc3luY2VyQnlCdWlsZGVyLCBuZXdDb25maWcpCisgICAgc3RhdGlj
IF9jcmVhdGVUZXN0Q29uZmlndXJhdGlvbihyZW1vdGUsIHN5bmNlckJ5QnVpbGRlciwgbmV3Q29u
ZmlnLCBjb21tb25Db25maWd1cmF0aW9ucykKICAgICB7CiAgICAgICAgIGFzc2VydCgncGxhdGZv
cm0nIGluIG5ld0NvbmZpZywgJ2NvbmZpZ3VyYXRpb24gbXVzdCBzcGVjaWZ5IGEgcGxhdGZvcm0n
KTsKICAgICAgICAgYXNzZXJ0KCd0ZXN0JyBpbiBuZXdDb25maWcsICdjb25maWd1cmF0aW9uIG11
c3Qgc3BlY2lmeSBhIHRlc3QnKTsKICAgICAgICAgYXNzZXJ0KCdidWlsZGVyJyBpbiBuZXdDb25m
aWcsICdjb25maWd1cmF0aW9uIG11c3Qgc3BlY2lmeSBhIGJ1aWxkZXInKTsKLSAgICAgICAgYXNz
ZXJ0KCdwcm9wZXJ0aWVzJyBpbiBuZXdDb25maWcsICdjb25maWd1cmF0aW9uIG11c3Qgc3BlY2lm
eSBhcmd1bWVudHMgdG8gcG9zdCBvbiBhIGJ1aWxkZXInKTsKLSAgICAgICAgYXNzZXJ0KCdidWls
ZFJlcXVlc3RBcmd1bWVudCcgaW4gbmV3Q29uZmlnLCAnY29uZmlndXJhdGlvbiBtdXN0IHNwZWNp
ZnkgYnVpbGRSZXF1ZXN0QXJndW1lbnQnKTsKIAogICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5m
aW5kQnlQYXRoKG5ld0NvbmZpZy50ZXN0KTsKICAgICAgICAgYXNzZXJ0KHRlc3QsIGAke25ld0Nv
bmZpZy50ZXN0fSBpcyBub3QgYSB2YWxpZCB0ZXN0IHBhdGhgKTsKQEAgLTMxOCwxMCArMzYxLDEw
IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgICAgICBsZXQgc3luY2VyID0gc3luY2Vy
QnlCdWlsZGVyLmdldChuZXdDb25maWcuYnVpbGRlcik7CiAgICAgICAgIGlmICghc3luY2VyKSB7
Ci0gICAgICAgICAgICBzeW5jZXIgPSBuZXcgQnVpbGRib3RTeW5jZXIocmVtb3RlLCBuZXdDb25m
aWcpOworICAgICAgICAgICAgc3luY2VyID0gbmV3IEJ1aWxkYm90U3luY2VyKHJlbW90ZSwgbmV3
Q29uZmlnLCBjb21tb25Db25maWd1cmF0aW9ucyk7CiAgICAgICAgICAgICBzeW5jZXJCeUJ1aWxk
ZXIuc2V0KG5ld0NvbmZpZy5idWlsZGVyLCBzeW5jZXIpOwogICAgICAgICB9Ci0gICAgICAgIHN5
bmNlci5hZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSwgbmV3Q29uZmlnLnByb3Bl
cnRpZXMpOworICAgICAgICBzeW5jZXIuYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZv
cm0sIG5ld0NvbmZpZy5wcm9wZXJ0aWVzIHx8IHt9KTsKICAgICB9CiAKICAgICBzdGF0aWMgX3Zh
bGlkYXRlQW5kTWVyZ2VDb25maWcoY29uZmlnLCB2YWx1ZXNUb01lcmdlLCBleGNsdWRlZFByb3Bl
cnR5KQpAQCAtMzQxLDcgKzM4NCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ3Rlc3QnOiAvLyBGYWxsdGhyb3VnaAog
ICAgICAgICAgICAgY2FzZSAnc2xhdmVMaXN0JzogLy8gRmFsbHRocm91Z2gKLSAgICAgICAgICAg
IGNhc2UgJ3BsYXRmb3Jtcyc6CisgICAgICAgICAgICBjYXNlICdwbGF0Zm9ybXMnOiAvLyBGYWxs
dGhyb3VnaAogICAgICAgICAgICAgY2FzZSAndHlwZXMnOgogICAgICAgICAgICAgICAgIGFzc2Vy
dCh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5LCBgJHtuYW1lfSBzaG91bGQgYmUgYW4gYXJyYXlgKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQodmFsdWUuZXZlcnkoZnVuY3Rpb24gKHBhcnQpIHsgcmV0
dXJuIHR5cGVvZiBwYXJ0ID09ICdzdHJpbmcnOyB9KSwgYCR7bmFtZX0gc2hvdWxkIGJlIGFuIGFy
cmF5IG9mIHN0cmluZ3NgKTsKQEAgLTM1MCw4ICszOTMsNiBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAgICAgICAgICAgICBjYXNlICd0eXBlJzogLy8gRmFsbHRocm91Z2gKICAgICAgICAgICAg
IGNhc2UgJ2J1aWxkZXInOiAvLyBGYWxsdGhyb3VnaAogICAgICAgICAgICAgY2FzZSAncGxhdGZv
cm0nOiAvLyBGYWxsdGhyb3VnaAotICAgICAgICAgICAgY2FzZSAnc2xhdmVBcmd1bWVudCc6IC8v
IEZhbGx0aHJvdWdoCi0gICAgICAgICAgICBjYXNlICdidWlsZFJlcXVlc3RBcmd1bWVudCc6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtu
YW1lfSBzaG91bGQgYmUgb2Ygc3RyaW5nIHR5cGVgKTsKICAgICAgICAgICAgICAgICBjb25maWdb
bmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpp
bmRleCA1ZDlmN2U2NjgwMjc3MWZlNjc5NWQ4OGZlMzY3YmU4ZWZjNTQ3M2JlLi4xNWQzODk5N2Yx
YTJmYTc4NTAxZmRiNTQ4NTk5ZTg4Y2RjOTMyZGU4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC0z
MCwxNyArMzAsMjEgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgdXBkYXRlVHJp
Z2dlcmFibGUoKQogICAgIHsKICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDsKKyAgICAgICAg
bGV0IHJlcG9zaXRvcnlHcm91cHMgPSBbXTsKICAgICAgICAgZm9yIChjb25zdCBzeW5jZXIgb2Yg
dGhpcy5fc3luY2VycykgewogICAgICAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2Ygc3luY2Vy
LnRlc3RDb25maWd1cmF0aW9ucygpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSB7
dGVzdDogY29uZmlnLnRlc3QuaWQoKSwgcGxhdGZvcm06IGNvbmZpZy5wbGF0Zm9ybS5pZCgpfTsK
ICAgICAgICAgICAgICAgICBtYXAuc2V0KGVudHJ5LnRlc3QgKyAnLScgKyBlbnRyeS5wbGF0Zm9y
bSwgZW50cnkpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRklYTUU6IE1vdmUgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcgaGVyZSBhbmQgc3RvcmUgcmVwb3NpdG9yeSBncm91cHMg
ZGlyZWN0bHkuCisgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzID0gc3luY2VyLnJlcG9zaXRv
cnlHcm91cHMoKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLnBvc3RK
U09OKGAvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS9gLCB7CisgICAgICAgIHJldHVybiB0aGlzLl9y
ZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKGAvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS9gLCB7CiAg
ICAgICAgICAgICAnc2xhdmVOYW1lJzogdGhpcy5fc2xhdmVJbmZvLm5hbWUsCiAgICAgICAgICAg
ICAnc2xhdmVQYXNzd29yZCc6IHRoaXMuX3NsYXZlSW5mby5wYXNzd29yZCwKICAgICAgICAgICAg
ICd0cmlnZ2VyYWJsZSc6IHRoaXMuX25hbWUsCi0gICAgICAgICAgICAnY29uZmlndXJhdGlvbnMn
OiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSl9KTsKKyAgICAgICAgICAgICdjb25maWd1cmF0aW9u
cyc6IEFycmF5LmZyb20obWFwLnZhbHVlcygpKSwKKyAgICAgICAgICAgICdyZXBvc2l0b3J5R3Jv
dXBzJzogT2JqZWN0LmtleXMocmVwb3NpdG9yeUdyb3VwcykubWFwKChncm91cE5hbWUpID0+IHJl
cG9zaXRvcnlHcm91cHNbZ3JvdXBOYW1lXSl9KTsKICAgICB9CiAKICAgICBzeW5jT25jZSgpCkBA
IC00OSw4ICs1Myw5IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICBsZXQg
YnVpbGRSZXFldXN0c0J5R3JvdXAgPSBuZXcgTWFwOwogCiAgICAgICAgIHRoaXMuX2xvZ2dlci5s
b2coYEZldGNoaW5nIGJ1aWxkIHJlcXVlc3RzIGZvciAke3RoaXMuX25hbWV9Li4uYCk7CisgICAg
ICAgIGxldCB2YWxpZFJlcXVlc3RzOwogICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUodGhpcy5fbmFtZSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAg
ICAgICAgICAgdGhpcy5fdmFsaWRhdGVSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKKyAgICAgICAg
ICAgIHZhbGlkUmVxdWVzdHMgPSB0aGlzLl92YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMp
OwogICAgICAgICAgICAgYnVpbGRSZXFldXN0c0J5R3JvdXAgPSBCdWlsZGJvdFRyaWdnZXJhYmxl
Ll90ZXN0R3JvdXBNYXBGb3JCdWlsZFJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOwogICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX3B1bGxCdWlsZGJvdE9uQWxsU3luY2VycyhidWlsZFJlcWV1c3RzQnlH
cm91cCk7CiAgICAgICAgIH0pLnRoZW4oKHVwZGF0ZXMpID0+IHsKQEAgLTU4LDcgKzYzLDEwIEBA
IGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICAgICAgY29uc3QgcHJvbWlzdExp
c3QgPSBbXTsKICAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1
aWxkUmVxZXVzdHNCeUdyb3VwLnZhbHVlcygpKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVy
biBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3JkZXI7IH0pOwogICAgICAgICAgICAgZm9yIChjb25z
dCBncm91cCBvZiB0ZXN0R3JvdXBMaXN0KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgcHJvbWlz
ZSA9IHRoaXMuX3NjaGVkdWxlTmV4dFJlcXVlc3RJbkdyb3VwSWZTbGF2ZUlzQXZhaWxhYmxlKGdy
b3VwLCB1cGRhdGVzKTsKKyAgICAgICAgICAgICAgICBjb25zdCBuZXh0UmVxdWVzdCA9IHRoaXMu
X25leHRSZXF1ZXN0SW5Hcm91cChncm91cCwgdXBkYXRlcyk7CisgICAgICAgICAgICAgICAgaWYg
KCF2YWxpZFJlcXVlc3RzLmhhcyhuZXh0UmVxdWVzdCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9zY2hlZHVsZVJl
cXVlc3RJZlNsYXZlSXNBdmFpbGFibGUobmV4dFJlcXVlc3QsIGdyb3VwLnN5bmNlciwgZ3JvdXAu
c2xhdmVOYW1lKTsKICAgICAgICAgICAgICAgICBpZiAocHJvbWlzZSkKICAgICAgICAgICAgICAg
ICAgICAgcHJvbWlzdExpc3QucHVzaChwcm9taXNlKTsKICAgICAgICAgICAgIH0KQEAgLTc4LDE0
ICs4NiwzNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICBfdmFsaWRhdGVSZXF1
ZXN0cyhidWlsZFJlcXVlc3RzKQogICAgIHsKICAgICAgICAgY29uc3QgdGVzdFBsYXRmb3JtUGFp
cnMgPSB7fTsKKyAgICAgICAgY29uc3QgdmFsaWRhdGVkUmVxdWVzdHMgPSBuZXcgU2V0OwogICAg
ICAgICBmb3IgKGxldCByZXF1ZXN0IG9mIGJ1aWxkUmVxdWVzdHMpIHsKICAgICAgICAgICAgIGlm
ICghdGhpcy5fc3luY2Vycy5zb21lKChzeW5jZXIpID0+IHN5bmNlci5tYXRjaGVzQ29uZmlndXJh
dGlvbihyZXF1ZXN0KSkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSByZXF1ZXN0LnBs
YXRmb3JtKCkuaWQgKyAnLScgKyByZXF1ZXN0LnRlc3QoKS5pZCgpOwogICAgICAgICAgICAgICAg
IGlmICghKGtleSBpbiB0ZXN0UGxhdGZvcm1QYWlycykpCi0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX2xvZ2dlci5lcnJvcihgTm8gbWF0Y2hpbmcgY29uZmlndXJhdGlvbiBmb3IgIiR7cmVxdWVz
dC50ZXN0KCkuZnVsbE5hbWUoKX0iIG9uICIke3JlcXVlc3QucGxhdGZvcm0oKS5uYW1lKCl9Ii5g
KTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJv
cihgQnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gaGFzIG5vIG1hdGNoaW5nIGNvbmZpZ3Vy
YXRpb246ICIke3JlcXVlc3QudGVzdCgpLmZ1bGxOYW1lKCl9IiBvbiAiJHtyZXF1ZXN0LnBsYXRm
b3JtKCkubmFtZSgpfSIuYCk7CiAgICAgICAgICAgICAgICAgdGVzdFBsYXRmb3JtUGFpcnNba2V5
XSA9IHRydWU7CisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IHJlcXVlc3QudHJpZ2dlcmFibGUoKTsKKyAgICAg
ICAgICAgIGlmICghdHJpZ2dlcmFibGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIu
ZXJyb3IoYEJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IGRvZXMgbm90IHNwZWNpZnkgYSB2
YWxpZCB0cmlnZ2VyYWJsZWApOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYXNzZXJ0KHRyaWdnZXJhYmxlIGluc3RhbmNlb2YgVHJpZ2dlcmFi
bGUsICdNdXN0IHNwZWNpZnkgYSB2YWxpZCB0cmlnZ2VyYWJsZScpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRyaWdnZXJhYmxlLm5hbWUoKSwgdGhpcy5fbmFtZSwgJ011c3Qgc3BlY2lmeSB0
aGUgdHJpZ2dlcmFibGUgb2YgdGhpcyBzeW5jZXInKTsKKyAgICAgICAgICAgIGNvbnN0IHJlcG9z
aXRvcnlHcm91cCA9IHJlcXVlc3QucmVwb3NpdG9yeUdyb3VwKCk7CisgICAgICAgICAgICBpZiAo
IXJlcG9zaXRvcnlHcm91cCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihg
QnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZG9lcyBub3Qgc3BlY2lmeSBhIHJlcG9zaXRv
cnkgZ3JvdXAuIFN1Y2ggYSBidWlsZCByZXF1ZXN0IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuYCk7
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
b25zdCBhY2NlcHRlZEdyb3VwcyA9IHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKTsKKyAg
ICAgICAgICAgIGlmICghYWNjZXB0ZWRHcm91cHMuaW5jbHVkZXMocmVwb3NpdG9yeUdyb3VwKSkg
eworICAgICAgICAgICAgICAgIGNvbnN0IGFjY2VwdGVkTmFtZXMgPSBhY2NlcHRlZEdyb3Vwcy5t
YXAoKGdyb3VwKSA9PiBncm91cC5uYW1lKCkpLmpvaW4oJywgJyk7CisgICAgICAgICAgICAgICAg
dGhpcy5fbG9nZ2VyLmVycm9yKGBCdWlsZCByZXF1ZXN0ICR7cmVxdWVzdC5pZCgpfSBzcGVjaWZp
ZXMgJHtyZXBvc2l0b3J5R3JvdXAubmFtZSgpfSBidXQgdHJpZ2dlcmFibGUgJHt0aGlzLl9uYW1l
fSBvbmx5IGFjY2VwdHMgJHthY2NlcHRlZE5hbWVzfWApOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsaWRhdGVkUmVxdWVzdHMuYWRkKHJl
cXVlc3QpOwogICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlZFJlcXVlc3RzOwog
ICAgIH0KIAogICAgIF9wdWxsQnVpbGRib3RPbkFsbFN5bmNlcnMoYnVpbGRSZXFldXN0c0J5R3Jv
dXApCkBAIC0xMjksMjQgKzE2MCwyNSBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB1cGRhdGVzKTsKICAgICB9CiAKLSAgICBfc2NoZWR1bGVOZXh0
UmVxdWVzdEluR3JvdXBJZlNsYXZlSXNBdmFpbGFibGUoZ3JvdXBJbmZvLCBwZW5kaW5nVXBkYXRl
cykKKyAgICBfbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwSW5mbywgcGVuZGluZ1VwZGF0ZXMpCiAg
ICAgewotICAgICAgICBsZXQgbmV4dFJlcXVlc3QgPSBudWxsOwogICAgICAgICBmb3IgKGNvbnN0
IHJlcXVlc3Qgb2YgZ3JvdXBJbmZvLnJlcXVlc3RzKSB7CiAgICAgICAgICAgICBpZiAocmVxdWVz
dC5pc1NjaGVkdWxlZCgpIHx8IChyZXF1ZXN0LmlkKCkgaW4gcGVuZGluZ1VwZGF0ZXMgJiYgcGVu
ZGluZ1VwZGF0ZXNbcmVxdWVzdC5pZCgpXVsnc3RhdHVzJ10gPT0gJ3NjaGVkdWxlZCcpKQotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNQZW5kaW5nKCkg
JiYgIShyZXF1ZXN0LmlkKCkgaW4gcGVuZGluZ1VwZGF0ZXMpKSB7Ci0gICAgICAgICAgICAgICAg
bmV4dFJlcXVlc3QgPSByZXF1ZXN0OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgaWYgKHJlcXVl
c3QuaXNQZW5kaW5nKCkgJiYgIShyZXF1ZXN0LmlkKCkgaW4gcGVuZGluZ1VwZGF0ZXMpKQorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0OwogICAgICAgICB9CisgICAgICAgIHJldHVybiBu
dWxsOworICAgIH0KKworICAgIF9zY2hlZHVsZVJlcXVlc3RJZlNsYXZlSXNBdmFpbGFibGUobmV4
dFJlcXVlc3QsIHN5bmNlciwgc2xhdmVOYW1lKQorICAgIHsKICAgICAgICAgaWYgKCFuZXh0UmVx
dWVzdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAgICAgICAgIGlmICghIW5leHRSZXF1
ZXN0Lm9yZGVyKCkpIHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlciA9IGdyb3VwSW5mby5zeW5j
ZXI7CiAgICAgICAgICAgICBpZiAoc3luY2VyKQotICAgICAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9zY2hlZHVsZVJlcXVlc3RXaXRoTG9nKHN5bmNlciwgbmV4dFJlcXVlc3QsIGdyb3VwSW5mby5z
bGF2ZU5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zY2hlZHVsZVJlcXVlc3RX
aXRoTG9nKHN5bmNlciwgbmV4dFJlcXVlc3QsIHNsYXZlTmFtZSk7CiAgICAgICAgICAgICB0aGlz
Ll9sb2dnZXIuZXJyb3IoYENvdWxkIG5vdCBpZGVudGlmeSB0aGUgc3luY2VyIGZvciAke25leHRS
ZXF1ZXN0LmlkKCl9LmApOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCmluZGV4IDIzZDlkZTZkZjI0ZTIyZmZhNGFmOTc5MjAx
ODFiZTk2MDI4ZWM5MTIuLjc2YjRlMzdjNTFlMGQ1ZTBkMTNlYWNiZDM1ZmFiMWUzYWM4ZWU3MWEg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwpA
QCAtMSw2ICsxLDcgQEAKICd1c2Ugc3RyaWN0JzsKIAotZnVuY3Rpb24gaW1wb3J0RnJvbVYzKGZp
bGUsIG5hbWUpIHsKK2Z1bmN0aW9uIGltcG9ydEZyb21WMyhmaWxlLCBuYW1lKQorewogICAgIGNv
bnN0IG1vZGVsc0RpcmVjdG9yeSA9ICcuLi8uLi9wdWJsaWMvdjMvJzsKIAogICAgIGdsb2JhbFtu
YW1lXSA9IHJlcXVpcmUobW9kZWxzRGlyZWN0b3J5ICsgZmlsZSlbbmFtZV07CkBAIC0yNCw2ICsy
NSw3IEBAIGltcG9ydEZyb21WMygnbW9kZWxzL3BsYXRmb3JtLmpzJywgJ1BsYXRmb3JtJyk7CiBp
bXBvcnRGcm9tVjMoJ21vZGVscy9yZXBvc2l0b3J5LmpzJywgJ1JlcG9zaXRvcnknKTsKIGltcG9y
dEZyb21WMygnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnTWVhc3VyZW1lbnRDb21taXRTZXQnKTsK
IGltcG9ydEZyb21WMygnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnQ29tbWl0U2V0Jyk7CitpbXBv
cnRGcm9tVjMoJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ0N1c3RvbUNvbW1pdFNldCcpOwogaW1w
b3J0RnJvbVYzKCdtb2RlbHMvdGVzdC5qcycsICdUZXN0Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVs
cy90ZXN0LWdyb3VwLmpzJywgJ1Rlc3RHcm91cCcpOwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGlt
ZS1zZXJpZXMuanMnLCAnVGltZVNlcmllcycpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGQtcmVxdWVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMKaW5kZXggZTkz
ZWMyZjgxYjQ4ZmY3Yjg3M2YxMDg3M2ExOTAwM2RkNTk2YWJiOC4uZjcxNmU5ZWI4ZTI0ZmY4M2Rj
MzZkZDMxNTcyZGQzNDMzMGFmZDZmOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvYnVpbGQtcmVxdWVzdC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZC1yZXF1ZXN0LXRlc3RzLmpzCkBAIC01Myw3ICs1
Myw3IEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVzdERhdGEoKQogICAgIH07CiB9CiAKLWRl
c2NyaWJlKCdUZXN0R3JvdXAnLCBmdW5jdGlvbiAoKSB7CitkZXNjcmliZSgnQnVpbGRSZXF1ZXN0
JywgZnVuY3Rpb24gKCkgewogICAgIE1vY2tNb2RlbHMuaW5qZWN0KCk7CiAKICAgICBkZXNjcmli
ZSgnd2FpdGluZ1RpbWUnLCBmdW5jdGlvbiAoKSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKaW5k
ZXggY2I2YzQ1YTk1ODVlMmEyZTIyMTdjZjA1NTU2ODY1MzNhYmY3NjhhMS4uZjJhNTYxYjM3NWM1
NTJhZjlkMTg3YjI0MzdjN2IxMDcyZWZmNGRiOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpA
QCAtMTIsMTYgKzEyLDE3IEBAIGxldCBCdWlsZGJvdFN5bmNlciA9IHJlcXVpcmUoJy4uL3Rvb2xz
L2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1aWxkYm90U3luY2VyOwogZnVuY3Rpb24gc2FtcGxl
aU9TQ29uZmlnKCkKIHsKICAgICByZXR1cm4gewotICAgICAgICAnc2hhcmVkJzoKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAnYXJndW1lbnRzJzogewotICAgICAgICAgICAgICAgICAg
ICAnZGVzaXJlZF9pbWFnZSc6IHsncm9vdCc6ICdpT1MnfSwKLSAgICAgICAgICAgICAgICAgICAg
J29wZW5zb3VyY2UnOiB7J3Jvb3RPcHRpb25zJzogWydXZWJLaXQtU1ZOJywgJ1dlYktpdC1HaXQn
XX0sCi0gICAgICAgICAgICAgICAgICAgICdyb290c19kaWN0Jzogeydyb290c0V4Y2x1ZGluZyc6
IFsnaU9TJ119Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAnc2xhdmVBcmd1
bWVudCc6ICdzbGF2ZW5hbWUnLAotICAgICAgICAgICAgICAgICdidWlsZFJlcXVlc3RBcmd1bWVu
dCc6ICdidWlsZF9yZXF1ZXN0X2lkJwotICAgICAgICAgICAgfSwKKyAgICAgICAgJ3NsYXZlQXJn
dW1lbnQnOiAnc2xhdmVuYW1lJywKKyAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1
aWxkX3JlcXVlc3RfaWQnLAorICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKKyAgICAgICAg
ICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsKKyAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzog
WydXZWJLaXQnLCAnaU9TJ10sCisgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7CisgICAg
ICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdlJzogJzxpT1M+JywKKyAgICAgICAgICAgICAg
ICAgICAgJ29wZW5zb3VyY2UnOiAnPFdlYktpdD4nLAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKICAgICAgICAgJ3R5cGVzJzogewogICAgICAgICAgICAgJ3Nw
ZWVkb21ldGVyJzogewogICAgICAgICAgICAgICAgICd0ZXN0JzogWydTcGVlZG9tZXRlciddLApA
QCAtNjMsMTQgKzY0LDggQEAgZnVuY3Rpb24gc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFuc2lvbnMo
KQogewogICAgIHJldHVybiB7CiAgICAgICAgICJ0cmlnZ2VyYWJsZU5hbWUiOiAiYnVpbGQtd2Vi
a2l0LWlvcyIsCi0gICAgICAgICJzaGFyZWQiOgotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICJhcmd1bWVudHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJ3ZWJraXQtcmV2aXNpb24i
OiB7InJvb3QiOiAiV2ViS2l0In0sCi0gICAgICAgICAgICAgICAgICAgICJvcy12ZXJzaW9uIjog
eyJyb290IjogImlPUyJ9Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAiYnVp
bGRSZXF1ZXN0QXJndW1lbnQiOiAiYnVpbGQtcmVxdWVzdC1pZCIKLSAgICAgICAgICAgIH0sCisg
ICAgICAgICJidWlsZFJlcXVlc3RBcmd1bWVudCI6ICJidWlsZC1yZXF1ZXN0LWlkIiwKKyAgICAg
ICAgInJlcG9zaXRvcnlHcm91cHMiOiB7IH0sCiAgICAgICAgICJ0eXBlcyI6IHsKICAgICAgICAg
ICAgICJpcGhvbmUtcGx0IjogewogICAgICAgICAgICAgICAgICJ0ZXN0IjogWyJQTFQtaVBob25l
Il0sCkBAIC0xMTAsMzUgKzEwNSwyNSBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWdXaXRoRXhw
YW5zaW9ucygpCiAgICAgfQogfQogCi1sZXQgc2FtcGxlQ29tbWl0U2V0RGF0YSA9IHsKLSAgICAn
V2ViS2l0JzogewotICAgICAgICAnaWQnOiAnMTExMTI3JywKLSAgICAgICAgJ3RpbWUnOiAxNDU2
OTU1ODA3MzM0LAotICAgICAgICAncmVwb3NpdG9yeSc6ICdXZWJLaXQnLAotICAgICAgICAncmV2
aXNpb24nOiAnMTk3NDYzJywKLSAgICB9LAotICAgICdTaGFyZWQnOiB7Ci0gICAgICAgICdpZCc6
ICcxMTEyMzcnLAotICAgICAgICAndGltZSc6IDE0NTY5MzE4NzQwMDAsCi0gICAgICAgICdyZXBv
c2l0b3J5JzogJ1NoYXJlZCcsCi0gICAgICAgICdyZXZpc2lvbic6ICc4MDIyOScsCi0gICAgfSwK
LSAgICAnV2ViS2l0LUdpdCc6IHsKLSAgICAgICAgImlkIjoiMTExMjM5IiwKLSAgICAgICAgInRp
bWUiOjE0NTY5MzE4NzQwMDAsCi0gICAgICAgICJyZXBvc2l0b3J5IjoiV2ViS2l0LUdpdCIsCi0g
ICAgICAgICJyZXZpc2lvbiI6IjlhYmNkZWYiLAotICAgIH0sCi19OwotCiBmdW5jdGlvbiBzbWFs
bENvbmZpZ3VyYXRpb24oKQogewogICAgIHJldHVybiB7Ci0gICAgICAgICdidWlsZGVyJzogJ3Nv
bWUgYnVpbGRlcicsCi0gICAgICAgICdwbGF0Zm9ybSc6ICdTb21lIHBsYXRmb3JtJywKLSAgICAg
ICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddLAotICAgICAgICAnYXJndW1lbnRzJzoge30sCi0gICAg
ICAgICdidWlsZFJlcXVlc3RBcmd1bWVudCc6ICdpZCd9OworICAgICAgICAnYnVpbGRSZXF1ZXN0
QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKKyAgICAgICAg
ICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsKKyAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzog
WydpT1MnLCAnV2ViS2l0J10sCisgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7CisgICAg
ICAgICAgICAgICAgICAgICdvcyc6ICc8aU9TPicsCisgICAgICAgICAgICAgICAgICAgICd3ayc6
ICc8V2ViS2l0PicKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFt7CisgICAgICAgICAgICAnYnVpbGRlcic6ICdz
b21lIGJ1aWxkZXInLAorICAgICAgICAgICAgJ3BsYXRmb3JtJzogJ1NvbWUgcGxhdGZvcm0nLAor
ICAgICAgICAgICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddCisgICAgICAgIH1dCisgICAgfTsKIH0K
IAogZnVuY3Rpb24gc21hbGxQZW5kaW5nQnVpbGQoKQpAQCAtMjEwLDEyICsxOTUsMTIgQEAgZnVu
Y3Rpb24gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KHBsYXRmb3JtLCB0ZXN0KQogICAgIGxldCBj
b21taXRTZXQgPSBDb21taXRTZXQuZW5zdXJlU2luZ2xldG9uKCc0MTk3Jywge2NvbW1pdHM6IFsK
ICAgICAgICAgeydpZCc6ICcxMTExMjcnLCAndGltZSc6IDE0NTY5NTU4MDczMzQsICdyZXBvc2l0
b3J5JzogTW9ja01vZGVscy53ZWJraXQsICdyZXZpc2lvbic6ICcxOTc0NjMnfSwKICAgICAgICAg
eydpZCc6ICcxMTEyMzcnLCAndGltZSc6IDE0NTY5MzE4NzQwMDAsICdyZXBvc2l0b3J5JzogTW9j
a01vZGVscy5zaGFyZWRSZXBvc2l0b3J5LCAncmV2aXNpb24nOiAnODAyMjknfSwKLSAgICAgICAg
eydpZCc6ICcxMTEyMzknLCAndGltZSc6IDE0NTY5MzE4NzQwMDAsICdyZXBvc2l0b3J5JzogTW9j
a01vZGVscy53ZWJraXRHaXQsICdyZXZpc2lvbic6ICc5YWJjZGVmJ30sCiAgICAgICAgIHsnaWQn
OiAnODg5MzAnLCAndGltZSc6IDAsICdyZXBvc2l0b3J5JzogTW9ja01vZGVscy5pb3MsICdyZXZp
c2lvbic6ICcxM0E0NTInfSwKICAgICBdfSk7CiAKLSAgICBsZXQgcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5lbnN1cmVTaW5nbGV0b24oJzE2NzMzLScgKyBwbGF0Zm9ybS5pZCgpLCB7J2NvbW1pdFNl
dCc6IGNvbW1pdFNldCwgJ3N0YXR1cyc6ICdwZW5kaW5nJywgJ3BsYXRmb3JtJzogcGxhdGZvcm0s
ICd0ZXN0JzogdGVzdH0pOwotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZW5zdXJlU2luZ2xldG9uKCcxNjczMy0nICsgcGxhdGZvcm0uaWQoKSwgeyd0cmlnZ2Vy
YWJsZSc6IE1vY2tNb2RlbHMudHJpZ2dlcmFibGUsCisgICAgICAgIHJlcG9zaXRvcnlHcm91cDog
TW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsCisgICAgICAgICdjb21taXRTZXQnOiBjb21t
aXRTZXQsICdzdGF0dXMnOiAncGVuZGluZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6
IHRlc3R9KTsKIH0KIAogZnVuY3Rpb24gc2FtcGxlUGVuZGluZ0J1aWxkKGJ1aWxkUmVxdWVzdElk
LCBidWlsZFRpbWUsIHNsYXZlTmFtZSkKQEAgLTIyOSwxMSArMjE0LDYgQEAgZnVuY3Rpb24gc2Ft
cGxlUGVuZGluZ0J1aWxkKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRpbWUsIHNsYXZlTmFtZSkKICAg
ICAgICAgICAgIFsnb3duZXInLCAnPHVua25vd24+JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKICAg
ICAgICAgICAgIFsndGVzdF9uYW1lJywgJ3NwZWVkb21ldGVyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0n
XSwKICAgICAgICAgICAgIFsncmVhc29uJywgJ2ZvcmNlIGJ1aWxkJywnRm9yY2UgQnVpbGQgRm9y
bSddLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICdyb290c19kaWN0JywKLSAgICAg
ICAgICAgICAgICBKU09OLnN0cmluZ2lmeShzYW1wbGVDb21taXRTZXREYXRhKSwKLSAgICAgICAg
ICAgICAgICAnRm9yY2UgQnVpbGQgRm9ybScKLSAgICAgICAgICAgIF0sCiAgICAgICAgICAgICBb
J3NsYXZlbmFtZScsIHNsYXZlTmFtZSwgJyddLAogICAgICAgICAgICAgWydzY2hlZHVsZXInLCAn
QUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJywgJ1NjaGVkdWxl
ciddCiAgICAgICAgIF0sCkBAIC0yODAsNyArMjYwLDYgQEAgZnVuY3Rpb24gc2FtcGxlSW5Qcm9n
cmVzc0J1aWxkKHNsYXZlTmFtZSkKICAgICAgICAgICAgIFsnZGVzaXJlZF9pbWFnZScsICcxM0E0
NTInLCAnRm9yY2UgQnVpbGQgRm9ybSddLAogICAgICAgICAgICAgWydvd25lcicsICc8dW5rbm93
bj4nLCAnRm9yY2UgQnVpbGQgRm9ybSddLAogICAgICAgICAgICAgWydyZWFzb24nLCAnZm9yY2Ug
YnVpbGQnLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydyb290c19kaWN0Jywg
SlNPTi5zdHJpbmdpZnkoc2FtcGxlQ29tbWl0U2V0RGF0YSksICdGb3JjZSBCdWlsZCBGb3JtJ10s
CiAgICAgICAgICAgICBbJ3NjaGVkdWxlcicsICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVz
dHMtRm9yY2VTY2hlZHVsZXInLCAnU2NoZWR1bGVyJ10sCiAgICAgICAgICAgICBbJ3NsYXZlbmFt
ZScsIHNsYXZlTmFtZSB8fCAnQUJUZXN0LWlQYWQtMCcsICdCdWlsZFNsYXZlJ10sCiAgICAgICAg
IF0sCkBAIC0zNTYsNyArMzM1LDYgQEAgZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRCdWlsZChidWls
ZFJlcXVlc3RJZCwgc2xhdmVOYW1lKQogICAgICAgICAgICAgWydkZXNpcmVkX2ltYWdlJywgJzEz
QTQ1MicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCiAgICAgICAgICAgICBbJ293bmVyJywgJzx1bmtu
b3duPicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCiAgICAgICAgICAgICBbJ3JlYXNvbicsICdmb3Jj
ZSBidWlsZCcsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3Jvb3RzX2RpY3Qn
LCBKU09OLnN0cmluZ2lmeShzYW1wbGVDb21taXRTZXREYXRhKSwgJ0ZvcmNlIEJ1aWxkIEZvcm0n
XSwKICAgICAgICAgICAgIFsnc2NoZWR1bGVyJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1U
ZXN0cy1Gb3JjZVNjaGVkdWxlcicsICdTY2hlZHVsZXInXSwKICAgICAgICAgICAgIFsnc2xhdmVu
YW1lJywgc2xhdmVOYW1lIHx8ICdBQlRlc3QtaVBhZC0wJywgJ0J1aWxkU2xhdmUnXSwKICAgICAg
ICAgXSwKQEAgLTQyMyw4OSArNDAxLDY4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICBkZXNjcmliZSgnX2xvYWRDb25maWcnLCAoKSA9PiB7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBjcmVhdGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3IgYSBjb25maWd1cmF0aW9u
IHRoYXQgc3BlY2lmeSBhbGwgcmVxdWlyZWQgb3B0aW9ucycsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
eydjb25maWd1cmF0aW9ucyc6IFtzbWFsbENvbmZpZ3VyYXRpb24oKV19KTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzeW5jZXJzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1
cmF0aW9uKCkpLmxlbmd0aCwgMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
dGhyb3cgd2hlbiBzb21lIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmcnLCAoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZp
Z1snYnVpbGRlciddOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbY29uZmlnXX0pOworICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAg
ICAgIGRlbGV0ZSBjb25maWcuY29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcjsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwog
ICAgICAgICAgICAgfSwgJ2J1aWxkZXIgc2hvdWxkIGJlIGEgcmVxdWlyZWQgb3B0aW9uJyk7CiAg
ICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZp
Z1sncGxhdGZvcm0nXTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW2NvbmZpZ119KTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBkZWxldGUgY29uZmlnLmNvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CiAgICAgICAgICAgICB9LCAncGxhdGZvcm0gc2hvdWxkIGJlIGEgcmVxdWlyZWQgb3B0aW9uJyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNv
bmZpZ1sndGVzdCddOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbY29uZmlnXX0pOworICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAg
ICAgIGRlbGV0ZSBjb25maWcuY29uZmlndXJhdGlvbnNbMF0udGVzdDsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwogICAg
ICAgICAgICAgfSwgJ3Rlc3Qgc2hvdWxkIGJlIGEgcmVxdWlyZWQgb3B0aW9uJyk7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZ1snYXJn
dW1lbnRzJ107Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgeydjb25maWd1cmF0aW9ucyc6IFtjb25maWddfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewotICAgICAgICAgICAgICAgIGxl
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBkZWxldGUg
Y29uZmlnWydidWlsZFJlcXVlc3RBcmd1bWVudCddOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbY29u
ZmlnXX0pOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5idWls
ZFJlcXVlc3RBcmd1bWVudDsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgJ2J1aWxkUmVxdWVz
dEFyZ3VtZW50IHNob3VsZCBiZSByZXF1aXJlZCcpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHRocm93IHdoZW4gYSB0ZXN0IG5hbWUgaXMgbm90IGFuIGFycmF5IG9mIHN0cmlu
Z3MnLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBsZXQgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAg
ICAgY29uZmlnLnRlc3QgPSAnc29tZSB0ZXN0JzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW2NvbmZp
Z119KTsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24o
KTsKKyAgICAgICAgICAgICAgICBjb25maWcuY29uZmlndXJhdGlvbnNbMF0udGVzdCA9ICdzb21l
IHRlc3QnOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGFzc2VydC50
aHJvd3MoKCkgPT4gewotICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKLSAgICAgICAgICAgICAgICBjb25maWcudGVzdCA9IFsxXTsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3Vy
YXRpb25zJzogW2NvbmZpZ119KTsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcuY29uZmlndXJhdGlvbnNb
MF0udGVzdCA9IFsxXTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhcmd1bWVudHMgaXMgbm90IGFuIG9iamVj
dCcsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewotICAgICAgICAg
ICAgICAgIGxldCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAg
ICBjb25maWcuYXJndW1lbnRzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW2NvbmZp
Z119KTsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24o
KTsKKyAgICAgICAgICAgICAgICBjb25maWcuY29uZmlndXJhdGlvbnNbMF0uYXJndW1lbnRzID0g
J2hlbGxvJzsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhcmd1bWVudHNcJ3MgdmFsdWVzIGFyZSBtYWxmb3Jt
ZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBsZXQgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAg
ICAgY29uZmlnLmFyZ3VtZW50cyA9IHsnc29tZSc6IHsncm9vdCc6ICdzb21lIHJvb3QnLCAncm9v
dHNFeGNsdWRpbmcnOiBbJ290aGVyIHJvb3QnXX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgeydjb25maWd1cmF0aW9ucyc6IFtjb25maWdd
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewot
ICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAg
ICAgICAgICAgICBjb25maWcuYXJndW1lbnRzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21l
IHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW2NvbmZpZ119KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGNvbmZpZy5hcmd1
bWVudHMgPSB7J3NvbWUnOiB7J3Jvb3QnOiBbJ2EnLCAnYiddfX07Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzog
W2NvbmZpZ119KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0LnRocm93cygo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigp
OwotICAgICAgICAgICAgICAgIGNvbmZpZy5hcmd1bWVudHMgPSB7J3NvbWUnOiB7J3Jvb3QnOiAx
fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCB7J2NvbmZpZ3VyYXRpb25zJzogW2NvbmZpZ119KTsKKyAgICAgICAgICAgICAgICBjb25zdCBj
b25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcuY29u
ZmlndXJhdGlvbnNbMF0uYXJndW1lbnRzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJv
b3QnfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9u
KCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLmFyZ3VtZW50cyA9IHsnc29tZSc6IHsncm9vdHNF
eGNsdWRpbmcnOiAnYSd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbY29uZmlnXX0pOworICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAg
ICAgIGNvbmZpZy5jb25maWd1cmF0aW9uc1swXS5hcmd1bWVudHMgPSB7J3NvbWUnOiB7J3Jvb3Qn
OiBbJ2EnLCAnYiddfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLmFyZ3VtZW50cyA9IHsnc29tZSc6
IHsncm9vdHNFeGNsdWRpbmcnOiBbMV19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbY29uZmlnXX0pOwor
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAg
ICAgICAgICAgICAgIGNvbmZpZy5jb25maWd1cmF0aW9uc1swXS5hcmd1bWVudHMgPSB7J3NvbWUn
OiB7J3Jvb3QnOiAxfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBjb25maWcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC01NjUsMTMgKzUyMiwxMDUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnBsYXRmb3JtLCBNb2Nr
TW9kZWxzLmlwYWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFd
LnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIHRocm93IHdoZW4gcmVwb3NpdG9yeUdyb3VwcyBpcyBub3QgYW4gb2JqZWN0Jywg
KCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSAxOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0gJ2hlbGxvJzsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkg
Z3JvdXAgZG9lcyBub3Qgc3BlY2lmeSBhIGxpc3Qgb2YgcmVwb3NpdG9yeScsICgpID0+IHsKKyAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge319OworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiAx
fX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBhbiBlbXB0
eSBsaXN0IG9mIHJlcG9zaXRvcnknLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHsncmVwb3NpdG9yaWVzJzogW119fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRv
cnkgZ3JvdXAgc3BlY2lmaWVzIGEgdmFsaWQgcmVwb3NpdG9yeScsICgpID0+IHsKKyAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ0ludmFsaWRSZXBvc2l0
b3J5TmFtZSddfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwor
ICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gdGhlIGRlc2NyaXB0aW9uIG9mIGEgcmVwb3Np
dG9yeSBncm91cCBpcyBub3QgYSBzdHJpbmcnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZp
Z3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsn
c29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogWydXZWJLaXQnXSwgJ2Rlc2NyaXB0aW9uJzog
MX19OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ1dlYktpdCddLCAnZGVzY3JpcHRpb24nOiBbMSwg
Ml19fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgZG9lcyBub3Qgc3BlY2lm
eSBhIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllcycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29u
ZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0g
eydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ1dlYktpdCddLCBwcm9wZXJ0aWVzOiAx
fX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUt
Z3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFsnV2ViS2l0J10sIHByb3BlcnRpZXM6ICdoZWxsbyd9
fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0
KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgcmVmZXJzIHRvIGEgbm9uLWV4
aXN0ZW50IHJlcG9zaXRvcnkgaW4gdGhlIHByb3BlcnRpZXMgZGljdGlvbmFyeScsICgpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbJ1dlYktp
dCddLCBwcm9wZXJ0aWVzOiB7J3drJzogJzxJbnZhbGlkUmVwb3NpdG9yeT4nfX19OworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0
aHJvdyB3aGVuIGEgcmVwb3NpdG9yeSBncm91cCByZWZlcnMgdG8gYSByZXBvc2l0b3J5IGluIHRo
ZSBwcm9wZXJ0aWVzIGRpY3Rpb25hcnkgd2hpY2ggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlzdCBv
ZiByZXBvc2l0b3JpZXMnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
KyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6
IHsncmVwb3NpdG9yaWVzJzogWydXZWJLaXQnXSwgcHJvcGVydGllczogeydvcyc6ICc8aU9TPid9
fX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGRvZXMgbm90IHVzZSBhIGxp
dGVkIHJlcG9zaXRvcnknLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
KyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6
IHsncmVwb3NpdG9yaWVzJzogWydXZWJLaXQnXSwgcHJvcGVydGllczoge319fTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUo
J19wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxk
IGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIGEgZ2l2ZW4gY29uZmlndXJhdGlv
bicsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CiAgICAgICAgICAgICBsZXQg
cHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QoY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHByb3BlcnRp
ZXMpLCBbJ2Rlc2lyZWRfaW1hZ2UnLCAnb3BlbnNvdXJjZScsICdyb290c19kaWN0JywgJ3Rlc3Rf
bmFtZScsICdmb3JjZXNjaGVkdWxlcicsICdidWlsZF9yZXF1ZXN0X2lkJ10pOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5zb3J0KCksIFsnYnVp
bGRfcmVxdWVzdF9pZCcsICdkZXNpcmVkX2ltYWdlJywgJ2ZvcmNlc2NoZWR1bGVyJywgJ29wZW5z
b3VyY2UnLCAndGVzdF9uYW1lJ10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxk
IHByZXNlcnZlIG5vbi1wYXJhbWV0cmljIHByb3BlcnR5IHZhbHVlcycsICgpID0+IHsKQEAgLTU5
MSwxOCArNjQwLDYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ2Rlc2lyZWRfaW1hZ2UnXSwgJzEzQTQ1Micp
OwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHJlc29sdmUgInJvb3RPcHRpb25z
IicsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7Ci0gICAgICAgICAgICBsZXQg
cHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QoY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1sncm9vdHNfZGljdCdd
LCBKU09OLnN0cmluZ2lmeShzYW1wbGVDb21taXRTZXREYXRhKSk7Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIGl0KCdzaG91bGQgcmVzb2x2ZSAicm9vdHNFeGNsdWRpbmciJywgKCkgPT4gewotICAg
ICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKTsKLSAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gc3lu
Y2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWydyb290c19kaWN0J10sIEpTT04uc3RyaW5naWZ5
KHNhbXBsZUNvbW1pdFNldERhdGEpKTsKLSAgICAgICAgfSk7Ci0KICAgICAgICAgaXQoJ3Nob3Vs
ZCBzZXQgdGhlIHByb3BlcnR5IGZvciB0aGUgYnVpbGQgcmVxdWVzdCBpZCcsICgpID0+IHsKICAg
ICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CiAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9t
ZXRlcik7CkBAIC04ODcsMTEgKzkyNCw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEs
IHsKICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkX3JlcXVlc3RfaWQnOiAnMTY3MzMtJyArIE1v
Y2tNb2RlbHMuaXBob25lLmlkKCksCiAgICAgICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdl
JzogJzEzQTQ1MicsCi0gICAgICAgICAgICAgICAgICAgICJvcGVuc291cmNlIjogIjlhYmNkZWYi
LAorICAgICAgICAgICAgICAgICAgICAib3BlbnNvdXJjZSI6ICIxOTc0NjMiLAogICAgICAgICAg
ICAgICAgICAgICAnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmst
VGVzdHMtRm9yY2VTY2hlZHVsZXInLAotICAgICAgICAgICAgICAgICAgICAncm9vdHNfZGljdCc6
ICd7IldlYktpdCI6eyJpZCI6IjExMTEyNyIsInRpbWUiOjE0NTY5NTU4MDczMzQsInJlcG9zaXRv
cnkiOiJXZWJLaXQiLCJyZXZpc2lvbiI6IjE5NzQ2MyJ9LCcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICsgJyJTaGFyZWQiOnsiaWQiOiIxMTEyMzciLCJ0aW1lIjoxNDU2OTMxODc0MDAwLCJyZXBv
c2l0b3J5IjoiU2hhcmVkIiwicmV2aXNpb24iOiI4MDIyOSJ9LCcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICsgJyJXZWJLaXQtR2l0Ijp7ImlkIjoiMTExMjM5IiwidGltZSI6MTQ1NjkzMTg3NDAw
MCwicmVwb3NpdG9yeSI6IldlYktpdC1HaXQiLCJyZXZpc2lvbiI6IjlhYmNkZWYifX0nLAogICAg
ICAgICAgICAgICAgICAgICAnc2xhdmVuYW1lJzogJ3NvbWUtc2xhdmUnLAogICAgICAgICAgICAg
ICAgICAgICAndGVzdF9uYW1lJzogJ3NwZWVkb21ldGVyJwogICAgICAgICAgICAgICAgIH0pOwpA
QCAtOTE1LDMxICs5NDksMzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxk
ZXIgaGFzIG5vIGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsK
LSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW3NtYWxsQ29uZmlndXJhdGlvbigpXX0pWzBd
OworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKIAogICAgICAgICAgICAgcmV0
dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFi
bGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2Nr
TW9kZWxzLnNvbWVUZXN0KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVy
bCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01v
ZGVscy5zb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBsYXRm
b3JtLmlkKCksICdvcyc6ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJ30pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBp
ZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNw
ZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW3NtYWxsQ29u
ZmlndXJhdGlvbigpXX0pWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsK
IAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBb
XSwge1stMV06IHNtYWxsRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRl
c3QpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybS5pZCgpfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1sw
XS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ29z
JzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVy
IGhhcyBhIHBlbmRpbmcgYnVpbGQgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgeydjb25maWd1cmF0aW9ucyc6IFtzbWFsbENvbmZpZ3VyYXRpb24oKV19
KVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CiAKICAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1
aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01v
ZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKQEAgLTEwNDEsNyArMTA3
NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0
IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgc2FtZSBidWlsZGVyIHdpdGhvdXQgc2xhdmVMaXN0
JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHsnY29uZmlndXJhdGlvbnMnOiBbc21hbGxDb25maWd1cmF0
aW9uKCldfSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOwogCiAgICAg
ICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMu
c29tZVRlc3QpLCBudWxsKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcwppbmRleCBiMzZh
M2RmYWZkOGVjNDc5YzZkYzY4ZDY3YTc0Y2ZhOWNmYzIwMDMzLi42NTdmMDdiZmM1MDE4MzhhZDE3
MDcwZTJmNmZmZmY3NTE5NTQyZjM3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzCkBA
IC0xMyw2ICsxMyw3IEBAIHZhciBNb2NrTW9kZWxzID0gewogICAgICAgICAgICAgVGVzdC5jbGVh
clN0YXRpY01hcCgpOwogICAgICAgICAgICAgVGVzdEdyb3VwLmNsZWFyU3RhdGljTWFwKCk7CiAg
ICAgICAgICAgICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKKyAgICAgICAgICAgIFRy
aWdnZXJhYmxlLmNsZWFyU3RhdGljTWFwKCk7CiAKICAgICAgICAgICAgIE1vY2tNb2RlbHMub3N4
ID0gUmVwb3NpdG9yeS5lbnN1cmVTaW5nbGV0b24oOSwge25hbWU6ICdPUyBYJ30pOwogICAgICAg
ICAgICAgTW9ja01vZGVscy5pb3MgPSBSZXBvc2l0b3J5LmVuc3VyZVNpbmdsZXRvbigyMiwge25h
bWU6ICdpT1MnfSk7CkBAIC0zOSw2ICs0MCwyMyBAQCB2YXIgTW9ja01vZGVscyA9IHsKICAgICAg
ICAgICAgIE1vY2tNb2RlbHMuaVBob25lUExUID0gVGVzdC5lbnN1cmVTaW5nbGV0b24oMTUwMCwg
e25hbWU6ICdQTFQtaVBob25lJ30pOwogICAgICAgICAgICAgTW9ja01vZGVscy5wbHRNZWFuID0g
TWV0cmljLmVuc3VyZVNpbmdsZXRvbigxMTU4LCB7bmFtZTogJ1RpbWUnLCBhZ2dyZWdhdG9yOiAn
QXJpdGhtZXRpYycsIHRlc3Q6IE1vY2tNb2RlbHMucGx0fSk7CiAgICAgICAgICAgICBNb2NrTW9k
ZWxzLmVsQ2FwaXRhbiA9IFBsYXRmb3JtLmVuc3VyZVNpbmdsZXRvbigzMSwge25hbWU6ICdFbCBD
YXBpdGFuJywgbWV0cmljczogW01vY2tNb2RlbHMucGx0TWVhbl19KTsKKworICAgICAgICAgICAg
TW9ja01vZGVscy5vc1JlcG9zaXRvcnlHcm91cCA9IG5ldyBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlH
cm91cCgzMSwgeworICAgICAgICAgICAgICAgIG5hbWU6ICdpb3MnLAorICAgICAgICAgICAgICAg
IHJlcG9zaXRvcmllczogW01vY2tNb2RlbHMuaW9zXQorICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCA9IG5ldyBUcmlnZ2VyYWJsZVJlcG9z
aXRvcnlHcm91cCgzMiwgeworICAgICAgICAgICAgICAgIG5hbWU6ICdpb3Mtc3ZuLXdlYmtpdCcs
CisgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiBbTW9ja01vZGVscy5pb3MsIE1vY2tNb2Rl
bHMud2Via2l0LCBNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnldCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwID0gbmV3IFRyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwKDMzLCB7CisgICAgICAgICAgICAgICAgbmFtZTogJ2lvcy1naXQt
d2Via2l0JywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IFtNb2NrTW9kZWxzLmlvcywg
TW9ja01vZGVscy53ZWJraXRHaXQsIE1vY2tNb2RlbHMuc2hhcmVkUmVwb3NpdG9yeV0KKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgTW9ja01vZGVscy50cmlnZ2VyYWJsZSA9IG5ldyBUcmln
Z2VyYWJsZSgzLCB7bmFtZTogJ2J1aWxkLXdlYmtpdCcsCisgICAgICAgICAgICAgICAgcmVwb3Np
dG9yeUdyb3VwczogW01vY2tNb2RlbHMub3NSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3Zu
UmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9zaXRvcnlHcm91cF0sCisgICAgICAg
ICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5pUGhvbmVQTFQsIHBs
YXRmb3JtOiBNb2NrTW9kZWxzLmlwaG9uZX1dfSk7CisKICAgICAgICAgfSk7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="327715"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>